@wordpress/edit-site 5.22.0 → 5.23.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 (355) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +86 -4
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/new-template.js +0 -7
  5. package/build/components/add-new-template/new-template.js.map +1 -1
  6. package/build/components/block-editor/use-site-editor-settings.js +54 -63
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/dataviews/add-filter.js +90 -0
  9. package/build/components/dataviews/add-filter.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +23 -4
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filters.js +36 -32
  13. package/build/components/dataviews/filters.js.map +1 -1
  14. package/build/components/dataviews/in-filter.js +22 -20
  15. package/build/components/dataviews/in-filter.js.map +1 -1
  16. package/build/components/dataviews/index.js +9 -2
  17. package/build/components/dataviews/index.js.map +1 -1
  18. package/build/components/dataviews/item-actions.js +81 -13
  19. package/build/components/dataviews/item-actions.js.map +1 -1
  20. package/build/components/dataviews/pagination.js +3 -2
  21. package/build/components/dataviews/pagination.js.map +1 -1
  22. package/build/components/dataviews/reset-filters.js +33 -0
  23. package/build/components/dataviews/reset-filters.js.map +1 -0
  24. package/build/components/dataviews/search.js +1 -0
  25. package/build/components/dataviews/search.js.map +1 -1
  26. package/build/components/dataviews/view-actions.js +27 -10
  27. package/build/components/dataviews/view-actions.js.map +1 -1
  28. package/build/components/dataviews/view-list.js +126 -5
  29. package/build/components/dataviews/view-list.js.map +1 -1
  30. package/build/components/dataviews/view-side-by-side.js +20 -0
  31. package/build/components/dataviews/view-side-by-side.js.map +1 -0
  32. package/build/components/editor/index.js +53 -53
  33. package/build/components/editor/index.js.map +1 -1
  34. package/build/components/global-styles/screen-revisions/index.js +42 -21
  35. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  36. package/build/components/global-styles/screen-root.js +3 -3
  37. package/build/components/global-styles/screen-root.js.map +1 -1
  38. package/build/components/global-styles/ui.js +3 -3
  39. package/build/components/global-styles/ui.js.map +1 -1
  40. package/build/components/global-styles-renderer/index.js +1 -1
  41. package/build/components/global-styles-renderer/index.js.map +1 -1
  42. package/build/components/header-edit-mode/document-tools/index.js +160 -0
  43. package/build/components/header-edit-mode/document-tools/index.js.map +1 -0
  44. package/build/components/header-edit-mode/index.js +48 -116
  45. package/build/components/header-edit-mode/index.js.map +1 -1
  46. package/build/components/header-edit-mode/more-menu/site-export.js +2 -6
  47. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  48. package/build/components/layout/index.js +4 -19
  49. package/build/components/layout/index.js.map +1 -1
  50. package/build/components/list/added-by.js +1 -0
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/page-content-focus-manager/back-to-page-notification.js +5 -10
  53. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  54. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
  55. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  56. package/build/components/page-main/index.js +2 -1
  57. package/build/components/page-main/index.js.map +1 -1
  58. package/build/components/page-pages/index.js +133 -78
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-pages/side-editor.js +25 -0
  61. package/build/components/page-pages/side-editor.js.map +1 -0
  62. package/build/components/page-patterns/grid-item.js +2 -2
  63. package/build/components/page-patterns/grid-item.js.map +1 -1
  64. package/build/components/page-patterns/patterns-list.js +3 -3
  65. package/build/components/page-patterns/patterns-list.js.map +1 -1
  66. package/build/components/page-patterns/use-patterns.js +1 -1
  67. package/build/components/page-patterns/use-patterns.js.map +1 -1
  68. package/build/components/page-templates/dataviews-templates.js +201 -0
  69. package/build/components/page-templates/dataviews-templates.js.map +1 -0
  70. package/build/components/page-templates/template-actions.js +168 -0
  71. package/build/components/page-templates/template-actions.js.map +1 -0
  72. package/build/components/sidebar/index.js +1 -2
  73. package/build/components/sidebar/index.js.map +1 -1
  74. package/build/components/sidebar-dataviews/add-new-view.js +124 -0
  75. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
  76. package/build/components/sidebar-dataviews/custom-dataviews-list.js +189 -0
  77. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  78. package/build/components/sidebar-dataviews/dataview-item.js +71 -0
  79. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
  80. package/build/components/sidebar-dataviews/default-views.js +60 -0
  81. package/build/components/sidebar-dataviews/default-views.js.map +1 -0
  82. package/build/components/sidebar-dataviews/index.js +21 -38
  83. package/build/components/sidebar-dataviews/index.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
  85. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +11 -11
  87. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  88. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  89. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  90. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +4 -12
  91. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  92. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
  93. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  94. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  95. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  96. package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
  97. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  98. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  99. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  100. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  101. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  102. package/build/components/sidebar-navigation-screen-page/page-details.js +3 -11
  103. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  104. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  105. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  106. package/build/components/site-hub/index.js +18 -6
  107. package/build/components/site-hub/index.js.map +1 -1
  108. package/build/components/start-template-options/index.js +12 -16
  109. package/build/components/start-template-options/index.js.map +1 -1
  110. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -49
  111. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  112. package/build/components/template-part-converter/convert-to-regular.js +1 -1
  113. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  114. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  115. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  116. package/build/hooks/template-part-edit.js +6 -2
  117. package/build/hooks/template-part-edit.js.map +1 -1
  118. package/build/index.js +0 -3
  119. package/build/index.js.map +1 -1
  120. package/build/store/actions.js +35 -82
  121. package/build/store/actions.js.map +1 -1
  122. package/build/store/selectors.js +25 -63
  123. package/build/store/selectors.js.map +1 -1
  124. package/build/utils/constants.js +3 -3
  125. package/build/utils/constants.js.map +1 -1
  126. package/build-module/components/actions/index.js +85 -5
  127. package/build-module/components/actions/index.js.map +1 -1
  128. package/build-module/components/add-new-template/new-template.js +0 -7
  129. package/build-module/components/add-new-template/new-template.js.map +1 -1
  130. package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
  131. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  132. package/build-module/components/dataviews/add-filter.js +83 -0
  133. package/build-module/components/dataviews/add-filter.js.map +1 -0
  134. package/build-module/components/dataviews/dataviews.js +22 -4
  135. package/build-module/components/dataviews/dataviews.js.map +1 -1
  136. package/build-module/components/dataviews/filters.js +34 -32
  137. package/build-module/components/dataviews/filters.js.map +1 -1
  138. package/build-module/components/dataviews/in-filter.js +20 -19
  139. package/build-module/components/dataviews/in-filter.js.map +1 -1
  140. package/build-module/components/dataviews/index.js +1 -1
  141. package/build-module/components/dataviews/index.js.map +1 -1
  142. package/build-module/components/dataviews/item-actions.js +84 -16
  143. package/build-module/components/dataviews/item-actions.js.map +1 -1
  144. package/build-module/components/dataviews/pagination.js +3 -2
  145. package/build-module/components/dataviews/pagination.js.map +1 -1
  146. package/build-module/components/dataviews/reset-filters.js +26 -0
  147. package/build-module/components/dataviews/reset-filters.js.map +1 -0
  148. package/build-module/components/dataviews/search.js +1 -0
  149. package/build-module/components/dataviews/search.js.map +1 -1
  150. package/build-module/components/dataviews/view-actions.js +28 -11
  151. package/build-module/components/dataviews/view-actions.js.map +1 -1
  152. package/build-module/components/dataviews/view-list.js +128 -7
  153. package/build-module/components/dataviews/view-list.js.map +1 -1
  154. package/build-module/components/dataviews/view-side-by-side.js +12 -0
  155. package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
  156. package/build-module/components/editor/index.js +57 -57
  157. package/build-module/components/editor/index.js.map +1 -1
  158. package/build-module/components/global-styles/screen-revisions/index.js +42 -21
  159. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  160. package/build-module/components/global-styles/screen-root.js +3 -3
  161. package/build-module/components/global-styles/screen-root.js.map +1 -1
  162. package/build-module/components/global-styles/ui.js +3 -3
  163. package/build-module/components/global-styles/ui.js.map +1 -1
  164. package/build-module/components/global-styles-renderer/index.js +1 -1
  165. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  166. package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
  167. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
  168. package/build-module/components/header-edit-mode/index.js +52 -120
  169. package/build-module/components/header-edit-mode/index.js.map +1 -1
  170. package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
  171. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  172. package/build-module/components/layout/index.js +5 -20
  173. package/build-module/components/layout/index.js.map +1 -1
  174. package/build-module/components/list/added-by.js +1 -1
  175. package/build-module/components/list/added-by.js.map +1 -1
  176. package/build-module/components/page-content-focus-manager/back-to-page-notification.js +5 -10
  177. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  178. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
  179. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  180. package/build-module/components/page-main/index.js +2 -1
  181. package/build-module/components/page-main/index.js.map +1 -1
  182. package/build-module/components/page-pages/index.js +137 -80
  183. package/build-module/components/page-pages/index.js.map +1 -1
  184. package/build-module/components/page-pages/side-editor.js +17 -0
  185. package/build-module/components/page-pages/side-editor.js.map +1 -0
  186. package/build-module/components/page-patterns/grid-item.js +2 -2
  187. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  188. package/build-module/components/page-patterns/patterns-list.js +4 -4
  189. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  190. package/build-module/components/page-patterns/use-patterns.js +2 -2
  191. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  192. package/build-module/components/page-templates/dataviews-templates.js +193 -0
  193. package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
  194. package/build-module/components/page-templates/template-actions.js +157 -0
  195. package/build-module/components/page-templates/template-actions.js.map +1 -0
  196. package/build-module/components/sidebar/index.js +1 -2
  197. package/build-module/components/sidebar/index.js.map +1 -1
  198. package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
  199. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
  200. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +180 -0
  201. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  202. package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
  203. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
  204. package/build-module/components/sidebar-dataviews/default-views.js +52 -0
  205. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
  206. package/build-module/components/sidebar-dataviews/index.js +22 -39
  207. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  208. package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
  209. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  210. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +12 -12
  211. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  212. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
  213. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  214. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +5 -13
  215. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  216. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
  217. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  218. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  219. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  220. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
  221. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  222. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  223. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  224. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  225. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  226. package/build-module/components/sidebar-navigation-screen-page/page-details.js +3 -11
  227. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  228. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  229. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  230. package/build-module/components/site-hub/index.js +19 -7
  231. package/build-module/components/site-hub/index.js.map +1 -1
  232. package/build-module/components/start-template-options/index.js +13 -16
  233. package/build-module/components/start-template-options/index.js.map +1 -1
  234. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -50
  235. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  236. package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
  237. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  238. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  239. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  240. package/build-module/hooks/template-part-edit.js +6 -2
  241. package/build-module/hooks/template-part-edit.js.map +1 -1
  242. package/build-module/index.js +0 -3
  243. package/build-module/index.js.map +1 -1
  244. package/build-module/store/actions.js +33 -79
  245. package/build-module/store/actions.js.map +1 -1
  246. package/build-module/store/selectors.js +19 -58
  247. package/build-module/store/selectors.js.map +1 -1
  248. package/build-module/utils/constants.js +1 -1
  249. package/build-module/utils/constants.js.map +1 -1
  250. package/build-style/style-rtl.css +69 -119
  251. package/build-style/style.css +69 -119
  252. package/package.json +41 -41
  253. package/src/components/actions/index.js +113 -5
  254. package/src/components/add-new-template/new-template.js +0 -5
  255. package/src/components/block-editor/style.scss +0 -87
  256. package/src/components/block-editor/use-site-editor-settings.js +68 -89
  257. package/src/components/dataviews/README.md +77 -83
  258. package/src/components/dataviews/add-filter.js +111 -0
  259. package/src/components/dataviews/dataviews.js +20 -2
  260. package/src/components/dataviews/filters.js +56 -49
  261. package/src/components/dataviews/in-filter.js +35 -17
  262. package/src/components/dataviews/index.js +1 -1
  263. package/src/components/dataviews/item-actions.js +95 -20
  264. package/src/components/dataviews/pagination.js +5 -4
  265. package/src/components/dataviews/reset-filters.js +26 -0
  266. package/src/components/dataviews/search.js +1 -0
  267. package/src/components/dataviews/style.scss +5 -1
  268. package/src/components/dataviews/view-actions.js +39 -9
  269. package/src/components/dataviews/view-list.js +174 -3
  270. package/src/components/dataviews/view-side-by-side.js +9 -0
  271. package/src/components/editor/index.js +149 -121
  272. package/src/components/global-styles/screen-revisions/index.js +52 -25
  273. package/src/components/global-styles/screen-root.js +2 -1
  274. package/src/components/global-styles/ui.js +1 -1
  275. package/src/components/global-styles-renderer/index.js +1 -1
  276. package/src/components/header-edit-mode/document-tools/index.js +201 -0
  277. package/src/components/header-edit-mode/index.js +86 -184
  278. package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
  279. package/src/components/header-edit-mode/style.scss +35 -2
  280. package/src/components/layout/index.js +4 -11
  281. package/src/components/layout/style.scss +6 -18
  282. package/src/components/list/added-by.js +1 -1
  283. package/src/components/page-content-focus-manager/back-to-page-notification.js +4 -15
  284. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +38 -33
  285. package/src/components/page-main/index.js +6 -1
  286. package/src/components/page-pages/index.js +162 -81
  287. package/src/components/page-pages/side-editor.js +14 -0
  288. package/src/components/page-patterns/grid-item.js +3 -3
  289. package/src/components/page-patterns/patterns-list.js +10 -4
  290. package/src/components/page-patterns/use-patterns.js +3 -2
  291. package/src/components/page-templates/dataviews-templates.js +224 -0
  292. package/src/components/page-templates/template-actions.js +209 -0
  293. package/src/components/sidebar/index.js +1 -2
  294. package/src/components/sidebar-dataviews/add-new-view.js +141 -0
  295. package/src/components/sidebar-dataviews/custom-dataviews-list.js +227 -0
  296. package/src/components/sidebar-dataviews/dataview-item.js +67 -0
  297. package/src/components/sidebar-dataviews/default-views.js +54 -0
  298. package/src/components/sidebar-dataviews/index.js +36 -45
  299. package/src/components/sidebar-dataviews/style.scss +22 -0
  300. package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
  301. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +14 -21
  302. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +3 -0
  303. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +10 -9
  304. package/src/components/sidebar-edit-mode/page-panels/style.scss +5 -0
  305. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
  306. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
  307. package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
  308. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  309. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  310. package/src/components/sidebar-navigation-screen-page/page-details.js +4 -17
  311. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  312. package/src/components/site-hub/index.js +9 -8
  313. package/src/components/start-template-options/index.js +14 -12
  314. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +117 -50
  315. package/src/components/template-part-converter/convert-to-regular.js +1 -1
  316. package/src/hooks/push-changes-to-global-styles/index.js +13 -6
  317. package/src/hooks/template-part-edit.js +4 -2
  318. package/src/index.js +0 -8
  319. package/src/store/actions.js +37 -95
  320. package/src/store/selectors.js +31 -91
  321. package/src/store/test/actions.js +11 -137
  322. package/src/store/test/selectors.js +0 -82
  323. package/src/style.scss +1 -0
  324. package/src/utils/constants.js +1 -1
  325. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
  326. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  327. package/build/components/block-editor/block-editor-provider/index.js +0 -31
  328. package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
  329. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
  330. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  331. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
  332. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  333. package/build/components/block-editor/index.js +0 -30
  334. package/build/components/block-editor/index.js.map +0 -1
  335. package/build/components/page-pages/default-views.js +0 -62
  336. package/build/components/page-pages/default-views.js.map +0 -1
  337. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
  338. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  339. package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
  340. package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
  341. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
  342. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  343. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
  344. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  345. package/build-module/components/block-editor/index.js +0 -22
  346. package/build-module/components/block-editor/index.js.map +0 -1
  347. package/build-module/components/page-pages/default-views.js +0 -55
  348. package/build-module/components/page-pages/default-views.js.map +0 -1
  349. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
  350. package/src/components/block-editor/block-editor-provider/index.js +0 -29
  351. package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
  352. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
  353. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
  354. package/src/components/block-editor/index.js +0 -28
  355. package/src/components/page-pages/default-views.js +0 -60
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","Button","Modal","__experimentalGrid","Grid","__experimentalText","Text","__experimentalVStack","VStack","Flex","Icon","decodeEntities","useState","useSelect","useDispatch","store","coreStore","archive","blockMeta","calendar","category","commentAuthorAvatar","edit","home","layout","list","media","notFound","page","plus","pin","verse","search","tag","__","sprintf","noticesStore","privateApis","routerPrivateApis","TEMPLATE_POST_TYPE","AddCustomTemplateModalContent","useExistingTemplates","useDefaultTemplateTypes","useTaxonomiesMenuItems","usePostTypeMenuItems","useAuthorMenuItem","usePostTypeArchiveMenuItems","AddCustomGenericTemplateModalContent","TemplateActionsLoadingScreen","editSiteStore","unlock","useHistory","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","single","index","author","taxonomy","date","attachment","TemplateListItem","title","direction","className","description","icon","onClick","children","createElement","label","showTooltip","as","spacing","align","justify","style","width","alignment","weight","lineHeight","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplate","postType","toggleProps","showIcon","showModal","setShowModal","modalContent","setModalContent","entityForSuggestions","setEntityForSuggestions","isCreatingTemplate","setIsCreatingTemplate","history","saveEntityRecord","createErrorNotice","createSuccessNotice","setTemplate","homeUrl","select","getUnstableBase","TEMPLATE_SHORT_DESCRIPTIONS","Date","getFullYear","createTemplate","template","isWPSuggestion","slug","newTemplate","toString","status","is_wp_suggestion","throwOnError","id","push","postId","type","canvas","rendered","error","errorMessage","message","code","onModalClose","missingTemplates","useMissingTemplates","length","Toggle","restToggleProps","modalTitle","labels","singular_name","Fragment","add_new_item","onRequestClose","overlayClassName","undefined","columns","gap","map","key","onSelect","onClose","existingTemplates","defaultTemplateTypes","existingTemplateSlugs","missingDefaultTemplates","filter","includes","onClickMenuItem","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","defaultTaxonomiesMenuItems","taxonomiesMenuItems","defaultPostTypesMenuItems","postTypesMenuItems","authorMenuItem","forEach","menuItem","matchIndex","findIndex","sort","template1","template2","indexOf"],"sources":["@wordpress/edit-site/src/components/add-new-template/new-template.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tplus,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport TemplateActionsLoadingScreen from './template-actions-loading-screen';\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nexport default function NewTemplate( {\n\tpostType,\n\ttoggleProps,\n\tshowIcon = true,\n} ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isCreatingTemplate, setIsCreatingTemplate ] = useState( false );\n\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { setTemplate } = unlock( useDispatch( editSiteStore ) );\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isCreatingTemplate ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingTemplate( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Set template before navigating away to avoid initial stale value.\n\t\t\tsetTemplate( newTemplate.id, newTemplate.slug );\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: newTemplate.id,\n\t\t\t\tpostType: newTemplate.type,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingTemplate( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tsetShowModal( false );\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tif ( ! missingTemplates.length ) {\n\t\treturn null;\n\t}\n\tconst { as: Toggle = Button, ...restToggleProps } = toggleProps ?? {};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ isCreatingTemplate && <TemplateActionsLoadingScreen /> }\n\t\t\t<Toggle\n\t\t\t\t{ ...restToggleProps }\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\ticon={ showIcon ? plus : null }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t>\n\t\t\t\t{ showIcon ? null : postType.labels.add_new_item }\n\t\t\t</Toggle>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ modalTitle }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-add-new-template__modal',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ onModalClose }\n\t\t\t\t\toverlayClassName={\n\t\t\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\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{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tcolumns={ 3 }\n\t\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tTEMPLATE_ICONS[ slug ] || layout\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TemplateListItem>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t) }\n\t\t\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ modalContent ===\n\t\t\t\t\t\tmodalContentMap.customGenericTemplate && (\n\t\t\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","Button","Modal","__experimentalGrid","Grid","__experimentalText","Text","__experimentalVStack","VStack","Flex","Icon","decodeEntities","useState","useSelect","useDispatch","store","coreStore","archive","blockMeta","calendar","category","commentAuthorAvatar","edit","home","layout","list","media","notFound","page","plus","pin","verse","search","tag","__","sprintf","noticesStore","privateApis","routerPrivateApis","TEMPLATE_POST_TYPE","AddCustomTemplateModalContent","useExistingTemplates","useDefaultTemplateTypes","useTaxonomiesMenuItems","usePostTypeMenuItems","useAuthorMenuItem","usePostTypeArchiveMenuItems","AddCustomGenericTemplateModalContent","TemplateActionsLoadingScreen","unlock","useHistory","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","single","index","author","taxonomy","date","attachment","TemplateListItem","title","direction","className","description","icon","onClick","children","createElement","label","showTooltip","as","spacing","align","justify","style","width","alignment","weight","lineHeight","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplate","postType","toggleProps","showIcon","showModal","setShowModal","modalContent","setModalContent","entityForSuggestions","setEntityForSuggestions","isCreatingTemplate","setIsCreatingTemplate","history","saveEntityRecord","createErrorNotice","createSuccessNotice","homeUrl","select","getUnstableBase","TEMPLATE_SHORT_DESCRIPTIONS","Date","getFullYear","createTemplate","template","isWPSuggestion","slug","newTemplate","toString","status","is_wp_suggestion","throwOnError","push","postId","id","type","canvas","rendered","error","errorMessage","message","code","onModalClose","missingTemplates","useMissingTemplates","length","Toggle","restToggleProps","modalTitle","labels","singular_name","Fragment","add_new_item","onRequestClose","overlayClassName","undefined","columns","gap","map","key","onSelect","onClose","existingTemplates","defaultTemplateTypes","existingTemplateSlugs","missingDefaultTemplates","filter","includes","onClickMenuItem","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","defaultTaxonomiesMenuItems","taxonomiesMenuItems","defaultPostTypesMenuItems","postTypesMenuItems","authorMenuItem","forEach","menuItem","matchIndex","findIndex","sort","template1","template2","indexOf"],"sources":["@wordpress/edit-site/src/components/add-new-template/new-template.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tplus,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport TemplateActionsLoadingScreen from './template-actions-loading-screen';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nexport default function NewTemplate( {\n\tpostType,\n\ttoggleProps,\n\tshowIcon = true,\n} ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isCreatingTemplate, setIsCreatingTemplate ] = useState( false );\n\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isCreatingTemplate ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingTemplate( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: newTemplate.id,\n\t\t\t\tpostType: newTemplate.type,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingTemplate( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tsetShowModal( false );\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tif ( ! missingTemplates.length ) {\n\t\treturn null;\n\t}\n\tconst { as: Toggle = Button, ...restToggleProps } = toggleProps ?? {};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ isCreatingTemplate && <TemplateActionsLoadingScreen /> }\n\t\t\t<Toggle\n\t\t\t\t{ ...restToggleProps }\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\ticon={ showIcon ? plus : null }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t>\n\t\t\t\t{ showIcon ? null : postType.labels.add_new_item }\n\t\t\t</Toggle>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ modalTitle }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-add-new-template__modal',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ onModalClose }\n\t\t\t\t\toverlayClassName={\n\t\t\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\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{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tcolumns={ 3 }\n\t\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tTEMPLATE_ICONS[ slug ] || layout\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TemplateListItem>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t) }\n\t\t\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ modalContent ===\n\t\t\t\t\t\tmodalContentMap.customGenericTemplate && (\n\t\t\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n"],"mappings":"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"}
@@ -4,12 +4,17 @@
4
4
  import { useDispatch, useSelect } from '@wordpress/data';
5
5
  import { useMemo } from '@wordpress/element';
6
6
  import { store as coreStore } from '@wordpress/core-data';
7
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
8
+ import { store as preferencesStore } from '@wordpress/preferences';
9
+
7
10
  /**
8
11
  * Internal dependencies
9
12
  */
10
13
  import { store as editSiteStore } from '../../store';
11
14
  import { unlock } from '../../lock-unlock';
12
- import inserterMediaCategories from './inserter-media-categories';
15
+ const {
16
+ useBlockEditorSettings
17
+ } = unlock(editorPrivateApis);
13
18
  function useArchiveLabel(templateSlug) {
14
19
  const taxonomyMatches = templateSlug?.match(/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/);
15
20
  let taxonomy;
@@ -76,90 +81,77 @@ function useArchiveLabel(templateSlug) {
76
81
  };
77
82
  }, [authorSlug, isAuthor, taxonomy, term]);
