@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
@@ -34,9 +34,9 @@ const {
34
34
  useHistory
35
35
  } = (0, _lockUnlock.unlock)(_router.privateApis);
36
36
  const SYNC_FILTERS = {
37
- all: (0, _i18n.__)('All'),
38
- [_constants.PATTERN_SYNC_TYPES.full]: (0, _i18n.__)('Synced'),
39
- [_constants.PATTERN_SYNC_TYPES.unsynced]: (0, _i18n.__)('Not synced')
37
+ all: (0, _i18n._x)('All', 'Option that shows all patterns'),
38
+ [_constants.PATTERN_SYNC_TYPES.full]: (0, _i18n._x)('Synced', 'Option that shows all synchronized patterns'),
39
+ [_constants.PATTERN_SYNC_TYPES.unsynced]: (0, _i18n._x)('Not synced', 'Option that shows all patterns that are not synchronized')
40
40
  };
41
41
  const SYNC_DESCRIPTIONS = {
42
42
  all: '',
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_i18n","_icons","_router","_compose","_header","_interopRequireDefault","_grid","_noPatterns","_usePatterns","_sidebarButton","_useDebouncedInput","_lockUnlock","_constants","_pagination","useLocation","useHistory","unlock","routerPrivateApis","SYNC_FILTERS","all","__","PATTERN_SYNC_TYPES","full","unsynced","SYNC_DESCRIPTIONS","PAGE_SIZE","PatternsList","categoryId","type","location","history","isMobileViewport","useViewportMatch","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","deferredFilterValue","useDeferredValue","syncFilter","setSyncFilter","useState","currentPage","setCurrentPage","deferredSyncedFilter","isUncategorizedThemePatterns","PATTERN_TYPES","theme","patterns","isResolving","usePatterns","search","syncStatus","undefined","updateSearchFilter","value","updateSyncFilter","id","useId","titleId","descriptionId","hasPatterns","length","title","description","totalItems","pageIndex","numPages","Math","ceil","list","useMemo","slice","asyncList","useAsyncList","step","changePage","page","scrollContainer","document","querySelector","scrollTo","_react","createElement","Fragment","__experimentalVStack","className","spacing","default","Flex","alignment","wrap","icon","isRTL","chevronRight","chevronLeft","label","onClick","state","backPath","back","push","path","FlexBlock","SearchControl","onChange","placeholder","__nextHasNoMarginBottom","__experimentalToggleGroupControl","hideLabelFromVision","isBlock","Object","entries","map","key","__experimentalToggleGroupControlOption","justify","__experimentalHeading","as","level","__experimentalText","variant","items"],"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId, useMemo } from '@wordpress/element';\nimport {\n\tSearchControl,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PatternsHeader from './header';\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport useDebouncedInput from '../../utils/use-debounced-input';\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';\nimport Pagination from './pagination';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: __( 'All' ),\n\t[ PATTERN_SYNC_TYPES.full ]: __( 'Synced' ),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: __( 'Not synced' ),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ PATTERN_SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\n\nconst PAGE_SIZE = 20;\n\nexport default function PatternsList( { categoryId, type } ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( '' );\n\tconst deferredFilterValue = useDeferredValue( delayedFilterValue );\n\n\tconst [ syncFilter, setSyncFilter ] = useState( 'all' );\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\n\tconst deferredSyncedFilter = useDeferredValue( syncFilter );\n\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: deferredFilterValue,\n\t\t\tsyncStatus:\n\t\t\t\tdeferredSyncedFilter === 'all'\n\t\t\t\t\t? undefined\n\t\t\t\t\t: deferredSyncedFilter,\n\t\t}\n\t);\n\n\tconst updateSearchFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetFilterValue( value );\n\t};\n\n\tconst updateSyncFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetSyncFilter( value );\n\t};\n\n\tconst id = useId();\n\tconst titleId = `${ id }-title`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst hasPatterns = patterns.length;\n\tconst title = SYNC_FILTERS[ syncFilter ];\n\tconst description = SYNC_DESCRIPTIONS[ syncFilter ];\n\n\tconst totalItems = patterns.length;\n\tconst pageIndex = currentPage - 1;\n\tconst numPages = Math.ceil( patterns.length / PAGE_SIZE );\n\n\tconst list = useMemo( () => {\n\t\treturn patterns.slice(\n\t\t\tpageIndex * PAGE_SIZE,\n\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t);\n\t}, [ pageIndex, patterns ] );\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack className=\"edit-site-patterns__header\" spacing={ 6 }>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ titleId }\n\t\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t\t/>\n\t\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// Go back in history if we came from the Patterns page.\n\t\t\t\t\t\t\t\t// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tlocation.state?.backPath === '/patterns'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateSearchFilter( value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t{ type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tonChange={ ( value ) => updateSyncFilter( value ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter-option\"\n\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\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</ToggleGroupControl>\n\t\t\t\t\t) }\n\t\t\t\t</Flex>\n\t\t\t</VStack>\n\t\t\t<VStack\n\t\t\t\tclassName=\"edit-site-patterns__section\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 6 }\n\t\t\t>\n\t\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\titems={ asyncList }\n\t\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t\t</VStack>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\tchangePage={ changePage }\n\t\t\t\t\ttotalItems={ totalItems }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAUA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,OAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,WAAA,GAAAF,sBAAA,CAAAP,OAAA;AACA,IAAAU,YAAA,GAAAH,sBAAA,CAAAP,OAAA;AACA,IAAAW,cAAA,GAAAJ,sBAAA,CAAAP,OAAA;AACA,IAAAY,kBAAA,GAAAL,sBAAA,CAAAP,OAAA;AACA,IAAAa,WAAA,GAAAb,OAAA;AACA,IAAAc,UAAA,GAAAd,OAAA;AACA,IAAAe,WAAA,GAAAR,sBAAA,CAAAP,OAAA;AA9BA;AACA;AACA;;AAiBA;AACA;AACA;;AAWA,MAAM;EAAEgB,WAAW;EAAEC;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAE/D,MAAMC,YAAY,GAAG;EACpBC,GAAG,EAAE,IAAAC,QAAE,EAAE,KAAM,CAAC;EAChB,CAAEC,6BAAkB,CAACC,IAAI,GAAI,IAAAF,QAAE,EAAE,QAAS,CAAC;EAC3C,CAAEC,6BAAkB,CAACE,QAAQ,GAAI,IAAAH,QAAE,EAAE,YAAa;AACnD,CAAC;AAED,MAAMI,iBAAiB,GAAG;EACzBL,GAAG,EAAE,EAAE;EACP,CAAEE,6BAAkB,CAACC,IAAI,GAAI,IAAAF,QAAE,EAC9B,iDACD,CAAC;EACD,CAAEC,6BAAkB,CAACE,QAAQ,GAAI,IAAAH,QAAE,EAClC,iEACD;AACD,CAAC;AAED,MAAMK,SAAS,GAAG,EAAE;AAEL,SAASC,YAAYA,CAAE;EAAEC,UAAU;EAAEC;AAAK,CAAC,EAAG;EAC5D,MAAMC,QAAQ,GAAGf,WAAW,CAAC,CAAC;EAC9B,MAAMgB,OAAO,GAAGf,UAAU,CAAC,CAAC;EAC5B,MAAMgB,gBAAgB,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAC1D,MAAM,CAAEC,WAAW,EAAEC,cAAc,EAAEC,kBAAkB,CAAE,GACxD,IAAAC,0BAAiB,EAAE,EAAG,CAAC;EACxB,MAAMC,mBAAmB,GAAG,IAAAC,yBAAgB,EAAEH,kBAAmB,CAAC;EAElE,MAAM,CAAEI,UAAU,EAAEC,aAAa,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACvD,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAF,iBAAQ,EAAE,CAAE,CAAC;EAErD,MAAMG,oBAAoB,GAAG,IAAAN,yBAAgB,EAAEC,UAAW,CAAC;EAE3D,MAAMM,4BAA4B,GACjCjB,IAAI,KAAKkB,wBAAa,CAACC,KAAK,IAAIpB,UAAU,KAAK,eAAe;EAE/D,MAAM;IAAEqB,QAAQ;IAAEC;EAAY,CAAC,GAAG,IAAAC,oBAAW,EAC5CtB,IAAI,EACJiB,4BAA4B,GAAG,EAAE,GAAGlB,UAAU,EAC9C;IACCwB,MAAM,EAAEd,mBAAmB;IAC3Be,UAAU,EACTR,oBAAoB,KAAK,KAAK,GAC3BS,SAAS,GACTT;EACL,CACD,CAAC;EAED,MAAMU,kBAAkB,GAAKC,KAAK,IAAM;IACvCZ,cAAc,CAAE,CAAE,CAAC;IACnBT,cAAc,CAAEqB,KAAM,CAAC;EACxB,CAAC;EAED,MAAMC,gBAAgB,GAAKD,KAAK,IAAM;IACrCZ,cAAc,CAAE,CAAE,CAAC;IACnBH,aAAa,CAAEe,KAAM,CAAC;EACvB,CAAC;EAED,MAAME,EAAE,GAAG,IAAAC,cAAK,EAAC,CAAC;EAClB,MAAMC,OAAO,GAAI,GAAGF,EAAI,QAAO;EAC/B,MAAMG,aAAa,GAAI,GAAGH,EAAI,cAAa;EAE3C,MAAMI,WAAW,GAAGb,QAAQ,CAACc,MAAM;EACnC,MAAMC,KAAK,GAAG7C,YAAY,CAAEqB,UAAU,CAAE;EACxC,MAAMyB,WAAW,GAAGxC,iBAAiB,CAAEe,UAAU,CAAE;EAEnD,MAAM0B,UAAU,GAAGjB,QAAQ,CAACc,MAAM;EAClC,MAAMI,SAAS,GAAGxB,WAAW,GAAG,CAAC;EACjC,MAAMyB,QAAQ,GAAGC,IAAI,CAACC,IAAI,CAAErB,QAAQ,CAACc,MAAM,GAAGrC,SAAU,CAAC;EAEzD,MAAM6C,IAAI,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC3B,OAAOvB,QAAQ,CAACwB,KAAK,CACpBN,SAAS,GAAGzC,SAAS,EACrByC,SAAS,GAAGzC,SAAS,GAAGA,SACzB,CAAC;EACF,CAAC,EAAE,CAAEyC,SAAS,EAAElB,QAAQ,CAAG,CAAC;EAE5B,MAAMyB,SAAS,GAAG,IAAAC,qBAAY,EAAEJ,IAAI,EAAE;IAAEK,IAAI,EAAE;EAAG,CAAE,CAAC;EAEpD,MAAMC,UAAU,GAAKC,IAAI,IAAM;IAC9B,MAAMC,eAAe,GAAGC,QAAQ,CAACC,aAAa,CAAE,qBAAsB,CAAC;IACvEF,eAAe,EAAEG,QAAQ,CAAE,CAAC,EAAE,CAAE,CAAC;IAEjCtC,cAAc,CAAEkC,IAAK,CAAC;EACvB,CAAC;EAED,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAsF,oBAAM;IAACC,SAAS,EAAC,4BAA4B;IAACC,OAAO,EAAG;EAAG,GAC3D,IAAAL,MAAA,CAAAC,aAAA,EAAC/E,OAAA,CAAAoF,OAAc;IACd7D,UAAU,EAAGA,UAAY;IACzBC,IAAI,EAAGA,IAAM;IACb+B,OAAO,EAAGA,OAAS;IACnBC,aAAa,EAAGA;EAAe,CAC/B,CAAC,EACF,IAAAsB,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAA0F,IAAI;IAACC,SAAS,EAAC,SAAS;IAACC,IAAI;EAAA,GAC3B5D,gBAAgB,IACjB,IAAAmD,MAAA,CAAAC,aAAA,EAAC1E,cAAA,CAAA+E,OAAa;IACbI,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,mBAAY,GAAGC,kBAAa;IAC7CC,KAAK,EAAG,IAAA5E,QAAE,EAAE,MAAO,CAAG;IACtB6E,OAAO,EAAGA,CAAA,KAAM;MACf;MACA;MACA,IACCpE,QAAQ,CAACqE,KAAK,EAAEC,QAAQ,KAAK,WAAW,EACvC;QACDrE,OAAO,CAACsE,IAAI,CAAC,CAAC;MACf,CAAC,MAAM;QACNtE,OAAO,CAACuE,IAAI,CAAE;UAAEC,IAAI,EAAE;QAAY,CAAE,CAAC;MACtC;IACD;EAAG,CACH,CACD,EACD,IAAApB,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAwG,SAAS;IAACjB,SAAS,EAAC;EAAkC,GACtD,IAAAJ,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAyG,aAAa;IACblB,SAAS,EAAC,4BAA4B;IACtCmB,QAAQ,EAAKlD,KAAK,IACjBD,kBAAkB,CAAEC,KAAM,CAC1B;IACDmD,WAAW,EAAG,IAAAtF,QAAE,EAAE,iBAAkB,CAAG;IACvC4E,KAAK,EAAG,IAAA5E,QAAE,EAAE,iBAAkB,CAAG;IACjCmC,KAAK,EAAGtB,WAAa;IACrB0E,uBAAuB;EAAA,CACvB,CACS,CAAC,EACV/E,IAAI,KAAKkB,wBAAa,CAACC,KAAK,IAC7B,IAAAmC,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAA6G,gCAAkB;IAClBtB,SAAS,EAAC,wCAAwC;IAClDuB,mBAAmB;IACnBb,KAAK,EAAG,IAAA5E,QAAE,EAAE,uBAAwB,CAAG;IACvCmC,KAAK,EAAGhB,UAAY;IACpBuE,OAAO;IACPL,QAAQ,EAAKlD,KAAK,IAAMC,gBAAgB,CAAED,KAAM,CAAG;IACnDoD,uBAAuB;EAAA,GAErBI,MAAM,CAACC,OAAO,CAAE9F,YAAa,CAAC,CAAC+F,GAAG,CACnC,CAAE,CAAEC,GAAG,EAAElB,KAAK,CAAE,KACf,IAAAd,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAoH,sCAAwB;IACxB7B,SAAS,EAAC,+CAA+C;IACzD4B,GAAG,EAAGA,GAAK;IACX3D,KAAK,EAAG2D,GAAK;IACblB,KAAK,EAAGA;EAAO,CACf,CAEH,CACmB,CAEhB,CACC,CAAC,EACT,IAAAd,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAsF,oBAAM;IACNC,SAAS,EAAC,6BAA6B;IACvC8B,OAAO,EAAC,YAAY;IACpB7B,OAAO,EAAG;EAAG,GAEXhD,UAAU,KAAK,KAAK,IACrB,IAAA2C,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAsF,oBAAM;IAACC,SAAS,EAAC;EAAoC,GACrD,IAAAJ,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAsH,qBAAO;IAACC,EAAE,EAAC,IAAI;IAACC,KAAK,EAAG,CAAG;IAAC9D,EAAE,EAAGE;EAAS,GACxCI,KACM,CAAC,EACRC,WAAW,GACZ,IAAAkB,MAAA,CAAAC,aAAA,EAACpF,WAAA,CAAAyH,kBAAI;IAACC,OAAO,EAAC,OAAO;IAACH,EAAE,EAAC,GAAG;IAAC7D,EAAE,EAAGG;EAAe,GAC9CI,WACG,CAAC,GACJ,IACG,CACR,EACCH,WAAW,IACZ,IAAAqB,MAAA,CAAAC,aAAA,EAAC7E,KAAA,CAAAkF,OAAI;IACJ7D,UAAU,EAAGA,UAAY;IACzB+F,KAAK,EAAGjD,SAAW;IACnB,mBAAkBd,OAAS;IAC3B,oBAAmBC;EAAe,CAClC,CACD,EACC,CAAEX,WAAW,IAAI,CAAEY,WAAW,IAAI,IAAAqB,MAAA,CAAAC,aAAA,EAAC5E,WAAA,CAAAiF,OAAU,MAAE,CAC1C,CAAC,EACPrB,QAAQ,GAAG,CAAC,IACb,IAAAe,MAAA,CAAAC,aAAA,EAACtE,WAAA,CAAA2E,OAAU;IACV9C,WAAW,EAAGA,WAAa;IAC3ByB,QAAQ,EAAGA,QAAU;IACrBS,UAAU,EAAGA,UAAY;IACzBX,UAAU,EAAGA;EAAY,CACzB,CAED,CAAC;AAEL"}
1
+ {"version":3,"names":["_element","require","_components","_i18n","_icons","_router","_compose","_header","_interopRequireDefault","_grid","_noPatterns","_usePatterns","_sidebarButton","_useDebouncedInput","_lockUnlock","_constants","_pagination","useLocation","useHistory","unlock","routerPrivateApis","SYNC_FILTERS","all","_x","PATTERN_SYNC_TYPES","full","unsynced","SYNC_DESCRIPTIONS","__","PAGE_SIZE","PatternsList","categoryId","type","location","history","isMobileViewport","useViewportMatch","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","deferredFilterValue","useDeferredValue","syncFilter","setSyncFilter","useState","currentPage","setCurrentPage","deferredSyncedFilter","isUncategorizedThemePatterns","PATTERN_TYPES","theme","patterns","isResolving","usePatterns","search","syncStatus","undefined","updateSearchFilter","value","updateSyncFilter","id","useId","titleId","descriptionId","hasPatterns","length","title","description","totalItems","pageIndex","numPages","Math","ceil","list","useMemo","slice","asyncList","useAsyncList","step","changePage","page","scrollContainer","document","querySelector","scrollTo","_react","createElement","Fragment","__experimentalVStack","className","spacing","default","Flex","alignment","wrap","icon","isRTL","chevronRight","chevronLeft","label","onClick","state","backPath","back","push","path","FlexBlock","SearchControl","onChange","placeholder","__nextHasNoMarginBottom","__experimentalToggleGroupControl","hideLabelFromVision","isBlock","Object","entries","map","key","__experimentalToggleGroupControlOption","justify","__experimentalHeading","as","level","__experimentalText","variant","items"],"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId, useMemo } from '@wordpress/element';\nimport {\n\tSearchControl,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PatternsHeader from './header';\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport useDebouncedInput from '../../utils/use-debounced-input';\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';\nimport Pagination from './pagination';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: _x( 'All', 'Option that shows all patterns' ),\n\t[ PATTERN_SYNC_TYPES.full ]: _x(\n\t\t'Synced',\n\t\t'Option that shows all synchronized patterns'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: _x(\n\t\t'Not synced',\n\t\t'Option that shows all patterns that are not synchronized'\n\t),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ PATTERN_SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\n\nconst PAGE_SIZE = 20;\n\nexport default function PatternsList( { categoryId, type } ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( '' );\n\tconst deferredFilterValue = useDeferredValue( delayedFilterValue );\n\n\tconst [ syncFilter, setSyncFilter ] = useState( 'all' );\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\n\tconst deferredSyncedFilter = useDeferredValue( syncFilter );\n\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: deferredFilterValue,\n\t\t\tsyncStatus:\n\t\t\t\tdeferredSyncedFilter === 'all'\n\t\t\t\t\t? undefined\n\t\t\t\t\t: deferredSyncedFilter,\n\t\t}\n\t);\n\n\tconst updateSearchFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetFilterValue( value );\n\t};\n\n\tconst updateSyncFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetSyncFilter( value );\n\t};\n\n\tconst id = useId();\n\tconst titleId = `${ id }-title`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst hasPatterns = patterns.length;\n\tconst title = SYNC_FILTERS[ syncFilter ];\n\tconst description = SYNC_DESCRIPTIONS[ syncFilter ];\n\n\tconst totalItems = patterns.length;\n\tconst pageIndex = currentPage - 1;\n\tconst numPages = Math.ceil( patterns.length / PAGE_SIZE );\n\n\tconst list = useMemo( () => {\n\t\treturn patterns.slice(\n\t\t\tpageIndex * PAGE_SIZE,\n\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t);\n\t}, [ pageIndex, patterns ] );\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack className=\"edit-site-patterns__header\" spacing={ 6 }>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ titleId }\n\t\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t\t/>\n\t\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// Go back in history if we came from the Patterns page.\n\t\t\t\t\t\t\t\t// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tlocation.state?.backPath === '/patterns'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateSearchFilter( value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t{ type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tonChange={ ( value ) => updateSyncFilter( value ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter-option\"\n\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\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</ToggleGroupControl>\n\t\t\t\t\t) }\n\t\t\t\t</Flex>\n\t\t\t</VStack>\n\t\t\t<VStack\n\t\t\t\tclassName=\"edit-site-patterns__section\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 6 }\n\t\t\t>\n\t\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\titems={ asyncList }\n\t\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t\t</VStack>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\tchangePage={ changePage }\n\t\t\t\t\ttotalItems={ totalItems }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -92,7 +92,7 @@ const selectThemePatterns = (0, _rememo.default)(select => {
92
92
  const settings = getSettings();
93
93
  const blockPatterns = (_settings$__experimen = settings.__experimentalAdditionalBlockPatterns) !== null && _settings$__experimen !== void 0 ? _settings$__experimen : settings.__experimentalBlockPatterns;
94
94
  const restBlockPatterns = select(_coreData.store).getBlockPatterns();
95
- const patterns = [...(blockPatterns || []), ...(restBlockPatterns || [])].filter(pattern => !_constants.PATTERN_CORE_SOURCES.includes(pattern.source)).filter(_utils.filterOutDuplicatesByName).filter(pattern => pattern.inserter !== false).map(pattern => ({
95
+ const patterns = [...(blockPatterns || []), ...(restBlockPatterns || [])].filter(pattern => !_constants.EXCLUDED_PATTERN_SOURCES.includes(pattern.source)).filter(_utils.filterOutDuplicatesByName).filter(pattern => pattern.inserter !== false).map(pattern => ({
96
96
  ...pattern,
97
97
  keywords: pattern.keywords || [],
98
98
  type: _constants.PATTERN_TYPES.theme,
@@ -117,7 +117,7 @@ const selectPatterns = (0, _rememo.default)((select, categoryId, syncStatus, sea
117
117
  // User patterns can have their sync statuses checked directly
118
118
  // Non-user patterns are all unsynced for the time being.
119
119
  patterns = patterns.filter(pattern => {
120
- return pattern.id ? pattern.syncStatus === syncStatus : syncStatus === _constants.PATTERN_SYNC_TYPES.unsynced;
120
+ return pattern.type === _constants.PATTERN_TYPES.user ? pattern.syncStatus === syncStatus : syncStatus === _constants.PATTERN_SYNC_TYPES.unsynced;
121
121
  });
122
122
  }
123
123
  if (categoryId) {
@@ -1 +1 @@
1
- {"version":3,"names":["_rememo","_interopRequireDefault","require","_blocks","_data","_coreData","_editor","_htmlEntities","_utils","_constants","_lockUnlock","_searchItems","_store","EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","parse","content","raw","__unstableSkipMigrationLogs","categories","area","description","isCustom","source","TEMPLATE_ORIGINS","custom","keywords","id","name","title","decodeEntities","rendered","type","selectTemplatePartsAsPatterns","createSelector","select","categoryId","search","_getEntityRecords","getEntityRecords","getIsResolving","coreStore","__experimentalGetDefaultTemplatePartAreas","editorStore","query","per_page","rawTemplateParts","TEMPLATE_PART_POST_TYPE","templateParts","map","knownAreas","templatePartAreas","templatePartHasCategory","item","category","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","includes","isResolving","patterns","searchItems","hasCategory","selectThemePatterns","_settings$__experimen","getSettings","unlock","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","PATTERN_CORE_SOURCES","filterOutDuplicatesByName","inserter","PATTERN_TYPES","selectPatterns","syncStatus","themePatterns","userPatterns","selectUserPatterns","PATTERN_SYNC_TYPES","unsynced","currentCategory","hasOwnProperty","patternBlockToPattern","patternBlock","wp_pattern_category","length","patternCategoryId","get","termLabels","label","wp_pattern_sync_status","full","user","getUserPatternCategories","records","userPatternCategories","Map","forEach","userCategory","set","record","usePatterns","categoryType","useSelect","exports","_default","default"],"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { filterOutDuplicatesByName } from './utils';\nimport {\n\tPATTERN_CORE_SOURCES,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === TEMPLATE_ORIGINS.custom,\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst selectTemplatePartsAsPatterns = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\t\tconst { __experimentalGetDefaultTemplatePartAreas } =\n\t\t\tselect( editorStore );\n\t\tconst query = { per_page: -1 };\n\t\tconst rawTemplateParts =\n\t\t\tgetEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??\n\t\t\tEMPTY_PATTERN_LIST;\n\t\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\t\ttemplatePartToPattern( templatePart )\n\t\t);\n\n\t\t// In the case where a custom template part area has been removed we need\n\t\t// the current list of areas to cross check against so orphaned template\n\t\t// parts can be treated as uncategorized.\n\t\tconst knownAreas = __experimentalGetDefaultTemplatePartAreas() || [];\n\t\tconst templatePartAreas = knownAreas.map( ( area ) => area.area );\n\n\t\tconst templatePartHasCategory = ( item, category ) => {\n\t\t\tif ( category !== TEMPLATE_PART_AREA_DEFAULT_CATEGORY ) {\n\t\t\t\treturn item.templatePart.area === category;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\titem.templatePart.area === category ||\n\t\t\t\t! templatePartAreas.includes( item.templatePart.area )\n\t\t\t);\n\t\t};\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tquery,\n\t\t] );\n\n\t\tconst patterns = searchItems( templateParts, search, {\n\t\t\tcategoryId,\n\t\t\thasCategory: templatePartHasCategory,\n\t\t} );\n\n\t\treturn { patterns, isResolving };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t]\n);\n\nconst selectThemePatterns = createSelector(\n\t( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst settings = getSettings();\n\t\tconst blockPatterns =\n\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\tsettings.__experimentalBlockPatterns;\n\n\t\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\t\tconst patterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t]\n\t\t\t.filter(\n\t\t\t\t( pattern ) => ! PATTERN_CORE_SOURCES.includes( pattern.source )\n\t\t\t)\n\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t.filter( ( pattern ) => pattern.inserter !== false )\n\t\t\t.map( ( pattern ) => ( {\n\t\t\t\t...pattern,\n\t\t\t\tkeywords: pattern.keywords || [],\n\t\t\t\ttype: PATTERN_TYPES.theme,\n\t\t\t\tblocks: parse( pattern.content, {\n\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t} ),\n\t\t\t} ) );\n\n\t\treturn { patterns, isResolving: false };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst { patterns: themePatterns } = selectThemePatterns( select );\n\t\tconst { patterns: userPatterns } = selectUserPatterns( select );\n\n\t\tlet patterns = [\n\t\t\t...( themePatterns || [] ),\n\t\t\t...( userPatterns || [] ),\n\t\t];\n\n\t\tif ( syncStatus ) {\n\t\t\t// User patterns can have their sync statuses checked directly\n\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\tpatterns = patterns.filter( ( pattern ) => {\n\t\t\t\treturn pattern.id\n\t\t\t\t\t? pattern.syncStatus === syncStatus\n\t\t\t\t\t: syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\t\t\t} );\n\t\t}\n\n\t\tif ( categoryId ) {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\tcategoryId,\n\t\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t\t} );\n\t\t} else {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\thasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),\n\t\t\t} );\n\t\t}\n\t\treturn { patterns, isResolving: false };\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\nconst patternBlockToPattern = ( patternBlock, categories ) => ( {\n\tblocks: parse( patternBlock.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\t...( patternBlock.wp_pattern_category.length > 0 && {\n\t\tcategories: patternBlock.wp_pattern_category.map(\n\t\t\t( patternCategoryId ) =>\n\t\t\t\tcategories && categories.get( patternCategoryId )\n\t\t\t\t\t? categories.get( patternCategoryId ).slug\n\t\t\t\t\t: patternCategoryId\n\t\t),\n\t} ),\n\ttermLabels: patternBlock.wp_pattern_category.map( ( patternCategoryId ) =>\n\t\tcategories?.get( patternCategoryId )\n\t\t\t? categories.get( patternCategoryId ).label\n\t\t\t: patternCategoryId\n\t),\n\tid: patternBlock.id,\n\tname: patternBlock.slug,\n\tsyncStatus: patternBlock.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,\n\ttitle: patternBlock.title.raw,\n\ttype: PATTERN_TYPES.user,\n\tpatternBlock,\n} );\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst records = getEntityRecords(\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery\n\t\t);\n\t\tconst userPatternCategories = getUserPatternCategories();\n\t\tconst categories = new Map();\n\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\tcategories.set( userCategory.id, userCategory )\n\t\t);\n\t\tlet patterns = records\n\t\t\t? records.map( ( record ) =>\n\t\t\t\t\tpatternBlockToPattern( record, categories )\n\t\t\t )\n\t\t\t: EMPTY_PATTERN_LIST;\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery,\n\t\t] );\n\n\t\tif ( syncStatus ) {\n\t\t\tpatterns = patterns.filter(\n\t\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t\t);\n\t\t}\n\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t\t// catch-all category for user created patterns, so it has\n\t\t\t// to be in the category.\n\t\t\thasCategory: () => true,\n\t\t} );\n\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving,\n\t\t\tcategories: userPatternCategories,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords( 'postType', PATTERN_TYPES.user, {\n\t\t\tper_page: -1,\n\t\t} ),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( coreStore ).getUserPatternCategories(),\n\t]\n);\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( categoryType === PATTERN_TYPES.theme ) {\n\t\t\t\treturn selectPatterns( select, categoryId, syncStatus, search );\n\t\t\t} else if ( categoryType === PATTERN_TYPES.user ) {\n\t\t\t\treturn selectUserPatterns( select, syncStatus, search );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpatterns: EMPTY_PATTERN_LIST,\n\t\t\t\tisResolving: false,\n\t\t\t};\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_rememo","_interopRequireDefault","require","_blocks","_data","_coreData","_editor","_htmlEntities","_utils","_constants","_lockUnlock","_searchItems","_store","EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","parse","content","raw","__unstableSkipMigrationLogs","categories","area","description","isCustom","source","TEMPLATE_ORIGINS","custom","keywords","id","name","title","decodeEntities","rendered","type","selectTemplatePartsAsPatterns","createSelector","select","categoryId","search","_getEntityRecords","getEntityRecords","getIsResolving","coreStore","__experimentalGetDefaultTemplatePartAreas","editorStore","query","per_page","rawTemplateParts","TEMPLATE_PART_POST_TYPE","templateParts","map","knownAreas","templatePartAreas","templatePartHasCategory","item","category","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","includes","isResolving","patterns","searchItems","hasCategory","selectThemePatterns","_settings$__experimen","getSettings","unlock","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","EXCLUDED_PATTERN_SOURCES","filterOutDuplicatesByName","inserter","PATTERN_TYPES","selectPatterns","syncStatus","themePatterns","userPatterns","selectUserPatterns","user","PATTERN_SYNC_TYPES","unsynced","currentCategory","hasOwnProperty","patternBlockToPattern","patternBlock","wp_pattern_category","length","patternCategoryId","get","termLabels","label","wp_pattern_sync_status","full","getUserPatternCategories","records","userPatternCategories","Map","forEach","userCategory","set","record","usePatterns","categoryType","useSelect","exports","_default","default"],"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { filterOutDuplicatesByName } from './utils';\nimport {\n\tEXCLUDED_PATTERN_SOURCES,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === TEMPLATE_ORIGINS.custom,\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst selectTemplatePartsAsPatterns = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\t\tconst { __experimentalGetDefaultTemplatePartAreas } =\n\t\t\tselect( editorStore );\n\t\tconst query = { per_page: -1 };\n\t\tconst rawTemplateParts =\n\t\t\tgetEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??\n\t\t\tEMPTY_PATTERN_LIST;\n\t\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\t\ttemplatePartToPattern( templatePart )\n\t\t);\n\n\t\t// In the case where a custom template part area has been removed we need\n\t\t// the current list of areas to cross check against so orphaned template\n\t\t// parts can be treated as uncategorized.\n\t\tconst knownAreas = __experimentalGetDefaultTemplatePartAreas() || [];\n\t\tconst templatePartAreas = knownAreas.map( ( area ) => area.area );\n\n\t\tconst templatePartHasCategory = ( item, category ) => {\n\t\t\tif ( category !== TEMPLATE_PART_AREA_DEFAULT_CATEGORY ) {\n\t\t\t\treturn item.templatePart.area === category;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\titem.templatePart.area === category ||\n\t\t\t\t! templatePartAreas.includes( item.templatePart.area )\n\t\t\t);\n\t\t};\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tquery,\n\t\t] );\n\n\t\tconst patterns = searchItems( templateParts, search, {\n\t\t\tcategoryId,\n\t\t\thasCategory: templatePartHasCategory,\n\t\t} );\n\n\t\treturn { patterns, isResolving };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t]\n);\n\nconst selectThemePatterns = createSelector(\n\t( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst settings = getSettings();\n\t\tconst blockPatterns =\n\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\tsettings.__experimentalBlockPatterns;\n\n\t\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\t\tconst patterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t]\n\t\t\t.filter(\n\t\t\t\t( pattern ) =>\n\t\t\t\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source )\n\t\t\t)\n\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t.filter( ( pattern ) => pattern.inserter !== false )\n\t\t\t.map( ( pattern ) => ( {\n\t\t\t\t...pattern,\n\t\t\t\tkeywords: pattern.keywords || [],\n\t\t\t\ttype: PATTERN_TYPES.theme,\n\t\t\t\tblocks: parse( pattern.content, {\n\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t} ),\n\t\t\t} ) );\n\n\t\treturn { patterns, isResolving: false };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst { patterns: themePatterns } = selectThemePatterns( select );\n\t\tconst { patterns: userPatterns } = selectUserPatterns( select );\n\n\t\tlet patterns = [\n\t\t\t...( themePatterns || [] ),\n\t\t\t...( userPatterns || [] ),\n\t\t];\n\n\t\tif ( syncStatus ) {\n\t\t\t// User patterns can have their sync statuses checked directly\n\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\tpatterns = patterns.filter( ( pattern ) => {\n\t\t\t\treturn pattern.type === PATTERN_TYPES.user\n\t\t\t\t\t? pattern.syncStatus === syncStatus\n\t\t\t\t\t: syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\t\t\t} );\n\t\t}\n\n\t\tif ( categoryId ) {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\tcategoryId,\n\t\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t\t} );\n\t\t} else {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\thasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),\n\t\t\t} );\n\t\t}\n\t\treturn { patterns, isResolving: false };\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\nconst patternBlockToPattern = ( patternBlock, categories ) => ( {\n\tblocks: parse( patternBlock.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\t...( patternBlock.wp_pattern_category.length > 0 && {\n\t\tcategories: patternBlock.wp_pattern_category.map(\n\t\t\t( patternCategoryId ) =>\n\t\t\t\tcategories && categories.get( patternCategoryId )\n\t\t\t\t\t? categories.get( patternCategoryId ).slug\n\t\t\t\t\t: patternCategoryId\n\t\t),\n\t} ),\n\ttermLabels: patternBlock.wp_pattern_category.map( ( patternCategoryId ) =>\n\t\tcategories?.get( patternCategoryId )\n\t\t\t? categories.get( patternCategoryId ).label\n\t\t\t: patternCategoryId\n\t),\n\tid: patternBlock.id,\n\tname: patternBlock.slug,\n\tsyncStatus: patternBlock.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,\n\ttitle: patternBlock.title.raw,\n\ttype: PATTERN_TYPES.user,\n\tpatternBlock,\n} );\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst records = getEntityRecords(\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery\n\t\t);\n\t\tconst userPatternCategories = getUserPatternCategories();\n\t\tconst categories = new Map();\n\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\tcategories.set( userCategory.id, userCategory )\n\t\t);\n\t\tlet patterns = records\n\t\t\t? records.map( ( record ) =>\n\t\t\t\t\tpatternBlockToPattern( record, categories )\n\t\t\t )\n\t\t\t: EMPTY_PATTERN_LIST;\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery,\n\t\t] );\n\n\t\tif ( syncStatus ) {\n\t\t\tpatterns = patterns.filter(\n\t\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t\t);\n\t\t}\n\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t\t// catch-all category for user created patterns, so it has\n\t\t\t// to be in the category.\n\t\t\thasCategory: () => true,\n\t\t} );\n\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving,\n\t\t\tcategories: userPatternCategories,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords( 'postType', PATTERN_TYPES.user, {\n\t\t\tper_page: -1,\n\t\t} ),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( coreStore ).getUserPatternCategories(),\n\t]\n);\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( categoryType === PATTERN_TYPES.theme ) {\n\t\t\t\treturn selectPatterns( select, categoryId, syncStatus, search );\n\t\t\t} else if ( categoryType === PATTERN_TYPES.user ) {\n\t\t\t\treturn selectUserPatterns( select, syncStatus, search );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpatterns: EMPTY_PATTERN_LIST,\n\t\t\t\tisResolving: false,\n\t\t\t};\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"],"mappings":"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"}
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = DataviewsTemplates;
8
+ var _react = require("react");
9
+ var _removeAccents = _interopRequireDefault(require("remove-accents"));
10
+ var _components = require("@wordpress/components");
11
+ var _i18n = require("@wordpress/i18n");
12
+ var _element = require("@wordpress/element");
13
+ var _coreData = require("@wordpress/core-data");
14
+ var _htmlEntities = require("@wordpress/html-entities");
15
+ var _blocks = require("@wordpress/blocks");
16
+ var _blockEditor = require("@wordpress/block-editor");
17
+ var _page = _interopRequireDefault(require("../page"));
18
+ var _link = _interopRequireDefault(require("../routes/link"));
19
+ var _addedBy = require("../list/added-by");
20
+ var _constants = require("../../utils/constants");
21
+ var _dataviews = require("../dataviews");
22
+ var _constants2 = require("../dataviews/constants");
23
+ var _templateActions = require("./template-actions");
24
+ var _usePatternSettings = _interopRequireDefault(require("../page-patterns/use-pattern-settings"));
25
+ var _lockUnlock = require("../../lock-unlock");
26
+ /**
27
+ * External dependencies
28
+ */
29
+
30
+ /**
31
+ * WordPress dependencies
32
+ */
33
+
34
+ /**
35
+ * Internal dependencies
36
+ */
37
+
38
+ const {
39
+ ExperimentalBlockEditorProvider,
40
+ useGlobalStyle
41
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
42
+ const EMPTY_ARRAY = [];
43
+ const defaultConfigPerViewType = {
44
+ list: {},
45
+ grid: {
46
+ mediaField: 'preview',
47
+ primaryField: 'title'
48
+ }
49
+ };
50
+ const DEFAULT_VIEW = {
51
+ type: 'list',
52
+ search: '',
53
+ page: 1,
54
+ perPage: 20,
55
+ // All fields are visible by default, so it's
56
+ // better to keep track of the hidden ones.
57
+ hiddenFields: ['preview'],
58
+ layout: {},
59
+ filters: []
60
+ };
61
+ function normalizeSearchInput(input = '') {
62
+ return (0, _removeAccents.default)(input.trim().toLowerCase());
63
+ }
64
+
65
+ // TODO: these are going to be reused in the template part list.
66
+ // That's the reason for leaving the template parts code for now.
67
+ function TemplateTitle({
68
+ item
69
+ }) {
70
+ const {
71
+ isCustomized
72
+ } = (0, _addedBy.useAddedBy)(item.type, item.id);
73
+ return (0, _react.createElement)(_components.__experimentalVStack, {
74
+ spacing: 1
75
+ }, (0, _react.createElement)(_components.__experimentalHeading, {
76
+ as: "h3",
77
+ level: 5
78
+ }, (0, _react.createElement)(_link.default, {
79
+ params: {
80
+ postId: item.id,
81
+ postType: item.type,
82
+ canvas: 'edit'
83
+ }
84
+ }, (0, _htmlEntities.decodeEntities)(item.title?.rendered || item.slug) || (0, _i18n.__)('(no title)'))), isCustomized && (0, _react.createElement)("span", {
85
+ className: "edit-site-list-added-by__customized-info"
86
+ }, item.type === _constants.TEMPLATE_POST_TYPE ? (0, _i18n._x)('Customized', 'template') : (0, _i18n._x)('Customized', 'template part')));
87
+ }
88
+ function AuthorField({
89
+ item
90
+ }) {
91
+ const {
92
+ text,
93
+ icon,
94
+ imageUrl
95
+ } = (0, _addedBy.useAddedBy)(item.type, item.id);
96
+ return (0, _react.createElement)(_components.__experimentalHStack, {
97
+ alignment: "left",
98
+ spacing: 1
99
+ }, imageUrl ? (0, _react.createElement)(_addedBy.AvatarImage, {
100
+ imageUrl: imageUrl
101
+ }) : (0, _react.createElement)("div", {
102
+ className: "edit-site-list-added-by__icon"
103
+ }, (0, _react.createElement)(_components.Icon, {
104
+ icon: icon
105
+ })), (0, _react.createElement)("span", null, text));
106
+ }
107
+ function TemplatePreview({
108
+ content,
109
+ viewType
110
+ }) {
111
+ const settings = (0, _usePatternSettings.default)();
112
+ const [backgroundColor = 'white'] = useGlobalStyle('color.background');
113
+ const blocks = (0, _element.useMemo)(() => {
114
+ return (0, _blocks.parse)(content);
115
+ }, [content]);
116
+ if (!blocks?.length) {
117
+ return null;
118
+ }
119
+ // Wrap everything in a block editor provider to ensure 'styles' that are needed
120
+ // for the previews are synced between the site editor store and the block editor store.
121
+ // Additionally we need to have the `__experimentalBlockPatterns` setting in order to
122
+ // render patterns inside the previews.
123
+ // TODO: Same approach is used in the patterns list and it becomes obvious that some of
124
+ // the block editor settings are needed in context where we don't have the block editor.
125
+ // Explore how we can solve this in a better way.
126
+ return (0, _react.createElement)(ExperimentalBlockEditorProvider, {
127
+ settings: settings
128
+ }, (0, _react.createElement)("div", {
129
+ className: `page-templates-preview-field is-viewtype-${viewType}`,
130
+ style: {
131
+ backgroundColor
132
+ }
133
+ }, (0, _react.createElement)(_blockEditor.BlockPreview, {
134
+ blocks: blocks
135
+ })));
136
+ }
137
+ function DataviewsTemplates() {
138
+ const [view, setView] = (0, _element.useState)(DEFAULT_VIEW);
139
+ const {
140
+ records: allTemplates,
141
+ isResolving: isLoadingData
142
+ } = (0, _coreData.useEntityRecords)('postType', _constants.TEMPLATE_POST_TYPE, {
143
+ per_page: -1
144
+ });
145
+ const authors = (0, _element.useMemo)(() => {
146
+ if (!allTemplates) {
147
+ return EMPTY_ARRAY;
148
+ }
149
+ const authorsSet = new Set();
150
+ allTemplates.forEach(template => {
151
+ authorsSet.add(template.author_text);
152
+ });
153
+ return Array.from(authorsSet).map(author => ({
154
+ value: author,
155
+ label: author
156
+ }));
157
+ }, [allTemplates]);
158
+ const fields = (0, _element.useMemo)(() => [{
159
+ header: (0, _i18n.__)('Preview'),
160
+ id: 'preview',
161
+ render: ({
162
+ item,
163
+ view: {
164
+ type: viewType
165
+ }
166
+ }) => {
167
+ return (0, _react.createElement)(TemplatePreview, {
168
+ content: item.content.raw,
169
+ viewType: viewType
170
+ });
171
+ },
172
+ minWidth: 120,
173
+ maxWidth: 120,
174
+ enableSorting: false
175
+ }, {
176
+ header: (0, _i18n.__)('Template'),
177
+ id: 'title',
178
+ getValue: ({
179
+ item
180
+ }) => item.title?.rendered || item.slug,
181
+ render: ({
182
+ item
183
+ }) => (0, _react.createElement)(TemplateTitle, {
184
+ item: item
185
+ }),
186
+ maxWidth: 400,
187
+ enableHiding: false
188
+ }, {
189
+ header: (0, _i18n.__)('Description'),
190
+ id: 'description',
191
+ getValue: ({
192
+ item
193
+ }) => item.description,
194
+ render: ({
195
+ item
196
+ }) => {
197
+ return item.description ? (0, _htmlEntities.decodeEntities)(item.description) : (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalText, {
198
+ variant: "muted",
199
+ "aria-hidden": "true"
200
+ }, "\u2014"), (0, _react.createElement)(_components.VisuallyHidden, null, (0, _i18n.__)('No description.')));
201
+ },
202
+ maxWidth: 200,
203
+ enableSorting: false
204
+ }, {
205
+ header: (0, _i18n.__)('Author'),
206
+ id: 'author',
207
+ getValue: ({
208
+ item
209
+ }) => item.author_text,
210
+ render: ({
211
+ item
212
+ }) => {
213
+ return (0, _react.createElement)(AuthorField, {
214
+ item: item
215
+ });
216
+ },
217
+ enableHiding: false,
218
+ type: _constants2.ENUMERATION_TYPE,
219
+ elements: authors
220
+ }], [authors]);
221
+ const {
222
+ shownTemplates,
223
+ paginationInfo
224
+ } = (0, _element.useMemo)(() => {
225
+ if (!allTemplates) {
226
+ return {
227
+ shownTemplates: EMPTY_ARRAY,
228
+ paginationInfo: {
229
+ totalItems: 0,
230
+ totalPages: 0
231
+ }
232
+ };
233
+ }
234
+ let filteredTemplates = [...allTemplates];
235
+ // Handle global search.
236
+ if (view.search) {
237
+ const normalizedSearch = normalizeSearchInput(view.search);
238
+ filteredTemplates = filteredTemplates.filter(item => {
239
+ const title = item.title?.rendered || item.slug;
240
+ return normalizeSearchInput(title).includes(normalizedSearch) || normalizeSearchInput(item.description).includes(normalizedSearch);
241
+ });
242
+ }
243
+
244
+ // Handle filters.
245
+ if (view.filters.length > 0) {
246
+ view.filters.forEach(filter => {
247
+ if (filter.field === 'author' && filter.operator === _constants2.OPERATOR_IN && !!filter.value) {
248
+ filteredTemplates = filteredTemplates.filter(item => {
249
+ return item.author_text === filter.value;
250
+ });
251
+ }
252
+ });
253
+ }
254
+
255
+ // Handle sorting.
256
+ if (view.sort) {
257
+ const stringSortingFields = ['title', 'author'];
258
+ const fieldId = view.sort.field;
259
+ if (stringSortingFields.includes(fieldId)) {
260
+ const fieldToSort = fields.find(field => {
261
+ return field.id === fieldId;
262
+ });
263
+ filteredTemplates.sort((a, b) => {
264
+ var _fieldToSort$getValue, _fieldToSort$getValue2;
265
+ const valueA = (_fieldToSort$getValue = fieldToSort.getValue({
266
+ item: a
267
+ })) !== null && _fieldToSort$getValue !== void 0 ? _fieldToSort$getValue : '';
268
+ const valueB = (_fieldToSort$getValue2 = fieldToSort.getValue({
269
+ item: b
270
+ })) !== null && _fieldToSort$getValue2 !== void 0 ? _fieldToSort$getValue2 : '';
271
+ return view.sort.direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
272
+ });
273
+ }
274
+ }
275
+
276
+ // Handle pagination.
277
+ const start = (view.page - 1) * view.perPage;
278
+ const totalItems = filteredTemplates?.length || 0;
279
+ filteredTemplates = filteredTemplates?.slice(start, start + view.perPage);
280
+ return {
281
+ shownTemplates: filteredTemplates,
282
+ paginationInfo: {
283
+ totalItems,
284
+ totalPages: Math.ceil(totalItems / view.perPage)
285
+ }
286
+ };
287
+ }, [allTemplates, view, fields]);
288
+ const resetTemplateAction = (0, _templateActions.useResetTemplateAction)();
289
+ const actions = (0, _element.useMemo)(() => [resetTemplateAction, _templateActions.deleteTemplateAction, _templateActions.renameTemplateAction], [resetTemplateAction]);
290
+ const onChangeView = (0, _element.useCallback)(viewUpdater => {
291
+ let updatedView = typeof viewUpdater === 'function' ? viewUpdater(view) : viewUpdater;
292
+ if (updatedView.type !== view.type) {
293
+ updatedView = {
294
+ ...updatedView,
295
+ layout: {
296
+ ...defaultConfigPerViewType[updatedView.type]
297
+ }
298
+ };
299
+ }
300
+ setView(updatedView);
301
+ }, [view, setView]);
302
+ return (0, _react.createElement)(_page.default, {
303
+ title: (0, _i18n.__)('Templates')
304
+ }, (0, _react.createElement)(_dataviews.DataViews, {
305
+ paginationInfo: paginationInfo,
306
+ fields: fields,
307
+ actions: actions,
308
+ data: shownTemplates,
309
+ getItemId: item => item.id,
310
+ isLoading: isLoadingData,
311
+ view: view,
312
+ onChangeView: onChangeView,
313
+ supportedLayouts: ['list', 'grid']
314
+ }));
315
+ }
316
+ //# sourceMappingURL=dataviews-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_removeAccents","_interopRequireDefault","require","_components","_i18n","_element","_coreData","_htmlEntities","_blocks","_blockEditor","_page","_link","_addedBy","_constants","_dataviews","_constants2","_templateActions","_usePatternSettings","_lockUnlock","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","EMPTY_ARRAY","defaultConfigPerViewType","list","grid","mediaField","primaryField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","normalizeSearchInput","input","removeAccents","trim","toLowerCase","TemplateTitle","item","isCustomized","useAddedBy","id","_react","createElement","__experimentalVStack","spacing","__experimentalHeading","as","level","default","params","postId","postType","canvas","decodeEntities","title","rendered","slug","__","className","TEMPLATE_POST_TYPE","_x","AuthorField","text","icon","imageUrl","__experimentalHStack","alignment","AvatarImage","Icon","TemplatePreview","content","viewType","settings","usePatternSettings","backgroundColor","blocks","useMemo","parse","length","style","BlockPreview","DataviewsTemplates","view","setView","useState","records","allTemplates","isResolving","isLoadingData","useEntityRecords","per_page","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","value","label","fields","header","render","raw","minWidth","maxWidth","enableSorting","getValue","enableHiding","description","Fragment","__experimentalText","variant","VisuallyHidden","ENUMERATION_TYPE","elements","shownTemplates","paginationInfo","totalItems","totalPages","filteredTemplates","normalizedSearch","filter","includes","field","operator","OPERATOR_IN","sort","stringSortingFields","fieldId","fieldToSort","find","a","b","_fieldToSort$getValue","_fieldToSort$getValue2","valueA","valueB","direction","localeCompare","start","slice","Math","ceil","resetTemplateAction","useResetTemplateAction","actions","deleteTemplateAction","renameTemplateAction","onChangeView","useCallback","viewUpdater","updatedView","DataViews","data","getItemId","isLoading","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-templates/dataviews-templates.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport { useAddedBy, AvatarImage } from '../list/added-by';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { DataViews } from '../dataviews';\nimport { ENUMERATION_TYPE, OPERATOR_IN } from '../dataviews/constants';\nimport {\n\tuseResetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './template-actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\tlist: {},\n\tgrid: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: 'list',\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: {},\n\tfilters: [],\n};\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\n// TODO: these are going to be reused in the template part list.\n// That's the reason for leaving the template parts code for now.\nfunction TemplateTitle( { item } ) {\n\tconst { isCustomized } = useAddedBy( item.type, item.id );\n\treturn (\n\t\t<VStack spacing={ 1 }>\n\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t<Link\n\t\t\t\t\tparams={ {\n\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ decodeEntities( item.title?.rendered || item.slug ) ||\n\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t</Link>\n\t\t\t</Heading>\n\t\t\t{ isCustomized && (\n\t\t\t\t<span className=\"edit-site-list-added-by__customized-info\">\n\t\t\t\t\t{ item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? _x( 'Customized', 'template' )\n\t\t\t\t\t\t: _x( 'Customized', 'template part' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction AuthorField( { item } ) {\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ imageUrl ? (\n\t\t\t\t<AvatarImage imageUrl={ imageUrl } />\n\t\t\t) : (\n\t\t\t\t<div className=\"edit-site-list-added-by__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction TemplatePreview( { content, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( content );\n\t}, [ content ] );\n\tif ( ! blocks?.length ) {\n\t\treturn null;\n\t}\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function DataviewsTemplates() {\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst { records: allTemplates, isResolving: isLoadingData } =\n\t\tuseEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! allTemplates ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\tallTemplates.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ allTemplates ] );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item, view: { type: viewType } } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TemplatePreview\n\t\t\t\t\t\t\tcontent={ item.content.raw }\n\t\t\t\t\t\t\tviewType={ viewType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Template' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered || item.slug,\n\t\t\t\trender: ( { item } ) => <TemplateTitle item={ item } />,\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\tgetValue: ( { item } ) => item.description,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\tdecodeEntities( item.description )\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t&#8212;\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 200,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <AuthorField item={ item } />;\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: authors,\n\t\t\t},\n\t\t],\n\t\t[ authors ]\n\t);\n\n\tconst { shownTemplates, paginationInfo } = useMemo( () => {\n\t\tif ( ! allTemplates ) {\n\t\t\treturn {\n\t\t\t\tshownTemplates: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredTemplates = [ ...allTemplates ];\n\t\t// Handle global search.\n\t\tif ( view.search ) {\n\t\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\t\tfilteredTemplates = filteredTemplates.filter( ( item ) => {\n\t\t\t\tconst title = item.title?.rendered || item.slug;\n\t\t\t\treturn (\n\t\t\t\t\tnormalizeSearchInput( title ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t) ||\n\t\t\t\t\tnormalizeSearchInput( item.description ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\t// Handle filters.\n\t\tif ( view.filters.length > 0 ) {\n\t\t\tview.filters.forEach( ( filter ) => {\n\t\t\t\tif (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IN &&\n\t\t\t\t\t!! filter.value\n\t\t\t\t) {\n\t\t\t\t\tfilteredTemplates = filteredTemplates.filter( ( item ) => {\n\t\t\t\t\t\treturn item.author_text === filter.value;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tconst stringSortingFields = [ 'title', 'author' ];\n\t\t\tconst fieldId = view.sort.field;\n\t\t\tif ( stringSortingFields.includes( fieldId ) ) {\n\t\t\t\tconst fieldToSort = fields.find( ( field ) => {\n\t\t\t\t\treturn field.id === fieldId;\n\t\t\t\t} );\n\t\t\t\tfilteredTemplates.sort( ( a, b ) => {\n\t\t\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\t\t\treturn view.sort.direction === 'asc'\n\t\t\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t\t\t: valueB.localeCompare( valueA );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t// Handle pagination.\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\tconst totalItems = filteredTemplates?.length || 0;\n\t\tfilteredTemplates = filteredTemplates?.slice(\n\t\t\tstart,\n\t\t\tstart + view.perPage\n\t\t);\n\t\treturn {\n\t\t\tshownTemplates: filteredTemplates,\n\t\t\tpaginationInfo: {\n\t\t\t\ttotalItems,\n\t\t\t\ttotalPages: Math.ceil( totalItems / view.perPage ),\n\t\t\t},\n\t\t};\n\t}, [ allTemplates, view, fields ] );\n\n\tconst resetTemplateAction = useResetTemplateAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tresetTemplateAction,\n\t\t\tdeleteTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t],\n\t\t[ resetTemplateAction ]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( viewUpdater ) => {\n\t\t\tlet updatedView =\n\t\t\t\ttypeof viewUpdater === 'function'\n\t\t\t\t\t? viewUpdater( view )\n\t\t\t\t\t: viewUpdater;\n\t\t\tif ( updatedView.type !== view.type ) {\n\t\t\t\tupdatedView = {\n\t\t\t\t\t...updatedView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ updatedView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetView( updatedView );\n\t\t},\n\t\t[ view, setView ]\n\t);\n\treturn (\n\t\t<Page title={ __( 'Templates' ) }>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ shownTemplates }\n\t\t\t\tgetItemId={ ( item ) => item.id }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tsupportedLayouts={ [ 'list', 'grid' ] }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}