@wordpress/dataviews 1.0.0 → 1.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.
- package/CHANGELOG.md +2 -0
- package/build/constants.js +1 -26
- package/build/constants.js.map +1 -1
- package/build/dataviews.js +2 -1
- package/build/dataviews.js.map +1 -1
- package/build/filter-and-sort-data-view.js +72 -65
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/layouts.js +38 -0
- package/build/layouts.js.map +1 -0
- package/build/normalize-fields.js +7 -2
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js +6 -0
- package/build/types.js.map +1 -0
- package/build/view-actions.js +2 -1
- package/build/view-actions.js.map +1 -1
- package/build-module/constants.js +1 -25
- package/build-module/constants.js.map +1 -1
- package/build-module/dataviews.js +2 -1
- package/build-module/dataviews.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +72 -65
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts.js +30 -0
- package/build-module/layouts.js.map +1 -0
- package/build-module/normalize-fields.js +7 -2
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js +2 -0
- package/build-module/types.js.map +1 -0
- package/build-module/view-actions.js +2 -1
- package/build-module/view-actions.js.map +1 -1
- package/build-style/style-rtl.css +20 -17
- package/build-style/style.css +20 -17
- package/build-types/constants.d.ts +45 -0
- package/build-types/constants.d.ts.map +1 -0
- package/build-types/filter-and-sort-data-view.d.ts +18 -0
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -0
- package/build-types/normalize-fields.d.ts +12 -0
- package/build-types/normalize-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +122 -0
- package/build-types/types.d.ts.map +1 -0
- package/package.json +11 -11
- package/src/{constants.js → constants.ts} +1 -35
- package/src/dataviews.js +2 -1
- package/src/filter-and-sort-data-view.ts +164 -0
- package/src/index.js +1 -1
- package/src/layouts.js +39 -0
- package/src/normalize-fields.ts +23 -0
- package/src/stories/fixtures.js +0 -2
- package/src/style.scss +23 -16
- package/src/types.ts +144 -0
- package/src/view-actions.js +2 -1
- package/tsconfig.json +20 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/src/filter-and-sort-data-view.js +0 -154
- package/src/normalize-fields.js +0 -17
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { __
|
|
5
|
-
import { blockTable, category, formatListBullets, formatListBulletsRTL } from '@wordpress/icons';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import ViewTable from './view-table';
|
|
11
|
-
import ViewGrid from './view-grid';
|
|
12
|
-
import ViewList from './view-list';
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
13
5
|
|
|
14
6
|
// Filter operators.
|
|
15
7
|
export const OPERATOR_IS = 'is';
|
|
@@ -60,20 +52,4 @@ export const SORTING_DIRECTIONS = {
|
|
|
60
52
|
export const LAYOUT_TABLE = 'table';
|
|
61
53
|
export const LAYOUT_GRID = 'grid';
|
|
62
54
|
export const LAYOUT_LIST = 'list';
|
|
63
|
-
export const VIEW_LAYOUTS = [{
|
|
64
|
-
type: LAYOUT_TABLE,
|
|
65
|
-
label: __('Table'),
|
|
66
|
-
component: ViewTable,
|
|
67
|
-
icon: blockTable
|
|
68
|
-
}, {
|
|
69
|
-
type: LAYOUT_GRID,
|
|
70
|
-
label: __('Grid'),
|
|
71
|
-
component: ViewGrid,
|
|
72
|
-
icon: category
|
|
73
|
-
}, {
|
|
74
|
-
type: LAYOUT_LIST,
|
|
75
|
-
label: __('List'),
|
|
76
|
-
component: ViewList,
|
|
77
|
-
icon: isRTL() ? formatListBulletsRTL : formatListBullets
|
|
78
|
-
}];
|
|
79
55
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","
|
|
1
|
+
{"version":3,"names":["__","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","ALL_OPERATORS","OPERATORS","key","label","SORTING_DIRECTIONS","asc","desc","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST"],"sources":["@wordpress/dataviews/src/constants.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\n\nexport const ALL_OPERATORS = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n];\nexport const OPERATORS = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n};\n\n// Sorting\nexport const SORTING_DIRECTIONS = {\n\tasc: { label: __( 'Sort ascending' ) },\n\tdesc: { label: __( 'Sort descending' ) },\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,gBAAgB,GAAG,QAAQ;AACxC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;AAE7C,OAAO,MAAMC,aAAa,GAAG,CAC5BN,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,CACnB;AACD,OAAO,MAAME,SAAS,GAAG;EACxB,CAAEP,WAAW,GAAI;IAChBQ,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAEV,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEE,eAAe,GAAI;IACpBO,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEV,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEG,eAAe,GAAI;IACpBM,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEV,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEI,gBAAgB,GAAI;IACrBK,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAEV,EAAE,CAAE,SAAU;EACtB,CAAC;EACD,CAAEK,eAAe,GAAI;IACpBI,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEV,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEM,mBAAmB,GAAI;IACxBG,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAEV,EAAE,CAAE,YAAa;EACzB;AACD,CAAC;;AAED;AACA,OAAO,MAAMW,kBAAkB,GAAG;EACjCC,GAAG,EAAE;IAAEF,KAAK,EAAEV,EAAE,CAAE,gBAAiB;EAAE,CAAC;EACtCa,IAAI,EAAE;IAAEH,KAAK,EAAEV,EAAE,CAAE,iBAAkB;EAAE;AACxC,CAAC;;AAED;AACA,OAAO,MAAMc,YAAY,GAAG,OAAO;AACnC,OAAO,MAAMC,WAAW,GAAG,MAAM;AACjC,OAAO,MAAMC,WAAW,GAAG,MAAM","ignoreList":[]}
|
|
@@ -12,7 +12,8 @@ import Pagination from './pagination';
|
|
|
12
12
|
import ViewActions from './view-actions';
|
|
13
13
|
import Filters from './filters';
|
|
14
14
|
import Search from './search';
|
|
15
|
-
import {
|
|
15
|
+
import { LAYOUT_TABLE, LAYOUT_GRID } from './constants';
|
|
16
|
+
import { VIEW_LAYOUTS } from './layouts';
|
|
16
17
|
import BulkActions from './bulk-actions';
|
|
17
18
|
import { normalizeFields } from './normalize-fields';
|
|
18
19
|
const defaultGetItemId = item => item.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","
|
|
1
|
+
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","LAYOUT_TABLE","LAYOUT_GRID","VIEW_LAYOUTS","BulkActions","normalizeFields","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","createElement","className","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\n\nconst defaultGetItemId = ( item ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction( actions, data ) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = [],\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tsupportedLayouts,\n\tonSelectionChange = defaultOnSelectionChange,\n} ) {\n\tconst [ selection, setSelection ] = useState( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState( null );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tselection.length > 0 &&\n\t\t\tselection.some(\n\t\t\t\t( id ) => ! data.some( ( item ) => getItemId( item ) === id )\n\t\t\t)\n\t\t) {\n\t\t\tconst newSelection = selection.filter( ( id ) =>\n\t\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t\t);\n\t\t\tsetSelection( newSelection );\n\t\t\tonSelectionChange(\n\t\t\t\tdata.filter( ( item ) =>\n\t\t\t\t\tnewSelection.includes( getItemId( item ) )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selection, data, getItemId, onSelectionChange ] );\n\n\tconst onSetSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items.map( ( item ) => getItemId( item ) ) );\n\t\t\tonSelectionChange( items );\n\t\t},\n\t\t[ setSelection, getItemId, onSelectionChange ]\n\t);\n\n\tconst ViewComponent = VIEW_LAYOUTS.find(\n\t\t( v ) => v.type === view.type\n\t).component;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"start\"\n\t\t\t\tclassName=\"dataviews-filters__view-actions\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\t\t\twrap\n\t\t\t\t>\n\t\t\t\t\t{ search && (\n\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Filters\n\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t\t<BulkActions\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t<ViewActions\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t<ViewComponent\n\t\t\t\tfields={ _fields }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t/>\n\t\t\t<Pagination\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,11 +16,11 @@ const EMPTY_ARRAY = [];
|
|
|
16
16
|
/**
|
|
17
17
|
* Applies the filtering, sorting and pagination to the raw data based on the view configuration.
|
|
18
18
|
*
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
19
|
+
* @param data Raw data.
|
|
20
|
+
* @param view View config.
|
|
21
|
+
* @param fields Fields config.
|
|
22
22
|
*
|
|
23
|
-
* @return
|
|
23
|
+
* @return Filtered, sorted and paginated data.
|
|
24
24
|
*/
|
|
25
25
|
export function filterSortAndPaginate(data, view, fields) {
|
|
26
26
|
if (!data) {
|
|
@@ -48,58 +48,60 @@ export function filterSortAndPaginate(data, view, fields) {
|
|
|
48
48
|
if (view.filters.length > 0) {
|
|
49
49
|
view.filters.forEach(filter => {
|
|
50
50
|
const field = _fields.find(_field => _field.id === filter.field);
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
});
|
|
56
|
-
if (Array.isArray(fieldValue)) {
|
|
57
|
-
return filter.value.some(filterValue => fieldValue.includes(filterValue));
|
|
58
|
-
} else if (typeof fieldValue === 'string') {
|
|
59
|
-
return filter.value.includes(fieldValue);
|
|
60
|
-
}
|
|
61
|
-
return false;
|
|
62
|
-
});
|
|
63
|
-
} else if (filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
|
|
64
|
-
filteredData = filteredData.filter(item => {
|
|
65
|
-
const fieldValue = field.getValue({
|
|
66
|
-
item
|
|
67
|
-
});
|
|
68
|
-
if (Array.isArray(fieldValue)) {
|
|
69
|
-
return !filter.value.some(filterValue => fieldValue.includes(filterValue));
|
|
70
|
-
} else if (typeof fieldValue === 'string') {
|
|
71
|
-
return !filter.value.includes(fieldValue);
|
|
72
|
-
}
|
|
73
|
-
return false;
|
|
74
|
-
});
|
|
75
|
-
} else if (filter.operator === OPERATOR_IS_ALL && filter?.value?.length > 0) {
|
|
76
|
-
filteredData = filteredData.filter(item => {
|
|
77
|
-
return filter.value.every(value => {
|
|
78
|
-
return field.getValue({
|
|
51
|
+
if (field) {
|
|
52
|
+
if (filter.operator === OPERATOR_IS_ANY && filter?.value?.length > 0) {
|
|
53
|
+
filteredData = filteredData.filter(item => {
|
|
54
|
+
const fieldValue = field.getValue({
|
|
79
55
|
item
|
|
80
|
-
})
|
|
56
|
+
});
|
|
57
|
+
if (Array.isArray(fieldValue)) {
|
|
58
|
+
return filter.value.some(filterValue => fieldValue.includes(filterValue));
|
|
59
|
+
} else if (typeof fieldValue === 'string') {
|
|
60
|
+
return filter.value.includes(fieldValue);
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
81
63
|
});
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return filter.value.every(value => {
|
|
86
|
-
return !field.getValue({
|
|
64
|
+
} else if (filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
|
|
65
|
+
filteredData = filteredData.filter(item => {
|
|
66
|
+
const fieldValue = field.getValue({
|
|
87
67
|
item
|
|
88
|
-
})
|
|
68
|
+
});
|
|
69
|
+
if (Array.isArray(fieldValue)) {
|
|
70
|
+
return !filter.value.some(filterValue => fieldValue.includes(filterValue));
|
|
71
|
+
} else if (typeof fieldValue === 'string') {
|
|
72
|
+
return !filter.value.includes(fieldValue);
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
89
75
|
});
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
76
|
+
} else if (filter.operator === OPERATOR_IS_ALL && filter?.value?.length > 0) {
|
|
77
|
+
filteredData = filteredData.filter(item => {
|
|
78
|
+
return filter.value.every(value => {
|
|
79
|
+
return field.getValue({
|
|
80
|
+
item
|
|
81
|
+
}).includes(value);
|
|
82
|
+
});
|
|
95
83
|
});
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
84
|
+
} else if (filter.operator === OPERATOR_IS_NOT_ALL && filter?.value?.length > 0) {
|
|
85
|
+
filteredData = filteredData.filter(item => {
|
|
86
|
+
return filter.value.every(value => {
|
|
87
|
+
return !field.getValue({
|
|
88
|
+
item
|
|
89
|
+
}).includes(value);
|
|
90
|
+
});
|
|
101
91
|
});
|
|
102
|
-
})
|
|
92
|
+
} else if (filter.operator === OPERATOR_IS) {
|
|
93
|
+
filteredData = filteredData.filter(item => {
|
|
94
|
+
return filter.value === field.getValue({
|
|
95
|
+
item
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
} else if (filter.operator === OPERATOR_IS_NOT) {
|
|
99
|
+
filteredData = filteredData.filter(item => {
|
|
100
|
+
return filter.value !== field.getValue({
|
|
101
|
+
item
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}
|
|
103
105
|
}
|
|
104
106
|
});
|
|
105
107
|
}
|
|
@@ -110,24 +112,29 @@ export function filterSortAndPaginate(data, view, fields) {
|
|
|
110
112
|
const fieldToSort = _fields.find(field => {
|
|
111
113
|
return field.id === fieldId;
|
|
112
114
|
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
115
|
+
if (fieldToSort) {
|
|
116
|
+
filteredData.sort((a, b) => {
|
|
117
|
+
var _fieldToSort$getValue, _fieldToSort$getValue2;
|
|
118
|
+
const valueA = (_fieldToSort$getValue = fieldToSort.getValue({
|
|
119
|
+
item: a
|
|
120
|
+
})) !== null && _fieldToSort$getValue !== void 0 ? _fieldToSort$getValue : '';
|
|
121
|
+
const valueB = (_fieldToSort$getValue2 = fieldToSort.getValue({
|
|
122
|
+
item: b
|
|
123
|
+
})) !== null && _fieldToSort$getValue2 !== void 0 ? _fieldToSort$getValue2 : '';
|
|
124
|
+
return view.sort?.direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
123
127
|
}
|
|
124
128
|
|
|
125
129
|
// Handle pagination.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
let totalItems = filteredData.length;
|
|
131
|
+
let totalPages = 1;
|
|
132
|
+
if (view.page !== undefined && view.perPage !== undefined) {
|
|
133
|
+
const start = (view.page - 1) * view.perPage;
|
|
134
|
+
totalItems = filteredData?.length || 0;
|
|
135
|
+
totalPages = Math.ceil(totalItems / view.perPage);
|
|
136
|
+
filteredData = filteredData?.slice(start, start + view.perPage);
|
|
137
|
+
}
|
|
131
138
|
return {
|
|
132
139
|
data: filteredData,
|
|
133
140
|
paginationInfo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["removeAccents","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","value","fieldValue","Array","isArray","filterValue","every","sort","fieldId","fieldToSort","a","b","_fieldToSort$getValue","_fieldToSort$getValue2","valueA","valueB","direction","localeCompare","hasPagination","page","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param {any[]} data Raw data.\n * @param {Object} view View config.\n * @param {Object[]} fields Fields config.\n *\n * @return {Object} { data: any[], paginationInfo: { totalItems: number, totalPages: number } }\n */\nexport function filterSortAndPaginate( data, view, fields ) {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif (\n\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\treturn filter.value.some( ( filterValue ) =>\n\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\treturn ! filter.value.some( ( filterValue ) =>\n\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value.every( ( value ) => {\n\t\t\t\t\t\treturn field.getValue( { item } ).includes( value );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value.every( ( value ) => {\n\t\t\t\t\t\treturn ! field.getValue( { item } ).includes( value );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t} );\n\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tfilteredData.sort( ( a, b ) => {\n\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\treturn view.sort.direction === 'asc'\n\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t: valueB.localeCompare( valueA );\n\t\t} );\n\t}\n\n\t// Handle pagination.\n\tconst hasPagination = view.page && view.perPage;\n\tconst start = hasPagination ? ( view.page - 1 ) * view.perPage : 0;\n\tconst totalItems = filteredData?.length || 0;\n\tconst totalPages = hasPagination\n\t\t? Math.ceil( totalItems / view.perPage )\n\t\t: 1;\n\tfilteredData = hasPagination\n\t\t? filteredData?.slice( start, start + view.perPage )\n\t\t: filteredData;\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["removeAccents","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","value","fieldValue","Array","isArray","filterValue","every","sort","fieldId","fieldToSort","a","b","_fieldToSort$getValue","_fieldToSort$getValue2","valueA","valueB","direction","localeCompare","page","undefined","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\nimport type { Data, Field, View } from './types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: Data = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate(\n\tdata: Data,\n\tview: View,\n\tfields: Field[]\n): { data: Data; paginationInfo: { totalItems: number; totalPages: number } } {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field.getValue( { item } ).includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tif ( fieldToSort ) {\n\t\t\tfilteredData.sort( ( a, b ) => {\n\t\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\t\treturn view.sort?.direction === 'asc'\n\t\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t\t: valueB.localeCompare( valueA );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build-module/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","DataViews","VIEW_LAYOUTS","filterSortAndPaginate"],"sources":["@wordpress/dataviews/src/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { VIEW_LAYOUTS } from './
|
|
1
|
+
{"version":3,"names":["default","DataViews","VIEW_LAYOUTS","filterSortAndPaginate"],"sources":["@wordpress/dataviews/src/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { VIEW_LAYOUTS } from './layouts';\nexport { filterSortAndPaginate } from './filter-and-sort-data-view';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa;AAClD,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,qBAAqB,QAAQ,6BAA6B","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __, isRTL } from '@wordpress/i18n';
|
|
5
|
+
import { blockTable, category, formatListBullets, formatListBulletsRTL } from '@wordpress/icons';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import ViewTable from './view-table';
|
|
11
|
+
import ViewGrid from './view-grid';
|
|
12
|
+
import ViewList from './view-list';
|
|
13
|
+
import { LAYOUT_GRID, LAYOUT_LIST, LAYOUT_TABLE } from './constants';
|
|
14
|
+
export const VIEW_LAYOUTS = [{
|
|
15
|
+
type: LAYOUT_TABLE,
|
|
16
|
+
label: __('Table'),
|
|
17
|
+
component: ViewTable,
|
|
18
|
+
icon: blockTable
|
|
19
|
+
}, {
|
|
20
|
+
type: LAYOUT_GRID,
|
|
21
|
+
label: __('Grid'),
|
|
22
|
+
component: ViewGrid,
|
|
23
|
+
icon: category
|
|
24
|
+
}, {
|
|
25
|
+
type: LAYOUT_LIST,
|
|
26
|
+
label: __('List'),
|
|
27
|
+
component: ViewList,
|
|
28
|
+
icon: isRTL() ? formatListBulletsRTL : formatListBullets
|
|
29
|
+
}];
|
|
30
|
+
//# sourceMappingURL=layouts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","isRTL","blockTable","category","formatListBullets","formatListBulletsRTL","ViewTable","ViewGrid","ViewList","LAYOUT_GRID","LAYOUT_LIST","LAYOUT_TABLE","VIEW_LAYOUTS","type","label","component","icon"],"sources":["@wordpress/dataviews/src/layouts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './view-table';\nimport ViewGrid from './view-grid';\nimport ViewList from './view-list';\nimport { LAYOUT_GRID, LAYOUT_LIST, LAYOUT_TABLE } from './constants';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SACCC,UAAU,EACVC,QAAQ,EACRC,iBAAiB,EACjBC,oBAAoB,QACd,kBAAkB;;AAEzB;AACA;AACA;AACA,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,WAAW,EAAEC,WAAW,EAAEC,YAAY,QAAQ,aAAa;AAEpE,OAAO,MAAMC,YAAY,GAAG,CAC3B;EACCC,IAAI,EAAEF,YAAY;EAClBG,KAAK,EAAEd,EAAE,CAAE,OAAQ,CAAC;EACpBe,SAAS,EAAET,SAAS;EACpBU,IAAI,EAAEd;AACP,CAAC,EACD;EACCW,IAAI,EAAEJ,WAAW;EACjBK,KAAK,EAAEd,EAAE,CAAE,MAAO,CAAC;EACnBe,SAAS,EAAER,QAAQ;EACnBS,IAAI,EAAEb;AACP,CAAC,EACD;EACCU,IAAI,EAAEH,WAAW;EACjBI,KAAK,EAAEd,EAAE,CAAE,MAAO,CAAC;EACnBe,SAAS,EAAEP,QAAQ;EACnBQ,IAAI,EAAEf,KAAK,CAAC,CAAC,GAAGI,oBAAoB,GAAGD;AACxC,CAAC,CACD","ignoreList":[]}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* Apply default values and normalize the fields config.
|
|
3
7
|
*
|
|
4
|
-
* @param
|
|
5
|
-
* @return
|
|
8
|
+
* @param fields Fields config.
|
|
9
|
+
* @return Normalized fields config.
|
|
6
10
|
*/
|
|
7
11
|
export function normalizeFields(fields) {
|
|
8
12
|
return fields.map(field => {
|
|
@@ -11,6 +15,7 @@ export function normalizeFields(fields) {
|
|
|
11
15
|
}) => item[field.id]);
|
|
12
16
|
return {
|
|
13
17
|
...field,
|
|
18
|
+
header: field.header || field.id,
|
|
14
19
|
getValue,
|
|
15
20
|
render: field.render || getValue
|
|
16
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeFields","fields","map","field","getValue","item","id","render"],"sources":["@wordpress/dataviews/src/normalize-fields.
|
|
1
|
+
{"version":3,"names":["normalizeFields","fields","map","field","getValue","item","id","header","render"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { Field, NormalizedField } from './types';\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( fields: Field[] ): NormalizedField[] {\n\treturn fields.map( ( field ) => {\n\t\tconst getValue = field.getValue || ( ( { item } ) => item[ field.id ] );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\theader: field.header || field.id,\n\t\t\tgetValue,\n\t\t\trender: field.render || getValue,\n\t\t};\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAEC,MAAe,EAAsB;EACrE,OAAOA,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAC/B,MAAMC,QAAQ,GAAGD,KAAK,CAACC,QAAQ,KAAM,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,CAAEF,KAAK,CAACG,EAAE,CAAE,CAAE;IAEvE,OAAO;MACN,GAAGH,KAAK;MACRI,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAIJ,KAAK,CAACG,EAAE;MAChCF,QAAQ;MACRI,MAAM,EAAEL,KAAK,CAACK,MAAM,IAAIJ;IACzB,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\ntype Item = Record< string, any >;\n\ninterface Option {\n\tvalue: any;\n\tlabel: string;\n}\n\ninterface filterByConfig {\n\toperators?: Operator[];\n\tisPrimary?: boolean;\n}\n\ntype Operator = 'is' | 'isNot' | 'isAny' | 'isNone' | 'isAll' | 'isNotAll';\n\nexport interface Field {\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\theader?: string;\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?: ( { item }: { item: Item } ) => any;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ( { item }: { item: Item } ) => ReactNode;\n\n\t/**\n\t * The width of the field column.\n\t */\n\twidth: string | number | undefined;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth: string | number | undefined;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth: string | number | undefined;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting: boolean | undefined;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch: boolean | undefined;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding: boolean | undefined;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[] | undefined;\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy: filterByConfig | undefined;\n}\n\nexport type NormalizedField = Required< Field >;\n\nexport type Data = Item[];\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 View {\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: string;\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"],"mappings":"","ignoreList":[]}
|
|
@@ -11,7 +11,8 @@ import { settings } from '@wordpress/icons';
|
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
13
|
import { unlock } from './lock-unlock';
|
|
14
|
-
import {
|
|
14
|
+
import { SORTING_DIRECTIONS } from './constants';
|
|
15
|
+
import { VIEW_LAYOUTS } from './layouts';
|
|
15
16
|
const {
|
|
16
17
|
DropdownMenuV2: DropdownMenu,
|
|
17
18
|
DropdownMenuGroupV2: DropdownMenuGroup,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","privateApis","componentsPrivateApis","__","memo","settings","unlock","VIEW_LAYOUTS","SORTING_DIRECTIONS","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuCheckboxItemV2","DropdownMenuCheckboxItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","ViewTypeMenu","view","onChangeView","supportedLayouts","_availableViews","filter","_view","includes","type","length","activeView","find","v","createElement","trigger","suffix","label","map","availableView","key","value","name","checked","hideOnClick","onChange","e","target","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","field","enableHiding","id","layout","mediaField","hiddenFields","header","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","style","minWidth","Object","entries","info","isChecked","undefined","ViewActions","icon"],"sources":["@wordpress/dataviews/src/view-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { memo } from '@wordpress/element';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport { VIEW_LAYOUTS, SORTING_DIRECTIONS } from './constants';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuCheckboxItemV2: DropdownMenuCheckboxItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\nfunction ViewTypeMenu( { view, onChangeView, supportedLayouts } ) {\n\tlet _availableViews = VIEW_LAYOUTS;\n\tif ( supportedLayouts ) {\n\t\t_availableViews = _availableViews.filter( ( _view ) =>\n\t\t\tsupportedLayouts.includes( _view.type )\n\t\t);\n\t}\n\tif ( _availableViews.length === 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = _availableViews.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">{ activeView.label }</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ _availableViews.map( ( availableView ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ availableView.type }\n\t\t\t\t\t\tvalue={ availableView.type }\n\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\tchecked={ availableView.type === view.type }\n\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\tonChange={ ( e ) => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ availableView.label }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={ <span aria-hidden=\"true\">{ view.perPage }</span> }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Items per page' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tvalue={ size }\n\t\t\t\t\t\tname=\"view-actions-page-size\"\n\t\t\t\t\t\tchecked={ view.perPage === size }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t// `e.target.value` holds the same value as `size` but as a string,\n\t\t\t\t\t\t\t\t// so we use `size` directly to avoid parsing to int.\n\t\t\t\t\t\t\t\tperPage: size,\n\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>{ size }</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction FieldsVisibilityMenu( { view, onChangeView, fields } ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) =>\n\t\t\tfield.enableHiding !== false && field.id !== view.layout.mediaField\n\t);\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tvalue={ field.id }\n\t\t\t\t\t\tchecked={ ! view.hiddenFields?.includes( field.id ) }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields?.includes(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t? view.hiddenFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t...( view.hiddenFields || [] ),\n\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction SortMenu( { fields, view, onChangeView } ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminWidth: '220px',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tcurrentSortedField !== undefined &&\n\t\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-actions-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst ViewActions = memo( function ViewActions( {\n\tfields,\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n} ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tlabel={ __( 'View options' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t<ViewTypeMenu\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t\t<SortMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<FieldsVisibilityMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<PageSizeMenu view={ view } onChangeView={ onChangeView } />\n\t\t\t</DropdownMenuGroup>\n\t\t</DropdownMenu>\n\t);\n} );\n\nexport default ViewActions;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,QAAQ,oBAAoB;AACzC,SAASC,QAAQ,QAAQ,kBAAkB;;AAE3C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,aAAa;AAE9D,MAAM;EACLC,cAAc,EAAEC,YAAY;EAC5BC,mBAAmB,EAAEC,iBAAiB;EACtCC,kBAAkB,EAAEC,gBAAgB;EACpCC,uBAAuB,EAAEC,qBAAqB;EAC9CC,0BAA0B,EAAEC,wBAAwB;EACpDC,uBAAuB,EAAEC;AAC1B,CAAC,GAAGd,MAAM,CAAEJ,qBAAsB,CAAC;AAEnC,SAASmB,YAAYA,CAAE;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAiB,CAAC,EAAG;EACjE,IAAIC,eAAe,GAAGlB,YAAY;EAClC,IAAKiB,gBAAgB,EAAG;IACvBC,eAAe,GAAGA,eAAe,CAACC,MAAM,CAAIC,KAAK,IAChDH,gBAAgB,CAACI,QAAQ,CAAED,KAAK,CAACE,IAAK,CACvC,CAAC;EACF;EACA,IAAKJ,eAAe,CAACK,MAAM,KAAK,CAAC,EAAG;IACnC,OAAO,IAAI;EACZ;EACA,MAAMC,UAAU,GAAGN,eAAe,CAACO,IAAI,CAAIC,CAAC,IAAMX,IAAI,CAACO,IAAI,KAAKI,CAAC,CAACJ,IAAK,CAAC;EACxE,OACCK,aAAA,CAACxB,YAAY;IACZyB,OAAO,EACND,aAAA,CAACpB,gBAAgB;MAChBsB,MAAM,EACLF,aAAA;QAAM,eAAY;MAAM,GAAGH,UAAU,CAACM,KAAa;IACnD,GAEDH,aAAA,CAACd,qBAAqB,QACnBjB,EAAE,CAAE,QAAS,CACO,CACN;EAClB,GAECsB,eAAe,CAACa,GAAG,CAAIC,aAAa,IAAM;IAC3C,OACCL,aAAA,CAAClB,qBAAqB;MACrBwB,GAAG,EAAGD,aAAa,CAACV,IAAM;MAC1BY,KAAK,EAAGF,aAAa,CAACV,IAAM;MAC5Ba,IAAI,EAAC,6BAA6B;MAClCC,OAAO,EAAGJ,aAAa,CAACV,IAAI,KAAKP,IAAI,CAACO,IAAM;MAC5Ce,WAAW;MACXC,QAAQ,EAAKC,CAAC,IAAM;QACnBvB,YAAY,CAAE;UACb,GAAGD,IAAI;UACPO,IAAI,EAAEiB,CAAC,CAACC,MAAM,CAACN;QAChB,CAAE,CAAC;MACJ;IAAG,GAEHP,aAAA,CAACd,qBAAqB,QACnBmB,aAAa,CAACF,KACM,CACD,CAAC;EAE1B,CAAE,CACW,CAAC;AAEjB;AAEA,MAAMW,gBAAgB,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE;AAC5C,SAASC,YAAYA,CAAE;EAAE3B,IAAI;EAAEC;AAAa,CAAC,EAAG;EAC/C,OACCW,aAAA,CAACxB,YAAY;IACZyB,OAAO,EACND,aAAA,CAACpB,gBAAgB;MAChBsB,MAAM,EAAGF,aAAA;QAAM,eAAY;MAAM,GAAGZ,IAAI,CAAC4B,OAAe;IAAG,GAE3DhB,aAAA,CAACd,qBAAqB,QACnBjB,EAAE,CAAE,gBAAiB,CACD,CACN;EAClB,GAEC6C,gBAAgB,CAACV,GAAG,CAAIa,IAAI,IAAM;IACnC,OACCjB,aAAA,CAAClB,qBAAqB;MACrBwB,GAAG,EAAGW,IAAM;MACZV,KAAK,EAAGU,IAAM;MACdT,IAAI,EAAC,wBAAwB;MAC7BC,OAAO,EAAGrB,IAAI,CAAC4B,OAAO,KAAKC,IAAM;MACjCN,QAAQ,EAAGA,CAAA,KAAM;QAChBtB,YAAY,CAAE;UACb,GAAGD,IAAI;UACP;UACA;UACA4B,OAAO,EAAEC,IAAI;UACbC,IAAI,EAAE;QACP,CAAE,CAAC;MACJ;IAAG,GAEHlB,aAAA,CAACd,qBAAqB,QAAG+B,IAA6B,CAChC,CAAC;EAE1B,CAAE,CACW,CAAC;AAEjB;AAEA,SAASE,oBAAoBA,CAAE;EAAE/B,IAAI;EAAEC,YAAY;EAAE+B;AAAO,CAAC,EAAG;EAC/D,MAAMC,aAAa,GAAGD,MAAM,CAAC5B,MAAM,CAChC8B,KAAK,IACNA,KAAK,CAACC,YAAY,KAAK,KAAK,IAAID,KAAK,CAACE,EAAE,KAAKpC,IAAI,CAACqC,MAAM,CAACC,UAC3D,CAAC;EACD,IAAK,CAAEL,aAAa,EAAEzB,MAAM,EAAG;IAC9B,OAAO,IAAI;EACZ;EACA,OACCI,aAAA,CAACxB,YAAY;IACZyB,OAAO,EACND,aAAA,CAACpB,gBAAgB,QAChBoB,aAAA,CAACd,qBAAqB,QACnBjB,EAAE,CAAE,QAAS,CACO,CACN;EAClB,GAECoD,aAAa,EAAEjB,GAAG,CAAIkB,KAAK,IAAM;IAClC,OACCtB,aAAA,CAAChB,wBAAwB;MACxBsB,GAAG,EAAGgB,KAAK,CAACE,EAAI;MAChBjB,KAAK,EAAGe,KAAK,CAACE,EAAI;MAClBf,OAAO,EAAG,CAAErB,IAAI,CAACuC,YAAY,EAAEjC,QAAQ,CAAE4B,KAAK,CAACE,EAAG,CAAG;MACrDb,QAAQ,EAAGA,CAAA,KAAM;QAChBtB,YAAY,CAAE;UACb,GAAGD,IAAI;UACPuC,YAAY,EAAEvC,IAAI,CAACuC,YAAY,EAAEjC,QAAQ,CACxC4B,KAAK,CAACE,EACP,CAAC,GACEpC,IAAI,CAACuC,YAAY,CAACnC,MAAM,CACtBgC,EAAE,IAAMA,EAAE,KAAKF,KAAK,CAACE,EACvB,CAAC,GACD,CACA,IAAKpC,IAAI,CAACuC,YAAY,IAAI,EAAE,CAAE,EAC9BL,KAAK,CAACE,EAAE;QAEZ,CAAE,CAAC;MACJ;IAAG,GAEHxB,aAAA,CAACd,qBAAqB,QACnBoC,KAAK,CAACM,MACc,CACE,CAAC;EAE7B,CAAE,CACW,CAAC;AAEjB;AAEA,SAASC,QAAQA,CAAE;EAAET,MAAM;EAAEhC,IAAI;EAAEC;AAAa,CAAC,EAAG;EACnD,MAAMyC,cAAc,GAAGV,MAAM,CAAC5B,MAAM,CACjC8B,KAAK,IAAMA,KAAK,CAACS,aAAa,KAAK,KACtC,CAAC;EACD,IAAK,CAAED,cAAc,EAAElC,MAAM,EAAG;IAC/B,OAAO,IAAI;EACZ;EACA,MAAMoC,kBAAkB,GAAGZ,MAAM,CAACtB,IAAI,CACnCwB,KAAK,IAAMA,KAAK,CAACE,EAAE,KAAKpC,IAAI,CAAC6C,IAAI,EAAEX,KACtC,CAAC;EACD,OACCtB,aAAA,CAACxB,YAAY;IACZyB,OAAO,EACND,aAAA,CAACpB,gBAAgB;MAChBsB,MAAM,EACLF,aAAA;QAAM,eAAY;MAAM,GACrBgC,kBAAkB,EAAEJ,MACjB;IACN,GAED5B,aAAA,CAACd,qBAAqB,QACnBjB,EAAE,CAAE,SAAU,CACM,CACN;EAClB,GAEC6D,cAAc,EAAE1B,GAAG,CAAIkB,KAAK,IAAM;IACnC,MAAMY,eAAe,GAAG9C,IAAI,CAAC6C,IAAI,EAAEE,SAAS;IAC5C,OACCnC,aAAA,CAACxB,YAAY;MACZ8B,GAAG,EAAGgB,KAAK,CAACE,EAAI;MAChBvB,OAAO,EACND,aAAA,CAACpB,gBAAgB,QAChBoB,aAAA,CAACd,qBAAqB,QACnBoC,KAAK,CAACM,MACc,CACN,CAClB;MACDQ,KAAK,EAAG;QACPC,QAAQ,EAAE;MACX;IAAG,GAEDC,MAAM,CAACC,OAAO,CAAEjE,kBAAmB,CAAC,CAAC8B,GAAG,CACzC,CAAE,CAAE+B,SAAS,EAAEK,IAAI,CAAE,KAAM;MAC1B,MAAMC,SAAS,GACdT,kBAAkB,KAAKU,SAAS,IAChCR,eAAe,KAAKC,SAAS,IAC7Bb,KAAK,CAACE,EAAE,KAAKQ,kBAAkB,CAACR,EAAE;MAEnC,MAAMjB,KAAK,GAAI,GAAGe,KAAK,CAACE,EAAI,IAAIW,SAAW,EAAC;MAE5C,OACCnC,aAAA,CAAClB,qBAAqB;QACrBwB,GAAG,EAAGC;QACN;QACA;QACA;QACA;QACA;QAAA;QACAC,IAAI,EAAC,sBAAsB;QAC3BD,KAAK,EAAGA,KAAO;QACfE,OAAO,EAAGgC,SAAW;QACrB9B,QAAQ,EAAGA,CAAA,KAAM;UAChBtB,YAAY,CAAE;YACb,GAAGD,IAAI;YACP6C,IAAI,EAAE;cACLX,KAAK,EAAEA,KAAK,CAACE,EAAE;cACfW;YACD;UACD,CAAE,CAAC;QACJ;MAAG,GAEHnC,aAAA,CAACd,qBAAqB,QACnBsD,IAAI,CAACrC,KACe,CACD,CAAC;IAE1B,CACD,CACa,CAAC;EAEjB,CAAE,CACW,CAAC;AAEjB;AAEA,MAAMwC,WAAW,GAAGzE,IAAI,CAAE,SAASyE,WAAWA,CAAE;EAC/CvB,MAAM;EACNhC,IAAI;EACJC,YAAY;EACZC;AACD,CAAC,EAAG;EACH,OACCU,aAAA,CAACxB,YAAY;IACZyB,OAAO,EACND,aAAA,CAAClC,MAAM;MACNmD,IAAI,EAAC,SAAS;MACd2B,IAAI,EAAGzE,QAAU;MACjBgC,KAAK,EAAGlC,EAAE,CAAE,cAAe;IAAG,CAC9B;EACD,GAED+B,aAAA,CAACtB,iBAAiB,QACjBsB,aAAA,CAACb,YAAY;IACZC,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BC,gBAAgB,EAAGA;EAAkB,CACrC,CAAC,EACFU,aAAA,CAAC6B,QAAQ;IACRT,MAAM,EAAGA,MAAQ;IACjBhC,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CAAC,EACFW,aAAA,CAACmB,oBAAoB;IACpBC,MAAM,EAAGA,MAAQ;IACjBhC,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CAAC,EACFW,aAAA,CAACe,YAAY;IAAC3B,IAAI,EAAGA,IAAM;IAACC,YAAY,EAAGA;EAAc,CAAE,CACzC,CACN,CAAC;AAEjB,CAAE,CAAC;AAEH,eAAesD,WAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Button","privateApis","componentsPrivateApis","__","memo","settings","unlock","SORTING_DIRECTIONS","VIEW_LAYOUTS","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuCheckboxItemV2","DropdownMenuCheckboxItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","ViewTypeMenu","view","onChangeView","supportedLayouts","_availableViews","filter","_view","includes","type","length","activeView","find","v","createElement","trigger","suffix","label","map","availableView","key","value","name","checked","hideOnClick","onChange","e","target","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","field","enableHiding","id","layout","mediaField","hiddenFields","header","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","style","minWidth","Object","entries","info","isChecked","undefined","ViewActions","icon"],"sources":["@wordpress/dataviews/src/view-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { memo } from '@wordpress/element';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport { SORTING_DIRECTIONS } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuCheckboxItemV2: DropdownMenuCheckboxItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\nfunction ViewTypeMenu( { view, onChangeView, supportedLayouts } ) {\n\tlet _availableViews = VIEW_LAYOUTS;\n\tif ( supportedLayouts ) {\n\t\t_availableViews = _availableViews.filter( ( _view ) =>\n\t\t\tsupportedLayouts.includes( _view.type )\n\t\t);\n\t}\n\tif ( _availableViews.length === 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = _availableViews.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">{ activeView.label }</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ _availableViews.map( ( availableView ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ availableView.type }\n\t\t\t\t\t\tvalue={ availableView.type }\n\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\tchecked={ availableView.type === view.type }\n\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\tonChange={ ( e ) => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ availableView.label }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={ <span aria-hidden=\"true\">{ view.perPage }</span> }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Items per page' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tvalue={ size }\n\t\t\t\t\t\tname=\"view-actions-page-size\"\n\t\t\t\t\t\tchecked={ view.perPage === size }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t// `e.target.value` holds the same value as `size` but as a string,\n\t\t\t\t\t\t\t\t// so we use `size` directly to avoid parsing to int.\n\t\t\t\t\t\t\t\tperPage: size,\n\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>{ size }</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction FieldsVisibilityMenu( { view, onChangeView, fields } ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) =>\n\t\t\tfield.enableHiding !== false && field.id !== view.layout.mediaField\n\t);\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tvalue={ field.id }\n\t\t\t\t\t\tchecked={ ! view.hiddenFields?.includes( field.id ) }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields?.includes(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t? view.hiddenFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t...( view.hiddenFields || [] ),\n\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction SortMenu( { fields, view, onChangeView } ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminWidth: '220px',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tcurrentSortedField !== undefined &&\n\t\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-actions-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst ViewActions = memo( function ViewActions( {\n\tfields,\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n} ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tlabel={ __( 'View options' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t<ViewTypeMenu\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t\t<SortMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<FieldsVisibilityMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<PageSizeMenu view={ view } onChangeView={ onChangeView } />\n\t\t\t</DropdownMenuGroup>\n\t\t</DropdownMenu>\n\t);\n} );\n\nexport default ViewActions;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -371,37 +371,46 @@
|
|
|
371
371
|
}
|
|
372
372
|
}
|
|
373
373
|
.dataviews-view-grid .dataviews-view-grid__card {
|
|
374
|
-
border-radius: 4px;
|
|
375
|
-
border: 1px solid #e0e0e0;
|
|
376
374
|
height: 100%;
|
|
377
375
|
justify-content: flex-start;
|
|
378
376
|
}
|
|
379
377
|
.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions {
|
|
380
|
-
padding:
|
|
378
|
+
padding: 8px 0 4px;
|
|
381
379
|
}
|
|
382
380
|
.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field {
|
|
383
|
-
min-height:
|
|
384
|
-
}
|
|
385
|
-
.dataviews-view-grid .dataviews-view-grid__card.is-selected {
|
|
386
|
-
border-color: var(--wp-admin-theme-color);
|
|
387
|
-
background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);
|
|
381
|
+
min-height: 32px;
|
|
388
382
|
}
|
|
389
383
|
.dataviews-view-grid .dataviews-view-grid__card.is-selected .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {
|
|
390
384
|
color: #1e1e1e;
|
|
391
385
|
}
|
|
386
|
+
.dataviews-view-grid .dataviews-view-grid__card.is-selected .page-pages-preview-field__button::after {
|
|
387
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
388
|
+
background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
|
|
389
|
+
}
|
|
392
390
|
.dataviews-view-grid .dataviews-view-grid__media {
|
|
393
391
|
width: 100%;
|
|
394
392
|
min-height: 200px;
|
|
395
393
|
aspect-ratio: 1/1;
|
|
396
|
-
border-bottom: 1px solid #e0e0e0;
|
|
397
394
|
background-color: #f0f0f0;
|
|
398
|
-
border-radius:
|
|
395
|
+
border-radius: 4px;
|
|
396
|
+
overflow: hidden;
|
|
397
|
+
position: relative;
|
|
399
398
|
}
|
|
400
399
|
.dataviews-view-grid .dataviews-view-grid__media img {
|
|
401
400
|
object-fit: cover;
|
|
402
401
|
width: 100%;
|
|
403
402
|
height: 100%;
|
|
404
403
|
}
|
|
404
|
+
.dataviews-view-grid .dataviews-view-grid__media::after {
|
|
405
|
+
content: "";
|
|
406
|
+
position: absolute;
|
|
407
|
+
top: 0;
|
|
408
|
+
right: 0;
|
|
409
|
+
width: 100%;
|
|
410
|
+
height: 100%;
|
|
411
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
412
|
+
border-radius: 4px;
|
|
413
|
+
}
|
|
405
414
|
.dataviews-view-grid .dataviews-view-grid__fields {
|
|
406
415
|
position: relative;
|
|
407
416
|
font-size: 12px;
|
|
@@ -410,7 +419,6 @@
|
|
|
410
419
|
.dataviews-view-grid .dataviews-view-grid__fields:not(:empty) {
|
|
411
420
|
padding: 12px 0;
|
|
412
421
|
padding-top: 0;
|
|
413
|
-
margin: 0 12px;
|
|
414
422
|
}
|
|
415
423
|
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {
|
|
416
424
|
align-items: flex-start;
|
|
@@ -431,8 +439,7 @@
|
|
|
431
439
|
color: #757575;
|
|
432
440
|
}
|
|
433
441
|
.dataviews-view-grid .dataviews-view-grid__badge-fields:not(:empty) {
|
|
434
|
-
padding: 12px;
|
|
435
|
-
padding-top: 0;
|
|
442
|
+
padding-bottom: 12px;
|
|
436
443
|
}
|
|
437
444
|
.dataviews-view-grid .dataviews-view-grid__badge-fields .dataviews-view-grid__field-value {
|
|
438
445
|
width: -moz-fit-content;
|
|
@@ -595,10 +602,6 @@
|
|
|
595
602
|
flex-shrink: 0;
|
|
596
603
|
}
|
|
597
604
|
|
|
598
|
-
.dataviews-view-grid__title-actions .dataviews-view-table-selection-checkbox {
|
|
599
|
-
margin-right: 8px;
|
|
600
|
-
}
|
|
601
|
-
|
|
602
605
|
.dataviews-filter-summary__popover .components-popover__content {
|
|
603
606
|
width: 230px;
|
|
604
607
|
padding: 0;
|