78
83
  }
79
- export default function useSiteEditorSettings() {
80
- var _storedSettings$__exp, _storedSettings$__exp2;
84
+ export function useSpecificEditorSettings() {
81
85
  const {
82
86
  setIsInserterOpened
83
87
  } = useDispatch(editSiteStore);
84
88
  const {
85
- storedSettings,
89
+ templateSlug,
90
+ focusMode,
91
+ isDistractionFree,
92
+ hasFixedToolbar,
93
+ keepCaretInsideBlock,
86
94
  canvasMode,
87
- templateType,
88
- siteSettings
95
+ settings
89
96
  } = useSelect(select => {
90
97
  const {
91
- canUser,
92
- getEntityRecord
93
- } = select(coreStore);
94
- const {
95
- getSettings,
98
+ getEditedPostType,
99
+ getEditedPostId,
96
100
  getCanvasMode,
97
- getEditedPostType
101
+ getSettings
98
102
  } = unlock(select(editSiteStore));
99
- return {
100
- storedSettings: getSettings(setIsInserterOpened),
101
- canvasMode: getCanvasMode(),
102
- templateType: getEditedPostType(),
103
- siteSettings: canUser('read', 'settings') ? getEntityRecord('root', 'site') : undefined
104
- };
105
- }, [setIsInserterOpened]);
106
- const settingsBlockPatterns = (_storedSettings$__exp = storedSettings.__experimentalAdditionalBlockPatterns) !== null && _storedSettings$__exp !== void 0 ? _storedSettings$__exp :
107
- // WP 6.0
108
- storedSettings.__experimentalBlockPatterns; // WP 5.9
109
- const settingsBlockPatternCategories = (_storedSettings$__exp2 = storedSettings.__experimentalAdditionalBlockPatternCategories) !== null && _storedSettings$__exp2 !== void 0 ? _storedSettings$__exp2 :
110
- // WP 6.0
111
- storedSettings.__experimentalBlockPatternCategories; // WP 5.9
112
-
113
- const {
114
- restBlockPatterns,
115
- restBlockPatternCategories,
116
- templateSlug,
117
- userPatternCategories
118
- } = useSelect(select => {
119
103
  const {
120
- getEditedPostType,
121
- getEditedPostId
122
- } = select(editSiteStore);
104
+ get: getPreference
105
+ } = select(preferencesStore);
123
106
  const {
124
- getEditedEntityRecord,
125
- getUserPatternCategories
107
+ getEditedEntityRecord
126
108
  } = select(coreStore);
127
109
  const usedPostType = getEditedPostType();
128
110
  const usedPostId = getEditedPostId();
129
111
  const _record = getEditedEntityRecord('postType', usedPostType, usedPostId);
130
112
  return {
131
- restBlockPatterns: select(coreStore).getBlockPatterns(),
132
- restBlockPatternCategories: select(coreStore).getBlockPatternCategories(),
133
113
  templateSlug: _record.slug,
134
- userPatternCategories: getUserPatternCategories()
114
+ focusMode: !!getPreference('core/edit-site', 'focusMode'),
115
+ isDistractionFree: !!getPreference('core/edit-site', 'distractionFree'),
116
+ hasFixedToolbar: !!getPreference('core/edit-site', 'fixedToolbar'),
117
+ keepCaretInsideBlock: !!getPreference('core/edit-site', 'keepCaretInsideBlock'),
118
+ canvasMode: getCanvasMode(),
119
+ settings: getSettings()
135
120
  };
136
121
  }, []);
137
122
  const archiveLabels = useArchiveLabel(templateSlug);
138
- const blockPatterns = useMemo(() => [...(settingsBlockPatterns || []), ...(restBlockPatterns || [])].filter((x, index, arr) => index === arr.findIndex(y => x.name === y.name)).filter(({
139
- postTypes
140
- }) => {
141
- return !postTypes || Array.isArray(postTypes) && postTypes.includes(templateType);
142
- }), [settingsBlockPatterns, restBlockPatterns, templateType]);
143
- const blockPatternCategories = useMemo(() => [...(settingsBlockPatternCategories || []), ...(restBlockPatternCategories || [])].filter((x, index, arr) => index === arr.findIndex(y => x.name === y.name)), [settingsBlockPatternCategories, restBlockPatternCategories]);
144
- return useMemo(() => {
145
- const {
146
- __experimentalAdditionalBlockPatterns,
147
- __experimentalAdditionalBlockPatternCategories,
148
- focusMode,
149
- ...restStoredSettings
150
- } = storedSettings;
123
+ const defaultEditorSettings = useMemo(() => {
151
124
  return {
152
- ...restStoredSettings,
153
- inserterMediaCategories,
154
- __experimentalBlockPatterns: blockPatterns,
155
- __experimentalBlockPatternCategories: blockPatternCategories,
156
- __experimentalUserPatternCategories: userPatternCategories,
125
+ ...settings,
126
+ __experimentalSetIsInserterOpened: setIsInserterOpened,
157
127
  focusMode: canvasMode === 'view' && focusMode ? false : focusMode,
128
+ isDistractionFree,
129
+ hasFixedToolbar,
130
+ keepCaretInsideBlock,
131
+ // I wonder if they should be set in the post editor too
158
132
  __experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,
159
- __experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,
160
- pageOnFront: siteSettings?.page_on_front,
161
- pageForPosts: siteSettings?.page_for_posts
133
+ __experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel
162
134
  };
163
- }, [storedSettings, blockPatterns, blockPatternCategories, userPatternCategories, canvasMode, archiveLabels.archiveTypeLabel, archiveLabels.archiveNameLabel, siteSettings?.page_on_front, siteSettings?.page_for_posts]);
135
+ }, [settings, setIsInserterOpened, focusMode, isDistractionFree, hasFixedToolbar, keepCaretInsideBlock, canvasMode, archiveLabels.archiveTypeLabel, archiveLabels.archiveNameLabel]);
136
+ return defaultEditorSettings;
137
+ }
138
+ export default function useSiteEditorSettings() {
139
+ const defaultEditorSettings = useSpecificEditorSettings();
140
+ const {
141
+ postType,
142
+ postId
143
+ } = useSelect(select => {
144
+ const {
145
+ getEditedPostType,
146
+ getEditedPostId
147
+ } = unlock(select(editSiteStore));
148
+ const usedPostType = getEditedPostType();
149
+ const usedPostId = getEditedPostId();
150
+ return {
151
+ postType: usedPostType,
152
+ postId: usedPostId
153
+ };
154
+ }, []);
155
+ return useBlockEditorSettings(defaultEditorSettings, postType, postId);
164
156
  }
