@wordpress/edit-site 5.30.0 → 5.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-editor/editor-canvas.js +24 -4
  3. package/build/components/block-editor/editor-canvas.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +15 -4
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/block-editor/use-site-editor-settings.js +1 -1
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/editor/index.js +12 -3
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/editor-canvas-container/index.js +1 -2
  11. package/build/components/editor-canvas-container/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +38 -0
  13. package/build/components/global-styles/background-panel.js.map +1 -0
  14. package/build/components/global-styles/color-palette-panel.js +0 -9
  15. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +1 -1
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/context.js +53 -17
  19. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/font-collection.js +4 -3
  21. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -2
  23. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  25. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/upload-fonts.js +44 -10
  27. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/index.js +22 -4
  29. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +3 -0
  31. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  32. package/build/components/global-styles/header.js +1 -1
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/hooks.js +50 -1
  35. package/build/components/global-styles/hooks.js.map +1 -1
  36. package/build/components/global-styles/palette.js +3 -1
  37. package/build/components/global-styles/palette.js.map +1 -1
  38. package/build/components/global-styles/preview-colors.js +2 -2
  39. package/build/components/global-styles/preview-colors.js.map +1 -1
  40. package/build/components/global-styles/preview-iframe.js +0 -1
  41. package/build/components/global-styles/preview-iframe.js.map +1 -1
  42. package/build/components/global-styles/preview-styles.js +2 -2
  43. package/build/components/global-styles/preview-styles.js.map +1 -1
  44. package/build/components/global-styles/root-menu.js +8 -2
  45. package/build/components/global-styles/root-menu.js.map +1 -1
  46. package/build/components/global-styles/screen-background.js +34 -0
  47. package/build/components/global-styles/screen-background.js.map +1 -0
  48. package/build/components/global-styles/screen-color-palette.js +2 -2
  49. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  50. package/build/components/global-styles/screen-colors.js +5 -10
  51. package/build/components/global-styles/screen-colors.js.map +1 -1
  52. package/build/components/global-styles/screen-style-variations.js +3 -37
  53. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  54. package/build/components/global-styles/screen-typography.js +6 -11
  55. package/build/components/global-styles/screen-typography.js.map +1 -1
  56. package/build/components/global-styles/style-variations-container.js +5 -2
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +3 -1
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/{preview-typography.js → typography-example.js} +4 -2
  61. package/build/components/global-styles/typography-example.js.map +1 -0
  62. package/build/components/global-styles/typography-preview.js +3 -1
  63. package/build/components/global-styles/typography-preview.js.map +1 -1
  64. package/build/components/global-styles/ui.js +4 -1
  65. package/build/components/global-styles/ui.js.map +1 -1
  66. package/build/components/global-styles/utils.js +1 -1
  67. package/build/components/global-styles/utils.js.map +1 -1
  68. package/build/components/global-styles/variations/variations-color.js +13 -7
  69. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  70. package/build/components/global-styles/variations/variations-typography.js +34 -37
  71. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  72. package/build/components/header-edit-mode/index.js +2 -1
  73. package/build/components/header-edit-mode/index.js.map +1 -1
  74. package/build/components/keyboard-shortcut-help-modal/config.js +6 -0
  75. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  76. package/build/components/keyboard-shortcut-help-modal/index.js +3 -0
  77. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  78. package/build/components/keyboard-shortcuts/global.js +17 -3
  79. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  80. package/build/components/layout/animation.js +129 -0
  81. package/build/components/layout/animation.js.map +1 -0
  82. package/build/components/layout/index.js +9 -17
  83. package/build/components/layout/index.js.map +1 -1
  84. package/build/components/layout/router.js +22 -22
  85. package/build/components/layout/router.js.map +1 -1
  86. package/build/components/page-pages/index.js +24 -27
  87. package/build/components/page-pages/index.js.map +1 -1
  88. package/build/components/page-patterns/delete-category-menu-item.js +6 -1
  89. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  90. package/build/components/page-patterns/index.js +19 -32
  91. package/build/components/page-patterns/index.js.map +1 -1
  92. package/build/components/page-patterns/search-items.js +16 -58
  93. package/build/components/page-patterns/search-items.js.map +1 -1
  94. package/build/components/page-patterns/use-patterns.js +9 -9
  95. package/build/components/page-patterns/use-patterns.js.map +1 -1
  96. package/build/components/page-templates-template-parts/actions.js +54 -41
  97. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  98. package/build/components/page-templates-template-parts/index.js +31 -69
  99. package/build/components/page-templates-template-parts/index.js.map +1 -1
  100. package/build/components/plugin-template-setting-panel/index.js +12 -1
  101. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  102. package/build/components/save-button/index.js +45 -16
  103. package/build/components/save-button/index.js.map +1 -1
  104. package/build/components/save-hub/index.js +8 -112
  105. package/build/components/save-hub/index.js.map +1 -1
  106. package/build/components/save-panel/index.js +14 -9
  107. package/build/components/save-panel/index.js.map +1 -1
  108. package/build/components/sidebar/index.js +3 -8
  109. package/build/components/sidebar/index.js.map +1 -1
  110. package/build/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  111. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  112. package/build/components/sidebar-dataviews/dataview-item.js +2 -2
  113. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  114. package/build/components/sidebar-dataviews/default-views.js +3 -3
  115. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  116. package/build/components/sidebar-dataviews/index.js +5 -4
  117. package/build/components/sidebar-dataviews/index.js.map +1 -1
  118. package/build/components/sidebar-edit-mode/index.js +1 -2
  119. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  120. package/build/components/sidebar-edit-mode/page-panels/index.js +7 -17
  121. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  122. package/build/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  123. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  124. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
  125. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  126. package/build/components/sidebar-edit-mode/template-panel/index.js +32 -18
  127. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  129. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-global-styles/index.js +18 -1
  131. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +4 -5
  133. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  134. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  135. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  137. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-patterns/index.js +1 -5
  139. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-template/index.js +5 -1
  141. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  143. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  144. package/build/components/style-book/index.js +1 -1
  145. package/build/components/style-book/index.js.map +1 -1
  146. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  147. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  148. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  149. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  150. package/build/components/template-actions/index.js +44 -27
  151. package/build/components/template-actions/index.js.map +1 -1
  152. package/build/components/welcome-guide/editor.js +11 -2
  153. package/build/components/welcome-guide/editor.js.map +1 -1
  154. package/build/hooks/index.js +0 -1
  155. package/build/hooks/index.js.map +1 -1
  156. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +15 -2
  157. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  158. package/build/store/selectors.js +1 -9
  159. package/build/store/selectors.js.map +1 -1
  160. package/build/utils/constants.js +5 -3
  161. package/build/utils/constants.js.map +1 -1
  162. package/build/utils/get-is-list-page.js +1 -1
  163. package/build/utils/get-is-list-page.js.map +1 -1
  164. package/build/utils/math.js +98 -0
  165. package/build/utils/math.js.map +1 -0
  166. package/build-module/components/block-editor/editor-canvas.js +24 -4
  167. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  168. package/build-module/components/block-editor/site-editor-canvas.js +15 -4
  169. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  170. package/build-module/components/block-editor/use-site-editor-settings.js +1 -1
  171. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  172. package/build-module/components/editor/index.js +13 -4
  173. package/build-module/components/editor/index.js.map +1 -1
  174. package/build-module/components/editor-canvas-container/index.js +1 -2
  175. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  176. package/build-module/components/global-styles/background-panel.js +31 -0
  177. package/build-module/components/global-styles/background-panel.js.map +1 -0
  178. package/build-module/components/global-styles/color-palette-panel.js +0 -8
  179. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  180. package/build-module/components/global-styles/font-families.js +1 -1
  181. package/build-module/components/global-styles/font-families.js.map +1 -1
  182. package/build-module/components/global-styles/font-library-modal/context.js +54 -18
  183. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  184. package/build-module/components/global-styles/font-library-modal/font-collection.js +4 -3
  185. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  186. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +4 -3
  187. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  188. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  189. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  190. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +44 -10
  191. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  192. package/build-module/components/global-styles/font-library-modal/utils/index.js +22 -4
  193. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  194. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +3 -0
  195. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  196. package/build-module/components/global-styles/header.js +1 -1
  197. package/build-module/components/global-styles/header.js.map +1 -1
  198. package/build-module/components/global-styles/hooks.js +48 -1
  199. package/build-module/components/global-styles/hooks.js.map +1 -1
  200. package/build-module/components/global-styles/palette.js +3 -1
  201. package/build-module/components/global-styles/palette.js.map +1 -1
  202. package/build-module/components/global-styles/preview-colors.js +2 -2
  203. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  204. package/build-module/components/global-styles/preview-iframe.js +0 -1
  205. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  206. package/build-module/components/global-styles/preview-styles.js +2 -2
  207. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  208. package/build-module/components/global-styles/root-menu.js +9 -3
  209. package/build-module/components/global-styles/root-menu.js.map +1 -1
  210. package/build-module/components/global-styles/screen-background.js +26 -0
  211. package/build-module/components/global-styles/screen-background.js.map +1 -0
  212. package/build-module/components/global-styles/screen-color-palette.js +2 -2
  213. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  214. package/build-module/components/global-styles/screen-colors.js +5 -10
  215. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  216. package/build-module/components/global-styles/screen-style-variations.js +4 -38
  217. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  218. package/build-module/components/global-styles/screen-typography.js +6 -11
  219. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  220. package/build-module/components/global-styles/style-variations-container.js +5 -2
  221. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  222. package/build-module/components/global-styles/typography-elements.js +3 -1
  223. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  224. package/build-module/components/global-styles/{preview-typography.js → typography-example.js} +4 -2
  225. package/build-module/components/global-styles/typography-example.js.map +1 -0
  226. package/build-module/components/global-styles/typography-preview.js +3 -1
  227. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  228. package/build-module/components/global-styles/ui.js +4 -1
  229. package/build-module/components/global-styles/ui.js.map +1 -1
  230. package/build-module/components/global-styles/utils.js +1 -1
  231. package/build-module/components/global-styles/utils.js.map +1 -1
  232. package/build-module/components/global-styles/variations/variations-color.js +13 -7
  233. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  234. package/build-module/components/global-styles/variations/variations-typography.js +35 -38
  235. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  236. package/build-module/components/header-edit-mode/index.js +2 -1
  237. package/build-module/components/header-edit-mode/index.js.map +1 -1
  238. package/build-module/components/keyboard-shortcut-help-modal/config.js +6 -0
  239. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  240. package/build-module/components/keyboard-shortcut-help-modal/index.js +3 -0
  241. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  242. package/build-module/components/keyboard-shortcuts/global.js +17 -3
  243. package/build-module/components/keyboard-shortcuts/global.js.map +1 -1
  244. package/build-module/components/layout/animation.js +122 -0
  245. package/build-module/components/layout/animation.js.map +1 -0
  246. package/build-module/components/layout/index.js +9 -17
  247. package/build-module/components/layout/index.js.map +1 -1
  248. package/build-module/components/layout/router.js +22 -22
  249. package/build-module/components/layout/router.js.map +1 -1
  250. package/build-module/components/page-pages/index.js +25 -28
  251. package/build-module/components/page-pages/index.js.map +1 -1
  252. package/build-module/components/page-patterns/delete-category-menu-item.js +6 -1
  253. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  254. package/build-module/components/page-patterns/index.js +21 -34
  255. package/build-module/components/page-patterns/index.js.map +1 -1
  256. package/build-module/components/page-patterns/search-items.js +14 -55
  257. package/build-module/components/page-patterns/search-items.js.map +1 -1
  258. package/build-module/components/page-patterns/use-patterns.js +9 -9
  259. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  260. package/build-module/components/page-templates-template-parts/actions.js +54 -40
  261. package/build-module/components/page-templates-template-parts/actions.js.map +1 -1
  262. package/build-module/components/page-templates-template-parts/index.js +34 -72
  263. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  264. package/build-module/components/plugin-template-setting-panel/index.js +12 -1
  265. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  266. package/build-module/components/save-button/index.js +46 -17
  267. package/build-module/components/save-button/index.js.map +1 -1
  268. package/build-module/components/save-hub/index.js +10 -114
  269. package/build-module/components/save-hub/index.js.map +1 -1
  270. package/build-module/components/save-panel/index.js +14 -9
  271. package/build-module/components/save-panel/index.js.map +1 -1
  272. package/build-module/components/sidebar/index.js +3 -8
  273. package/build-module/components/sidebar/index.js.map +1 -1
  274. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  275. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  276. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -2
  277. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  278. package/build-module/components/sidebar-dataviews/default-views.js +4 -4
  279. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  280. package/build-module/components/sidebar-dataviews/index.js +5 -4
  281. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  282. package/build-module/components/sidebar-edit-mode/index.js +1 -2
  283. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  284. package/build-module/components/sidebar-edit-mode/page-panels/index.js +10 -20
  285. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  286. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  287. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  288. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +4 -2
  289. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  290. package/build-module/components/sidebar-edit-mode/template-panel/index.js +33 -19
  291. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  293. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +19 -2
  295. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +3 -4
  297. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  298. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  299. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  300. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  301. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  302. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -5
  303. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  304. package/build-module/components/sidebar-navigation-screen-template/index.js +5 -1
  305. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  306. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  307. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  308. package/build-module/components/style-book/index.js +1 -1
  309. package/build-module/components/style-book/index.js.map +1 -1
  310. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  311. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  312. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  313. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  314. package/build-module/components/template-actions/index.js +44 -27
  315. package/build-module/components/template-actions/index.js.map +1 -1
  316. package/build-module/components/welcome-guide/editor.js +11 -2
  317. package/build-module/components/welcome-guide/editor.js.map +1 -1
  318. package/build-module/hooks/index.js +0 -1
  319. package/build-module/hooks/index.js.map +1 -1
  320. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +15 -2
  321. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  322. package/build-module/store/selectors.js +1 -9
  323. package/build-module/store/selectors.js.map +1 -1
  324. package/build-module/utils/constants.js +4 -2
  325. package/build-module/utils/constants.js.map +1 -1
  326. package/build-module/utils/get-is-list-page.js +1 -1
  327. package/build-module/utils/get-is-list-page.js.map +1 -1
  328. package/build-module/utils/math.js +92 -0
  329. package/build-module/utils/math.js.map +1 -0
  330. package/build-style/style-rtl.css +146 -130
  331. package/build-style/style.css +146 -130
  332. package/package.json +44 -44
  333. package/src/components/block-editor/editor-canvas.js +34 -9
  334. package/src/components/block-editor/site-editor-canvas.js +10 -7
  335. package/src/components/block-editor/use-site-editor-settings.js +0 -2
  336. package/src/components/editor/index.js +11 -4
  337. package/src/components/editor-canvas-container/index.js +0 -1
  338. package/src/components/global-styles/background-panel.js +34 -0
  339. package/src/components/global-styles/color-palette-panel.js +0 -11
  340. package/src/components/global-styles/font-families.js +1 -1
  341. package/src/components/global-styles/font-library-modal/context.js +77 -31
  342. package/src/components/global-styles/font-library-modal/font-collection.js +4 -3
  343. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +9 -2
  344. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  345. package/src/components/global-styles/font-library-modal/style.scss +15 -6
  346. package/src/components/global-styles/font-library-modal/upload-fonts.js +53 -8
  347. package/src/components/global-styles/font-library-modal/utils/index.js +21 -8
  348. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +4 -0
  349. package/src/components/global-styles/header.js +1 -1
  350. package/src/components/global-styles/hooks.js +68 -1
  351. package/src/components/global-styles/palette.js +3 -1
  352. package/src/components/global-styles/preview-colors.js +2 -2
  353. package/src/components/global-styles/preview-iframe.js +0 -1
  354. package/src/components/global-styles/preview-styles.js +2 -2
  355. package/src/components/global-styles/root-menu.js +12 -1
  356. package/src/components/global-styles/screen-background.js +29 -0
  357. package/src/components/global-styles/screen-color-palette.js +2 -2
  358. package/src/components/global-styles/screen-colors.js +4 -15
  359. package/src/components/global-styles/screen-style-variations.js +4 -36
  360. package/src/components/global-styles/screen-typography.js +6 -20
  361. package/src/components/global-styles/style-variations-container.js +2 -1
  362. package/src/components/global-styles/style.scss +15 -10
  363. package/src/components/global-styles/typography-elements.js +5 -1
  364. package/src/components/global-styles/{preview-typography.js → typography-example.js} +3 -1
  365. package/src/components/global-styles/typography-preview.js +3 -1
  366. package/src/components/global-styles/ui.js +5 -0
  367. package/src/components/global-styles/utils.js +1 -1
  368. package/src/components/global-styles/variations/style.scss +32 -23
  369. package/src/components/global-styles/variations/variations-color.js +12 -6
  370. package/src/components/global-styles/variations/variations-typography.js +41 -60
  371. package/src/components/header-edit-mode/index.js +1 -0
  372. package/src/components/header-edit-mode/style.scss +28 -17
  373. package/src/components/keyboard-shortcut-help-modal/config.js +4 -0
  374. package/src/components/keyboard-shortcut-help-modal/index.js +4 -0
  375. package/src/components/keyboard-shortcuts/global.js +16 -4
  376. package/src/components/layout/animation.js +122 -0
  377. package/src/components/layout/index.js +12 -27
  378. package/src/components/layout/router.js +26 -25
  379. package/src/components/layout/style.scss +2 -0
  380. package/src/components/page-pages/index.js +33 -54
  381. package/src/components/page-patterns/delete-category-menu-item.js +7 -0
  382. package/src/components/page-patterns/index.js +22 -31
  383. package/src/components/page-patterns/search-items.js +13 -58
  384. package/src/components/page-patterns/use-patterns.js +17 -10
  385. package/src/components/page-templates-template-parts/actions.js +106 -91
  386. package/src/components/page-templates-template-parts/index.js +41 -93
  387. package/src/components/page-templates-template-parts/style.scss +5 -0
  388. package/src/components/plugin-template-setting-panel/index.js +14 -1
  389. package/src/components/save-button/index.js +55 -26
  390. package/src/components/save-hub/index.js +20 -164
  391. package/src/components/save-panel/index.js +24 -17
  392. package/src/components/sidebar/index.js +2 -8
  393. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  394. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  395. package/src/components/sidebar-dataviews/default-views.js +12 -4
  396. package/src/components/sidebar-dataviews/index.js +5 -4
  397. package/src/components/sidebar-edit-mode/index.js +0 -2
  398. package/src/components/sidebar-edit-mode/page-panels/index.js +31 -62
  399. package/src/components/sidebar-edit-mode/page-panels/page-content.js +10 -10
  400. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  401. package/src/components/sidebar-edit-mode/template-panel/index.js +33 -24
  402. package/src/components/sidebar-edit-mode/template-panel/style.scss +1 -29
  403. package/src/components/sidebar-navigation-screen/style.scss +21 -9
  404. package/src/components/sidebar-navigation-screen-details-footer/index.js +6 -2
  405. package/src/components/sidebar-navigation-screen-global-styles/index.js +29 -2
  406. package/src/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +2 -3
  407. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +11 -9
  408. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +6 -3
  409. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -7
  410. package/src/components/sidebar-navigation-screen-template/index.js +6 -1
  411. package/src/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  412. package/src/components/style-book/index.js +1 -3
  413. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  414. package/src/components/sync-state-with-url/use-sync-path-with-url.js +3 -19
  415. package/src/components/template-actions/index.js +63 -46
  416. package/src/components/welcome-guide/editor.js +9 -6
  417. package/src/hooks/index.js +0 -1
  418. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +21 -4
  419. package/src/store/selectors.js +3 -15
  420. package/src/style.scss +0 -2
  421. package/src/utils/constants.js +4 -2
  422. package/src/utils/get-is-list-page.js +1 -1
  423. package/src/utils/math.js +93 -0
  424. package/build/components/actions/index.js +0 -321
  425. package/build/components/actions/index.js.map +0 -1
  426. package/build/components/global-styles/preview-typography.js.map +0 -1
  427. package/build/components/sidebar-edit-mode/sidebar-card/index.js +0 -42
  428. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  429. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +0 -50
  430. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  431. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +0 -70
  432. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  433. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  434. package/build/components/sidebar-navigation-screen-pages/index.js +0 -175
  435. package/build/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  436. package/build/components/sidebar-navigation-screen-templates/index.js +0 -132
  437. package/build/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  438. package/build/hooks/template-part-edit.js +0 -82
  439. package/build/hooks/template-part-edit.js.map +0 -1
  440. package/build/store/utils.js +0 -71
  441. package/build/store/utils.js.map +0 -1
  442. package/build-module/components/actions/index.js +0 -310
  443. package/build-module/components/actions/index.js.map +0 -1
  444. package/build-module/components/global-styles/preview-typography.js.map +0 -1
  445. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +0 -34
  446. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  447. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +0 -42
  448. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  449. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +0 -63
  450. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  451. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  452. package/build-module/components/sidebar-navigation-screen-pages/index.js +0 -167
  453. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  454. package/build-module/components/sidebar-navigation-screen-templates/index.js +0 -124
  455. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  456. package/build-module/hooks/template-part-edit.js +0 -75
  457. package/build-module/hooks/template-part-edit.js.map +0 -1
  458. package/build-module/store/utils.js +0 -64
  459. package/build-module/store/utils.js.map +0 -1
  460. package/src/components/actions/index.js +0 -411
  461. package/src/components/sidebar-edit-mode/sidebar-card/index.js +0 -34
  462. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +0 -37
  463. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +0 -49
  464. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +0 -86
  465. package/src/components/sidebar-navigation-screen-pages/index.js +0 -238
  466. package/src/components/sidebar-navigation-screen-templates/index.js +0 -156
  467. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -9
  468. package/src/hooks/template-part-edit.js +0 -89
  469. package/src/store/test/utils.js +0 -191
  470. package/src/store/utils.js +0 -69
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_url","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_page","_interopRequireDefault","_constants","_dataviewsPatternActions","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_GRID","mediaField","primaryField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","PreviewWrapper","item","onClick","ariaDescribedBy","children","PATTERN_TYPES","theme","_react","createElement","className","title","Preview","categoryId","viewType","descriptionId","useId","isUserPattern","user","isNonUserPattern","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","isCustomPattern","isCustom","ariaDescriptions","push","backgroundColor","useLink","postType","postId","id","name","categoryType","Fragment","style","map","_","index","join","undefined","BlockPreview","ariaDescription","key","hidden","Title","itemIcon","syncStatus","symbol","__experimentalHStack","alignment","justify","spacing","Flex","as","gap","Button","variant","tabIndex","Tooltip","placement","text","Icon","icon","lockSmall","size","DataviewsPatterns","PATTERN_DEFAULT_CATEGORY","getQueryArgs","window","location","href","view","setView","useState","isUncategorizedThemePatterns","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","fields","useMemo","_fields","render","enableSorting","enableHiding","getValue","ENUMERATION_TYPE","elements","filterBy","operators","OPERATOR_IN","isPrimary","useEffect","data","paginationInfo","totalItems","totalPages","filteredData","sort","sortByTextFields","textFields","getPaginationResults","actions","renameAction","duplicatePatternAction","duplicateTemplatePartAction","exportJSONaction","resetAction","deleteAction","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ onClick }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, categoryId, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<PreviewWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tariaDescribedBy={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t\t</PreviewWrapper>\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t<Flex\n\t\t\t\tas=\"div\"\n\t\t\t\tgap={ 0 }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t>\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\titem.title\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tviewType={ view.type }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! patterns ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...patterns ];\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_url","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_page","_interopRequireDefault","_constants","_dataviewsPatternActions","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_TABLE","primaryField","LAYOUT_GRID","mediaField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","PreviewWrapper","item","onClick","ariaDescribedBy","children","PATTERN_TYPES","theme","_react","createElement","className","title","Preview","categoryId","viewType","descriptionId","useId","isUserPattern","user","isNonUserPattern","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","isCustomPattern","isCustom","ariaDescriptions","push","backgroundColor","useLink","postType","postId","id","name","categoryType","canvas","Fragment","style","map","_","index","join","undefined","BlockPreview","viewportWidth","ariaDescription","key","hidden","Title","itemIcon","syncStatus","symbol","__experimentalHStack","alignment","justify","spacing","Flex","as","gap","Button","variant","tabIndex","Tooltip","placement","text","Icon","icon","lockSmall","size","DataviewsPatterns","PATTERN_DEFAULT_CATEGORY","getQueryArgs","window","location","href","view","setView","useState","isUncategorizedThemePatterns","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","fields","useMemo","_fields","render","enableSorting","enableHiding","ENUMERATION_TYPE","elements","filterBy","operators","OPERATOR_IS","isPrimary","useEffect","data","paginationInfo","viewWithoutFilters","filterSortAndPaginate","actions","renameAction","duplicatePatternAction","duplicateTemplatePartAction","exportJSONaction","resetAction","deleteAction","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ onClick }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, categoryId, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t\tcanvas: 'edit',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<PreviewWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tariaDescribedBy={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PreviewWrapper>\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t\tcanvas: 'edit',\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t<Flex\n\t\t\t\tas=\"div\"\n\t\t\t\tgap={ 0 }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t>\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\titem.title\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tviewType={ view.type }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IS ],\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\t// Since filters are applied server-side,\n\t\t// we need to remove them from the view\n\t\tconst viewWithoutFilters = { ...view };\n\t\tdelete viewWithoutFilters.search;\n\t\tviewWithoutFilters.filters = [];\n\t\treturn filterSortAndPaginate( patterns, viewWithoutFilters, fields );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID, LAYOUT_TABLE ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAOA,IAAAI,YAAA,GAAAJ,OAAA;AAIA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAQA,IAAAO,QAAA,GAAAP,OAAA;AAKA,IAAAQ,KAAA,GAAAC,sBAAA,CAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAUA,IAAAW,wBAAA,GAAAX,OAAA;AAQA,IAAAY,mBAAA,GAAAH,sBAAA,CAAAT,OAAA;AACA,IAAAa,WAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAL,sBAAA,CAAAT,OAAA;AACA,IAAAe,OAAA,GAAAN,sBAAA,CAAAT,OAAA;AACA,IAAAgB,KAAA,GAAAhB,OAAA;AA3DA;AACA;AACA;;AA+BA;AACA;AACA;;AA0BA,MAAM;EAAEiB,+BAA+B;EAAEC;AAAe,CAAC,GAAG,IAAAC,kBAAM,EACjEC,wBACD,CAAC;AAED,MAAMC,iBAAiB,GAAG;EAAEC,MAAM,EAANA,aAAM;EAAEC,MAAM,EAANA,aAAM;EAAEC,aAAa,EAAbA;AAAc,CAAC;AAC3D,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAMC,wBAAwB,GAAG;EAChC,CAAEC,uBAAY,GAAI;IACjBC,YAAY,EAAE;EACf,CAAC;EACD,CAAEC,sBAAW,GAAI;IAChBC,UAAU,EAAE,SAAS;IACrBF,YAAY,EAAE;EACf;AACD,CAAC;AACD,MAAMG,YAAY,GAAG;EACpBC,IAAI,EAAEH,sBAAW;EACjBI,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,EAAE;EACXC,YAAY,EAAE,CAAE,aAAa,CAAE;EAC/BC,MAAM,EAAE;IACP,GAAGX,wBAAwB,CAAEG,sBAAW;EACzC,CAAC;EACDS,OAAO,EAAE;AACV,CAAC;AAED,MAAMC,YAAY,GAAG,CACpB;EACCC,KAAK,EAAEC,6BAAkB,CAACC,IAAI;EAC9BC,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAQ,EAAE,6CAA8C,CAAC;EACpEC,WAAW,EAAE,IAAAC,QAAE,EAAE,iDAAkD;AACpE,CAAC,EACD;EACCN,KAAK,EAAEC,6BAAkB,CAACM,QAAQ;EAClCJ,KAAK,EAAE,IAAAC,QAAE,EACR,YAAY,EACZ,0DACD,CAAC;EACDC,WAAW,EAAE,IAAAC,QAAE,EACd,iEACD;AACD,CAAC,CACD;AAED,SAASE,cAAcA,CAAE;EAAEC,IAAI;EAAEC,OAAO;EAAEC,eAAe;EAAEC;AAAS,CAAC,EAAG;EACvE,IAAKH,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACC,KAAK,EAAG;IACxC,OAAOF,QAAQ;EAChB;EACA,OACC,IAAAG,MAAA,CAAAC,aAAA;IACCC,SAAS,EAAC,qCAAqC;IAC/CzB,IAAI,EAAC,QAAQ;IACbkB,OAAO,EAAGA,OAAS;IACnB,cAAaD,IAAI,CAACS,KAAO;IACzB,oBAAmBP;EAAiB,GAElCC,QACK,CAAC;AAEX;AAEA,SAASO,OAAOA,CAAE;EAAEV,IAAI;EAAEW,UAAU;EAAEC;AAAS,CAAC,EAAG;EAClD,MAAMC,aAAa,GAAG,IAAAC,cAAK,EAAC,CAAC;EAC7B,MAAMC,aAAa,GAAGf,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACY,IAAI;EACtD,MAAMC,gBAAgB,GAAGjB,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACC,KAAK;EAC1D,MAAMa,cAAc,GAAGlB,IAAI,CAACjB,IAAI,KAAKoC,kCAAuB;EAC5D,MAAMC,OAAO,GAAG,CAAEpB,IAAI,CAACqB,MAAM,EAAEC,MAAM;EACrC;EACA,MAAMC,eAAe,GACpBR,aAAa,IAAMG,cAAc,IAAIlB,IAAI,CAACwB,QAAU;EACrD,MAAMC,gBAAgB,GAAG,EAAE;EAC3B,IAAKF,eAAe,EAAG;IACtB;IACAE,gBAAgB,CAACC,IAAI,CACpB,IAAA7B,QAAE,EAAE,uDAAwD,CAC7D,CAAC;EACF,CAAC,MAAM,IAAKG,IAAI,CAACJ,WAAW,EAAG;IAC9B6B,gBAAgB,CAACC,IAAI,CAAE1B,IAAI,CAACJ,WAAY,CAAC;EAC1C;EAEA,IAAKqB,gBAAgB,EAAG;IACvBQ,gBAAgB,CAACC,IAAI,CACpB,IAAA7B,QAAE,EAAE,2CAA4C,CACjD,CAAC;EACF;EACA,MAAM,CAAE8B,eAAe,CAAE,GAAG1D,cAAc,CAAE,kBAAmB,CAAC;EAChE,MAAM;IAAEgC;EAAQ,CAAC,GAAG,IAAA2B,aAAO,EAAE;IAC5BC,QAAQ,EAAE7B,IAAI,CAACjB,IAAI;IACnB+C,MAAM,EAAEf,aAAa,GAAGf,IAAI,CAAC+B,EAAE,GAAG/B,IAAI,CAACgC,IAAI;IAC3CrB,UAAU;IACVsB,YAAY,EAAEf,cAAc,GAAGlB,IAAI,CAACjB,IAAI,GAAGqB,wBAAa,CAACC,KAAK;IAC9D6B,MAAM,EAAE;EACT,CAAE,CAAC;EAEH,OACC,IAAA5B,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA6B,QAAA,QACC,IAAA7B,MAAA,CAAAC,aAAA;IACCC,SAAS,EAAI,2CAA2CI,QAAU,EAAG;IACrEwB,KAAK,EAAG;MAAET;IAAgB;EAAG,GAE7B,IAAArB,MAAA,CAAAC,aAAA,EAACR,cAAc;IACdC,IAAI,EAAGA,IAAM;IACbC,OAAO,EAAGA,OAAS;IACnBC,eAAe,EACduB,gBAAgB,CAACH,MAAM,GACpBG,gBAAgB,CACfY,GAAG,CACH,CAAEC,CAAC,EAAEC,KAAK,KACR,GAAG1B,aAAe,IAAI0B,KAAO,EAChC,CAAC,CACAC,IAAI,CAAE,GAAI,CAAC,GACZC;EACH,GAECrB,OAAO,IAAIF,cAAc,IAAI,IAAArB,QAAE,EAAE,qBAAsB,CAAC,EACxDuB,OAAO,IAAI,CAAEF,cAAc,IAAI,IAAArB,QAAE,EAAE,eAAgB,CAAC,EACpD,CAAEuB,OAAO,IACV,IAAAd,MAAA,CAAAC,aAAA,EAACpD,YAAA,CAAAuF,YAAY;IACZrB,MAAM,EAAGrB,IAAI,CAACqB,MAAQ;IACtBsB,aAAa,EAAG3C,IAAI,CAAC2C;EAAe,CACpC,CAEa,CACZ,CAAC,EACJlB,gBAAgB,CAACY,GAAG,CAAE,CAAEO,eAAe,EAAEL,KAAK,KAC/C,IAAAjC,MAAA,CAAAC,aAAA;IACCsC,GAAG,EAAGN,KAAO;IACbO,MAAM;IACNf,EAAE,EAAI,GAAGlB,aAAe,IAAI0B,KAAO;EAAG,GAEpCK,eACE,CACJ,CACD,CAAC;AAEL;AAEA,SAASG,KAAKA,CAAE;EAAE/C,IAAI;EAAEW;AAAW,CAAC,EAAG;EACtC,MAAMI,aAAa,GAAGf,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACY,IAAI;EACtD,MAAMC,gBAAgB,GAAGjB,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACC,KAAK;EAC1D,MAAMa,cAAc,GAAGlB,IAAI,CAACjB,IAAI,KAAKoC,kCAAuB;EAC5D,IAAI6B,QAAQ;EACZ,MAAM;IAAE/C;EAAQ,CAAC,GAAG,IAAA2B,aAAO,EAAE;IAC5BC,QAAQ,EAAE7B,IAAI,CAACjB,IAAI;IACnB+C,MAAM,EAAEf,aAAa,GAAGf,IAAI,CAAC+B,EAAE,GAAG/B,IAAI,CAACgC,IAAI;IAC3CrB,UAAU;IACVsB,YAAY,EAAEf,cAAc,GAAGlB,IAAI,CAACjB,IAAI,GAAGqB,wBAAa,CAACC,KAAK;IAC9D6B,MAAM,EAAE;EACT,CAAE,CAAC;EACH,IAAK,CAAEnB,aAAa,IAAI3C,iBAAiB,CAAEuC,UAAU,CAAE,EAAG;IACzDqC,QAAQ,GAAG5E,iBAAiB,CAAEuC,UAAU,CAAE;EAC3C,CAAC,MAAM;IACNqC,QAAQ,GACPhD,IAAI,CAACiD,UAAU,KAAKzD,6BAAkB,CAACC,IAAI,GAAGyD,aAAM,GAAGT,SAAS;EAClE;EACA,OACC,IAAAnC,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAAqG,oBAAM;IAACC,SAAS,EAAC,QAAQ;IAACC,OAAO,EAAC,YAAY;IAACC,OAAO,EAAG;EAAG,GAC5D,IAAAhD,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAAyG,IAAI;IACJC,EAAE,EAAC,KAAK;IACRC,GAAG,EAAG,CAAG;IACTJ,OAAO,EAAC,MAAM;IACd7C,SAAS,EAAC;EAAmC,GAE3CR,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACC,KAAK,GAClCL,IAAI,CAACS,KAAK,GAEV,IAAAH,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA4G,MAAM;IACNC,OAAO,EAAC,MAAM;IACd1D,OAAO,EAAGA;IACV;IACA;IAAA;IACA2D,QAAQ,EAAC;EAAI,GAEX5D,IAAI,CAACS,KAAK,IAAIT,IAAI,CAACgC,IACd,CAEJ,CAAC,EACLgB,QAAQ,IAAI,CAAE/B,gBAAgB,IAC/B,IAAAX,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA+G,OAAO;IACPC,SAAS,EAAC,KAAK;IACfC,IAAI,EAAG,IAAAlE,QAAE,EACR,2DACD;EAAG,GAEH,IAAAS,MAAA,CAAAC,aAAA,EAAClD,MAAA,CAAA2G,IAAI;IACJxD,SAAS,EAAC,kCAAkC;IAC5CyD,IAAI,EAAGjB;EAAU,CACjB,CACO,CACT,EACChD,IAAI,CAACjB,IAAI,KAAKqB,wBAAa,CAACC,KAAK,IAClC,IAAAC,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA+G,OAAO;IACPC,SAAS,EAAC,KAAK;IACfC,IAAI,EAAG,IAAAlE,QAAE,EAAE,gCAAiC;EAAG,GAE/C,IAAAS,MAAA,CAAAC,aAAA,EAAClD,MAAA,CAAA2G,IAAI;IACJxD,SAAS,EAAC,uCAAuC;IACjDyD,IAAI,EAAGC,gBAAW;IAClBC,IAAI,EAAG;EAAI,CACX,CACO,CAEH,CAAC;AAEX;AAEe,SAASC,iBAAiBA,CAAA,EAAG;EAC3C,MAAM;IAAEnC,YAAY;IAAEtB,UAAU,GAAG0D;EAAyB,CAAC,GAC5D,IAAAC,iBAAY,EAAEC,MAAM,CAACC,QAAQ,CAACC,IAAK,CAAC;EACrC,MAAM1F,IAAI,GAAGkD,YAAY,IAAI7B,wBAAa,CAACC,KAAK;EAChD,MAAM,CAAEqE,IAAI,EAAEC,OAAO,CAAE,GAAG,IAAAC,iBAAQ,EAAE9F,YAAa,CAAC;EAClD,MAAM+F,4BAA4B,GACjC9F,IAAI,KAAKqB,wBAAa,CAACC,KAAK,IAAIM,UAAU,KAAK,eAAe;EAC/D,MAAMmE,kBAAkB,GAAG,IAAAC,oBAAW,EAAEpE,UAAW,CAAC;EACpD,MAAMqE,cAAc,GAAGN,IAAI,CAACrF,OAAO,EAAE4F,IAAI,CACxC,CAAE;IAAEC;EAAM,CAAC,KAAMA,KAAK,KAAK,aAC5B,CAAC,EAAE3F,KAAK;EACR,MAAM;IAAE4F,QAAQ;IAAEC;EAAY,CAAC,GAAG,IAAAC,oBAAW,EAC5CtG,IAAI,EACJ8F,4BAA4B,GAAG,EAAE,GAAGlE,UAAU,EAC9C;IACC3B,MAAM,EAAE0F,IAAI,CAAC1F,MAAM;IACnBiE,UAAU,EAAE+B;EACb,CACD,CAAC;EACD,MAAMM,MAAM,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC7B,MAAMC,OAAO,GAAG,CACf;MACCnH,MAAM,EAAE,IAAAwB,QAAE,EAAE,SAAU,CAAC;MACvBkC,EAAE,EAAE,SAAS;MACb0D,MAAM,EAAEA,CAAE;QAAEzF;MAAK,CAAC,KACjB,IAAAM,MAAA,CAAAC,aAAA,EAACG,OAAO;QACPV,IAAI,EAAGA,IAAM;QACbW,UAAU,EAAGA,UAAY;QACzBC,QAAQ,EAAG8D,IAAI,CAAC3F;MAAM,CACtB,CACD;MACD2G,aAAa,EAAE,KAAK;MACpBC,YAAY,EAAE;IACf,CAAC,EACD;MACCtH,MAAM,EAAE,IAAAwB,QAAE,EAAE,OAAQ,CAAC;MACrBkC,EAAE,EAAE,OAAO;MACX0D,MAAM,EAAEA,CAAE;QAAEzF;MAAK,CAAC,KACjB,IAAAM,MAAA,CAAAC,aAAA,EAACwC,KAAK;QAAC/C,IAAI,EAAGA,IAAM;QAACW,UAAU,EAAGA;MAAY,CAAE,CAChD;MACDgF,YAAY,EAAE;IACf,CAAC,CACD;IACD,IAAK5G,IAAI,KAAKqB,wBAAa,CAACC,KAAK,EAAG;MACnCmF,OAAO,CAAC9D,IAAI,CAAE;QACbrD,MAAM,EAAE,IAAAwB,QAAE,EAAE,aAAc,CAAC;QAC3BkC,EAAE,EAAE,aAAa;QACjB0D,MAAM,EAAEA,CAAE;UAAEzF;QAAK,CAAC,KAAM;UACvB;UACA;UACA,OACCV,YAAY,CAAC2F,IAAI,CAChB,CAAE;YAAE1F;UAAM,CAAC,KAAMA,KAAK,KAAKS,IAAI,CAACiD,UACjC,CAAC,EAAEvD,KAAK,IACRJ,YAAY,CAAC2F,IAAI,CAChB,CAAE;YAAE1F;UAAM,CAAC,KACVA,KAAK,KAAKC,6BAAkB,CAACM,QAC/B,CAAC,CAACJ,KAAK;QAET,CAAC;QACDX,IAAI,EAAE6G,2BAAgB;QACtBC,QAAQ,EAAEvG,YAAY;QACtBwG,QAAQ,EAAE;UACTC,SAAS,EAAE,CAAEC,sBAAW,CAAE;UAC1BC,SAAS,EAAE;QACZ,CAAC;QACDP,aAAa,EAAE;MAChB,CAAE,CAAC;IACJ;IACA,OAAOF,OAAO;EACf,CAAC,EAAE,CAAEd,IAAI,CAAC3F,IAAI,EAAE4B,UAAU,EAAE5B,IAAI,CAAG,CAAC;EACpC;EACA,IAAAmH,kBAAS,EAAE,MAAM;IAChB,IAAKpB,kBAAkB,KAAKnE,UAAU,EAAG;MACxCgE,OAAO,CAAE7F,YAAa,CAAC;IACxB;EACD,CAAC,EAAE,CAAE6B,UAAU,EAAEmE,kBAAkB,CAAG,CAAC;EACvC,MAAM;IAAEqB,IAAI;IAAEC;EAAe,CAAC,GAAG,IAAAb,gBAAO,EAAE,MAAM;IAC/C;IACA;IACA,MAAMc,kBAAkB,GAAG;MAAE,GAAG3B;IAAK,CAAC;IACtC,OAAO2B,kBAAkB,CAACrH,MAAM;IAChCqH,kBAAkB,CAAChH,OAAO,GAAG,EAAE;IAC/B,OAAO,IAAAiH,gCAAqB,EAAEnB,QAAQ,EAAEkB,kBAAkB,EAAEf,MAAO,CAAC;EACrE,CAAC,EAAE,CAAEH,QAAQ,EAAET,IAAI,EAAEY,MAAM,CAAG,CAAC;EAE/B,MAAMiB,OAAO,GAAG,IAAAhB,gBAAO,EACtB,MAAM,CACLiB,qCAAY,EACZC,+CAAsB,EACtBC,oDAA2B,EAC3BC,yCAAgB,EAChBC,oCAAW,EACXC,qCAAY,CACZ,EACD,EACD,CAAC;EACD,MAAMC,YAAY,GAAG,IAAAC,oBAAW,EAC7BC,OAAO,IAAM;IACd,IAAKA,OAAO,CAACjI,IAAI,KAAK2F,IAAI,CAAC3F,IAAI,EAAG;MACjCiI,OAAO,GAAG;QACT,GAAGA,OAAO;QACV5H,MAAM,EAAE;UACP,GAAGX,wBAAwB,CAAEuI,OAAO,CAACjI,IAAI;QAC1C;MACD,CAAC;IACF;IACA4F,OAAO,CAAEqC,OAAQ,CAAC;EACnB,CAAC,EACD,CAAEtC,IAAI,CAAC3F,IAAI,EAAE4F,OAAO,CACrB,CAAC;EACD,MAAM5C,EAAE,GAAG,IAAAjB,cAAK,EAAC,CAAC;EAClB,MAAMmG,QAAQ,GAAG,IAAAC,2BAAkB,EAAC,CAAC;EACrC;EACA;EACA;EACA,OACC,IAAA5G,MAAA,CAAAC,aAAA,EAACvC,+BAA+B;IAACiJ,QAAQ,EAAGA;EAAU,GACrD,IAAA3G,MAAA,CAAAC,aAAA,EAAChD,KAAA,CAAA4J,OAAI;IACJ1G,KAAK,EAAG,IAAAZ,QAAE,EAAE,kBAAmB,CAAG;IAClCW,SAAS,EAAC,mCAAmC;IAC7C4G,eAAe;EAAA,GAEf,IAAA9G,MAAA,CAAAC,aAAA,EAACzC,OAAA,CAAAqJ,OAAc;IACdxG,UAAU,EAAGA,UAAY;IACzB5B,IAAI,EAAGA,IAAM;IACbsI,OAAO,EAAI,GAAGtF,EAAI,QAAS;IAC3BlB,aAAa,EAAI,GAAGkB,EAAI;EAAe,CACvC,CAAC,EACF,IAAAzB,MAAA,CAAAC,aAAA,EAACnD,UAAA,CAAAkK,SAAS;IACTlB,cAAc,EAAGA,cAAgB;IACjCd,MAAM,EAAGA,MAAQ;IACjBiB,OAAO,EAAGA,OAAS;IACnBJ,IAAI,EAAGA,IAAI,IAAI3H,WAAa;IAC5B+I,SAAS,EAAKvH,IAAI,IAAMA,IAAI,CAACgC,IAAM;IACnCwF,SAAS,EAAGpC,WAAa;IACzBV,IAAI,EAAGA,IAAM;IACboC,YAAY,EAAGA,YAAc;IAC7BW,iBAAiB;IACjBC,gBAAgB,EAAG,CAAE9I,sBAAW,EAAEF,uBAAY;EAAI,CAClD,CACI,CAC0B,CAAC;AAEpC"}
@@ -1,17 +1,26 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.searchItems = exports.getNormalizedSearchTerms = void 0;
8
- var _removeAccents = _interopRequireDefault(require("remove-accents"));
9
- var _changeCase = require("change-case");
6
+ exports.searchItems = void 0;
7
+ var _blockEditor = require("@wordpress/block-editor");
8
+ var _lockUnlock = require("../../lock-unlock");
10
9
  var _constants = require("../../utils/constants");
