@wordpress/dataviews 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -1
- package/README.md +55 -27
- package/build/components/dataviews/index.js +13 -4
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +3 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/filter.js +15 -8
- package/build/components/dataviews-filters/filter.js.map +1 -1
- package/build/components/dataviews-filters/index.js +16 -5
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/input-widget.js +7 -1
- package/build/components/dataviews-filters/input-widget.js.map +1 -1
- package/build/components/dataviews-filters/reset-filters.js +2 -2
- package/build/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build/components/dataviews-layout/index.js +5 -2
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +4 -3
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataform-controls/boolean.js +15 -1
- package/build/dataform-controls/boolean.js.map +1 -1
- package/build/dataform-controls/date.js +385 -0
- package/build/dataform-controls/date.js.map +1 -0
- package/build/dataform-controls/datetime.js +5 -84
- package/build/dataform-controls/datetime.js.map +1 -1
- package/build/dataform-controls/email.js +15 -1
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +2 -0
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +23 -4
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/relative-date-control.js +109 -0
- package/build/dataform-controls/relative-date-control.js.map +1 -0
- package/build/dataform-controls/select.js +12 -5
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/text.js +15 -1
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +40 -23
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +39 -85
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +7 -3
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +18 -3
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +57 -5
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/field-types/array.js +27 -18
- package/build/field-types/array.js.map +1 -1
- package/build/field-types/boolean.js +11 -7
- package/build/field-types/boolean.js.map +1 -1
- package/build/field-types/date.js +21 -12
- package/build/field-types/date.js.map +1 -1
- package/build/field-types/datetime.js +19 -10
- package/build/field-types/datetime.js.map +1 -1
- package/build/field-types/email.js +22 -18
- package/build/field-types/email.js.map +1 -1
- package/build/field-types/index.js +16 -6
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/integer.js +22 -17
- package/build/field-types/integer.js.map +1 -1
- package/build/field-types/media.js +19 -10
- package/build/field-types/media.js.map +1 -1
- package/build/field-types/text.js +19 -10
- package/build/field-types/text.js.map +1 -1
- package/build/filter-and-sort-data-view.js +6 -4
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/normalize-fields.js +4 -5
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +15 -2
- package/build/validation.js.map +1 -1
- package/build-module/components/dataviews/index.js +15 -6
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +3 -1
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/filter.js +15 -8
- package/build-module/components/dataviews-filters/filter.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +16 -5
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/input-widget.js +7 -1
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
- package/build-module/components/dataviews-filters/reset-filters.js +2 -2
- package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +5 -2
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +4 -3
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataform-controls/boolean.js +17 -2
- package/build-module/dataform-controls/boolean.js.map +1 -1
- package/build-module/dataform-controls/date.js +376 -0
- package/build-module/dataform-controls/date.js.map +1 -0
- package/build-module/dataform-controls/datetime.js +3 -84
- package/build-module/dataform-controls/datetime.js.map +1 -1
- package/build-module/dataform-controls/email.js +17 -2
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +2 -0
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +24 -5
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/relative-date-control.js +100 -0
- package/build-module/dataform-controls/relative-date-control.js.map +1 -0
- package/build-module/dataform-controls/select.js +12 -5
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/text.js +17 -2
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +41 -24
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +40 -85
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +7 -3
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +18 -3
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +58 -6
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/field-types/array.js +27 -18
- package/build-module/field-types/array.js.map +1 -1
- package/build-module/field-types/boolean.js +11 -7
- package/build-module/field-types/boolean.js.map +1 -1
- package/build-module/field-types/date.js +21 -12
- package/build-module/field-types/date.js.map +1 -1
- package/build-module/field-types/datetime.js +19 -10
- package/build-module/field-types/datetime.js.map +1 -1
- package/build-module/field-types/email.js +22 -18
- package/build-module/field-types/email.js.map +1 -1
- package/build-module/field-types/index.js +16 -6
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/integer.js +22 -17
- package/build-module/field-types/integer.js.map +1 -1
- package/build-module/field-types/media.js +19 -10
- package/build-module/field-types/media.js.map +1 -1
- package/build-module/field-types/text.js +19 -10
- package/build-module/field-types/text.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +6 -4
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/normalize-fields.js +4 -5
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +15 -2
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +78 -43
- package/build-style/style.css +78 -43
- package/build-types/components/dataform/stories/index.story.d.ts +21 -0
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +3 -2
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +16 -3
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +4 -2
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/reset-filters.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/constants.d.ts +2 -2
- package/build-types/dataform-controls/boolean.d.ts.map +1 -1
- package/build-types/dataform-controls/date.d.ts +3 -0
- package/build-types/dataform-controls/date.d.ts.map +1 -0
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/relative-date-control.d.ts +46 -0
- package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -0
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +0 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +3 -3
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/field-types/array.d.ts.map +1 -1
- package/build-types/field-types/boolean.d.ts +5 -4
- package/build-types/field-types/boolean.d.ts.map +1 -1
- package/build-types/field-types/date.d.ts +9 -5
- package/build-types/field-types/date.d.ts.map +1 -1
- package/build-types/field-types/datetime.d.ts +4 -3
- package/build-types/field-types/datetime.d.ts.map +1 -1
- package/build-types/field-types/email.d.ts +4 -3
- package/build-types/field-types/email.d.ts.map +1 -1
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +4 -3
- package/build-types/field-types/integer.d.ts.map +1 -1
- package/build-types/field-types/media.d.ts +4 -3
- package/build-types/field-types/media.d.ts.map +1 -1
- package/build-types/field-types/text.d.ts +4 -3
- package/build-types/field-types/text.d.ts.map +1 -1
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +20 -7
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/build-wp/index.js +1561 -670
- package/package.json +15 -14
- package/src/components/dataform/stories/index.story.tsx +229 -2
- package/src/components/dataviews/index.tsx +30 -10
- package/src/components/dataviews/stories/fixtures.tsx +3 -1
- package/src/components/dataviews/stories/index.story.tsx +49 -29
- package/src/components/dataviews/stories/style.css +6 -0
- package/src/components/dataviews-context/index.ts +8 -2
- package/src/components/dataviews-filters/filter.tsx +17 -7
- package/src/components/dataviews-filters/index.tsx +17 -2
- package/src/components/dataviews-filters/input-widget.tsx +7 -1
- package/src/components/dataviews-filters/reset-filters.tsx +4 -2
- package/src/components/dataviews-filters/style.scss +8 -2
- package/src/components/dataviews-layout/index.tsx +3 -0
- package/src/components/dataviews-view-config/index.tsx +5 -3
- package/src/dataform-controls/boolean.tsx +19 -2
- package/src/dataform-controls/date.tsx +499 -0
- package/src/dataform-controls/datetime.tsx +5 -91
- package/src/dataform-controls/email.tsx +19 -2
- package/src/dataform-controls/index.tsx +2 -0
- package/src/dataform-controls/integer.tsx +30 -4
- package/src/dataform-controls/relative-date-control.tsx +106 -0
- package/src/dataform-controls/select.tsx +23 -13
- package/src/dataform-controls/style.scss +19 -2
- package/src/dataform-controls/text.tsx +19 -2
- package/src/dataviews-layouts/grid/index.tsx +46 -24
- package/src/dataviews-layouts/grid/preview-size-picker.tsx +48 -73
- package/src/dataviews-layouts/grid/style.scss +15 -28
- package/src/dataviews-layouts/list/index.tsx +7 -4
- package/src/dataviews-layouts/list/style.scss +3 -3
- package/src/dataviews-layouts/table/column-primary.tsx +29 -5
- package/src/dataviews-layouts/table/index.tsx +134 -42
- package/src/dataviews-layouts/table/style.scss +45 -1
- package/src/field-types/array.tsx +33 -21
- package/src/field-types/boolean.tsx +15 -9
- package/src/field-types/date.ts +51 -15
- package/src/field-types/datetime.tsx +19 -13
- package/src/field-types/email.tsx +26 -21
- package/src/field-types/index.tsx +18 -8
- package/src/field-types/integer.tsx +26 -22
- package/src/field-types/media.tsx +19 -13
- package/src/field-types/text.tsx +19 -13
- package/src/filter-and-sort-data-view.ts +11 -4
- package/src/normalize-fields.ts +4 -8
- package/src/test/dataviews.tsx +129 -0
- package/src/test/filter-and-sort-data-view.js +52 -2
- package/src/test/validation.ts +4 -15
- package/src/types.ts +28 -8
- package/src/validation.ts +30 -1
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -31,25 +31,36 @@ function useFilters(fields, view) {
|
|
|
31
31
|
return (0, _element.useMemo)(() => {
|
|
32
32
|
const filters = [];
|
|
33
33
|
fields.forEach(field => {
|
|
34
|
-
var _field$elements;
|
|
34
|
+
var _view$filters$some, _field$elements;
|
|
35
35
|
if (field.filterBy === false || !field.elements?.length && !field.Edit) {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
const operators = field.filterBy.operators;
|
|
39
39
|
const isPrimary = !!field.filterBy?.isPrimary;
|
|
40
|
+
const isLocked = (_view$filters$some = view.filters?.some(f => f.field === field.id && !!f.isLocked)) !== null && _view$filters$some !== void 0 ? _view$filters$some : false;
|
|
40
41
|
filters.push({
|
|
41
42
|
field: field.id,
|
|
42
43
|
name: field.label,
|
|
43
44
|
elements: (_field$elements = field.elements) !== null && _field$elements !== void 0 ? _field$elements : [],
|
|
44
45
|
singleSelection: operators.some(op => _constants.SINGLE_SELECTION_OPERATORS.includes(op)),
|
|
45
46
|
operators,
|
|
46
|
-
isVisible: isPrimary || !!view.filters?.some(f => f.field === field.id && _constants.ALL_OPERATORS.includes(f.operator)),
|
|
47
|
-
isPrimary
|
|
47
|
+
isVisible: isLocked || isPrimary || !!view.filters?.some(f => f.field === field.id && _constants.ALL_OPERATORS.includes(f.operator)),
|
|
48
|
+
isPrimary,
|
|
49
|
+
isLocked
|
|
48
50
|
});
|
|
49
51
|
});
|
|
50
|
-
|
|
51
|
-
//
|
|
52
|
+
|
|
53
|
+
// Sort filters by:
|
|
54
|
+
// - locked filters go first
|
|
55
|
+
// - primary filters go next
|
|
56
|
+
// - then, sort by name
|
|
52
57
|
filters.sort((a, b) => {
|
|
58
|
+
if (a.isLocked && !b.isLocked) {
|
|
59
|
+
return -1;
|
|
60
|
+
}
|
|
61
|
+
if (!a.isLocked && b.isLocked) {
|
|
62
|
+
return 1;
|
|
63
|
+
}
|
|
53
64
|
if (a.isPrimary && !b.isPrimary) {
|
|
54
65
|
return -1;
|
|
55
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_icons","_i18n","_filter","_interopRequireDefault","_addFilter","_interopRequireWildcard","_resetFilters","_dataviewsContext","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useFilters","fields","view","useMemo","filters","forEach","field","_field$elements","filterBy","elements","length","Edit","operators","isPrimary","push","id","name","label","singleSelection","some","op","SINGLE_SELECTION_OPERATORS","includes","isVisible","f","ALL_OPERATORS","operator","sort","b","localeCompare","FiltersToggle","onChangeView","setOpenedFilter","isShowingFilter","setIsShowingFilter","useContext","DataViewsContext","buttonRef","useRef","onChangeViewWithFilterVisibility","useCallback","_view","visibleFilters","filter","hasVisibleFilters","addFilterButtonProps","__","isPressed","toggleFiltersButtonProps","_x","onClick","buttonComponent","jsx","Button","ref","className","size","icon","funnel","children","AddFilterMenu","triggerProps","render","FilterVisibilityToggle","filtersCount","useEffect","current","focus","jsxs","Fragment","Filters","openedFilter","addFilterRef","addFilter","filterComponents","map","__experimentalHStack","justify","style","width","wrap","_default","exports","memo"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Filter from './filter';\nimport { default as AddFilter, AddFilterMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { ALL_OPERATORS, SINGLE_SELECTION_OPERATORS } from '../../constants';\nimport type { NormalizedFilter, NormalizedField, View } from '../../types';\n\nexport function useFilters( fields: NormalizedField< any >[], view: View ) {\n\treturn useMemo( () => {\n\t\tconst filters: NormalizedFilter[] = [];\n\t\tfields.forEach( ( field ) => {\n\t\t\tif (\n\t\t\t\tfield.filterBy === false ||\n\t\t\t\t( ! field.elements?.length && ! field.Edit )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst operators = field.filterBy.operators;\n\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\t\tfilters.push( {\n\t\t\t\tfield: field.id,\n\t\t\t\tname: field.label,\n\t\t\t\telements: field.elements ?? [],\n\t\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t\tSINGLE_SELECTION_OPERATORS.includes( op )\n\t\t\t\t),\n\t\t\t\toperators,\n\t\t\t\tisVisible:\n\t\t\t\t\tisPrimary ||\n\t\t\t\t\t!! view.filters?.some(\n\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t\t),\n\t\t\t\tisPrimary,\n\t\t\t} );\n\t\t} );\n\t\t// Sort filters by primary property. We need the primary filters to be first.\n\t\t// Then we sort by name.\n\t\tfilters.sort( ( a, b ) => {\n\t\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn a.name.localeCompare( b.name );\n\t\t} );\n\t\treturn filters;\n\t}, [ fields, view ] );\n}\n\nexport function FiltersToggle() {\n\tconst {\n\t\tfilters,\n\t\tview,\n\t\tonChangeView,\n\t\tsetOpenedFilter,\n\t\tisShowingFilter,\n\t\tsetIsShowingFilter,\n\t} = useContext( DataViewsContext );\n\n\tconst buttonRef = useRef< HTMLButtonElement >( null );\n\tconst onChangeViewWithFilterVisibility = useCallback(\n\t\t( _view: View ) => {\n\t\t\tonChangeView( _view );\n\t\t\tsetIsShowingFilter( true );\n\t\t},\n\t\t[ onChangeView, setIsShowingFilter ]\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\n\tconst hasVisibleFilters = !! visibleFilters.length;\n\tif ( filters.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst addFilterButtonProps = {\n\t\tlabel: __( 'Add filter' ),\n\t\t'aria-expanded': false,\n\t\tisPressed: false,\n\t};\n\tconst toggleFiltersButtonProps = {\n\t\tlabel: _x( 'Filter', 'verb' ),\n\t\t'aria-expanded': isShowingFilter,\n\t\tisPressed: isShowingFilter,\n\t\tonClick: () => {\n\t\t\tif ( ! isShowingFilter ) {\n\t\t\t\tsetOpenedFilter( null );\n\t\t\t}\n\t\t\tsetIsShowingFilter( ! isShowingFilter );\n\t\t},\n\t};\n\tconst buttonComponent = (\n\t\t<Button\n\t\t\tref={ buttonRef }\n\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ funnel }\n\t\t\t{ ...( hasVisibleFilters\n\t\t\t\t? toggleFiltersButtonProps\n\t\t\t\t: addFilterButtonProps ) }\n\t\t/>\n\t);\n\treturn (\n\t\t<div className=\"dataviews-filters__container-visibility-toggle\">\n\t\t\t{ ! hasVisibleFilters ? (\n\t\t\t\t<AddFilterMenu\n\t\t\t\t\tfilters={ filters }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeViewWithFilterVisibility }\n\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\ttriggerProps={ { render: buttonComponent } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<FilterVisibilityToggle\n\t\t\t\t\tbuttonRef={ buttonRef }\n\t\t\t\t\tfiltersCount={ view.filters?.length }\n\t\t\t\t>\n\t\t\t\t\t{ buttonComponent }\n\t\t\t\t</FilterVisibilityToggle>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction FilterVisibilityToggle( {\n\tbuttonRef,\n\tfiltersCount,\n\tchildren,\n}: {\n\tbuttonRef: React.RefObject< HTMLButtonElement >;\n\tfiltersCount?: number;\n\tchildren: React.ReactNode;\n} ) {\n\t// Focus the `add filter` button when unmounts.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tbuttonRef.current?.focus();\n\t\t},\n\t\t[ buttonRef ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ children }\n\t\t\t{ !! filtersCount && (\n\t\t\t\t<span className=\"dataviews-filters-toggle__count\">\n\t\t\t\t\t{ filtersCount }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction Filters( { className }: { className?: string } ) {\n\tconst { fields, view, onChangeView, openedFilter, setOpenedFilter } =\n\t\tuseContext( DataViewsContext );\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters = useFilters( fields, view );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\tif ( visibleFilters.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst filterComponents = [\n\t\t...visibleFilters.map( ( filter ) => {\n\t\t\treturn (\n\t\t\t\t<Filter\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tfilterComponents.push(\n\t\t<ResetFilters\n\t\t\tkey=\"reset-filters\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tstyle={ { width: 'fit-content' } }\n\t\t\twrap\n\t\t\tclassName={ className }\n\t\t>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\nexport default memo( Filters );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_icons","_i18n","_filter","_interopRequireDefault","_addFilter","_interopRequireWildcard","_resetFilters","_dataviewsContext","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useFilters","fields","view","useMemo","filters","forEach","field","_view$filters$some","_field$elements","filterBy","elements","length","Edit","operators","isPrimary","isLocked","some","f","id","push","name","label","singleSelection","op","SINGLE_SELECTION_OPERATORS","includes","isVisible","ALL_OPERATORS","operator","sort","b","localeCompare","FiltersToggle","onChangeView","setOpenedFilter","isShowingFilter","setIsShowingFilter","useContext","DataViewsContext","buttonRef","useRef","onChangeViewWithFilterVisibility","useCallback","_view","visibleFilters","filter","hasVisibleFilters","addFilterButtonProps","__","isPressed","toggleFiltersButtonProps","_x","onClick","buttonComponent","jsx","Button","ref","className","size","icon","funnel","children","AddFilterMenu","triggerProps","render","FilterVisibilityToggle","filtersCount","useEffect","current","focus","jsxs","Fragment","Filters","openedFilter","addFilterRef","addFilter","filterComponents","map","__experimentalHStack","justify","style","width","wrap","_default","exports","memo"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Filter from './filter';\nimport { default as AddFilter, AddFilterMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { ALL_OPERATORS, SINGLE_SELECTION_OPERATORS } from '../../constants';\nimport type { NormalizedFilter, NormalizedField, View } from '../../types';\n\nexport function useFilters( fields: NormalizedField< any >[], view: View ) {\n\treturn useMemo( () => {\n\t\tconst filters: NormalizedFilter[] = [];\n\t\tfields.forEach( ( field ) => {\n\t\t\tif (\n\t\t\t\tfield.filterBy === false ||\n\t\t\t\t( ! field.elements?.length && ! field.Edit )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst operators = field.filterBy.operators;\n\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\t\tconst isLocked =\n\t\t\t\tview.filters?.some(\n\t\t\t\t\t( f ) => f.field === field.id && !! f.isLocked\n\t\t\t\t) ?? false;\n\t\t\tfilters.push( {\n\t\t\t\tfield: field.id,\n\t\t\t\tname: field.label,\n\t\t\t\telements: field.elements ?? [],\n\t\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t\tSINGLE_SELECTION_OPERATORS.includes( op )\n\t\t\t\t),\n\t\t\t\toperators,\n\t\t\t\tisVisible:\n\t\t\t\t\tisLocked ||\n\t\t\t\t\tisPrimary ||\n\t\t\t\t\t!! view.filters?.some(\n\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t\t),\n\t\t\t\tisPrimary,\n\t\t\t\tisLocked,\n\t\t\t} );\n\t\t} );\n\n\t\t// Sort filters by:\n\t\t// - locked filters go first\n\t\t// - primary filters go next\n\t\t// - then, sort by name\n\t\tfilters.sort( ( a, b ) => {\n\t\t\tif ( a.isLocked && ! b.isLocked ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( ! a.isLocked && b.isLocked ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn a.name.localeCompare( b.name );\n\t\t} );\n\t\treturn filters;\n\t}, [ fields, view ] );\n}\n\nexport function FiltersToggle() {\n\tconst {\n\t\tfilters,\n\t\tview,\n\t\tonChangeView,\n\t\tsetOpenedFilter,\n\t\tisShowingFilter,\n\t\tsetIsShowingFilter,\n\t} = useContext( DataViewsContext );\n\n\tconst buttonRef = useRef< HTMLButtonElement >( null );\n\tconst onChangeViewWithFilterVisibility = useCallback(\n\t\t( _view: View ) => {\n\t\t\tonChangeView( _view );\n\t\t\tsetIsShowingFilter( true );\n\t\t},\n\t\t[ onChangeView, setIsShowingFilter ]\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\n\tconst hasVisibleFilters = !! visibleFilters.length;\n\tif ( filters.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst addFilterButtonProps = {\n\t\tlabel: __( 'Add filter' ),\n\t\t'aria-expanded': false,\n\t\tisPressed: false,\n\t};\n\tconst toggleFiltersButtonProps = {\n\t\tlabel: _x( 'Filter', 'verb' ),\n\t\t'aria-expanded': isShowingFilter,\n\t\tisPressed: isShowingFilter,\n\t\tonClick: () => {\n\t\t\tif ( ! isShowingFilter ) {\n\t\t\t\tsetOpenedFilter( null );\n\t\t\t}\n\t\t\tsetIsShowingFilter( ! isShowingFilter );\n\t\t},\n\t};\n\tconst buttonComponent = (\n\t\t<Button\n\t\t\tref={ buttonRef }\n\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ funnel }\n\t\t\t{ ...( hasVisibleFilters\n\t\t\t\t? toggleFiltersButtonProps\n\t\t\t\t: addFilterButtonProps ) }\n\t\t/>\n\t);\n\treturn (\n\t\t<div className=\"dataviews-filters__container-visibility-toggle\">\n\t\t\t{ ! hasVisibleFilters ? (\n\t\t\t\t<AddFilterMenu\n\t\t\t\t\tfilters={ filters }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeViewWithFilterVisibility }\n\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\ttriggerProps={ { render: buttonComponent } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<FilterVisibilityToggle\n\t\t\t\t\tbuttonRef={ buttonRef }\n\t\t\t\t\tfiltersCount={ view.filters?.length }\n\t\t\t\t>\n\t\t\t\t\t{ buttonComponent }\n\t\t\t\t</FilterVisibilityToggle>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction FilterVisibilityToggle( {\n\tbuttonRef,\n\tfiltersCount,\n\tchildren,\n}: {\n\tbuttonRef: React.RefObject< HTMLButtonElement >;\n\tfiltersCount?: number;\n\tchildren: React.ReactNode;\n} ) {\n\t// Focus the `add filter` button when unmounts.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tbuttonRef.current?.focus();\n\t\t},\n\t\t[ buttonRef ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ children }\n\t\t\t{ !! filtersCount && (\n\t\t\t\t<span className=\"dataviews-filters-toggle__count\">\n\t\t\t\t\t{ filtersCount }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction Filters( { className }: { className?: string } ) {\n\tconst { fields, view, onChangeView, openedFilter, setOpenedFilter } =\n\t\tuseContext( DataViewsContext );\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters = useFilters( fields, view );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\tif ( visibleFilters.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst filterComponents = [\n\t\t...visibleFilters.map( ( filter ) => {\n\t\t\treturn (\n\t\t\t\t<Filter\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tfilterComponents.push(\n\t\t<ResetFilters\n\t\t\tkey=\"reset-filters\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tstyle={ { width: 'fit-content' } }\n\t\t\twrap\n\t\t\tclassName={ className }\n\t\t>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\nexport default memo( Filters );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,7 +53,13 @@ function InputWidget({
|
|
|
53
53
|
filters: ((_view$filters2 = view.filters) !== null && _view$filters2 !== void 0 ? _view$filters2 : []).map(_filter => _filter.field === filter.field ? {
|
|
54
54
|
..._filter,
|
|
55
55
|
operator: currentFilter.operator || filter.operators[0],
|
|
56
|
-
|
|
56
|
+
// Consider empty strings as undefined:
|
|
57
|
+
//
|
|
58
|
+
// - undefined as value means the filter is unset: the filter widget displays no value and the search returns all records
|
|
59
|
+
// - empty string as value means "search empty string": returns only the records that have an empty string as value
|
|
60
|
+
//
|
|
61
|
+
// In practice, this means the filter will not be able to find an empty string as the value.
|
|
62
|
+
value: nextValue === '' ? undefined : nextValue
|
|
57
63
|
} : _filter)
|
|
58
64
|
});
|
|
59
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_es","_interopRequireDefault","require","_compose","_element","_components","_utils","_jsxRuntime","InputWidget","filter","view","onChangeView","fields","currentFilter","filters","find","f","field","id","currentValue","getCurrentValue","data","useMemo","_view$filters","reduce","acc","value","handleChange","useEvent","updatedData","_view$filters2","nextValue","fastDeepEqual","map","_filter","operator","operators","Edit","jsx","Flex","className","gap","direction","children","hideLabelFromVision","onChange"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/input-widget.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useEvent } from '@wordpress/compose';\nimport { useMemo } from '@wordpress/element';\nimport { Flex } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { View, NormalizedFilter, NormalizedField } from '../../types';\nimport { getCurrentValue } from './utils';\n\ninterface UserInputWidgetProps {\n\tview: View;\n\tfilter: NormalizedFilter;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< any >[];\n}\n\nexport default function InputWidget( {\n\tfilter,\n\tview,\n\tonChangeView,\n\tfields,\n}: UserInputWidgetProps ) {\n\tconst currentFilter = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\n\tconst field = fields.find( ( f ) => f.id === filter.field );\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\tconst data = useMemo( () => {\n\t\treturn ( view.filters ?? [] ).reduce(\n\t\t\t( acc, f ) => {\n\t\t\t\tacc[ f.field ] = f.value;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{} as Record< string, any >\n\t\t);\n\t}, [ view.filters ] );\n\n\tconst handleChange = useEvent( ( updatedData: Record< string, any > ) => {\n\t\tif ( ! field || ! currentFilter ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextValue = updatedData[ field.id ];\n\t\tif ( fastDeepEqual( nextValue, currentValue ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChangeView( {\n\t\t\t...view,\n\t\t\tfilters: ( view.filters ?? [] ).map( ( _filter ) =>\n\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\tcurrentFilter.operator || filter.operators[ 0 ],\n\t\t\t\t\t\t\tvalue: nextValue,\n\t\t\t\t\t }\n\t\t\t\t\t: _filter\n\t\t\t),\n\t\t} );\n\t} );\n\n\tif ( ! field || ! field.Edit || ! currentFilter ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Flex\n\t\t\tclassName=\"dataviews-filters__user-input-widget\"\n\t\t\tgap={ 2.5 }\n\t\t\tdirection=\"column\"\n\t\t>\n\t\t\t<field.Edit\n\t\t\t\thideLabelFromVision\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\toperator={ currentFilter.operator }\n\t\t\t\tonChange={ handleChange }\n\t\t\t/>\n\t\t</Flex>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAMA,IAAAI,MAAA,GAAAJ,OAAA;AAA0C,IAAAK,WAAA,GAAAL,OAAA;AAhB1C;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAWe,SAASM,WAAWA,CAAE;EACpCC,MAAM;EACNC,IAAI;EACJC,YAAY;EACZC;AACqB,CAAC,EAAG;EACzB,MAAMC,aAAa,GAAGH,IAAI,CAACI,OAAO,EAAEC,IAAI,CACrCC,CAAC,IAAMA,CAAC,CAACC,KAAK,KAAKR,MAAM,CAACQ,KAC7B,CAAC;EAED,MAAMA,KAAK,GAAGL,MAAM,CAACG,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACE,EAAE,KAAKT,MAAM,CAACQ,KAAM,CAAC;EAC3D,MAAME,YAAY,GAAG,IAAAC,sBAAe,EAAEX,MAAM,EAAEI,aAAc,CAAC;EAC7D,MAAMQ,IAAI,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAAA,IAAAC,aAAA;IAC3B,OAAO,EAAAA,aAAA,GAAEb,IAAI,CAACI,OAAO,cAAAS,aAAA,cAAAA,aAAA,GAAI,EAAE,EAAGC,MAAM,CACnC,CAAEC,GAAG,EAAET,CAAC,KAAM;MACbS,GAAG,CAAET,CAAC,CAACC,KAAK,CAAE,GAAGD,CAAC,CAACU,KAAK;MACxB,OAAOD,GAAG;IACX,CAAC,EACD,CAAC,CACF,CAAC;EACF,CAAC,EAAE,CAAEf,IAAI,CAACI,OAAO,CAAG,CAAC;EAErB,MAAMa,YAAY,GAAG,IAAAC,iBAAQ,EAAIC,WAAkC,IAAM;IAAA,IAAAC,cAAA;IACxE,IAAK,CAAEb,KAAK,IAAI,CAAEJ,aAAa,EAAG;MACjC;IACD;IACA,MAAMkB,SAAS,GAAGF,WAAW,CAAEZ,KAAK,CAACC,EAAE,CAAE;IACzC,IAAK,IAAAc,WAAa,EAAED,SAAS,EAAEZ,YAAa,CAAC,EAAG;MAC/C;IACD;IAEAR,YAAY,CAAE;MACb,GAAGD,IAAI;MACPI,OAAO,EAAE,EAAAgB,cAAA,GAAEpB,IAAI,CAACI,OAAO,cAAAgB,cAAA,cAAAA,cAAA,GAAI,EAAE,EAAGG,GAAG,CAAIC,OAAO,IAC7CA,OAAO,CAACjB,KAAK,KAAKR,MAAM,CAACQ,KAAK,GAC3B;QACA,GAAGiB,OAAO;QACVC,QAAQ,EACPtB,aAAa,CAACsB,QAAQ,IAAI1B,MAAM,CAAC2B,SAAS,CAAE,CAAC,CAAE;
|
|
1
|
+
{"version":3,"names":["_es","_interopRequireDefault","require","_compose","_element","_components","_utils","_jsxRuntime","InputWidget","filter","view","onChangeView","fields","currentFilter","filters","find","f","field","id","currentValue","getCurrentValue","data","useMemo","_view$filters","reduce","acc","value","handleChange","useEvent","updatedData","_view$filters2","nextValue","fastDeepEqual","map","_filter","operator","operators","undefined","Edit","jsx","Flex","className","gap","direction","children","hideLabelFromVision","onChange"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/input-widget.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useEvent } from '@wordpress/compose';\nimport { useMemo } from '@wordpress/element';\nimport { Flex } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { View, NormalizedFilter, NormalizedField } from '../../types';\nimport { getCurrentValue } from './utils';\n\ninterface UserInputWidgetProps {\n\tview: View;\n\tfilter: NormalizedFilter;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< any >[];\n}\n\nexport default function InputWidget( {\n\tfilter,\n\tview,\n\tonChangeView,\n\tfields,\n}: UserInputWidgetProps ) {\n\tconst currentFilter = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\n\tconst field = fields.find( ( f ) => f.id === filter.field );\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\tconst data = useMemo( () => {\n\t\treturn ( view.filters ?? [] ).reduce(\n\t\t\t( acc, f ) => {\n\t\t\t\tacc[ f.field ] = f.value;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{} as Record< string, any >\n\t\t);\n\t}, [ view.filters ] );\n\n\tconst handleChange = useEvent( ( updatedData: Record< string, any > ) => {\n\t\tif ( ! field || ! currentFilter ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextValue = updatedData[ field.id ];\n\t\tif ( fastDeepEqual( nextValue, currentValue ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChangeView( {\n\t\t\t...view,\n\t\t\tfilters: ( view.filters ?? [] ).map( ( _filter ) =>\n\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\tcurrentFilter.operator || filter.operators[ 0 ],\n\t\t\t\t\t\t\t// Consider empty strings as undefined:\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// - undefined as value means the filter is unset: the filter widget displays no value and the search returns all records\n\t\t\t\t\t\t\t// - empty string as value means \"search empty string\": returns only the records that have an empty string as value\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// In practice, this means the filter will not be able to find an empty string as the value.\n\t\t\t\t\t\t\tvalue: nextValue === '' ? undefined : nextValue,\n\t\t\t\t\t }\n\t\t\t\t\t: _filter\n\t\t\t),\n\t\t} );\n\t} );\n\n\tif ( ! field || ! field.Edit || ! currentFilter ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Flex\n\t\t\tclassName=\"dataviews-filters__user-input-widget\"\n\t\t\tgap={ 2.5 }\n\t\t\tdirection=\"column\"\n\t\t>\n\t\t\t<field.Edit\n\t\t\t\thideLabelFromVision\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\toperator={ currentFilter.operator }\n\t\t\t\tonChange={ handleChange }\n\t\t\t/>\n\t\t</Flex>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAMA,IAAAI,MAAA,GAAAJ,OAAA;AAA0C,IAAAK,WAAA,GAAAL,OAAA;AAhB1C;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAWe,SAASM,WAAWA,CAAE;EACpCC,MAAM;EACNC,IAAI;EACJC,YAAY;EACZC;AACqB,CAAC,EAAG;EACzB,MAAMC,aAAa,GAAGH,IAAI,CAACI,OAAO,EAAEC,IAAI,CACrCC,CAAC,IAAMA,CAAC,CAACC,KAAK,KAAKR,MAAM,CAACQ,KAC7B,CAAC;EAED,MAAMA,KAAK,GAAGL,MAAM,CAACG,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACE,EAAE,KAAKT,MAAM,CAACQ,KAAM,CAAC;EAC3D,MAAME,YAAY,GAAG,IAAAC,sBAAe,EAAEX,MAAM,EAAEI,aAAc,CAAC;EAC7D,MAAMQ,IAAI,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAAA,IAAAC,aAAA;IAC3B,OAAO,EAAAA,aAAA,GAAEb,IAAI,CAACI,OAAO,cAAAS,aAAA,cAAAA,aAAA,GAAI,EAAE,EAAGC,MAAM,CACnC,CAAEC,GAAG,EAAET,CAAC,KAAM;MACbS,GAAG,CAAET,CAAC,CAACC,KAAK,CAAE,GAAGD,CAAC,CAACU,KAAK;MACxB,OAAOD,GAAG;IACX,CAAC,EACD,CAAC,CACF,CAAC;EACF,CAAC,EAAE,CAAEf,IAAI,CAACI,OAAO,CAAG,CAAC;EAErB,MAAMa,YAAY,GAAG,IAAAC,iBAAQ,EAAIC,WAAkC,IAAM;IAAA,IAAAC,cAAA;IACxE,IAAK,CAAEb,KAAK,IAAI,CAAEJ,aAAa,EAAG;MACjC;IACD;IACA,MAAMkB,SAAS,GAAGF,WAAW,CAAEZ,KAAK,CAACC,EAAE,CAAE;IACzC,IAAK,IAAAc,WAAa,EAAED,SAAS,EAAEZ,YAAa,CAAC,EAAG;MAC/C;IACD;IAEAR,YAAY,CAAE;MACb,GAAGD,IAAI;MACPI,OAAO,EAAE,EAAAgB,cAAA,GAAEpB,IAAI,CAACI,OAAO,cAAAgB,cAAA,cAAAA,cAAA,GAAI,EAAE,EAAGG,GAAG,CAAIC,OAAO,IAC7CA,OAAO,CAACjB,KAAK,KAAKR,MAAM,CAACQ,KAAK,GAC3B;QACA,GAAGiB,OAAO;QACVC,QAAQ,EACPtB,aAAa,CAACsB,QAAQ,IAAI1B,MAAM,CAAC2B,SAAS,CAAE,CAAC,CAAE;QAChD;QACA;QACA;QACA;QACA;QACA;QACAV,KAAK,EAAEK,SAAS,KAAK,EAAE,GAAGM,SAAS,GAAGN;MACtC,CAAC,GACDG,OACJ;IACD,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,IAAK,CAAEjB,KAAK,IAAI,CAAEA,KAAK,CAACqB,IAAI,IAAI,CAAEzB,aAAa,EAAG;IACjD,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAN,WAAA,CAAAgC,GAAA,EAAClC,WAAA,CAAAmC,IAAI;IACJC,SAAS,EAAC,sCAAsC;IAChDC,GAAG,EAAG,GAAK;IACXC,SAAS,EAAC,QAAQ;IAAAC,QAAA,eAElB,IAAArC,WAAA,CAAAgC,GAAA,EAACtB,KAAK,CAACqB,IAAI;MACVO,mBAAmB;MACnBxB,IAAI,EAAGA,IAAM;MACbJ,KAAK,EAAGA,KAAO;MACfkB,QAAQ,EAAGtB,aAAa,CAACsB,QAAU;MACnCW,QAAQ,EAAGnB;IAAc,CACzB;EAAC,CACG,CAAC;AAET","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ function ResetFilter({
|
|
|
21
21
|
onChangeView
|
|
22
22
|
}) {
|
|
23
23
|
const isPrimary = field => filters.some(_filter => _filter.field === field && _filter.isPrimary);
|
|
24
|
-
const isDisabled = !view.search && !view.filters?.some(_filter => _filter.value !== undefined || !isPrimary(_filter.field));
|
|
24
|
+
const isDisabled = !view.search && !view.filters?.some(_filter => !_filter.isLocked && (_filter.value !== undefined || !isPrimary(_filter.field)));
|
|
25
25
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
26
26
|
disabled: isDisabled,
|
|
27
27
|
accessibleWhenDisabled: true,
|
|
@@ -33,7 +33,7 @@ function ResetFilter({
|
|
|
33
33
|
...view,
|
|
34
34
|
page: 1,
|
|
35
35
|
search: '',
|
|
36
|
-
filters: []
|
|
36
|
+
filters: view.filters?.filter(f => !!f.isLocked) || []
|
|
37
37
|
});
|
|
38
38
|
},
|
|
39
39
|
children: (0, _i18n.__)('Reset')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_jsxRuntime","ResetFilter","filters","view","onChangeView","isPrimary","field","some","_filter","isDisabled","search","value","undefined","jsx","Button","disabled","accessibleWhenDisabled","size","variant","className","onClick","page","children","__"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/reset-filters.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedFilter, View } from '../../types';\n\ninterface ResetFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\nexport default function ResetFilter( {\n\tfilters,\n\tview,\n\tonChangeView,\n}: ResetFilterProps ) {\n\tconst isPrimary = ( field: string ) =>\n\t\tfilters.some(\n\t\t\t( _filter ) => _filter.field === field && _filter.isPrimary\n\t\t);\n\tconst isDisabled =\n\t\t! view.search &&\n\t\t! view.filters?.some(\n\t\t\t( _filter ) =>\n\t\t\t\
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_jsxRuntime","ResetFilter","filters","view","onChangeView","isPrimary","field","some","_filter","isDisabled","search","isLocked","value","undefined","jsx","Button","disabled","accessibleWhenDisabled","size","variant","className","onClick","page","filter","f","children","__"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/reset-filters.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedFilter, View } from '../../types';\n\ninterface ResetFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\nexport default function ResetFilter( {\n\tfilters,\n\tview,\n\tonChangeView,\n}: ResetFilterProps ) {\n\tconst isPrimary = ( field: string ) =>\n\t\tfilters.some(\n\t\t\t( _filter ) => _filter.field === field && _filter.isPrimary\n\t\t);\n\tconst isDisabled =\n\t\t! view.search &&\n\t\t! view.filters?.some(\n\t\t\t( _filter ) =>\n\t\t\t\t! _filter.isLocked &&\n\t\t\t\t( _filter.value !== undefined || ! isPrimary( _filter.field ) )\n\t\t);\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isDisabled }\n\t\t\taccessibleWhenDisabled\n\t\t\tsize=\"compact\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tclassName=\"dataviews-filters__reset-button\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: '',\n\t\t\t\t\tfilters:\n\t\t\t\t\t\tview.filters?.filter( ( f ) => !! f.isLocked ) || [],\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Reset' ) }\n\t\t</Button>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAqC,IAAAE,WAAA,GAAAF,OAAA;AAJrC;AACA;AACA;;AAIA;AACA;AACA;;AASe,SAASG,WAAWA,CAAE;EACpCC,OAAO;EACPC,IAAI;EACJC;AACiB,CAAC,EAAG;EACrB,MAAMC,SAAS,GAAKC,KAAa,IAChCJ,OAAO,CAACK,IAAI,CACTC,OAAO,IAAMA,OAAO,CAACF,KAAK,KAAKA,KAAK,IAAIE,OAAO,CAACH,SACnD,CAAC;EACF,MAAMI,UAAU,GACf,CAAEN,IAAI,CAACO,MAAM,IACb,CAAEP,IAAI,CAACD,OAAO,EAAEK,IAAI,CACjBC,OAAO,IACR,CAAEA,OAAO,CAACG,QAAQ,KAChBH,OAAO,CAACI,KAAK,KAAKC,SAAS,IAAI,CAAER,SAAS,CAAEG,OAAO,CAACF,KAAM,CAAC,CAC/D,CAAC;EACF,oBACC,IAAAN,WAAA,CAAAc,GAAA,EAACjB,WAAA,CAAAkB,MAAM;IACNC,QAAQ,EAAGP,UAAY;IACvBQ,sBAAsB;IACtBC,IAAI,EAAC,SAAS;IACdC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,OAAO,EAAGA,CAAA,KAAM;MACfjB,YAAY,CAAE;QACb,GAAGD,IAAI;QACPmB,IAAI,EAAE,CAAC;QACPZ,MAAM,EAAE,EAAE;QACVR,OAAO,EACNC,IAAI,CAACD,OAAO,EAAEqB,MAAM,CAAIC,CAAC,IAAM,CAAC,CAAEA,CAAC,CAACb,QAAS,CAAC,IAAI;MACpD,CAAE,CAAC;IACJ,CAAG;IAAAc,QAAA,EAED,IAAAC,QAAE,EAAE,OAAQ;EAAC,CACR,CAAC;AAEX","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = DataViewsLayout;
|
|
8
8
|
var _element = require("@wordpress/element");
|
|
9
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
10
|
var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
|
|
10
11
|
var _dataviewsLayouts = require("../../dataviews-layouts");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -38,7 +39,8 @@ function DataViewsLayout({
|
|
|
38
39
|
setOpenedFilter,
|
|
39
40
|
onClickItem,
|
|
40
41
|
isItemClickable,
|
|
41
|
-
renderItemLink
|
|
42
|
+
renderItemLink,
|
|
43
|
+
empty = (0, _i18n.__)('No results')
|
|
42
44
|
} = (0, _element.useContext)(_dataviewsContext.default);
|
|
43
45
|
const ViewComponent = _dataviewsLayouts.VIEW_LAYOUTS.find(v => v.type === view.type)?.component;
|
|
44
46
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ViewComponent, {
|
|
@@ -56,7 +58,8 @@ function DataViewsLayout({
|
|
|
56
58
|
onClickItem: onClickItem,
|
|
57
59
|
renderItemLink: renderItemLink,
|
|
58
60
|
isItemClickable: isItemClickable,
|
|
59
|
-
view: view
|
|
61
|
+
view: view,
|
|
62
|
+
empty: empty
|
|
60
63
|
});
|
|
61
64
|
}
|
|
62
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_jsxRuntime","DataViewsLayout","className","actions","data","fields","getItemId","getItemLevel","isLoading","view","onChangeView","selection","onChangeSelection","setOpenedFilter","onClickItem","isItemClickable","renderItemLink","useContext","DataViewsContext","ViewComponent","VIEW_LAYOUTS","find","v","type","component","jsx"],"sources":["@wordpress/dataviews/src/components/dataviews-layout/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { ViewBaseProps } from '../../types';\n\ntype DataViewsLayoutProps = {\n\tclassName?: string;\n};\n\nexport default function DataViewsLayout( { className }: DataViewsLayoutProps ) {\n\tconst {\n\t\tactions = [],\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tgetItemLevel,\n\t\tisLoading,\n\t\tview,\n\t\tonChangeView,\n\t\tselection,\n\t\tonChangeSelection,\n\t\tsetOpenedFilter,\n\t\tonClickItem,\n\t\tisItemClickable,\n\t\trenderItemLink,\n\t} = useContext( DataViewsContext );\n\n\tconst ViewComponent = VIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< any > >;\n\n\treturn (\n\t\t<ViewComponent\n\t\t\tclassName={ className }\n\t\t\tactions={ actions }\n\t\t\tdata={ data }\n\t\t\tfields={ fields }\n\t\t\tgetItemId={ getItemId }\n\t\t\tgetItemLevel={ getItemLevel }\n\t\t\tisLoading={ isLoading }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tselection={ selection }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\tonClickItem={ onClickItem }\n\t\t\trenderItemLink={ renderItemLink }\n\t\t\tisItemClickable={ isItemClickable }\n\t\t\tview={ view }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_jsxRuntime","DataViewsLayout","className","actions","data","fields","getItemId","getItemLevel","isLoading","view","onChangeView","selection","onChangeSelection","setOpenedFilter","onClickItem","isItemClickable","renderItemLink","empty","__","useContext","DataViewsContext","ViewComponent","VIEW_LAYOUTS","find","v","type","component","jsx"],"sources":["@wordpress/dataviews/src/components/dataviews-layout/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { ViewBaseProps } from '../../types';\n\ntype DataViewsLayoutProps = {\n\tclassName?: string;\n};\n\nexport default function DataViewsLayout( { className }: DataViewsLayoutProps ) {\n\tconst {\n\t\tactions = [],\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tgetItemLevel,\n\t\tisLoading,\n\t\tview,\n\t\tonChangeView,\n\t\tselection,\n\t\tonChangeSelection,\n\t\tsetOpenedFilter,\n\t\tonClickItem,\n\t\tisItemClickable,\n\t\trenderItemLink,\n\t\tempty = __( 'No results' ),\n\t} = useContext( DataViewsContext );\n\n\tconst ViewComponent = VIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< any > >;\n\n\treturn (\n\t\t<ViewComponent\n\t\t\tclassName={ className }\n\t\t\tactions={ actions }\n\t\t\tdata={ data }\n\t\t\tfields={ fields }\n\t\t\tgetItemId={ getItemId }\n\t\t\tgetItemLevel={ getItemLevel }\n\t\t\tisLoading={ isLoading }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tselection={ selection }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\tonClickItem={ onClickItem }\n\t\t\trenderItemLink={ renderItemLink }\n\t\t\tisItemClickable={ isItemClickable }\n\t\t\tview={ view }\n\t\t\tempty={ empty }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAuD,IAAAK,WAAA,GAAAL,OAAA;AAfvD;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AASe,SAASM,eAAeA,CAAE;EAAEC;AAAgC,CAAC,EAAG;EAC9E,MAAM;IACLC,OAAO,GAAG,EAAE;IACZC,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTC,IAAI;IACJC,YAAY;IACZC,SAAS;IACTC,iBAAiB;IACjBC,eAAe;IACfC,WAAW;IACXC,eAAe;IACfC,cAAc;IACdC,KAAK,GAAG,IAAAC,QAAE,EAAE,YAAa;EAC1B,CAAC,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAElC,MAAMC,aAAa,GAAGC,8BAAY,CAACC,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKhB,IAAI,CAACgB,IAAK,CAAC,EACrEC,SAAkD;EAErD,oBACC,IAAA1B,WAAA,CAAA2B,GAAA,EAACN,aAAa;IACbnB,SAAS,EAAGA,SAAW;IACvBC,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbC,MAAM,EAAGA,MAAQ;IACjBC,SAAS,EAAGA,SAAW;IACvBC,YAAY,EAAGA,YAAc;IAC7BC,SAAS,EAAGA,SAAW;IACvBE,YAAY,EAAGA,YAAc;IAC7BE,iBAAiB,EAAGA,iBAAmB;IACvCD,SAAS,EAAGA,SAAW;IACvBE,eAAe,EAAGA,eAAiB;IACnCC,WAAW,EAAGA,WAAa;IAC3BE,cAAc,EAAGA,cAAgB;IACjCD,eAAe,EAAGA,eAAiB;IACnCN,IAAI,EAAGA,IAAM;IACbQ,KAAK,EAAGA;EAAO,CACf,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -175,14 +175,15 @@ function SortDirectionControl() {
|
|
|
175
175
|
})
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
const PAGE_SIZE_VALUES = [10, 20, 50, 100];
|
|
179
178
|
function ItemsPerPageControl() {
|
|
180
179
|
const {
|
|
181
180
|
view,
|
|
182
181
|
perPageSizes,
|
|
183
182
|
onChangeView
|
|
184
183
|
} = (0, _element.useContext)(_dataviewsContext.default);
|
|
185
|
-
|
|
184
|
+
if (perPageSizes.length < 2 || perPageSizes.length > 6) {
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
186
187
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControl, {
|
|
187
188
|
__nextHasNoMarginBottom: true,
|
|
188
189
|
__next40pxDefaultSize: true,
|
|
@@ -198,7 +199,7 @@ function ItemsPerPageControl() {
|
|
|
198
199
|
page: 1
|
|
199
200
|
});
|
|
200
201
|
},
|
|
201
|
-
children:
|
|
202
|
+
children: perPageSizes.map(value => {
|
|
202
203
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
|
|
203
204
|
value: value,
|
|
204
205
|
label: value.toString()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","PAGE_SIZE_VALUES","ItemsPerPageControl","perPageSizes","pageSizeValues","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","DataViewsViewConfig","memo","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t\tshowLevels: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowLevels: false,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction ItemsPerPageControl() {\n\tconst { view, perPageSizes, onChangeView } = useContext( DataViewsContext );\n\tconst pageSizeValues = perPageSizes ?? PAGE_SIZE_VALUES;\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ pageSizeValues.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-preview-options-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\n\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isFirst || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\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) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\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{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id ) &&\n\t\t\tf.type !== 'media'\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\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\t\t[ isVisibleFlag ]: false,\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\tcanMove={ false }\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);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\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\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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) }\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nexport function DataviewsViewConfigDropdown() {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig() {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","ItemsPerPageControl","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","DataViewsViewConfig","memo","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t\tshowLevels: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowLevels: false,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction ItemsPerPageControl() {\n\tconst { view, perPageSizes, onChangeView } = useContext( DataViewsContext );\n\tif ( perPageSizes.length < 2 || perPageSizes.length > 6 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ perPageSizes.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-preview-options-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\n\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isFirst || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\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) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\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{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id ) &&\n\t\t\tf.type !== 'media'\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\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\t\t[ isVisibleFlag ]: false,\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\tcanMove={ false }\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);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\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\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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) }\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nexport function DataviewsViewConfigDropdown() {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig() {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = Boolean;
|
|
7
7
|
var _components = require("@wordpress/components");
|
|
8
|
+
var _lockUnlock = require("../lock-unlock");
|
|
8
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
10
|
/**
|
|
10
11
|
* WordPress dependencies
|
|
@@ -14,6 +15,9 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
14
15
|
* Internal dependencies
|
|
15
16
|
*/
|
|
16
17
|
|
|
18
|
+
const {
|
|
19
|
+
ValidatedToggleControl
|
|
20
|
+
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
17
21
|
function Boolean({
|
|
18
22
|
field,
|
|
19
23
|
onChange,
|
|
@@ -25,7 +29,17 @@ function Boolean({
|
|
|
25
29
|
getValue,
|
|
26
30
|
label
|
|
27
31
|
} = field;
|
|
28
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ValidatedToggleControl, {
|
|
33
|
+
required: !!field.isValid.required,
|
|
34
|
+
customValidator: newValue => {
|
|
35
|
+
if (field.isValid?.custom) {
|
|
36
|
+
return field.isValid.custom({
|
|
37
|
+
...data,
|
|
38
|
+
[id]: newValue
|
|
39
|
+
}, field);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
},
|
|
29
43
|
hidden: hideLabelFromVision,
|
|
30
44
|
__nextHasNoMarginBottom: true,
|
|
31
45
|
label: label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_jsxRuntime","Boolean","field","onChange","data","hideLabelFromVision","id","getValue","label","jsx","
|
|
1
|
+
{"version":3,"names":["_components","require","_lockUnlock","_jsxRuntime","ValidatedToggleControl","unlock","privateApis","Boolean","field","onChange","data","hideLabelFromVision","id","getValue","label","jsx","required","isValid","customValidator","newValue","custom","hidden","__nextHasNoMarginBottom","checked","item"],"sources":["@wordpress/dataviews/src/dataform-controls/boolean.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedToggleControl } = unlock( privateApis );\n\nexport default function Boolean< Item >( {\n\tfield,\n\tonChange,\n\tdata,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, getValue, label } = field;\n\n\treturn (\n\t\t<ValidatedToggleControl\n\t\t\trequired={ !! field.isValid.required }\n\t\t\tcustomValidator={ ( newValue: any ) => {\n\t\t\t\tif ( field.isValid?.custom ) {\n\t\t\t\t\treturn field.isValid.custom(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t[ id ]: newValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfield\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t} }\n\t\t\thidden={ hideLabelFromVision }\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ label }\n\t\t\tchecked={ getValue( { item: data } ) }\n\t\t\tonChange={ () =>\n\t\t\t\tonChange( { [ id ]: ! getValue( { item: data } ) } )\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AAAwC,IAAAE,WAAA,GAAAF,OAAA;AATxC;AACA;AACA;;AAGA;AACA;AACA;;AAIA,MAAM;EAAEG;AAAuB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAY,CAAC;AAEzC,SAASC,OAAOA,CAAU;EACxCC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAErC,oBACC,IAAAL,WAAA,CAAAY,GAAA,EAACX,sBAAsB;IACtBY,QAAQ,EAAG,CAAC,CAAER,KAAK,CAACS,OAAO,CAACD,QAAU;IACtCE,eAAe,EAAKC,QAAa,IAAM;MACtC,IAAKX,KAAK,CAACS,OAAO,EAAEG,MAAM,EAAG;QAC5B,OAAOZ,KAAK,CAACS,OAAO,CAACG,MAAM,CAC1B;UACC,GAAGV,IAAI;UACP,CAAEE,EAAE,GAAIO;QACT,CAAC,EACDX,KACD,CAAC;MACF;MAEA,OAAO,IAAI;IACZ,CAAG;IACHa,MAAM,EAAGV,mBAAqB;IAC9BW,uBAAuB;IACvBR,KAAK,EAAGA,KAAO;IACfS,OAAO,EAAGV,QAAQ,CAAE;MAAEW,IAAI,EAAEd;IAAK,CAAE,CAAG;IACtCD,QAAQ,EAAGA,CAAA,KACVA,QAAQ,CAAE;MAAE,CAAEG,EAAE,GAAI,CAAEC,QAAQ,CAAE;QAAEW,IAAI,EAAEd;MAAK,CAAE;IAAE,CAAE;EACnD,CACD,CAAC;AAEJ","ignoreList":[]}
|