@wordpress/dataviews 4.1.0 → 4.2.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.
- package/CHANGELOG.md +17 -0
- package/README.md +31 -23
- package/build/components/dataviews/index.js +9 -11
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-filters/index.js +3 -0
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/search-widget.js +2 -5
- package/build/components/dataviews-filters/search-widget.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +23 -15
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +26 -9
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataform-controls/datetime.js +49 -0
- package/build/dataform-controls/datetime.js.map +1 -0
- package/build/dataform-controls/index.js +50 -0
- package/build/dataform-controls/index.js.map +1 -0
- package/build/dataform-controls/integer.js +45 -0
- package/build/dataform-controls/integer.js.map +1 -0
- package/build/dataform-controls/radio.js +45 -0
- package/build/dataform-controls/radio.js.map +1 -0
- package/build/dataform-controls/select.js +58 -0
- package/build/dataform-controls/select.js.map +1 -0
- package/build/dataform-controls/text.js +45 -0
- package/build/dataform-controls/text.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +6 -3
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +6 -3
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/density-picker.js +23 -52
- package/build/dataviews-layouts/grid/density-picker.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +1 -1
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +6 -2
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +2 -5
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/field-types/datetime.js +30 -0
- package/build/field-types/datetime.js.map +1 -0
- package/build/field-types/index.js +4 -0
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/integer.js +1 -60
- package/build/field-types/integer.js.map +1 -1
- package/build/field-types/text.js +1 -60
- package/build/field-types/text.js.map +1 -1
- package/build/normalize-fields.js +6 -7
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +9 -11
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +3 -0
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/search-widget.js +2 -5
- package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +23 -15
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +27 -10
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataform-controls/datetime.js +43 -0
- package/build-module/dataform-controls/datetime.js.map +1 -0
- package/build-module/dataform-controls/index.js +42 -0
- package/build-module/dataform-controls/index.js.map +1 -0
- package/build-module/dataform-controls/integer.js +38 -0
- package/build-module/dataform-controls/integer.js.map +1 -0
- package/build-module/dataform-controls/radio.js +38 -0
- package/build-module/dataform-controls/radio.js.map +1 -0
- package/build-module/dataform-controls/select.js +51 -0
- package/build-module/dataform-controls/select.js.map +1 -0
- package/build-module/dataform-controls/text.js +38 -0
- package/build-module/dataform-controls/text.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +6 -3
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +6 -3
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/density-picker.js +25 -56
- package/build-module/dataviews-layouts/grid/density-picker.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +1 -1
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +5 -2
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +2 -5
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/field-types/datetime.js +24 -0
- package/build-module/field-types/datetime.js.map +1 -0
- package/build-module/field-types/index.js +4 -0
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/integer.js +2 -60
- package/build-module/field-types/integer.js.map +1 -1
- package/build-module/field-types/text.js +2 -60
- package/build-module/field-types/text.js.map +1 -1
- package/build-module/normalize-fields.js +7 -7
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +15 -18
- package/build-style/style.css +15 -18
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts +22 -3
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +9 -0
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/index.d.ts +1 -1
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
- package/build-types/components/dataviews-pagination/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts +4 -3
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/dataform-controls/datetime.d.ts +6 -0
- package/build-types/dataform-controls/datetime.d.ts.map +1 -0
- package/build-types/dataform-controls/index.d.ts +11 -0
- package/build-types/dataform-controls/index.d.ts.map +1 -0
- package/build-types/dataform-controls/integer.d.ts +6 -0
- package/build-types/dataform-controls/integer.d.ts.map +1 -0
- package/build-types/dataform-controls/radio.d.ts +6 -0
- package/build-types/dataform-controls/radio.d.ts.map +1 -0
- package/build-types/dataform-controls/select.d.ts +6 -0
- package/build-types/dataform-controls/select.d.ts.map +1 -0
- package/build-types/dataform-controls/text.d.ts +6 -0
- package/build-types/dataform-controls/text.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/density-picker.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/field-types/datetime.d.ts +13 -0
- package/build-types/field-types/datetime.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts +1 -1
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +2 -3
- package/build-types/field-types/integer.d.ts.map +1 -1
- package/build-types/field-types/text.d.ts +2 -3
- package/build-types/field-types/text.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +41 -21
- package/build-types/types.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/components/dataform/stories/index.story.tsx +43 -2
- package/src/components/dataviews/index.tsx +13 -13
- package/src/components/dataviews/stories/fixtures.js +29 -1
- package/src/components/dataviews/stories/index.story.js +7 -1
- package/src/components/dataviews/style.scss +0 -12
- package/src/components/dataviews-bulk-actions-toolbar/style.scss +1 -1
- package/src/components/dataviews-filters/index.tsx +3 -0
- package/src/components/dataviews-filters/search-widget.tsx +1 -8
- package/src/components/dataviews-filters/style.scss +1 -1
- package/src/components/dataviews-pagination/index.tsx +35 -16
- package/src/components/dataviews-pagination/style.scss +9 -4
- package/src/components/dataviews-view-config/index.tsx +45 -16
- package/src/dataform-controls/datetime.tsx +43 -0
- package/src/dataform-controls/index.tsx +61 -0
- package/src/dataform-controls/integer.tsx +38 -0
- package/src/dataform-controls/radio.tsx +42 -0
- package/src/dataform-controls/select.tsx +52 -0
- package/src/dataform-controls/style.scss +4 -0
- package/src/dataform-controls/text.tsx +40 -0
- package/src/dataforms-layouts/panel/index.tsx +6 -2
- package/src/dataforms-layouts/regular/index.tsx +6 -2
- package/src/dataviews-layouts/grid/density-picker.tsx +33 -67
- package/src/dataviews-layouts/grid/index.tsx +1 -1
- package/src/dataviews-layouts/grid/style.scss +0 -4
- package/src/dataviews-layouts/list/index.tsx +6 -2
- package/src/dataviews-layouts/table/column-header-menu.tsx +3 -5
- package/src/field-types/datetime.tsx +28 -0
- package/src/field-types/index.tsx +5 -0
- package/src/field-types/integer.tsx +2 -71
- package/src/field-types/text.tsx +2 -70
- package/src/normalize-fields.ts +8 -10
- package/src/style.scss +1 -0
- package/src/test/filter-and-sort-data-view.js +28 -0
- package/src/types.ts +54 -32
- package/tsconfig.tsbuildinfo +1 -1
package/src/types.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
ReactElement,
|
|
6
|
-
ComponentType,
|
|
7
|
-
Dispatch,
|
|
8
|
-
SetStateAction,
|
|
9
|
-
} from 'react';
|
|
4
|
+
import type { ReactElement, ComponentType } from 'react';
|
|
10
5
|
|
|
11
6
|
/**
|
|
12
7
|
* Internal dependencies
|
|
@@ -47,14 +42,32 @@ export type Operator =
|
|
|
47
42
|
| 'isAll'
|
|
48
43
|
| 'isNotAll';
|
|
49
44
|
|
|
50
|
-
export type
|
|
51
|
-
|
|
52
|
-
export type FieldType = 'text' | 'integer';
|
|
45
|
+
export type FieldType = 'text' | 'integer' | 'datetime';
|
|
53
46
|
|
|
54
47
|
export type ValidationContext = {
|
|
55
48
|
elements?: Option[];
|
|
56
49
|
};
|
|
57
50
|
|
|
51
|
+
/**
|
|
52
|
+
* An abstract interface for Field based on the field type.
|
|
53
|
+
*/
|
|
54
|
+
export type FieldTypeDefinition< Item > = {
|
|
55
|
+
/**
|
|
56
|
+
* Callback used to sort the field.
|
|
57
|
+
*/
|
|
58
|
+
sort: ( a: Item, b: Item, direction: SortDirection ) => number;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Callback used to validate the field.
|
|
62
|
+
*/
|
|
63
|
+
isValid: ( item: Item, context?: ValidationContext ) => boolean;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Callback used to render an edit control for the field or control name.
|
|
67
|
+
*/
|
|
68
|
+
Edit: ComponentType< DataFormControlProps< Item > > | string;
|
|
69
|
+
};
|
|
70
|
+
|
|
58
71
|
/**
|
|
59
72
|
* A dataview field for a specific property of a data type.
|
|
60
73
|
*/
|
|
@@ -74,6 +87,12 @@ export type Field< Item > = {
|
|
|
74
87
|
*/
|
|
75
88
|
label?: string;
|
|
76
89
|
|
|
90
|
+
/**
|
|
91
|
+
* The header of the field. Defaults to the label.
|
|
92
|
+
* It allows the usage of a React Element to render the field labels.
|
|
93
|
+
*/
|
|
94
|
+
header?: string | ReactElement;
|
|
95
|
+
|
|
77
96
|
/**
|
|
78
97
|
* A description of the field.
|
|
79
98
|
*/
|
|
@@ -92,7 +111,7 @@ export type Field< Item > = {
|
|
|
92
111
|
/**
|
|
93
112
|
* Callback used to render an edit control for the field.
|
|
94
113
|
*/
|
|
95
|
-
Edit?: ComponentType< DataFormControlProps< Item >
|
|
114
|
+
Edit?: ComponentType< DataFormControlProps< Item > > | string;
|
|
96
115
|
|
|
97
116
|
/**
|
|
98
117
|
* Callback used to sort the field.
|
|
@@ -128,24 +147,17 @@ export type Field< Item > = {
|
|
|
128
147
|
* Filter config for the field.
|
|
129
148
|
*/
|
|
130
149
|
filterBy?: FilterByConfig | undefined;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
: {
|
|
140
|
-
/**
|
|
141
|
-
* Callback used to retrieve the value of the field from the item.
|
|
142
|
-
* Defaults to `item[ field.id ]`.
|
|
143
|
-
*/
|
|
144
|
-
getValue: ( args: { item: Item } ) => any;
|
|
145
|
-
} );
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Callback used to retrieve the value of the field from the item.
|
|
153
|
+
* Defaults to `item[ field.id ]`.
|
|
154
|
+
*/
|
|
155
|
+
getValue?: ( args: { item: Item } ) => any;
|
|
156
|
+
};
|
|
146
157
|
|
|
147
158
|
export type NormalizedField< Item > = Field< Item > & {
|
|
148
159
|
label: string;
|
|
160
|
+
header: string | ReactElement;
|
|
149
161
|
getValue: ( args: { item: Item } ) => any;
|
|
150
162
|
render: ComponentType< { item: Item } >;
|
|
151
163
|
Edit: ComponentType< DataFormControlProps< Item > >;
|
|
@@ -171,7 +183,7 @@ export type Form = {
|
|
|
171
183
|
export type DataFormControlProps< Item > = {
|
|
172
184
|
data: Item;
|
|
173
185
|
field: NormalizedField< Item >;
|
|
174
|
-
onChange:
|
|
186
|
+
onChange: ( value: Record< string, any > ) => void;
|
|
175
187
|
hideLabelFromVision?: boolean;
|
|
176
188
|
};
|
|
177
189
|
|
|
@@ -284,6 +296,8 @@ export interface CombinedField {
|
|
|
284
296
|
|
|
285
297
|
label: string;
|
|
286
298
|
|
|
299
|
+
header?: string | ReactElement;
|
|
300
|
+
|
|
287
301
|
/**
|
|
288
302
|
* The fields to use as columns.
|
|
289
303
|
*/
|
|
@@ -421,6 +435,18 @@ interface ActionBase< Item > {
|
|
|
421
435
|
* Whether the action can be used as a bulk action.
|
|
422
436
|
*/
|
|
423
437
|
supportsBulk?: boolean;
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* The context in which the action is visible.
|
|
441
|
+
* This is only a "meta" information for now.
|
|
442
|
+
*/
|
|
443
|
+
context?: 'list' | 'single';
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export interface RenderModalProps< Item > {
|
|
447
|
+
items: Item[];
|
|
448
|
+
closeModal?: () => void;
|
|
449
|
+
onActionPerformed?: ( items: Item[] ) => void;
|
|
424
450
|
}
|
|
425
451
|
|
|
426
452
|
export interface ActionModal< Item > extends ActionBase< Item > {
|
|
@@ -431,11 +457,7 @@ export interface ActionModal< Item > extends ActionBase< Item > {
|
|
|
431
457
|
items,
|
|
432
458
|
closeModal,
|
|
433
459
|
onActionPerformed,
|
|
434
|
-
}:
|
|
435
|
-
items: Item[];
|
|
436
|
-
closeModal?: () => void;
|
|
437
|
-
onActionPerformed?: ( items: Item[] ) => void;
|
|
438
|
-
} ) => ReactElement;
|
|
460
|
+
}: RenderModalProps< Item > ) => ReactElement;
|
|
439
461
|
|
|
440
462
|
/**
|
|
441
463
|
* Whether to hide the modal header.
|
|
@@ -504,5 +526,5 @@ export interface DataFormProps< Item > {
|
|
|
504
526
|
data: Item;
|
|
505
527
|
fields: Field< Item >[];
|
|
506
528
|
form: Form;
|
|
507
|
-
onChange:
|
|
529
|
+
onChange: ( value: Record< string, any > ) => void;
|
|
508
530
|
}
|