@wordpress/dataviews 4.1.0 → 4.3.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 +19 -0
- package/README.md +77 -29
- package/build/components/dataviews/index.js +10 -14
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-bulk-actions/index.js +145 -141
- package/build/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build/components/dataviews-filters/add-filter.js +4 -6
- package/build/components/dataviews-filters/add-filter.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 +30 -23
- package/build/components/dataviews-filters/search-widget.js.map +1 -1
- package/build/components/dataviews-footer/index.js +45 -0
- package/build/components/dataviews-footer/index.js.map +1 -0
- package/build/components/dataviews-item-actions/index.js +5 -8
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +27 -19
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +197 -41
- 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 +10 -4
- 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/index.js +48 -2
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +124 -80
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +52 -57
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +7 -35
- package/build/dataviews-layouts/table/index.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 +10 -9
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +10 -14
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-bulk-actions/index.js +145 -143
- package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build-module/components/dataviews-filters/add-filter.js +4 -6
- package/build-module/components/dataviews-filters/add-filter.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 +30 -23
- package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
- package/build-module/components/dataviews-footer/index.js +38 -0
- package/build-module/components/dataviews-footer/index.js.map +1 -0
- package/build-module/components/dataviews-item-actions/index.js +5 -8
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +28 -20
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +203 -47
- 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 +10 -4
- 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/index.js +45 -1
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +125 -80
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +52 -57
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +9 -37
- package/build-module/dataviews-layouts/table/index.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 +11 -9
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +93 -80
- package/build-style/style.css +93 -80
- 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 +28 -113
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +12 -44
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-bulk-actions/index.d.ts +11 -1
- package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/add-filter.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-footer/index.d.ts +2 -0
- package/build-types/components/dataviews-footer/index.d.ts.map +1 -0
- package/build-types/components/dataviews-item-actions/index.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/index.d.ts +4 -2
- package/build-types/dataviews-layouts/index.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/dataviews-layouts/table/index.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 +43 -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 +14 -18
- package/src/components/dataviews/stories/fixtures.tsx +690 -0
- package/src/components/dataviews/stories/index.story.tsx +164 -0
- package/src/components/dataviews/style.scss +2 -12
- package/src/components/dataviews-bulk-actions/index.tsx +264 -213
- package/src/components/dataviews-bulk-actions/style.scss +9 -4
- package/src/components/dataviews-filters/add-filter.tsx +7 -11
- package/src/components/dataviews-filters/index.tsx +3 -0
- package/src/components/dataviews-filters/search-widget.tsx +46 -25
- package/src/components/dataviews-filters/style.scss +13 -3
- package/src/components/dataviews-footer/index.tsx +50 -0
- package/src/components/dataviews-footer/style.scss +40 -0
- package/src/components/dataviews-item-actions/index.tsx +8 -14
- package/src/components/dataviews-pagination/index.tsx +40 -21
- package/src/components/dataviews-pagination/style.scss +7 -21
- package/src/components/dataviews-view-config/index.tsx +297 -69
- package/src/components/dataviews-view-config/style.scss +25 -0
- 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 +8 -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 +1 -5
- package/src/dataviews-layouts/index.ts +63 -2
- package/src/dataviews-layouts/list/index.tsx +199 -123
- package/src/dataviews-layouts/list/style.scss +10 -4
- package/src/dataviews-layouts/table/column-header-menu.tsx +86 -90
- package/src/dataviews-layouts/table/index.tsx +8 -65
- package/src/dataviews-layouts/table/style.scss +0 -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 +10 -10
- package/src/style.scss +2 -1
- package/src/test/filter-and-sort-data-view.js +28 -0
- package/src/types.ts +56 -32
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/dataviews-bulk-actions-toolbar/index.js +0 -207
- package/build/components/dataviews-bulk-actions-toolbar/index.js.map +0 -1
- package/build-module/components/dataviews-bulk-actions-toolbar/index.js +0 -201
- package/build-module/components/dataviews-bulk-actions-toolbar/index.js.map +0 -1
- package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts +0 -2
- package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts.map +0 -1
- package/src/components/dataviews/stories/fixtures.js +0 -222
- package/src/components/dataviews/stories/index.story.js +0 -65
- package/src/components/dataviews-bulk-actions-toolbar/index.tsx +0 -288
- package/src/components/dataviews-bulk-actions-toolbar/style.scss +0 -45
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { __experimentalNumberControl as NumberControl, SelectControl } from '@wordpress/components';
|
|
5
|
-
import { useCallback } from '@wordpress/element';
|
|
6
|
-
import { __ } from '@wordpress/i18n';
|
|
7
|
-
|
|
8
1
|
/**
|
|
9
2
|
* Internal dependencies
|
|
10
3
|
*/
|
|
11
|
-
|
|
4
|
+
|
|
12
5
|
function sort(a, b, direction) {
|
|
13
6
|
return direction === 'asc' ? a - b : b - a;
|
|
14
7
|
}
|
|
@@ -28,60 +21,9 @@ function isValid(value, context) {
|
|
|
28
21
|
}
|
|
29
22
|
return true;
|
|
30
23
|
}
|
|
31
|
-
function Edit({
|
|
32
|
-
data,
|
|
33
|
-
field,
|
|
34
|
-
onChange,
|
|
35
|
-
hideLabelFromVision
|
|
36
|
-
}) {
|
|
37
|
-
var _field$getValue;
|
|
38
|
-
const {
|
|
39
|
-
id,
|
|
40
|
-
label,
|
|
41
|
-
description
|
|
42
|
-
} = field;
|
|
43
|
-
const value = (_field$getValue = field.getValue({
|
|
44
|
-
item: data
|
|
45
|
-
})) !== null && _field$getValue !== void 0 ? _field$getValue : '';
|
|
46
|
-
const onChangeControl = useCallback(newValue => onChange(prevItem => ({
|
|
47
|
-
...prevItem,
|
|
48
|
-
[id]: newValue
|
|
49
|
-
})), [id, onChange]);
|
|
50
|
-
if (field.elements) {
|
|
51
|
-
const elements = [
|
|
52
|
-
/*
|
|
53
|
-
* Value can be undefined when:
|
|
54
|
-
*
|
|
55
|
-
* - the field is not required
|
|
56
|
-
* - in bulk editing
|
|
57
|
-
*
|
|
58
|
-
*/
|
|
59
|
-
{
|
|
60
|
-
label: __('Select item'),
|
|
61
|
-
value: ''
|
|
62
|
-
}, ...field.elements];
|
|
63
|
-
return /*#__PURE__*/_jsx(SelectControl, {
|
|
64
|
-
label: label,
|
|
65
|
-
value: value,
|
|
66
|
-
options: elements,
|
|
67
|
-
onChange: onChangeControl,
|
|
68
|
-
__next40pxDefaultSize: true,
|
|
69
|
-
__nextHasNoMarginBottom: true,
|
|
70
|
-
hideLabelFromVision: hideLabelFromVision
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
return /*#__PURE__*/_jsx(NumberControl, {
|
|
74
|
-
label: label,
|
|
75
|
-
help: description,
|
|
76
|
-
value: value,
|
|
77
|
-
onChange: onChangeControl,
|
|
78
|
-
__next40pxDefaultSize: true,
|
|
79
|
-
hideLabelFromVision: hideLabelFromVision
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
24
|
export default {
|
|
83
25
|
sort,
|
|
84
26
|
isValid,
|
|
85
|
-
Edit
|
|
27
|
+
Edit: 'integer'
|
|
86
28
|
};
|
|
87
29
|
//# sourceMappingURL=integer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["sort","a","b","direction","isValid","value","context","Number","isInteger","elements","validValues","map","f","includes","Edit"],"sources":["@wordpress/dataviews/src/field-types/integer.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { SortDirection, ValidationContext } from '../types';\n\nfunction sort( a: any, b: any, direction: SortDirection ) {\n\treturn direction === 'asc' ? a - b : b - a;\n}\n\nfunction isValid( value: any, context?: ValidationContext ) {\n\t// TODO: this implicitely means the value is required.\n\tif ( value === '' ) {\n\t\treturn false;\n\t}\n\n\tif ( ! Number.isInteger( Number( value ) ) ) {\n\t\treturn false;\n\t}\n\n\tif ( context?.elements ) {\n\t\tconst validValues = context?.elements.map( ( f ) => f.value );\n\t\tif ( ! validValues.includes( Number( value ) ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport default {\n\tsort,\n\tisValid,\n\tEdit: 'integer',\n};\n"],"mappings":"AAAA;AACA;AACA;;AAGA,SAASA,IAAIA,CAAEC,CAAM,EAAEC,CAAM,EAAEC,SAAwB,EAAG;EACzD,OAAOA,SAAS,KAAK,KAAK,GAAGF,CAAC,GAAGC,CAAC,GAAGA,CAAC,GAAGD,CAAC;AAC3C;AAEA,SAASG,OAAOA,CAAEC,KAAU,EAAEC,OAA2B,EAAG;EAC3D;EACA,IAAKD,KAAK,KAAK,EAAE,EAAG;IACnB,OAAO,KAAK;EACb;EAEA,IAAK,CAAEE,MAAM,CAACC,SAAS,CAAED,MAAM,CAAEF,KAAM,CAAE,CAAC,EAAG;IAC5C,OAAO,KAAK;EACb;EAEA,IAAKC,OAAO,EAAEG,QAAQ,EAAG;IACxB,MAAMC,WAAW,GAAGJ,OAAO,EAAEG,QAAQ,CAACE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACP,KAAM,CAAC;IAC7D,IAAK,CAAEK,WAAW,CAACG,QAAQ,CAAEN,MAAM,CAAEF,KAAM,CAAE,CAAC,EAAG;MAChD,OAAO,KAAK;IACb;EACD;EAEA,OAAO,IAAI;AACZ;AAEA,eAAe;EACdL,IAAI;EACJI,OAAO;EACPU,IAAI,EAAE;AACP,CAAC","ignoreList":[]}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { SelectControl, TextControl } from '@wordpress/components';
|
|
5
|
-
import { useCallback } from '@wordpress/element';
|
|
6
|
-
import { __ } from '@wordpress/i18n';
|
|
7
|
-
|
|
8
1
|
/**
|
|
9
2
|
* Internal dependencies
|
|
10
3
|
*/
|
|
11
|
-
|
|
4
|
+
|
|
12
5
|
function sort(valueA, valueB, direction) {
|
|
13
6
|
return direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
|
|
14
7
|
}
|
|
@@ -21,60 +14,9 @@ function isValid(value, context) {
|
|
|
21
14
|
}
|
|
22
15
|
return true;
|
|
23
16
|
}
|
|
24
|
-
function Edit({
|
|
25
|
-
data,
|
|
26
|
-
field,
|
|
27
|
-
onChange,
|
|
28
|
-
hideLabelFromVision
|
|
29
|
-
}) {
|
|
30
|
-
const {
|
|
31
|
-
id,
|
|
32
|
-
label,
|
|
33
|
-
placeholder
|
|
34
|
-
} = field;
|
|
35
|
-
const value = field.getValue({
|
|
36
|
-
item: data
|
|
37
|
-
});
|
|
38
|
-
const onChangeControl = useCallback(newValue => onChange(prevItem => ({
|
|
39
|
-
...prevItem,
|
|
40
|
-
[id]: newValue
|
|
41
|
-
})), [id, onChange]);
|
|
42
|
-
if (field.elements) {
|
|
43
|
-
const elements = [
|
|
44
|
-
/*
|
|
45
|
-
* Value can be undefined when:
|
|
46
|
-
*
|
|
47
|
-
* - the field is not required
|
|
48
|
-
* - in bulk editing
|
|
49
|
-
*
|
|
50
|
-
*/
|
|
51
|
-
{
|
|
52
|
-
label: __('Select item'),
|
|
53
|
-
value: ''
|
|
54
|
-
}, ...field.elements];
|
|
55
|
-
return /*#__PURE__*/_jsx(SelectControl, {
|
|
56
|
-
label: label,
|
|
57
|
-
value: value,
|
|
58
|
-
options: elements,
|
|
59
|
-
onChange: onChangeControl,
|
|
60
|
-
__next40pxDefaultSize: true,
|
|
61
|
-
__nextHasNoMarginBottom: true,
|
|
62
|
-
hideLabelFromVision: hideLabelFromVision
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
return /*#__PURE__*/_jsx(TextControl, {
|
|
66
|
-
label: label,
|
|
67
|
-
placeholder: placeholder,
|
|
68
|
-
value: value !== null && value !== void 0 ? value : '',
|
|
69
|
-
onChange: onChangeControl,
|
|
70
|
-
__next40pxDefaultSize: true,
|
|
71
|
-
__nextHasNoMarginBottom: true,
|
|
72
|
-
hideLabelFromVision: hideLabelFromVision
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
17
|
export default {
|
|
76
18
|
sort,
|
|
77
19
|
isValid,
|
|
78
|
-
Edit
|
|
20
|
+
Edit: 'text'
|
|
79
21
|
};
|
|
80
22
|
//# sourceMappingURL=text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["sort","valueA","valueB","direction","localeCompare","isValid","value","context","elements","validValues","map","f","includes","Edit"],"sources":["@wordpress/dataviews/src/field-types/text.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { SortDirection, ValidationContext } from '../types';\n\nfunction sort( valueA: any, valueB: any, direction: SortDirection ) {\n\treturn direction === 'asc'\n\t\t? valueA.localeCompare( valueB )\n\t\t: valueB.localeCompare( valueA );\n}\n\nfunction isValid( value: any, context?: ValidationContext ) {\n\tif ( context?.elements ) {\n\t\tconst validValues = context?.elements?.map( ( f ) => f.value );\n\t\tif ( ! validValues.includes( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport default {\n\tsort,\n\tisValid,\n\tEdit: 'text',\n};\n"],"mappings":"AAAA;AACA;AACA;;AAGA,SAASA,IAAIA,CAAEC,MAAW,EAAEC,MAAW,EAAEC,SAAwB,EAAG;EACnE,OAAOA,SAAS,KAAK,KAAK,GACvBF,MAAM,CAACG,aAAa,CAAEF,MAAO,CAAC,GAC9BA,MAAM,CAACE,aAAa,CAAEH,MAAO,CAAC;AAClC;AAEA,SAASI,OAAOA,CAAEC,KAAU,EAAEC,OAA2B,EAAG;EAC3D,IAAKA,OAAO,EAAEC,QAAQ,EAAG;IACxB,MAAMC,WAAW,GAAGF,OAAO,EAAEC,QAAQ,EAAEE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACL,KAAM,CAAC;IAC9D,IAAK,CAAEG,WAAW,CAACG,QAAQ,CAAEN,KAAM,CAAC,EAAG;MACtC,OAAO,KAAK;IACb;EACD;EAEA,OAAO,IAAI;AACZ;AAEA,eAAe;EACdN,IAAI;EACJK,OAAO;EACPQ,IAAI,EAAE;AACP,CAAC","ignoreList":[]}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
import getFieldTypeDefinition from './field-types';
|
|
5
|
+
import { getControl } from './dataform-controls';
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* Apply default values and normalize the fields config.
|
|
7
9
|
*
|
|
@@ -10,7 +12,7 @@ import getFieldTypeDefinition from './field-types';
|
|
|
10
12
|
*/
|
|
11
13
|
export function normalizeFields(fields) {
|
|
12
14
|
return fields.map(field => {
|
|
13
|
-
var _field$sort, _field$isValid;
|
|
15
|
+
var _field$sort, _field$isValid, _field$enableHiding, _field$enableSorting;
|
|
14
16
|
const fieldTypeDefinition = getFieldTypeDefinition(field.type);
|
|
15
17
|
const getValue = field.getValue || (({
|
|
16
18
|
item
|
|
@@ -27,29 +29,29 @@ export function normalizeFields(fields) {
|
|
|
27
29
|
item
|
|
28
30
|
}), context);
|
|
29
31
|
};
|
|
30
|
-
const Edit = field
|
|
32
|
+
const Edit = getControl(field, fieldTypeDefinition);
|
|
31
33
|
const renderFromElements = ({
|
|
32
34
|
item
|
|
33
35
|
}) => {
|
|
34
36
|
const value = getValue({
|
|
35
37
|
item
|
|
36
38
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return element.value == value;
|
|
41
|
-
})?.label;
|
|
42
|
-
return label || value;
|
|
39
|
+
return field?.elements?.find(element => element.value === value)?.label || getValue({
|
|
40
|
+
item
|
|
41
|
+
});
|
|
43
42
|
};
|
|
44
43
|
const render = field.render || (field.elements ? renderFromElements : getValue);
|
|
45
44
|
return {
|
|
46
45
|
...field,
|
|
47
46
|
label: field.label || field.id,
|
|
47
|
+
header: field.header || field.label || field.id,
|
|
48
48
|
getValue,
|
|
49
49
|
render,
|
|
50
50
|
sort,
|
|
51
51
|
isValid,
|
|
52
|
-
Edit
|
|
52
|
+
Edit,
|
|
53
|
+
enableHiding: (_field$enableHiding = field.enableHiding) !== null && _field$enableHiding !== void 0 ? _field$enableHiding : true,
|
|
54
|
+
enableSorting: (_field$enableSorting = field.enableSorting) !== null && _field$enableSorting !== void 0 ? _field$enableSorting : true
|
|
53
55
|
};
|
|
54
56
|
});
|
|
55
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getFieldTypeDefinition","normalizeFields","fields","map","field","_field$sort","_field$isValid","fieldTypeDefinition","type","getValue","item","id","sort","a","b","direction","isValid","context","Edit","renderFromElements","value","
|
|
1
|
+
{"version":3,"names":["getFieldTypeDefinition","getControl","normalizeFields","fields","map","field","_field$sort","_field$isValid","_field$enableHiding","_field$enableSorting","fieldTypeDefinition","type","getValue","item","id","sort","a","b","direction","isValid","context","Edit","renderFromElements","value","elements","find","element","label","render","header","enableHiding","enableSorting"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from './field-types';\nimport type { Field, NormalizedField } from './types';\nimport { getControl } from './dataform-controls';\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldTypeDefinition = getFieldTypeDefinition( field.type );\n\n\t\tconst getValue =\n\t\t\tfield.getValue || ( ( { item } ) => ( item as any )[ field.id ] );\n\n\t\tconst sort =\n\t\t\tfield.sort ??\n\t\t\tfunction sort( a, b, direction ) {\n\t\t\t\treturn fieldTypeDefinition.sort(\n\t\t\t\t\tgetValue( { item: a } ),\n\t\t\t\t\tgetValue( { item: b } ),\n\t\t\t\t\tdirection\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst isValid =\n\t\t\tfield.isValid ??\n\t\t\tfunction isValid( item, context ) {\n\t\t\t\treturn fieldTypeDefinition.isValid(\n\t\t\t\t\tgetValue( { item } ),\n\t\t\t\t\tcontext\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst Edit = getControl( field, fieldTypeDefinition );\n\n\t\tconst renderFromElements = ( { item }: { item: Item } ) => {\n\t\t\tconst value = getValue( { item } );\n\t\t\treturn (\n\t\t\t\tfield?.elements?.find( ( element ) => element.value === value )\n\t\t\t\t\t?.label || getValue( { item } )\n\t\t\t);\n\t\t};\n\n\t\tconst render =\n\t\t\tfield.render || ( field.elements ? renderFromElements : getValue );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tgetValue,\n\t\t\trender,\n\t\t\tsort,\n\t\t\tisValid,\n\t\t\tEdit,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\tenableSorting: field.enableSorting ?? true,\n\t\t};\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,sBAAsB,MAAM,eAAe;AAElD,SAASC,UAAU,QAAQ,qBAAqB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC9BC,MAAuB,EACK;EAC5B,OAAOA,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAAA,IAAAC,WAAA,EAAAC,cAAA,EAAAC,mBAAA,EAAAC,oBAAA;IAC/B,MAAMC,mBAAmB,GAAGV,sBAAsB,CAAEK,KAAK,CAACM,IAAK,CAAC;IAEhE,MAAMC,QAAQ,GACbP,KAAK,CAACO,QAAQ,KAAM,CAAE;MAAEC;IAAK,CAAC,KAAQA,IAAI,CAAWR,KAAK,CAACS,EAAE,CAAE,CAAE;IAElE,MAAMC,IAAI,IAAAT,WAAA,GACTD,KAAK,CAACU,IAAI,cAAAT,WAAA,cAAAA,WAAA,GACV,SAASS,IAAIA,CAAEC,CAAC,EAAEC,CAAC,EAAEC,SAAS,EAAG;MAChC,OAAOR,mBAAmB,CAACK,IAAI,CAC9BH,QAAQ,CAAE;QAAEC,IAAI,EAAEG;MAAE,CAAE,CAAC,EACvBJ,QAAQ,CAAE;QAAEC,IAAI,EAAEI;MAAE,CAAE,CAAC,EACvBC,SACD,CAAC;IACF,CAAC;IAEF,MAAMC,OAAO,IAAAZ,cAAA,GACZF,KAAK,CAACc,OAAO,cAAAZ,cAAA,cAAAA,cAAA,GACb,SAASY,OAAOA,CAAEN,IAAI,EAAEO,OAAO,EAAG;MACjC,OAAOV,mBAAmB,CAACS,OAAO,CACjCP,QAAQ,CAAE;QAAEC;MAAK,CAAE,CAAC,EACpBO,OACD,CAAC;IACF,CAAC;IAEF,MAAMC,IAAI,GAAGpB,UAAU,CAAEI,KAAK,EAAEK,mBAAoB,CAAC;IAErD,MAAMY,kBAAkB,GAAGA,CAAE;MAAET;IAAqB,CAAC,KAAM;MAC1D,MAAMU,KAAK,GAAGX,QAAQ,CAAE;QAAEC;MAAK,CAAE,CAAC;MAClC,OACCR,KAAK,EAAEmB,QAAQ,EAAEC,IAAI,CAAIC,OAAO,IAAMA,OAAO,CAACH,KAAK,KAAKA,KAAM,CAAC,EAC5DI,KAAK,IAAIf,QAAQ,CAAE;QAAEC;MAAK,CAAE,CAAC;IAElC,CAAC;IAED,MAAMe,MAAM,GACXvB,KAAK,CAACuB,MAAM,KAAMvB,KAAK,CAACmB,QAAQ,GAAGF,kBAAkB,GAAGV,QAAQ,CAAE;IAEnE,OAAO;MACN,GAAGP,KAAK;MACRsB,KAAK,EAAEtB,KAAK,CAACsB,KAAK,IAAItB,KAAK,CAACS,EAAE;MAC9Be,MAAM,EAAExB,KAAK,CAACwB,MAAM,IAAIxB,KAAK,CAACsB,KAAK,IAAItB,KAAK,CAACS,EAAE;MAC/CF,QAAQ;MACRgB,MAAM;MACNb,IAAI;MACJI,OAAO;MACPE,IAAI;MACJS,YAAY,GAAAtB,mBAAA,GAAEH,KAAK,CAACyB,YAAY,cAAAtB,mBAAA,cAAAA,mBAAA,GAAI,IAAI;MACxCuB,aAAa,GAAAtB,oBAAA,GAAEJ,KAAK,CAAC0B,aAAa,cAAAtB,oBAAA,cAAAA,oBAAA,GAAI;IACvC,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type {\n\tReactElement,\n\tComponentType,\n\tDispatch,\n\tSetStateAction,\n} from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type ItemRecord = Record< string, unknown >;\n\nexport type FieldType = 'text' | 'integer';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< { item: Item } >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > >;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n} & ( Item extends ItemRecord\n\t? {\n\t\t\t/**\n\t\t\t * Callback used to retrieve the value of the field from the item.\n\t\t\t * Defaults to `item[ field.id ]`.\n\t\t\t */\n\t\t\tgetValue?: ( args: { item: Item } ) => any;\n\t }\n\t: {\n\t\t\t/**\n\t\t\t * Callback used to retrieve the value of the field from the item.\n\t\t\t * Defaults to `item[ field.id ]`.\n\t\t\t */\n\t\t\tgetValue: ( args: { item: Item } ) => any;\n\t } );\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< { item: Item } >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\n/**\n * The form configuration.\n */\nexport type Form = {\n\ttype?: 'regular' | 'panel';\n\tfields?: string[];\n};\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: Dispatch< SetStateAction< Item > >;\n\thideLabelFromVision?: boolean;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: {\n\t\titems: Item[];\n\t\tcloseModal?: () => void;\n\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t} ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n\tdensity: number;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form;\n\tonChange: Dispatch< SetStateAction< Item > >;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< { item: Item } >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< { item: Item } >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\n/**\n * The form configuration.\n */\nexport type Form = {\n\ttype?: 'regular' | 'panel';\n\tfields?: string[];\n};\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\theader?: string | ReactElement;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n\tdensity: number;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
* Radius scale.
|
|
38
38
|
*/
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* Elevation scale.
|
|
41
41
|
*/
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* Dimensions.
|
|
44
44
|
*/
|
|
45
45
|
/**
|
|
46
46
|
* Editor widths.
|
|
@@ -116,6 +116,8 @@
|
|
|
116
116
|
container: dataviews-wrapper/inline-size;
|
|
117
117
|
display: flex;
|
|
118
118
|
flex-direction: column;
|
|
119
|
+
font-size: 13px;
|
|
120
|
+
line-height: 1.4;
|
|
119
121
|
}
|
|
120
122
|
|
|
121
123
|
.dataviews__view-actions,
|
|
@@ -134,10 +136,6 @@
|
|
|
134
136
|
transition-delay: 0s;
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
|
-
.dataviews__view-actions .components-search-control .components-base-control__field,
|
|
138
|
-
.dataviews-filters__container .components-search-control .components-base-control__field {
|
|
139
|
-
max-width: 240px;
|
|
140
|
-
}
|
|
141
139
|
|
|
142
140
|
.dataviews-view-list__primary-field,
|
|
143
141
|
.dataviews-view-grid__primary-field,
|
|
@@ -213,10 +211,6 @@
|
|
|
213
211
|
.dataviews-filters__container {
|
|
214
212
|
padding: 12px 24px;
|
|
215
213
|
}
|
|
216
|
-
.dataviews__view-actions .components-search-control .components-base-control__field,
|
|
217
|
-
.dataviews-filters__container .components-search-control .components-base-control__field {
|
|
218
|
-
max-width: 112px;
|
|
219
|
-
}
|
|
220
214
|
|
|
221
215
|
.dataviews-view-grid,
|
|
222
216
|
.dataviews-no-results,
|
|
@@ -225,53 +219,16 @@
|
|
|
225
219
|
padding-left: 24px;
|
|
226
220
|
}
|
|
227
221
|
}
|
|
228
|
-
.dataviews-bulk-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
flex-shrink: 0;
|
|
222
|
+
.dataviews-bulk-actions-footer__item-count {
|
|
223
|
+
color: #1e1e1e;
|
|
224
|
+
font-weight: 500;
|
|
225
|
+
font-size: 11px;
|
|
226
|
+
text-transform: uppercase;
|
|
234
227
|
}
|
|
235
228
|
|
|
236
|
-
.dataviews-bulk-actions-
|
|
237
|
-
position: sticky;
|
|
238
|
-
display: flex;
|
|
239
|
-
flex-direction: column;
|
|
240
|
-
align-content: center;
|
|
241
|
-
flex-wrap: wrap;
|
|
242
|
-
width: -moz-fit-content;
|
|
243
|
-
width: fit-content;
|
|
244
|
-
margin-right: auto;
|
|
229
|
+
.dataviews-bulk-actions-footer__container {
|
|
245
230
|
margin-left: auto;
|
|
246
|
-
|
|
247
|
-
z-index: 2;
|
|
248
|
-
}
|
|
249
|
-
.dataviews-bulk-actions-toolbar .components-accessible-toolbar {
|
|
250
|
-
border-color: #ddd;
|
|
251
|
-
box-shadow: 0 0.7px 1px rgba(0, 0, 0, 0.1), 0 1.2px 1.7px -0.2px rgba(0, 0, 0, 0.1), 0 2.3px 3.3px -0.5px rgba(0, 0, 0, 0.1);
|
|
252
|
-
}
|
|
253
|
-
.dataviews-bulk-actions-toolbar .components-accessible-toolbar .components-toolbar-group {
|
|
254
|
-
border-color: #e0e0e0;
|
|
255
|
-
}
|
|
256
|
-
.dataviews-bulk-actions-toolbar .components-accessible-toolbar .components-toolbar-group:last-child {
|
|
257
|
-
border: 0;
|
|
258
|
-
}
|
|
259
|
-
.dataviews-bulk-actions-toolbar .dataviews-bulk-actions-toolbar__selection-count {
|
|
260
|
-
display: flex;
|
|
261
|
-
align-items: center;
|
|
262
|
-
margin: 0 8px 0 8px;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
.dataviews-bulk-actions-toolbar__wrapper {
|
|
266
|
-
display: flex;
|
|
267
|
-
flex-grow: 1;
|
|
268
|
-
width: 100%;
|
|
269
|
-
}
|
|
270
|
-
.dataviews-bulk-actions-toolbar__wrapper .components-toolbar-group {
|
|
271
|
-
align-items: center;
|
|
272
|
-
}
|
|
273
|
-
.dataviews-bulk-actions-toolbar__wrapper .components-button.is-busy {
|
|
274
|
-
max-height: 36px;
|
|
231
|
+
min-height: 32px;
|
|
275
232
|
}
|
|
276
233
|
|
|
277
234
|
.dataviews-filters__button {
|
|
@@ -289,11 +246,17 @@
|
|
|
289
246
|
opacity: 1;
|
|
290
247
|
}
|
|
291
248
|
|
|
249
|
+
.dataviews-filters__summary-popover {
|
|
250
|
+
font-size: 13px;
|
|
251
|
+
line-height: 1.4;
|
|
252
|
+
}
|
|
292
253
|
.dataviews-filters__summary-popover .components-popover__content {
|
|
293
254
|
width: 230px;
|
|
294
|
-
padding: 0;
|
|
295
255
|
border-radius: 4px;
|
|
296
256
|
}
|
|
257
|
+
.dataviews-filters__summary-popover.components-dropdown__content .components-popover__content {
|
|
258
|
+
padding: 0;
|
|
259
|
+
}
|
|
297
260
|
|
|
298
261
|
.dataviews-filters__summary-operators-container {
|
|
299
262
|
padding: 8px 8px 0;
|
|
@@ -324,6 +287,7 @@
|
|
|
324
287
|
position: relative;
|
|
325
288
|
display: flex;
|
|
326
289
|
align-items: center;
|
|
290
|
+
box-sizing: border-box;
|
|
327
291
|
}
|
|
328
292
|
.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-reset {
|
|
329
293
|
padding-inline-end: 28px;
|
|
@@ -535,6 +499,7 @@
|
|
|
535
499
|
font-size: 11px;
|
|
536
500
|
outline: var(--wp-admin-border-width-focus) solid #fff;
|
|
537
501
|
color: #fff;
|
|
502
|
+
box-sizing: border-box;
|
|
538
503
|
}
|
|
539
504
|
|
|
540
505
|
.dataviews-search {
|
|
@@ -542,37 +507,58 @@
|
|
|
542
507
|
width: fit-content;
|
|
543
508
|
}
|
|
544
509
|
|
|
545
|
-
.dataviews-
|
|
510
|
+
.dataviews-footer {
|
|
546
511
|
position: sticky;
|
|
547
512
|
bottom: 0;
|
|
548
513
|
right: 0;
|
|
549
514
|
background-color: #fff;
|
|
550
515
|
padding: 12px 48px;
|
|
551
516
|
border-top: 1px solid #f0f0f0;
|
|
552
|
-
color: #757575;
|
|
553
517
|
flex-shrink: 0;
|
|
554
518
|
transition: padding ease-out 0.1s;
|
|
519
|
+
z-index: 2;
|
|
555
520
|
}
|
|
556
521
|
@media (prefers-reduced-motion: reduce) {
|
|
557
|
-
.dataviews-
|
|
522
|
+
.dataviews-footer {
|
|
558
523
|
transition-duration: 0s;
|
|
559
524
|
transition-delay: 0s;
|
|
560
525
|
}
|
|
561
526
|
}
|
|
562
527
|
|
|
563
|
-
.dataviews-pagination__page-selection {
|
|
564
|
-
font-size: 11px;
|
|
565
|
-
text-transform: uppercase;
|
|
566
|
-
font-weight: 500;
|
|
567
|
-
color: #1e1e1e;
|
|
568
|
-
}
|
|
569
|
-
|
|
570
528
|
/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */
|
|
571
529
|
@container (max-width: 430px) {
|
|
572
|
-
.dataviews-
|
|
530
|
+
.dataviews-footer {
|
|
573
531
|
padding: 12px 24px;
|
|
574
532
|
}
|
|
575
533
|
}
|
|
534
|
+
/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */
|
|
535
|
+
@container (max-width: 560px) {
|
|
536
|
+
.dataviews-footer {
|
|
537
|
+
flex-direction: column !important;
|
|
538
|
+
}
|
|
539
|
+
.dataviews-footer .dataviews-bulk-actions-footer__container {
|
|
540
|
+
width: 100%;
|
|
541
|
+
}
|
|
542
|
+
.dataviews-footer .dataviews-bulk-actions-footer__item-count {
|
|
543
|
+
flex-grow: 1;
|
|
544
|
+
}
|
|
545
|
+
.dataviews-footer .dataviews-pagination {
|
|
546
|
+
width: 100%;
|
|
547
|
+
justify-content: space-between;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
.dataviews-pagination__page-select {
|
|
551
|
+
font-size: 11px;
|
|
552
|
+
font-weight: 500;
|
|
553
|
+
text-transform: uppercase;
|
|
554
|
+
}
|
|
555
|
+
@media (min-width: 600px) {
|
|
556
|
+
.dataviews-pagination__page-select .components-select-control__input {
|
|
557
|
+
font-size: 11px !important;
|
|
558
|
+
font-weight: 500;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
576
562
|
.dataviews-action-modal {
|
|
577
563
|
z-index: 1000001;
|
|
578
564
|
}
|
|
@@ -596,6 +582,8 @@
|
|
|
596
582
|
/* stylelint-disable-next-line property-no-unknown -- the linter needs to be updated to accepted the container-type property */
|
|
597
583
|
container-type: inline-size;
|
|
598
584
|
padding: 16px;
|
|
585
|
+
font-size: 13px;
|
|
586
|
+
line-height: 1.4;
|
|
599
587
|
}
|
|
600
588
|
|
|
601
589
|
.dataviews-view-config__sort-direction .components-toggle-group-control-option-base {
|
|
@@ -623,6 +611,10 @@
|
|
|
623
611
|
grid-column: span 4;
|
|
624
612
|
}
|
|
625
613
|
|
|
614
|
+
.dataviews-settings-section:has(.dataviews-settings-section__content:empty) {
|
|
615
|
+
display: none;
|
|
616
|
+
}
|
|
617
|
+
|
|
626
618
|
/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */
|
|
627
619
|
@container (max-width: 500px) {
|
|
628
620
|
.dataviews-settings-section.dataviews-settings-section {
|
|
@@ -635,6 +627,25 @@
|
|
|
635
627
|
grid-column: span 2;
|
|
636
628
|
}
|
|
637
629
|
}
|
|
630
|
+
.dataviews-field-control__field {
|
|
631
|
+
height: 32px;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
.dataviews-field-control__actions {
|
|
635
|
+
position: absolute;
|
|
636
|
+
top: -9999em;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
.dataviews-field-control__actions.dataviews-field-control__actions {
|
|
640
|
+
gap: 4px;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.dataviews-field-control__field:hover .dataviews-field-control__actions,
|
|
644
|
+
.dataviews-field-control__field:focus-within .dataviews-field-control__actions {
|
|
645
|
+
position: unset;
|
|
646
|
+
top: unset;
|
|
647
|
+
}
|
|
648
|
+
|
|
638
649
|
.dataviews-view-grid {
|
|
639
650
|
margin-bottom: auto;
|
|
640
651
|
grid-template-rows: max-content;
|
|
@@ -766,10 +777,6 @@
|
|
|
766
777
|
}
|
|
767
778
|
}
|
|
768
779
|
|
|
769
|
-
.dataviews-density-picker__range-control {
|
|
770
|
-
width: 200px;
|
|
771
|
-
}
|
|
772
|
-
|
|
773
780
|
.dataviews-view-grid__field-value:empty,
|
|
774
781
|
.dataviews-view-grid__field:empty {
|
|
775
782
|
display: none;
|
|
@@ -788,6 +795,10 @@
|
|
|
788
795
|
top: 8px;
|
|
789
796
|
}
|
|
790
797
|
|
|
798
|
+
ul.dataviews-view-list {
|
|
799
|
+
list-style-type: none;
|
|
800
|
+
}
|
|
801
|
+
|
|
791
802
|
.dataviews-view-list {
|
|
792
803
|
margin: 0 0 auto;
|
|
793
804
|
}
|
|
@@ -841,12 +852,13 @@
|
|
|
841
852
|
.dataviews-view-list li:not(.is-selected) .dataviews-view-list__primary-field {
|
|
842
853
|
color: #1e1e1e;
|
|
843
854
|
}
|
|
844
|
-
.dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected):focus-within {
|
|
855
|
+
.dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected).is-hovered, .dataviews-view-list li:not(.is-selected):focus-within {
|
|
845
856
|
color: var(--wp-admin-theme-color);
|
|
846
857
|
background-color: #f8f8f8;
|
|
847
858
|
}
|
|
848
859
|
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,
|
|
849
|
-
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected)
|
|
860
|
+
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected).is-hovered .dataviews-view-list__primary-field,
|
|
861
|
+
.dataviews-view-list li:not(.is-selected).is-hovered .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,
|
|
850
862
|
.dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {
|
|
851
863
|
color: var(--wp-admin-theme-color);
|
|
852
864
|
}
|
|
@@ -862,6 +874,7 @@
|
|
|
862
874
|
color: var(--wp-admin-theme-color);
|
|
863
875
|
}
|
|
864
876
|
.dataviews-view-list .dataviews-view-list__item {
|
|
877
|
+
box-sizing: border-box;
|
|
865
878
|
padding: 16px 24px;
|
|
866
879
|
width: 100%;
|
|
867
880
|
scroll-margin: 8px 0;
|
|
@@ -869,7 +882,7 @@
|
|
|
869
882
|
.dataviews-view-list .dataviews-view-list__item:focus-visible::before {
|
|
870
883
|
position: absolute;
|
|
871
884
|
content: "";
|
|
872
|
-
top:
|
|
885
|
+
top: var(--wp-admin-border-width-focus);
|
|
873
886
|
left: var(--wp-admin-border-width-focus);
|
|
874
887
|
bottom: var(--wp-admin-border-width-focus);
|
|
875
888
|
right: var(--wp-admin-border-width-focus);
|
|
@@ -906,8 +919,8 @@
|
|
|
906
919
|
border-radius: 4px;
|
|
907
920
|
}
|
|
908
921
|
.dataviews-view-list .dataviews-view-list__media-placeholder {
|
|
909
|
-
|
|
910
|
-
height:
|
|
922
|
+
width: 52px;
|
|
923
|
+
height: 52px;
|
|
911
924
|
background-color: #e0e0e0;
|
|
912
925
|
}
|
|
913
926
|
.dataviews-view-list .dataviews-view-list__field-wrapper {
|
|
@@ -946,11 +959,6 @@
|
|
|
946
959
|
color: #757575;
|
|
947
960
|
margin-bottom: auto;
|
|
948
961
|
}
|
|
949
|
-
.dataviews-view-table a {
|
|
950
|
-
text-decoration: none;
|
|
951
|
-
color: #1e1e1e;
|
|
952
|
-
font-weight: 500;
|
|
953
|
-
}
|
|
954
962
|
.dataviews-view-table th {
|
|
955
963
|
text-align: right;
|
|
956
964
|
color: #1e1e1e;
|
|
@@ -1108,6 +1116,11 @@
|
|
|
1108
1116
|
}
|
|
1109
1117
|
}
|
|
1110
1118
|
|
|
1119
|
+
.dataviews-controls__datetime {
|
|
1120
|
+
border: none;
|
|
1121
|
+
padding: 0;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1111
1124
|
.dataforms-layouts-panel__field {
|
|
1112
1125
|
width: 100%;
|
|
1113
1126
|
min-height: 32px;
|