@wordpress/edit-site 6.2.0 → 6.3.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 (245) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/{add-new-page → add-new-post}/index.js +21 -17
  3. package/build/components/add-new-post/index.js.map +1 -0
  4. package/build/components/block-editor/use-site-editor-settings.js +5 -3
  5. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  6. package/build/components/editor/index.js +21 -3
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/global-styles/background-panel.js +0 -5
  9. package/build/components/global-styles/background-panel.js.map +1 -1
  10. package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
  11. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  12. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  13. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  14. package/build/components/global-styles/hooks.js +0 -40
  15. package/build/components/global-styles/hooks.js.map +1 -1
  16. package/build/components/global-styles/preview-typography.js +47 -0
  17. package/build/components/global-styles/preview-typography.js.map +1 -0
  18. package/build/components/global-styles/screen-block.js +14 -0
  19. package/build/components/global-styles/screen-block.js.map +1 -1
  20. package/build/components/global-styles/screen-layout.js +5 -1
  21. package/build/components/global-styles/screen-layout.js.map +1 -1
  22. package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  23. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  24. package/build/components/global-styles/shadows-edit-panel.js +1 -2
  25. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  26. package/build/components/global-styles/style-variations-container.js +5 -5
  27. package/build/components/global-styles/style-variations-container.js.map +1 -1
  28. package/build/components/global-styles/typography-elements.js +0 -2
  29. package/build/components/global-styles/typography-elements.js.map +1 -1
  30. package/build/components/global-styles/variations/variation.js +4 -4
  31. package/build/components/global-styles/variations/variation.js.map +1 -1
  32. package/build/components/global-styles/variations/variations-color.js +4 -3
  33. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  34. package/build/components/global-styles/variations/variations-typography.js +14 -28
  35. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  36. package/build/components/global-styles-sidebar/index.js +2 -2
  37. package/build/components/global-styles-sidebar/index.js.map +1 -1
  38. package/build/components/layout/index.js +16 -8
  39. package/build/components/layout/index.js.map +1 -1
  40. package/build/components/layout/router.js +20 -41
  41. package/build/components/layout/router.js.map +1 -1
  42. package/build/components/page-patterns/index.js +43 -39
  43. package/build/components/page-patterns/index.js.map +1 -1
  44. package/build/components/page-patterns/search-items.js +29 -4
  45. package/build/components/page-patterns/search-items.js.map +1 -1
  46. package/build/components/page-patterns/use-patterns.js +22 -55
  47. package/build/components/page-patterns/use-patterns.js.map +1 -1
  48. package/build/components/page-templates/index.js +18 -19
  49. package/build/components/page-templates/index.js.map +1 -1
  50. package/build/components/pagination/index.js +4 -4
  51. package/build/components/pagination/index.js.map +1 -1
  52. package/build/components/posts-app/index.js +11 -17
  53. package/build/components/posts-app/index.js.map +1 -1
  54. package/build/components/{page-pages/index.js → posts-app/posts-list.js} +135 -40
  55. package/build/components/posts-app/posts-list.js.map +1 -0
  56. package/build/components/posts-app/router.js +85 -0
  57. package/build/components/posts-app/router.js.map +1 -0
  58. package/build/components/revisions/index.js +10 -7
  59. package/build/components/revisions/index.js.map +1 -1
  60. package/build/components/save-panel/index.js +1 -1
  61. package/build/components/save-panel/index.js.map +1 -1
  62. package/build/components/sidebar-dataviews/add-new-view.js +4 -1
  63. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  64. package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  65. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  66. package/build/components/sidebar-dataviews/default-views.js +98 -84
  67. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  68. package/build/components/sidebar-dataviews/index.js +4 -1
  69. package/build/components/sidebar-dataviews/index.js.map +1 -1
  70. package/build/components/sidebar-navigation-screen-global-styles/index.js +3 -3
  71. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  72. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  73. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  74. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  75. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  76. package/build/components/site-hub/index.js +81 -1
  77. package/build/components/site-hub/index.js.map +1 -1
  78. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  79. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  80. package/build/hooks/push-changes-to-global-styles/index.js +1 -1
  81. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  82. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
  83. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  84. package/build/index.js +6 -0
  85. package/build/index.js.map +1 -1
  86. package/build/posts.js +57 -2
  87. package/build/posts.js.map +1 -1
  88. package/build/store/private-actions.js +7 -2
  89. package/build/store/private-actions.js.map +1 -1
  90. package/build-module/components/{add-new-page → add-new-post}/index.js +21 -17
  91. package/build-module/components/add-new-post/index.js.map +1 -0
  92. package/build-module/components/block-editor/use-site-editor-settings.js +5 -3
  93. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  94. package/build-module/components/editor/index.js +21 -3
  95. package/build-module/components/editor/index.js.map +1 -1
  96. package/build-module/components/global-styles/background-panel.js +0 -5
  97. package/build-module/components/global-styles/background-panel.js.map +1 -1
  98. package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
  99. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  100. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  101. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  102. package/build-module/components/global-styles/hooks.js +0 -38
  103. package/build-module/components/global-styles/hooks.js.map +1 -1
  104. package/build-module/components/global-styles/preview-typography.js +39 -0
  105. package/build-module/components/global-styles/preview-typography.js.map +1 -0
  106. package/build-module/components/global-styles/screen-block.js +15 -0
  107. package/build-module/components/global-styles/screen-block.js.map +1 -1
  108. package/build-module/components/global-styles/screen-layout.js +5 -1
  109. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  110. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  111. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  112. package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
  113. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  114. package/build-module/components/global-styles/style-variations-container.js +6 -6
  115. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  116. package/build-module/components/global-styles/typography-elements.js +0 -2
  117. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  118. package/build-module/components/global-styles/variations/variation.js +5 -5
  119. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  120. package/build-module/components/global-styles/variations/variations-color.js +4 -3
  121. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  122. package/build-module/components/global-styles/variations/variations-typography.js +16 -29
  123. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  124. package/build-module/components/global-styles-sidebar/index.js +2 -2
  125. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  126. package/build-module/components/layout/index.js +14 -8
  127. package/build-module/components/layout/index.js.map +1 -1
  128. package/build-module/components/layout/router.js +20 -41
  129. package/build-module/components/layout/router.js.map +1 -1
  130. package/build-module/components/page-patterns/index.js +44 -40
  131. package/build-module/components/page-patterns/index.js.map +1 -1
  132. package/build-module/components/page-patterns/search-items.js +28 -4
  133. package/build-module/components/page-patterns/search-items.js.map +1 -1
  134. package/build-module/components/page-patterns/use-patterns.js +23 -56
  135. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  136. package/build-module/components/page-templates/index.js +18 -19
  137. package/build-module/components/page-templates/index.js.map +1 -1
  138. package/build-module/components/pagination/index.js +4 -4
  139. package/build-module/components/pagination/index.js.map +1 -1
  140. package/build-module/components/posts-app/index.js +11 -17
  141. package/build-module/components/posts-app/index.js.map +1 -1
  142. package/build-module/components/{page-pages/index.js → posts-app/posts-list.js} +134 -39
  143. package/build-module/components/posts-app/posts-list.js.map +1 -0
  144. package/build-module/components/posts-app/router.js +77 -0
  145. package/build-module/components/posts-app/router.js.map +1 -0
  146. package/build-module/components/revisions/index.js +10 -7
  147. package/build-module/components/revisions/index.js.map +1 -1
  148. package/build-module/components/save-panel/index.js +1 -1
  149. package/build-module/components/save-panel/index.js.map +1 -1
  150. package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
  151. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  152. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  153. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  154. package/build-module/components/sidebar-dataviews/default-views.js +96 -83
  155. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  156. package/build-module/components/sidebar-dataviews/index.js +5 -2
  157. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  158. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +3 -3
  159. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  160. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  161. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  162. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  163. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  164. package/build-module/components/site-hub/index.js +81 -1
  165. package/build-module/components/site-hub/index.js.map +1 -1
  166. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  167. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  168. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -1
  169. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  170. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
  171. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  172. package/build-module/index.js +7 -2
  173. package/build-module/index.js.map +1 -1
  174. package/build-module/posts.js +57 -2
  175. package/build-module/posts.js.map +1 -1
  176. package/build-module/store/private-actions.js +7 -2
  177. package/build-module/store/private-actions.js.map +1 -1
  178. package/build-style/posts-rtl.css +108 -28
  179. package/build-style/posts.css +108 -28
  180. package/build-style/style-rtl.css +112 -144
  181. package/build-style/style.css +112 -144
  182. package/package.json +41 -41
  183. package/src/components/{add-new-page → add-new-post}/index.js +28 -22
  184. package/src/components/block-editor/use-site-editor-settings.js +33 -28
  185. package/src/components/editor/index.js +21 -5
  186. package/src/components/global-styles/background-panel.js +0 -8
  187. package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
  188. package/src/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  189. package/src/components/global-styles/font-library-modal/style.scss +17 -10
  190. package/src/components/global-styles/hooks.js +0 -41
  191. package/src/components/global-styles/preview-typography.js +39 -0
  192. package/src/components/global-styles/screen-block.js +22 -0
  193. package/src/components/global-styles/screen-layout.js +5 -1
  194. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  195. package/src/components/global-styles/shadows-edit-panel.js +1 -2
  196. package/src/components/global-styles/style-variations-container.js +10 -7
  197. package/src/components/global-styles/typography-elements.js +0 -4
  198. package/src/components/global-styles/variations/variation.js +5 -5
  199. package/src/components/global-styles/variations/variations-color.js +5 -3
  200. package/src/components/global-styles/variations/variations-typography.js +15 -32
  201. package/src/components/global-styles-sidebar/index.js +2 -2
  202. package/src/components/layout/index.js +13 -4
  203. package/src/components/layout/router.js +20 -36
  204. package/src/components/layout/style.scss +12 -0
  205. package/src/components/page-patterns/index.js +47 -56
  206. package/src/components/page-patterns/search-items.js +37 -3
  207. package/src/components/page-patterns/style.scss +1 -8
  208. package/src/components/page-patterns/use-patterns.js +43 -82
  209. package/src/components/page-templates/index.js +17 -19
  210. package/src/components/page-templates/style.scss +1 -6
  211. package/src/components/pagination/index.js +4 -4
  212. package/src/components/posts-app/index.js +9 -11
  213. package/src/components/{page-pages/index.js → posts-app/posts-list.js} +126 -39
  214. package/src/components/posts-app/router.js +69 -0
  215. package/src/components/{page-pages → posts-app}/style.scss +22 -8
  216. package/src/components/revisions/index.js +9 -1
  217. package/src/components/save-panel/index.js +1 -1
  218. package/src/components/sidebar/style.scss +6 -0
  219. package/src/components/sidebar-dataviews/add-new-view.js +2 -1
  220. package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  221. package/src/components/sidebar-dataviews/default-views.js +110 -97
  222. package/src/components/sidebar-dataviews/index.js +3 -3
  223. package/src/components/sidebar-navigation-screen-global-styles/index.js +7 -6
  224. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +2 -1
  225. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
  226. package/src/components/site-hub/index.js +84 -1
  227. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
  228. package/src/hooks/push-changes-to-global-styles/index.js +1 -1
  229. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
  230. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
  231. package/src/index.js +8 -1
  232. package/src/posts.js +63 -2
  233. package/src/posts.scss +9 -0
  234. package/src/store/private-actions.js +7 -3
  235. package/src/style.scss +1 -2
  236. package/build/components/add-new-page/index.js.map +0 -1
  237. package/build/components/page-pages/index.js.map +0 -1
  238. package/build/components/table/index.js +0 -35
  239. package/build/components/table/index.js.map +0 -1
  240. package/build-module/components/add-new-page/index.js.map +0 -1
  241. package/build-module/components/page-pages/index.js.map +0 -1
  242. package/build-module/components/table/index.js +0 -30
  243. package/build-module/components/table/index.js.map +0 -1
  244. package/src/components/table/index.js +0 -33
  245. package/src/components/table/style.scss +0 -38
