@wordpress/dataviews 4.0.0 → 4.1.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 (214) hide show
  1. package/CHANGELOG.md +16 -5
  2. package/build/components/dataform/index.js +10 -61
  3. package/build/components/dataform/index.js.map +1 -1
  4. package/build/components/dataviews/index.js +16 -5
  5. package/build/components/dataviews/index.js.map +1 -1
  6. package/build/components/dataviews-bulk-actions/index.js +3 -0
  7. package/build/components/dataviews-bulk-actions/index.js.map +1 -1
  8. package/build/components/dataviews-filters/add-filter.js +34 -17
  9. package/build/components/dataviews-filters/add-filter.js.map +1 -1
  10. package/build/components/dataviews-filters/index.js +106 -43
  11. package/build/components/dataviews-filters/index.js.map +1 -1
  12. package/build/components/dataviews-layout/index.js +2 -2
  13. package/build/components/dataviews-layout/index.js.map +1 -1
  14. package/build/components/dataviews-search/index.js +8 -5
  15. package/build/components/dataviews-search/index.js.map +1 -1
  16. package/build/components/dataviews-view-config/index.js +225 -190
  17. package/build/components/dataviews-view-config/index.js.map +1 -1
  18. package/build/constants.js +6 -1
  19. package/build/constants.js.map +1 -1
  20. package/build/dataforms-layouts/index.js +24 -0
  21. package/build/dataforms-layouts/index.js.map +1 -0
  22. package/build/dataforms-layouts/panel/index.js +129 -0
  23. package/build/dataforms-layouts/panel/index.js.map +1 -0
  24. package/build/dataforms-layouts/regular/index.js +39 -0
  25. package/build/dataforms-layouts/regular/index.js.map +1 -0
  26. package/build/{layouts → dataviews-layouts}/grid/density-picker.js +1 -1
  27. package/build/dataviews-layouts/grid/density-picker.js.map +1 -0
  28. package/build/{layouts → dataviews-layouts}/grid/index.js +8 -8
  29. package/build/dataviews-layouts/grid/index.js.map +1 -0
  30. package/build/dataviews-layouts/index.js.map +1 -0
  31. package/build/dataviews-layouts/list/index.js.map +1 -0
  32. package/build/{layouts → dataviews-layouts}/table/column-header-menu.js +1 -1
  33. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -0
  34. package/build/dataviews-layouts/table/index.js.map +1 -0
  35. package/build/field-types/index.js +46 -0
  36. package/build/field-types/index.js.map +1 -0
  37. package/build/field-types/integer.js +94 -0
  38. package/build/field-types/integer.js.map +1 -0
  39. package/build/field-types/text.js +87 -0
  40. package/build/field-types/text.js.map +1 -0
  41. package/build/filter-and-sort-data-view.js +2 -11
  42. package/build/filter-and-sort-data-view.js.map +1 -1
  43. package/build/index.js +9 -2
  44. package/build/index.js.map +1 -1
  45. package/build/normalize-fields.js +35 -1
  46. package/build/normalize-fields.js.map +1 -1
  47. package/build/types.js.map +1 -1
  48. package/build/validation.js +22 -0
  49. package/build/validation.js.map +1 -0
  50. package/build-module/components/dataform/index.js +10 -61
  51. package/build-module/components/dataform/index.js.map +1 -1
  52. package/build-module/components/dataviews/index.js +14 -5
  53. package/build-module/components/dataviews/index.js.map +1 -1
  54. package/build-module/components/dataviews-bulk-actions/index.js +3 -0
  55. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
  56. package/build-module/components/dataviews-filters/add-filter.js +33 -17
  57. package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
  58. package/build-module/components/dataviews-filters/index.js +105 -45
  59. package/build-module/components/dataviews-filters/index.js.map +1 -1
  60. package/build-module/components/dataviews-layout/index.js +1 -1
  61. package/build-module/components/dataviews-layout/index.js.map +1 -1
  62. package/build-module/components/dataviews-search/index.js +8 -5
  63. package/build-module/components/dataviews-search/index.js.map +1 -1
  64. package/build-module/components/dataviews-view-config/index.js +228 -193
  65. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  66. package/build-module/constants.js +5 -0
  67. package/build-module/constants.js.map +1 -1
  68. package/build-module/dataforms-layouts/index.js +16 -0
  69. package/build-module/dataforms-layouts/index.js.map +1 -0
  70. package/build-module/dataforms-layouts/panel/index.js +124 -0
  71. package/build-module/dataforms-layouts/panel/index.js.map +1 -0
  72. package/build-module/dataforms-layouts/regular/index.js +32 -0
  73. package/build-module/dataforms-layouts/regular/index.js.map +1 -0
  74. package/build-module/{layouts → dataviews-layouts}/grid/density-picker.js +2 -2
  75. package/build-module/dataviews-layouts/grid/density-picker.js.map +1 -0
  76. package/build-module/{layouts → dataviews-layouts}/grid/index.js +8 -8
  77. package/build-module/dataviews-layouts/grid/index.js.map +1 -0
  78. package/build-module/dataviews-layouts/index.js.map +1 -0
  79. package/build-module/dataviews-layouts/list/index.js.map +1 -0
  80. package/build-module/{layouts → dataviews-layouts}/table/column-header-menu.js +1 -1
  81. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -0
  82. package/build-module/dataviews-layouts/table/index.js.map +1 -0
  83. package/build-module/field-types/index.js +40 -0
  84. package/build-module/field-types/index.js.map +1 -0
  85. package/build-module/field-types/integer.js +87 -0
  86. package/build-module/field-types/integer.js.map +1 -0
  87. package/build-module/field-types/text.js +80 -0
  88. package/build-module/field-types/text.js.map +1 -0
  89. package/build-module/filter-and-sort-data-view.js +2 -11
  90. package/build-module/filter-and-sort-data-view.js.map +1 -1
  91. package/build-module/index.js +2 -1
  92. package/build-module/index.js.map +1 -1
  93. package/build-module/normalize-fields.js +34 -2
  94. package/build-module/normalize-fields.js.map +1 -1
  95. package/build-module/types.js.map +1 -1
  96. package/build-module/validation.js +15 -0
  97. package/build-module/validation.js.map +1 -0
  98. package/build-style/style-rtl.css +175 -6
  99. package/build-style/style.css +175 -6
  100. package/build-types/components/dataform/index.d.ts +2 -13
  101. package/build-types/components/dataform/index.d.ts.map +1 -1
  102. package/build-types/components/dataform/stories/index.story.d.ts +12 -1
  103. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  104. package/build-types/components/dataviews/index.d.ts.map +1 -1
  105. package/build-types/components/dataviews/stories/fixtures.d.ts +6 -0
  106. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  107. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
  108. package/build-types/components/dataviews-filters/add-filter.d.ts +3 -0
  109. package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -1
  110. package/build-types/components/dataviews-filters/index.d.ts +11 -1
  111. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  112. package/build-types/components/dataviews-search/index.d.ts.map +1 -1
  113. package/build-types/components/dataviews-view-config/index.d.ts +1 -1
  114. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  115. package/build-types/constants.d.ts +4 -0
  116. package/build-types/constants.d.ts.map +1 -1
  117. package/build-types/dataforms-layouts/index.d.ts +9 -0
  118. package/build-types/dataforms-layouts/index.d.ts.map +1 -0
  119. package/build-types/dataforms-layouts/panel/index.d.ts +3 -0
  120. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -0
  121. package/build-types/dataforms-layouts/regular/index.d.ts +3 -0
  122. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -0
  123. package/build-types/dataviews-layouts/grid/density-picker.d.ts.map +1 -0
  124. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -0
  125. package/build-types/dataviews-layouts/index.d.ts.map +1 -0
  126. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -0
  127. package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -0
  128. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -0
  129. package/build-types/field-types/index.d.ts +20 -0
  130. package/build-types/field-types/index.d.ts.map +1 -0
  131. package/build-types/field-types/integer.d.ts +14 -0
  132. package/build-types/field-types/integer.d.ts.map +1 -0
  133. package/build-types/field-types/text.d.ts +14 -0
  134. package/build-types/field-types/text.d.ts.map +1 -0
  135. package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
  136. package/build-types/index.d.ts +2 -1
  137. package/build-types/index.d.ts.map +1 -1
  138. package/build-types/normalize-fields.d.ts +0 -3
  139. package/build-types/normalize-fields.d.ts.map +1 -1
  140. package/build-types/types.d.ts +38 -3
  141. package/build-types/types.d.ts.map +1 -1
  142. package/build-types/validation.d.ts +3 -0
  143. package/build-types/validation.d.ts.map +1 -0
  144. package/package.json +12 -11
  145. package/src/components/dataform/index.tsx +8 -97
  146. package/src/components/dataform/stories/index.story.tsx +40 -3
  147. package/src/components/dataviews/index.tsx +20 -8
  148. package/src/components/dataviews/stories/fixtures.js +1 -0
  149. package/src/components/dataviews/style.scss +5 -2
  150. package/src/components/dataviews-bulk-actions/index.tsx +5 -0
  151. package/src/components/dataviews-filters/add-filter.tsx +37 -21
  152. package/src/components/dataviews-filters/index.tsx +149 -61
  153. package/src/components/dataviews-filters/style.scss +30 -0
  154. package/src/components/dataviews-layout/index.tsx +1 -1
  155. package/src/components/dataviews-search/index.tsx +8 -5
  156. package/src/components/dataviews-view-config/index.tsx +272 -258
  157. package/src/components/dataviews-view-config/style.scss +44 -0
  158. package/src/constants.ts +5 -0
  159. package/src/dataforms-layouts/index.tsx +20 -0
  160. package/src/dataforms-layouts/panel/index.tsx +164 -0
  161. package/src/dataforms-layouts/panel/style.scss +59 -0
  162. package/src/dataforms-layouts/regular/index.tsx +41 -0
  163. package/src/{layouts → dataviews-layouts}/grid/density-picker.tsx +2 -2
  164. package/src/{layouts → dataviews-layouts}/grid/index.tsx +8 -8
  165. package/src/{layouts → dataviews-layouts}/grid/style.scss +29 -0
  166. package/src/{layouts → dataviews-layouts}/list/style.scss +4 -1
  167. package/src/{layouts → dataviews-layouts}/table/column-header-menu.tsx +1 -1
  168. package/src/field-types/index.tsx +45 -0
  169. package/src/field-types/integer.tsx +103 -0
  170. package/src/field-types/text.tsx +95 -0
  171. package/src/filter-and-sort-data-view.ts +1 -15
  172. package/src/index.ts +2 -1
  173. package/src/normalize-fields.ts +44 -3
  174. package/src/style.scss +6 -3
  175. package/src/test/filter-and-sort-data-view.js +46 -3
  176. package/src/test/validation.ts +131 -0
  177. package/src/types.ts +50 -3
  178. package/src/validation.ts +18 -0
  179. package/tsconfig.json +2 -1
  180. package/tsconfig.tsbuildinfo +1 -1
  181. package/build/layouts/grid/density-picker.js.map +0 -1
  182. package/build/layouts/grid/index.js.map +0 -1
  183. package/build/layouts/index.js.map +0 -1
  184. package/build/layouts/list/index.js.map +0 -1
  185. package/build/layouts/table/column-header-menu.js.map +0 -1
  186. package/build/layouts/table/index.js.map +0 -1
  187. package/build-module/layouts/grid/density-picker.js.map +0 -1
  188. package/build-module/layouts/grid/index.js.map +0 -1
  189. package/build-module/layouts/index.js.map +0 -1
  190. package/build-module/layouts/list/index.js.map +0 -1
  191. package/build-module/layouts/table/column-header-menu.js.map +0 -1
  192. package/build-module/layouts/table/index.js.map +0 -1
  193. package/build-types/layouts/grid/density-picker.d.ts.map +0 -1
  194. package/build-types/layouts/grid/index.d.ts.map +0 -1
  195. package/build-types/layouts/index.d.ts.map +0 -1
  196. package/build-types/layouts/list/index.d.ts.map +0 -1
  197. package/build-types/layouts/table/column-header-menu.d.ts.map +0 -1
  198. package/build-types/layouts/table/index.d.ts.map +0 -1
  199. /package/build/{layouts → dataviews-layouts}/index.js +0 -0
  200. /package/build/{layouts → dataviews-layouts}/list/index.js +0 -0
  201. /package/build/{layouts → dataviews-layouts}/table/index.js +0 -0
  202. /package/build-module/{layouts → dataviews-layouts}/index.js +0 -0
  203. /package/build-module/{layouts → dataviews-layouts}/list/index.js +0 -0
  204. /package/build-module/{layouts → dataviews-layouts}/table/index.js +0 -0
  205. /package/build-types/{layouts → dataviews-layouts}/grid/density-picker.d.ts +0 -0
  206. /package/build-types/{layouts → dataviews-layouts}/grid/index.d.ts +0 -0
  207. /package/build-types/{layouts → dataviews-layouts}/index.d.ts +0 -0
  208. /package/build-types/{layouts → dataviews-layouts}/list/index.d.ts +0 -0
  209. /package/build-types/{layouts → dataviews-layouts}/table/column-header-menu.d.ts +0 -0
  210. /package/build-types/{layouts → dataviews-layouts}/table/index.d.ts +0 -0
  211. /package/src/{layouts → dataviews-layouts}/index.ts +0 -0
  212. /package/src/{layouts → dataviews-layouts}/list/index.tsx +0 -0
  213. /package/src/{layouts → dataviews-layouts}/table/index.tsx +0 -0
  214. /package/src/{layouts → dataviews-layouts}/table/style.scss +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { ReactElement, ComponentType } from 'react';
