@wordpress/edit-site 5.25.1-next.79a6196f.0 → 5.27.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 (324) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/actions/index.js +139 -36
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/editor-canvas-container/index.js +1 -1
  5. package/build/components/editor-canvas-container/index.js.map +1 -1
  6. package/build/components/global-styles/font-families.js +3 -2
  7. package/build/components/global-styles/font-families.js.map +1 -1
  8. package/build/components/global-styles/font-family-item.js +3 -4
  9. package/build/components/global-styles/font-family-item.js.map +1 -1
  10. package/build/components/global-styles/font-library-modal/context.js +80 -41
  11. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  12. package/build/components/global-styles/font-library-modal/font-collection.js +49 -22
  13. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  15. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/index.js +4 -4
  17. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  19. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/library-font-card.js +1 -1
  21. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  23. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/local-fonts.js +13 -4
  25. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/resolvers.js +49 -20
  27. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  29. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +103 -17
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  33. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  34. package/build/components/global-styles/screen-typography.js +4 -1
  35. package/build/components/global-styles/screen-typography.js.map +1 -1
  36. package/build/components/layout/hooks.js +6 -5
  37. package/build/components/layout/hooks.js.map +1 -1
  38. package/build/components/layout/index.js +19 -28
  39. package/build/components/layout/index.js.map +1 -1
  40. package/build/components/layout/router.js +135 -0
  41. package/build/components/layout/router.js.map +1 -0
  42. package/build/components/page-pages/index.js +92 -69
  43. package/build/components/page-pages/index.js.map +1 -1
  44. package/build/components/page-patterns/dataviews-pattern-actions.js +11 -6
  45. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  46. package/build/components/page-patterns/index.js +295 -15
  47. package/build/components/page-patterns/index.js.map +1 -1
  48. package/build/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +51 -23
  49. package/build/components/page-templates-template-parts/actions.js.map +1 -0
  50. package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  51. package/build/components/page-templates-template-parts/index.js +395 -0
  52. package/build/components/page-templates-template-parts/index.js.map +1 -0
  53. package/build/components/preferences-modal/index.js +9 -134
  54. package/build/components/preferences-modal/index.js.map +1 -1
  55. package/build/components/revisions/index.js +1 -1
  56. package/build/components/revisions/index.js.map +1 -1
  57. package/build/components/save-button/index.js +4 -2
  58. package/build/components/save-button/index.js.map +1 -1
  59. package/build/components/save-panel/index.js +6 -5
  60. package/build/components/save-panel/index.js.map +1 -1
  61. package/build/components/sidebar/index.js +3 -1
  62. package/build/components/sidebar/index.js.map +1 -1
  63. package/build/components/sidebar-dataviews/dataview-item.js +3 -1
  64. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  65. package/build/components/sidebar-dataviews/default-views.js +4 -2
  66. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  67. package/build/components/sidebar-dataviews/index.js +2 -2
  68. package/build/components/sidebar-dataviews/index.js.map +1 -1
  69. package/build/components/sidebar-navigation-screen/index.js +8 -7
  70. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  71. package/build/components/sidebar-navigation-screen-pages/index.js +2 -10
  72. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  73. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +26 -3
  74. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  75. package/build/components/sidebar-navigation-screen-templates-browse/content.js +76 -0
  76. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  77. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  78. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  79. package/build/components/site-hub/index.js +3 -1
  80. package/build/components/site-hub/index.js.map +1 -1
  81. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -12
  82. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  83. package/build/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  84. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  85. package/build/hooks/commands/use-edit-mode-commands.js +33 -5
  86. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  87. package/build/hooks/push-changes-to-global-styles/index.js +13 -6
  88. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  89. package/build/hooks/template-part-edit.js +7 -6
  90. package/build/hooks/template-part-edit.js.map +1 -1
  91. package/build/index.js +1 -1
  92. package/build/index.js.map +1 -1
  93. package/build/store/actions.js +11 -29
  94. package/build/store/actions.js.map +1 -1
  95. package/build/store/private-actions.js +85 -1
  96. package/build/store/private-actions.js.map +1 -1
  97. package/build/store/selectors.js +2 -2
  98. package/build/store/selectors.js.map +1 -1
  99. package/build/utils/get-is-list-page.js +1 -1
  100. package/build/utils/get-is-list-page.js.map +1 -1
  101. package/build/utils/use-actual-current-theme.js +32 -0
  102. package/build/utils/use-actual-current-theme.js.map +1 -0
  103. package/build-module/components/actions/index.js +139 -36
  104. package/build-module/components/actions/index.js.map +1 -1
  105. package/build-module/components/editor-canvas-container/index.js +1 -1
  106. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  107. package/build-module/components/global-styles/font-families.js +3 -2
  108. package/build-module/components/global-styles/font-families.js.map +1 -1
  109. package/build-module/components/global-styles/font-family-item.js +4 -5
  110. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  111. package/build-module/components/global-styles/font-library-modal/context.js +82 -42
  112. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  113. package/build-module/components/global-styles/font-library-modal/font-collection.js +49 -22
  114. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  115. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  116. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  117. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  118. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  119. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  120. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  121. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  122. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  123. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  124. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  125. package/build-module/components/global-styles/font-library-modal/local-fonts.js +13 -4
  126. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  127. package/build-module/components/global-styles/font-library-modal/resolvers.js +45 -18
  128. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  129. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  130. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  131. package/build-module/components/global-styles/font-library-modal/utils/index.js +99 -16
  132. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  133. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  134. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  135. package/build-module/components/global-styles/screen-typography.js +4 -1
  136. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  137. package/build-module/components/layout/hooks.js +6 -5
  138. package/build-module/components/layout/hooks.js.map +1 -1
  139. package/build-module/components/layout/index.js +19 -28
  140. package/build-module/components/layout/index.js.map +1 -1
  141. package/build-module/components/layout/router.js +127 -0
  142. package/build-module/components/layout/router.js.map +1 -0
  143. package/build-module/components/page-pages/index.js +91 -70
  144. package/build-module/components/page-pages/index.js.map +1 -1
  145. package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -6
  146. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  147. package/build-module/components/page-patterns/index.js +296 -16
  148. package/build-module/components/page-patterns/index.js.map +1 -1
  149. package/build-module/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +52 -24
  150. package/build-module/components/page-templates-template-parts/actions.js.map +1 -0
  151. package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  152. package/build-module/components/page-templates-template-parts/index.js +385 -0
  153. package/build-module/components/page-templates-template-parts/index.js.map +1 -0
  154. package/build-module/components/preferences-modal/index.js +12 -136
  155. package/build-module/components/preferences-modal/index.js.map +1 -1
  156. package/build-module/components/revisions/index.js +1 -1
  157. package/build-module/components/revisions/index.js.map +1 -1
  158. package/build-module/components/save-button/index.js +4 -2
  159. package/build-module/components/save-button/index.js.map +1 -1
  160. package/build-module/components/save-panel/index.js +7 -6
  161. package/build-module/components/save-panel/index.js.map +1 -1
  162. package/build-module/components/sidebar/index.js +3 -1
  163. package/build-module/components/sidebar/index.js.map +1 -1
  164. package/build-module/components/sidebar-dataviews/dataview-item.js +3 -1
  165. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  166. package/build-module/components/sidebar-dataviews/default-views.js +4 -2
  167. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  168. package/build-module/components/sidebar-dataviews/index.js +2 -2
  169. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  170. package/build-module/components/sidebar-navigation-screen/index.js +8 -7
  171. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  172. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -10
  173. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  174. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +27 -4
  175. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  176. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +68 -0
  177. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  178. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  179. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  180. package/build-module/components/site-hub/index.js +3 -1
  181. package/build-module/components/site-hub/index.js.map +1 -1
  182. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -11
  183. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  184. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  185. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  186. package/build-module/hooks/commands/use-edit-mode-commands.js +33 -5
  187. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  188. package/build-module/hooks/push-changes-to-global-styles/index.js +13 -6
  189. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  190. package/build-module/hooks/template-part-edit.js +7 -6
  191. package/build-module/hooks/template-part-edit.js.map +1 -1
  192. package/build-module/index.js +1 -1
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/store/actions.js +13 -30
  195. package/build-module/store/actions.js.map +1 -1
  196. package/build-module/store/private-actions.js +83 -0
  197. package/build-module/store/private-actions.js.map +1 -1
  198. package/build-module/store/selectors.js +2 -2
  199. package/build-module/store/selectors.js.map +1 -1
  200. package/build-module/utils/get-is-list-page.js +1 -1
  201. package/build-module/utils/get-is-list-page.js.map +1 -1
  202. package/build-module/utils/use-actual-current-theme.js +24 -0
  203. package/build-module/utils/use-actual-current-theme.js.map +1 -0
  204. package/build-style/style-rtl.css +293 -188
  205. package/build-style/style.css +293 -188
  206. package/package.json +42 -42
  207. package/src/components/actions/index.js +236 -84
  208. package/src/components/editor-canvas-container/index.js +1 -1
  209. package/src/components/global-styles/font-families.js +14 -8
  210. package/src/components/global-styles/font-family-item.js +7 -4
  211. package/src/components/global-styles/font-library-modal/context.js +156 -50
  212. package/src/components/global-styles/font-library-modal/font-collection.js +56 -21
  213. package/src/components/global-styles/font-library-modal/fonts-grid.js +6 -2
  214. package/src/components/global-styles/font-library-modal/index.js +4 -4
  215. package/src/components/global-styles/font-library-modal/installed-fonts.js +18 -8
  216. package/src/components/global-styles/font-library-modal/library-font-card.js +2 -1
  217. package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -9
  218. package/src/components/global-styles/font-library-modal/local-fonts.js +14 -4
  219. package/src/components/global-styles/font-library-modal/resolvers.js +50 -17
  220. package/src/components/global-styles/font-library-modal/style.scss +1 -0
  221. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +19 -2
  222. package/src/components/global-styles/font-library-modal/utils/index.js +136 -29
  223. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +7 -3
  224. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +40 -10
  225. package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +5 -5
  226. package/src/components/global-styles/screen-typography.js +9 -3
  227. package/src/components/global-styles/style.scss +4 -0
  228. package/src/components/header-edit-mode/style.scss +15 -5
  229. package/src/components/layout/hooks.js +6 -5
  230. package/src/components/layout/index.js +80 -96
  231. package/src/components/layout/router.js +121 -0
  232. package/src/components/layout/style.scss +13 -16
  233. package/src/components/page/style.scss +1 -8
  234. package/src/components/page-pages/index.js +142 -148
  235. package/src/components/page-pages/style.scss +41 -2
  236. package/src/components/page-patterns/dataviews-pattern-actions.js +11 -6
  237. package/src/components/page-patterns/index.js +392 -14
  238. package/src/components/page-patterns/style.scss +36 -2
  239. package/src/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +90 -37
  240. package/src/components/{page-templates → page-templates-template-parts}/index.js +198 -169
  241. package/src/components/page-templates-template-parts/style.scss +44 -0
  242. package/src/components/preferences-modal/index.js +8 -211
  243. package/src/components/revisions/index.js +1 -1
  244. package/src/components/save-button/index.js +7 -4
  245. package/src/components/save-panel/index.js +13 -12
  246. package/src/components/sidebar/index.js +4 -5
  247. package/src/components/sidebar-dataviews/dataview-item.js +2 -1
  248. package/src/components/sidebar-dataviews/default-views.js +4 -2
  249. package/src/components/sidebar-dataviews/index.js +8 -6
  250. package/src/components/sidebar-navigation-item/style.scss +1 -1
  251. package/src/components/sidebar-navigation-screen/index.js +19 -10
  252. package/src/components/sidebar-navigation-screen-pages/index.js +2 -10
  253. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +32 -6
  254. package/src/components/sidebar-navigation-screen-templates-browse/content.js +73 -0
  255. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -1
  256. package/src/components/site-hub/index.js +4 -1
  257. package/src/components/site-hub/style.scss +1 -12
  258. package/src/components/site-icon/style.scss +1 -1
  259. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +40 -10
  260. package/src/components/sync-state-with-url/use-sync-path-with-url.js +32 -0
  261. package/src/hooks/commands/use-edit-mode-commands.js +50 -3
  262. package/src/hooks/push-changes-to-global-styles/index.js +29 -23
  263. package/src/hooks/template-part-edit.js +12 -12
  264. package/src/index.js +1 -1
  265. package/src/store/actions.js +17 -51
  266. package/src/store/private-actions.js +133 -0
  267. package/src/store/selectors.js +2 -4
  268. package/src/style.scss +1 -1
  269. package/src/utils/get-is-list-page.js +3 -2
  270. package/src/utils/use-actual-current-theme.js +27 -0
  271. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  272. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  273. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -71
  274. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  275. package/build/components/page-main/index.js +0 -44
  276. package/build/components/page-main/index.js.map +0 -1
  277. package/build/components/page-patterns/dataviews-patterns.js +0 -307
  278. package/build/components/page-patterns/dataviews-patterns.js.map +0 -1
  279. package/build/components/page-template-parts/add-new-template-part.js.map +0 -1
  280. package/build/components/page-template-parts/index.js +0 -81
  281. package/build/components/page-template-parts/index.js.map +0 -1
  282. package/build/components/page-templates/index.js +0 -352
  283. package/build/components/page-templates/index.js.map +0 -1
  284. package/build/components/page-templates/template-actions.js.map +0 -1
  285. package/build/components/post-preview/index.js +0 -29
  286. package/build/components/post-preview/index.js.map +0 -1
  287. package/build/components/preferences-modal/enable-feature.js +0 -36
  288. package/build/components/preferences-modal/enable-feature.js.map +0 -1
  289. package/build/components/preferences-modal/enable-panel-option.js +0 -33
  290. package/build/components/preferences-modal/enable-panel-option.js.map +0 -1
  291. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -52
  292. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  293. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -63
  294. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  295. package/build-module/components/page-main/index.js +0 -36
  296. package/build-module/components/page-main/index.js.map +0 -1
  297. package/build-module/components/page-patterns/dataviews-patterns.js +0 -299
  298. package/build-module/components/page-patterns/dataviews-patterns.js.map +0 -1
  299. package/build-module/components/page-template-parts/add-new-template-part.js.map +0 -1
  300. package/build-module/components/page-template-parts/index.js +0 -73
  301. package/build-module/components/page-template-parts/index.js.map +0 -1
  302. package/build-module/components/page-templates/index.js +0 -344
  303. package/build-module/components/page-templates/index.js.map +0 -1
  304. package/build-module/components/page-templates/template-actions.js.map +0 -1
  305. package/build-module/components/post-preview/index.js +0 -21
  306. package/build-module/components/post-preview/index.js.map +0 -1
  307. package/build-module/components/preferences-modal/enable-feature.js +0 -29
  308. package/build-module/components/preferences-modal/enable-feature.js.map +0 -1
  309. package/build-module/components/preferences-modal/enable-panel-option.js +0 -26
  310. package/build-module/components/preferences-modal/enable-panel-option.js.map +0 -1
  311. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  312. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -62
  313. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +0 -271
  314. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +0 -58
  315. package/src/components/page-main/index.js +0 -38
  316. package/src/components/page-patterns/dataviews-patterns.js +0 -380
  317. package/src/components/page-template-parts/index.js +0 -99
  318. package/src/components/page-templates/style.scss +0 -13
  319. package/src/components/post-preview/index.js +0 -16
  320. package/src/components/preferences-modal/enable-feature.js +0 -31
  321. package/src/components/preferences-modal/enable-panel-option.js +0 -23
  322. /package/build/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  323. /package/build-module/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  324. /package/src/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