@@ -1 +1 @@
1
- {"version":3,"names":["_router","require","_i18n","_element","_lockUnlock","_hooks","_editor","_interopRequireDefault","_pagePages","_pagePatterns","_pageTemplates","_sidebarNavigationScreen","_sidebarNavigationScreenGlobalStyles","_sidebarNavigationScreenMain","_sidebarNavigationScreenNavigationMenus","_sidebarNavigationScreenTemplatesBrowse","_sidebarNavigationScreenPatterns","_sidebarNavigationScreenNavigationMenu","_sidebarDataviews","_constants","_jsxRuntime","useLocation","useHistory","unlock","routerPrivateApis","useRedirectOldPaths","history","params","useEffect","postType","path","categoryType","rest","replace","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_TYPES","user","NAVIGATION_POST_TYPE","useLayoutAreas","isSiteEditorLoading","useIsSiteEditorLoading","postId","layout","isCustom","canvas","isListLayout","key","areas","sidebar","jsx","default","title","__","backPath","content","preview","isLoading","mobile","widths","undefined","includes"],"sources":["@wordpress/edit-site/src/components/layout/router.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { useIsSiteEditorLoading } from './hooks';\nimport Editor from '../editor';\nimport PagePages from '../page-pages';\nimport PagePatterns from '../page-patterns';\nimport PageTemplates from '../page-templates';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport SidebarNavigationScreenGlobalStyles from '../sidebar-navigation-screen-global-styles';\nimport SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';\nimport SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';\nimport SidebarNavigationScreenTemplatesBrowse from '../sidebar-navigation-screen-templates-browse';\nimport SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';\nimport SidebarNavigationScreenNavigationMenu from '../sidebar-navigation-screen-navigation-menu';\nimport DataViewsSidebarContent from '../sidebar-dataviews';\nimport {\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction useRedirectOldPaths() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tuseEffect( () => {\n\t\tconst { postType, path, categoryType, ...rest } = params;\n\n\t\tif ( path === '/wp_template_part/all' ) {\n\t\t\thistory.replace( { postType: TEMPLATE_PART_POST_TYPE } );\n\t\t}\n\n\t\tif ( path === '/page' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType: 'page',\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\n\t\tif ( path === '/wp_template' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\n\t\tif ( path === '/patterns' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType:\n\t\t\t\t\tcategoryType === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t? TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t: PATTERN_TYPES.user,\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\n\t\tif ( path === '/navigation' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType: NAVIGATION_POST_TYPE,\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\t}, [ history, params ] );\n}\n\nexport default function useLayoutAreas() {\n\tconst isSiteEditorLoading = useIsSiteEditorLoading();\n\tconst { params } = useLocation();\n\tconst { postType, postId, path, layout, isCustom, canvas } = params;\n\tuseRedirectOldPaths();\n\n\t// Page list\n\tif ( postType === 'page' ) {\n\t\tconst isListLayout = layout === 'list' || ! layout;\n\t\treturn {\n\t\t\tkey: 'pages',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreen\n\t\t\t\t\t\ttitle={ __( 'Pages' ) }\n\t\t\t\t\t\tbackPath={ {} }\n\t\t\t\t\t\tcontent={ <DataViewsSidebarContent /> }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tcontent: <PagePages />,\n\t\t\t\tpreview: ( isListLayout || canvas === 'edit' ) && (\n\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t),\n\t\t\t\tmobile:\n\t\t\t\t\tcanvas === 'edit' ? (\n\t\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<PagePages />\n\t\t\t\t\t),\n\t\t\t},\n\t\t\twidths: {\n\t\t\t\tcontent: isListLayout ? 380 : undefined,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Templates\n\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\tconst isListLayout = isCustom !== 'true' && layout === 'list';\n\t\treturn {\n\t\t\tkey: 'templates',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreenTemplatesBrowse backPath={ {} } />\n\t\t\t\t),\n\t\t\t\tcontent: <PageTemplates />,\n\t\t\t\tpreview: ( isListLayout || canvas === 'edit' ) && (\n\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t),\n\t\t\t\tmobile: <PageTemplates />,\n\t\t\t},\n\t\t\twidths: {\n\t\t\t\tcontent: isListLayout ? 380 : undefined,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Patterns\n\tif (\n\t\t[ TEMPLATE_PART_POST_TYPE, PATTERN_TYPES.user ].includes( postType )\n\t) {\n\t\treturn {\n\t\t\tkey: 'patterns',\n\t\t\tareas: {\n\t\t\t\tsidebar: <SidebarNavigationScreenPatterns backPath={ {} } />,\n\t\t\t\tcontent: <PagePatterns />,\n\t\t\t\tmobile: <PagePatterns />,\n\t\t\t\tpreview: canvas === 'edit' && (\n\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n\n\t// Styles\n\tif ( path === '/wp_global_styles' ) {\n\t\treturn {\n\t\t\tkey: 'styles',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreenGlobalStyles backPath={ {} } />\n\t\t\t\t),\n\t\t\t\tpreview: <Editor isLoading={ isSiteEditorLoading } />,\n\t\t\t\tmobile: canvas === 'edit' && (\n\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n\n\t// Navigation\n\tif ( postType === NAVIGATION_POST_TYPE ) {\n\t\tif ( postId ) {\n\t\t\treturn {\n\t\t\t\tkey: 'navigation',\n\t\t\t\tareas: {\n\t\t\t\t\tsidebar: (\n\t\t\t\t\t\t<SidebarNavigationScreenNavigationMenu\n\t\t\t\t\t\t\tbackPath={ { postType: NAVIGATION_POST_TYPE } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tpreview: <Editor isLoading={ isSiteEditorLoading } />,\n\t\t\t\t\tmobile: canvas === 'edit' && (\n\t\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tkey: 'navigation',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreenNavigationMenus backPath={ {} } />\n\t\t\t\t),\n\t\t\t\tpreview: <Editor isLoading={ isSiteEditorLoading } />,\n\t\t\t\tmobile: canvas === 'edit' && (\n\t\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n\n\t// Fallback shows the home page preview\n\treturn {\n\t\tkey: 'default',\n\t\tareas: {\n\t\t\tsidebar: <SidebarNavigationScreenMain />,\n\t\t\tpreview: <Editor isLoading={ isSiteEditorLoading } />,\n\t\t\tmobile: canvas === 'edit' && (\n\t\t\t\t<Editor isLoading={ isSiteEditorLoading } />\n\t\t\t),\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_router","require","_i18n","_element","_lockUnlock","_editor","_interopRequireDefault","_postsList","_pagePatterns","_pageTemplates","_sidebarNavigationScreen","_sidebarNavigationScreenGlobalStyles","_sidebarNavigationScreenMain","_sidebarNavigationScreenNavigationMenus","_sidebarNavigationScreenTemplatesBrowse","_sidebarNavigationScreenPatterns","_sidebarNavigationScreenNavigationMenu","_sidebarDataviews","_constants","_jsxRuntime","useLocation","useHistory","unlock","routerPrivateApis","useRedirectOldPaths","history","params","useEffect","postType","path","categoryType","rest","replace","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_TYPES","user","NAVIGATION_POST_TYPE","useLayoutAreas","postId","layout","isCustom","canvas","hasEditCanvasMode","isListLayout","key","areas","sidebar","jsx","default","title","__","backPath","content","preview","mobile","widths","undefined","includes"],"sources":["@wordpress/edit-site/src/components/layout/router.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Editor from '../editor';\nimport PostsList from '../posts-app/posts-list';\nimport PagePatterns from '../page-patterns';\nimport PageTemplates from '../page-templates';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport SidebarNavigationScreenGlobalStyles from '../sidebar-navigation-screen-global-styles';\nimport SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';\nimport SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';\nimport SidebarNavigationScreenTemplatesBrowse from '../sidebar-navigation-screen-templates-browse';\nimport SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';\nimport SidebarNavigationScreenNavigationMenu from '../sidebar-navigation-screen-navigation-menu';\nimport DataViewsSidebarContent from '../sidebar-dataviews';\nimport {\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction useRedirectOldPaths() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tuseEffect( () => {\n\t\tconst { postType, path, categoryType, ...rest } = params;\n\n\t\tif ( path === '/wp_template_part/all' ) {\n\t\t\thistory.replace( { postType: TEMPLATE_PART_POST_TYPE } );\n\t\t}\n\n\t\tif ( path === '/page' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType: 'page',\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\n\t\tif ( path === '/wp_template' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\n\t\tif ( path === '/patterns' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType:\n\t\t\t\t\tcategoryType === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t? TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t: PATTERN_TYPES.user,\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\n\t\tif ( path === '/navigation' ) {\n\t\t\thistory.replace( {\n\t\t\t\tpostType: NAVIGATION_POST_TYPE,\n\t\t\t\t...rest,\n\t\t\t} );\n\t\t}\n\t}, [ history, params ] );\n}\n\nexport default function useLayoutAreas() {\n\tconst { params } = useLocation();\n\tconst { postType, postId, path, layout, isCustom, canvas } = params;\n\tconst hasEditCanvasMode = canvas === 'edit';\n\tuseRedirectOldPaths();\n\n\t// Page list\n\tif ( postType === 'page' ) {\n\t\tconst isListLayout = layout === 'list' || ! layout;\n\t\treturn {\n\t\t\tkey: 'pages',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreen\n\t\t\t\t\t\ttitle={ __( 'Pages' ) }\n\t\t\t\t\t\tbackPath={ {} }\n\t\t\t\t\t\tcontent={ <DataViewsSidebarContent /> }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tcontent: <PostsList postType={ postType } />,\n\t\t\t\tpreview: ( isListLayout || hasEditCanvasMode ) && <Editor />,\n\t\t\t\tmobile: hasEditCanvasMode ? (\n\t\t\t\t\t<Editor />\n\t\t\t\t) : (\n\t\t\t\t\t<PostsList postType={ postType } />\n\t\t\t\t),\n\t\t\t},\n\t\t\twidths: {\n\t\t\t\tcontent: isListLayout ? 380 : undefined,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Templates\n\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\tconst isListLayout = isCustom !== 'true' && layout === 'list';\n\t\treturn {\n\t\t\tkey: 'templates',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreenTemplatesBrowse backPath={ {} } />\n\t\t\t\t),\n\t\t\t\tcontent: <PageTemplates />,\n\t\t\t\tpreview: ( isListLayout || hasEditCanvasMode ) && <Editor />,\n\t\t\t\tmobile: hasEditCanvasMode ? <Editor /> : <PageTemplates />,\n\t\t\t},\n\t\t\twidths: {\n\t\t\t\tcontent: isListLayout ? 380 : undefined,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Patterns\n\tif (\n\t\t[ TEMPLATE_PART_POST_TYPE, PATTERN_TYPES.user ].includes( postType )\n\t) {\n\t\treturn {\n\t\t\tkey: 'patterns',\n\t\t\tareas: {\n\t\t\t\tsidebar: <SidebarNavigationScreenPatterns backPath={ {} } />,\n\t\t\t\tcontent: <PagePatterns />,\n\t\t\t\tmobile: hasEditCanvasMode ? <Editor /> : <PagePatterns />,\n\t\t\t\tpreview: hasEditCanvasMode && <Editor />,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Styles\n\tif ( path === '/wp_global_styles' ) {\n\t\treturn {\n\t\t\tkey: 'styles',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreenGlobalStyles backPath={ {} } />\n\t\t\t\t),\n\t\t\t\tpreview: <Editor />,\n\t\t\t\tmobile: hasEditCanvasMode && <Editor />,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Navigation\n\tif ( postType === NAVIGATION_POST_TYPE ) {\n\t\tif ( postId ) {\n\t\t\treturn {\n\t\t\t\tkey: 'navigation',\n\t\t\t\tareas: {\n\t\t\t\t\tsidebar: (\n\t\t\t\t\t\t<SidebarNavigationScreenNavigationMenu\n\t\t\t\t\t\t\tbackPath={ { postType: NAVIGATION_POST_TYPE } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tpreview: <Editor />,\n\t\t\t\t\tmobile: hasEditCanvasMode && <Editor />,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tkey: 'navigation',\n\t\t\tareas: {\n\t\t\t\tsidebar: (\n\t\t\t\t\t<SidebarNavigationScreenNavigationMenus backPath={ {} } />\n\t\t\t\t),\n\t\t\t\tpreview: <Editor />,\n\t\t\t\tmobile: hasEditCanvasMode && <Editor />,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Fallback shows the home page preview\n\treturn {\n\t\tkey: 'default',\n\t\tareas: {\n\t\t\tsidebar: <SidebarNavigationScreenMain />,\n\t\t\tpreview: <Editor />,\n\t\t\tmobile: hasEditCanvasMode && <Editor />,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,8 @@ var _compose = require("@wordpress/compose");
16
16
  var _coreData = require("@wordpress/core-data");
17
17
  var _editor = require("@wordpress/editor");
18
18
  var _router = require("@wordpress/router");
19
+ var _blocks = require("@wordpress/blocks");
20
+ var _htmlEntities = require("@wordpress/html-entities");
19
21
  var _async = require("../async");
20
22
  var _page = _interopRequireDefault(require("../page"));
21
23
  var _constants = require("../../utils/constants");
@@ -26,6 +28,7 @@ var _header = _interopRequireDefault(require("./header"));
26
28
  var _link = require("../routes/link");
27
29
  var _hooks = require("../page-templates/hooks");
28
30
  var _dataviewsActions = require("../dataviews-actions");
31
+ var _searchItems = require("./search-items");
29
32
  var _jsxRuntime = require("react/jsx-runtime");
30
33
  /**
31
34
  * External dependencies
@@ -50,14 +53,18 @@ const {
50
53
  useLocation
51
54
  } = (0, _lockUnlock.unlock)(_router.privateApis);
52
55
  const EMPTY_ARRAY = [];
53
- const defaultConfigPerViewType = {
56
+ const defaultLayouts = {
54
57
  [_constants.LAYOUT_TABLE]: {
55
- primaryField: 'title'
58
+ layout: {
59
+ primaryField: 'title'
60
+ }
56
61
  },
57
62
  [_constants.LAYOUT_GRID]: {
58
- mediaField: 'preview',
59
- primaryField: 'title',
60
- badgeFields: ['sync-status']
63
+ layout: {
64
+ mediaField: 'preview',
65
+ primaryField: 'title',
66
+ badgeFields: ['sync-status']
67
+ }
61
68
  }
62
69
  };
63
70
  const DEFAULT_VIEW = {
@@ -65,10 +72,8 @@ const DEFAULT_VIEW = {
65
72
  search: '',
66
73
  page: 1,
67
74
  perPage: 20,
68
- hiddenFields: [],
69
- layout: {
70
- ...defaultConfigPerViewType[_constants.LAYOUT_GRID]
71
- },
75
+ layout: defaultLayouts[_constants.LAYOUT_GRID].layout,
76
+ fields: ['title', 'sync-status'],
72
77
  filters: []
73
78
  };
74
79
  const SYNC_FILTERS = [{
@@ -101,17 +106,24 @@ function Preview({
101
106
  viewType
102
107
  }) {
103
108
  const descriptionId = (0, _element.useId)();
109
+ const description = item.description || item?.excerpt?.raw;
104
110
  const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
105
111
  const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
106
- const isEmpty = !item.blocks?.length;
107
112
  const [backgroundColor] = useGlobalStyle('color.background');
108
113
  const {
109
114
  onClick
110
115
  } = (0, _link.useLink)({
111
116
  postType: item.type,
112
- postId: isUserPattern ? item.id : item.name,
117
+ postId: isUserPattern || isTemplatePart ? item.id : item.name,
113
118
  canvas: 'edit'
114
119
  });
120
+ const blocks = (0, _element.useMemo)(() => {
121
+ var _item$blocks;
122
+ return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : (0, _blocks.parse)(item.content.raw, {
123
+ __unstableSkipMigrationLogs: true
124
+ });
125
+ }, [item?.content?.raw, item.blocks]);
126
+ const isEmpty = !blocks?.length;
115
127
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
116
128
  className: `page-patterns-preview-field is-viewtype-${viewType}`,
117
129
  style: {
@@ -120,17 +132,17 @@ function Preview({
120
132
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(PreviewWrapper, {
121
133
  item: item,
122
134
  onClick: onClick,
123
- ariaDescribedBy: item.description ? descriptionId : undefined,
135
+ ariaDescribedBy: !!description ? descriptionId : undefined,
124
136
  children: [isEmpty && isTemplatePart && (0, _i18n.__)('Empty template part'), isEmpty && !isTemplatePart && (0, _i18n.__)('Empty pattern'), !isEmpty && /*#__PURE__*/(0, _jsxRuntime.jsx)(_async.Async, {
125
137
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockPreview, {
126
- blocks: item.blocks,
138
+ blocks: blocks,
127
139
  viewportWidth: item.viewportWidth
128
140
  })
129
141
  })]
