@wordpress/edit-site 5.20.1 → 5.21.1-next.f8d8eceb.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 (260) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +121 -0
  3. package/build/components/actions/index.js.map +1 -0
  4. package/build/components/add-new-template/add-custom-template-modal-content.js +17 -13
  5. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  6. package/build/components/block-editor/resize-handle.js +2 -1
  7. package/build/components/block-editor/resize-handle.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +12 -4
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/create-template-part-modal/index.js +10 -6
  11. package/build/components/create-template-part-modal/index.js.map +1 -1
  12. package/build/components/dataviews/context.js +15 -0
  13. package/build/components/dataviews/context.js.map +1 -0
  14. package/build/components/dataviews/dataviews.js +50 -33
  15. package/build/components/dataviews/dataviews.js.map +1 -1
  16. package/build/components/dataviews/filters.js +74 -0
  17. package/build/components/dataviews/filters.js.map +1 -0
  18. package/build/components/dataviews/in-filter.js +49 -0
  19. package/build/components/dataviews/in-filter.js.map +1 -0
  20. package/build/components/dataviews/index.js +0 -7
  21. package/build/components/dataviews/index.js.map +1 -1
  22. package/build/components/dataviews/item-actions.js +62 -0
  23. package/build/components/dataviews/item-actions.js.map +1 -0
  24. package/build/components/dataviews/pagination.js +74 -45
  25. package/build/components/dataviews/pagination.js.map +1 -1
  26. package/build/components/dataviews/{text-filter.js → search.js} +21 -15
  27. package/build/components/dataviews/search.js.map +1 -0
  28. package/build/components/dataviews/view-actions.js +94 -56
  29. package/build/components/dataviews/view-actions.js.map +1 -1
  30. package/build/components/dataviews/view-grid.js +59 -0
  31. package/build/components/dataviews/view-grid.js.map +1 -0
  32. package/build/components/dataviews/view-list.js +283 -0
  33. package/build/components/dataviews/view-list.js.map +1 -0
  34. package/build/components/editor/index.js +2 -1
  35. package/build/components/editor/index.js.map +1 -1
  36. package/build/components/global-styles/font-library-modal/context.js +16 -10
  37. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  38. package/build/components/global-styles/font-library-modal/font-collection.js +20 -6
  39. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  40. package/build/components/global-styles/screen-block.js +2 -10
  41. package/build/components/global-styles/screen-block.js.map +1 -1
  42. package/build/components/global-styles/screen-root.js +1 -2
  43. package/build/components/global-styles/screen-root.js.map +1 -1
  44. package/build/components/global-styles/ui.js +3 -4
  45. package/build/components/global-styles/ui.js.map +1 -1
  46. package/build/components/layout/index.js +10 -2
  47. package/build/components/layout/index.js.map +1 -1
  48. package/build/components/media/index.js +34 -0
  49. package/build/components/media/index.js.map +1 -0
  50. package/build/components/page-actions/index.js +0 -2
  51. package/build/components/page-actions/index.js.map +1 -1
  52. package/build/components/page-pages/default-views.js +60 -0
  53. package/build/components/page-pages/default-views.js.map +1 -0
  54. package/build/components/page-pages/index.js +174 -107
  55. package/build/components/page-pages/index.js.map +1 -1
  56. package/build/components/page-patterns/delete-category-menu-item.js +89 -0
  57. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -0
  58. package/build/components/page-patterns/duplicate-menu-item.js +52 -131
  59. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  60. package/build/components/page-patterns/grid-item.js +1 -0
  61. package/build/components/page-patterns/grid-item.js.map +1 -1
  62. package/build/components/page-patterns/header.js +25 -3
  63. package/build/components/page-patterns/header.js.map +1 -1
  64. package/build/components/page-patterns/rename-category-menu-item.js +49 -0
  65. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -0
  66. package/build/components/page-patterns/rename-menu-item.js +1 -1
  67. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  68. package/build/components/page-patterns/use-patterns.js +1 -0
  69. package/build/components/page-patterns/use-patterns.js.map +1 -1
  70. package/build/components/pattern-modal/duplicate.js +65 -0
  71. package/build/components/pattern-modal/duplicate.js.map +1 -0
  72. package/build/components/pattern-modal/index.js +24 -0
  73. package/build/components/pattern-modal/index.js.map +1 -0
  74. package/build/components/pattern-modal/rename.js +42 -0
  75. package/build/components/pattern-modal/rename.js.map +1 -0
  76. package/build/components/sidebar/index.js +3 -1
  77. package/build/components/sidebar/index.js.map +1 -1
  78. package/build/components/sidebar-dataviews/index.js +72 -0
  79. package/build/components/sidebar-dataviews/index.js.map +1 -0
  80. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
  81. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  82. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
  83. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  84. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
  85. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  86. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +29 -0
  87. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
  88. package/build/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
  89. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  90. package/build/hooks/commands/use-common-commands.js +1 -2
  91. package/build/hooks/commands/use-common-commands.js.map +1 -1
  92. package/build/hooks/commands/use-edit-mode-commands.js +50 -0
  93. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  94. package/build/lock-unlock.js +1 -1
  95. package/build/lock-unlock.js.map +1 -1
  96. package/build/store/selectors.js +4 -5
  97. package/build/store/selectors.js.map +1 -1
  98. package/build-module/components/actions/index.js +108 -0
  99. package/build-module/components/actions/index.js.map +1 -0
  100. package/build-module/components/add-new-template/add-custom-template-modal-content.js +16 -12
  101. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  102. package/build-module/components/block-editor/resize-handle.js +2 -1
  103. package/build-module/components/block-editor/resize-handle.js.map +1 -1
  104. package/build-module/components/block-editor/use-site-editor-settings.js +12 -4
  105. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  106. package/build-module/components/create-template-part-modal/index.js +10 -6
  107. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  108. package/build-module/components/dataviews/context.js +7 -0
  109. package/build-module/components/dataviews/context.js.map +1 -0
  110. package/build-module/components/dataviews/dataviews.js +49 -32
  111. package/build-module/components/dataviews/dataviews.js.map +1 -1
  112. package/build-module/components/dataviews/filters.js +66 -0
  113. package/build-module/components/dataviews/filters.js.map +1 -0
  114. package/build-module/components/dataviews/in-filter.js +41 -0
  115. package/build-module/components/dataviews/in-filter.js.map +1 -0
  116. package/build-module/components/dataviews/index.js +0 -1
  117. package/build-module/components/dataviews/index.js.map +1 -1
  118. package/build-module/components/dataviews/item-actions.js +55 -0
  119. package/build-module/components/dataviews/item-actions.js.map +1 -0
  120. package/build-module/components/dataviews/pagination.js +73 -46
  121. package/build-module/components/dataviews/pagination.js.map +1 -1
  122. package/build-module/components/dataviews/search.js +42 -0
  123. package/build-module/components/dataviews/search.js.map +1 -0
  124. package/build-module/components/dataviews/view-actions.js +95 -54
  125. package/build-module/components/dataviews/view-actions.js.map +1 -1
  126. package/build-module/components/dataviews/view-grid.js +51 -0
  127. package/build-module/components/dataviews/view-grid.js.map +1 -0
  128. package/build-module/components/dataviews/view-list.js +274 -0
  129. package/build-module/components/dataviews/view-list.js.map +1 -0
  130. package/build-module/components/editor/index.js +2 -1
  131. package/build-module/components/editor/index.js.map +1 -1
  132. package/build-module/components/global-styles/font-library-modal/context.js +16 -10
  133. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  134. package/build-module/components/global-styles/font-library-modal/font-collection.js +20 -6
  135. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  136. package/build-module/components/global-styles/screen-block.js +2 -10
  137. package/build-module/components/global-styles/screen-block.js.map +1 -1
  138. package/build-module/components/global-styles/screen-root.js +1 -2
  139. package/build-module/components/global-styles/screen-root.js.map +1 -1
  140. package/build-module/components/global-styles/ui.js +3 -4
  141. package/build-module/components/global-styles/ui.js.map +1 -1
  142. package/build-module/components/layout/index.js +11 -3
  143. package/build-module/components/layout/index.js.map +1 -1
  144. package/build-module/components/media/index.js +26 -0
  145. package/build-module/components/media/index.js.map +1 -0
  146. package/build-module/components/page-actions/index.js +0 -2
  147. package/build-module/components/page-actions/index.js.map +1 -1
  148. package/build-module/components/page-pages/default-views.js +53 -0
  149. package/build-module/components/page-pages/default-views.js.map +1 -0
  150. package/build-module/components/page-pages/index.js +175 -110
  151. package/build-module/components/page-pages/index.js.map +1 -1
  152. package/build-module/components/page-patterns/delete-category-menu-item.js +82 -0
  153. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -0
  154. package/build-module/components/page-patterns/duplicate-menu-item.js +54 -133
  155. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  156. package/build-module/components/page-patterns/grid-item.js +1 -0
  157. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  158. package/build-module/components/page-patterns/header.js +26 -4
  159. package/build-module/components/page-patterns/header.js.map +1 -1
  160. package/build-module/components/page-patterns/rename-category-menu-item.js +42 -0
  161. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -0
  162. package/build-module/components/page-patterns/rename-menu-item.js +1 -1
  163. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  164. package/build-module/components/page-patterns/use-patterns.js +1 -0
  165. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  166. package/build-module/components/pattern-modal/duplicate.js +57 -0
  167. package/build-module/components/pattern-modal/duplicate.js.map +1 -0
  168. package/build-module/components/pattern-modal/index.js +14 -0
  169. package/build-module/components/pattern-modal/index.js.map +1 -0
  170. package/build-module/components/pattern-modal/rename.js +34 -0
  171. package/build-module/components/pattern-modal/rename.js.map +1 -0
  172. package/build-module/components/sidebar/index.js +3 -1
  173. package/build-module/components/sidebar/index.js.map +1 -1
  174. package/build-module/components/sidebar-dataviews/index.js +64 -0
  175. package/build-module/components/sidebar-dataviews/index.js.map +1 -0
  176. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
  177. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  178. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
  179. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  180. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
  181. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  182. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +22 -0
  183. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
  184. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
  185. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  186. package/build-module/hooks/commands/use-common-commands.js +1 -2
  187. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  188. package/build-module/hooks/commands/use-edit-mode-commands.js +51 -1
  189. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  190. package/build-module/lock-unlock.js +1 -1
  191. package/build-module/lock-unlock.js.map +1 -1
  192. package/build-module/store/selectors.js +4 -5
  193. package/build-module/store/selectors.js.map +1 -1
  194. package/build-style/style-rtl.css +48 -11
  195. package/build-style/style.css +48 -11
  196. package/package.json +40 -40
  197. package/src/components/actions/index.js +123 -0
  198. package/src/components/add-new-template/add-custom-template-modal-content.js +22 -17
  199. package/src/components/block-editor/resize-handle.js +1 -0
  200. package/src/components/block-editor/use-site-editor-settings.js +21 -13
  201. package/src/components/create-template-part-modal/index.js +9 -5
  202. package/src/components/dataviews/README.md +194 -0
  203. package/src/components/dataviews/context.js +7 -0
  204. package/src/components/dataviews/dataviews.js +55 -34
  205. package/src/components/dataviews/filters.js +75 -0
  206. package/src/components/dataviews/in-filter.js +45 -0
  207. package/src/components/dataviews/index.js +0 -1
  208. package/src/components/dataviews/item-actions.js +69 -0
  209. package/src/components/dataviews/pagination.js +80 -59
  210. package/src/components/dataviews/search.js +41 -0
  211. package/src/components/dataviews/style.scss +18 -3
  212. package/src/components/dataviews/view-actions.js +108 -63
  213. package/src/components/dataviews/view-grid.js +65 -0
  214. package/src/components/dataviews/view-list.js +348 -0
  215. package/src/components/editor/index.js +2 -0
  216. package/src/components/global-styles/font-library-modal/context.js +17 -11
  217. package/src/components/global-styles/font-library-modal/font-collection.js +19 -11
  218. package/src/components/global-styles/screen-block.js +2 -9
  219. package/src/components/global-styles/screen-root.js +1 -2
  220. package/src/components/global-styles/style.scss +16 -4
  221. package/src/components/global-styles/ui.js +1 -2
  222. package/src/components/layout/index.js +12 -4
  223. package/src/components/media/index.js +25 -0
  224. package/src/components/page-actions/index.js +1 -7
  225. package/src/components/page-pages/default-views.js +58 -0
  226. package/src/components/page-pages/index.js +181 -108
  227. package/src/components/page-pages/style.scss +3 -0
  228. package/src/components/page-patterns/delete-category-menu-item.js +104 -0
  229. package/src/components/page-patterns/duplicate-menu-item.js +68 -181
  230. package/src/components/page-patterns/grid-item.js +1 -0
  231. package/src/components/page-patterns/header.js +42 -6
  232. package/src/components/page-patterns/rename-category-menu-item.js +45 -0
  233. package/src/components/page-patterns/rename-menu-item.js +2 -2
  234. package/src/components/page-patterns/style.scss +8 -0
  235. package/src/components/page-patterns/use-patterns.js +5 -0
  236. package/src/components/pattern-modal/duplicate.js +53 -0
  237. package/src/components/pattern-modal/index.js +19 -0
  238. package/src/components/pattern-modal/rename.js +29 -0
  239. package/src/components/sidebar/index.js +2 -0
  240. package/src/components/sidebar-dataviews/index.js +65 -0
  241. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +4 -0
  242. package/src/components/sidebar-navigation-screen/style.scss +17 -5
  243. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -7
  244. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -8
  245. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +32 -0
  246. package/src/components/sidebar-navigation-screen-template/home-template-details.js +21 -7
  247. package/src/hooks/commands/use-common-commands.js +1 -2
  248. package/src/hooks/commands/use-edit-mode-commands.js +43 -0
  249. package/src/lock-unlock.js +1 -1
  250. package/src/store/selectors.js +9 -10
  251. package/src/style.scss +1 -0
  252. package/build/components/dataviews/list-view.js +0 -89
  253. package/build/components/dataviews/list-view.js.map +0 -1
  254. package/build/components/dataviews/text-filter.js.map +0 -1
  255. package/build-module/components/dataviews/list-view.js +0 -80
  256. package/build-module/components/dataviews/list-view.js.map +0 -1
  257. package/build-module/components/dataviews/text-filter.js +0 -36
  258. package/build-module/components/dataviews/text-filter.js.map +0 -1
  259. package/src/components/dataviews/list-view.js +0 -106
  260. package/src/components/dataviews/text-filter.js +0 -37
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","DataviewsContext"],"sources":["@wordpress/edit-site/src/components/dataviews/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nconst DataviewsContext = createContext( {} );\nexport default DataviewsContext;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,oBAAoB;AAElD,MAAMC,gBAAgB,GAAGD,aAAa,CAAE,CAAC,CAAE,CAAC;AAC5C,eAAeC,gBAAgB"}
@@ -1,53 +1,70 @@
1
1
  import { createElement } from "react";