165
157
  //# sourceMappingURL=use-site-editor-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","useSelect","useMemo","store","coreStore","editSiteStore","unlock","inserterMediaCategories","useArchiveLabel","templateSlug","taxonomyMatches","match","taxonomy","term","isAuthor","authorSlug","authorMatches","select","getEntityRecords","getTaxonomy","getAuthors","archiveTypeLabel","archiveNameLabel","labels","singular_name","records","slug","per_page","name","authorRecords","useSiteEditorSettings","_storedSettings$__exp","_storedSettings$__exp2","setIsInserterOpened","storedSettings","canvasMode","templateType","siteSettings","canUser","getEntityRecord","getSettings","getCanvasMode","getEditedPostType","undefined","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","restBlockPatterns","restBlockPatternCategories","userPatternCategories","getEditedPostId","getEditedEntityRecord","getUserPatternCategories","usedPostType","usedPostId","_record","getBlockPatterns","getBlockPatternCategories","archiveLabels","blockPatterns","filter","x","index","arr","findIndex","y","postTypes","Array","isArray","includes","blockPatternCategories","focusMode","restStoredSettings","__experimentalUserPatternCategories","__experimentalArchiveTitleTypeLabel","__experimentalArchiveTitleNameLabel","pageOnFront","page_on_front","pageForPosts","page_for_posts"],"sources":["@wordpress/edit-site/src/components/block-editor/use-site-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport inserterMediaCategories from './inserter-media-categories';\n\nfunction useArchiveLabel( templateSlug ) {\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\tlet taxonomy;\n\tlet term;\n\tlet isAuthor = false;\n\tlet authorSlug;\n\tif ( taxonomyMatches ) {\n\t\t// If is for a all taxonomies of a type\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If is for a all taxonomies of a type\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\tterm = taxonomyMatches[ 7 ];\n\t\t}\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\n\t\t//getTaxonomy( 'category' );\n\t\t//wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );\n\t} else {\n\t\tconst authorMatches = templateSlug?.match( /^(author)$|^author-(.+)$/ );\n\t\tif ( authorMatches ) {\n\t\t\tisAuthor = true;\n\t\t\tif ( authorMatches[ 2 ] ) {\n\t\t\t\tauthorSlug = authorMatches[ 2 ];\n\t\t\t}\n\t\t}\n\t}\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, getAuthors } =\n\t\t\t\tselect( coreStore );\n\t\t\tlet archiveTypeLabel;\n\t\t\tlet archiveNameLabel;\n\t\t\tif ( taxonomy ) {\n\t\t\t\tarchiveTypeLabel =\n\t\t\t\t\tgetTaxonomy( taxonomy )?.labels?.singular_name;\n\t\t\t}\n\t\t\tif ( term ) {\n\t\t\t\tconst records = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t\tslug: term,\n\t\t\t\t\tper_page: 1,\n\t\t\t\t} );\n\t\t\t\tif ( records && records[ 0 ] ) {\n\t\t\t\t\tarchiveNameLabel = records[ 0 ].name;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( isAuthor ) {\n\t\t\t\tarchiveTypeLabel = 'Author';\n\t\t\t\tif ( authorSlug ) {\n\t\t\t\t\tconst authorRecords = getAuthors( { slug: authorSlug } );\n\t\t\t\t\tif ( authorRecords && authorRecords[ 0 ] ) {\n\t\t\t\t\t\tarchiveNameLabel = authorRecords[ 0 ].name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarchiveTypeLabel,\n\t\t\t\tarchiveNameLabel,\n\t\t\t};\n\t\t},\n\t\t[ authorSlug, isAuthor, taxonomy, term ]\n\t);\n}\n\nexport default function useSiteEditorSettings() {\n\tconst { setIsInserterOpened } = useDispatch( editSiteStore );\n\tconst { storedSettings, canvasMode, templateType, siteSettings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { canUser, getEntityRecord } = select( coreStore );\n\t\t\t\tconst { getSettings, getCanvasMode, getEditedPostType } =\n\t\t\t\t\tunlock( select( editSiteStore ) );\n\t\t\t\treturn {\n\t\t\t\t\tstoredSettings: getSettings( setIsInserterOpened ),\n\t\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\t\ttemplateType: getEditedPostType(),\n\t\t\t\t\tsiteSettings: canUser( 'read', 'settings' )\n\t\t\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t\t\t: undefined,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ setIsInserterOpened ]\n\t\t);\n\n\tconst settingsBlockPatterns =\n\t\tstoredSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tstoredSettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tstoredSettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tstoredSettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst {\n\t\trestBlockPatterns,\n\t\trestBlockPatternCategories,\n\t\ttemplateSlug,\n\t\tuserPatternCategories,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEditedEntityRecord, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\tconst _record = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tusedPostType,\n\t\t\tusedPostId\n\t\t);\n\t\treturn {\n\t\t\trestBlockPatterns: select( coreStore ).getBlockPatterns(),\n\t\t\trestBlockPatternCategories:\n\t\t\t\tselect( coreStore ).getBlockPatternCategories(),\n\t\t\ttemplateSlug: _record.slug,\n\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t};\n\t}, [] );\n\tconst archiveLabels = useArchiveLabel( templateSlug );\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatterns || [] ),\n\t\t\t\t...( restBlockPatterns || [] ),\n\t\t\t]\n\t\t\t\t.filter(\n\t\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t\t)\n\t\t\t\t.filter( ( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( templateType ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t[ settingsBlockPatterns, restBlockPatterns, templateType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\treturn useMemo( () => {\n\t\tconst {\n\t\t\t__experimentalAdditionalBlockPatterns,\n\t\t\t__experimentalAdditionalBlockPatternCategories,\n\t\t\tfocusMode,\n\t\t\t...restStoredSettings\n\t\t} = storedSettings;\n\n\t\treturn {\n\t\t\t...restStoredSettings,\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\tfocusMode: canvasMode === 'view' && focusMode ? false : focusMode,\n\t\t\t__experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,\n\t\t\t__experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t};\n\t}, [\n\t\tstoredSettings,\n\t\tblockPatterns,\n\t\tblockPatternCategories,\n\t\tuserPatternCategories,\n\t\tcanvasMode,\n\t\tarchiveLabels.archiveTypeLabel,\n\t\tarchiveLabels.archiveNameLabel,\n\t\tsiteSettings?.page_on_front,\n\t\tsiteSettings?.page_for_posts,\n\t] );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useDispatch","useSelect","useMemo","store","coreStore","privateApis","editorPrivateApis","preferencesStore","editSiteStore","unlock","useBlockEditorSettings","useArchiveLabel","templateSlug","taxonomyMatches","match","taxonomy","term","isAuthor","authorSlug","authorMatches","select","getEntityRecords","getTaxonomy","getAuthors","archiveTypeLabel","archiveNameLabel","labels","singular_name","records","slug","per_page","name","authorRecords","useSpecificEditorSettings","setIsInserterOpened","focusMode","isDistractionFree","hasFixedToolbar","keepCaretInsideBlock","canvasMode","settings","getEditedPostType","getEditedPostId","getCanvasMode","getSettings","get","getPreference","getEditedEntityRecord","usedPostType","usedPostId","_record","archiveLabels","defaultEditorSettings","__experimentalSetIsInserterOpened","__experimentalArchiveTitleTypeLabel","__experimentalArchiveTitleNameLabel","useSiteEditorSettings","postType","postId"],"sources":["@wordpress/edit-site/src/components/block-editor/use-site-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { useBlockEditorSettings } = unlock( editorPrivateApis );\n\nfunction useArchiveLabel( templateSlug ) {\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\tlet taxonomy;\n\tlet term;\n\tlet isAuthor = false;\n\tlet authorSlug;\n\tif ( taxonomyMatches ) {\n\t\t// If is for a all taxonomies of a type\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If is for a all taxonomies of a type\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\tterm = taxonomyMatches[ 7 ];\n\t\t}\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\n\t\t//getTaxonomy( 'category' );\n\t\t//wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );\n\t} else {\n\t\tconst authorMatches = templateSlug?.match( /^(author)$|^author-(.+)$/ );\n\t\tif ( authorMatches ) {\n\t\t\tisAuthor = true;\n\t\t\tif ( authorMatches[ 2 ] ) {\n\t\t\t\tauthorSlug = authorMatches[ 2 ];\n\t\t\t}\n\t\t}\n\t}\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, getAuthors } =\n\t\t\t\tselect( coreStore );\n\t\t\tlet archiveTypeLabel;\n\t\t\tlet archiveNameLabel;\n\t\t\tif ( taxonomy ) {\n\t\t\t\tarchiveTypeLabel =\n\t\t\t\t\tgetTaxonomy( taxonomy )?.labels?.singular_name;\n\t\t\t}\n\t\t\tif ( term ) {\n\t\t\t\tconst records = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t\tslug: term,\n\t\t\t\t\tper_page: 1,\n\t\t\t\t} );\n\t\t\t\tif ( records && records[ 0 ] ) {\n\t\t\t\t\tarchiveNameLabel = records[ 0 ].name;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( isAuthor ) {\n\t\t\t\tarchiveTypeLabel = 'Author';\n\t\t\t\tif ( authorSlug ) {\n\t\t\t\t\tconst authorRecords = getAuthors( { slug: authorSlug } );\n\t\t\t\t\tif ( authorRecords && authorRecords[ 0 ] ) {\n\t\t\t\t\t\tarchiveNameLabel = authorRecords[ 0 ].name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarchiveTypeLabel,\n\t\t\t\tarchiveNameLabel,\n\t\t\t};\n\t\t},\n\t\t[ authorSlug, isAuthor, taxonomy, term ]\n\t);\n}\n\nexport function useSpecificEditorSettings() {\n\tconst { setIsInserterOpened } = useDispatch( editSiteStore );\n\tconst {\n\t\ttemplateSlug,\n\t\tfocusMode,\n\t\tisDistractionFree,\n\t\thasFixedToolbar,\n\t\tkeepCaretInsideBlock,\n\t\tcanvasMode,\n\t\tsettings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostType,\n\t\t\tgetEditedPostId,\n\t\t\tgetCanvasMode,\n\t\t\tgetSettings,\n\t\t} = unlock( select( editSiteStore ) );\n\t\tconst { get: getPreference } = select( preferencesStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\tconst _record = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tusedPostType,\n\t\t\tusedPostId\n\t\t);\n\t\treturn {\n\t\t\ttemplateSlug: _record.slug,\n\t\t\tfocusMode: !! getPreference( 'core/edit-site', 'focusMode' ),\n\t\t\tisDistractionFree: !! getPreference(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'distractionFree'\n\t\t\t),\n\t\t\thasFixedToolbar: !! getPreference(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! getPreference(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tsettings: getSettings(),\n\t\t};\n\t}, [] );\n\tconst archiveLabels = useArchiveLabel( templateSlug );\n\n\tconst defaultEditorSettings = useMemo( () => {\n\t\treturn {\n\t\t\t...settings,\n\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tfocusMode: canvasMode === 'view' && focusMode ? false : focusMode,\n\t\t\tisDistractionFree,\n\t\t\thasFixedToolbar,\n\t\t\tkeepCaretInsideBlock,\n\n\t\t\t// I wonder if they should be set in the post editor too\n\t\t\t__experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,\n\t\t\t__experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,\n\t\t};\n\t}, [\n\t\tsettings,\n\t\tsetIsInserterOpened,\n\t\tfocusMode,\n\t\tisDistractionFree,\n\t\thasFixedToolbar,\n\t\tkeepCaretInsideBlock,\n\t\tcanvasMode,\n\t\tarchiveLabels.archiveTypeLabel,\n\t\tarchiveLabels.archiveNameLabel,\n\t] );\n\n\treturn defaultEditorSettings;\n}\n\nexport default function useSiteEditorSettings() {\n\tconst defaultEditorSettings = useSpecificEditorSettings();\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\treturn {\n\t\t\tpostType: usedPostType,\n\t\t\tpostId: usedPostId,\n\t\t};\n\t}, [] );\n\treturn useBlockEditorSettings( defaultEditorSettings, postType, postId );\n}\n"],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { privateApis as componentsPrivateApis, Button, Icon } from '@wordpress/components';