130
- }), item.description && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
142
+ }), !!description && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
131
143
  hidden: true,
132
144
  id: descriptionId,
133
- children: item.description
145
+ children: description
134
146
  })]
135
147
  });
136
148
  }
@@ -172,13 +184,15 @@ function Title({
172
184
  item
173
185
  }) {
174
186
  const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
187
+ const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
175
188
  const {
176
189
  onClick
177
190
  } = (0, _link.useLink)({
178
191
  postType: item.type,
179
- postId: isUserPattern ? item.id : item.name,
192
+ postId: isUserPattern || isTemplatePart ? item.id : item.name,
180
193
  canvas: 'edit'
181
194
  });
195
+ const title = (0, _htmlEntities.decodeEntities)((0, _searchItems.defaultGetTitle)(item));
182
196
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
183
197
  alignment: "center",
184
198
  justify: "flex-start",
@@ -188,14 +202,14 @@ function Title({
188
202
  gap: 0,
189
203
  justify: "left",
190
204
  className: "edit-site-patterns__pattern-title",
191
- children: item.type === _constants.PATTERN_TYPES.theme ? item.title : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
205
+ children: item.type === _constants.PATTERN_TYPES.theme ? title : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
192
206
  variant: "link",
193
207
  onClick: onClick
194
208
  // Required for the grid's roving tab index system.
195
209
  // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
196
210
  ,
197
211
  tabIndex: "-1",
198
- children: item.title || item.name
212
+ children: title
199
213
  })
200
214
  }), item.type === _constants.PATTERN_TYPES.theme && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