2
- /**
3
- * External dependencies
4
- */
5
- import { getCoreRowModel, getFilteredRowModel, getSortedRowModel, getPaginationRowModel, useReactTable } from '@tanstack/react-table';
6
-
7
2
  /**
8
3
  * WordPress dependencies
9
4
  */
10
5
  import { __experimentalVStack as VStack, __experimentalHStack as HStack } from '@wordpress/components';
6
+ import { useMemo } from '@wordpress/element';
11
7
 
12
8
  /**
13
9
  * Internal dependencies
14
10
  */
15
- import ListView from './list-view';
16
- import { Pagination } from './pagination';
11
+ import ViewList from './view-list';
12
+ import Pagination from './pagination';
17
13
  import ViewActions from './view-actions';
18
- import TextFilter from './text-filter';
14
+ import Filters from './filters';
15
+ import Search from './search';
16
+ import { ViewGrid } from './view-grid';
19
17
  export default function DataViews({
20
- data,
18
+ view,
19
+ onChangeView,
21
20
  fields,
22
- isLoading,
23
- paginationInfo,
24
- options
21
+ search = true,
22
+ searchLabel = undefined,
23
+ actions,
24
+ data,
25
+ isLoading = false,
26
+ paginationInfo
25
27
  }) {
26
- const dataView = useReactTable({
27
- data,
28
- columns: fields,
29
- ...options,
30
- getCoreRowModel: getCoreRowModel(),
31
- getFilteredRowModel: getFilteredRowModel(),
32
- getSortedRowModel: getSortedRowModel(),
33
- getPaginationRowModel: getPaginationRowModel()
34
- });
28
+ const ViewComponent = view.type === 'list' ? ViewList : ViewGrid;
29
+ const _fields = useMemo(() => {
30
+ return fields.map(field => ({
31
+ ...field,
32
+ render: field.render || field.getValue
33
+ }));
34
+ }, [fields]);
35
35
  return createElement("div", {
36
36
  className: "dataviews-wrapper"
37
37
  }, createElement(VStack, {
38
- spacing: 4
39
- }, createElement(HStack, {
40
- justify: "space-between"
41
- }, createElement(TextFilter, {
42
- onChange: dataView.setGlobalFilter
43
- }), createElement(ViewActions, {
44
- dataView: dataView
45
- })), createElement(ListView, {
46
- dataView: dataView,
38
+ spacing: 4,
39
+ justify: "flex-start"
40
+ }, createElement(HStack, null, createElement(HStack, {
41
+ justify: "start"
42
+ }, search && createElement(Search, {
43
+ label: searchLabel,
44
+ view: view,
45
+ onChangeView: onChangeView
46
+ }), createElement(Filters, {
47
+ fields: fields,
48
+ view: view,
49
+ onChangeView: onChangeView
50
+ })), createElement(HStack, {
51
+ justify: "end"
52
+ }, createElement(ViewActions, {
53
+ fields: fields,
54
+ view: view,
55
+ onChangeView: onChangeView
56
+ }))), createElement(ViewComponent, {
57
+ fields: _fields,
58
+ view: view,
59
+ onChangeView: onChangeView,
60
+ paginationInfo: paginationInfo,
61
+ actions: actions,
62
+ data: data,
47
63
  isLoading: isLoading
48
64
  }), createElement(Pagination, {
49
- dataView: dataView,
50
- totalItems: paginationInfo?.totalItems
65
+ view: view,
66
+ onChangeView: onChangeView,
67
+ paginationInfo: paginationInfo
51
68
  })));
52
69
  }
53
70
  //# sourceMappingURL=dataviews.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getCoreRowModel","getFilteredRowModel","getSortedRowModel","getPaginationRowModel","useReactTable","__experimentalVStack","VStack","__experimentalHStack","HStack","ListView","Pagination","ViewActions","TextFilter","DataViews","data","fields","isLoading","paginationInfo","options","dataView","columns","createElement","className","spacing","justify","onChange","setGlobalFilter","totalItems"],"sources":["@wordpress/edit-site/src/components/dataviews/dataviews.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\tgetPaginationRowModel,\n\tuseReactTable,\n} from '@tanstack/react-table';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ListView from './list-view';\nimport { Pagination } from './pagination';\nimport ViewActions from './view-actions';\nimport TextFilter from './text-filter';\n\nexport default function DataViews( {\n\tdata,\n\tfields,\n\tisLoading,\n\tpaginationInfo,\n\toptions,\n} ) {\n\tconst dataView = useReactTable( {\n\t\tdata,\n\t\tcolumns: fields,\n\t\t...options,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tgetPaginationRowModel: getPaginationRowModel(),\n\t} );\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<TextFilter onChange={ dataView.setGlobalFilter } />\n\t\t\t\t\t<ViewActions dataView={ dataView } />\n\t\t\t\t</HStack>\n\t\t\t\t{ /* This component will be selected based on viewConfigs. Now we only have the list view. */ }\n\t\t\t\t<ListView dataView={ dataView } isLoading={ isLoading } />\n\t\t\t\t<Pagination\n\t\t\t\t\tdataView={ dataView }\n\t\t\t\t\ttotalItems={ paginationInfo?.totalItems }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,eAAe,EACfC,mBAAmB,EACnBC,iBAAiB,EACjBC,qBAAqB,EACrBC,aAAa,QACP,uBAAuB;;AAE9B;AACA;AACA;AACA,SACCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,UAAU,MAAM,eAAe;AAEtC,eAAe,SAASC,SAASA,CAAE;EAClCC,IAAI;EACJC,MAAM;EACNC,SAAS;EACTC,cAAc;EACdC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAGf,aAAa,CAAE;IAC/BU,IAAI;IACJM,OAAO,EAAEL,MAAM;IACf,GAAGG,OAAO;IACVlB,eAAe,EAAEA,eAAe,CAAC,CAAC;IAClCC,mBAAmB,EAAEA,mBAAmB,CAAC,CAAC;IAC1CC,iBAAiB,EAAEA,iBAAiB,CAAC,CAAC;IACtCC,qBAAqB,EAAEA,qBAAqB,CAAC;EAC9C,CAAE,CAAC;EACH,OACCkB,aAAA;IAAKC,SAAS,EAAC;EAAmB,GACjCD,aAAA,CAACf,MAAM;IAACiB,OAAO,EAAG;EAAG,GACpBF,aAAA,CAACb,MAAM;IAACgB,OAAO,EAAC;EAAe,GAC9BH,aAAA,CAACT,UAAU;IAACa,QAAQ,EAAGN,QAAQ,CAACO;EAAiB,CAAE,CAAC,EACpDL,aAAA,CAACV,WAAW;IAACQ,QAAQ,EAAGA;EAAU,CAAE,CAC7B,CAAC,EAETE,aAAA,CAACZ,QAAQ;IAACU,QAAQ,EAAGA,QAAU;IAACH,SAAS,EAAGA;EAAW,CAAE,CAAC,EAC1DK,aAAA,CAACX,UAAU;IACVS,QAAQ,EAAGA,QAAU;IACrBQ,UAAU,EAAGV,cAAc,EAAEU;EAAY,CACzC,CACM,CACJ,CAAC;AAER"}
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"}
@@ -0,0 +1,66 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { __ } from '@wordpress/i18n';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import InFilter from './in-filter';
11
+ export default function Filters({
12
+ fields,
13
+ view,
14
+ onChangeView
15
+ }) {
16
+ const filterIndex = {};
17
+ fields.forEach(field => {
18
+ if (!field.filters) {
19
+ return;
20
+ }
21
+ field.filters.forEach(filter => {
22
+ let id = field.id;
23
+ if ('string' === typeof filter) {
24
+ filterIndex[id] = {
25
+ id,
26
+ 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
+ };
47
+ }
48
+ });
49
+ });
50
+ return view.visibleFilters?.map(filterName => {
51
+ const filter = filterIndex[filterName];
52
+ if (!filter) {
53
+ return null;
54
+ }
55
+ if (filter.type === 'enumeration') {
56
+ return createElement(InFilter, {
57
+ key: filterName,
58
+ filter: filter,
59
+ view: view,
60
+ onChangeView: onChangeView
61
+ });
62
+ }
63
+ return null;
64
+ }) || __('No filters available');
65
+ }
66
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","InFilter","Filters","fields","view","onChangeView","filterIndex","forEach","field","filters","filter","id","name","header","type","elements","value","resetValue","label","resetLabel","visibleFilters","map","filterName","createElement","key"],"sources":["@wordpress/edit-site/src/components/dataviews/filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InFilter from './in-filter';\n\nexport default function Filters( { fields, view, onChangeView } ) {\n\tconst filterIndex = {};\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\tlet id = field.id;\n\t\t\tif ( 'string' === typeof filter ) {\n\t\t\t\tfilterIndex[ id ] = {\n\t\t\t\t\tid,\n\t\t\t\t\tname: field.header,\n\t\t\t\t\ttype: filter,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( 'object' === typeof filter ) {\n\t\t\t\tid = filter.id || field.id;\n\t\t\t\tfilterIndex[ id ] = {\n\t\t\t\t\tid,\n\t\t\t\t\tname: filter.name || field.header,\n\t\t\t\t\ttype: filter.type,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( 'enumeration' === filterIndex[ id ]?.type ) {\n\t\t\t\tconst elements = [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: filter.resetValue || '',\n\t\t\t\t\t\tlabel: filter.resetLabel || __( 'All' ),\n\t\t\t\t\t},\n\t\t\t\t\t...( field.elements || [] ),\n\t\t\t\t];\n\t\t\t\tfilterIndex[ id ] = {\n\t\t\t\t\t...filterIndex[ id ],\n\t\t\t\t\telements,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn (\n\t\tview.visibleFilters?.map( ( filterName ) => {\n\t\t\tconst filter = filterIndex[ filterName ];\n\n\t\t\tif ( ! filter ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( filter.type === 'enumeration' ) {\n\t\t\t\treturn (\n\t\t\t\t\t<InFilter\n\t\t\t\t\t\tkey={ filterName }\n\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t} ) || __( 'No filters available' )\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAElC,eAAe,SAASC,OAAOA,CAAE;EAAEC,MAAM;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EACjE,MAAMC,WAAW,GAAG,CAAC,CAAC;EACtBH,MAAM,CAACI,OAAO,CAAIC,KAAK,IAAM;IAC5B,IAAK,CAAEA,KAAK,CAACC,OAAO,EAAG;MACtB;IACD;IAEAD,KAAK,CAACC,OAAO,CAACF,OAAO,CAAIG,MAAM,IAAM;MACpC,IAAIC,EAAE,GAAGH,KAAK,CAACG,EAAE;MACjB,IAAK,QAAQ,KAAK,OAAOD,MAAM,EAAG;QACjCJ,WAAW,CAAEK,EAAE,CAAE,GAAG;UACnBA,EAAE;UACFC,IAAI,EAAEJ,KAAK,CAACK,MAAM;UAClBC,IAAI,EAAEJ;QACP,CAAC;MACF;MAEA,IAAK,QAAQ,KAAK,OAAOA,MAAM,EAAG;QACjCC,EAAE,GAAGD,MAAM,CAACC,EAAE,IAAIH,KAAK,CAACG,EAAE;QAC1BL,WAAW,CAAEK,EAAE,CAAE,GAAG;UACnBA,EAAE;UACFC,IAAI,EAAEF,MAAM,CAACE,IAAI,IAAIJ,KAAK,CAACK,MAAM;UACjCC,IAAI,EAAEJ,MAAM,CAACI;QACd,CAAC;MACF;MAEA,IAAK,aAAa,KAAKR,WAAW,CAAEK,EAAE,CAAE,EAAEG,IAAI,EAAG;QAChD,MAAMC,QAAQ,GAAG,CAChB;UACCC,KAAK,EAAEN,MAAM,CAACO,UAAU,IAAI,EAAE;UAC9BC,KAAK,EAAER,MAAM,CAACS,UAAU,IAAInB,EAAE,CAAE,KAAM;QACvC,CAAC,EACD,IAAKQ,KAAK,CAACO,QAAQ,IAAI,EAAE,CAAE,CAC3B;QACDT,WAAW,CAAEK,EAAE,CAAE,GAAG;UACnB,GAAGL,WAAW,CAAEK,EAAE,CAAE;UACpBI;QACD,CAAC;MACF;IACD,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OACCX,IAAI,CAACgB,cAAc,EAAEC,GAAG,CAAIC,UAAU,IAAM;IAC3C,MAAMZ,MAAM,GAAGJ,WAAW,CAAEgB,UAAU,CAAE;IAExC,IAAK,CAAEZ,MAAM,EAAG;MACf,OAAO,IAAI;IACZ;IAEA,IAAKA,MAAM,CAACI,IAAI,KAAK,aAAa,EAAG;MACpC,OACCS,aAAA,CAACtB,QAAQ;QACRuB,GAAG,EAAGF,UAAY;QAClBZ,MAAM,EAAGA,MAAQ;QACjBN,IAAI,EAAGA,IAAM;QACbC,YAAY,EAAGA;MAAc,CAC7B,CAAC;IAEJ;IAEA,OAAO,IAAI;EACZ,CAAE,CAAC,IAAIL,EAAE,CAAE,sBAAuB,CAAC;AAErC"}
@@ -0,0 +1,41 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper, SelectControl } from '@wordpress/components';
6
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { unlock } from '../../lock-unlock';
12
+ const {
13
+ cleanEmptyObject
14
+ } = unlock(blockEditorPrivateApis);
15
+ export default (({
16
+ filter,
17
+ view,
18
+ onChangeView
19
+ }) => {
20
+ return createElement(SelectControl, {
21
+ value: view.filters[filter.id],
22
+ prefix: createElement(InputControlPrefixWrapper, {
23
+ as: "span",
24
+ className: "dataviews__select-control-prefix"
25
+ }, filter.name + ':'),
26
+ options: filter.elements,
27
+ onChange: value => {
28
+ if (value === '') {
29
+ value = undefined;
30
+ }
31
+ onChangeView(currentView => ({
32
+ ...currentView,
33
+ filters: cleanEmptyObject({
34
+ ...currentView.filters,
35
+ [filter.id]: value
36
+ })
37
+ }));
38
+ }
39
+ });
40
+ });
41
+ //# sourceMappingURL=in-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__experimentalInputControlPrefixWrapper","InputControlPrefixWrapper","SelectControl","privateApis","blockEditorPrivateApis","unlock","cleanEmptyObject","filter","view","onChangeView","createElement","value","filters","id","prefix","as","className","name","options","elements","onChange","undefined","currentView"],"sources":["@wordpress/edit-site/src/components/dataviews/in-filter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\tSelectControl,\n} from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport default ( { filter, view, onChangeView } ) => {\n\treturn (\n\t\t<SelectControl\n\t\t\tvalue={ view.filters[ filter.id ] }\n\t\t\tprefix={\n\t\t\t\t<InputControlPrefixWrapper\n\t\t\t\t\tas=\"span\"\n\t\t\t\t\tclassName=\"dataviews__select-control-prefix\"\n\t\t\t\t>\n\t\t\t\t\t{ filter.name + ':' }\n\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t}\n\t\t\toptions={ filter.elements }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tif ( value === '' ) {\n\t\t\t\t\tvalue = undefined;\n\t\t\t\t}\n\n\t\t\t\tonChangeView( ( currentView ) => ( {\n\t\t\t\t\t...currentView,\n\t\t\t\t\tfilters: cleanEmptyObject( {\n\t\t\t\t\t\t...currentView.filters,\n\t\t\t\t\t\t[ filter.id ]: value,\n\t\t\t\t\t} ),\n\t\t\t\t} ) );\n\t\t\t} }\n\t\t/>\n\t);\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,uCAAuC,IAAIC,yBAAyB,EACpEC,aAAa,QACP,uBAAuB;AAC9B,SAASC,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;;AAE/E;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAiB,CAAC,GAAGD,MAAM,CAAED,sBAAuB,CAAC;AAE7D,gBAAe,CAAE;EAAEG,MAAM;EAAEC,IAAI;EAAEC;AAAa,CAAC,KAAM;EACpD,OACCC,aAAA,CAACR,aAAa;IACbS,KAAK,EAAGH,IAAI,CAACI,OAAO,CAAEL,MAAM,CAACM,EAAE,CAAI;IACnCC,MAAM,EACLJ,aAAA,CAACT,yBAAyB;MACzBc,EAAE,EAAC,MAAM;MACTC,SAAS,EAAC;IAAkC,GAE1CT,MAAM,CAACU,IAAI,GAAG,GACU,CAC3B;IACDC,OAAO,EAAGX,MAAM,CAACY,QAAU;IAC3BC,QAAQ,EAAKT,KAAK,IAAM;MACvB,IAAKA,KAAK,KAAK,EAAE,EAAG;QACnBA,KAAK,GAAGU,SAAS;MAClB;MAEAZ,YAAY,CAAIa,WAAW,KAAQ;QAClC,GAAGA,WAAW;QACdV,OAAO,EAAEN,gBAAgB,CAAE;UAC1B,GAAGgB,WAAW,CAACV,OAAO;UACtB,CAAEL,MAAM,CAACM,EAAE,GAAIF;QAChB,CAAE;MACH,CAAC,CAAG,CAAC;IACN;EAAG,CACH,CAAC;AAEJ,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export { default as DataViews } from './dataviews';
2
- export { PAGE_SIZE_VALUES } from './view-actions';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","DataViews","PAGE_SIZE_VALUES"],"sources":["@wordpress/edit-site/src/components/dataviews/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { PAGE_SIZE_VALUES } from './view-actions';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa;AAClD,SAASC,gBAAgB,QAAQ,gBAAgB"}
1
+ {"version":3,"names":["default","DataViews"],"sources":["@wordpress/edit-site/src/components/dataviews/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa"}
@@ -0,0 +1,55 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { DropdownMenu, MenuGroup, MenuItem, Button, __experimentalHStack as HStack } from '@wordpress/components';
6
+ import { __ } from '@wordpress/i18n';
7
+ import { useMemo } from '@wordpress/element';
8
+ import { moreVertical } from '@wordpress/icons';
9
+ export default function ItemActions({
10
+ item,
11
+ actions
12
+ }) {
13
+ const {
14
+ primaryActions,
15
+ secondaryActions
16
+ } = useMemo(() => {
17
+ return actions.reduce((accumulator, action) => {
18
+ // If an action is eligible for all items, doesn't need
19
+ // to provide the `isEligible` function.
20
+ if (action.isEligible && !action.isEligible(item)) {
21
+ return accumulator;
22
+ }
23
+ if (action.isPrimary && !!action.icon) {
24
+ accumulator.primaryActions.push(action);
25
+ } else {
26
+ accumulator.secondaryActions.push(action);
27
+ }
28
+ return accumulator;
29
+ }, {
30
+ primaryActions: [],
31
+ secondaryActions: []
32
+ });
33
+ }, [actions, item]);
34
+ if (!primaryActions.length && !secondaryActions.length) {
35
+ return null;
36
+ }
37
+ return createElement(HStack, {
38
+ justify: "flex-end"
39
+ }, !!primaryActions.length && primaryActions.map(action => createElement(Button, {
40
+ label: action.label,
41
+ key: action.id,
42
+ icon: action.icon,
43
+ onClick: () => action.perform(item),
44
+ isDestructive: action.isDestructive,
45
+ size: "compact"
46
+ })), !!secondaryActions.length && createElement(DropdownMenu, {
47
+ icon: moreVertical,
48
+ label: __('Actions')
49
+ }, () => createElement(MenuGroup, null, secondaryActions.map(action => createElement(MenuItem, {
50
+ key: action.id,
51
+ onClick: () => action.perform(item),
52
+ isDestructive: action.isDestructive
53
+ }, action.label)))));
54
+ }
55
+ //# sourceMappingURL=item-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DropdownMenu","MenuGroup","MenuItem","Button","__experimentalHStack","HStack","__","useMemo","moreVertical","ItemActions","item","actions","primaryActions","secondaryActions","reduce","accumulator","action","isEligible","isPrimary","icon","push","length","createElement","justify","map","label","key","id","onClick","perform","isDestructive","size"],"sources":["@wordpress/edit-site/src/components/dataviews/item-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tButton,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\n\nexport default function ItemActions( { item, actions } ) {\n\tconst { primaryActions, secondaryActions } = useMemo( () => {\n\t\treturn actions.reduce(\n\t\t\t( accumulator, action ) => {\n\t\t\t\t// If an action is eligible for all items, doesn't need\n\t\t\t\t// to provide the `isEligible` function.\n\t\t\t\tif ( action.isEligible && ! action.isEligible( item ) ) {\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}\n\t\t\t\tif ( action.isPrimary && !! action.icon ) {\n\t\t\t\t\taccumulator.primaryActions.push( action );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.secondaryActions.push( action );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ primaryActions: [], secondaryActions: [] }\n\t\t);\n\t}, [ actions, item ] );\n\tif ( ! primaryActions.length && ! secondaryActions.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<HStack justify=\"flex-end\">\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ action.label }\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\ticon={ action.icon }\n\t\t\t\t\t\tonClick={ () => action.perform( item ) }\n\t\t\t\t\t\tisDestructive={ action.isDestructive }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t{ !! secondaryActions.length && (\n\t\t\t\t<DropdownMenu icon={ moreVertical } label={ __( 'Actions' ) }>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ secondaryActions.map( ( action ) => (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\t\tonClick={ () => action.perform( item ) }\n\t\t\t\t\t\t\t\t\tisDestructive={ action.isDestructive }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ action.label }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,eAAe,SAASC,WAAWA,CAAE;EAAEC,IAAI;EAAEC;AAAQ,CAAC,EAAG;EACxD,MAAM;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAGN,OAAO,CAAE,MAAM;IAC3D,OAAOI,OAAO,CAACG,MAAM,CACpB,CAAEC,WAAW,EAAEC,MAAM,KAAM;MAC1B;MACA;MACA,IAAKA,MAAM,CAACC,UAAU,IAAI,CAAED,MAAM,CAACC,UAAU,CAAEP,IAAK,CAAC,EAAG;QACvD,OAAOK,WAAW;MACnB;MACA,IAAKC,MAAM,CAACE,SAAS,IAAI,CAAC,CAAEF,MAAM,CAACG,IAAI,EAAG;QACzCJ,WAAW,CAACH,cAAc,CAACQ,IAAI,CAAEJ,MAAO,CAAC;MAC1C,CAAC,MAAM;QACND,WAAW,CAACF,gBAAgB,CAACO,IAAI,CAAEJ,MAAO,CAAC;MAC5C;MACA,OAAOD,WAAW;IACnB,CAAC,EACD;MAAEH,cAAc,EAAE,EAAE;MAAEC,gBAAgB,EAAE;IAAG,CAC5C,CAAC;EACF,CAAC,EAAE,CAAEF,OAAO,EAAED,IAAI,CAAG,CAAC;EACtB,IAAK,CAAEE,cAAc,CAACS,MAAM,IAAI,CAAER,gBAAgB,CAACQ,MAAM,EAAG;IAC3D,OAAO,IAAI;EACZ;EACA,OACCC,aAAA,CAACjB,MAAM;IAACkB,OAAO,EAAC;EAAU,GACvB,CAAC,CAAEX,cAAc,CAACS,MAAM,IACzBT,cAAc,CAACY,GAAG,CAAIR,MAAM,IAC3BM,aAAA,CAACnB,MAAM;IACNsB,KAAK,EAAGT,MAAM,CAACS,KAAO;IACtBC,GAAG,EAAGV,MAAM,CAACW,EAAI;IACjBR,IAAI,EAAGH,MAAM,CAACG,IAAM;IACpBS,OAAO,EAAGA,CAAA,KAAMZ,MAAM,CAACa,OAAO,CAAEnB,IAAK,CAAG;IACxCoB,aAAa,EAAGd,MAAM,CAACc,aAAe;IACtCC,IAAI,EAAC;EAAS,CACd,CACA,CAAC,EACF,CAAC,CAAElB,gBAAgB,CAACQ,MAAM,IAC3BC,aAAA,CAACtB,YAAY;IAACmB,IAAI,EAAGX,YAAc;IAACiB,KAAK,EAAGnB,EAAE,CAAE,SAAU;EAAG,GAC1D,MACDgB,aAAA,CAACrB,SAAS,QACPY,gBAAgB,CAACW,GAAG,CAAIR,MAAM,IAC/BM,aAAA,CAACpB,QAAQ;IACRwB,GAAG,EAAGV,MAAM,CAACW,EAAI;IACjBC,OAAO,EAAGA,CAAA,KAAMZ,MAAM,CAACa,OAAO,CAAEnB,IAAK,CAAG;IACxCoB,aAAa,EAAGd,MAAM,CAACc;EAAe,GAEpCd,MAAM,CAACS,KACA,CACT,CACQ,CAEC,CAER,CAAC;AAEX"}
@@ -5,23 +5,18 @@ import { createElement } from "react";
5
5
  import { Button, __experimentalHStack as HStack, __experimentalText as Text, __experimentalNumberControl as NumberControl } from '@wordpress/components';
6
6
  import { createInterpolateElement } from '@wordpress/element';
7
7
  import { sprintf, __, _x, _n } from '@wordpress/i18n';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import { PageSizeControl } from './view-actions';
13
-
14
- // For now this is copied from the patterns list Pagination component, because
15
- // the datatable pagination starts from index zero(`0`). Eventually all lists will be
16
- // using this one.
17
- export function Pagination({
18
- dataView,
19
- // If passed, use it, as it's for controlled pagination.
20
- totalItems = 0
8
+ import { chevronRight, chevronLeft, previous, next } from '@wordpress/icons';
9
+ function Pagination({
10
+ view,
11
+ onChangeView,
12
+ paginationInfo: {
13
+ totalItems = 0,
14
+ totalPages
15
+ }
21
16
  }) {
22
- const currentPage = dataView.getState().pagination.pageIndex + 1;
23
- const numPages = dataView.getPageCount();
24
- const _totalItems = totalItems || dataView.getCoreRowModel().rows.length;
17
+ if (!totalItems || !totalPages) {
18
+ return null;
19
+ }
25
20
  return createElement(HStack, {
26
21
  expanded: false,
27
22
  spacing: 3,
@@ -33,51 +28,83 @@ export function Pagination({
33
28
  // translators: %s: Total number of entries.
34
29
  sprintf(
35
30
  // translators: %s: Total number of entries.
36
- _n('%s item', '%s items', _totalItems), _totalItems)), !!_totalItems && createElement(HStack, {
31
+ _n('%s item', '%s items', totalItems), totalItems)), !!totalItems && createElement(HStack, {
32
+ expanded: false,
33
+ spacing: 3
34
+ }, createElement(HStack, {
35
+ justify: "flex-start",
37
36
  expanded: false,
38
37
  spacing: 1
39
38
  }, createElement(Button, {
40
- variant: "tertiary",
41
- onClick: () => dataView.setPageIndex(0),
42
- disabled: !dataView.getCanPreviousPage(),
43
- "aria-label": __('First page')
44
- }, "\xAB"), createElement(Button, {
45
- variant: "tertiary",
46
- onClick: () => dataView.previousPage(),
47
- disabled: !dataView.getCanPreviousPage(),
48
- "aria-label": __('Previous page')
49
- }, "\u2039"), createElement(HStack, {
39
+ onClick: () => onChangeView({
40
+ ...view,
41
+ page: 1
42
+ }),
43
+ disabled: view.page === 1,
44
+ label: __('First page'),
45
+ icon: previous,
46
+ showTooltip: true,
47
+ size: "compact"
48
+ }), createElement(Button, {
49
+ onClick: () => onChangeView({
50
+ ...view,
51
+ page: view.page - 1
52
+ }),
53
+ disabled: view.page === 1,
54
+ label: __('Previous page'),
55
+ icon: chevronLeft,
56
+ showTooltip: true,
57
+ size: "compact"
58
+ })), createElement(HStack, {
50
59
  justify: "flex-start",
51
60
  expanded: false,
52
- spacing: 1
61
+ spacing: 2
53
62
  }, createInterpolateElement(sprintf(
54
63
  // translators: %1$s: Current page number, %2$s: Total number of pages.
55
- _x('<CurrenPageControl /> of %2$s', 'paging'), currentPage, numPages), {
64
+ _x('<CurrenPageControl /> of %2$s', 'paging'), view.page, totalPages), {
56
65
  CurrenPageControl: createElement(NumberControl, {
57
66
  "aria-label": __('Current page'),
58
67
  min: 1,
59
- max: numPages,
68
+ max: totalPages,
60
69
  onChange: value => {
61
- if (value > numPages) return;
62
- dataView.setPageIndex(value - 1);
70
+ if (!value || value < 1 || value > totalPages) {
71
+ return;
72
+ }
73
+ onChangeView({
74
+ ...view,
75
+ page: value
76
+ });
63
77
  },
64
78
  step: "1",
65
- value: currentPage,
79
+ value: view.page,
66
80
  isDragEnabled: false,
67
81
  spinControls: "none"
68
82
  })
69
- })), createElement(Button, {
70
- variant: "tertiary",
71
- onClick: () => dataView.nextPage(),
72
- disabled: !dataView.getCanNextPage(),
73
- "aria-label": __('Next page')
74
- }, "\u203A"), createElement(Button, {
75
- variant: "tertiary",
76
- onClick: () => dataView.setPageIndex(dataView.getPageCount() - 1),
77
- disabled: !dataView.getCanNextPage(),
78
- "aria-label": __('Last page')
79
- }, "\xBB")), createElement(PageSizeControl, {
80
- dataView: dataView
81
- }));
83
+ })), createElement(HStack, {
84
+ justify: "flex-start",
85
+ expanded: false,
86
+ spacing: 1
87
+ }, createElement(Button, {
88
+ onClick: () => onChangeView({
89
+ ...view,
90
+ page: view.page + 1
91
+ }),
92
+ disabled: view.page >= totalPages,
93
+ label: __('Next page'),
94
+ icon: chevronRight,
95
+ showTooltip: true,
96
+ size: "compact"
97
+ }), createElement(Button, {
98
+ onClick: () => onChangeView({
99
+ ...view,
100
+ page: totalPages
101
+ }),
102
+ disabled: view.page >= totalPages,
103
+ label: __('Last page'),
104
+ icon: next,
105
+ showTooltip: true,
106
+ size: "compact"
107
+ }))));
82
108
  }
109
+ export default Pagination;
83
110
  //# sourceMappingURL=pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Button","__experimentalHStack","HStack","__experimentalText","Text","__experimentalNumberControl","NumberControl","createInterpolateElement","sprintf","__","_x","_n","PageSizeControl","Pagination","dataView","totalItems","currentPage","getState","pagination","pageIndex","numPages","getPageCount","_totalItems","getCoreRowModel","rows","length","createElement","expanded","spacing","justify","className","variant","onClick","setPageIndex","disabled","getCanPreviousPage","previousPage","CurrenPageControl","min","max","onChange","value","step","isDragEnabled","spinControls","nextPage","getCanNextPage"],"sources":["@wordpress/edit-site/src/components/dataviews/pagination.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { sprintf, __, _x, _n } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { PageSizeControl } from './view-actions';\n\n// For now this is copied from the patterns list Pagination component, because\n// the datatable pagination starts from index zero(`0`). Eventually all lists will be\n// using this one.\nexport function Pagination( {\n\tdataView,\n\t// If passed, use it, as it's for controlled pagination.\n\ttotalItems = 0,\n} ) {\n\tconst currentPage = dataView.getState().pagination.pageIndex + 1;\n\tconst numPages = dataView.getPageCount();\n\tconst _totalItems = totalItems || dataView.getCoreRowModel().rows.length;\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tspacing={ 3 }\n\t\t\tjustify=\"space-between\"\n\t\t\tclassName=\"dataviews-pagination\"\n\t\t>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of entries.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of entries.\n\t\t\t\t\t\t_n( '%s item', '%s items', _totalItems ),\n\t\t\t\t\t\t_totalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t{ !! _totalItems && (\n\t\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => dataView.setPageIndex( 0 ) }\n\t\t\t\t\t\tdisabled={ ! dataView.getCanPreviousPage() }\n\t\t\t\t\t\taria-label={ __( 'First page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t«\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => dataView.previousPage() }\n\t\t\t\t\t\tdisabled={ ! dataView.getCanPreviousPage() }\n\t\t\t\t\t\taria-label={ __( 'Previous page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t‹\n\t\t\t\t\t</Button>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t\t\t\t_x( '<CurrenPageControl /> of %2$s', 'paging' ),\n\t\t\t\t\t\t\t\tcurrentPage,\n\t\t\t\t\t\t\t\tnumPages\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tCurrenPageControl: (\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\t\tmax={ numPages }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( value > numPages ) return;\n\t\t\t\t\t\t\t\t\t\t\tdataView.setPageIndex( value - 1 );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t\t\t\t\tvalue={ currentPage }\n\t\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\t\tspinControls=\"none\"\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) }\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => dataView.nextPage() }\n\t\t\t\t\t\tdisabled={ ! dataView.getCanNextPage() }\n\t\t\t\t\t\taria-label={ __( 'Next page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t›\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tdataView.setPageIndex( dataView.getPageCount() - 1 )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ ! dataView.getCanNextPage() }\n\t\t\t\t\t\taria-label={ __( 'Last page' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t»\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t<PageSizeControl dataView={ dataView } />\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","__experimentalHStack","HStack","__experimentalText","Text","__experimentalNumberControl","NumberControl","createInterpolateElement","sprintf","__","_x","_n","chevronRight","chevronLeft","previous","next","Pagination","view","onChangeView","paginationInfo","totalItems","totalPages","createElement","expanded","spacing","justify","className","variant","onClick","page","disabled","label","icon","showTooltip","size","CurrenPageControl","min","max","onChange","value","step","isDragEnabled","spinControls"],"sources":["@wordpress/edit-site/src/components/dataviews/pagination.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { sprintf, __, _x, _n } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft, previous, next } from '@wordpress/icons';\n\nfunction Pagination( {\n\tview,\n\tonChangeView,\n\tpaginationInfo: { totalItems = 0, totalPages },\n} ) {\n\tif ( ! totalItems || ! totalPages ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tspacing={ 3 }\n\t\t\tjustify=\"space-between\"\n\t\t\tclassName=\"dataviews-pagination\"\n\t\t>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of entries.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of entries.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t{ !! totalItems && (\n\t\t\t\t<HStack expanded={ false } spacing={ 3 }>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: 1 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t\tlabel={ __( 'First page' ) }\n\t\t\t\t\t\t\ticon={ previous }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page - 1 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t\t\t\t_x( '<CurrenPageControl /> of %2$s', 'paging' ),\n\t\t\t\t\t\t\t\tview.page,\n\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tCurrenPageControl: (\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\t\tmax={ totalPages }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t! value ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue < 1 ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue > totalPages\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tpage: 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\tstep=\"1\"\n\t\t\t\t\t\t\t\t\t\tvalue={ view.page }\n\t\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\t\tspinControls=\"none\"\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) }\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page + 1 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: totalPages } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t\tlabel={ __( 'Last page' ) }\n\t\t\t\t\t\t\ticon={ next }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport default Pagination;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,oBAAoB,IAAIC,MAAM,EAC9BC,kBAAkB,IAAIC,IAAI,EAC1BC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,wBAAwB,QAAQ,oBAAoB;AAC7D,SAASC,OAAO,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACrD,SAASC,YAAY,EAAEC,WAAW,EAAEC,QAAQ,EAAEC,IAAI,QAAQ,kBAAkB;AAE5E,SAASC,UAAUA,CAAE;EACpBC,IAAI;EACJC,YAAY;EACZC,cAAc,EAAE;IAAEC,UAAU,GAAG,CAAC;IAAEC;EAAW;AAC9C,CAAC,EAAG;EACH,IAAK,CAAED,UAAU,IAAI,CAAEC,UAAU,EAAG;IACnC,OAAO,IAAI;EACZ;EACA,OACCC,aAAA,CAACpB,MAAM;IACNqB,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,eAAe;IACvBC,SAAS,EAAC;EAAsB,GAEhCJ,aAAA,CAAClB,IAAI;IAACuB,OAAO,EAAC;EAAO;EAEnB;EACAnB,OAAO;EACN;EACAG,EAAE,CAAE,SAAS,EAAE,UAAU,EAAES,UAAW,CAAC,EACvCA,UACD,CAEI,CAAC,EACL,CAAC,CAAEA,UAAU,IACdE,aAAA,CAACpB,MAAM;IAACqB,QAAQ,EAAG,KAAO;IAACC,OAAO,EAAG;EAAG,GACvCF,aAAA,CAACpB,MAAM;IACNuB,OAAO,EAAC,YAAY;IACpBF,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG;EAAG,GAEbF,aAAA,CAACtB,MAAM;IACN4B,OAAO,EAAGA,CAAA,KACTV,YAAY,CAAE;MAAE,GAAGD,IAAI;MAAEY,IAAI,EAAE;IAAE,CAAE,CACnC;IACDC,QAAQ,EAAGb,IAAI,CAACY,IAAI,KAAK,CAAG;IAC5BE,KAAK,EAAGtB,EAAE,CAAE,YAAa,CAAG;IAC5BuB,IAAI,EAAGlB,QAAU;IACjBmB,WAAW;IACXC,IAAI,EAAC;EAAS,CACd,CAAC,EACFZ,aAAA,CAACtB,MAAM;IACN4B,OAAO,EAAGA,CAAA,KACTV,YAAY,CAAE;MAAE,GAAGD,IAAI;MAAEY,IAAI,EAAEZ,IAAI,CAACY,IAAI,GAAG;IAAE,CAAE,CAC/C;IACDC,QAAQ,EAAGb,IAAI,CAACY,IAAI,KAAK,CAAG;IAC5BE,KAAK,EAAGtB,EAAE,CAAE,eAAgB,CAAG;IAC/BuB,IAAI,EAAGnB,WAAa;IACpBoB,WAAW;IACXC,IAAI,EAAC;EAAS,CACd,CACM,CAAC,EACTZ,aAAA,CAACpB,MAAM;IACNuB,OAAO,EAAC,YAAY;IACpBF,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG;EAAG,GAEXjB,wBAAwB,CACzBC,OAAO;EACN;EACAE,EAAE,CAAE,+BAA+B,EAAE,QAAS,CAAC,EAC/CO,IAAI,CAACY,IAAI,EACTR,UACD,CAAC,EACD;IACCc,iBAAiB,EAChBb,aAAA,CAAChB,aAAa;MACb,cAAaG,EAAE,CAAE,cAAe,CAAG;MACnC2B,GAAG,EAAG,CAAG;MACTC,GAAG,EAAGhB,UAAY;MAClBiB,QAAQ,EAAKC,KAAK,IAAM;QACvB,IACC,CAAEA,KAAK,IACPA,KAAK,GAAG,CAAC,IACTA,KAAK,GAAGlB,UAAU,EACjB;UACD;QACD;QACAH,YAAY,CAAE;UACb,GAAGD,IAAI;UACPY,IAAI,EAAEU;QACP,CAAE,CAAC;MACJ,CAAG;MACHC,IAAI,EAAC,GAAG;MACRD,KAAK,EAAGtB,IAAI,CAACY,IAAM;MACnBY,aAAa,EAAG,KAAO;MACvBC,YAAY,EAAC;IAAM,CACnB;EAEH,CACD,CACO,CAAC,EACTpB,aAAA,CAACpB,MAAM;IACNuB,OAAO,EAAC,YAAY;IACpBF,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG;EAAG,GAEbF,aAAA,CAACtB,MAAM;IACN4B,OAAO,EAAGA,CAAA,KACTV,YAAY,CAAE;MAAE,GAAGD,IAAI;MAAEY,IAAI,EAAEZ,IAAI,CAACY,IAAI,GAAG;IAAE,CAAE,CAC/C;IACDC,QAAQ,EAAGb,IAAI,CAACY,IAAI,IAAIR,UAAY;IACpCU,KAAK,EAAGtB,EAAE,CAAE,WAAY,CAAG;IAC3BuB,IAAI,EAAGpB,YAAc;IACrBqB,WAAW;IACXC,IAAI,EAAC;EAAS,CACd,CAAC,EACFZ,aAAA,CAACtB,MAAM;IACN4B,OAAO,EAAGA,CAAA,KACTV,YAAY,CAAE;MAAE,GAAGD,IAAI;MAAEY,IAAI,EAAER;IAAW,CAAE,CAC5C;IACDS,QAAQ,EAAGb,IAAI,CAACY,IAAI,IAAIR,UAAY;IACpCU,KAAK,EAAGtB,EAAE,CAAE,WAAY,CAAG;IAC3BuB,IAAI,EAAGjB,IAAM;IACbkB,WAAW;IACXC,IAAI,EAAC;EAAS,CACd,CACM,CACD,CAEF,CAAC;AAEX;AAEA,eAAelB,UAAU"}
@@ -0,0 +1,42 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { __ } from '@wordpress/i18n';
6
+ import { useEffect, useRef } from '@wordpress/element';
7
+ import { SearchControl } from '@wordpress/components';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import useDebouncedInput from '../../utils/use-debounced-input';
13
+ export default function Search({
14
+ label,
15
+ view,
16
+ onChangeView
17
+ }) {
18
+ const [search, setSearch, debouncedSearch] = useDebouncedInput(view.search);
19
+ useEffect(() => {
20
+ setSearch(view.search);
21
+ }, [view]);
22
+ const onChangeViewRef = useRef(onChangeView);
23
+ useEffect(() => {
24
+ onChangeViewRef.current = onChangeView;
25
+ }, [onChangeView]);
26
+ useEffect(() => {
27
+ onChangeViewRef.current(currentView => ({
28
+ ...currentView,
29
+ page: 1,
30
+ search: debouncedSearch
31
+ }));
32
+ }, [debouncedSearch]);
33
+ const searchLabel = label || __('Filter list');
34
+ return createElement(SearchControl, {
35
+ onChange: setSearch,
36
+ value: search,
37
+ label: searchLabel,
38
+ placeholder: searchLabel,
39
+ size: "compact"
40
+ });
41
+ }
42
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","useEffect","useRef","SearchControl","useDebouncedInput","Search","label","view","onChangeView","search","setSearch","debouncedSearch","onChangeViewRef","current","currentView","page","searchLabel","createElement","onChange","value","placeholder","size"],"sources":["@wordpress/edit-site/src/components/dataviews/search.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useDebouncedInput from '../../utils/use-debounced-input';\n\nexport default function Search( { label, view, onChangeView } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput(\n\t\tview.search\n\t);\n\tuseEffect( () => {\n\t\tsetSearch( view.search );\n\t}, [ view ] );\n\tconst onChangeViewRef = useRef( onChangeView );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current = onChangeView;\n\t}, [ onChangeView ] );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tpage: 1,\n\t\t\tsearch: debouncedSearch,\n\t\t} ) );\n\t}, [ debouncedSearch ] );\n\tconst searchLabel = label || __( 'Filter list' );\n\treturn (\n\t\t<SearchControl\n\t\t\tonChange={ setSearch }\n\t\t\tvalue={ search }\n\t\t\tlabel={ searchLabel }\n\t\t\tplaceholder={ searchLabel }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACtD,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,iCAAiC;AAE/D,eAAe,SAASC,MAAMA,CAAE;EAAEC,KAAK;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EAC/D,MAAM,CAAEC,MAAM,EAAEC,SAAS,EAAEC,eAAe,CAAE,GAAGP,iBAAiB,CAC/DG,IAAI,CAACE,MACN,CAAC;EACDR,SAAS,CAAE,MAAM;IAChBS,SAAS,CAAEH,IAAI,CAACE,MAAO,CAAC;EACzB,CAAC,EAAE,CAAEF,IAAI,CAAG,CAAC;EACb,MAAMK,eAAe,GAAGV,MAAM,CAAEM,YAAa,CAAC;EAC9CP,SAAS,CAAE,MAAM;IAChBW,eAAe,CAACC,OAAO,GAAGL,YAAY;EACvC,CAAC,EAAE,CAAEA,YAAY,CAAG,CAAC;EACrBP,SAAS,CAAE,MAAM;IAChBW,eAAe,CAACC,OAAO,CAAIC,WAAW,KAAQ;MAC7C,GAAGA,WAAW;MACdC,IAAI,EAAE,CAAC;MACPN,MAAM,EAAEE;IACT,CAAC,CAAG,CAAC;EACN,CAAC,EAAE,CAAEA,eAAe,CAAG,CAAC;EACxB,MAAMK,WAAW,GAAGV,KAAK,IAAIN,EAAE,CAAE,aAAc,CAAC;EAChD,OACCiB,aAAA,CAACd,aAAa;IACbe,QAAQ,EAAGR,SAAW;IACtBS,KAAK,EAAGV,MAAQ;IAChBH,KAAK,EAAGU,WAAa;IACrBI,WAAW,EAAGJ,WAAa;IAC3BK,IAAI,EAAC;EAAS,CACd,CAAC;AAEJ"}