4
+ import type { ReactElement, ComponentType, Dispatch, SetStateAction } from 'react';
5
5
  /**
6
6
  * Internal dependencies
7
7
  */
@@ -30,7 +30,10 @@ interface FilterByConfig {
30
30
  }
31
31
  export type Operator = 'is' | 'isNot' | 'isAny' | 'isNone' | 'isAll' | 'isNotAll';
32
32
  export type ItemRecord = Record<string, unknown>;
33
- export type FieldType = 'text';
33
+ export type FieldType = 'text' | 'integer';
34
+ export type ValidationContext = {
35
+ elements?: Option[];
36
+ };
34
37
  /**
35
38
  * A dataview field for a specific property of a data type.
36
39
  */
@@ -47,6 +50,10 @@ export type Field<Item> = {
47
50
  * The label of the field. Defaults to the id.
48
51
  */
49
52
  label?: string;
53
+ /**
54
+ * A description of the field.
55
+ */
56
+ description?: string;
50
57
  /**
51
58
  * Placeholder for the field.
52
59
  */
@@ -57,6 +64,18 @@ export type Field<Item> = {
57
64
  render?: ComponentType<{
58
65
  item: Item;
59
66
  }>;
67
+ /**
68
+ * Callback used to render an edit control for the field.
69
+ */
70
+ Edit?: ComponentType<DataFormControlProps<Item>>;
71
+ /**
72
+ * Callback used to sort the field.
73
+ */
74
+ sort?: (a: Item, b: Item, direction: SortDirection) => number;
75
+ /**
76
+ * Callback used to validate the field.
77
+ */
78
+ isValid?: (item: Item, context?: ValidationContext) => boolean;
60
79
  /**
61
80
  * Whether the field is sortable.
62
81
  */
@@ -102,6 +121,9 @@ export type NormalizedField<Item> = Field<Item> & {
102
121
  render: ComponentType<{
103
122
  item: Item;
104
123
  }>;
124
+ Edit: ComponentType<DataFormControlProps<Item>>;
125
+ sort: (a: Item, b: Item, direction: SortDirection) => number;
126
+ isValid: (item: Item, context?: ValidationContext) => boolean;
105
127
  };
106
128
  /**
107
129
  * A collection of dataview fields for a data type.
@@ -112,7 +134,14 @@ export type Data<Item> = Item[];
112
134
  * The form configuration.
113
135
  */
114
136
  export type Form = {
115
- visibleFields?: string[];
137
+ type?: 'regular' | 'panel';
138
+ fields?: string[];
139
+ };
140
+ export type DataFormControlProps<Item> = {
141
+ data: Item;
142
+ field: NormalizedField<Item>;
143
+ onChange: Dispatch<SetStateAction<Item>>;
144
+ hideLabelFromVision?: boolean;
116
145
  };
117
146
  /**
118
147
  * The filters applied to the dataset.
@@ -372,5 +401,11 @@ export interface SupportedLayouts {
372
401
  grid?: Omit<ViewGrid, 'type'>;
373
402
  table?: Omit<ViewTable, 'type'>;
374
403
  }
404
+ export interface DataFormProps<Item> {
405
+ data: Item;
406
+ fields: Field<Item>[];
407
+ form: Form;
408
+ onChange: Dispatch<SetStateAction<Item>>;
409
+ }
375
410
  export {};
376
411
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Field, Form } from './types';
2
+ export declare function isItemValid<Item>(item: Item, fields: Field<Item>[], form: Form): boolean;
3
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,WAAW,CAAE,IAAI,EAChC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,CAAE,IAAI,CAAE,EAAE,EACvB,IAAI,EAAE,IAAI,GACR,OAAO,CAOT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/dataviews",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,16 +28,17 @@
28
28
  "types": "build-types",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@ariakit/react": "^0.3.12",
31
+ "@ariakit/react": "^0.4.7",
32
32
  "@babel/runtime": "^7.16.0",
33
- "@wordpress/components": "^28.4.0",
34
- "@wordpress/compose": "^7.4.0",
35
- "@wordpress/data": "^10.4.0",
36
- "@wordpress/element": "^6.4.0",
37
- "@wordpress/i18n": "^5.4.0",
38
- "@wordpress/icons": "^10.4.0",
39
- "@wordpress/primitives": "^4.4.0",
40
- "@wordpress/private-apis": "^1.4.0",
33
+ "@wordpress/components": "^28.5.0",
34
+ "@wordpress/compose": "^7.5.0",
35
+ "@wordpress/data": "^10.5.0",
36
+ "@wordpress/element": "^6.5.0",
37
+ "@wordpress/i18n": "^5.5.0",
38
+ "@wordpress/icons": "^10.5.0",
39
+ "@wordpress/primitives": "^4.5.0",
40
+ "@wordpress/private-apis": "^1.5.0",
41
+ "@wordpress/warning": "^3.5.0",
41
42
  "clsx": "^2.1.1",
42
43
  "remove-accents": "^0.5.0"
43
44
  },
@@ -47,5 +48,5 @@
47
48
  "publishConfig": {
48
49
  "access": "public"
49
50
  },
50
- "gitHead": "363edb39b8dda8727f652e42cbb8497732693ed2"
51
+ "gitHead": "c3101ab024e2bfc85d525c6d247e0d57cafc9fd9"
51
52
  }
@@ -1,106 +1,17 @@
1
- /**
2
- * External dependencies
3
- */
4
- import type { Dispatch, SetStateAction } from 'react';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { TextControl } from '@wordpress/components';
10
- import { useCallback, useMemo } from '@wordpress/element';
11
-
12
1
  /**
13
2
  * Internal dependencies
14
3
  */
15
- import type { Form, Field, NormalizedField } from '../../types';
16
- import { normalizeFields } from '../../normalize-fields';
17
-
18
- type DataFormProps< Item > = {
19
- data: Item;
20
- fields: Field< Item >[];
21
- form: Form;
22
- onChange: Dispatch< SetStateAction< Item > >;
23
- };
24
-
25
- type DataFormControlProps< Item > = {
26
- data: Item;
27
- field: NormalizedField< Item >;
28
- onChange: Dispatch< SetStateAction< Item > >;
29
- };
30
-
31
- function DataFormTextControl< Item >( {
32
- data,
33
- field,
34
- onChange,
35
- }: DataFormControlProps< Item > ) {
36
- const { id, label, placeholder } = field;
37
- const value = field.getValue( { item: data } );
38
-
39
- const onChangeControl = useCallback(
40
- ( newValue: string ) =>
41
- onChange( ( prevItem: Item ) => ( {
42
- ...prevItem,
43
- [ id ]: newValue,
44
- } ) ),
45
- [ id, onChange ]
46
- );
47
-
48
- return (
49
- <TextControl
50
- label={ label }
51
- placeholder={ placeholder }
52
- value={ value ?? '' }
53
- onChange={ onChangeControl }
54
- __next40pxDefaultSize
55
- />
56
- );
57
- }
58
-
59
- const controls: {
60
- [ key: string ]: < Item >(
61
- props: DataFormControlProps< Item >
62
- ) => JSX.Element;
63
- } = {
64
- text: DataFormTextControl,
65
- };
66
-
67
- function getControlForField< Item >( field: NormalizedField< Item > ) {
68
- if ( ! field.type ) {
69
- return null;
70
- }
71
-
72
- if ( ! Object.keys( controls ).includes( field.type ) ) {
73
- return null;
74
- }
75
-
76
- return controls[ field.type ];
77
- }
4
+ import type { DataFormProps } from '../../types';
5
+ import { getFormLayout } from '../../dataforms-layouts';
78
6
 
79
7
  export default function DataForm< Item >( {
80
- data,
81
- fields,
82
8
  form,
83
- onChange,
9
+ ...props
84
10
  }: DataFormProps< Item > ) {
85
- const visibleFields = useMemo(
86
- () =>
87
- normalizeFields(
88
- fields.filter(
89
- ( { id } ) => !! form.visibleFields?.includes( id )
90
- )
91
- ),
92
- [ fields, form.visibleFields ]
93
- );
11
+ const layout = getFormLayout( form.type ?? 'regular' );
12
+ if ( ! layout ) {
13
+ return null;
14
+ }
94
15
 
95
- return visibleFields.map( ( field ) => {
96
- const DataFormControl = getControlForField( field );
97
- return DataFormControl ? (
98
- <DataFormControl
99
- key={ field.id }
100
- data={ data }
101
- field={ field }
102
- onChange={ onChange }
103
- />
104
- ) : null;
105
- } );
16
+ return <layout.component form={ form } { ...props } />;
106
17
  }
@@ -11,6 +11,14 @@ import DataForm from '../index';
11
11
  const meta = {
12
12
  title: 'DataViews/DataForm',
13
13
  component: DataForm,
14
+ argTypes: {
15
+ type: {
16
+ control: { type: 'select' },
17
+ description:
18
+ 'Chooses the layout of the form. "regular" is the default layout.',
19
+ options: [ 'regular', 'panel' ],
20
+ },
21
+ },
14
22
  };
15
23
  export default meta;
16
24
 
@@ -20,22 +28,51 @@ const fields = [
20
28
  label: 'Title',
21
29
  type: 'text' as const,
22
30
  },
31
+ {
32
+ id: 'order',
33
+ label: 'Order',
34
+ type: 'integer' as const,
35
+ },
36
+ {
37
+ id: 'author',
38
+ label: 'Author',
39
+ type: 'integer' as const,
40
+ elements: [
41
+ { value: 1, label: 'Jane' },
42
+ { value: 2, label: 'John' },
43
+ ],
44
+ },
45
+ {
46
+ id: 'status',
47
+ label: 'Status',
48
+ type: 'text' as const,
49
+ elements: [
50
+ { value: 'draft', label: 'Draft' },
51
+ { value: 'published', label: 'Published' },
52
+ ],
53
+ },
23
54
  ];
24
55
 
25
- export const Default = () => {
56
+ export const Default = ( { type }: { type: 'panel' | 'regular' } ) => {
26
57
  const [ post, setPost ] = useState( {
27
58
  title: 'Hello, World!',
59
+ order: 2,
60
+ author: 1,
61
+ status: 'draft',
28
62
  } );
29
63
 
30
64
  const form = {
31
- visibleFields: [ 'title' ],
65
+ fields: [ 'title', 'order', 'author', 'status' ],
32
66
  };
33
67
 
34
68
  return (
35
69
  <DataForm
36
70
  data={ post }
37
71
  fields={ fields }
38
- form={ form }
72
+ form={ {
73
+ ...form,
74
+ type,
75
+ } }
39
76
  onChange={ setPost }
40
77
  />
41
78
  );
@@ -15,7 +15,11 @@ import { useMemo, useState } from '@wordpress/element';
15
15
  import { default as DataViewsBulkActions } from '../dataviews-bulk-actions';
16
16
  import DataViewsBulkActionsToolbar from '../dataviews-bulk-actions-toolbar';
17
17
  import DataViewsContext from '../dataviews-context';
18
- import DataViewsFilters from '../dataviews-filters';
18
+ import {
19
+ default as DataViewsFilters,
20
+ useFilters,
21
+ FilterVisibilityToggle,
22
+ } from '../dataviews-filters';
19
23
  import DataViewsLayout from '../dataviews-layout';
20
24
  import DataviewsPagination from '../dataviews-pagination';
21
25
  import DataViewsSearch from '../dataviews-search';
@@ -23,7 +27,7 @@ import DataViewsViewConfig from '../dataviews-view-config';
23
27
  import { normalizeFields } from '../../normalize-fields';
24
28
  import type { Action, Field, View, SupportedLayouts } from '../../types';
25
29
  import type { SelectionOrUpdater } from '../../private-types';
26
- import DensityPicker from '../../layouts/grid/density-picker';
30
+ import DensityPicker from '../../dataviews-layouts/grid/density-picker';
27
31
  import { LAYOUT_GRID } from '../../constants';
28
32
 
29
33
  type ItemWithId = { id: string };
@@ -69,6 +73,8 @@ export default function DataViews< Item >( {
69
73
  }: DataViewsProps< Item > ) {
70
74
  const [ selectionState, setSelectionState ] = useState< string[] >( [] );
71
75
  const [ density, setDensity ] = useState< number >( 0 );
76
+ const [ isShowingFilter, setIsShowingFilter ] =
77
+ useState< boolean >( false );
72
78
  const isUncontrolled =
73
79
  selectionProperty === undefined || onChangeSelection === undefined;
74
80
  const selection = isUncontrolled ? selectionState : selectionProperty;
@@ -90,6 +96,7 @@ export default function DataViews< Item >( {
90
96
  );
91
97
  }, [ selection, data, getItemId ] );
92
98
 
99
+ const filters = useFilters( _fields, view );
93
100
  return (
94
101
  <DataViewsContext.Provider
95
102
  value={ {
@@ -113,14 +120,18 @@ export default function DataViews< Item >( {
113
120
  alignment="top"
114
121
  justify="start"
115
122
  className="dataviews__view-actions"
123
+ spacing={ 1 }
116
124
  >
117
- <HStack
118
- justify="start"
119
- className="dataviews-filters__container"
120
- wrap
121
- >
125
+ <HStack justify="start" wrap>
122
126
  { search && <DataViewsSearch label={ searchLabel } /> }
123
- <DataViewsFilters />
127
+ <FilterVisibilityToggle
128
+ filters={ filters }
129
+ view={ view }
130
+ onChangeView={ onChangeView }
131
+ setOpenedFilter={ setOpenedFilter }
132
+ setIsShowingFilter={ setIsShowingFilter }
133
+ isShowingFilter={ isShowingFilter }
134
+ />
124
135
  </HStack>
125
136
  { view.type === LAYOUT_GRID && (
126
137
  <DensityPicker
@@ -140,6 +151,7 @@ export default function DataViews< Item >( {
140
151
  { header }
141
152
  </HStack>
142
153
  </HStack>
154
+ { isShowingFilter && <DataViewsFilters /> }
143
155
  <DataViewsLayout />
144
156
  <DataviewsPagination />
145
157
  <DataViewsBulkActionsToolbar />
@@ -189,6 +189,7 @@ export const fields = [
189
189
  {
190
190
  label: 'Satellites',
191
191
  id: 'satellites',
192
+ type: 'integer',
192
193
  enableSorting: true,
193
194
  },
194
195
  {
@@ -9,7 +9,8 @@
9
9
  flex-direction: column;
10
10
  }
11
11
 
12
- .dataviews__view-actions {
12
+ .dataviews__view-actions,
13
+ .dataviews-filters__container {
13
14
  box-sizing: border-box;
14
15
  padding: $grid-unit-20 $grid-unit-60;
15
16
  flex-shrink: 0;
@@ -78,7 +79,8 @@
78
79
 
79
80
  /* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */
80
81
  @container (max-width: 430px) {
81
- .dataviews__view-actions {
82
+ .dataviews__view-actions,
83
+ .dataviews-filters__container {
82
84
  padding: $grid-unit-15 $grid-unit-30;
83
85
 
84
86
  .components-search-control {
@@ -95,3 +97,4 @@
95
97
  padding-right: $grid-unit-30;
96
98
  }
97
99
  }
100
+
@@ -89,6 +89,11 @@ function ActionWithModal< Item >( {
89
89
  const onCloseModal = useCallback( () => {
90
90
  setActionWithModal( undefined );
91
91
  }, [ setActionWithModal ] );
92
+
93
+ if ( ! eligibleItems.length ) {
94
+ return null;
95
+ }
96
+
92
97
  const label =
93
98
  typeof action.label === 'string'
94
99
  ? action.label
@@ -32,29 +32,18 @@ interface AddFilterProps {
32
32
  setOpenedFilter: ( filter: string | null ) => void;
33
33
  }
34
34
 
35
- function AddFilter(
36
- { filters, view, onChangeView, setOpenedFilter }: AddFilterProps,
37
- ref: Ref< HTMLButtonElement >
38
- ) {
39
- if ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {
40
- return null;
41
- }
35
+ export function AddFilterDropdownMenu( {
36
+ filters,
37
+ view,
38
+ onChangeView,
39
+ setOpenedFilter,
40
+ trigger,
41
+ }: AddFilterProps & {
42
+ trigger: React.ReactNode;
43
+ } ) {
42
44
  const inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );
43
45
  return (
44
- <DropdownMenu
45
- trigger={
46
- <Button
47
- accessibleWhenDisabled
48
- size="compact"
49
- className="dataviews-filters__button"
50
- variant="tertiary"
51
- disabled={ ! inactiveFilters.length }
52
- ref={ ref }
53
- >
54
- { __( 'Add filter' ) }
55
- </Button>
56
- }
57
- >
46
+ <DropdownMenu trigger={ trigger }>
58
47
  { inactiveFilters.map( ( filter ) => {
59
48
  return (
60
49
  <DropdownMenuItem
@@ -85,4 +74,31 @@ function AddFilter(
85
74
  );
86
75
  }
87
76
 
77
+ function AddFilter(
78
+ { filters, view, onChangeView, setOpenedFilter }: AddFilterProps,
79
+ ref: Ref< HTMLButtonElement >
80
+ ) {
81
+ if ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {
82
+ return null;
83
+ }
84
+ const inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );
85
+ return (
86
+ <AddFilterDropdownMenu
87
+ trigger={
88
+ <Button
89
+ accessibleWhenDisabled
90
+ size="compact"
91
+ className="dataviews-filters-button"
92
+ variant="tertiary"
93
+ disabled={ ! inactiveFilters.length }
94
+ ref={ ref }
95
+ >
96
+ { __( 'Add filter' ) }
97
+ </Button>
98
+ }
99
+ { ...{ filters, view, onChangeView, setOpenedFilter } }
100
+ />
101
+ );
102
+ }
103
+
88
104
  export default forwardRef( AddFilter );