6
+ import { chevronRightSmall, plus } from '@wordpress/icons';
7
+ import { __ } from '@wordpress/i18n';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { unlock } from '../../lock-unlock';
13
+ import { OPERATOR_IN } from './in-filter';
14
+ const {
15
+ DropdownMenuV2,
16
+ DropdownSubMenuV2,
17
+ DropdownSubMenuTriggerV2,
18
+ DropdownMenuItemV2
19
+ } = unlock(componentsPrivateApis);
20
+ const VALID_OPERATORS = [OPERATOR_IN];
21
+ export default function AddFilter({
22
+ fields,
23
+ view,
24
+ onChangeView
25
+ }) {
26
+ const filters = [];
27
+ fields.forEach(field => {
28
+ if (!field.filters) {
29
+ return;
30
+ }
31
+ field.filters.forEach(filter => {
32
+ if (VALID_OPERATORS.some(operator => operator === filter)) {
33
+ filters.push({
34
+ field: field.id,
35
+ name: field.header,
36
+ operator: filter,
37
+ elements: field.elements || [],
38
+ isVisible: view.filters.some(f => f.field === field.id && f.operator === filter)
39
+ });
40
+ }
41
+ });
42
+ });
43
+ if (filters.length === 0) {
44
+ return null;
45
+ }
46
+ return createElement(DropdownMenuV2, {
47
+ label: __('Add filter'),
48
+ trigger: createElement(Button, {
49
+ disabled: filters.length === view.filters?.length,
50
+ __experimentalIsFocusable: true,
51
+ icon: plus,
52
+ variant: "tertiary",
53
+ size: "compact"
54
+ }, __('Add filter'))
55
+ }, filters.map(filter => {
56
+ if (filter.isVisible) {
57
+ return null;
58
+ }
59
+ return createElement(DropdownSubMenuV2, {
60
+ key: filter.field,
61
+ trigger: createElement(DropdownSubMenuTriggerV2, {
62
+ suffix: createElement(Icon, {
63
+ icon: chevronRightSmall
64
+ })
65
+ }, filter.name)
66
+ }, filter.elements.map(element => createElement(DropdownMenuItemV2, {
67
+ key: element.value,
68
+ onSelect: () => {
69
+ onChangeView(currentView => ({
70
+ ...currentView,
71
+ page: 1,
72
+ filters: [...currentView.filters, {
73
+ field: filter.field,
74
+ operator: 'in',
75
+ value: element.value
76
+ }]
77
+ }));
78
+ },
79
+ role: "menuitemcheckbox"
80
+ }, element.label)));
81
+ }));
82
+ }
83
+ //# sourceMappingURL=add-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","Button","Icon","chevronRightSmall","plus","__","unlock","OPERATOR_IN","DropdownMenuV2","DropdownSubMenuV2","DropdownSubMenuTriggerV2","DropdownMenuItemV2","VALID_OPERATORS","AddFilter","fields","view","onChangeView","filters","forEach","field","filter","some","operator","push","id","name","header","elements","isVisible","f","length","createElement","label","trigger","disabled","__experimentalIsFocusable","icon","variant","size","map","key","suffix","element","value","onSelect","currentView","page","role"],"sources":["@wordpress/edit-site/src/components/dataviews/add-filter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tIcon,\n} from '@wordpress/components';\nimport { chevronRightSmall, plus } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { OPERATOR_IN } from './in-filter';\n\nconst {\n\tDropdownMenuV2,\n\tDropdownSubMenuV2,\n\tDropdownSubMenuTriggerV2,\n\tDropdownMenuItemV2,\n} = unlock( componentsPrivateApis );\n\nconst VALID_OPERATORS = [ OPERATOR_IN ];\n\nexport default function AddFilter( { fields, view, onChangeView } ) {\n\tconst filters = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.filters ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfield.filters.forEach( ( filter ) => {\n\t\t\tif ( VALID_OPERATORS.some( ( operator ) => operator === filter ) ) {\n\t\t\t\tfilters.push( {\n\t\t\t\t\tfield: field.id,\n\t\t\t\t\tname: field.header,\n\t\t\t\t\toperator: filter,\n\t\t\t\t\telements: field.elements || [],\n\t\t\t\t\tisVisible: view.filters.some(\n\t\t\t\t\t\t( f ) => f.field === field.id && f.operator === filter\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\tif ( filters.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\tlabel={ __( 'Add filter' ) }\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tdisabled={ filters.length === view.filters?.length }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t>\n\t\t\t{ filters.map( ( filter ) => {\n\t\t\t\tif ( filter.isVisible ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownSubMenuV2\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\t\t\t\tsuffix={ <Icon icon={ chevronRightSmall } /> }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ filter.name }\n\t\t\t\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ filter.elements.map( ( element ) => (\n\t\t\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( ( currentView ) => ( {\n\t\t\t\t\t\t\t\t\t\t...currentView,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t...currentView.filters,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: 'in',\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: element.value,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</DropdownSubMenuV2>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuV2>\n\t);\n}\n"],"mappings":"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"}
@@ -14,6 +14,21 @@ import ViewActions from './view-actions';
14
14
  import Filters from './filters';