201
215
  placement: "top",
@@ -258,7 +272,6 @@ function DataviewsPatterns() {
258
272
  viewType: view.type
259
273
  }),
260
274
  enableSorting: false,
261
- enableHiding: false,
262
275
  width: '1%'
263
276
  }, {
264
277
  header: (0, _i18n.__)('Title'),
@@ -277,15 +290,14 @@ function DataviewsPatterns() {
277
290
  render: ({
278
291
  item
279
292
  }) => {
293
+ const syncStatus = 'wp_pattern_sync_status' in item ? item.wp_pattern_sync_status || _constants.PATTERN_SYNC_TYPES.full : _constants.PATTERN_SYNC_TYPES.unsynced;
280
294
  // User patterns can have their sync statuses checked directly.
281
295
  // Non-user patterns are all unsynced for the time being.
282
296
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
283
- className: `edit-site-patterns__field-sync-status-${item.syncStatus}`,
284
- children: (SYNC_FILTERS.find(({
285
- value
286
- }) => value === item.syncStatus) || SYNC_FILTERS.find(({
297
+ className: `edit-site-patterns__field-sync-status-${syncStatus}`,
298
+ children: SYNC_FILTERS.find(({
287
299
  value
288
- }) => value === _constants.PATTERN_SYNC_TYPES.unsynced)).label
300
+ }) => value === syncStatus).label
289
301
  });
290
302
  },