@@ -4,16 +4,24 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = PagePatterns;
7
+ exports.default = DataviewsPatterns;
8
8
  var _react = require("react");
9
+ var _components = require("@wordpress/components");
10
+ var _url = require("@wordpress/url");
9
11
  var _i18n = require("@wordpress/i18n");
12
+ var _element = require("@wordpress/element");
10
13
  var _blockEditor = require("@wordpress/block-editor");
11
- var _url = require("@wordpress/url");
12
- var _constants = require("../../utils/constants");
14
+ var _dataviews = require("@wordpress/dataviews");
15
+ var _icons = require("@wordpress/icons");
16
+ var _compose = require("@wordpress/compose");
13
17
  var _page = _interopRequireDefault(require("../page"));
14
- var _patternsList = _interopRequireDefault(require("./patterns-list"));
18
+ var _constants = require("../../utils/constants");
19
+ var _dataviewsPatternActions = require("./dataviews-pattern-actions");
15
20
  var _usePatternSettings = _interopRequireDefault(require("./use-pattern-settings"));
16
21
  var _lockUnlock = require("../../lock-unlock");
22
+ var _usePatterns = _interopRequireDefault(require("./use-patterns"));
23
+ var _header = _interopRequireDefault(require("./header"));
24
+ var _link = require("../routes/link");
17
25
  /**
18
26
  * WordPress dependencies
19
27
  */
