@wordpress/edit-site 5.26.0 → 5.27.1

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 (340) hide show
  1. package/CHANGELOG.md +2 -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/tab-panel-layout.js +6 -2
  29. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  31. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/utils/index.js +103 -17
  33. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  35. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  36. package/build/components/global-styles/screen-block.js +10 -0
  37. package/build/components/global-styles/screen-block.js.map +1 -1
  38. package/build/components/global-styles/screen-typography.js +4 -1
  39. package/build/components/global-styles/screen-typography.js.map +1 -1
  40. package/build/components/layout/hooks.js +6 -5
  41. package/build/components/layout/hooks.js.map +1 -1
  42. package/build/components/layout/index.js +19 -28
  43. package/build/components/layout/index.js.map +1 -1
  44. package/build/components/layout/router.js +135 -0
  45. package/build/components/layout/router.js.map +1 -0
  46. package/build/components/page-pages/index.js +92 -69
  47. package/build/components/page-pages/index.js.map +1 -1
  48. package/build/components/page-patterns/dataviews-pattern-actions.js +11 -6
  49. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  50. package/build/components/page-patterns/index.js +295 -15
  51. package/build/components/page-patterns/index.js.map +1 -1
  52. package/build/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +51 -23
  53. package/build/components/page-templates-template-parts/actions.js.map +1 -0
  54. package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  55. package/build/components/page-templates-template-parts/index.js +395 -0
  56. package/build/components/page-templates-template-parts/index.js.map +1 -0
  57. package/build/components/preferences-modal/index.js +9 -134
  58. package/build/components/preferences-modal/index.js.map +1 -1
  59. package/build/components/revisions/index.js +1 -1
  60. package/build/components/revisions/index.js.map +1 -1
  61. package/build/components/save-button/index.js +4 -2
  62. package/build/components/save-button/index.js.map +1 -1
  63. package/build/components/save-panel/index.js +6 -5
  64. package/build/components/save-panel/index.js.map +1 -1
  65. package/build/components/sidebar/index.js +3 -1
  66. package/build/components/sidebar/index.js.map +1 -1
  67. package/build/components/sidebar-dataviews/dataview-item.js +3 -1
  68. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  69. package/build/components/sidebar-dataviews/default-views.js +4 -2
  70. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  71. package/build/components/sidebar-dataviews/index.js +2 -2
  72. package/build/components/sidebar-dataviews/index.js.map +1 -1
  73. package/build/components/sidebar-navigation-screen/index.js +8 -7
  74. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  75. package/build/components/sidebar-navigation-screen-pages/index.js +2 -10
  76. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  77. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +26 -3
  78. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  79. package/build/components/sidebar-navigation-screen-templates/index.js +63 -8
  80. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  81. package/build/components/sidebar-navigation-screen-templates-browse/content.js +76 -0
  82. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  83. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  84. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  85. package/build/components/site-hub/index.js +3 -1
  86. package/build/components/site-hub/index.js.map +1 -1
  87. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -12
  88. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  89. package/build/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  90. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  91. package/build/hooks/commands/use-edit-mode-commands.js +33 -5
  92. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  93. package/build/hooks/push-changes-to-global-styles/index.js +13 -6
  94. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  95. package/build/hooks/template-part-edit.js +7 -6
  96. package/build/hooks/template-part-edit.js.map +1 -1
  97. package/build/index.js +1 -1
  98. package/build/index.js.map +1 -1
  99. package/build/store/actions.js +11 -29
  100. package/build/store/actions.js.map +1 -1
  101. package/build/store/private-actions.js +85 -1
  102. package/build/store/private-actions.js.map +1 -1
  103. package/build/store/selectors.js +2 -2
  104. package/build/store/selectors.js.map +1 -1
  105. package/build/utils/get-is-list-page.js +1 -1
  106. package/build/utils/get-is-list-page.js.map +1 -1
  107. package/build/utils/use-actual-current-theme.js +32 -0
  108. package/build/utils/use-actual-current-theme.js.map +1 -0
  109. package/build-module/components/actions/index.js +139 -36
  110. package/build-module/components/actions/index.js.map +1 -1
  111. package/build-module/components/editor-canvas-container/index.js +1 -1
  112. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  113. package/build-module/components/global-styles/font-families.js +3 -2
  114. package/build-module/components/global-styles/font-families.js.map +1 -1
  115. package/build-module/components/global-styles/font-family-item.js +4 -5
  116. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  117. package/build-module/components/global-styles/font-library-modal/context.js +82 -42
  118. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  119. package/build-module/components/global-styles/font-library-modal/font-collection.js +49 -22
  120. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  121. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  122. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  123. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  124. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  125. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  126. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  127. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  128. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  129. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  130. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  131. package/build-module/components/global-styles/font-library-modal/local-fonts.js +13 -4
  132. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  133. package/build-module/components/global-styles/font-library-modal/resolvers.js +45 -18
  134. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  135. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +6 -2
  136. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  137. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  138. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/index.js +99 -16
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  141. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  142. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  143. package/build-module/components/global-styles/screen-block.js +10 -0
  144. package/build-module/components/global-styles/screen-block.js.map +1 -1
  145. package/build-module/components/global-styles/screen-typography.js +4 -1
  146. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  147. package/build-module/components/layout/hooks.js +6 -5
  148. package/build-module/components/layout/hooks.js.map +1 -1
  149. package/build-module/components/layout/index.js +19 -28
  150. package/build-module/components/layout/index.js.map +1 -1
  151. package/build-module/components/layout/router.js +127 -0
  152. package/build-module/components/layout/router.js.map +1 -0
  153. package/build-module/components/page-pages/index.js +91 -70
  154. package/build-module/components/page-pages/index.js.map +1 -1
  155. package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -6
  156. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  157. package/build-module/components/page-patterns/index.js +296 -16
  158. package/build-module/components/page-patterns/index.js.map +1 -1
  159. package/build-module/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +52 -24
  160. package/build-module/components/page-templates-template-parts/actions.js.map +1 -0
  161. package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  162. package/build-module/components/page-templates-template-parts/index.js +385 -0
  163. package/build-module/components/page-templates-template-parts/index.js.map +1 -0
  164. package/build-module/components/preferences-modal/index.js +12 -136
  165. package/build-module/components/preferences-modal/index.js.map +1 -1
  166. package/build-module/components/revisions/index.js +1 -1
  167. package/build-module/components/revisions/index.js.map +1 -1
  168. package/build-module/components/save-button/index.js +4 -2
  169. package/build-module/components/save-button/index.js.map +1 -1
  170. package/build-module/components/save-panel/index.js +7 -6
  171. package/build-module/components/save-panel/index.js.map +1 -1
  172. package/build-module/components/sidebar/index.js +3 -1
  173. package/build-module/components/sidebar/index.js.map +1 -1
  174. package/build-module/components/sidebar-dataviews/dataview-item.js +3 -1
  175. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  176. package/build-module/components/sidebar-dataviews/default-views.js +4 -2
  177. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  178. package/build-module/components/sidebar-dataviews/index.js +2 -2
  179. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  180. package/build-module/components/sidebar-navigation-screen/index.js +8 -7
  181. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  182. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -10
  183. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  184. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +27 -4
  185. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  186. package/build-module/components/sidebar-navigation-screen-templates/index.js +64 -9
  187. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  188. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +68 -0
  189. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  190. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  191. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  192. package/build-module/components/site-hub/index.js +3 -1
  193. package/build-module/components/site-hub/index.js.map +1 -1
  194. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -11
  195. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  196. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  197. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  198. package/build-module/hooks/commands/use-edit-mode-commands.js +33 -5
  199. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  200. package/build-module/hooks/push-changes-to-global-styles/index.js +13 -6
  201. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  202. package/build-module/hooks/template-part-edit.js +7 -6
  203. package/build-module/hooks/template-part-edit.js.map +1 -1
  204. package/build-module/index.js +1 -1
  205. package/build-module/index.js.map +1 -1
  206. package/build-module/store/actions.js +13 -30
  207. package/build-module/store/actions.js.map +1 -1
  208. package/build-module/store/private-actions.js +83 -0
  209. package/build-module/store/private-actions.js.map +1 -1
  210. package/build-module/store/selectors.js +2 -2
  211. package/build-module/store/selectors.js.map +1 -1
  212. package/build-module/utils/get-is-list-page.js +1 -1
  213. package/build-module/utils/get-is-list-page.js.map +1 -1
  214. package/build-module/utils/use-actual-current-theme.js +24 -0
  215. package/build-module/utils/use-actual-current-theme.js.map +1 -0
  216. package/build-style/style-rtl.css +316 -215
  217. package/build-style/style.css +316 -215
  218. package/package.json +42 -42
  219. package/src/components/actions/index.js +236 -84
  220. package/src/components/editor-canvas-container/index.js +1 -1
  221. package/src/components/global-styles/font-families.js +14 -8
  222. package/src/components/global-styles/font-family-item.js +7 -4
  223. package/src/components/global-styles/font-library-modal/context.js +156 -50
  224. package/src/components/global-styles/font-library-modal/font-collection.js +56 -21
  225. package/src/components/global-styles/font-library-modal/fonts-grid.js +6 -2
  226. package/src/components/global-styles/font-library-modal/index.js +4 -4
  227. package/src/components/global-styles/font-library-modal/installed-fonts.js +18 -8
  228. package/src/components/global-styles/font-library-modal/library-font-card.js +2 -1
  229. package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -9
  230. package/src/components/global-styles/font-library-modal/local-fonts.js +14 -4
  231. package/src/components/global-styles/font-library-modal/resolvers.js +50 -17
  232. package/src/components/global-styles/font-library-modal/style.scss +23 -35
  233. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +30 -26
  234. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +19 -2
  235. package/src/components/global-styles/font-library-modal/utils/index.js +136 -29
  236. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +7 -3
  237. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +40 -10
  238. package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +5 -5
  239. package/src/components/global-styles/screen-block.js +10 -0
  240. package/src/components/global-styles/screen-typography.js +9 -3
  241. package/src/components/global-styles/style.scss +4 -0
  242. package/src/components/header-edit-mode/style.scss +15 -5
  243. package/src/components/layout/hooks.js +6 -5
  244. package/src/components/layout/index.js +80 -96
  245. package/src/components/layout/router.js +121 -0
  246. package/src/components/layout/style.scss +13 -16
  247. package/src/components/page/style.scss +1 -8
  248. package/src/components/page-pages/index.js +142 -148
  249. package/src/components/page-pages/style.scss +41 -2
  250. package/src/components/page-patterns/dataviews-pattern-actions.js +11 -6
  251. package/src/components/page-patterns/index.js +392 -14
  252. package/src/components/page-patterns/style.scss +36 -2
  253. package/src/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +90 -37
  254. package/src/components/{page-templates → page-templates-template-parts}/index.js +198 -169
  255. package/src/components/page-templates-template-parts/style.scss +44 -0
  256. package/src/components/preferences-modal/index.js +8 -211
  257. package/src/components/revisions/index.js +1 -1
  258. package/src/components/save-button/index.js +7 -4
  259. package/src/components/save-panel/index.js +13 -12
  260. package/src/components/sidebar/index.js +4 -5
  261. package/src/components/sidebar-dataviews/dataview-item.js +2 -1
  262. package/src/components/sidebar-dataviews/default-views.js +4 -2
  263. package/src/components/sidebar-dataviews/index.js +8 -6
  264. package/src/components/sidebar-navigation-item/style.scss +1 -1
  265. package/src/components/sidebar-navigation-screen/index.js +19 -10
  266. package/src/components/sidebar-navigation-screen-pages/index.js +2 -10
  267. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +32 -6
  268. package/src/components/sidebar-navigation-screen-templates/index.js +85 -28
  269. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  270. package/src/components/sidebar-navigation-screen-templates-browse/content.js +73 -0
  271. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -1
  272. package/src/components/site-hub/index.js +4 -1
  273. package/src/components/site-hub/style.scss +1 -12
  274. package/src/components/site-icon/style.scss +1 -1
  275. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +40 -10
  276. package/src/components/sync-state-with-url/use-sync-path-with-url.js +32 -0
  277. package/src/hooks/commands/use-edit-mode-commands.js +50 -3
  278. package/src/hooks/push-changes-to-global-styles/index.js +29 -23
  279. package/src/hooks/template-part-edit.js +12 -12
  280. package/src/index.js +1 -1
  281. package/src/store/actions.js +17 -51
  282. package/src/store/private-actions.js +133 -0
  283. package/src/store/selectors.js +2 -4
  284. package/src/style.scss +2 -1
  285. package/src/utils/get-is-list-page.js +3 -2
  286. package/src/utils/use-actual-current-theme.js +27 -0
  287. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  288. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  289. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -71
  290. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  291. package/build/components/page-main/index.js +0 -44
  292. package/build/components/page-main/index.js.map +0 -1
  293. package/build/components/page-patterns/dataviews-patterns.js +0 -307
  294. package/build/components/page-patterns/dataviews-patterns.js.map +0 -1
  295. package/build/components/page-template-parts/add-new-template-part.js.map +0 -1
  296. package/build/components/page-template-parts/index.js +0 -81
  297. package/build/components/page-template-parts/index.js.map +0 -1
  298. package/build/components/page-templates/index.js +0 -352
  299. package/build/components/page-templates/index.js.map +0 -1
  300. package/build/components/page-templates/template-actions.js.map +0 -1
  301. package/build/components/post-preview/index.js +0 -29
  302. package/build/components/post-preview/index.js.map +0 -1
  303. package/build/components/preferences-modal/enable-feature.js +0 -36
  304. package/build/components/preferences-modal/enable-feature.js.map +0 -1
  305. package/build/components/preferences-modal/enable-panel-option.js +0 -33
  306. package/build/components/preferences-modal/enable-panel-option.js.map +0 -1
  307. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -52
  308. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  309. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -63
  310. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  311. package/build-module/components/page-main/index.js +0 -36
  312. package/build-module/components/page-main/index.js.map +0 -1
  313. package/build-module/components/page-patterns/dataviews-patterns.js +0 -299
  314. package/build-module/components/page-patterns/dataviews-patterns.js.map +0 -1
  315. package/build-module/components/page-template-parts/add-new-template-part.js.map +0 -1
  316. package/build-module/components/page-template-parts/index.js +0 -73
  317. package/build-module/components/page-template-parts/index.js.map +0 -1
  318. package/build-module/components/page-templates/index.js +0 -344
  319. package/build-module/components/page-templates/index.js.map +0 -1
  320. package/build-module/components/page-templates/template-actions.js.map +0 -1
  321. package/build-module/components/post-preview/index.js +0 -21
  322. package/build-module/components/post-preview/index.js.map +0 -1
  323. package/build-module/components/preferences-modal/enable-feature.js +0 -29
  324. package/build-module/components/preferences-modal/enable-feature.js.map +0 -1
  325. package/build-module/components/preferences-modal/enable-panel-option.js +0 -26
  326. package/build-module/components/preferences-modal/enable-panel-option.js.map +0 -1
  327. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  328. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -62
  329. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +0 -271
  330. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +0 -58
  331. package/src/components/page-main/index.js +0 -38
  332. package/src/components/page-patterns/dataviews-patterns.js +0 -380
  333. package/src/components/page-template-parts/index.js +0 -99
  334. package/src/components/page-templates/style.scss +0 -13
  335. package/src/components/post-preview/index.js +0 -16
  336. package/src/components/preferences-modal/enable-feature.js +0 -31
  337. package/src/components/preferences-modal/enable-panel-option.js +0 -23
  338. /package/build/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  339. /package/build-module/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  340. /package/src/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalView","View","__experimentalVStack","VStack","Button","__","useEntityRecords","store","coreStore","decodeEntities","useState","useMemo","useCallback","useEffect","dateI18n","getDate","getSettings","privateApis","routerPrivateApis","useSelect","useDispatch","DataViews","ENTER","SPACE","Page","Link","DEFAULT_VIEWS","DEFAULT_CONFIG_PER_VIEW_TYPE","ENUMERATION_TYPE","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","OPERATOR_IN","OPERATOR_NOT_IN","trashPostAction","usePermanentlyDeletePostAction","useRestorePostAction","postRevisionsAction","viewPostAction","useEditPostAction","PostPreview","AddNewPageModal","Media","unlock","useLocation","useHistory","EMPTY_ARRAY","useView","type","params","activeView","isCustom","selectedDefaultView","find","slug","view","setView","editedViewRecord","select","getEditedEntityRecord","dataviewRecord","Number","editEntityRecord","customView","content","JSON","parse","setCustomView","viewToSet","id","stringify","STATUSES","value","label","DEFAULT_STATUSES","PagePages","postType","pageId","setPageId","history","onSelectionChange","items","length","onDetailsChange","push","postId","queryArgs","filters","forEach","filter","field","operator","status","author","author_exclude","per_page","perPage","page","_embed","order","sort","direction","orderby","search","records","pages","isResolving","isLoadingPages","totalItems","totalPages","authors","isLoadingAuthors","paginationInfo","fields","header","getValue","item","featured_media","render","createElement","className","size","enableSorting","title","rendered","spacing","as","includes","canvas","maxWidth","enableHiding","_embedded","name","elements","map","_STATUSES$find$label","filterBy","operators","date","formattedDate","formats","datetimeAbbreviated","permanentlyDeletePostAction","restorePostAction","editPostAction","actions","onChangeView","newView","layout","showAddPageModal","setShowAddPageModal","openModal","closeModal","handleNewPage","Fragment","variant","onClick","onSave","onClose","data","isLoading","tabIndex","role","onKeyDown","event","keyCode","style","display","flexDirection","justifyContent","textAlign","height"],"sources":["@wordpress/edit-site/src/components/page-pages/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalView as View,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { DataViews } from '@wordpress/dataviews';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport {\n\tDEFAULT_VIEWS,\n\tDEFAULT_CONFIG_PER_VIEW_TYPE,\n} from '../sidebar-dataviews/default-views';\nimport {\n\tENUMERATION_TYPE,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tOPERATOR_IN,\n\tOPERATOR_NOT_IN,\n} from '../../utils/constants';\n\nimport {\n\ttrashPostAction,\n\tusePermanentlyDeletePostAction,\n\tuseRestorePostAction,\n\tpostRevisionsAction,\n\tviewPostAction,\n\tuseEditPostAction,\n} from '../actions';\nimport PostPreview from '../post-preview';\nimport AddNewPageModal from '../add-new-page';\nimport Media from '../media';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction useView( type ) {\n\tconst {\n\t\tparams: { activeView = 'all', isCustom = 'false' },\n\t} = useLocation();\n\tconst selectedDefaultView =\n\t\tisCustom === 'false' &&\n\t\tDEFAULT_VIEWS[ type ].find( ( { slug } ) => slug === activeView )?.view;\n\tconst [ view, setView ] = useState( selectedDefaultView );\n\n\tuseEffect( () => {\n\t\tif ( selectedDefaultView ) {\n\t\t\tsetView( selectedDefaultView );\n\t\t}\n\t}, [ selectedDefaultView ] );\n\tconst editedViewRecord = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isCustom !== 'true' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst dataviewRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_dataviews',\n\t\t\t\tNumber( activeView )\n\t\t\t);\n\t\t\treturn dataviewRecord;\n\t\t},\n\t\t[ activeView, isCustom ]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst customView = useMemo( () => {\n\t\treturn (\n\t\t\teditedViewRecord?.content && JSON.parse( editedViewRecord?.content )\n\t\t);\n\t}, [ editedViewRecord?.content ] );\n\tconst setCustomView = useCallback(\n\t\t( viewToSet ) => {\n\t\t\teditEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_dataviews',\n\t\t\t\teditedViewRecord?.id,\n\t\t\t\t{\n\t\t\t\t\tcontent: JSON.stringify( viewToSet ),\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ editEntityRecord, editedViewRecord?.id ]\n\t);\n\n\tif ( isCustom === 'false' ) {\n\t\treturn [ view, setView ];\n\t} else if ( isCustom === 'true' && customView ) {\n\t\treturn [ customView, setCustomView ];\n\t}\n\t// Loading state where no the view was not found on custom views or default views.\n\treturn [ DEFAULT_VIEWS[ type ][ 0 ].view, setView ];\n}\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{ value: 'draft', label: __( 'Draft' ) },\n\t{ value: 'future', label: __( 'Scheduled' ) },\n\t{ value: 'pending', label: __( 'Pending Review' ) },\n\t{ value: 'private', label: __( 'Private' ) },\n\t{ value: 'publish', label: __( 'Published' ) },\n\t{ value: 'trash', label: __( 'Trash' ) },\n];\nconst DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.\n\nexport default function PagePages() {\n\tconst postType = 'page';\n\tconst [ view, setView ] = useView( postType );\n\tconst [ pageId, setPageId ] = useState( null );\n\tconst history = useHistory();\n\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => setPageId( items?.length === 1 ? items[ 0 ].id : null ),\n\t\t[ setPageId ]\n\t);\n\n\tconst onDetailsChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( !! postType && items?.length === 1 ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\tpostId: items[ 0 ].id,\n\t\t\t\t\tpostType,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, postType ]\n\t);\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif (\n\t\t\t\tfilter.field === 'status' &&\n\t\t\t\tfilter.operator === OPERATOR_IN\n\t\t\t) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_IN\n\t\t\t) {\n\t\t\t\tfilters.author = filter.value;\n\t\t\t} else if (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_NOT_IN\n\t\t\t) {\n\t\t\t\tfilters.author_exclude = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === '' ) {\n\t\t\tfilters.status = DEFAULT_STATUSES;\n\t\t}\n\n\t\treturn {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search,\n\t\t\t...filters,\n\t\t};\n\t}, [ view ] );\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isLoadingPages,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'postType', postType, queryArgs );\n\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user' );\n\n\tconst paginationInfo = useMemo(\n\t\t() => ( {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t} ),\n\t\t[ totalItems, totalPages ]\n\t);\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'featured-image',\n\t\t\t\theader: __( 'Featured Image' ),\n\t\t\t\tgetValue: ( { item } ) => item.featured_media,\n\t\t\t\trender: ( { item } ) =>\n\t\t\t\t\t!! item.featured_media ? (\n\t\t\t\t\t\t<Media\n\t\t\t\t\t\t\tclassName=\"edit-site-page-pages__featured-image\"\n\t\t\t\t\t\t\tid={ item.featured_media }\n\t\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t\tview.type === LAYOUT_GRID\n\t\t\t\t\t\t\t\t\t? [ 'large', 'full', 'medium', 'thumbnail' ]\n\t\t\t\t\t\t\t\t\t: [ 'thumbnail', 'medium', 'large', 'full' ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null,\n\t\t\t\tenableSorting: 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?.rendered,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__title-field\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes(\n\t\t\t\t\t\t\t\t\tview.type\n\t\t\t\t\t\t\t\t) ? (\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\titem.title?.rendered\n\t\t\t\t\t\t\t\t\t\t) || __( '(no title)' ) }\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\tdecodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\tSTATUSES.find( ( { value } ) => value === item.status )\n\t\t\t\t\t\t?.label ?? item.status,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: STATUSES,\n\t\t\t\tenableSorting: false,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\tgetValue: ( { item } ) => item.date,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\tgetDate( item.date )\n\t\t\t\t\t);\n\t\t\t\t\treturn <time>{ formattedDate }</time>;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ authors, view.type ]\n\t);\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst editPostAction = useEditPostAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tviewPostAction,\n\t\t\ttrashPostAction,\n\t\t\trestorePostAction,\n\t\t\tpermanentlyDeletePostAction,\n\t\t\teditPostAction,\n\t\t\tpostRevisionsAction,\n\t\t],\n\t\t[ permanentlyDeletePostAction, restorePostAction, editPostAction ]\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...DEFAULT_CONFIG_PER_VIEW_TYPE[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\n\tconst [ showAddPageModal, setShowAddPageModal ] = useState( false );\n\tconst openModal = useCallback( () => {\n\t\tif ( ! showAddPageModal ) {\n\t\t\tsetShowAddPageModal( true );\n\t\t}\n\t}, [ showAddPageModal ] );\n\tconst closeModal = useCallback( () => {\n\t\tif ( showAddPageModal ) {\n\t\t\tsetShowAddPageModal( false );\n\t\t}\n\t}, [ showAddPageModal ] );\n\tconst handleNewPage = useCallback(\n\t\t( { type, id } ) => {\n\t\t\thistory.push( {\n\t\t\t\tpostId: id,\n\t\t\t\tpostType: type,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t},\n\t\t[ history ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t<>\n\t\t\t<Page\n\t\t\t\tclassName={\n\t\t\t\t\tview.type === LAYOUT_LIST\n\t\t\t\t\t\t? 'edit-site-page-pages-list-view'\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\ttitle={ __( 'Pages' ) }\n\t\t\t\tactions={\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button variant=\"primary\" onClick={ openModal }>\n\t\t\t\t\t\t\t{ __( 'Add new page' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ showAddPageModal && (\n\t\t\t\t\t\t\t<AddNewPageModal\n\t\t\t\t\t\t\t\tonSave={ handleNewPage }\n\t\t\t\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t}\n\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={ pages || EMPTY_ARRAY }\n\t\t\t\t\tisLoading={ isLoadingPages || isLoadingAuthors }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tonDetailsChange={ onDetailsChange }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t\t{ view.type === LAYOUT_LIST && (\n\t\t\t\t<Page>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-page-pages-preview\"\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER || keyCode === SPACE ) {\n\t\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\t\tpostId: pageId,\n\t\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpostId: pageId,\n\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ pageId !== null ? (\n\t\t\t\t\t\t\t<PostPreview\n\t\t\t\t\t\t\t\tpostId={ pageId }\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p>{ __( 'Select a page to preview' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</Page>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","__","useEntityRecords","store","coreStore","decodeEntities","useState","useMemo","useCallback","useEffect","dateI18n","getDate","getSettings","privateApis","routerPrivateApis","useSelect","useDispatch","DataViews","Page","default","Link","useLink","DEFAULT_VIEWS","DEFAULT_CONFIG_PER_VIEW_TYPE","ENUMERATION_TYPE","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","OPERATOR_IN","OPERATOR_NOT_IN","trashPostAction","usePermanentlyDeletePostAction","useRestorePostAction","postRevisionsAction","viewPostAction","useEditPostAction","AddNewPageModal","Media","unlock","useLocation","useHistory","EMPTY_ARRAY","SUPPORTED_LAYOUTS","window","__experimentalAdminViews","useView","postType","params","activeView","isCustom","layout","history","selectedDefaultView","defaultView","find","slug","view","type","setView","editedViewRecord","select","getEditedEntityRecord","dataviewRecord","Number","editEntityRecord","customView","storedView","content","JSON","parse","setCustomView","viewToSet","id","stringify","setDefaultViewAndUpdateUrl","push","STATUSES","value","label","DEFAULT_STATUSES","FeaturedImage","item","viewType","onClick","postId","canvas","hasMedia","featured_media","createElement","className","title","rendered","size","PagePages","onSelectionChange","items","length","undefined","queryArgs","filters","forEach","filter","field","operator","status","author","author_exclude","per_page","perPage","page","_embed","order","sort","direction","orderby","search","records","pages","isResolving","isLoadingPages","totalItems","totalPages","authors","isLoadingAuthors","paginationInfo","fields","header","getValue","render","enableSorting","includes","maxWidth","enableHiding","_embedded","name","elements","map","_STATUSES$find$label","filterBy","operators","date","formattedDate","formats","datetimeAbbreviated","permanentlyDeletePostAction","restorePostAction","editPostAction","actions","onChangeView","newView","showAddPageModal","setShowAddPageModal","openModal","closeModal","handleNewPage","Fragment","variant","onSave","onClose","data","isLoading","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-pages/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { DataViews } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport {\n\tDEFAULT_VIEWS,\n\tDEFAULT_CONFIG_PER_VIEW_TYPE,\n} from '../sidebar-dataviews/default-views';\nimport {\n\tENUMERATION_TYPE,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tOPERATOR_IN,\n\tOPERATOR_NOT_IN,\n} from '../../utils/constants';\n\nimport {\n\ttrashPostAction,\n\tusePermanentlyDeletePostAction,\n\tuseRestorePostAction,\n\tpostRevisionsAction,\n\tviewPostAction,\n\tuseEditPostAction,\n} from '../actions';\nimport AddNewPageModal from '../add-new-page';\nimport Media from '../media';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\nconst SUPPORTED_LAYOUTS = window?.__experimentalAdminViews\n\t? [ LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST ]\n\t: [ LAYOUT_GRID, LAYOUT_TABLE ];\n\nfunction useView( postType ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', isCustom = 'false', layout } = params;\n\tconst history = useHistory();\n\tconst selectedDefaultView = useMemo( () => {\n\t\tconst defaultView =\n\t\t\tisCustom === 'false' &&\n\t\t\tDEFAULT_VIEWS[ postType ].find(\n\t\t\t\t( { slug } ) => slug === activeView\n\t\t\t)?.view;\n\t\tif ( isCustom === 'false' && layout ) {\n\t\t\treturn {\n\t\t\t\t...defaultView,\n\t\t\t\ttype: layout,\n\t\t\t};\n\t\t}\n\t\treturn defaultView;\n\t}, [ isCustom, activeView, layout, postType ] );\n\tconst [ view, setView ] = useState( selectedDefaultView );\n\n\tuseEffect( () => {\n\t\tif ( selectedDefaultView ) {\n\t\t\tsetView( selectedDefaultView );\n\t\t}\n\t}, [ selectedDefaultView ] );\n\tconst editedViewRecord = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isCustom !== 'true' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst dataviewRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_dataviews',\n\t\t\t\tNumber( activeView )\n\t\t\t);\n\t\t\treturn dataviewRecord;\n\t\t},\n\t\t[ activeView, isCustom ]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst customView = useMemo( () => {\n\t\tconst storedView =\n\t\t\teditedViewRecord?.content &&\n\t\t\tJSON.parse( editedViewRecord?.content );\n\t\tif ( ! storedView ) {\n\t\t\treturn storedView;\n\t\t}\n\n\t\treturn {\n\t\t\t...storedView,\n\t\t\tlayout: {\n\t\t\t\t...( DEFAULT_CONFIG_PER_VIEW_TYPE[ storedView?.type ] || {} ),\n\t\t\t},\n\t\t};\n\t}, [ editedViewRecord?.content ] );\n\n\tconst setCustomView = useCallback(\n\t\t( viewToSet ) => {\n\t\t\teditEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_dataviews',\n\t\t\t\teditedViewRecord?.id,\n\t\t\t\t{\n\t\t\t\t\tcontent: JSON.stringify( viewToSet ),\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ editEntityRecord, editedViewRecord?.id ]\n\t);\n\n\tconst setDefaultViewAndUpdateUrl = useCallback(\n\t\t( viewToSet ) => {\n\t\t\tif ( viewToSet.type !== view?.type ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: viewToSet.type,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tsetView( viewToSet );\n\t\t},\n\t\t[ params, view?.type, history ]\n\t);\n\n\tif ( isCustom === 'false' ) {\n\t\treturn [ view, setDefaultViewAndUpdateUrl ];\n\t} else if ( isCustom === 'true' && customView ) {\n\t\treturn [ customView, setCustomView ];\n\t}\n\t// Loading state where no the view was not found on custom views or default views.\n\treturn [ DEFAULT_VIEWS[ postType ][ 0 ].view, setDefaultViewAndUpdateUrl ];\n}\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{ value: 'draft', label: __( 'Draft' ) },\n\t{ value: 'future', label: __( 'Scheduled' ) },\n\t{ value: 'pending', label: __( 'Pending Review' ) },\n\t{ value: 'private', label: __( 'Private' ) },\n\t{ value: 'publish', label: __( 'Published' ) },\n\t{ value: 'trash', label: __( 'Trash' ) },\n];\nconst DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.\n\nfunction FeaturedImage( { item, viewType } ) {\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\tconst hasMedia = !! item.featured_media;\n\treturn (\n\t\t<span\n\t\t\tclassName={ {\n\t\t\t\t'edit-site-page-pages__media-wrapper':\n\t\t\t\t\tviewType === LAYOUT_TABLE,\n\t\t\t} }\n\t\t>\n\t\t\t<button\n\t\t\t\tclassName=\"page-pages-preview-field__button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={ onClick }\n\t\t\t\taria-label={ item.title?.rendered || __( '(no title)' ) }\n\t\t\t>\n\t\t\t\t{ hasMedia && (\n\t\t\t\t\t<Media\n\t\t\t\t\t\tclassName=\"edit-site-page-pages__featured-image\"\n\t\t\t\t\t\tid={ item.featured_media }\n\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\tviewType === LAYOUT_GRID\n\t\t\t\t\t\t\t\t? [ 'large', 'full', 'medium', 'thumbnail' ]\n\t\t\t\t\t\t\t\t: [ 'thumbnail', 'medium', 'large', 'full' ]\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t</span>\n\t);\n}\n\nexport default function PagePages() {\n\tconst postType = 'page';\n\tconst [ view, setView ] = useView( postType );\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst { isCustom = 'false' } = params;\n\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( isCustom === 'false' && view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type, isCustom ]\n\t);\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif (\n\t\t\t\tfilter.field === 'status' &&\n\t\t\t\tfilter.operator === OPERATOR_IN\n\t\t\t) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_IN\n\t\t\t) {\n\t\t\t\tfilters.author = filter.value;\n\t\t\t} else if (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_NOT_IN\n\t\t\t) {\n\t\t\t\tfilters.author_exclude = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === '' ) {\n\t\t\tfilters.status = DEFAULT_STATUSES;\n\t\t}\n\n\t\treturn {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search,\n\t\t\t...filters,\n\t\t};\n\t}, [ view ] );\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isLoadingPages,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'postType', postType, queryArgs );\n\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user' );\n\n\tconst paginationInfo = useMemo(\n\t\t() => ( {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t} ),\n\t\t[ totalItems, totalPages ]\n\t);\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'featured-image',\n\t\t\t\theader: __( 'Featured Image' ),\n\t\t\t\tgetValue: ( { item } ) => item.featured_media,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<FeaturedImage item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tenableSorting: 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?.rendered,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn [ LAYOUT_TABLE, LAYOUT_GRID ].includes(\n\t\t\t\t\t\tview.type\n\t\t\t\t\t) ? (\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tdecodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\tSTATUSES.find( ( { value } ) => value === item.status )\n\t\t\t\t\t\t?.label ?? item.status,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: STATUSES,\n\t\t\t\tenableSorting: false,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\tgetValue: ( { item } ) => item.date,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\tgetDate( item.date )\n\t\t\t\t\t);\n\t\t\t\t\treturn <time>{ formattedDate }</time>;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ authors, view.type ]\n\t);\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst editPostAction = useEditPostAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tviewPostAction,\n\t\t\ttrashPostAction,\n\t\t\trestorePostAction,\n\t\t\tpermanentlyDeletePostAction,\n\t\t\teditPostAction,\n\t\t\tpostRevisionsAction,\n\t\t],\n\t\t[ permanentlyDeletePostAction, restorePostAction, editPostAction ]\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...DEFAULT_CONFIG_PER_VIEW_TYPE[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\n\tconst [ showAddPageModal, setShowAddPageModal ] = useState( false );\n\tconst openModal = useCallback( () => {\n\t\tif ( ! showAddPageModal ) {\n\t\t\tsetShowAddPageModal( true );\n\t\t}\n\t}, [ showAddPageModal ] );\n\tconst closeModal = useCallback( () => {\n\t\tif ( showAddPageModal ) {\n\t\t\tsetShowAddPageModal( false );\n\t\t}\n\t}, [ showAddPageModal ] );\n\tconst handleNewPage = useCallback(\n\t\t( { type, id } ) => {\n\t\t\thistory.push( {\n\t\t\t\tpostId: id,\n\t\t\t\tpostType: type,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t},\n\t\t[ history ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t<Page\n\t\t\ttitle={ __( 'Pages' ) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<Button variant=\"primary\" onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Add new page' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t{ showAddPageModal && (\n\t\t\t\t\t\t<AddNewPageModal\n\t\t\t\t\t\t\tonSave={ handleNewPage }\n\t\t\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ pages || EMPTY_ARRAY }\n\t\t\t\tisLoading={ isLoadingPages || isLoadingAuthors }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tsupportedLayouts={ SUPPORTED_LAYOUTS }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