291
303
  elements: SYNC_FILTERS,
@@ -301,7 +313,7 @@ function DataviewsPatterns() {
301
313
  id: 'author',
302
314
  getValue: ({
303
315
  item
304
- }) => item.templatePart.author_text,
316
+ }) => item.author_text,
305
317
  render: ({
306
318
  item
307
319
  }) => {
@@ -356,17 +368,6 @@ function DataviewsPatterns() {
356
368
  }
357
369
  return [editAction, ...patternActions].filter(Boolean);
358
370
  }, [editAction, type, templatePartActions, patternActions]);
359
- const onChangeView = (0, _element.useCallback)(newView => {
360
- if (newView.type !== view.type) {
361
- newView = {
362
- ...newView,
363
- layout: {
364
- ...defaultConfigPerViewType[newView.type]
365
- }
366
- };
367
- }
368
- setView(newView);
369
- }, [view.type, setView]);
370
371
  const id = (0, _element.useId)();
371
372
  const settings = (0, _usePatternSettings.default)();
372
373
  // Wrap everything in a block editor provider.
@@ -388,11 +389,14 @@ function DataviewsPatterns() {
388
389
  fields: fields,
389
390
  actions: actions,
390
391
  data: data || EMPTY_ARRAY,
391
- getItemId: item => item.name,
392
+ getItemId: item => {
393
+ var _item$name;
394
+ return (_item$name = item.name) !== null && _item$name !== void 0 ? _item$name : item.id;
395
+ },
392
396
  isLoading: isResolving,
393
397
  view: view,
394
- onChangeView: onChangeView,
395
- supportedLayouts: [_constants.LAYOUT_GRID, _constants.LAYOUT_TABLE]
398
+ onChangeView: setView,
399
+ defaultLayouts: defaultLayouts
396
400
  })]
