@wordpress/dataviews 3.0.0 → 4.0.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 (274) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/README.md +19 -4
  3. package/build/{dataform.js → components/dataform/index.js} +5 -5
  4. package/build/components/dataform/index.js.map +1 -0
  5. package/build/components/dataviews/index.js +115 -0
  6. package/build/components/dataviews/index.js.map +1 -0
  7. package/build/{bulk-actions.js → components/dataviews-bulk-actions/index.js} +39 -16
  8. package/build/components/dataviews-bulk-actions/index.js.map +1 -0
  9. package/build/{bulk-actions-toolbar.js → components/dataviews-bulk-actions-toolbar/index.js} +36 -19
  10. package/build/components/dataviews-bulk-actions-toolbar/index.js.map +1 -0
  11. package/build/components/dataviews-context/index.js +36 -0
  12. package/build/components/dataviews-context/index.js.map +1 -0
  13. package/build/{add-filter.js → components/dataviews-filters/add-filter.js} +2 -2
  14. package/build/components/dataviews-filters/add-filter.js.map +1 -0
  15. package/build/{filter-summary.js → components/dataviews-filters/filter-summary.js} +9 -9
  16. package/build/components/dataviews-filters/filter-summary.js.map +1 -0
  17. package/build/{filters.js → components/dataviews-filters/index.js} +14 -15
  18. package/build/components/dataviews-filters/index.js.map +1 -0
  19. package/build/components/dataviews-filters/reset-filters.js.map +1 -0
  20. package/build/{search-widget.js → components/dataviews-filters/search-widget.js} +13 -13
  21. package/build/components/dataviews-filters/search-widget.js.map +1 -0
  22. package/build/{item-actions.js → components/dataviews-item-actions/index.js} +2 -2
  23. package/build/components/dataviews-item-actions/index.js.map +1 -0
  24. package/build/components/dataviews-layout/index.js +53 -0
  25. package/build/components/dataviews-layout/index.js.map +1 -0
  26. package/build/{pagination.js → components/dataviews-pagination/index.js} +16 -13
  27. package/build/components/dataviews-pagination/index.js.map +1 -0
  28. package/build/{search.js → components/dataviews-search/index.js} +10 -6
  29. package/build/components/dataviews-search/index.js.map +1 -0
  30. package/build/{single-selection-checkbox.js → components/dataviews-selection-checkbox/index.js} +6 -6
  31. package/build/components/dataviews-selection-checkbox/index.js.map +1 -0
  32. package/build/{view-actions.js → components/dataviews-view-config/index.js} +19 -16
  33. package/build/components/dataviews-view-config/index.js.map +1 -0
  34. package/build/index.js +2 -2
  35. package/build/index.js.map +1 -1
  36. package/build/layouts/grid/density-picker.js +143 -0
  37. package/build/layouts/grid/density-picker.js.map +1 -0
  38. package/build/{view-grid.js → layouts/grid/index.js} +34 -35
  39. package/build/layouts/grid/index.js.map +1 -0
  40. package/build/layouts/index.js +52 -0
  41. package/build/layouts/index.js.map +1 -0
  42. package/build/{view-list.js → layouts/list/index.js} +26 -23
  43. package/build/layouts/list/index.js.map +1 -0
  44. package/build/layouts/table/column-header-menu.js +196 -0
  45. package/build/layouts/table/column-header-menu.js.map +1 -0
  46. package/build/layouts/table/index.js +350 -0
  47. package/build/layouts/table/index.js.map +1 -0
  48. package/build/normalize-fields.js +1 -1
  49. package/build/normalize-fields.js.map +1 -1
  50. package/build/types.js.map +1 -1
  51. package/build-module/{dataform.js → components/dataform/index.js} +5 -5
  52. package/build-module/components/dataform/index.js.map +1 -0
  53. package/build-module/components/dataviews/index.js +108 -0
  54. package/build-module/components/dataviews/index.js.map +1 -0
  55. package/build-module/{bulk-actions.js → components/dataviews-bulk-actions/index.js} +39 -17
  56. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -0
  57. package/build-module/{bulk-actions-toolbar.js → components/dataviews-bulk-actions-toolbar/index.js} +35 -19
  58. package/build-module/components/dataviews-bulk-actions-toolbar/index.js.map +1 -0
  59. package/build-module/components/dataviews-context/index.js +30 -0
  60. package/build-module/components/dataviews-context/index.js.map +1 -0
  61. package/build-module/{add-filter.js → components/dataviews-filters/add-filter.js} +2 -2
  62. package/build-module/components/dataviews-filters/add-filter.js.map +1 -0
  63. package/build-module/{filter-summary.js → components/dataviews-filters/filter-summary.js} +9 -9
  64. package/build-module/components/dataviews-filters/filter-summary.js.map +1 -0
  65. package/build-module/{filters.js → components/dataviews-filters/index.js} +15 -16
  66. package/build-module/components/dataviews-filters/index.js.map +1 -0
  67. package/build-module/components/dataviews-filters/reset-filters.js.map +1 -0
  68. package/build-module/{search-widget.js → components/dataviews-filters/search-widget.js} +13 -13
  69. package/build-module/components/dataviews-filters/search-widget.js.map +1 -0
  70. package/build-module/{item-actions.js → components/dataviews-item-actions/index.js} +2 -2
  71. package/build-module/components/dataviews-item-actions/index.js.map +1 -0
  72. package/build-module/components/dataviews-layout/index.js +45 -0
  73. package/build-module/components/dataviews-layout/index.js.map +1 -0
  74. package/build-module/{pagination.js → components/dataviews-pagination/index.js} +17 -15
  75. package/build-module/components/dataviews-pagination/index.js.map +1 -0
  76. package/build-module/{search.js → components/dataviews-search/index.js} +10 -7
  77. package/build-module/components/dataviews-search/index.js.map +1 -0
  78. package/build-module/{single-selection-checkbox.js → components/dataviews-selection-checkbox/index.js} +5 -5
  79. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -0
  80. package/build-module/{view-actions.js → components/dataviews-view-config/index.js} +19 -17
  81. package/build-module/components/dataviews-view-config/index.js.map +1 -0
  82. package/build-module/index.js +2 -2
  83. package/build-module/index.js.map +1 -1
  84. package/build-module/layouts/grid/density-picker.js +138 -0
  85. package/build-module/layouts/grid/density-picker.js.map +1 -0
  86. package/build-module/{view-grid.js → layouts/grid/index.js} +31 -32
  87. package/build-module/layouts/grid/index.js.map +1 -0
  88. package/build-module/layouts/index.js +43 -0
  89. package/build-module/layouts/index.js.map +1 -0
  90. package/build-module/{view-list.js → layouts/list/index.js} +24 -21
  91. package/build-module/layouts/list/index.js.map +1 -0
  92. package/build-module/layouts/table/column-header-menu.js +190 -0
  93. package/build-module/layouts/table/column-header-menu.js.map +1 -0
  94. package/build-module/layouts/table/index.js +344 -0
  95. package/build-module/layouts/table/index.js.map +1 -0
  96. package/build-module/normalize-fields.js +1 -1
  97. package/build-module/normalize-fields.js.map +1 -1
  98. package/build-module/types.js.map +1 -1
  99. package/build-style/style-rtl.css +607 -545
  100. package/build-style/style.css +607 -545
  101. package/build-types/{dataform.d.ts → components/dataform/index.d.ts} +2 -2
  102. package/build-types/components/dataform/index.d.ts.map +1 -0
  103. package/build-types/components/dataform/stories/index.story.d.ts +11 -0
  104. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -0
  105. package/build-types/{dataviews.d.ts → components/dataviews/index.d.ts} +9 -7
  106. package/build-types/components/dataviews/index.d.ts.map +1 -0
  107. package/build-types/{stories → components/dataviews/stories}/fixtures.d.ts +7 -19
  108. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -0
  109. package/build-types/components/dataviews/stories/index.story.d.ts +46 -0
  110. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -0
  111. package/build-types/components/dataviews-bulk-actions/index.d.ts +5 -0
  112. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -0
  113. package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts +2 -0
  114. package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts.map +1 -0
  115. package/build-types/components/dataviews-context/index.d.ts +26 -0
  116. package/build-types/components/dataviews-context/index.d.ts.map +1 -0
  117. package/build-types/{add-filter.d.ts → components/dataviews-filters/add-filter.d.ts} +1 -2
  118. package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -0
  119. package/build-types/{filter-summary.d.ts → components/dataviews-filters/filter-summary.d.ts} +1 -1
  120. package/build-types/components/dataviews-filters/filter-summary.d.ts.map +1 -0
  121. package/build-types/components/dataviews-filters/index.d.ts +4 -0
  122. package/build-types/components/dataviews-filters/index.d.ts.map +1 -0
  123. package/build-types/{reset-filters.d.ts → components/dataviews-filters/reset-filters.d.ts} +1 -2
  124. package/build-types/components/dataviews-filters/reset-filters.d.ts.map +1 -0
  125. package/build-types/{search-widget.d.ts → components/dataviews-filters/search-widget.d.ts} +1 -2
  126. package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -0
  127. package/build-types/{item-actions.d.ts → components/dataviews-item-actions/index.d.ts} +2 -2
  128. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -0
  129. package/build-types/components/dataviews-layout/index.d.ts +2 -0
  130. package/build-types/components/dataviews-layout/index.d.ts.map +1 -0
  131. package/build-types/components/dataviews-pagination/index.d.ts +4 -0
  132. package/build-types/components/dataviews-pagination/index.d.ts.map +1 -0
  133. package/build-types/components/dataviews-search/index.d.ts +6 -0
  134. package/build-types/components/dataviews-search/index.d.ts.map +1 -0
  135. package/build-types/components/dataviews-selection-checkbox/index.d.ts +16 -0
  136. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -0
  137. package/build-types/components/dataviews-view-config/index.d.ts +8 -0
  138. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -0
  139. package/build-types/index.d.ts +2 -2
  140. package/build-types/index.d.ts.map +1 -1
  141. package/build-types/layouts/grid/density-picker.d.ts +5 -0
  142. package/build-types/layouts/grid/density-picker.d.ts.map +1 -0
  143. package/build-types/layouts/grid/index.d.ts +3 -0
  144. package/build-types/layouts/grid/index.d.ts.map +1 -0
  145. package/build-types/{layouts.d.ts → layouts/index.d.ts} +6 -5
  146. package/build-types/layouts/index.d.ts.map +1 -0
  147. package/build-types/layouts/list/index.d.ts +3 -0
  148. package/build-types/layouts/list/index.d.ts.map +1 -0
  149. package/build-types/layouts/table/column-header-menu.d.ts +17 -0
  150. package/build-types/layouts/table/column-header-menu.d.ts.map +1 -0
  151. package/build-types/layouts/table/index.d.ts +4 -0
  152. package/build-types/layouts/table/index.d.ts.map +1 -0
  153. package/build-types/types.d.ts +42 -23
  154. package/build-types/types.d.ts.map +1 -1
  155. package/package.json +10 -10
  156. package/src/{dataform.tsx → components/dataform/index.tsx} +5 -5
  157. package/src/components/dataform/stories/index.story.tsx +42 -0
  158. package/src/components/dataviews/index.tsx +149 -0
  159. package/src/{stories → components/dataviews/stories}/fixtures.js +7 -11
  160. package/src/{stories → components/dataviews/stories}/index.story.js +17 -3
  161. package/src/components/dataviews/style.scss +97 -0
  162. package/src/{bulk-actions.tsx → components/dataviews-bulk-actions/index.tsx} +46 -29
  163. package/src/components/dataviews-bulk-actions/style.scss +7 -0
  164. package/src/{bulk-actions-toolbar.tsx → components/dataviews-bulk-actions-toolbar/index.tsx} +42 -30
  165. package/src/components/dataviews-bulk-actions-toolbar/style.scss +45 -0
  166. package/src/components/dataviews-context/index.ts +49 -0
  167. package/src/{add-filter.tsx → components/dataviews-filters/add-filter.tsx} +3 -3
  168. package/src/{filter-summary.tsx → components/dataviews-filters/filter-summary.tsx} +18 -10
  169. package/src/{filters.tsx → components/dataviews-filters/index.tsx} +10 -24
  170. package/src/{reset-filters.tsx → components/dataviews-filters/reset-filters.tsx} +1 -1
  171. package/src/{search-widget.tsx → components/dataviews-filters/search-widget.tsx} +14 -14
  172. package/src/components/dataviews-filters/style.scss +252 -0
  173. package/src/{item-actions.tsx → components/dataviews-item-actions/index.tsx} +2 -2
  174. package/src/components/dataviews-item-actions/style.scss +3 -0
  175. package/src/components/dataviews-layout/index.tsx +51 -0
  176. package/src/{pagination.tsx → components/dataviews-pagination/index.tsx} +13 -21
  177. package/src/components/dataviews-pagination/style.scss +26 -0
  178. package/src/{search.tsx → components/dataviews-search/index.tsx} +5 -10
  179. package/src/{single-selection-checkbox.tsx → components/dataviews-selection-checkbox/index.tsx} +9 -9
  180. package/src/components/dataviews-selection-checkbox/style.scss +14 -0
  181. package/src/{view-actions.tsx → components/dataviews-view-config/index.tsx} +16 -22
  182. package/src/index.ts +2 -2
  183. package/src/layouts/grid/density-picker.tsx +136 -0
  184. package/src/{view-grid.tsx → layouts/grid/index.tsx} +28 -29
  185. package/src/layouts/grid/style.scss +140 -0
  186. package/src/layouts/index.ts +66 -0
  187. package/src/{view-list.tsx → layouts/list/index.tsx} +30 -17
  188. package/src/layouts/list/style.scss +189 -0
  189. package/src/layouts/table/column-header-menu.tsx +268 -0
  190. package/src/layouts/table/index.tsx +471 -0
  191. package/src/layouts/table/style.scss +201 -0
  192. package/src/normalize-fields.ts +1 -1
  193. package/src/style.scss +11 -907
  194. package/src/test/filter-and-sort-data-view.js +1 -1
  195. package/src/types.ts +48 -24
  196. package/tsconfig.tsbuildinfo +1 -1
  197. package/build/add-filter.js.map +0 -1
  198. package/build/bulk-actions-toolbar.js.map +0 -1
  199. package/build/bulk-actions.js.map +0 -1
  200. package/build/dataform.js.map +0 -1
  201. package/build/dataviews.js +0 -125
  202. package/build/dataviews.js.map +0 -1
  203. package/build/filter-summary.js.map +0 -1
  204. package/build/filters.js.map +0 -1
  205. package/build/item-actions.js.map +0 -1
  206. package/build/layouts.js +0 -38
  207. package/build/layouts.js.map +0 -1
  208. package/build/pagination.js.map +0 -1
  209. package/build/reset-filters.js.map +0 -1
  210. package/build/search-widget.js.map +0 -1
  211. package/build/search.js.map +0 -1
  212. package/build/single-selection-checkbox.js.map +0 -1
  213. package/build/view-actions.js.map +0 -1
  214. package/build/view-grid.js.map +0 -1
  215. package/build/view-list.js.map +0 -1
  216. package/build/view-table.js +0 -400
  217. package/build/view-table.js.map +0 -1
  218. package/build-module/add-filter.js.map +0 -1
  219. package/build-module/bulk-actions-toolbar.js.map +0 -1
  220. package/build-module/bulk-actions.js.map +0 -1
  221. package/build-module/dataform.js.map +0 -1
  222. package/build-module/dataviews.js +0 -116
  223. package/build-module/dataviews.js.map +0 -1
  224. package/build-module/filter-summary.js.map +0 -1
  225. package/build-module/filters.js.map +0 -1
  226. package/build-module/item-actions.js.map +0 -1
  227. package/build-module/layouts.js +0 -30
  228. package/build-module/layouts.js.map +0 -1
  229. package/build-module/pagination.js.map +0 -1
  230. package/build-module/reset-filters.js.map +0 -1
  231. package/build-module/search-widget.js.map +0 -1
  232. package/build-module/search.js.map +0 -1
  233. package/build-module/single-selection-checkbox.js.map +0 -1
  234. package/build-module/view-actions.js.map +0 -1
  235. package/build-module/view-grid.js.map +0 -1
  236. package/build-module/view-list.js.map +0 -1
  237. package/build-module/view-table.js +0 -393
  238. package/build-module/view-table.js.map +0 -1
  239. package/build-types/add-filter.d.ts.map +0 -1
  240. package/build-types/bulk-actions-toolbar.d.ts +0 -13
  241. package/build-types/bulk-actions-toolbar.d.ts.map +0 -1
  242. package/build-types/bulk-actions.d.ts +0 -15
  243. package/build-types/bulk-actions.d.ts.map +0 -1
  244. package/build-types/dataform.d.ts.map +0 -1
  245. package/build-types/dataviews.d.ts.map +0 -1
  246. package/build-types/filter-summary.d.ts.map +0 -1
  247. package/build-types/filters.d.ts +0 -13
  248. package/build-types/filters.d.ts.map +0 -1
  249. package/build-types/item-actions.d.ts.map +0 -1
  250. package/build-types/layouts.d.ts.map +0 -1
  251. package/build-types/pagination.d.ts +0 -16
  252. package/build-types/pagination.d.ts.map +0 -1
  253. package/build-types/reset-filters.d.ts.map +0 -1
  254. package/build-types/search-widget.d.ts.map +0 -1
  255. package/build-types/search.d.ts +0 -13
  256. package/build-types/search.d.ts.map +0 -1
  257. package/build-types/single-selection-checkbox.d.ts +0 -17
  258. package/build-types/single-selection-checkbox.d.ts.map +0 -1
  259. package/build-types/stories/fixtures.d.ts.map +0 -1
  260. package/build-types/stories/index.story.d.ts +0 -29
  261. package/build-types/stories/index.story.d.ts.map +0 -1
  262. package/build-types/view-actions.d.ts +0 -12
  263. package/build-types/view-actions.d.ts.map +0 -1
  264. package/build-types/view-grid.d.ts +0 -4
  265. package/build-types/view-grid.d.ts.map +0 -1
  266. package/build-types/view-list.d.ts +0 -4
  267. package/build-types/view-list.d.ts.map +0 -1
  268. package/build-types/view-table.d.ts +0 -5
  269. package/build-types/view-table.d.ts.map +0 -1
  270. package/src/dataviews.tsx +0 -183
  271. package/src/layouts.ts +0 -39
  272. package/src/view-table.tsx +0 -592
  273. /package/build/{reset-filters.js → components/dataviews-filters/reset-filters.js} +0 -0
  274. /package/build-module/{reset-filters.js → components/dataviews-filters/reset-filters.js} +0 -0
