@wordpress/edit-site 6.2.0 → 6.4.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 (368) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +8 -2
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/{add-new-page → add-new-post}/index.js +21 -17
  5. package/build/components/add-new-post/index.js.map +1 -0
  6. package/build/components/add-new-template/index.js +3 -1
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +6 -85
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/editor/index.js +21 -3
  11. package/build/components/editor/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +0 -5
  13. package/build/components/global-styles/background-panel.js.map +1 -1
  14. package/build/components/global-styles/block-preview-panel.js +14 -5
  15. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +42 -23
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
  19. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/index.js +4 -4
  21. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/installed-fonts.js +60 -12
  23. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  24. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  25. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  26. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  27. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  28. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  29. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  30. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  31. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  32. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  33. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  34. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  35. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  36. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  37. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  38. package/build/components/global-styles/hooks.js +0 -40
  39. package/build/components/global-styles/hooks.js.map +1 -1
  40. package/build/components/global-styles/preview-typography.js +47 -0
  41. package/build/components/global-styles/preview-typography.js.map +1 -0
  42. package/build/components/global-styles/screen-block.js +17 -1
  43. package/build/components/global-styles/screen-block.js.map +1 -1
  44. package/build/components/global-styles/screen-layout.js +5 -1
  45. package/build/components/global-styles/screen-layout.js.map +1 -1
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  47. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  48. package/build/components/global-styles/screen-style-variations.js +2 -2
  49. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  50. package/build/components/global-styles/screen-typography.js +3 -2
  51. package/build/components/global-styles/screen-typography.js.map +1 -1
  52. package/build/components/global-styles/shadows-edit-panel.js +1 -2
  53. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  54. package/build/components/global-styles/size-control/index.js +85 -0
  55. package/build/components/global-styles/size-control/index.js.map +1 -0
  56. package/build/components/global-styles/style-variations-container.js +8 -5
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +0 -2
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/ui.js +8 -0
  61. package/build/components/global-styles/ui.js.map +1 -1
  62. package/build/components/global-styles/variations/variation.js +4 -4
  63. package/build/components/global-styles/variations/variation.js.map +1 -1
  64. package/build/components/global-styles/variations/variations-color.js +4 -3
  65. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  66. package/build/components/global-styles/variations/variations-typography.js +15 -29
  67. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  68. package/build/components/global-styles-sidebar/index.js +2 -2
  69. package/build/components/global-styles-sidebar/index.js.map +1 -1
  70. package/build/components/layout/index.js +22 -8
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/layout/router.js +30 -43
  73. package/build/components/layout/router.js.map +1 -1
  74. package/build/components/page-patterns/header.js +1 -1
  75. package/build/components/page-patterns/header.js.map +1 -1
  76. package/build/components/page-patterns/index.js +65 -49
  77. package/build/components/page-patterns/index.js.map +1 -1
  78. package/build/components/page-patterns/search-items.js +29 -4
  79. package/build/components/page-patterns/search-items.js.map +1 -1
  80. package/build/components/page-patterns/use-patterns.js +22 -55
  81. package/build/components/page-patterns/use-patterns.js.map +1 -1
  82. package/build/components/page-templates/index.js +56 -50
  83. package/build/components/page-templates/index.js.map +1 -1
  84. package/build/components/pagination/index.js +4 -4
  85. package/build/components/pagination/index.js.map +1 -1
  86. package/build/components/post-edit/index.js +105 -0
  87. package/build/components/post-edit/index.js.map +1 -0
  88. package/build/components/post-fields/index.js +314 -0
  89. package/build/components/post-fields/index.js.map +1 -0
  90. package/build/components/post-list/index.js +281 -0
  91. package/build/components/post-list/index.js.map +1 -0
  92. package/build/components/posts-app/index.js +11 -17
  93. package/build/components/posts-app/index.js.map +1 -1
  94. package/build/components/posts-app/router.js +85 -0
  95. package/build/components/posts-app/router.js.map +1 -0
  96. package/build/components/revisions/index.js +10 -7
  97. package/build/components/revisions/index.js.map +1 -1
  98. package/build/components/save-panel/index.js +1 -1
  99. package/build/components/save-panel/index.js.map +1 -1
  100. package/build/components/sidebar-dataviews/add-new-view.js +4 -1
  101. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  102. package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  103. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  104. package/build/components/sidebar-dataviews/default-views.js +119 -93
  105. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  106. package/build/components/sidebar-dataviews/index.js +44 -2
  107. package/build/components/sidebar-dataviews/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  109. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  110. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  111. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  113. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  114. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  115. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  116. package/build/components/site-hub/index.js +81 -1
  117. package/build/components/site-hub/index.js.map +1 -1
  118. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  119. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  120. package/build/hooks/push-changes-to-global-styles/index.js +2 -2
  121. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  122. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
  123. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  124. package/build/index.js +10 -0
  125. package/build/index.js.map +1 -1
  126. package/build/posts.js +57 -2
  127. package/build/posts.js.map +1 -1
  128. package/build/store/private-actions.js +7 -2
  129. package/build/store/private-actions.js.map +1 -1
  130. package/build/store/selectors.js +34 -6
  131. package/build/store/selectors.js.map +1 -1
  132. package/build/utils/get-filtered-template-parts.js +64 -0
  133. package/build/utils/get-filtered-template-parts.js.map +1 -0
  134. package/build-module/components/add-new-pattern/index.js +8 -2
  135. package/build-module/components/add-new-pattern/index.js.map +1 -1
  136. package/build-module/components/{add-new-page → add-new-post}/index.js +21 -17
  137. package/build-module/components/add-new-post/index.js.map +1 -0
  138. package/build-module/components/add-new-template/index.js +3 -1
  139. package/build-module/components/add-new-template/index.js.map +1 -1
  140. package/build-module/components/block-editor/use-site-editor-settings.js +6 -85
  141. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  142. package/build-module/components/editor/index.js +21 -3
  143. package/build-module/components/editor/index.js.map +1 -1
  144. package/build-module/components/global-styles/background-panel.js +0 -5
  145. package/build-module/components/global-styles/background-panel.js.map +1 -1
  146. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  147. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  148. package/build-module/components/global-styles/font-families.js +44 -25
  149. package/build-module/components/global-styles/font-families.js.map +1 -1
  150. package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
  151. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  152. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  153. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  154. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +63 -15
  155. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  156. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  157. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  158. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  159. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  160. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  161. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  162. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  163. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  164. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  165. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  166. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  167. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  168. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  169. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  170. package/build-module/components/global-styles/hooks.js +0 -38
  171. package/build-module/components/global-styles/hooks.js.map +1 -1
  172. package/build-module/components/global-styles/preview-typography.js +39 -0
  173. package/build-module/components/global-styles/preview-typography.js.map +1 -0
  174. package/build-module/components/global-styles/screen-block.js +18 -1
  175. package/build-module/components/global-styles/screen-block.js.map +1 -1
  176. package/build-module/components/global-styles/screen-layout.js +5 -1
  177. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  178. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  179. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  180. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  181. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  182. package/build-module/components/global-styles/screen-typography.js +3 -2
  183. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  184. package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
  185. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  186. package/build-module/components/global-styles/size-control/index.js +79 -0
  187. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  188. package/build-module/components/global-styles/style-variations-container.js +9 -6
  189. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  190. package/build-module/components/global-styles/typography-elements.js +0 -2
  191. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  192. package/build-module/components/global-styles/ui.js +8 -0
  193. package/build-module/components/global-styles/ui.js.map +1 -1
  194. package/build-module/components/global-styles/variations/variation.js +5 -5
  195. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  196. package/build-module/components/global-styles/variations/variations-color.js +5 -4
  197. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  198. package/build-module/components/global-styles/variations/variations-typography.js +16 -30
  199. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  200. package/build-module/components/global-styles-sidebar/index.js +2 -2
  201. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  202. package/build-module/components/layout/index.js +20 -8
  203. package/build-module/components/layout/index.js.map +1 -1
  204. package/build-module/components/layout/router.js +30 -43
  205. package/build-module/components/layout/router.js.map +1 -1
  206. package/build-module/components/page-patterns/header.js +1 -1
  207. package/build-module/components/page-patterns/header.js.map +1 -1
  208. package/build-module/components/page-patterns/index.js +66 -50
  209. package/build-module/components/page-patterns/index.js.map +1 -1
  210. package/build-module/components/page-patterns/search-items.js +28 -4
  211. package/build-module/components/page-patterns/search-items.js.map +1 -1
  212. package/build-module/components/page-patterns/use-patterns.js +23 -56
  213. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  214. package/build-module/components/page-templates/index.js +58 -53
  215. package/build-module/components/page-templates/index.js.map +1 -1
  216. package/build-module/components/pagination/index.js +4 -4
  217. package/build-module/components/pagination/index.js.map +1 -1
  218. package/build-module/components/post-edit/index.js +98 -0
  219. package/build-module/components/post-edit/index.js.map +1 -0
  220. package/build-module/components/post-fields/index.js +306 -0
  221. package/build-module/components/post-fields/index.js.map +1 -0
  222. package/build-module/components/post-list/index.js +275 -0
  223. package/build-module/components/post-list/index.js.map +1 -0
  224. package/build-module/components/posts-app/index.js +11 -17
  225. package/build-module/components/posts-app/index.js.map +1 -1
  226. package/build-module/components/posts-app/router.js +77 -0
  227. package/build-module/components/posts-app/router.js.map +1 -0
  228. package/build-module/components/revisions/index.js +10 -7
  229. package/build-module/components/revisions/index.js.map +1 -1
  230. package/build-module/components/save-panel/index.js +1 -1
  231. package/build-module/components/save-panel/index.js.map +1 -1
  232. package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
  233. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  234. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  235. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  236. package/build-module/components/sidebar-dataviews/default-views.js +117 -92
  237. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  238. package/build-module/components/sidebar-dataviews/index.js +47 -5
  239. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  240. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  241. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  242. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  243. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  244. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  245. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  246. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  247. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  248. package/build-module/components/site-hub/index.js +81 -1
  249. package/build-module/components/site-hub/index.js.map +1 -1
  250. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  251. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  252. package/build-module/hooks/push-changes-to-global-styles/index.js +2 -2
  253. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  254. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
  255. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  256. package/build-module/index.js +11 -2
  257. package/build-module/index.js.map +1 -1
  258. package/build-module/posts.js +57 -2
  259. package/build-module/posts.js.map +1 -1
  260. package/build-module/store/private-actions.js +7 -2
  261. package/build-module/store/private-actions.js.map +1 -1
  262. package/build-module/store/selectors.js +35 -7
  263. package/build-module/store/selectors.js.map +1 -1
  264. package/build-module/utils/get-filtered-template-parts.js +57 -0
  265. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  266. package/build-style/posts-rtl.css +668 -510
  267. package/build-style/posts.css +668 -510
  268. package/build-style/style-rtl.css +772 -702
  269. package/build-style/style.css +772 -702
  270. package/package.json +41 -41
  271. package/src/components/add-new-pattern/index.js +8 -2
  272. package/src/components/{add-new-page → add-new-post}/index.js +28 -22
  273. package/src/components/add-new-template/index.js +4 -1
  274. package/src/components/add-new-template/style.scss +4 -6
  275. package/src/components/block-editor/use-site-editor-settings.js +10 -101
  276. package/src/components/editor/index.js +21 -5
  277. package/src/components/global-styles/background-panel.js +0 -8
  278. package/src/components/global-styles/block-preview-panel.js +22 -9
  279. package/src/components/global-styles/font-families.js +66 -31
  280. package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
  281. package/src/components/global-styles/font-library-modal/index.js +4 -2
  282. package/src/components/global-styles/font-library-modal/installed-fonts.js +94 -13
  283. package/src/components/global-styles/font-library-modal/style.scss +26 -10
  284. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  285. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  286. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  287. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  288. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  289. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  290. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  291. package/src/components/global-styles/hooks.js +0 -41
  292. package/src/components/global-styles/preview-typography.js +39 -0
  293. package/src/components/global-styles/screen-block.js +20 -0
  294. package/src/components/global-styles/screen-layout.js +5 -1
  295. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  296. package/src/components/global-styles/screen-style-variations.js +2 -2
  297. package/src/components/global-styles/screen-typography.js +3 -2
  298. package/src/components/global-styles/shadows-edit-panel.js +1 -2
  299. package/src/components/global-styles/size-control/index.js +86 -0
  300. package/src/components/global-styles/style-variations-container.js +14 -7
  301. package/src/components/global-styles/style.scss +13 -3
  302. package/src/components/global-styles/typography-elements.js +0 -4
  303. package/src/components/global-styles/ui.js +10 -0
  304. package/src/components/global-styles/variations/variation.js +5 -5
  305. package/src/components/global-styles/variations/variations-color.js +6 -4
  306. package/src/components/global-styles/variations/variations-typography.js +15 -33
  307. package/src/components/global-styles-sidebar/index.js +2 -2
  308. package/src/components/layout/index.js +24 -4
  309. package/src/components/layout/router.js +29 -37
  310. package/src/components/layout/style.scss +38 -8
  311. package/src/components/page-patterns/header.js +1 -1
  312. package/src/components/page-patterns/index.js +62 -64
  313. package/src/components/page-patterns/search-items.js +37 -3
  314. package/src/components/page-patterns/style.scss +1 -8
  315. package/src/components/page-patterns/use-patterns.js +43 -82
  316. package/src/components/page-templates/index.js +67 -64
  317. package/src/components/page-templates/style.scss +6 -9
  318. package/src/components/pagination/index.js +4 -4
  319. package/src/components/post-edit/index.js +96 -0
  320. package/src/components/post-edit/style.scss +9 -0
  321. package/src/components/post-fields/index.js +345 -0
  322. package/src/components/post-list/index.js +326 -0
  323. package/src/components/{page-pages → post-list}/style.scss +25 -8
  324. package/src/components/posts-app/index.js +9 -11
  325. package/src/components/posts-app/router.js +69 -0
  326. package/src/components/revisions/index.js +9 -1
  327. package/src/components/save-panel/index.js +1 -1
  328. package/src/components/sidebar/style.scss +6 -0
  329. package/src/components/sidebar-dataviews/add-new-view.js +2 -1
  330. package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  331. package/src/components/sidebar-dataviews/default-views.js +131 -106
  332. package/src/components/sidebar-dataviews/index.js +39 -4
  333. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  334. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -54
  335. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +2 -1
  336. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
  337. package/src/components/site-hub/index.js +84 -1
  338. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
  339. package/src/hooks/push-changes-to-global-styles/index.js +2 -2
  340. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
  341. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
  342. package/src/index.js +14 -1
  343. package/src/posts.js +63 -2
  344. package/src/posts.scss +9 -0
  345. package/src/store/private-actions.js +7 -3
  346. package/src/store/selectors.js +53 -14
  347. package/src/store/test/selectors.js +1 -26
  348. package/src/style.scss +2 -2
  349. package/src/utils/get-filtered-template-parts.js +61 -0
  350. package/src/utils/test/get-filtered-template-parts.js +127 -0
  351. package/build/components/add-new-page/index.js.map +0 -1
  352. package/build/components/global-styles/screen-background.js +0 -36
  353. package/build/components/global-styles/screen-background.js.map +0 -1
  354. package/build/components/page-pages/index.js +0 -473
  355. package/build/components/page-pages/index.js.map +0 -1
  356. package/build/components/table/index.js +0 -35
  357. package/build/components/table/index.js.map +0 -1
  358. package/build-module/components/add-new-page/index.js.map +0 -1
  359. package/build-module/components/global-styles/screen-background.js +0 -30
  360. package/build-module/components/global-styles/screen-background.js.map +0 -1
  361. package/build-module/components/page-pages/index.js +0 -465
  362. package/build-module/components/page-pages/index.js.map +0 -1
  363. package/build-module/components/table/index.js +0 -30
  364. package/build-module/components/table/index.js.map +0 -1
  365. package/src/components/global-styles/screen-background.js +0 -29
  366. package/src/components/page-pages/index.js +0 -564
  367. package/src/components/table/index.js +0 -33
  368. package/src/components/table/style.scss +0 -38
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_lockUnlock","_constants","extractWords","getNormalizedSearchTerms","normalizeString","unlock","blockEditorPrivateApis","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","exports","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","TEMPLATE_PART_ALL_AREAS_CATEGORY","PATTERN_USER_CATEGORY","type","PATTERN_TYPES","user","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { extractWords, getNormalizedSearchTerms, normalizeString } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_ALL_AREAS_CATEGORY,\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\tcategoryId === TEMPLATE_PART_ALL_AREAS_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeString( searchTerm );\n\tconst normalizedTitle = normalizeString( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blockEditor","require","_lockUnlock","_constants","extractWords","getNormalizedSearchTerms","normalizeString","unlock","blockEditorPrivateApis","defaultGetName","item","type","PATTERN_TYPES","user","slug","TEMPLATE_PART_POST_TYPE","name","defaultGetTitle","title","rendered","raw","exports","defaultGetDescription","excerpt","description","defaultGetKeywords","keywords","defaultHasCategory","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","TEMPLATE_PART_ALL_AREAS_CATEGORY","PATTERN_USER_CATEGORY","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { extractWords, getNormalizedSearchTerms, normalizeString } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_ALL_AREAS_CATEGORY,\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => {\n\tif ( item.type === PATTERN_TYPES.user ) {\n\t\treturn item.slug;\n\t}\n\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\treturn '';\n\t}\n\n\treturn item.name || '';\n};\n\nexport const defaultGetTitle = ( item ) => {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn item.title;\n\t}\n\n\tif ( item.title && item.title.rendered ) {\n\t\treturn item.title.rendered;\n\t}\n\n\tif ( item.title && item.title.raw ) {\n\t\treturn item.title.raw;\n\t}\n\n\treturn '';\n};\n\nconst defaultGetDescription = ( item ) => {\n\tif ( item.type === PATTERN_TYPES.user ) {\n\t\treturn item.excerpt.raw;\n\t}\n\n\treturn item.description || '';\n};\n\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\tcategoryId === TEMPLATE_PART_ALL_AREAS_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeString( searchTerm );\n\tconst normalizedTitle = normalizeString( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,6 @@ var _blocks = require("@wordpress/blocks");
8
8
  var _data = require("@wordpress/data");
9
9
  var _coreData = require("@wordpress/core-data");
10
10
  var _editor = require("@wordpress/editor");
11
- var _htmlEntities = require("@wordpress/html-entities");
12
11
  var _utils = require("./utils");
13
12
  var _constants = require("../../utils/constants");
14
13
  var _lockUnlock = require("../../lock-unlock");
@@ -23,23 +22,7 @@ var _store = require("../../store");
23
22
  */
24
23
 
25
24
  const EMPTY_PATTERN_LIST = [];
26
- const createTemplatePartId = (theme, slug) => theme && slug ? theme + '//' + slug : null;
27
- const templatePartToPattern = templatePart => ({
28
- blocks: (0, _blocks.parse)(templatePart.content.raw, {
29
- __unstableSkipMigrationLogs: true
30
- }),
31
- categories: [templatePart.area],
32
- description: templatePart.description || '',
33
- isCustom: templatePart.source === _constants.TEMPLATE_ORIGINS.custom,
34
- keywords: templatePart.keywords || [],
35
- id: createTemplatePartId(templatePart.theme, templatePart.slug),
36
- name: createTemplatePartId(templatePart.theme, templatePart.slug),
37
- title: (0, _htmlEntities.decodeEntities)(templatePart.title.rendered),
38
- type: templatePart.type,
39
- _links: templatePart._links,
40
- templatePart
41
- });
42
- const selectTemplatePartsAsPatterns = (0, _data.createSelector)((select, categoryId, search = '') => {
25
+ const selectTemplateParts = (0, _data.createSelector)((select, categoryId, search = '') => {
43
26
  var _getEntityRecords;
44
27
  const {
45
28
  getEntityRecords,
@@ -51,8 +34,7 @@ const selectTemplatePartsAsPatterns = (0, _data.createSelector)((select, categor
51
34
  const query = {
52
35
  per_page: -1
53
36
  };
54
- const rawTemplateParts = (_getEntityRecords = getEntityRecords('postType', _constants.TEMPLATE_PART_POST_TYPE, query)) !== null && _getEntityRecords !== void 0 ? _getEntityRecords : EMPTY_PATTERN_LIST;
55
- const templateParts = rawTemplateParts.map(templatePart => templatePartToPattern(templatePart));
37
+ const templateParts = (_getEntityRecords = getEntityRecords('postType', _constants.TEMPLATE_PART_POST_TYPE, query)) !== null && _getEntityRecords !== void 0 ? _getEntityRecords : EMPTY_PATTERN_LIST;
56
38
 
57
39
  // In the case where a custom template part area has been removed we need
58
40
  // the current list of areas to cross check against so orphaned template
@@ -61,9 +43,9 @@ const selectTemplatePartsAsPatterns = (0, _data.createSelector)((select, categor
61
43
  const templatePartAreas = knownAreas.map(area => area.area);
62
44
  const templatePartHasCategory = (item, category) => {
63
45
  if (category !== _constants.TEMPLATE_PART_AREA_DEFAULT_CATEGORY) {
64
- return item.templatePart.area === category;
46
+ return item.area === category;
65
47
  }
66
- return item.templatePart.area === category || !templatePartAreas.includes(item.templatePart.area);
48
+ return item.area === category || !templatePartAreas.includes(item.area);
67
49
  };
68
50
  const isResolving = isResolvingSelector('getEntityRecords', ['postType', _constants.TEMPLATE_PART_POST_TYPE, query]);
69
51
  const patterns = (0, _searchItems.searchItems)(templateParts, search, {
@@ -110,24 +92,35 @@ const selectPatterns = (0, _data.createSelector)((select, categoryId, syncStatus
110
92
  } = selectThemePatterns(select);
111
93
  const {
112
94
  patterns: userPatterns,
113
- isResolving: isResolvingUserPatterns
95
+ isResolving: isResolvingUserPatterns,
96
+ categories: userPatternCategories
114
97
  } = selectUserPatterns(select);
115
98
  let patterns = [...(themePatterns || []), ...(userPatterns || [])];
116
99
  if (syncStatus) {
117
100
  // User patterns can have their sync statuses checked directly
118
101
  // Non-user patterns are all unsynced for the time being.
119
102
  patterns = patterns.filter(pattern => {
120
- return pattern.type === _constants.PATTERN_TYPES.user ? pattern.syncStatus === syncStatus : syncStatus === _constants.PATTERN_SYNC_TYPES.unsynced;
103
+ return pattern.type === _constants.PATTERN_TYPES.user ? (pattern.wp_pattern_sync_status || _constants.PATTERN_SYNC_TYPES.full) === syncStatus : syncStatus === _constants.PATTERN_SYNC_TYPES.unsynced;
121
104
  });
122
105
  }
123
106
  if (categoryId) {
124
107
  patterns = (0, _searchItems.searchItems)(patterns, search, {
125
108
  categoryId,
126
- hasCategory: (item, currentCategory) => item.categories?.includes(currentCategory)
109
+ hasCategory: (item, currentCategory) => {
110
+ if (item.type === _constants.PATTERN_TYPES.user) {
111
+ return item.wp_pattern_category.some(catId => userPatternCategories.find(cat => cat.id === catId)?.slug === currentCategory);
112
+ }
113
+ return item.categories?.includes(currentCategory);
114
+ }
127
115
  });
128
116
  } else {
129
117
  patterns = (0, _searchItems.searchItems)(patterns, search, {
130
- hasCategory: item => !item.hasOwnProperty('categories')
118
+ hasCategory: item => {
119
+ if (item.type === _constants.PATTERN_TYPES.user) {
120
+ return userPatternCategories?.length && (!item.wp_pattern_category?.length || !item.wp_pattern_category.some(catId => userPatternCategories.find(cat => cat.id === catId)));
121
+ }
122
+ return !item.hasOwnProperty('categories');
123
+ }
131
124
  });
132
125
  }
133
126
  return {
@@ -135,32 +128,6 @@ const selectPatterns = (0, _data.createSelector)((select, categoryId, syncStatus
135
128
  isResolving: isResolvingThemePatterns || isResolvingUserPatterns
136
129
  };
137
130
  }, select => [selectThemePatterns(select), selectUserPatterns(select)]);
138
-
139
- /**
140
- * Converts a post of type `wp_block` to a 'pattern item' that more closely
141
- * matches the structure of theme provided patterns.
142
- *
143
- * @param {Object} patternPost The `wp_block` record being normalized.
144
- * @param {Map} categories A Map of user created categories.
145
- *
146
- * @return {Object} The normalized item.
147
- */
148
- const convertPatternPostToItem = (patternPost, categories) => ({
149
- blocks: (0, _blocks.parse)(patternPost.content.raw, {
150
- __unstableSkipMigrationLogs: true
151
- }),
152
- ...(patternPost.wp_pattern_category.length > 0 && {
153
- categories: patternPost.wp_pattern_category.map(patternCategoryId => categories && categories.get(patternCategoryId) ? categories.get(patternCategoryId).slug : patternCategoryId)
154
- }),
155
- termLabels: patternPost.wp_pattern_category.map(patternCategoryId => categories?.get(patternCategoryId) ? categories.get(patternCategoryId).label : patternCategoryId),
156
- id: patternPost.id,
157
- name: patternPost.slug,
158
- syncStatus: patternPost.wp_pattern_sync_status || _constants.PATTERN_SYNC_TYPES.full,
159
- title: patternPost.title.raw,
160
- type: patternPost.type,
161
- description: patternPost.excerpt.raw,
162
- patternPost
163
- });
164
131
  const selectUserPatterns = (0, _data.createSelector)((select, syncStatus, search = '') => {
165
132
  const {
166
133
  getEntityRecords,
@@ -174,10 +141,10 @@ const selectUserPatterns = (0, _data.createSelector)((select, syncStatus, search
174
141
  const userPatternCategories = getUserPatternCategories();
175
142
  const categories = new Map();
176
143
  userPatternCategories.forEach(userCategory => categories.set(userCategory.id, userCategory));
177
- let patterns = patternPosts ? patternPosts.map(record => convertPatternPostToItem(record, categories)) : EMPTY_PATTERN_LIST;
144
+ let patterns = patternPosts !== null && patternPosts !== void 0 ? patternPosts : EMPTY_PATTERN_LIST;
178
145
  const isResolving = isResolvingSelector('getEntityRecords', ['postType', _constants.PATTERN_TYPES.user, query]);
179
146
  if (syncStatus) {
180
- patterns = patterns.filter(pattern => pattern.syncStatus === syncStatus);
147
+ patterns = patterns.filter(pattern => pattern.wp_pattern_sync_status || _constants.PATTERN_SYNC_TYPES.full === syncStatus);
181
148
  }
182
149
  patterns = (0, _searchItems.searchItems)(patterns, search, {
183
150
  // We exit user pattern retrieval early if we aren't in the
@@ -201,7 +168,7 @@ const usePatterns = (postType, categoryId, {
201
168
  } = {}) => {
202
169
  return (0, _data.useSelect)(select => {
203
170
  if (postType === _constants.TEMPLATE_PART_POST_TYPE) {
204
- return selectTemplatePartsAsPatterns(select, categoryId, search);
171
+ return selectTemplateParts(select, categoryId, search);
205
172
  } else if (postType === _constants.PATTERN_TYPES.user && !!categoryId) {
206
173
  const appliedCategory = categoryId === 'uncategorized' ? '' : categoryId;
207
174
  return selectPatterns(select, appliedCategory, syncStatus, search);
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_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","_links","selectTemplatePartsAsPatterns","createSelector","select","categoryId","search","_getEntityRecords","getEntityRecords","isResolving","isResolvingSelector","coreStore","__experimentalGetDefaultTemplatePartAreas","editorStore","query","per_page","rawTemplateParts","TEMPLATE_PART_POST_TYPE","templateParts","map","knownAreas","templatePartAreas","templatePartHasCategory","item","category","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","includes","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","isResolvingThemePatterns","userPatterns","isResolvingUserPatterns","selectUserPatterns","user","PATTERN_SYNC_TYPES","unsynced","currentCategory","hasOwnProperty","convertPatternPostToItem","patternPost","wp_pattern_category","length","patternCategoryId","get","termLabels","label","wp_pattern_sync_status","full","excerpt","getUserPatternCategories","patternPosts","userPatternCategories","Map","forEach","userCategory","set","record","usePatterns","postType","useSelect","appliedCategory","exports","_default","default"],"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect, createSelector } 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\t_links: templatePart._links,\n\ttemplatePart,\n} );\n\nconst selectTemplatePartsAsPatterns = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, isResolving: isResolvingSelector } =\n\t\t\tselect( 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 = isResolvingSelector( '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 ).isResolving( '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 { isResolving: isResolvingSelector } = select( coreStore );\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\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingSelector( 'getBlockPatterns' ),\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tselect( coreStore ).isResolving( 'getBlockPatterns' ),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tpatterns: themePatterns,\n\t\t\tisResolving: isResolvingThemePatterns,\n\t\t} = selectThemePatterns( select );\n\t\tconst { patterns: userPatterns, isResolving: isResolvingUserPatterns } =\n\t\t\tselectUserPatterns( 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 {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingThemePatterns || isResolvingUserPatterns,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\n/**\n * Converts a post of type `wp_block` to a 'pattern item' that more closely\n * matches the structure of theme provided patterns.\n *\n * @param {Object} patternPost The `wp_block` record being normalized.\n * @param {Map} categories A Map of user created categories.\n *\n * @return {Object} The normalized item.\n */\nconst convertPatternPostToItem = ( patternPost, categories ) => ( {\n\tblocks: parse( patternPost.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\t...( patternPost.wp_pattern_category.length > 0 && {\n\t\tcategories: patternPost.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: patternPost.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: patternPost.id,\n\tname: patternPost.slug,\n\tsyncStatus: patternPost.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,\n\ttitle: patternPost.title.raw,\n\ttype: patternPost.type,\n\tdescription: patternPost.excerpt.raw,\n\tpatternPost,\n} );\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tgetEntityRecords,\n\t\t\tisResolving: isResolvingSelector,\n\t\t\tgetUserPatternCategories,\n\t\t} = select( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst patternPosts = 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 = patternPosts\n\t\t\t? patternPosts.map( ( record ) =>\n\t\t\t\t\tconvertPatternPostToItem( record, categories )\n\t\t\t )\n\t\t\t: EMPTY_PATTERN_LIST;\n\n\t\tconst isResolving = isResolvingSelector( '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 ).isResolving( '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\tpostType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 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 ( postType === PATTERN_TYPES.user && !! categoryId ) {\n\t\t\t\tconst appliedCategory =\n\t\t\t\t\tcategoryId === 'uncategorized' ? '' : categoryId;\n\t\t\t\treturn selectPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tappliedCategory,\n\t\t\t\t\tsyncStatus,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( postType === 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, postType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAQA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAvBA;AACA;AACA;;AAOA;AACA;AACA;;AAcA,MAAMU,kBAAkB,GAAG,EAAE;AAE7B,MAAMC,oBAAoB,GAAGA,CAAEC,KAAK,EAAEC,IAAI,KACzCD,KAAK,IAAIC,IAAI,GAAGD,KAAK,GAAG,IAAI,GAAGC,IAAI,GAAG,IAAI;AAE3C,MAAMC,qBAAqB,GAAKC,YAAY,KAAQ;EACnDC,MAAM,EAAE,IAAAC,aAAK,EAAEF,YAAY,CAACG,OAAO,CAACC,GAAG,EAAE;IACxCC,2BAA2B,EAAE;EAC9B,CAAE,CAAC;EACHC,UAAU,EAAE,CAAEN,YAAY,CAACO,IAAI,CAAE;EACjCC,WAAW,EAAER,YAAY,CAACQ,WAAW,IAAI,EAAE;EAC3CC,QAAQ,EAAET,YAAY,CAACU,MAAM,KAAKC,2BAAgB,CAACC,MAAM;EACzDC,QAAQ,EAAEb,YAAY,CAACa,QAAQ,IAAI,EAAE;EACrCC,EAAE,EAAElB,oBAAoB,CAAEI,YAAY,CAACH,KAAK,EAAEG,YAAY,CAACF,IAAK,CAAC;EACjEiB,IAAI,EAAEnB,oBAAoB,CAAEI,YAAY,CAACH,KAAK,EAAEG,YAAY,CAACF,IAAK,CAAC;EACnEkB,KAAK,EAAE,IAAAC,4BAAc,EAAEjB,YAAY,CAACgB,KAAK,CAACE,QAAS,CAAC;EACpDC,IAAI,EAAEnB,YAAY,CAACmB,IAAI;EACvBC,MAAM,EAAEpB,YAAY,CAACoB,MAAM;EAC3BpB;AACD,CAAC,CAAE;AAEH,MAAMqB,6BAA6B,GAAG,IAAAC,oBAAc,EACnD,CAAEC,MAAM,EAAEC,UAAU,EAAEC,MAAM,GAAG,EAAE,KAAM;EAAA,IAAAC,iBAAA;EACtC,MAAM;IAAEC,gBAAgB;IAAEC,WAAW,EAAEC;EAAoB,CAAC,GAC3DN,MAAM,CAAEO,eAAU,CAAC;EACpB,MAAM;IAAEC;EAA0C,CAAC,GAClDR,MAAM,CAAES,aAAY,CAAC;EACtB,MAAMC,KAAK,GAAG;IAAEC,QAAQ,EAAE,CAAC;EAAE,CAAC;EAC9B,MAAMC,gBAAgB,IAAAT,iBAAA,GACrBC,gBAAgB,CAAE,UAAU,EAAES,kCAAuB,EAAEH,KAAM,CAAC,cAAAP,iBAAA,cAAAA,iBAAA,GAC9D/B,kBAAkB;EACnB,MAAM0C,aAAa,GAAGF,gBAAgB,CAACG,GAAG,CAAItC,YAAY,IACzDD,qBAAqB,CAAEC,YAAa,CACrC,CAAC;;EAED;EACA;EACA;EACA,MAAMuC,UAAU,GAAGR,yCAAyC,CAAC,CAAC,IAAI,EAAE;EACpE,MAAMS,iBAAiB,GAAGD,UAAU,CAACD,GAAG,CAAI/B,IAAI,IAAMA,IAAI,CAACA,IAAK,CAAC;EAEjE,MAAMkC,uBAAuB,GAAGA,CAAEC,IAAI,EAAEC,QAAQ,KAAM;IACrD,IAAKA,QAAQ,KAAKC,8CAAmC,EAAG;MACvD,OAAOF,IAAI,CAAC1C,YAAY,CAACO,IAAI,KAAKoC,QAAQ;IAC3C;IAEA,OACCD,IAAI,CAAC1C,YAAY,CAACO,IAAI,KAAKoC,QAAQ,IACnC,CAAEH,iBAAiB,CAACK,QAAQ,CAAEH,IAAI,CAAC1C,YAAY,CAACO,IAAK,CAAC;EAExD,CAAC;EAED,MAAMqB,WAAW,GAAGC,mBAAmB,CAAE,kBAAkB,EAAE,CAC5D,UAAU,EACVO,kCAAuB,EACvBH,KAAK,CACJ,CAAC;EAEH,MAAMa,QAAQ,GAAG,IAAAC,wBAAW,EAAEV,aAAa,EAAEZ,MAAM,EAAE;IACpDD,UAAU;IACVwB,WAAW,EAAEP;EACd,CAAE,CAAC;EAEH,OAAO;IAAEK,QAAQ;IAAElB;EAAY,CAAC;AACjC,CAAC,EACCL,MAAM,IAAM,CACbA,MAAM,CAAEO,eAAU,CAAC,CAACH,gBAAgB,CACnC,UAAU,EACVS,kCAAuB,EACvB;EACCF,QAAQ,EAAE,CAAC;AACZ,CACD,CAAC,EACDX,MAAM,CAAEO,eAAU,CAAC,CAACF,WAAW,CAAE,kBAAkB,EAAE,CACpD,UAAU,EACVQ,kCAAuB,EACvB;EAAEF,QAAQ,EAAE,CAAC;AAAE,CAAC,CACf,CAAC,EACHX,MAAM,CAAES,aAAY,CAAC,CAACD,yCAAyC,CAAC,CAAC,CAEnE,CAAC;AAED,MAAMkB,mBAAmB,GAAG,IAAA3B,oBAAc,EACvCC,MAAM,IAAM;EAAA,IAAA2B,qBAAA;EACb,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,kBAAM,EAAE7B,MAAM,CAAE8B,YAAc,CAAE,CAAC;EACzD,MAAM;IAAEzB,WAAW,EAAEC;EAAoB,CAAC,GAAGN,MAAM,CAAEO,eAAU,CAAC;EAChE,MAAMwB,QAAQ,GAAGH,WAAW,CAAC,CAAC;EAC9B,MAAMI,aAAa,IAAAL,qBAAA,GAClBI,QAAQ,CAACE,qCAAqC,cAAAN,qBAAA,cAAAA,qBAAA,GAC9CI,QAAQ,CAACG,2BAA2B;EAErC,MAAMC,iBAAiB,GAAGnC,MAAM,CAAEO,eAAU,CAAC,CAAC6B,gBAAgB,CAAC,CAAC;EAEhE,MAAMb,QAAQ,GAAG,CAChB,IAAKS,aAAa,IAAI,EAAE,CAAE,EAC1B,IAAKG,iBAAiB,IAAI,EAAE,CAAE,CAC9B,CACCE,MAAM,CACJC,OAAO,IACR,CAAEC,mCAAwB,CAACjB,QAAQ,CAAEgB,OAAO,CAACnD,MAAO,CACtD,CAAC,CACAkD,MAAM,CAAEG,gCAA0B,CAAC,CACnCH,MAAM,CAAIC,OAAO,IAAMA,OAAO,CAACG,QAAQ,KAAK,KAAM,CAAC,CACnD1B,GAAG,CAAIuB,OAAO,KAAQ;IACtB,GAAGA,OAAO;IACVhD,QAAQ,EAAEgD,OAAO,CAAChD,QAAQ,IAAI,EAAE;IAChCM,IAAI,EAAE8C,wBAAa,CAACpE,KAAK;IACzBI,MAAM,EAAE,IAAAC,aAAK,EAAE2D,OAAO,CAAC1D,OAAO,EAAE;MAC/BE,2BAA2B,EAAE;IAC9B,CAAE;EACH,CAAC,CAAG,CAAC;EACN,OAAO;IACNyC,QAAQ;IACRlB,WAAW,EAAEC,mBAAmB,CAAE,kBAAmB;EACtD,CAAC;AACF,CAAC,EACCN,MAAM,IAAM,CACbA,MAAM,CAAEO,eAAU,CAAC,CAAC6B,gBAAgB,CAAC,CAAC,EACtCpC,MAAM,CAAEO,eAAU,CAAC,CAACF,WAAW,CAAE,kBAAmB,CAAC,EACrD,IAAAwB,kBAAM,EAAE7B,MAAM,CAAE8B,YAAc,CAAE,CAAC,CAACF,WAAW,CAAC,CAAC,CAEjD,CAAC;AAED,MAAMe,cAAc,GAAG,IAAA5C,oBAAc,EACpC,CAAEC,MAAM,EAAEC,UAAU,EAAE2C,UAAU,EAAE1C,MAAM,GAAG,EAAE,KAAM;EAClD,MAAM;IACLqB,QAAQ,EAAEsB,aAAa;IACvBxC,WAAW,EAAEyC;EACd,CAAC,GAAGpB,mBAAmB,CAAE1B,MAAO,CAAC;EACjC,MAAM;IAAEuB,QAAQ,EAAEwB,YAAY;IAAE1C,WAAW,EAAE2C;EAAwB,CAAC,GACrEC,kBAAkB,CAAEjD,MAAO,CAAC;EAE7B,IAAIuB,QAAQ,GAAG,CACd,IAAKsB,aAAa,IAAI,EAAE,CAAE,EAC1B,IAAKE,YAAY,IAAI,EAAE,CAAE,CACzB;EAED,IAAKH,UAAU,EAAG;IACjB;IACA;IACArB,QAAQ,GAAGA,QAAQ,CAACc,MAAM,CAAIC,OAAO,IAAM;MAC1C,OAAOA,OAAO,CAAC1C,IAAI,KAAK8C,wBAAa,CAACQ,IAAI,GACvCZ,OAAO,CAACM,UAAU,KAAKA,UAAU,GACjCA,UAAU,KAAKO,6BAAkB,CAACC,QAAQ;IAC9C,CAAE,CAAC;EACJ;EAEA,IAAKnD,UAAU,EAAG;IACjBsB,QAAQ,GAAG,IAAAC,wBAAW,EAAED,QAAQ,EAAErB,MAAM,EAAE;MACzCD,UAAU;MACVwB,WAAW,EAAEA,CAAEN,IAAI,EAAEkC,eAAe,KACnClC,IAAI,CAACpC,UAAU,EAAEuC,QAAQ,CAAE+B,eAAgB;IAC7C,CAAE,CAAC;EACJ,CAAC,MAAM;IACN9B,QAAQ,GAAG,IAAAC,wBAAW,EAAED,QAAQ,EAAErB,MAAM,EAAE;MACzCuB,WAAW,EAAIN,IAAI,IAAM,CAAEA,IAAI,CAACmC,cAAc,CAAE,YAAa;IAC9D,CAAE,CAAC;EACJ;EACA,OAAO;IACN/B,QAAQ;IACRlB,WAAW,EAAEyC,wBAAwB,IAAIE;EAC1C,CAAC;AACF,CAAC,EACChD,MAAM,IAAM,CACb0B,mBAAmB,CAAE1B,MAAO,CAAC,EAC7BiD,kBAAkB,CAAEjD,MAAO,CAAC,CAE9B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuD,wBAAwB,GAAGA,CAAEC,WAAW,EAAEzE,UAAU,MAAQ;EACjEL,MAAM,EAAE,IAAAC,aAAK,EAAE6E,WAAW,CAAC5E,OAAO,CAACC,GAAG,EAAE;IACvCC,2BAA2B,EAAE;EAC9B,CAAE,CAAC;EACH,IAAK0E,WAAW,CAACC,mBAAmB,CAACC,MAAM,GAAG,CAAC,IAAI;IAClD3E,UAAU,EAAEyE,WAAW,CAACC,mBAAmB,CAAC1C,GAAG,CAC5C4C,iBAAiB,IAClB5E,UAAU,IAAIA,UAAU,CAAC6E,GAAG,CAAED,iBAAkB,CAAC,GAC9C5E,UAAU,CAAC6E,GAAG,CAAED,iBAAkB,CAAC,CAACpF,IAAI,GACxCoF,iBACL;EACD,CAAC,CAAE;EACHE,UAAU,EAAEL,WAAW,CAACC,mBAAmB,CAAC1C,GAAG,CAAI4C,iBAAiB,IACnE5E,UAAU,EAAE6E,GAAG,CAAED,iBAAkB,CAAC,GACjC5E,UAAU,CAAC6E,GAAG,CAAED,iBAAkB,CAAC,CAACG,KAAK,GACzCH,iBACJ,CAAC;EACDpE,EAAE,EAAEiE,WAAW,CAACjE,EAAE;EAClBC,IAAI,EAAEgE,WAAW,CAACjF,IAAI;EACtBqE,UAAU,EAAEY,WAAW,CAACO,sBAAsB,IAAIZ,6BAAkB,CAACa,IAAI;EACzEvE,KAAK,EAAE+D,WAAW,CAAC/D,KAAK,CAACZ,GAAG;EAC5Be,IAAI,EAAE4D,WAAW,CAAC5D,IAAI;EACtBX,WAAW,EAAEuE,WAAW,CAACS,OAAO,CAACpF,GAAG;EACpC2E;AACD,CAAC,CAAE;AAEH,MAAMP,kBAAkB,GAAG,IAAAlD,oBAAc,EACxC,CAAEC,MAAM,EAAE4C,UAAU,EAAE1C,MAAM,GAAG,EAAE,KAAM;EACtC,MAAM;IACLE,gBAAgB;IAChBC,WAAW,EAAEC,mBAAmB;IAChC4D;EACD,CAAC,GAAGlE,MAAM,CAAEO,eAAU,CAAC;EAEvB,MAAMG,KAAK,GAAG;IAAEC,QAAQ,EAAE,CAAC;EAAE,CAAC;EAC9B,MAAMwD,YAAY,GAAG/D,gBAAgB,CACpC,UAAU,EACVsC,wBAAa,CAACQ,IAAI,EAClBxC,KACD,CAAC;EACD,MAAM0D,qBAAqB,GAAGF,wBAAwB,CAAC,CAAC;EACxD,MAAMnF,UAAU,GAAG,IAAIsF,GAAG,CAAC,CAAC;EAC5BD,qBAAqB,CAACE,OAAO,CAAIC,YAAY,IAC5CxF,UAAU,CAACyF,GAAG,CAAED,YAAY,CAAChF,EAAE,EAAEgF,YAAa,CAC/C,CAAC;EACD,IAAIhD,QAAQ,GAAG4C,YAAY,GACxBA,YAAY,CAACpD,GAAG,CAAI0D,MAAM,IAC1BlB,wBAAwB,CAAEkB,MAAM,EAAE1F,UAAW,CAC7C,CAAC,GACDX,kBAAkB;EAErB,MAAMiC,WAAW,GAAGC,mBAAmB,CAAE,kBAAkB,EAAE,CAC5D,UAAU,EACVoC,wBAAa,CAACQ,IAAI,EAClBxC,KAAK,CACJ,CAAC;EAEH,IAAKkC,UAAU,EAAG;IACjBrB,QAAQ,GAAGA,QAAQ,CAACc,MAAM,CACvBC,OAAO,IAAMA,OAAO,CAACM,UAAU,KAAKA,UACvC,CAAC;EACF;EAEArB,QAAQ,GAAG,IAAAC,wBAAW,EAAED,QAAQ,EAAErB,MAAM,EAAE;IACzC;IACA;IACA;IACAuB,WAAW,EAAEA,CAAA,KAAM;EACpB,CAAE,CAAC;EAEH,OAAO;IACNF,QAAQ;IACRlB,WAAW;IACXtB,UAAU,EAAEqF;EACb,CAAC;AACF,CAAC,EACCpE,MAAM,IAAM,CACbA,MAAM,CAAEO,eAAU,CAAC,CAACH,gBAAgB,CAAE,UAAU,EAAEsC,wBAAa,CAACQ,IAAI,EAAE;EACrEvC,QAAQ,EAAE,CAAC;AACZ,CAAE,CAAC,EACHX,MAAM,CAAEO,eAAU,CAAC,CAACF,WAAW,CAAE,kBAAkB,EAAE,CACpD,UAAU,EACVqC,wBAAa,CAACQ,IAAI,EAClB;EAAEvC,QAAQ,EAAE,CAAC;AAAE,CAAC,CACf,CAAC,EACHX,MAAM,CAAEO,eAAU,CAAC,CAAC2D,wBAAwB,CAAC,CAAC,CAEhD,CAAC;AAEM,MAAMQ,WAAW,GAAGA,CAC1BC,QAAQ,EACR1E,UAAU,EACV;EAAEC,MAAM,GAAG,EAAE;EAAE0C;AAAW,CAAC,GAAG,CAAC,CAAC,KAC5B;EACJ,OAAO,IAAAgC,eAAS,EACb5E,MAAM,IAAM;IACb,IAAK2E,QAAQ,KAAK9D,kCAAuB,EAAG;MAC3C,OAAOf,6BAA6B,CACnCE,MAAM,EACNC,UAAU,EACVC,MACD,CAAC;IACF,CAAC,MAAM,IAAKyE,QAAQ,KAAKjC,wBAAa,CAACQ,IAAI,IAAI,CAAC,CAAEjD,UAAU,EAAG;MAC9D,MAAM4E,eAAe,GACpB5E,UAAU,KAAK,eAAe,GAAG,EAAE,GAAGA,UAAU;MACjD,OAAO0C,cAAc,CACpB3C,MAAM,EACN6E,eAAe,EACfjC,UAAU,EACV1C,MACD,CAAC;IACF,CAAC,MAAM,IAAKyE,QAAQ,KAAKjC,wBAAa,CAACQ,IAAI,EAAG;MAC7C,OAAOD,kBAAkB,CAAEjD,MAAM,EAAE4C,UAAU,EAAE1C,MAAO,CAAC;IACxD;IACA,OAAO;MACNqB,QAAQ,EAAEnD,kBAAkB;MAC5BiC,WAAW,EAAE;IACd,CAAC;EACF,CAAC,EACD,CAAEJ,UAAU,EAAE0E,QAAQ,EAAEzE,MAAM,EAAE0C,UAAU,CAC3C,CAAC;AACF,CAAC;AAACkC,OAAA,CAAAJ,WAAA,GAAAA,WAAA;AAAA,IAAAK,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEaN,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_data","_coreData","_editor","_utils","_constants","_lockUnlock","_searchItems","_store","EMPTY_PATTERN_LIST","selectTemplateParts","createSelector","select","categoryId","search","_getEntityRecords","getEntityRecords","isResolving","isResolvingSelector","coreStore","__experimentalGetDefaultTemplatePartAreas","editorStore","query","per_page","templateParts","TEMPLATE_PART_POST_TYPE","knownAreas","templatePartAreas","map","area","templatePartHasCategory","item","category","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","includes","patterns","searchItems","hasCategory","selectThemePatterns","_settings$__experimen","getSettings","unlock","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","EXCLUDED_PATTERN_SOURCES","source","filterOutDuplicatesByName","inserter","keywords","type","PATTERN_TYPES","theme","blocks","parse","content","__unstableSkipMigrationLogs","selectPatterns","syncStatus","themePatterns","isResolvingThemePatterns","userPatterns","isResolvingUserPatterns","categories","userPatternCategories","selectUserPatterns","user","wp_pattern_sync_status","PATTERN_SYNC_TYPES","full","unsynced","currentCategory","wp_pattern_category","some","catId","find","cat","id","slug","length","hasOwnProperty","getUserPatternCategories","patternPosts","Map","forEach","userCategory","set","usePatterns","postType","useSelect","appliedCategory","exports","_default","default"],"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect, createSelector } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\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_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 selectTemplateParts = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, isResolving: isResolvingSelector } =\n\t\t\tselect( coreStore );\n\t\tconst { __experimentalGetDefaultTemplatePartAreas } =\n\t\t\tselect( editorStore );\n\t\tconst query = { per_page: -1 };\n\t\tconst templateParts =\n\t\t\tgetEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??\n\t\t\tEMPTY_PATTERN_LIST;\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.area === category;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\titem.area === category ||\n\t\t\t\t! templatePartAreas.includes( item.area )\n\t\t\t);\n\t\t};\n\n\t\tconst isResolving = isResolvingSelector( '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 ).isResolving( '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 { isResolving: isResolvingSelector } = select( coreStore );\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\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingSelector( 'getBlockPatterns' ),\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tselect( coreStore ).isResolving( 'getBlockPatterns' ),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tpatterns: themePatterns,\n\t\t\tisResolving: isResolvingThemePatterns,\n\t\t} = selectThemePatterns( select );\n\t\tconst {\n\t\t\tpatterns: userPatterns,\n\t\t\tisResolving: isResolvingUserPatterns,\n\t\t\tcategories: userPatternCategories,\n\t\t} = 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.wp_pattern_sync_status ||\n\t\t\t\t\t\t\tPATTERN_SYNC_TYPES.full ) === 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\tif ( item.type === PATTERN_TYPES.user ) {\n\t\t\t\t\t\treturn item.wp_pattern_category.some(\n\t\t\t\t\t\t\t( catId ) =>\n\t\t\t\t\t\t\t\tuserPatternCategories.find(\n\t\t\t\t\t\t\t\t\t( cat ) => cat.id === catId\n\t\t\t\t\t\t\t\t)?.slug === currentCategory\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn item.categories?.includes( currentCategory );\n\t\t\t\t},\n\t\t\t} );\n\t\t} else {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\thasCategory: ( item ) => {\n\t\t\t\t\tif ( item.type === PATTERN_TYPES.user ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tuserPatternCategories?.length &&\n\t\t\t\t\t\t\t( ! item.wp_pattern_category?.length ||\n\t\t\t\t\t\t\t\t! item.wp_pattern_category.some( ( catId ) =>\n\t\t\t\t\t\t\t\t\tuserPatternCategories.find(\n\t\t\t\t\t\t\t\t\t\t( cat ) => cat.id === catId\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);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ! item.hasOwnProperty( 'categories' );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingThemePatterns || isResolvingUserPatterns,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tgetEntityRecords,\n\t\t\tisResolving: isResolvingSelector,\n\t\t\tgetUserPatternCategories,\n\t\t} = select( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst patternPosts = 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 = patternPosts ?? EMPTY_PATTERN_LIST;\n\t\tconst isResolving = isResolvingSelector( '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 ) =>\n\t\t\t\t\tpattern.wp_pattern_sync_status ||\n\t\t\t\t\tPATTERN_SYNC_TYPES.full === 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 ).isResolving( '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\tpostType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\treturn selectTemplateParts( select, categoryId, search );\n\t\t\t} else if ( postType === PATTERN_TYPES.user && !! categoryId ) {\n\t\t\t\tconst appliedCategory =\n\t\t\t\t\tcategoryId === 'uncategorized' ? '' : categoryId;\n\t\t\t\treturn selectPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tappliedCategory,\n\t\t\t\t\tsyncStatus,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( postType === 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, postType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"],"mappings":"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","ignoreList":[]}
@@ -44,7 +44,6 @@ const {
44
44
  usePostActions
45
45
  } = (0, _lockUnlock.unlock)(_editor.privateApis);
46
46
  const {
47
- ExperimentalBlockEditorProvider,
48
47
  useGlobalStyle
49
48
  } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
50
49
  const {
@@ -52,18 +51,46 @@ const {
52
51
  useLocation
53
52
  } = (0, _lockUnlock.unlock)(_router.privateApis);
54
53
  const EMPTY_ARRAY = [];
55
- const defaultConfigPerViewType = {
54
+ const defaultLayouts = {
56
55
  [_constants.LAYOUT_TABLE]: {
57
- primaryField: 'title'
56
+ fields: ['template', 'author'],
57
+ layout: {
58
+ primaryField: 'title',
59
+ combinedFields: [{
60
+ id: 'template',
61
+ label: (0, _i18n.__)('Template'),
62
+ children: ['title', 'description'],
63
+ direction: 'vertical'
64
+ }],
65
+ styles: {
66
+ template: {
67
+ maxWidth: 400,
68
+ minWidth: 320
69
+ },
70
+ preview: {
71
+ minWidth: 120,
72
+ maxWidth: 120
73
+ },
74
+ author: {
75
+ width: '1%'
76
+ }
77
+ }
78
+ }
58
79
  },
59
80
  [_constants.LAYOUT_GRID]: {
60
- mediaField: 'preview',
61
- primaryField: 'title',
62
- columnFields: ['description']
81
+ fields: ['title', 'description', 'author'],
82
+ layout: {
83
+ mediaField: 'preview',
84
+ primaryField: 'title',
85
+ columnFields: ['description']
86
+ }
63
87
  },
64
88
  [_constants.LAYOUT_LIST]: {
65
- primaryField: 'title',
66
- mediaField: 'preview'
89
+ fields: ['title', 'description', 'author'],
90
+ layout: {
91
+ primaryField: 'title',
92
+ mediaField: 'preview'
93
+ }
67
94
  }
68
95
  };
69
96
  const DEFAULT_VIEW = {
@@ -75,10 +102,8 @@ const DEFAULT_VIEW = {
75
102
  field: 'title',
76
103
  direction: 'asc'
77
104
  },
78
- // All fields are visible by default, so it's
79
- // better to keep track of the hidden ones.
80
- hiddenFields: ['preview'],
81
- layout: defaultConfigPerViewType[_constants.LAYOUT_GRID],
105
+ fields: defaultLayouts[_constants.LAYOUT_GRID].fields,
106
+ layout: defaultLayouts[_constants.LAYOUT_GRID].layout,
82
107
  filters: []
83
108
  };
84
109
  function Title({
@@ -101,8 +126,7 @@ function Title({
101
126
  });
102
127
  }
103
128
  function AuthorField({
104
- item,
105
- viewType
129
+ item
106
130
  }) {
107
131
  const [isImageLoaded, setIsImageLoaded] = (0, _element.useState)(false);
108
132
  const {
@@ -110,11 +134,10 @@ function AuthorField({
110
134
  icon,
111
135
  imageUrl
112
136
  } = (0, _hooks.useAddedBy)(item.type, item.id);
113
- const withIcon = viewType !== _constants.LAYOUT_LIST;
114
137
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
115
138
  alignment: "left",
116
- spacing: 1,
117
- children: [withIcon && imageUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
139
+ spacing: 0,
140
+ children: [imageUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
118
141
  className: (0, _clsx.default)('page-templates-author-field__avatar', {
119
142
  'is-loaded': isImageLoaded
120
143
  }),
@@ -123,7 +146,7 @@ function AuthorField({
123
146
  alt: "",
124
147
  src: imageUrl
125
148
  })
126
- }), withIcon && !imageUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
149
+ }), !imageUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
127
150
  className: "page-templates-author-field__icon",
128
151
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
129
152
  icon: icon
@@ -158,7 +181,8 @@ function Preview({
158
181
  // TODO: Same approach is used in the patterns list and it becomes obvious that some of
159
182
  // the block editor settings are needed in context where we don't have the block editor.
160
183
  // Explore how we can solve this in a better way.
161
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(ExperimentalBlockEditorProvider, {
184
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_editor.EditorProvider, {
185
+ post: item,
162
186
  settings: settings,
163
187
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
164
188
  className: `page-templates-preview-field is-viewtype-${viewType}`,
@@ -198,7 +222,8 @@ function PageTemplates() {
198
222
  return {
199
223
  ...DEFAULT_VIEW,
200
224
  type: usedType,
201
- layout: defaultConfigPerViewType[usedType],
225
+ layout: defaultLayouts[usedType].layout,
226
+ fields: defaultLayouts[usedType].fields,
202
227
  filters: activeView !== 'all' ? [{
203
228
  field: 'author',
204
229
  operator: 'isAny',
@@ -224,11 +249,12 @@ function PageTemplates() {
224
249
  per_page: -1
225
250
  });
226
251
  const history = useHistory();
227
- const onSelectionChange = (0, _element.useCallback)(items => {
252
+ const onChangeSelection = (0, _element.useCallback)(items => {
253
+ setSelection(items);
228
254
  if (view?.type === _constants.LAYOUT_LIST) {
229
255
  history.push({
230
256
  ...params,
231
- postId: items.length === 1 ? items[0].id : undefined
257
+ postId: items.length === 1 ? items[0] : undefined
232
258
  });
233
259
  }
234
260
  }, [history, params, view?.type]);
@@ -246,7 +272,7 @@ function PageTemplates() {
246
272
  }));
247
273
  }, [records]);
248
274
  const fields = (0, _element.useMemo)(() => [{
249
- header: (0, _i18n.__)('Preview'),
275
+ label: (0, _i18n.__)('Preview'),
250
276
  id: 'preview',
251
277
  render: ({
252
278
  item
@@ -256,11 +282,9 @@ function PageTemplates() {
256
282
  viewType: view.type
257
283
  });
258
284
  },
259
- minWidth: 120,
260
- maxWidth: 120,
261
285
  enableSorting: false
262
286
  }, {
263
- header: (0, _i18n.__)('Template'),
287
+ label: (0, _i18n.__)('Template'),
264
288
  id: 'title',
265
289
  getValue: ({
266
290
  item
@@ -271,34 +295,23 @@ function PageTemplates() {
271
295
  item: item,
272
296
  viewType: view.type
273
297
  }),
274
- maxWidth: 400,
275
298
  enableHiding: false,
276
299
  enableGlobalSearch: true
277
300
  }, {
278
- header: (0, _i18n.__)('Description'),
301
+ label: (0, _i18n.__)('Description'),
279
302
  id: 'description',
280
303
  render: ({
281
304
  item
282
305
  }) => {
283
- return item.description ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
306
+ return item.description && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
284
307
  className: "page-templates-description",
285
308
  children: (0, _htmlEntities.decodeEntities)(item.description)
286
- }) : view.type === _constants.LAYOUT_TABLE && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
287
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
288
- variant: "muted",
289
- "aria-hidden": "true",
290
- children: "\u2014"
291
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
292
- children: (0, _i18n.__)('No description.')
293
- })]
294
309
  });
295
310
  },
296
- maxWidth: 400,
297
- minWidth: 320,
298
311
  enableSorting: false,
299
312
  enableGlobalSearch: true
300
313
  }, {
301
- header: (0, _i18n.__)('Author'),
314
+ label: (0, _i18n.__)('Author'),
302
315
  id: 'author',
303
316
  getValue: ({
304
317
  item
@@ -311,8 +324,7 @@ function PageTemplates() {
311
324
  item: item
312
325
  });
313
326
  },
314
- elements: authors,
315
- width: '1%'
327
+ elements: authors
316
328
  }], [authors, view.type]);
317
329
  const {
318
330
  data,
@@ -328,12 +340,6 @@ function PageTemplates() {
328
340
  const actions = (0, _element.useMemo)(() => [editAction, ...postTypeActions], [postTypeActions, editAction]);
329
341
  const onChangeView = (0, _element.useCallback)(newView => {
330
342
  if (newView.type !== view.type) {
331
- newView = {
332
- ...newView,
333
- layout: {
334
- ...defaultConfigPerViewType[newView.type]
335
- }
336
- };
337
343
  history.push({
338
344
  ...params,
339
345
  layout: newView.type
@@ -353,9 +359,9 @@ function PageTemplates() {
353
359
  isLoading: isLoadingData,
354
360
  view: view,
355
361
  onChangeView: onChangeView,
356
- onSelectionChange: onSelectionChange,
362
+ onChangeSelection: onChangeSelection,
357
363
  selection: selection,
358
- setSelection: setSelection
364
+ defaultLayouts: defaultLayouts
359
365
  })
360
366
  });
361
367
  }