397
401
  })
398
402
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_coreData","_editor","_router","_async","_page","_constants","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","_hooks","_dataviewsActions","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","usePostActions","editorPrivateApis","useLocation","routerPrivateApis","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_TABLE","primaryField","LAYOUT_GRID","mediaField","badgeFields","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","jsx","className","PATTERN_TYPES","theme","undefined","title","Preview","viewType","descriptionId","useId","isUserPattern","user","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","backgroundColor","useLink","postType","postId","id","name","canvas","jsxs","style","Async","BlockPreview","viewportWidth","hidden","Author","isImageLoaded","setIsImageLoaded","useState","text","icon","imageUrl","useAddedBy","withIcon","LAYOUT_LIST","__experimentalHStack","alignment","spacing","clsx","onLoad","alt","src","Icon","Title","justify","Flex","as","gap","Button","variant","tabIndex","Tooltip","placement","lockSmall","size","DataviewsPatterns","params","categoryId","categoryIdFromURL","PATTERN_DEFAULT_CATEGORY","view","setView","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","syncStatus","records","useEntityRecords","per_page","authors","useMemo","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","fields","_fields","header","render","enableSorting","enableHiding","width","push","elements","filterBy","operators","OPERATOR_IS","isPrimary","getValue","templatePart","useEffect","data","paginationInfo","viewWithoutFilters","filterSortAndPaginate","templatePartActions","context","patternActions","editAction","useEditPostAction","actions","filter","Boolean","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\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 { Icon, lockSmall } from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { Async } from '../async';\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tOPERATOR_IS,\n} from '../../utils/constants';\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';\nimport { useAddedBy } from '../page-templates/hooks';\nimport { useEditPostAction } from '../dataviews-actions';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { usePostActions } = unlock( editorPrivateApis );\nconst { useLocation } = unlock( routerPrivateApis );\n\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\tbadgeFields: [ 'sync-status' ],\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [],\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', 'pattern (singular)' ),\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( 'Not synced', 'pattern (singular)' ),\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\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ item.type !== PATTERN_TYPES.theme ? onClick : undefined }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-disabled={ item.type === PATTERN_TYPES.theme }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\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\tcanvas: 'edit',\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\tstyle={ { backgroundColor } }\n\t\t>\n\t\t\t<PreviewWrapper\n\t\t\t\titem={ item }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tariaDescribedBy={ item.description ? descriptionId : undefined }\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<Async>\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</Async>\n\t\t\t\t) }\n\t\t\t</PreviewWrapper>\n\t\t\t{ item.description && (\n\t\t\t\t<div hidden id={ descriptionId }>\n\t\t\t\t\t{ item.description }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction Author( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Title( { item } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcanvas: 'edit',\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{ 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 {\n\t\tparams: { postType, categoryId: categoryIdFromURL },\n\t} = useLocation();\n\tconst type = postType || PATTERN_TYPES.user;\n\tconst categoryId = categoryIdFromURL || PATTERN_DEFAULT_CATEGORY;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\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( type, categoryId, {\n\t\tsearch: view.search,\n\t\tsyncStatus: viewSyncStatus,\n\t} );\n\n\tconst { records } = useEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, {\n\t\tper_page: -1,\n\t} );\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\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 item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t\twidth: '1%',\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 } ) => <Title item={ item } />,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\n\t\tif ( type === PATTERN_TYPES.user ) {\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\t<span\n\t\t\t\t\t\t\tclassName={ `edit-site-patterns__field-sync-status-${ item.syncStatus }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\t\t\t\tvalue === item.syncStatus\n\t\t\t\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\t\t\t\tvalue ===\n\t\t\t\t\t\t\t\t\t\t\tPATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t).label\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t);\n\t\t\t\t},\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} else if ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item.templatePart.author_text,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Author viewType={ view.type } item={ item } />;\n\t\t\t\t},\n\t\t\t\telements: authors,\n\t\t\t\tfilterBy: {\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t},\n\t\t\t\twidth: '1%',\n\t\t\t} );\n\t\t}\n\n\t\treturn _fields;\n\t}, [ view.type, type, authors ] );\n\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// Search is managed server-side as well as filters for patterns.\n\t\t// However, the author filter in template parts is done client-side.\n\t\tconst viewWithoutFilters = { ...view };\n\t\tdelete viewWithoutFilters.search;\n\t\tif ( type !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\tviewWithoutFilters.filters = [];\n\t\t}\n\t\treturn filterSortAndPaginate( patterns, viewWithoutFilters, fields );\n\t}, [ patterns, view, fields, type ] );\n\n\tconst templatePartActions = usePostActions( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tcontext: 'list',\n\t} );\n\tconst patternActions = usePostActions( {\n\t\tpostType: PATTERN_TYPES.user,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\n\tconst actions = useMemo( () => {\n\t\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\treturn [ editAction, ...templatePartActions ].filter( Boolean );\n\t\t}\n\t\treturn [ editAction, ...patternActions ].filter( Boolean );\n\t}, [ editAction, type, templatePartActions, patternActions ] );\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\tsupportedLayouts={ [ LAYOUT_GRID, LAYOUT_TABLE ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_coreData","_editor","_router","_blocks","_htmlEntities","_async","_page","_constants","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","_hooks","_dataviewsActions","_searchItems","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","usePostActions","editorPrivateApis","useLocation","routerPrivateApis","EMPTY_ARRAY","defaultLayouts","LAYOUT_TABLE","layout","primaryField","LAYOUT_GRID","mediaField","badgeFields","DEFAULT_VIEW","type","search","page","perPage","fields","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","PreviewWrapper","item","onClick","ariaDescribedBy","children","jsx","className","PATTERN_TYPES","theme","undefined","title","Preview","viewType","descriptionId","useId","excerpt","raw","isUserPattern","user","isTemplatePart","TEMPLATE_PART_POST_TYPE","backgroundColor","useLink","postType","postId","id","name","canvas","blocks","useMemo","_item$blocks","parse","content","__unstableSkipMigrationLogs","isEmpty","length","jsxs","style","Async","BlockPreview","viewportWidth","hidden","Author","isImageLoaded","setIsImageLoaded","useState","text","icon","imageUrl","useAddedBy","withIcon","LAYOUT_LIST","__experimentalHStack","alignment","spacing","clsx","onLoad","alt","src","Icon","Title","decodeEntities","defaultGetTitle","justify","Flex","as","gap","Button","variant","tabIndex","Tooltip","placement","lockSmall","size","DataviewsPatterns","params","categoryId","categoryIdFromURL","PATTERN_DEFAULT_CATEGORY","view","setView","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","syncStatus","records","useEntityRecords","per_page","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","_fields","header","render","enableSorting","width","enableHiding","push","wp_pattern_sync_status","elements","filterBy","operators","OPERATOR_IS","isPrimary","getValue","useEffect","data","paginationInfo","viewWithoutFilters","filterSortAndPaginate","templatePartActions","context","patternActions","editAction","useEditPostAction","actions","filter","Boolean","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","_item$name","isLoading","onChangeView"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState, useMemo, useId, useEffect } from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { Icon, lockSmall } from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { parse } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { Async } from '../async';\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tOPERATOR_IS,\n} from '../../utils/constants';\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';\nimport { useAddedBy } from '../page-templates/hooks';\nimport { useEditPostAction } from '../dataviews-actions';\nimport { defaultGetTitle } from './search-items';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { usePostActions } = unlock( editorPrivateApis );\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\nconst defaultLayouts = {\n\t[ LAYOUT_TABLE ]: {\n\t\tlayout: {\n\t\t\tprimaryField: 'title',\n\t\t},\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tlayout: {\n\t\t\tmediaField: 'preview',\n\t\t\tprimaryField: 'title',\n\t\t\tbadgeFields: [ 'sync-status' ],\n\t\t},\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tlayout: defaultLayouts[ LAYOUT_GRID ].layout,\n\tfields: [ 'title', 'sync-status' ],\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'pattern (singular)' ),\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( 'Not synced', 'pattern (singular)' ),\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\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ item.type !== PATTERN_TYPES.theme ? onClick : undefined }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-disabled={ item.type === PATTERN_TYPES.theme }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst descriptionId = useId();\n\tconst description = item.description || item?.excerpt?.raw;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern || isTemplatePart ? item.id : item.name,\n\t\tcanvas: 'edit',\n\t} );\n\tconst blocks = useMemo( () => {\n\t\treturn (\n\t\t\titem.blocks ??\n\t\t\tparse( item.content.raw, {\n\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t} )\n\t\t);\n\t}, [ item?.content?.raw, item.blocks ] );\n\tconst isEmpty = ! blocks?.length;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\tstyle={ { backgroundColor } }\n\t\t>\n\t\t\t<PreviewWrapper\n\t\t\t\titem={ item }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tariaDescribedBy={ !! description ? descriptionId : undefined }\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<Async>\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Async>\n\t\t\t\t) }\n\t\t\t</PreviewWrapper>\n\t\t\t{ !! description && (\n\t\t\t\t<div hidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction Author( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Title( { item } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern || isTemplatePart ? item.id : item.name,\n\t\tcanvas: 'edit',\n\t} );\n\tconst title = decodeEntities( defaultGetTitle( item ) );\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\ttitle\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{ title }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\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 {\n\t\tparams: { postType, categoryId: categoryIdFromURL },\n\t} = useLocation();\n\tconst type = postType || PATTERN_TYPES.user;\n\tconst categoryId = categoryIdFromURL || PATTERN_DEFAULT_CATEGORY;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\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( type, categoryId, {\n\t\tsearch: view.search,\n\t\tsyncStatus: viewSyncStatus,\n\t} );\n\n\tconst { records } = useEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, {\n\t\tper_page: -1,\n\t} );\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\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 item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\twidth: '1%',\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 } ) => <Title item={ item } />,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\n\t\tif ( type === PATTERN_TYPES.user ) {\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\tconst syncStatus =\n\t\t\t\t\t\t'wp_pattern_sync_status' in item\n\t\t\t\t\t\t\t? item.wp_pattern_sync_status ||\n\t\t\t\t\t\t\t PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t\t: PATTERN_SYNC_TYPES.unsynced;\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\t<span\n\t\t\t\t\t\t\tclassName={ `edit-site-patterns__field-sync-status-${ syncStatus }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t\t\t( { value } ) => value === syncStatus\n\t\t\t\t\t\t\t\t).label\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t);\n\t\t\t\t},\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} else if ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Author viewType={ view.type } item={ item } />;\n\t\t\t\t},\n\t\t\t\telements: authors,\n\t\t\t\tfilterBy: {\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t},\n\t\t\t\twidth: '1%',\n\t\t\t} );\n\t\t}\n\n\t\treturn _fields;\n\t}, [ view.type, type, authors ] );\n\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// Search is managed server-side as well as filters for patterns.\n\t\t// However, the author filter in template parts is done client-side.\n\t\tconst viewWithoutFilters = { ...view };\n\t\tdelete viewWithoutFilters.search;\n\t\tif ( type !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\tviewWithoutFilters.filters = [];\n\t\t}\n\t\treturn filterSortAndPaginate( patterns, viewWithoutFilters, fields );\n\t}, [ patterns, view, fields, type ] );\n\n\tconst templatePartActions = usePostActions( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tcontext: 'list',\n\t} );\n\tconst patternActions = usePostActions( {\n\t\tpostType: PATTERN_TYPES.user,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\n\tconst actions = useMemo( () => {\n\t\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\treturn [ editAction, ...templatePartActions ].filter( Boolean );\n\t\t}\n\t\treturn [ editAction, ...patternActions ].filter( Boolean );\n\t}, [ editAction, type, templatePartActions, patternActions ] );\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 ?? item.id }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ setView }\n\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.searchItems = void 0;
6
+ exports.searchItems = exports.defaultGetTitle = void 0;
7
7
  var _blockEditor = require("@wordpress/block-editor");