@@ -2,7 +2,7 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import { filterSortAndPaginate } from '../filter-and-sort-data-view';
5
- import { data, fields } from '../stories/fixtures';
5
+ import { data, fields } from '../components/dataviews/stories/fixtures';
6
6
 
7
7
  describe( 'filters', () => {
8
8
  it( 'should return empty if the data is empty', () => {
package/src/types.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { ReactElement, ReactNode } from 'react';
4
+ import type { ReactElement, ComponentType } from 'react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -63,7 +63,7 @@ export type Field< Item > = {
63
63
  /**
64
64
  * The label of the field. Defaults to the id.
65
65
  */
66
- header?: string;
66
+ label?: string;
67
67
 
68
68
  /**
69
69
  * Placeholder for the field.
@@ -73,22 +73,7 @@ export type Field< Item > = {
73
73
  /**
74
74
  * Callback used to render the field. Defaults to `field.getValue`.
75
75
  */
76
- render?: ( args: { item: Item } ) => ReactNode;
77
-
78
- /**
79
- * The width of the field column.
80
- */
81
- width?: string | number;
82
-
83
- /**
84
- * The minimum width of the field column.
85
- */
86
- maxWidth?: string | number;
87
-
88
- /**
89
- * The maximum width of the field column.
90
- */
91
- minWidth?: string | number;
76
+ render?: ComponentType< { item: Item } >;
92
77
 
93
78
  /**
94
79
  * Whether the field is sortable.
@@ -131,9 +116,9 @@ export type Field< Item > = {
131
116
  } );
132
117
 
133
118
  export type NormalizedField< Item > = Field< Item > & {
134
- header: string;
119
+ label: string;
135
120
  getValue: ( args: { item: Item } ) => any;
136
- render: ( args: { item: Item } ) => ReactNode;
121
+ render: ComponentType< { item: Item } >;
137
122
  };
138
123
 
139
124
  /**
@@ -249,11 +234,44 @@ interface ViewBase {
249
234
  perPage?: number;
250
235
 
251
236
  /**
252
- * The hidden fields.
237
+ * The fields to render
253
238
  */
254
239
  fields?: string[];
255
240
  }
256
241
 
242
+ export interface CombinedField {
243
+ id: string;
244
+
245
+ label: string;
246
+
247
+ /**
248
+ * The fields to use as columns.
249
+ */
250
+ children: string[];
251
+
252
+ /**
253
+ * The direction of the stack.
254
+ */
255
+ direction: 'horizontal' | 'vertical';
256
+ }
257
+
258
+ export interface ColumnStyle {
259
+ /**
260
+ * The width of the field column.
261
+ */
262
+ width?: string | number;
263
+
264
+ /**
265
+ * The minimum width of the field column.
266
+ */
267
+ maxWidth?: string | number;
268
+
269
+ /**
270
+ * The maximum width of the field column.
271
+ */
272
+ minWidth?: string | number;
273
+ }
274
+
257
275
  export interface ViewTable extends ViewBase {
258
276
  type: 'table';
259
277
 
@@ -264,9 +282,14 @@ export interface ViewTable extends ViewBase {
264
282
  primaryField?: string;
265
283
 
266
284
  /**
267
- * The field to use as the media field.
285
+ * The fields to use as columns.
268
286
  */
269
- mediaField?: string;
287
+ combinedFields?: CombinedField[];
288
+
289
+ /**
290
+ * The styles for the columns.
291
+ */
292
+ styles?: Record< string, ColumnStyle >;
270
293
  };
271
294
  }
272
295
 
@@ -407,10 +430,11 @@ export interface ViewBaseProps< Item > {
407
430
  getItemId: ( item: Item ) => string;
408
431
  isLoading?: boolean;
409
432
  onChangeView: ( view: View ) => void;
410
- onSelectionChange: SetSelection;
433
+ onChangeSelection: SetSelection;
411
434
  selection: string[];
412
435
  setOpenedFilter: ( fieldId: string ) => void;
413
436
  view: View;
437
+ density: number;
414
438
  }
415
439
 
416
440
  export interface ViewTableProps< Item > extends ViewBaseProps< Item > {