11
10
  /**
12
- * External dependencies
11
+ * WordPress dependencies
13
12
  */
14
13
 
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ const {
19
+ extractWords,
20
+ getNormalizedSearchTerms,
21
+ normalizeString
22
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
23
+
15
24
  /**
16
25
  * Internal dependencies
17
26
  */
@@ -22,57 +31,6 @@ const defaultGetTitle = item => item.title;
22
31
  const defaultGetDescription = item => item.description || '';
23
32
  const defaultGetKeywords = item => item.keywords || [];
24
33
  const defaultHasCategory = () => false;
25
-
26
- /**
27
- * Extracts words from an input string.
28
- *
29
- * @param {string} input The input string.
30
- *
31
- * @return {Array} Words, extracted from the input string.
32
- */
33
- function extractWords(input = '') {
34
- return (0, _changeCase.noCase)(input, {
35
- splitRegexp: [/([\p{Ll}\p{Lo}\p{N}])([\p{Lu}\p{Lt}])/gu,
36
- // One lowercase or digit, followed by one uppercase.
37
- /([\p{Lu}\p{Lt}])([\p{Lu}\p{Lt}][\p{Ll}\p{Lo}])/gu // One uppercase followed by one uppercase and one lowercase.
38
- ],
39
- stripRegexp: /(\p{C}|\p{P}|\p{S})+/giu // Anything that's not a punctuation, symbol or control/format character.
40
- }).split(' ').filter(Boolean);
41
- }
42
-
43
- /**
44
- * Sanitizes the search input string.
45
- *
46
- * @param {string} input The search input to normalize.
47
- *
48
- * @return {string} The normalized search input.
49
- */
50
- function normalizeSearchInput(input = '') {
51
- // Disregard diacritics.
52
- // Input: "média"
53
- input = (0, _removeAccents.default)(input);
54
-
55
- // Accommodate leading slash, matching autocomplete expectations.
56
- // Input: "/media"
57
- input = input.replace(/^\//, '');
58
-
59
- // Lowercase.
60
- // Input: "MEDIA"
61
- input = input.toLowerCase();
62
- return input;
63
- }
64
-
65
- /**
66
- * Converts the search term into a list of normalized terms.
67
- *
68
- * @param {string} input The search term to normalize.
69
- *
70
- * @return {string[]} The normalized list of search terms.
71
- */
72
- const getNormalizedSearchTerms = (input = '') => {
73
- return extractWords(normalizeSearchInput(input));
74
- };
75
- exports.getNormalizedSearchTerms = getNormalizedSearchTerms;
76
34
  const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => {
77
35
  return unmatchedTerms.filter(term => !getNormalizedSearchTerms(unprocessedTerms).some(unprocessedTerm => unprocessedTerm.includes(term)));
78
36
  };
@@ -143,8 +101,8 @@ function getItemSearchRank(item, searchTerm, config) {
143
101
  const title = getTitle(item);
144
102
  const description = getDescription(item);
145
103
  const keywords = getKeywords(item);
146
- const normalizedSearchInput = normalizeSearchInput(searchTerm);
147
- const normalizedTitle = normalizeSearchInput(title);
104
+ const normalizedSearchInput = normalizeString(searchTerm);
105
+ const normalizedTitle = normalizeString(title);
148
106
 
149
107
  // Prefers exact matches
150
108
  // Then prefers if the beginning of the title matches the search term
@@ -1 +1 @@
1
- {"version":3,"names":["_removeAccents","_interopRequireDefault","require","_changeCase","_constants","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","extractWords","input","noCase","splitRegexp","stripRegexp","split","filter","Boolean","normalizeSearchInput","removeAccents","replace","toLowerCase","getNormalizedSearchTerms","exports","removeMatchingTerms","unmatchedTerms","unprocessedTerms","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","PATTERN_USER_CATEGORY","type","PATTERN_TYPES","user","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { noCase } from 'change-case';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\n/**\n * Extracts words from an input string.\n *\n * @param {string} input The input string.\n *\n * @return {Array} Words, extracted from the input string.\n */\nfunction extractWords( input = '' ) {\n\treturn noCase( input, {\n\t\tsplitRegexp: [\n\t\t\t/([\\p{Ll}\\p{Lo}\\p{N}])([\\p{Lu}\\p{Lt}])/gu, // One lowercase or digit, followed by one uppercase.\n\t\t\t/([\\p{Lu}\\p{Lt}])([\\p{Lu}\\p{Lt}][\\p{Ll}\\p{Lo}])/gu, // One uppercase followed by one uppercase and one lowercase.\n\t\t],\n\t\tstripRegexp: /(\\p{C}|\\p{P}|\\p{S})+/giu, // Anything that's not a punctuation, symbol or control/format character.\n\t} )\n\t\t.split( ' ' )\n\t\t.filter( Boolean );\n}\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t// Input: \"média\"\n\tinput = removeAccents( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t// Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t// Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\treturn extractWords( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_blockEditor","require","_lockUnlock","_constants","extractWords","getNormalizedSearchTerms","normalizeString","unlock","blockEditorPrivateApis","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","exports","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","PATTERN_USER_CATEGORY","type","PATTERN_TYPES","user","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { extractWords, getNormalizedSearchTerms, normalizeString } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeString( searchTerm );\n\tconst normalizedTitle = normalizeString( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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"}
@@ -48,7 +48,7 @@ const selectTemplatePartsAsPatterns = (0, _rememo.default)((select, categoryId,
48
48
  var _getEntityRecords;
49
49
  const {
50
50
  getEntityRecords,
51
- getIsResolving
51
+ isResolving: isResolvingSelector
52
52
  } = select(_coreData.store);
53
53
  const {
54
54
  __experimentalGetDefaultTemplatePartAreas
@@ -70,7 +70,7 @@ const selectTemplatePartsAsPatterns = (0, _rememo.default)((select, categoryId,
70
70
  }
71
71
  return item.templatePart.area === category || !templatePartAreas.includes(item.templatePart.area);
72
72
  };
73
- const isResolving = getIsResolving('getEntityRecords', ['postType', _constants.TEMPLATE_PART_POST_TYPE, query]);
73
+ const isResolving = isResolvingSelector('getEntityRecords', ['postType', _constants.TEMPLATE_PART_POST_TYPE, query]);
74
74
  const patterns = (0, _searchItems.searchItems)(templateParts, search, {
75
75
  categoryId,
76
76
  hasCategory: templatePartHasCategory
@@ -81,7 +81,7 @@ const selectTemplatePartsAsPatterns = (0, _rememo.default)((select, categoryId,
81
81
  };
82
82
  }, select => [select(_coreData.store).getEntityRecords('postType', _constants.TEMPLATE_PART_POST_TYPE, {
83
83
  per_page: -1
84
- }), select(_coreData.store).getIsResolving('getEntityRecords', ['postType', _constants.TEMPLATE_PART_POST_TYPE, {
84
+ }), select(_coreData.store).isResolving('getEntityRecords', ['postType', _constants.TEMPLATE_PART_POST_TYPE, {
85
85
  per_page: -1
86
86
  }]), select(_editor.store).__experimentalGetDefaultTemplatePartAreas()]);
87
87
  const selectThemePatterns = (0, _rememo.default)(select => {
@@ -90,7 +90,7 @@ const selectThemePatterns = (0, _rememo.default)(select => {
90
90
  getSettings
91
91
  } = (0, _lockUnlock.unlock)(select(_store.store));
92
92
  const {
93
- getIsResolving
93
+ isResolving: isResolvingSelector
94
94
  } = select(_coreData.store);
95
95
  const settings = getSettings();
96
96
  const blockPatterns = (_settings$__experimen = settings.__experimentalAdditionalBlockPatterns) !== null && _settings$__experimen !== void 0 ? _settings$__experimen : settings.__experimentalBlockPatterns;
@@ -105,9 +105,9 @@ const selectThemePatterns = (0, _rememo.default)(select => {
105
105
  }));
106
106
  return {
107
107
  patterns,
108
- isResolving: getIsResolving('getBlockPatterns')
108
+ isResolving: isResolvingSelector('getBlockPatterns')
109
109
  };
110
- }, select => [select(_coreData.store).getBlockPatterns(), select(_coreData.store).getIsResolving('getBlockPatterns'), (0, _lockUnlock.unlock)(select(_store.store)).getSettings()]);
110
+ }, select => [select(_coreData.store).getBlockPatterns(), select(_coreData.store).isResolving('getBlockPatterns'), (0, _lockUnlock.unlock)(select(_store.store)).getSettings()]);
111
111
  const selectPatterns = (0, _rememo.default)((select, categoryId, syncStatus, search = '') => {
112
112
  const {
113
113
  patterns: themePatterns,
@@ -168,7 +168,7 @@ const convertPatternPostToItem = (patternPost, categories) => ({
168
168
  const selectUserPatterns = (0, _rememo.default)((select, syncStatus, search = '') => {
169
169
  const {
170
170
  getEntityRecords,
171
- getIsResolving,
171
+ isResolving: isResolvingSelector,
172
172
  getUserPatternCategories
173
173
  } = select(_coreData.store);
174
174
  const query = {
@@ -179,7 +179,7 @@ const selectUserPatterns = (0, _rememo.default)((select, syncStatus, search = ''
179
179
  const categories = new Map();
180
180
  userPatternCategories.forEach(userCategory => categories.set(userCategory.id, userCategory));
181
181
  let patterns = patternPosts ? patternPosts.map(record => convertPatternPostToItem(record, categories)) : EMPTY_PATTERN_LIST;
182
- const isResolving = getIsResolving('getEntityRecords', ['postType', _constants.PATTERN_TYPES.user, query]);
182
+ const isResolving = isResolvingSelector('getEntityRecords', ['postType', _constants.PATTERN_TYPES.user, query]);
183
183
  if (syncStatus) {
184
184
  patterns = patterns.filter(pattern => pattern.syncStatus === syncStatus);
185
185
  }
@@ -196,7 +196,7 @@ const selectUserPatterns = (0, _rememo.default)((select, syncStatus, search = ''
196
196
  };
197
197
  }, select => [select(_coreData.store).getEntityRecords('postType', _constants.PATTERN_TYPES.user, {
198
198
  per_page: -1
199
- }), select(_coreData.store).getIsResolving('getEntityRecords', ['postType', _constants.PATTERN_TYPES.user, {
199
+ }), select(_coreData.store).isResolving('getEntityRecords', ['postType', _constants.PATTERN_TYPES.user, {
200
200
  per_page: -1
201
201
  }]), select(_coreData.store).getUserPatternCategories()]);
202
202
  const usePatterns = (categoryType, categoryId, {
@@ -1 +1 @@
1
- {"version":3,"names":["_rememo","_interopRequireDefault","require","_blocks","_data","_coreData","_editor","_htmlEntities","_utils","_constants","_lockUnlock","_searchItems","_store","EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","parse","content","raw","__unstableSkipMigrationLogs","categories","area","description","isCustom","source","TEMPLATE_ORIGINS","custom","keywords","id","name","title","decodeEntities","rendered","type","selectTemplatePartsAsPatterns","createSelector","select","categoryId","search","_getEntityRecords","getEntityRecords","getIsResolving","coreStore","__experimentalGetDefaultTemplatePartAreas","editorStore","query","per_page","rawTemplateParts","TEMPLATE_PART_POST_TYPE","templateParts","map","knownAreas","templatePartAreas","templatePartHasCategory","item","category","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","includes","isResolving","patterns","searchItems","hasCategory","selectThemePatterns","_settings$__experimen","getSettings","unlock","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","EXCLUDED_PATTERN_SOURCES","filterOutDuplicatesByName","inserter","PATTERN_TYPES","selectPatterns","syncStatus","themePatterns","isResolvingThemePatterns","userPatterns","isResolvingUserPatterns","selectUserPatterns","user","PATTERN_SYNC_TYPES","unsynced","currentCategory","hasOwnProperty","convertPatternPostToItem","patternPost","wp_pattern_category","length","patternCategoryId","get","termLabels","label","wp_pattern_sync_status","full","getUserPatternCategories","patternPosts","userPatternCategories","Map","forEach","userCategory","set","record","usePatterns","categoryType","useSelect","exports","_default","default"],"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { filterOutDuplicatesByName } from './utils';\nimport {\n\tEXCLUDED_PATTERN_SOURCES,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === TEMPLATE_ORIGINS.custom,\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst selectTemplatePartsAsPatterns = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\t\tconst { __experimentalGetDefaultTemplatePartAreas } =\n\t\t\tselect( editorStore );\n\t\tconst query = { per_page: -1 };\n\t\tconst rawTemplateParts =\n\t\t\tgetEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??\n\t\t\tEMPTY_PATTERN_LIST;\n\t\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\t\ttemplatePartToPattern( templatePart )\n\t\t);\n\n\t\t// In the case where a custom template part area has been removed we need\n\t\t// the current list of areas to cross check against so orphaned template\n\t\t// parts can be treated as uncategorized.\n\t\tconst knownAreas = __experimentalGetDefaultTemplatePartAreas() || [];\n\t\tconst templatePartAreas = knownAreas.map( ( area ) => area.area );\n\n\t\tconst templatePartHasCategory = ( item, category ) => {\n\t\t\tif ( category !== TEMPLATE_PART_AREA_DEFAULT_CATEGORY ) {\n\t\t\t\treturn item.templatePart.area === category;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\titem.templatePart.area === category ||\n\t\t\t\t! templatePartAreas.includes( item.templatePart.area )\n\t\t\t);\n\t\t};\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tquery,\n\t\t] );\n\n\t\tconst patterns = searchItems( templateParts, search, {\n\t\t\tcategoryId,\n\t\t\thasCategory: templatePartHasCategory,\n\t\t} );\n\n\t\treturn { patterns, isResolving };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t]\n);\n\nconst selectThemePatterns = createSelector(\n\t( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst { getIsResolving } = select( coreStore );\n\t\tconst settings = getSettings();\n\t\tconst blockPatterns =\n\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\tsettings.__experimentalBlockPatterns;\n\n\t\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\t\tconst patterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t]\n\t\t\t.filter(\n\t\t\t\t( pattern ) =>\n\t\t\t\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source )\n\t\t\t)\n\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t.filter( ( pattern ) => pattern.inserter !== false )\n\t\t\t.map( ( pattern ) => ( {\n\t\t\t\t...pattern,\n\t\t\t\tkeywords: pattern.keywords || [],\n\t\t\t\ttype: PATTERN_TYPES.theme,\n\t\t\t\tblocks: parse( pattern.content, {\n\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t} ),\n\t\t\t} ) );\n\t\treturn { patterns, isResolving: getIsResolving( 'getBlockPatterns' ) };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tselect( coreStore ).getIsResolving( 'getBlockPatterns' ),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tpatterns: themePatterns,\n\t\t\tisResolving: isResolvingThemePatterns,\n\t\t} = selectThemePatterns( select );\n\t\tconst { patterns: userPatterns, isResolving: isResolvingUserPatterns } =\n\t\t\tselectUserPatterns( select );\n\n\t\tlet patterns = [\n\t\t\t...( themePatterns || [] ),\n\t\t\t...( userPatterns || [] ),\n\t\t];\n\n\t\tif ( syncStatus ) {\n\t\t\t// User patterns can have their sync statuses checked directly\n\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\tpatterns = patterns.filter( ( pattern ) => {\n\t\t\t\treturn pattern.type === PATTERN_TYPES.user\n\t\t\t\t\t? pattern.syncStatus === syncStatus\n\t\t\t\t\t: syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\t\t\t} );\n\t\t}\n\n\t\tif ( categoryId ) {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\tcategoryId,\n\t\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t\t} );\n\t\t} else {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\thasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),\n\t\t\t} );\n\t\t}\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingThemePatterns || isResolvingUserPatterns,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\n/**\n * Converts a post of type `wp_block` to a 'pattern item' that more closely\n * matches the structure of theme provided patterns.\n *\n * @param {Object} patternPost The `wp_block` record being normalized.\n * @param {Map} categories A Map of user created categories.\n *\n * @return {Object} The normalized item.\n */\nconst convertPatternPostToItem = ( patternPost, categories ) => ( {\n\tblocks: parse( patternPost.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\t...( patternPost.wp_pattern_category.length > 0 && {\n\t\tcategories: patternPost.wp_pattern_category.map(\n\t\t\t( patternCategoryId ) =>\n\t\t\t\tcategories && categories.get( patternCategoryId )\n\t\t\t\t\t? categories.get( patternCategoryId ).slug\n\t\t\t\t\t: patternCategoryId\n\t\t),\n\t} ),\n\ttermLabels: patternPost.wp_pattern_category.map( ( patternCategoryId ) =>\n\t\tcategories?.get( patternCategoryId )\n\t\t\t? categories.get( patternCategoryId ).label\n\t\t\t: patternCategoryId\n\t),\n\tid: patternPost.id,\n\tname: patternPost.slug,\n\tsyncStatus: patternPost.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,\n\ttitle: patternPost.title.raw,\n\ttype: patternPost.type,\n\tpatternPost,\n} );\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst patternPosts = getEntityRecords(\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery\n\t\t);\n\t\tconst userPatternCategories = getUserPatternCategories();\n\t\tconst categories = new Map();\n\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\tcategories.set( userCategory.id, userCategory )\n\t\t);\n\t\tlet patterns = patternPosts\n\t\t\t? patternPosts.map( ( record ) =>\n\t\t\t\t\tconvertPatternPostToItem( record, categories )\n\t\t\t )\n\t\t\t: EMPTY_PATTERN_LIST;\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery,\n\t\t] );\n\n\t\tif ( syncStatus ) {\n\t\t\tpatterns = patterns.filter(\n\t\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t\t);\n\t\t}\n\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t\t// catch-all category for user created patterns, so it has\n\t\t\t// to be in the category.\n\t\t\thasCategory: () => true,\n\t\t} );\n\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving,\n\t\t\tcategories: userPatternCategories,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords( 'postType', PATTERN_TYPES.user, {\n\t\t\tper_page: -1,\n\t\t} ),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( coreStore ).getUserPatternCategories(),\n\t]\n);\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( categoryType === PATTERN_TYPES.theme ) {\n\t\t\t\treturn selectPatterns( select, categoryId, syncStatus, search );\n\t\t\t} else if ( categoryType === PATTERN_TYPES.user ) {\n\t\t\t\treturn selectUserPatterns( select, syncStatus, search );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpatterns: EMPTY_PATTERN_LIST,\n\t\t\t\tisResolving: false,\n\t\t\t};\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_rememo","_interopRequireDefault","require","_blocks","_data","_coreData","_editor","_htmlEntities","_utils","_constants","_lockUnlock","_searchItems","_store","EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","parse","content","raw","__unstableSkipMigrationLogs","categories","area","description","isCustom","source","TEMPLATE_ORIGINS","custom","keywords","id","name","title","decodeEntities","rendered","type","selectTemplatePartsAsPatterns","createSelector","select","categoryId","search","_getEntityRecords","getEntityRecords","isResolving","isResolvingSelector","coreStore","__experimentalGetDefaultTemplatePartAreas","editorStore","query","per_page","rawTemplateParts","TEMPLATE_PART_POST_TYPE","templateParts","map","knownAreas","templatePartAreas","templatePartHasCategory","item","category","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","includes","patterns","searchItems","hasCategory","selectThemePatterns","_settings$__experimen","getSettings","unlock","editSiteStore","settings","blockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","filter","pattern","EXCLUDED_PATTERN_SOURCES","filterOutDuplicatesByName","inserter","PATTERN_TYPES","selectPatterns","syncStatus","themePatterns","isResolvingThemePatterns","userPatterns","isResolvingUserPatterns","selectUserPatterns","user","PATTERN_SYNC_TYPES","unsynced","currentCategory","hasOwnProperty","convertPatternPostToItem","patternPost","wp_pattern_category","length","patternCategoryId","get","termLabels","label","wp_pattern_sync_status","full","getUserPatternCategories","patternPosts","userPatternCategories","Map","forEach","userCategory","set","record","usePatterns","categoryType","useSelect","exports","_default","default"],"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { filterOutDuplicatesByName } from './utils';\nimport {\n\tEXCLUDED_PATTERN_SOURCES,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === TEMPLATE_ORIGINS.custom,\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst selectTemplatePartsAsPatterns = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, isResolving: isResolvingSelector } =\n\t\t\tselect( coreStore );\n\t\tconst { __experimentalGetDefaultTemplatePartAreas } =\n\t\t\tselect( editorStore );\n\t\tconst query = { per_page: -1 };\n\t\tconst rawTemplateParts =\n\t\t\tgetEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??\n\t\t\tEMPTY_PATTERN_LIST;\n\t\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\t\ttemplatePartToPattern( templatePart )\n\t\t);\n\n\t\t// In the case where a custom template part area has been removed we need\n\t\t// the current list of areas to cross check against so orphaned template\n\t\t// parts can be treated as uncategorized.\n\t\tconst knownAreas = __experimentalGetDefaultTemplatePartAreas() || [];\n\t\tconst templatePartAreas = knownAreas.map( ( area ) => area.area );\n\n\t\tconst templatePartHasCategory = ( item, category ) => {\n\t\t\tif ( category !== TEMPLATE_PART_AREA_DEFAULT_CATEGORY ) {\n\t\t\t\treturn item.templatePart.area === category;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\titem.templatePart.area === category ||\n\t\t\t\t! templatePartAreas.includes( item.templatePart.area )\n\t\t\t);\n\t\t};\n\n\t\tconst isResolving = isResolvingSelector( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tquery,\n\t\t] );\n\n\t\tconst patterns = searchItems( templateParts, search, {\n\t\t\tcategoryId,\n\t\t\thasCategory: templatePartHasCategory,\n\t\t} );\n\n\t\treturn { patterns, isResolving };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t),\n\t\tselect( coreStore ).isResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t]\n);\n\nconst selectThemePatterns = createSelector(\n\t( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst { isResolving: isResolvingSelector } = select( coreStore );\n\t\tconst settings = getSettings();\n\t\tconst blockPatterns =\n\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\tsettings.__experimentalBlockPatterns;\n\n\t\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\t\tconst patterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t]\n\t\t\t.filter(\n\t\t\t\t( pattern ) =>\n\t\t\t\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source )\n\t\t\t)\n\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t.filter( ( pattern ) => pattern.inserter !== false )\n\t\t\t.map( ( pattern ) => ( {\n\t\t\t\t...pattern,\n\t\t\t\tkeywords: pattern.keywords || [],\n\t\t\t\ttype: PATTERN_TYPES.theme,\n\t\t\t\tblocks: parse( pattern.content, {\n\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t} ),\n\t\t\t} ) );\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingSelector( 'getBlockPatterns' ),\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tselect( coreStore ).isResolving( 'getBlockPatterns' ),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tpatterns: themePatterns,\n\t\t\tisResolving: isResolvingThemePatterns,\n\t\t} = selectThemePatterns( select );\n\t\tconst { patterns: userPatterns, isResolving: isResolvingUserPatterns } =\n\t\t\tselectUserPatterns( select );\n\n\t\tlet patterns = [\n\t\t\t...( themePatterns || [] ),\n\t\t\t...( userPatterns || [] ),\n\t\t];\n\n\t\tif ( syncStatus ) {\n\t\t\t// User patterns can have their sync statuses checked directly\n\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\tpatterns = patterns.filter( ( pattern ) => {\n\t\t\t\treturn pattern.type === PATTERN_TYPES.user\n\t\t\t\t\t? pattern.syncStatus === syncStatus\n\t\t\t\t\t: syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\t\t\t} );\n\t\t}\n\n\t\tif ( categoryId ) {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\tcategoryId,\n\t\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t\t} );\n\t\t} else {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\thasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),\n\t\t\t} );\n\t\t}\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving: isResolvingThemePatterns || isResolvingUserPatterns,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\n/**\n * Converts a post of type `wp_block` to a 'pattern item' that more closely\n * matches the structure of theme provided patterns.\n *\n * @param {Object} patternPost The `wp_block` record being normalized.\n * @param {Map} categories A Map of user created categories.\n *\n * @return {Object} The normalized item.\n */\nconst convertPatternPostToItem = ( patternPost, categories ) => ( {\n\tblocks: parse( patternPost.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\t...( patternPost.wp_pattern_category.length > 0 && {\n\t\tcategories: patternPost.wp_pattern_category.map(\n\t\t\t( patternCategoryId ) =>\n\t\t\t\tcategories && categories.get( patternCategoryId )\n\t\t\t\t\t? categories.get( patternCategoryId ).slug\n\t\t\t\t\t: patternCategoryId\n\t\t),\n\t} ),\n\ttermLabels: patternPost.wp_pattern_category.map( ( patternCategoryId ) =>\n\t\tcategories?.get( patternCategoryId )\n\t\t\t? categories.get( patternCategoryId ).label\n\t\t\t: patternCategoryId\n\t),\n\tid: patternPost.id,\n\tname: patternPost.slug,\n\tsyncStatus: patternPost.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,\n\ttitle: patternPost.title.raw,\n\ttype: patternPost.type,\n\tpatternPost,\n} );\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst {\n\t\t\tgetEntityRecords,\n\t\t\tisResolving: isResolvingSelector,\n\t\t\tgetUserPatternCategories,\n\t\t} = select( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst patternPosts = getEntityRecords(\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery\n\t\t);\n\t\tconst userPatternCategories = getUserPatternCategories();\n\t\tconst categories = new Map();\n\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\tcategories.set( userCategory.id, userCategory )\n\t\t);\n\t\tlet patterns = patternPosts\n\t\t\t? patternPosts.map( ( record ) =>\n\t\t\t\t\tconvertPatternPostToItem( record, categories )\n\t\t\t )\n\t\t\t: EMPTY_PATTERN_LIST;\n\n\t\tconst isResolving = isResolvingSelector( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery,\n\t\t] );\n\n\t\tif ( syncStatus ) {\n\t\t\tpatterns = patterns.filter(\n\t\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t\t);\n\t\t}\n\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t\t// catch-all category for user created patterns, so it has\n\t\t\t// to be in the category.\n\t\t\thasCategory: () => true,\n\t\t} );\n\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving,\n\t\t\tcategories: userPatternCategories,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords( 'postType', PATTERN_TYPES.user, {\n\t\t\tper_page: -1,\n\t\t} ),\n\t\tselect( coreStore ).isResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( coreStore ).getUserPatternCategories(),\n\t]\n);\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( categoryType === PATTERN_TYPES.theme ) {\n\t\t\t\treturn selectPatterns( select, categoryId, syncStatus, search );\n\t\t\t} else if ( categoryType === PATTERN_TYPES.user ) {\n\t\t\t\treturn selectUserPatterns( select, syncStatus, search );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpatterns: EMPTY_PATTERN_LIST,\n\t\t\t\tisResolving: false,\n\t\t\t};\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n"],"mappings":"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"}
@@ -4,10 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.renameTemplateAction = exports.deleteTemplateAction = void 0;
8
- exports.useResetTemplateAction = useResetTemplateAction;
7
+ exports.resetTemplateAction = exports.renameTemplateAction = exports.deleteTemplateAction = void 0;
9
8
  var _react = require("react");
10
- var _icons = require("@wordpress/icons");
11
9
  var _i18n = require("@wordpress/i18n");
12
10
  var _data = require("@wordpress/data");
13
11
  var _element = require("@wordpress/element");
@@ -28,58 +26,74 @@ var _constants = require("../../utils/constants");
28
26
  * Internal dependencies
29
27
  */
30
28
 
31
- function useResetTemplateAction() {
32
- const {
33
- revertTemplate
34
- } = (0, _data.useDispatch)(_store.store);
35
- const {
36
- saveEditedEntityRecord
37
- } = (0, _data.useDispatch)(_coreData.store);
38
- const {
39
- createSuccessNotice,
40
- createErrorNotice
41
- } = (0, _data.useDispatch)(_notices.store);
42
- return (0, _element.useMemo)(() => ({
43
- id: 'reset-template',
44
- label: (0, _i18n.__)('Reset'),
45
- isPrimary: true,
46
- icon: _icons.backup,
47
- isEligible: _isTemplateRevertable.default,
48
- supportsBulk: true,
49
- async callback(templates) {
29
+ const resetTemplateAction = exports.resetTemplateAction = {
30
+ id: 'reset-template',
31
+ label: (0, _i18n.__)('Clear customizations'),
32
+ isEligible: _isTemplateRevertable.default,
33
+ supportsBulk: true,
34
+ hideModalHeader: true,
35
+ RenderModal: ({
36
+ items,
37
+ closeModal,
38
+ onPerform
39
+ }) => {
40
+ const {
41
+ revertTemplate
42
+ } = (0, _data.useDispatch)(_store.store);
43
+ const {
44
+ saveEditedEntityRecord
45
+ } = (0, _data.useDispatch)(_coreData.store);
46
+ const {
47
+ createSuccessNotice,
48
+ createErrorNotice
49
+ } = (0, _data.useDispatch)(_notices.store);
50
+ const onConfirm = async () => {
50
51
  try {
51
- for (const template of templates) {
52
+ for (const template of items) {
52
53
  await revertTemplate(template, {
53
54
  allowUndo: false
54
55
  });
55
56
  await saveEditedEntityRecord('postType', template.type, template.id);
56
57
  }
57
- createSuccessNotice(templates.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
58
- (0, _i18n.__)('%s items reverted.'), templates.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
59
- (0, _i18n.__)('"%s" reverted.'), (0, _htmlEntities.decodeEntities)(templates[0].title.rendered)), {
58
+ createSuccessNotice(items.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
59
+ (0, _i18n.__)('%s items reverted.'), items.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
60
+ (0, _i18n.__)('"%s" reverted.'), (0, _htmlEntities.decodeEntities)(items[0].title.rendered)), {
60
61
  type: 'snackbar',
61
62
  id: 'edit-site-template-reverted'
62
63
  });
63
64
  } catch (error) {
64
65
  let fallbackErrorMessage;
65
- if (templates[0].type === _constants.TEMPLATE_POST_TYPE) {
66
- fallbackErrorMessage = templates.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template.') : (0, _i18n.__)('An error occurred while reverting the templates.');
66
+ if (items[0].type === _constants.TEMPLATE_POST_TYPE) {
67
+ fallbackErrorMessage = items.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template.') : (0, _i18n.__)('An error occurred while reverting the templates.');
67
68
  } else {
68
- fallbackErrorMessage = templates.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template part.') : (0, _i18n.__)('An error occurred while reverting the template parts.');
69
+ fallbackErrorMessage = items.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template part.') : (0, _i18n.__)('An error occurred while reverting the template parts.');
69
70
  }
70
71
  const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
71
72
  createErrorNotice(errorMessage, {
72
73
  type: 'snackbar'
73
74
  });
74
75
  }
75
- }
76
- }), [createErrorNotice, createSuccessNotice, revertTemplate, saveEditedEntityRecord]);
77
- }
76
+ };
77
+ return (0, _react.createElement)(_components.__experimentalVStack, {
78
+ spacing: "5"
79
+ }, (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('Are you sure you want to clear these customizations?')), (0, _react.createElement)(_components.__experimentalHStack, {
80
+ justify: "right"
81
+ }, (0, _react.createElement)(_components.Button, {
82
+ variant: "tertiary",
83
+ onClick: closeModal
84
+ }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
85
+ variant: "primary",
86
+ onClick: async () => {
87
+ await onConfirm(items);
88
+ onPerform?.();
89
+ closeModal();
90
+ }
91
+ }, (0, _i18n.__)('Clear'))));
92
+ }
93
+ };
78
94
  const deleteTemplateAction = exports.deleteTemplateAction = {
79
95
  id: 'delete-template',
80
96
  label: (0, _i18n.__)('Delete'),
81
- isPrimary: true,
82
- icon: _icons.trash,
83
97
  isEligible: _isTemplateRemovable.default,
84
98
  supportsBulk: true,
85
99
  hideModalHeader: true,
@@ -108,9 +122,7 @@ const deleteTemplateAction = exports.deleteTemplateAction = {
108
122
  await removeTemplates(templates, {
109
123
  allowUndo: false
110
124
  });
111
- if (onPerform) {
112
- onPerform();
113
- }
125
+ onPerform?.();
114
126
  closeModal();
115
127
  }
116
128
  }, (0, _i18n.__)('Delete'))));
@@ -157,8 +169,6 @@ const renameTemplateAction = exports.renameTemplateAction = {
157
169
  {
158
170
  throwOnError: true
159
171
  });
160
- // TODO: this action will be reused in template parts list, so
161
- // let's keep this for a bit, even it's always a `template` now.
162
172
  createSuccessNotice(template.type === _constants.TEMPLATE_POST_TYPE ? (0, _i18n.__)('Template renamed.') : (0, _i18n.__)('Template part renamed.'), {
163
173
  type: 'snackbar'
164
174
  });
@@ -176,6 +186,7 @@ const renameTemplateAction = exports.renameTemplateAction = {
176
186
  spacing: "5"
177
187
  }, (0, _react.createElement)(_components.TextControl, {
178
188
  __nextHasNoMarginBottom: true,
189
+ __next40pxDefaultSize: true,
179
190
  label: (0, _i18n.__)('Name'),
180
191
  value: editedTitle,
181
192
  onChange: setEditedTitle,
@@ -184,10 +195,12 @@ const renameTemplateAction = exports.renameTemplateAction = {
184
195
  justify: "right"
185
196
  }, (0, _react.createElement)(_components.Button, {
186
197
  variant: "tertiary",
187
- onClick: closeModal
198
+ onClick: closeModal,
199
+ __next40pxDefaultSize: true
188
200
  }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
189
201
  variant: "primary",
190
- type: "submit"
202
+ type: "submit",
203
+ __next40pxDefaultSize: true
191
204
  }, (0, _i18n.__)('Save')))));
192
205
  }
193
206
  };