8
8
  var _lockUnlock = require("../../lock-unlock");
9
9
  var _constants = require("../../utils/constants");
@@ -26,9 +26,34 @@ const {
26
26
  */
27
27
 
28
28
  // Default search helpers.
29
- const defaultGetName = item => item.name || '';
30
- const defaultGetTitle = item => item.title;
31
- const defaultGetDescription = item => item.description || '';
29
+ const defaultGetName = item => {
30
+ if (item.type === _constants.PATTERN_TYPES.user) {
31
+ return item.slug;
32
+ }
33
+ if (item.type === _constants.TEMPLATE_PART_POST_TYPE) {
34
+ return '';
35
+ }
36
+ return item.name || '';
37
+ };
38
+ const defaultGetTitle = item => {
39
+ if (typeof item.title === 'string') {
40
+ return item.title;
41
+ }
42
+ if (item.title && item.title.rendered) {
43
+ return item.title.rendered;
44
+ }
45
+ if (item.title && item.title.raw) {
46
+ return item.title.raw;
47
+ }
48
+ return '';
49
+ };
50
+ exports.defaultGetTitle = defaultGetTitle;
51
+ const defaultGetDescription = item => {
52
+ if (item.type === _constants.PATTERN_TYPES.user) {
53
+ return item.excerpt.raw;
54
+ }
55
+ return item.description || '';
56
+ };
32
57
  const defaultGetKeywords = item => item.keywords || [];
33
58
  const defaultHasCategory = () => false;
34
59
  const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => {
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_lockUnlock","_constants","extractWords","getNormalizedSearchTerms","normalizeString","unlock","blockEditorPrivateApis","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","exports","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","TEMPLATE_PART_ALL_AREAS_CATEGORY","PATTERN_USER_CATEGORY","type","PATTERN_TYPES","user","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { extractWords, getNormalizedSearchTerms, normalizeString } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_ALL_AREAS_CATEGORY,\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\tcategoryId === TEMPLATE_PART_ALL_AREAS_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeString( searchTerm );\n\tconst normalizedTitle = normalizeString( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blockEditor","require","_lockUnlock","_constants","extractWords","getNormalizedSearchTerms","normalizeString","unlock","blockEditorPrivateApis","defaultGetName","item","type","PATTERN_TYPES","user","slug","TEMPLATE_PART_POST_TYPE","name","defaultGetTitle","title","rendered","raw","exports","defaultGetDescription","excerpt","description","defaultGetKeywords","keywords","defaultHasCategory","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","TEMPLATE_PART_ALL_AREAS_CATEGORY","PATTERN_USER_CATEGORY","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { extractWords, getNormalizedSearchTerms, normalizeString } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_ALL_AREAS_CATEGORY,\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => {\n\tif ( item.type === PATTERN_TYPES.user ) {\n\t\treturn item.slug;\n\t}\n\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\treturn '';\n\t}\n\n\treturn item.name || '';\n};\n\nexport const defaultGetTitle = ( item ) => {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn item.title;\n\t}\n\n\tif ( item.title && item.title.rendered ) {\n\t\treturn item.title.rendered;\n\t}\n\n\tif ( item.title && item.title.raw ) {\n\t\treturn item.title.raw;\n\t}\n\n\treturn '';\n};\n\nconst defaultGetDescription = ( item ) => {\n\tif ( item.type === PATTERN_TYPES.user ) {\n\t\treturn item.excerpt.raw;\n\t}\n\n\treturn item.description || '';\n};\n\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\tcategoryId === TEMPLATE_PART_ALL_AREAS_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeString( searchTerm );\n\tconst normalizedTitle = normalizeString( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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","ignoreList":[]}