15
15
  import Search from './search';
16
16
  import { ViewGrid } from './view-grid';
17
+ import { ViewSideBySide } from './view-side-by-side';
18
+
19
+ // To do: convert to view type registry.
20
+ export const viewTypeSupportsMap = {
21
+ list: {},
22
+ grid: {},
23
+ 'side-by-side': {
24
+ preview: true
25
+ }
26
+ };
27
+ const viewTypeMap = {
28
+ list: ViewList,
29
+ grid: ViewGrid,
30
+ 'side-by-side': ViewSideBySide
31
+ };
17
32
  export default function DataViews({
18
33
  view,
19
34
  onChangeView,
@@ -23,9 +38,10 @@ export default function DataViews({
23
38
  actions,
24
39
  data,
25
40
  isLoading = false,
26
- paginationInfo
41
+ paginationInfo,
42
+ supportedLayouts
27
43
  }) {
28
- const ViewComponent = view.type === 'list' ? ViewList : ViewGrid;
44
+ const ViewComponent = viewTypeMap[view.type];
29
45
  const _fields = useMemo(() => {
30
46
  return fields.map(field => ({
31
47
  ...field,
@@ -48,11 +64,13 @@ export default function DataViews({
48
64
  view: view,
49
65
  onChangeView: onChangeView
50
66
  })), createElement(HStack, {
51
- justify: "end"
67
+ justify: "end",
68
+ expanded: false
52
69
  }, createElement(ViewActions, {
53
70
  fields: fields,
54
71
  view: view,
55
- onChangeView: onChangeView
72
+ onChangeView: onChangeView,
73
+ supportedLayouts: supportedLayouts
56
74
  }))), createElement(ViewComponent, {
57
75
  fields: _fields,
58
76
  view: view,
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","useMemo","ViewList","Pagination","ViewActions","Filters","Search","ViewGrid","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","isLoading","paginationInfo","ViewComponent","type","_fields","map","field","render","getValue","createElement","className","spacing","justify","label"],"sources":["@wordpress/edit-site/src/components/dataviews/dataviews.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ViewList from './view-list';\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { ViewGrid } from './view-grid';\n\nexport default function DataViews( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions,\n\tdata,\n\tisLoading = false,\n\tpaginationInfo,\n} ) {\n\tconst ViewComponent = view.type === 'list' ? ViewList : ViewGrid;\n\tconst _fields = useMemo( () => {\n\t\treturn fields.map( ( field ) => ( {\n\t\t\t...field,\n\t\t\trender: field.render || field.getValue,\n\t\t} ) );\n\t}, [ fields ] );\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<VStack spacing={ 4 } justify=\"flex-start\">\n\t\t\t\t<HStack>\n\t\t\t\t\t<HStack justify=\"start\">\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Filters\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack justify=\"end\">\n\t\t\t\t\t\t<ViewActions\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t<ViewComponent\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t<Pagination\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,QAAQ,QAAQ,aAAa;AAEtC,eAAe,SAASC,SAASA,CAAE;EAClCC,IAAI;EACJC,YAAY;EACZC,MAAM;EACNC,MAAM,GAAG,IAAI;EACbC,WAAW,GAAGC,SAAS;EACvBC,OAAO;EACPC,IAAI;EACJC,SAAS,GAAG,KAAK;EACjBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAGV,IAAI,CAACW,IAAI,KAAK,MAAM,GAAGlB,QAAQ,GAAGK,QAAQ;EAChE,MAAMc,OAAO,GAAGpB,OAAO,CAAE,MAAM;IAC9B,OAAOU,MAAM,CAACW,GAAG,CAAIC,KAAK,KAAQ;MACjC,GAAGA,KAAK;MACRC,MAAM,EAAED,KAAK,CAACC,MAAM,IAAID,KAAK,CAACE;IAC/B,CAAC,CAAG,CAAC;EACN,CAAC,EAAE,CAAEd,MAAM,CAAG,CAAC;EACf,OACCe,aAAA;IAAKC,SAAS,EAAC;EAAmB,GACjCD,aAAA,CAAC5B,MAAM;IAAC8B,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC;EAAY,GACzCH,aAAA,CAAC1B,MAAM,QACN0B,aAAA,CAAC1B,MAAM;IAAC6B,OAAO,EAAC;EAAO,GACpBjB,MAAM,IACPc,aAAA,CAACpB,MAAM;IACNwB,KAAK,EAAGjB,WAAa;IACrBJ,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACD,EACDgB,aAAA,CAACrB,OAAO;IACPM,MAAM,EAAGA,MAAQ;IACjBF,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACM,CAAC,EACTgB,aAAA,CAAC1B,MAAM;IAAC6B,OAAO,EAAC;EAAK,GACpBH,aAAA,CAACtB,WAAW;IACXO,MAAM,EAAGA,MAAQ;IACjBF,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACM,CACD,CAAC,EACTgB,aAAA,CAACP,aAAa;IACbR,MAAM,EAAGU,OAAS;IAClBZ,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BQ,cAAc,EAAGA,cAAgB;IACjCH,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbC,SAAS,EAAGA;EAAW,CACvB,CAAC,EACFS,aAAA,CAACvB,UAAU;IACVM,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BQ,cAAc,EAAGA;EAAgB,CACjC,CACM,CACJ,CAAC;AAER"}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","useMemo","ViewList","Pagination","ViewActions","Filters","Search","ViewGrid","ViewSideBySide","viewTypeSupportsMap","list","grid","preview","viewTypeMap","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","isLoading","paginationInfo","supportedLayouts","ViewComponent","type","_fields","map","field","render","getValue","createElement","className","spacing","justify","label","expanded"],"sources":["@wordpress/edit-site/src/components/dataviews/dataviews.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ViewList from './view-list';\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { ViewGrid } from './view-grid';\nimport { ViewSideBySide } from './view-side-by-side';\n\n// To do: convert to view type registry.\nexport const viewTypeSupportsMap = {\n\tlist: {},\n\tgrid: {},\n\t'side-by-side': {\n\t\tpreview: true,\n\t},\n};\n\nconst viewTypeMap = {\n\tlist: ViewList,\n\tgrid: ViewGrid,\n\t'side-by-side': ViewSideBySide,\n};\n\nexport default function DataViews( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions,\n\tdata,\n\tisLoading = false,\n\tpaginationInfo,\n\tsupportedLayouts,\n} ) {\n\tconst ViewComponent = viewTypeMap[ view.type ];\n\tconst _fields = useMemo( () => {\n\t\treturn fields.map( ( field ) => ( {\n\t\t\t...field,\n\t\t\trender: field.render || field.getValue,\n\t\t} ) );\n\t}, [ fields ] );\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<VStack spacing={ 4 } justify=\"flex-start\">\n\t\t\t\t<HStack>\n\t\t\t\t\t<HStack justify=\"start\">\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Filters\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack justify=\"end\" expanded={ false }>\n\t\t\t\t\t\t<ViewActions\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t<ViewComponent\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t<Pagination\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,cAAc,QAAQ,qBAAqB;;AAEpD;AACA,OAAO,MAAMC,mBAAmB,GAAG;EAClCC,IAAI,EAAE,CAAC,CAAC;EACRC,IAAI,EAAE,CAAC,CAAC;EACR,cAAc,EAAE;IACfC,OAAO,EAAE;EACV;AACD,CAAC;AAED,MAAMC,WAAW,GAAG;EACnBH,IAAI,EAAER,QAAQ;EACdS,IAAI,EAAEJ,QAAQ;EACd,cAAc,EAAEC;AACjB,CAAC;AAED,eAAe,SAASM,SAASA,CAAE;EAClCC,IAAI;EACJC,YAAY;EACZC,MAAM;EACNC,MAAM,GAAG,IAAI;EACbC,WAAW,GAAGC,SAAS;EACvBC,OAAO;EACPC,IAAI;EACJC,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAGb,WAAW,CAAEE,IAAI,CAACY,IAAI,CAAE;EAC9C,MAAMC,OAAO,GAAG3B,OAAO,CAAE,MAAM;IAC9B,OAAOgB,MAAM,CAACY,GAAG,CAAIC,KAAK,KAAQ;MACjC,GAAGA,KAAK;MACRC,MAAM,EAAED,KAAK,CAACC,MAAM,IAAID,KAAK,CAACE;IAC/B,CAAC,CAAG,CAAC;EACN,CAAC,EAAE,CAAEf,MAAM,CAAG,CAAC;EACf,OACCgB,aAAA;IAAKC,SAAS,EAAC;EAAmB,GACjCD,aAAA,CAACnC,MAAM;IAACqC,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC;EAAY,GACzCH,aAAA,CAACjC,MAAM,QACNiC,aAAA,CAACjC,MAAM;IAACoC,OAAO,EAAC;EAAO,GACpBlB,MAAM,IACPe,aAAA,CAAC3B,MAAM;IACN+B,KAAK,EAAGlB,WAAa;IACrBJ,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACD,EACDiB,aAAA,CAAC5B,OAAO;IACPY,MAAM,EAAGA,MAAQ;IACjBF,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACM,CAAC,EACTiB,aAAA,CAACjC,MAAM;IAACoC,OAAO,EAAC,KAAK;IAACE,QAAQ,EAAG;EAAO,GACvCL,aAAA,CAAC7B,WAAW;IACXa,MAAM,EAAGA,MAAQ;IACjBF,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BS,gBAAgB,EAAGA;EAAkB,CACrC,CACM,CACD,CAAC,EACTQ,aAAA,CAACP,aAAa;IACbT,MAAM,EAAGW,OAAS;IAClBb,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BQ,cAAc,EAAGA,cAAgB;IACjCH,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbC,SAAS,EAAGA;EAAW,CACvB,CAAC,EACFU,aAAA,CAAC9B,UAAU;IACVY,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BQ,cAAc,EAAGA;EAAgB,CACjC,CACM,CACJ,CAAC;AAER"}
@@ -7,60 +7,62 @@ import { __ } from '@wordpress/i18n';
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
- import InFilter from './in-filter';
10
+ import { default as InFilter, OPERATOR_IN } from './in-filter';
11
+ import AddFilter from './add-filter';
12
+ import ResetFilters from './reset-filters';
13
+ const VALID_OPERATORS = [OPERATOR_IN];
11
14
  export default function Filters({
12
15
  fields,
13
16
  view,
14
17
  onChangeView
15
18
  }) {
16
- const filterIndex = {};
19
+ const filters = [];
17
20
  fields.forEach(field => {
18
21
  if (!field.filters) {
19
22
  return;
20
23
  }
21
24
  field.filters.forEach(filter => {
22
- let id = field.id;
23
- if ('string' === typeof filter) {
24
- filterIndex[id] = {
25
- id,
25
+ if (VALID_OPERATORS.some(operator => operator === filter)) {
26
+ filters.push({
27
+ field: field.id,
26
28
  name: field.header,
27
- type: filter
28
- };
29
- }
30
- if ('object' === typeof filter) {
31
- id = filter.id || field.id;
32
- filterIndex[id] = {
33
- id,
34
- name: filter.name || field.header,
35
- type: filter.type
36
- };
37
- }
38
- if ('enumeration' === filterIndex[id]?.type) {
39
- const elements = [{
40
- value: filter.resetValue || '',
41
- label: filter.resetLabel || __('All')
42
- }, ...(field.elements || [])];
43
- filterIndex[id] = {
44
- ...filterIndex[id],
45
- elements
46
- };
29
+ operator: filter,
30
+ elements: [{
31
+ value: '',
32
+ label: __('All')
33
+ }, ...(field.elements || [])],
34
+ isVisible: view.filters.some(f => f.field === field.id && f.operator === filter)
35
+ });
47
36
  }
48
37
  });
49
38
  });
50
- return view.visibleFilters?.map(filterName => {
51
- const filter = filterIndex[filterName];
52
- if (!filter) {
39
+ const filterComponents = filters?.map(filter => {
40
+ if (!filter.isVisible) {
53
41
  return null;
54
42
  }
55
- if (filter.type === 'enumeration') {
43
+ if (OPERATOR_IN === filter.operator) {
56
44
  return createElement(InFilter, {
57
- key: filterName,
45
+ key: filter.field + '.' + filter.operator,
58
46
  filter: filter,
59
47
  view: view,
60
48
  onChangeView: onChangeView
61
49
  });
62
50
  }
63
51
  return null;
64
- }) || __('No filters available');
52
+ });
53
+ filterComponents.push(createElement(AddFilter, {
54
+ key: "add-filter",
55
+ fields: fields,
56
+ view: view,
57
+ onChangeView: onChangeView
58
+ }));
59
+ if (filterComponents.length > 1) {
60
+ filterComponents.push(createElement(ResetFilters, {
61
+ key: "reset-filters",
62
+ view: view,
63
+ onChangeView: onChangeView
64
+ }));
65
+ }
66
+ return filterComponents;
65
67
  }
66
68
  //# sourceMappingURL=filters.js.map