@@ -38,7 +38,7 @@ export const exportJSONaction = {
38
38
  id: 'export-pattern',
39
39
  label: __('Export as JSON'),
40
40
  isEligible: item => item.type === PATTERN_TYPES.user,
41
- callback: item => {
41
+ callback: ([item]) => {
42
42
  const json = {
43
43
  __file: item.type,
44
44
  title: item.title || item.name,
@@ -59,9 +59,10 @@ export const renameAction = {
59
59
  return isCustomPattern && !hasThemeFile;
60
60
  },
61
61
  RenderModal: ({
62
- item,
62
+ items,
63
63
  closeModal
64
64
  }) => {
65
+ const [item] = items;
65
66
  const [title, setTitle] = useState(() => item.title);
66
67
  const {
67
68
  editEntityRecord,
@@ -136,9 +137,10 @@ export const deleteAction = {
136
137
  },
137
138
  hideModalHeader: true,
138
139
  RenderModal: ({
139
- item,
140
+ items,
140
141
  closeModal
141
142
  }) => {
143
+ const [item] = items;
142
144
  const {
143
145
  __experimentalDeleteReusableBlock
144
146
  } = useDispatch(reusableBlocksStore);
@@ -192,9 +194,10 @@ export const resetAction = {
192
194
  },
193
195
  hideModalHeader: true,
194
196
  RenderModal: ({
195
- item,
197
+ items,
196
198
  closeModal
197
199
  }) => {
200
+ const [item] = items;
198
201
  const {
199
202
  removeTemplate
200
203
  } = useDispatch(editSiteStore);
@@ -217,9 +220,10 @@ export const duplicatePatternAction = {
217
220
  isEligible: item => item.type !== TEMPLATE_PART_POST_TYPE,
218
221
  modalHeader: _x('Duplicate pattern', 'action label'),
219
222
  RenderModal: ({
220
- item,
223
+ items,
221
224
  closeModal
222
225
  }) => {
226
+ const [item] = items;
223
227
  const {
224
228
  categoryId = PATTERN_DEFAULT_CATEGORY
225
229
  } = getQueryArgs(window.location.href);
@@ -253,9 +257,10 @@ export const duplicateTemplatePartAction = {
253
257
  isEligible: item => item.type === TEMPLATE_PART_POST_TYPE,
254
258
  modalHeader: _x('Duplicate template part', 'action label'),
255
259
  RenderModal: ({
256
- item,
260
+ items,
257
261
  closeModal
258
262
  }) => {
263
+ const [item] = items;
259
264
  const {
260
265
  createSuccessNotice
261
266
  } = useDispatch(noticesStore);
@@ -1 +1 @@
1
- {"version":3,"names":["paramCase","kebabCase","getQueryArgs","downloadBlob","__","_x","sprintf","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalText","Text","store","coreStore","useDispatch","useState","noticesStore","decodeEntities","reusableBlocksStore","privateApis","routerPrivateApis","patternsPrivateApis","unlock","editSiteStore","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_DEFAULT_CATEGORY","CreateTemplatePartModalContents","useHistory","CreatePatternModalContents","useDuplicatePatternProps","exportJSONaction","id","label","isEligible","item","type","user","callback","json","__file","title","name","content","patternPost","raw","syncStatus","wp_pattern_sync_status","JSON","stringify","renameAction","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","RenderModal","closeModal","setTitle","editEntityRecord","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","onRename","event","preventDefault","throwOnError","error","fallbackErrorMessage","errorMessage","message","code","createElement","onSubmit","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","justify","variant","onClick","canDeleteOrReset","deleteAction","hideModalHeader","__experimentalDeleteReusableBlock","removeTemplate","deletePattern","deleteItem","resetAction","duplicatePatternAction","modalHeader","categoryId","window","location","href","isThemePattern","theme","history","onPatternSuccess","pattern","push","categoryType","postType","postId","duplicatedProps","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError"],"sources":["@wordpress/edit-site/src/components/page-patterns/dataviews-pattern-actions.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { getQueryArgs } from '@wordpress/url';\nimport { downloadBlob } from '@wordpress/blob';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\nexport const exportJSONaction = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\tisEligible: ( item ) => item.type === PATTERN_TYPES.user,\n\tcallback: ( item ) => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t};\n\t\treturn downloadBlob(\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t'application/json'\n\t\t);\n\t},\n};\n\nexport const renameAction = {\n\tid: 'rename-pattern',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst [ title, setTitle ] = useState( () => item.title );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\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\t\t\t: __( 'An error occurred while renaming the pattern.' );\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\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\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\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\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\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\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\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\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\nconst canDeleteOrReset = ( item ) => {\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\treturn isUserPattern || ( isTemplatePart && item.isCustom );\n};\n\nexport const deleteAction = {\n\tid: 'delete-pattern',\n\tlabel: __( 'Delete' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn canDeleteOrReset( item ) && ! hasThemeFile;\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { __experimentalDeleteReusableBlock } =\n\t\t\tuseDispatch( reusableBlocksStore );\n\t\tconst { createErrorNotice, createSuccessNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\n\t\tconst deletePattern = async () => {\n\t\t\ttry {\n\t\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\t\titem.title\n\t\t\t\t\t),\n\t\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t\t);\n\t\t\t} catch ( error ) {\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: __( 'An error occurred while deleting the pattern.' );\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tconst deleteItem = () =>\n\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t? removeTemplate( item )\n\t\t\t\t: deletePattern();\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\tdecodeEntities( item.title || item.name )\n\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 variant=\"primary\" onClick={ deleteItem }>\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 resetAction = {\n\tid: 'reset-action',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn canDeleteOrReset( item ) && hasThemeFile;\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\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={ () => removeTemplate( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\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 duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(\n\t\t\twindow.location.href\n\t\t);\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst history = useHistory();\n\t\tfunction onPatternSuccess( { pattern } ) {\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: pattern.id,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t}\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern: isThemePattern ? item : item.patternPost,\n\t\t\tonSuccess: onPatternSuccess,\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tconst { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(\n\t\t\twindow.location.href\n\t\t);\n\t\tconst history = useHistory();\n\t\tasync function onTemplatePartSuccess( templatePart ) {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: templatePart?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["paramCase","kebabCase","getQueryArgs","downloadBlob","__","_x","sprintf","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalText","Text","store","coreStore","useDispatch","useState","noticesStore","decodeEntities","reusableBlocksStore","privateApis","routerPrivateApis","patternsPrivateApis","unlock","editSiteStore","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_DEFAULT_CATEGORY","CreateTemplatePartModalContents","useHistory","CreatePatternModalContents","useDuplicatePatternProps","exportJSONaction","id","label","isEligible","item","type","user","callback","json","__file","title","name","content","patternPost","raw","syncStatus","wp_pattern_sync_status","JSON","stringify","renameAction","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","RenderModal","items","closeModal","setTitle","editEntityRecord","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","onRename","event","preventDefault","throwOnError","error","fallbackErrorMessage","errorMessage","message","code","createElement","onSubmit","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","justify","variant","onClick","canDeleteOrReset","deleteAction","hideModalHeader","__experimentalDeleteReusableBlock","removeTemplate","deletePattern","deleteItem","resetAction","duplicatePatternAction","modalHeader","categoryId","window","location","href","isThemePattern","theme","history","onPatternSuccess","pattern","push","categoryType","postType","postId","duplicatedProps","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError"],"sources":["@wordpress/edit-site/src/components/page-patterns/dataviews-pattern-actions.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { getQueryArgs } from '@wordpress/url';\nimport { downloadBlob } from '@wordpress/blob';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\nexport const exportJSONaction = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\tisEligible: ( item ) => item.type === PATTERN_TYPES.user,\n\tcallback: ( [ item ] ) => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t};\n\t\treturn downloadBlob(\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t'application/json'\n\t\t);\n\t},\n};\n\nexport const renameAction = {\n\tid: 'rename-pattern',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ title, setTitle ] = useState( () => item.title );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\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\t\t\t: __( 'An error occurred while renaming the pattern.' );\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\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\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\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\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\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\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\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\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\nconst canDeleteOrReset = ( item ) => {\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\treturn isUserPattern || ( isTemplatePart && item.isCustom );\n};\n\nexport const deleteAction = {\n\tid: 'delete-pattern',\n\tlabel: __( 'Delete' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn canDeleteOrReset( item ) && ! hasThemeFile;\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { __experimentalDeleteReusableBlock } =\n\t\t\tuseDispatch( reusableBlocksStore );\n\t\tconst { createErrorNotice, createSuccessNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\n\t\tconst deletePattern = async () => {\n\t\t\ttry {\n\t\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\t\titem.title\n\t\t\t\t\t),\n\t\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t\t);\n\t\t\t} catch ( error ) {\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: __( 'An error occurred while deleting the pattern.' );\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tconst deleteItem = () =>\n\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t? removeTemplate( item )\n\t\t\t\t: deletePattern();\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\tdecodeEntities( item.title || item.name )\n\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 variant=\"primary\" onClick={ deleteItem }>\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 resetAction = {\n\tid: 'reset-action',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn canDeleteOrReset( item ) && hasThemeFile;\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\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={ () => removeTemplate( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\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 duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(\n\t\t\twindow.location.href\n\t\t);\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst history = useHistory();\n\t\tfunction onPatternSuccess( { pattern } ) {\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: pattern.id,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t}\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern: isThemePattern ? item : item.patternPost,\n\t\t\tonSuccess: onPatternSuccess,\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tconst { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(\n\t\t\twindow.location.href\n\t\t);\n\t\tconst history = useHistory();\n\t\tasync function onTemplatePartSuccess( templatePart ) {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: templatePart?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
@@ -1,46 +1,326 @@
1
- import { createElement } from "react";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { __ } from '@wordpress/i18n';
6
- import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
5
+ import { __experimentalHStack as HStack, Button, Tooltip, Flex } from '@wordpress/components';
7
6
  import { getQueryArgs } from '@wordpress/url';
7
+ import { __, _x } from '@wordpress/i18n';
8
+ import { useState, useMemo, useCallback, useId, useEffect } from '@wordpress/element';
9
+ import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
10
+ import { DataViews, sortByTextFields, getPaginationResults } from '@wordpress/dataviews';
11
+ import { Icon, header, footer, symbolFilled as uncategorized, symbol, lockSmall } from '@wordpress/icons';
12
+ import { usePrevious } from '@wordpress/compose';
8
13
 
9
14
  /**
10
15
  * Internal dependencies
11
16
  */
12
- import { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';
13
17
  import Page from '../page';
14
- import PatternsList from './patterns-list';
18
+ import { LAYOUT_GRID, PATTERN_TYPES, TEMPLATE_PART_POST_TYPE, PATTERN_SYNC_TYPES, PATTERN_DEFAULT_CATEGORY, ENUMERATION_TYPE, OPERATOR_IN } from '../../utils/constants';
19
+ import { exportJSONaction, renameAction, resetAction, deleteAction, duplicatePatternAction, duplicateTemplatePartAction } from './dataviews-pattern-actions';
15
20
  import usePatternSettings from './use-pattern-settings';
16
21
  import { unlock } from '../../lock-unlock';
22
+ import usePatterns from './use-patterns';
23
+ import PatternsHeader from './header';
24
+ import { useLink } from '../routes/link';
17
25
  const {
18
- ExperimentalBlockEditorProvider
26
+ ExperimentalBlockEditorProvider,
27
+ useGlobalStyle
19
28
  } = unlock(blockEditorPrivateApis);
20
- export default function PagePatterns() {
29
+ const templatePartIcons = {
30
+ header,
31
+ footer,
32
+ uncategorized
33
+ };
34
+ const EMPTY_ARRAY = [];
35
+ const defaultConfigPerViewType = {
36
+ [LAYOUT_GRID]: {
37
+ mediaField: 'preview',
38
+ primaryField: 'title'
39
+ }
40
+ };
41
+ const DEFAULT_VIEW = {
42
+ type: LAYOUT_GRID,
43
+ search: '',
44
+ page: 1,
45
+ perPage: 20,
46
+ hiddenFields: ['sync-status'],
47
+ layout: {
48
+ ...defaultConfigPerViewType[LAYOUT_GRID]
49
+ },
50
+ filters: []
51
+ };
52
+ const SYNC_FILTERS = [{
53
+ value: PATTERN_SYNC_TYPES.full,
54
+ label: _x('Synced', 'Option that shows all synchronized patterns'),
55
+ description: __('Patterns that are kept in sync across the site.')
56
+ }, {
57
+ value: PATTERN_SYNC_TYPES.unsynced,
58
+ label: _x('Not synced', 'Option that shows all patterns that are not synchronized'),
59
+ description: __('Patterns that can be changed freely without affecting the site.')
60
+ }];
61
+ function PreviewWrapper({
62
+ item,
63
+ onClick,
64
+ ariaDescribedBy,
65
+ children
66
+ }) {
67
+ if (item.type === PATTERN_TYPES.theme) {
68
+ return children;
69
+ }
70
+ return createElement("button", {
71
+ className: "page-patterns-preview-field__button",
72
+ type: "button",
73
+ onClick: onClick,
74
+ "aria-label": item.title,
75
+ "aria-describedby": ariaDescribedBy
76
+ }, children);
77
+ }
78
+ function Preview({
79
+ item,
80
+ categoryId,
81
+ viewType
82
+ }) {
83
+ const descriptionId = useId();
84
+ const isUserPattern = item.type === PATTERN_TYPES.user;
85
+ const isNonUserPattern = item.type === PATTERN_TYPES.theme;
86
+ const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
87
+ const isEmpty = !item.blocks?.length;
88
+ // Only custom patterns or custom template parts can be renamed or deleted.
89
+ const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
90
+ const ariaDescriptions = [];
91
+ if (isCustomPattern) {
92
+ // User patterns don't have descriptions, but can be edited and deleted, so include some help text.
93
+ ariaDescriptions.push(__('Press Enter to edit, or Delete to delete the pattern.'));
94
+ } else if (item.description) {
95
+ ariaDescriptions.push(item.description);
96
+ }
97
+ if (isNonUserPattern) {
98
+ ariaDescriptions.push(__('Theme & plugin patterns cannot be edited.'));
99
+ }
100
+ const [backgroundColor] = useGlobalStyle('color.background');
101
+ const {
102
+ onClick
103
+ } = useLink({
104
+ postType: item.type,
105
+ postId: isUserPattern ? item.id : item.name,
106
+ categoryId,
107
+ categoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme
108
+ });
109
+ return createElement(Fragment, null, createElement("div", {
110
+ className: `page-patterns-preview-field is-viewtype-${viewType}`,
111
+ style: {
112
+ backgroundColor
113
+ }
114
+ }, createElement(PreviewWrapper, {
115
+ item: item,
116
+ onClick: onClick,
117
+ ariaDescribedBy: ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
118
+ }, isEmpty && isTemplatePart && __('Empty template part'), isEmpty && !isTemplatePart && __('Empty pattern'), !isEmpty && createElement(BlockPreview, {
119
+ blocks: item.blocks
120
+ }))), ariaDescriptions.map((ariaDescription, index) => createElement("div", {
121
+ key: index,
122
+ hidden: true,
123
+ id: `${descriptionId}-${index}`
124
+ }, ariaDescription)));
125
+ }
126
+ function Title({
127
+ item,
128
+ categoryId
129
+ }) {
130
+ const isUserPattern = item.type === PATTERN_TYPES.user;
131
+ const isNonUserPattern = item.type === PATTERN_TYPES.theme;
132
+ const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
133
+ let itemIcon;
134
+ const {
135
+ onClick
136
+ } = useLink({
137
+ postType: item.type,
138
+ postId: isUserPattern ? item.id : item.name,
139
+ categoryId,
140
+ categoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme
141
+ });
142
+ if (!isUserPattern && templatePartIcons[categoryId]) {
143
+ itemIcon = templatePartIcons[categoryId];
144
+ } else {
145
+ itemIcon = item.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;
146
+ }
147
+ return createElement(HStack, {
148
+ alignment: "center",
149
+ justify: "flex-start",
150
+ spacing: 2
151
+ }, itemIcon && !isNonUserPattern && createElement(Tooltip, {
152
+ placement: "top",
153
+ text: __('Editing this pattern will also update anywhere it is used')
154
+ }, createElement(Icon, {
155
+ className: "edit-site-patterns__pattern-icon",
156
+ icon: itemIcon
157
+ })), item.type === PATTERN_TYPES.theme && createElement(Tooltip, {
158
+ placement: "top",
159
+ text: __('This pattern cannot be edited.')
160
+ }, createElement(Icon, {
161
+ className: "edit-site-patterns__pattern-lock-icon",
162
+ icon: lockSmall,
163
+ size: 24
164
+ })), createElement(Flex, {
165
+ as: "div",
166
+ gap: 0,
167
+ justify: "left",
168
+ className: "edit-site-patterns__pattern-title"
169
+ }, item.type === PATTERN_TYPES.theme ? item.title : createElement(Button, {
170
+ variant: "link",
171
+ onClick: onClick
172
+ // Required for the grid's roving tab index system.
173
+ // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
174
+ ,
175
+ tabIndex: "-1"
176
+ }, item.title || item.name)));
177
+ }
178
+ export default function DataviewsPatterns() {
21
179
  const {
22
180
  categoryType,
23
- categoryId
181
+ categoryId = PATTERN_DEFAULT_CATEGORY
24
182
  } = getQueryArgs(window.location.href);
25
183
  const type = categoryType || PATTERN_TYPES.theme;
26
- const category = categoryId || PATTERN_DEFAULT_CATEGORY;
184
+ const [view, setView] = useState(DEFAULT_VIEW);
185
+ const isUncategorizedThemePatterns = type === PATTERN_TYPES.theme && categoryId === 'uncategorized';
186
+ const previousCategoryId = usePrevious(categoryId);
187
+ const viewSyncStatus = view.filters?.find(({
188
+ field
189
+ }) => field === 'sync-status')?.value;
190
+ const {
191
+ patterns,
192
+ isResolving
193
+ } = usePatterns(type, isUncategorizedThemePatterns ? '' : categoryId, {
194
+ search: view.search,
195
+ syncStatus: viewSyncStatus
196
+ });
197
+ const fields = useMemo(() => {
198
+ const _fields = [{
199
+ header: __('Preview'),
200
+ id: 'preview',
201
+ render: ({
202
+ item
203
+ }) => createElement(Preview, {
204
+ item: item,
205
+ categoryId: categoryId,
206
+ viewType: view.type
207
+ }),
208
+ enableSorting: false,
209
+ enableHiding: false
210
+ }, {
211
+ header: __('Title'),
212
+ id: 'title',
213
+ getValue: ({
214
+ item
215
+ }) => item.title,
216
+ render: ({
217
+ item
218
+ }) => createElement(Title, {
219
+ item: item,
220
+ categoryId: categoryId
221
+ }),
222
+ enableHiding: false
223
+ }];
224
+ if (type === PATTERN_TYPES.theme) {
225
+ _fields.push({
226
+ header: __('Sync Status'),
227
+ id: 'sync-status',
228
+ render: ({
229
+ item
230
+ }) => {
231
+ // User patterns can have their sync statuses checked directly.
232
+ // Non-user patterns are all unsynced for the time being.
233
+ return SYNC_FILTERS.find(({
234
+ value
235
+ }) => value === item.syncStatus)?.label || SYNC_FILTERS.find(({
236
+ value
237
+ }) => value === PATTERN_SYNC_TYPES.unsynced).label;
238
+ },
239
+ type: ENUMERATION_TYPE,
240
+ elements: SYNC_FILTERS,
241
+ filterBy: {
242
+ operators: [OPERATOR_IN]
243
+ },
244
+ enableSorting: false
245
+ });
246
+ }
247
+ return _fields;
248
+ }, [view.type, categoryId, type]);
249
+ // Reset the page number when the category changes.
250
+ useEffect(() => {
251
+ if (previousCategoryId !== categoryId) {
252
+ setView(DEFAULT_VIEW);
253
+ }
254
+ }, [categoryId, previousCategoryId]);
255
+ const {
256
+ data,
257
+ paginationInfo
258
+ } = useMemo(() => {
259
+ if (!patterns) {
260
+ return {
261
+ data: EMPTY_ARRAY,
262
+ paginationInfo: {
263
+ totalItems: 0,
264
+ totalPages: 0
265
+ }
266
+ };
267
+ }
268
+ let filteredData = [...patterns];
269
+ // Handle sorting.
270
+ if (view.sort) {
271
+ filteredData = sortByTextFields({
272
+ data: filteredData,
273
+ view,
274
+ fields,
275
+ textFields: ['title', 'author']
276
+ });
277
+ }
278
+ // Handle pagination.
279
+ return getPaginationResults({
280
+ data: filteredData,
281
+ view
282
+ });
283
+ }, [patterns, view, fields]);
284
+ const actions = useMemo(() => [renameAction, duplicatePatternAction, duplicateTemplatePartAction, exportJSONaction, resetAction, deleteAction], []);
285
+ const onChangeView = useCallback(newView => {
286
+ if (newView.type !== view.type) {
287
+ newView = {
288
+ ...newView,
289
+ layout: {
290
+ ...defaultConfigPerViewType[newView.type]
291
+ }
292
+ };
293
+ }
294
+ setView(newView);
295
+ }, [view.type, setView]);
296
+ const id = useId();
27
297
  const settings = usePatternSettings();
28
-
29
298
  // Wrap everything in a block editor provider.
30
299
  // This ensures 'styles' that are needed for the previews are synced
31
300
  // from the site editor store to the block editor store.
301
+ // TODO: check if I add the provider in every preview like in templates...
32
302
  return createElement(ExperimentalBlockEditorProvider, {
33
303
  settings: settings
34
304
  }, createElement(Page, {
35
- className: "edit-site-patterns",
36
305
  title: __('Patterns content'),
306
+ className: "edit-site-page-patterns-dataviews",
37
307
  hideTitleFromUI: true
38
- }, createElement(PatternsList
39
- // Reset the states when switching between categories and types.
40
- , {
41
- key: `${type}-${category}`,
308
+ }, createElement(PatternsHeader, {
309
+ categoryId: categoryId,
42
310
  type: type,
43
- categoryId: category
311
+ titleId: `${id}-title`,
312
+ descriptionId: `${id}-description`
313
+ }), createElement(DataViews, {
314
+ paginationInfo: paginationInfo,
315
+ fields: fields,
316
+ actions: actions,
317
+ data: data || EMPTY_ARRAY,
318
+ getItemId: item => item.name,
319
+ isLoading: isResolving,
320
+ view: view,
321
+ onChangeView: onChangeView,
322
+ deferredRendering: true,
323
+ supportedLayouts: [LAYOUT_GRID]
44
324
  })));
45
325
  }
46
326
  //# sourceMappingURL=index.js.map