@@ -23,32 +31,304 @@ var _lockUnlock = require("../../lock-unlock");
23
31
  */
24
32
 
25
33
  const {
26
- ExperimentalBlockEditorProvider
34
+ ExperimentalBlockEditorProvider,
35
+ useGlobalStyle
27
36
  } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
28
- function PagePatterns() {
37
+ const templatePartIcons = {
38
+ header: _icons.header,
39
+ footer: _icons.footer,
40
+ uncategorized: _icons.symbolFilled
41
+ };
42
+ const EMPTY_ARRAY = [];
43
+ const defaultConfigPerViewType = {
44
+ [_constants.LAYOUT_GRID]: {
45
+ mediaField: 'preview',
46
+ primaryField: 'title'
47
+ }
48
+ };
49
+ const DEFAULT_VIEW = {
50
+ type: _constants.LAYOUT_GRID,
51
+ search: '',
52
+ page: 1,
53
+ perPage: 20,
54
+ hiddenFields: ['sync-status'],
55
+ layout: {
56
+ ...defaultConfigPerViewType[_constants.LAYOUT_GRID]
57
+ },
58
+ filters: []
59
+ };
60
+ const SYNC_FILTERS = [{
61
+ value: _constants.PATTERN_SYNC_TYPES.full,
62
+ label: (0, _i18n._x)('Synced', 'Option that shows all synchronized patterns'),
63
+ description: (0, _i18n.__)('Patterns that are kept in sync across the site.')
64
+ }, {
65
+ value: _constants.PATTERN_SYNC_TYPES.unsynced,
66
+ label: (0, _i18n._x)('Not synced', 'Option that shows all patterns that are not synchronized'),
67
+ description: (0, _i18n.__)('Patterns that can be changed freely without affecting the site.')
68
+ }];
69
+ function PreviewWrapper({
70
+ item,
71
+ onClick,
72
+ ariaDescribedBy,
73
+ children
74
+ }) {
75
+ if (item.type === _constants.PATTERN_TYPES.theme) {
76
+ return children;
77
+ }
78
+ return (0, _react.createElement)("button", {
79
+ className: "page-patterns-preview-field__button",
80
+ type: "button",
81
+ onClick: onClick,
82
+ "aria-label": item.title,
83
+ "aria-describedby": ariaDescribedBy
84
+ }, children);
85
+ }
86
+ function Preview({
87
+ item,
88
+ categoryId,
89
+ viewType
90
+ }) {
91
+ const descriptionId = (0, _element.useId)();
92
+ const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
93
+ const isNonUserPattern = item.type === _constants.PATTERN_TYPES.theme;
94
+ const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
95
+ const isEmpty = !item.blocks?.length;
96
+ // Only custom patterns or custom template parts can be renamed or deleted.
97
+ const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
98
+ const ariaDescriptions = [];
99
+ if (isCustomPattern) {
100
+ // User patterns don't have descriptions, but can be edited and deleted, so include some help text.
101
+ ariaDescriptions.push((0, _i18n.__)('Press Enter to edit, or Delete to delete the pattern.'));
102
+ } else if (item.description) {
103
+ ariaDescriptions.push(item.description);
104
+ }
105
+ if (isNonUserPattern) {
106
+ ariaDescriptions.push((0, _i18n.__)('Theme & plugin patterns cannot be edited.'));
107
+ }
108
+ const [backgroundColor] = useGlobalStyle('color.background');
109
+ const {
110
+ onClick
111
+ } = (0, _link.useLink)({
112
+ postType: item.type,
113
+ postId: isUserPattern ? item.id : item.name,
114
+ categoryId,
115
+ categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme
116
+ });
117
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)("div", {
118
+ className: `page-patterns-preview-field is-viewtype-${viewType}`,
119
+ style: {
120
+ backgroundColor
121
+ }
122
+ }, (0, _react.createElement)(PreviewWrapper, {
123
+ item: item,
124
+ onClick: onClick,
125
+ ariaDescribedBy: ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
126
+ }, isEmpty && isTemplatePart && (0, _i18n.__)('Empty template part'), isEmpty && !isTemplatePart && (0, _i18n.__)('Empty pattern'), !isEmpty && (0, _react.createElement)(_blockEditor.BlockPreview, {
127
+ blocks: item.blocks
128
+ }))), ariaDescriptions.map((ariaDescription, index) => (0, _react.createElement)("div", {
129
+ key: index,
130
+ hidden: true,
131
+ id: `${descriptionId}-${index}`
132
+ }, ariaDescription)));
133
+ }
134
+ function Title({
135
+ item,
136
+ categoryId
137
+ }) {
138
+ const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
139
+ const isNonUserPattern = item.type === _constants.PATTERN_TYPES.theme;
140
+ const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
141
+ let itemIcon;
142
+ const {
143
+ onClick
144
+ } = (0, _link.useLink)({
145
+ postType: item.type,
146
+ postId: isUserPattern ? item.id : item.name,
147
+ categoryId,
148
+ categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme
149
+ });
150
+ if (!isUserPattern && templatePartIcons[categoryId]) {
151
+ itemIcon = templatePartIcons[categoryId];
152
+ } else {
153
+ itemIcon = item.syncStatus === _constants.PATTERN_SYNC_TYPES.full ? _icons.symbol : undefined;
154
+ }
155
+ return (0, _react.createElement)(_components.__experimentalHStack, {
156
+ alignment: "center",
157
+ justify: "flex-start",
158
+ spacing: 2
159
+ }, itemIcon && !isNonUserPattern && (0, _react.createElement)(_components.Tooltip, {
160
+ placement: "top",
161
+ text: (0, _i18n.__)('Editing this pattern will also update anywhere it is used')
162
+ }, (0, _react.createElement)(_icons.Icon, {
163
+ className: "edit-site-patterns__pattern-icon",
164
+ icon: itemIcon
165
+ })), item.type === _constants.PATTERN_TYPES.theme && (0, _react.createElement)(_components.Tooltip, {
166
+ placement: "top",
167
+ text: (0, _i18n.__)('This pattern cannot be edited.')
168
+ }, (0, _react.createElement)(_icons.Icon, {
169
+ className: "edit-site-patterns__pattern-lock-icon",
170
+ icon: _icons.lockSmall,
171
+ size: 24
172
+ })), (0, _react.createElement)(_components.Flex, {
173
+ as: "div",
174
+ gap: 0,
175
+ justify: "left",
176
+ className: "edit-site-patterns__pattern-title"
177
+ }, item.type === _constants.PATTERN_TYPES.theme ? item.title : (0, _react.createElement)(_components.Button, {
178
+ variant: "link",
179
+ onClick: onClick
180
+ // Required for the grid's roving tab index system.
181
+ // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
182
+ ,
183
+ tabIndex: "-1"
184
+ }, item.title || item.name)));
185
+ }
186
+ function DataviewsPatterns() {
29
187
  const {
30
188
  categoryType,
31
- categoryId
189
+ categoryId = _constants.PATTERN_DEFAULT_CATEGORY
32
190
  } = (0, _url.getQueryArgs)(window.location.href);
33
191
  const type = categoryType || _constants.PATTERN_TYPES.theme;
34
- const category = categoryId || _constants.PATTERN_DEFAULT_CATEGORY;
192
+ const [view, setView] = (0, _element.useState)(DEFAULT_VIEW);
193
+ const isUncategorizedThemePatterns = type === _constants.PATTERN_TYPES.theme && categoryId === 'uncategorized';
194
+ const previousCategoryId = (0, _compose.usePrevious)(categoryId);
195
+ const viewSyncStatus = view.filters?.find(({
196
+ field
197
+ }) => field === 'sync-status')?.value;
198
+ const {
199
+ patterns,
200
+ isResolving
201
+ } = (0, _usePatterns.default)(type, isUncategorizedThemePatterns ? '' : categoryId, {
202
+ search: view.search,
203
+ syncStatus: viewSyncStatus
204
+ });
205
+ const fields = (0, _element.useMemo)(() => {
206
+ const _fields = [{
207
+ header: (0, _i18n.__)('Preview'),
208
+ id: 'preview',
209
+ render: ({
210
+ item
211
+ }) => (0, _react.createElement)(Preview, {
212
+ item: item,
213
+ categoryId: categoryId,
214
+ viewType: view.type
215
+ }),
216
+ enableSorting: false,
217
+ enableHiding: false
218
+ }, {
219
+ header: (0, _i18n.__)('Title'),
220
+ id: 'title',
221
+ getValue: ({
222
+ item
223
+ }) => item.title,
224
+ render: ({
225
+ item
226
+ }) => (0, _react.createElement)(Title, {
227
+ item: item,
228
+ categoryId: categoryId
229
+ }),
230
+ enableHiding: false
231
+ }];
232
+ if (type === _constants.PATTERN_TYPES.theme) {
233
+ _fields.push({
234
+ header: (0, _i18n.__)('Sync Status'),
235
+ id: 'sync-status',
236
+ render: ({
237
+ item
238
+ }) => {
239
+ // User patterns can have their sync statuses checked directly.
240
+ // Non-user patterns are all unsynced for the time being.
241
+ return SYNC_FILTERS.find(({
242
+ value
243
+ }) => value === item.syncStatus)?.label || SYNC_FILTERS.find(({
244
+ value
245
+ }) => value === _constants.PATTERN_SYNC_TYPES.unsynced).label;
246
+ },
247
+ type: _constants.ENUMERATION_TYPE,
248
+ elements: SYNC_FILTERS,
249
+ filterBy: {
250
+ operators: [_constants.OPERATOR_IN]
251
+ },
252
+ enableSorting: false
253
+ });
254
+ }
255
+ return _fields;
256
+ }, [view.type, categoryId, type]);
257
+ // Reset the page number when the category changes.
258
+ (0, _element.useEffect)(() => {
259
+ if (previousCategoryId !== categoryId) {
260
+ setView(DEFAULT_VIEW);
261
+ }
262
+ }, [categoryId, previousCategoryId]);
263
+ const {
264
+ data,
265
+ paginationInfo
266
+ } = (0, _element.useMemo)(() => {
267
+ if (!patterns) {
268
+ return {
269
+ data: EMPTY_ARRAY,
270
+ paginationInfo: {
271
+ totalItems: 0,
272
+ totalPages: 0
273
+ }
274
+ };
275
+ }
276
+ let filteredData = [...patterns];
277
+ // Handle sorting.
278
+ if (view.sort) {
279
+ filteredData = (0, _dataviews.sortByTextFields)({
280
+ data: filteredData,
281
+ view,
282
+ fields,
283
+ textFields: ['title', 'author']
284
+ });
285
+ }
286
+ // Handle pagination.
287
+ return (0, _dataviews.getPaginationResults)({
288
+ data: filteredData,
289
+ view
290
+ });
291
+ }, [patterns, view, fields]);
292
+ const actions = (0, _element.useMemo)(() => [_dataviewsPatternActions.renameAction, _dataviewsPatternActions.duplicatePatternAction, _dataviewsPatternActions.duplicateTemplatePartAction, _dataviewsPatternActions.exportJSONaction, _dataviewsPatternActions.resetAction, _dataviewsPatternActions.deleteAction], []);
293
+ const onChangeView = (0, _element.useCallback)(newView => {
294
+ if (newView.type !== view.type) {
295
+ newView = {
296
+ ...newView,
297
+ layout: {
298
+ ...defaultConfigPerViewType[newView.type]
299
+ }
300
+ };
301
+ }
302
+ setView(newView);
303
+ }, [view.type, setView]);
304
+ const id = (0, _element.useId)();
35
305
  const settings = (0, _usePatternSettings.default)();
36
-
37
306
  // Wrap everything in a block editor provider.
38
307
  // This ensures 'styles' that are needed for the previews are synced
39
308
  // from the site editor store to the block editor store.
309
+ // TODO: check if I add the provider in every preview like in templates...
40
310
  return (0, _react.createElement)(ExperimentalBlockEditorProvider, {
41
311
  settings: settings
42
312
  }, (0, _react.createElement)(_page.default, {
43
- className: "edit-site-patterns",
44
313
  title: (0, _i18n.__)('Patterns content'),
314
+ className: "edit-site-page-patterns-dataviews",
45
315
  hideTitleFromUI: true
46
- }, (0, _react.createElement)(_patternsList.default
47
- // Reset the states when switching between categories and types.
48
- , {
49
- key: `${type}-${category}`,
316
+ }, (0, _react.createElement)(_header.default, {
317
+ categoryId: categoryId,
50
318
  type: type,
51
- categoryId: category
319
+ titleId: `${id}-title`,
320
+ descriptionId: `${id}-description`
321
+ }), (0, _react.createElement)(_dataviews.DataViews, {
322
+ paginationInfo: paginationInfo,
323
+ fields: fields,
324
+ actions: actions,
325
+ data: data || EMPTY_ARRAY,
326
+ getItemId: item => item.name,
327
+ isLoading: isResolving,
328
+ view: view,
329
+ onChangeView: onChangeView,
330
+ deferredRendering: true,
331
+ supportedLayouts: [_constants.LAYOUT_GRID]
52
332
  })));
53
333
  }
54
334
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blockEditor","_url","_constants","_page","_interopRequireDefault","_patternsList","_usePatternSettings","_lockUnlock","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PagePatterns","categoryType","categoryId","getQueryArgs","window","location","href","type","PATTERN_TYPES","theme","category","PATTERN_DEFAULT_CATEGORY","settings","usePatternSettings","_react","createElement","default","className","title","__","hideTitleFromUI","key"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';\nimport Page from '../page';\nimport PatternsList from './patterns-list';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function PagePatterns() {\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst category = categoryId || PATTERN_DEFAULT_CATEGORY;\n\tconst settings = usePatternSettings();\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-patterns\"\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsList\n\t\t\t\t\t// Reset the states when switching between categories and types.\n\t\t\t\t\tkey={ `${ type }-${ category }` }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcategoryId={ category }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAKA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,aAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,mBAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAdA;AACA;AACA;;AAKA;AACA;AACA;;AAOA,MAAM;EAAES;AAAgC,CAAC,GAAG,IAAAC,kBAAM,EAAEC,wBAAuB,CAAC;AAE7D,SAASC,YAAYA,CAAA,EAAG;EACtC,MAAM;IAAEC,YAAY;IAAEC;EAAW,CAAC,GAAG,IAAAC,iBAAY,EAAEC,MAAM,CAACC,QAAQ,CAACC,IAAK,CAAC;EACzE,MAAMC,IAAI,GAAGN,YAAY,IAAIO,wBAAa,CAACC,KAAK;EAChD,MAAMC,QAAQ,GAAGR,UAAU,IAAIS,mCAAwB;EACvD,MAAMC,QAAQ,GAAG,IAAAC,2BAAkB,EAAC,CAAC;;EAErC;EACA;EACA;EACA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAClB,+BAA+B;IAACe,QAAQ,EAAGA;EAAU,GACrD,IAAAE,MAAA,CAAAC,aAAA,EAACvB,KAAA,CAAAwB,OAAI;IACJC,SAAS,EAAC,oBAAoB;IAC9BC,KAAK,EAAG,IAAAC,QAAE,EAAE,kBAAmB,CAAG;IAClCC,eAAe;EAAA,GAEf,IAAAN,MAAA,CAAAC,aAAA,EAACrB,aAAA,CAAAsB;EACA;EAAA;IACAK,GAAG,EAAI,GAAGd,IAAM,IAAIG,QAAU,EAAG;IACjCH,IAAI,EAAGA,IAAM;IACbL,UAAU,EAAGQ;EAAU,CACvB,CACI,CAC0B,CAAC;AAEpC"}
1
+ {"version":3,"names":["_components","require","_url","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_page","_interopRequireDefault","_constants","_dataviewsPatternActions","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_GRID","mediaField","primaryField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","PreviewWrapper","item","onClick","ariaDescribedBy","children","PATTERN_TYPES","theme","_react","createElement","className","title","Preview","categoryId","viewType","descriptionId","useId","isUserPattern","user","isNonUserPattern","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","isCustomPattern","isCustom","ariaDescriptions","push","backgroundColor","useLink","postType","postId","id","name","categoryType","Fragment","style","map","_","index","join","undefined","BlockPreview","ariaDescription","key","hidden","Title","itemIcon","syncStatus","symbol","__experimentalHStack","alignment","justify","spacing","Tooltip","placement","text","Icon","icon","lockSmall","size","Flex","as","gap","Button","variant","tabIndex","DataviewsPatterns","PATTERN_DEFAULT_CATEGORY","getQueryArgs","window","location","href","view","setView","useState","isUncategorizedThemePatterns","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","fields","useMemo","_fields","render","enableSorting","enableHiding","getValue","ENUMERATION_TYPE","elements","filterBy","operators","OPERATOR_IN","useEffect","data","paginationInfo","totalItems","totalPages","filteredData","sort","sortByTextFields","textFields","getPaginationResults","actions","renameAction","duplicatePatternAction","duplicateTemplatePartAction","exportJSONaction","resetAction","deleteAction","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ onClick }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, categoryId, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<PreviewWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tariaDescribedBy={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t\t</PreviewWrapper>\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t<Flex\n\t\t\t\tas=\"div\"\n\t\t\t\tgap={ 0 }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t>\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\titem.title\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tviewType={ view.type }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! patterns ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...patterns ];\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\t// TODO: check if I add the provider in every preview like in templates...\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\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={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering={ true }\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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"}
@@ -15,6 +15,7 @@ var _coreData = require("@wordpress/core-data");
15
15
  var _notices = require("@wordpress/notices");
16
16
  var _htmlEntities = require("@wordpress/html-entities");
17
17
  var _components = require("@wordpress/components");
18
+ var _lockUnlock = require("../../lock-unlock");
18
19
  var _store = require("../../store");
19
20
  var _isTemplateRevertable = _interopRequireDefault(require("../../utils/is-template-revertable"));
20
21
  var _isTemplateRemovable = _interopRequireDefault(require("../../utils/is-template-removable"));
@@ -40,23 +41,32 @@ function useResetTemplateAction() {
40
41
  } = (0, _data.useDispatch)(_notices.store);
41
42
  return (0, _element.useMemo)(() => ({
42
43
  id: 'reset-template',
43
- label: (0, _i18n.__)('Reset template'),
44
+ label: (0, _i18n.__)('Reset'),
44
45
  isPrimary: true,
45
46
  icon: _icons.backup,
46
47
  isEligible: _isTemplateRevertable.default,
47
- async callback(template) {
48
+ supportsBulk: true,
49
+ async callback(templates) {
48
50
  try {
49
- await revertTemplate(template, {
50
- allowUndo: false
51
- });
52
- await saveEditedEntityRecord('postType', template.type, template.id);
53
- createSuccessNotice((0, _i18n.sprintf)( /* translators: The template/part's name. */
54
- (0, _i18n.__)('"%s" reverted.'), (0, _htmlEntities.decodeEntities)(template.title.rendered)), {
51
+ for (const template of templates) {
52
+ await revertTemplate(template, {
53
+ allowUndo: false
54
+ });
55
+ await saveEditedEntityRecord('postType', template.type, template.id);
56
+ }
57
+ createSuccessNotice(templates.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
58
+ (0, _i18n.__)('%s items reverted.'), templates.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
59
+ (0, _i18n.__)('"%s" reverted.'), (0, _htmlEntities.decodeEntities)(templates[0].title.rendered)), {
55
60
  type: 'snackbar',
56
61
  id: 'edit-site-template-reverted'
57
62
  });
58
63
  } catch (error) {
59
- const fallbackErrorMessage = template.type === _constants.TEMPLATE_POST_TYPE ? (0, _i18n.__)('An error occurred while reverting the template.') : (0, _i18n.__)('An error occurred while reverting the template part.');
64
+ let fallbackErrorMessage;
65
+ if (templates[0].type === _constants.TEMPLATE_POST_TYPE) {
66
+ fallbackErrorMessage = templates.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template.') : (0, _i18n.__)('An error occurred while reverting the templates.');
67
+ } else {
68
+ fallbackErrorMessage = templates.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template part.') : (0, _i18n.__)('An error occurred while reverting the template parts.');
69
+ }
60
70
  const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
61
71
  createErrorNotice(errorMessage, {
62
72
  type: 'snackbar'
@@ -67,32 +77,42 @@ function useResetTemplateAction() {
67
77
  }
68
78
  const deleteTemplateAction = {
69
79
  id: 'delete-template',
70
- label: (0, _i18n.__)('Delete template'),
80
+ label: (0, _i18n.__)('Delete'),
71
81
  isPrimary: true,
72
82
  icon: _icons.trash,
73
83
  isEligible: _isTemplateRemovable.default,
84
+ supportsBulk: true,
74
85
  hideModalHeader: true,
75
86
  RenderModal: ({
76
- item: template,
77
- closeModal
87
+ items: templates,
88
+ closeModal,
89
+ onPerform
78
90
  }) => {
79
91
  const {
80
- removeTemplate
81
- } = (0, _data.useDispatch)(_store.store);
92
+ removeTemplates
93
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
82
94
  return (0, _react.createElement)(_components.__experimentalVStack, {
83
95
  spacing: "5"
84
- }, (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.sprintf)(
85
- // translators: %s: The template or template part's title.
86
- (0, _i18n.__)('Are you sure you want to delete "%s"?'), (0, _htmlEntities.decodeEntities)(template.title.rendered))), (0, _react.createElement)(_components.__experimentalHStack, {
96
+ }, (0, _react.createElement)(_components.__experimentalText, null, templates.length > 1 ? (0, _i18n.sprintf)(
97
+ // translators: %d: number of items to delete.
98
+ (0, _i18n._n)('Delete %d item?', 'Delete %d items?', templates.length), templates.length) : (0, _i18n.sprintf)(
99
+ // translators: %s: The template or template part's titles
100
+ (0, _i18n.__)('Delete "%s"?'), (0, _htmlEntities.decodeEntities)(templates?.[0]?.title?.rendered))), (0, _react.createElement)(_components.__experimentalHStack, {
87
101
  justify: "right"
88
102
  }, (0, _react.createElement)(_components.Button, {
89
103
  variant: "tertiary",
90
104
  onClick: closeModal
91
105
  }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
92
106
  variant: "primary",
93
- onClick: () => removeTemplate(template, {
94
- allowUndo: false
95
- })
107
+ onClick: async () => {
108
+ await removeTemplates(templates, {
109
+ allowUndo: false
110
+ });
111
+ if (onPerform) {
112
+ onPerform();
113
+ }
114
+ closeModal();
115
+ }
96
116
  }, (0, _i18n.__)('Delete'))));
97
117
  }
98
118
  };
@@ -100,11 +120,19 @@ exports.deleteTemplateAction = deleteTemplateAction;
100
120
  const renameTemplateAction = {
101
121
  id: 'rename-template',
102
122
  label: (0, _i18n.__)('Rename'),
103
- isEligible: template => (0, _isTemplateRemovable.default)(template) && template.is_custom,
123
+ isEligible: template => {
124
+ // We can only remove templates or template parts that can be removed.
125
+ // Additionally in the case of templates, we can only remove custom templates.
126
+ if (!(0, _isTemplateRemovable.default)(template) || template.type === _constants.TEMPLATE_POST_TYPE && !template.is_custom) {
127
+ return false;
128
+ }
129
+ return true;
130
+ },
104
131
  RenderModal: ({
105
- item: template,
132
+ items: templates,
106
133
  closeModal
107
134
  }) => {
135
+ const template = templates[0];
108
136
  const title = (0, _htmlEntities.decodeEntities)(template.title.rendered);
109
137
  const [editedTitle, setEditedTitle] = (0, _element.useState)(title);
110
138
  const {
@@ -165,4 +193,4 @@ const renameTemplateAction = {
165
193
  }
166
194
  };
167
195
  exports.renameTemplateAction = renameTemplateAction;
168
- //# sourceMappingURL=template-actions.js.map
196
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_icons","require","_i18n","_data","_element","_coreData","_notices","_htmlEntities","_components","_lockUnlock","_store","_isTemplateRevertable","_interopRequireDefault","_isTemplateRemovable","_constants","useResetTemplateAction","revertTemplate","useDispatch","editSiteStore","saveEditedEntityRecord","coreStore","createSuccessNotice","createErrorNotice","noticesStore","useMemo","id","label","__","isPrimary","icon","backup","isEligible","isTemplateRevertable","supportsBulk","callback","templates","template","allowUndo","type","length","sprintf","decodeEntities","title","rendered","error","fallbackErrorMessage","TEMPLATE_POST_TYPE","errorMessage","message","code","deleteTemplateAction","trash","isTemplateRemovable","hideModalHeader","RenderModal","items","closeModal","onPerform","removeTemplates","unlock","_react","createElement","__experimentalVStack","spacing","__experimentalText","_n","__experimentalHStack","justify","Button","variant","onClick","exports","renameTemplateAction","is_custom","editedTitle","setEditedTitle","useState","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","TextControl","__nextHasNoMarginBottom","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { backup, trash } from '@wordpress/icons';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport function useResetTemplateAction() {\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'reset-template',\n\t\t\tlabel: __( 'Reset' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible: isTemplateRevertable,\n\t\t\tsupportsBulk: true,\n\t\t\tasync callback( templates ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const template of templates ) {\n\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\ttemplates.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplates[ 0 ].title.rendered\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\t\tif ( templates[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t}\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\n\t\t\trevertTemplate,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( onPerform ) {\n\t\t\t\t\t\t\t\tonPerform();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// TODO: this action will be reused in template parts list, so\n\t\t\t\t// let's keep this for a bit, even it's always a `template` now.\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_router","require","_data","_coreData","_element","_components","_lockUnlock","_store","_createTemplatePartModal","_interopRequireDefault","_constants","useHistory","unlock","routerPrivateApis","AddNewTemplatePart","canCreate","postType","useSelect","select","supportsTemplatePartsMode","editSiteStore","getSettings","coreStore","getPostType","TEMPLATE_PART_POST_TYPE","isModalOpen","setIsModalOpen","useState","history","_react","createElement","Fragment","Button","variant","onClick","labels","add_new_item","default","closeModal","blocks","onCreate","templatePart","push","postId","id","canvas","onError"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/add-new-template-part.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function AddNewTemplatePart() {\n\tconst { canCreate, postType } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t\tpostType: select( coreStore ).getPostType(\n\t\t\t\tTEMPLATE_PART_POST_TYPE\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tif ( ! canCreate || ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button variant=\"primary\" onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ ( templatePart ) => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAKA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,wBAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAfA;AACA;AACA;;AAOA;AACA;AACA;;AAMA,MAAM;EAAEU;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEnC,SAASC,kBAAkBA,CAAA,EAAG;EAC5C,MAAM;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxD,MAAM;MAAEC;IAA0B,CAAC,GAClCD,MAAM,CAAEE,YAAc,CAAC,CAACC,WAAW,CAAC,CAAC;IACtC,OAAO;MACNN,SAAS,EAAE,CAAEI,yBAAyB;MACtCH,QAAQ,EAAEE,MAAM,CAAEI,eAAU,CAAC,CAACC,WAAW,CACxCC,kCACD;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACzD,MAAMC,OAAO,GAAGjB,UAAU,CAAC,CAAC;EAE5B,IAAK,CAAEI,SAAS,IAAI,CAAEC,QAAQ,EAAG;IAChC,OAAO,IAAI;EACZ;EAEA,OACC,IAAAa,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA2B,MAAM;IAACC,OAAO,EAAC,SAAS;IAACC,OAAO,EAAGA,CAAA,KAAMR,cAAc,CAAE,IAAK;EAAG,GAC/DV,QAAQ,CAACmB,MAAM,CAACC,YACX,CAAC,EACPX,WAAW,IACZ,IAAAI,MAAA,CAAAC,aAAA,EAACtB,wBAAA,CAAA6B,OAAuB;IACvBC,UAAU,EAAGA,CAAA,KAAMZ,cAAc,CAAE,KAAM,CAAG;IAC5Ca,MAAM,EAAG,EAAI;IACbC,QAAQ,EAAKC,YAAY,IAAM;MAC9Bf,cAAc,CAAE,KAAM,CAAC;MACvBE,OAAO,CAACc,IAAI,CAAE;QACbC,MAAM,EAAEF,YAAY,CAACG,EAAE;QACvB5B,QAAQ,EAAEQ,kCAAuB;QACjCqB,MAAM,EAAE;MACT,CAAE,CAAC;IACJ,CAAG;IACHC,OAAO,EAAGA,CAAA,KAAMpB,cAAc,CAAE,KAAM;EAAG,CACzC,CAED,CAAC;AAEL"}