@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { Flex, BaseControl, __experimentalNumberControl as NumberControl } from '@wordpress/components';
|
|
4
|
+
import { Flex, BaseControl, __experimentalNumberControl as NumberControl, privateApis } from '@wordpress/components';
|
|
5
5
|
import { useCallback } from '@wordpress/element';
|
|
6
6
|
import { __ } from '@wordpress/i18n';
|
|
7
7
|
|
|
@@ -9,7 +9,11 @@ import { __ } from '@wordpress/i18n';
|
|
|
9
9
|
* Internal dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { OPERATOR_BETWEEN } from '../constants';
|
|
12
|
+
import { unlock } from '../lock-unlock';
|
|
12
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
const {
|
|
15
|
+
ValidatedNumberControl
|
|
16
|
+
} = unlock(privateApis);
|
|
13
17
|
function BetweenControls({
|
|
14
18
|
id,
|
|
15
19
|
value,
|
|
@@ -63,9 +67,14 @@ export default function Integer({
|
|
|
63
67
|
const value = (_field$getValue = field.getValue({
|
|
64
68
|
item: data
|
|
65
69
|
})) !== null && _field$getValue !== void 0 ? _field$getValue : '';
|
|
66
|
-
const onChangeControl = useCallback(newValue =>
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
const onChangeControl = useCallback(newValue => {
|
|
71
|
+
onChange({
|
|
72
|
+
// Do not convert an empty string or undefined to a number,
|
|
73
|
+
// otherwise there's a mismatch between the UI control (empty)
|
|
74
|
+
// and the data relied by onChange (0).
|
|
75
|
+
[id]: ['', undefined].includes(newValue) ? undefined : Number(newValue)
|
|
76
|
+
});
|
|
77
|
+
}, [id, onChange]);
|
|
69
78
|
if (operator === OPERATOR_BETWEEN) {
|
|
70
79
|
return /*#__PURE__*/_jsx(BetweenControls, {
|
|
71
80
|
id: id,
|
|
@@ -74,7 +83,17 @@ export default function Integer({
|
|
|
74
83
|
hideLabelFromVision: hideLabelFromVision
|
|
75
84
|
});
|
|
76
85
|
}
|
|
77
|
-
return /*#__PURE__*/_jsx(
|
|
86
|
+
return /*#__PURE__*/_jsx(ValidatedNumberControl, {
|
|
87
|
+
required: !!field.isValid?.required,
|
|
88
|
+
customValidator: newValue => {
|
|
89
|
+
if (field.isValid?.custom) {
|
|
90
|
+
return field.isValid.custom({
|
|
91
|
+
...data,
|
|
92
|
+
[id]: [undefined, '', null].includes(newValue) ? undefined : Number(newValue)
|
|
93
|
+
}, field);
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
},
|
|
78
97
|
label: label,
|
|
79
98
|
help: description,
|
|
80
99
|
value: value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Flex","BaseControl","__experimentalNumberControl","NumberControl","useCallback","__","OPERATOR_BETWEEN","jsx","_jsx","jsxs","_jsxs","BetweenControls","id","value","onChange","hideLabelFromVision","min","max","Array","isArray","onChangeMin","newValue","Number","onChangeMax","__nextHasNoMarginBottom","help","children","direction","gap","label","undefined","__next40pxDefaultSize","Integer","data","field","operator","_field$getValue","description","getValue","item","onChangeControl"],"sources":["@wordpress/dataviews/src/dataform-controls/integer.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tBaseControl,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { OPERATOR_BETWEEN } from '../constants';\nimport type { DataFormControlProps } from '../types';\n\nfunction BetweenControls< Item >( {\n\tid,\n\tvalue,\n\tonChange,\n\thideLabelFromVision,\n}: {\n\tid: string;\n\tvalue: any;\n\tonChange: DataFormControlProps< Item >[ 'onChange' ];\n\thideLabelFromVision?: boolean;\n} ) {\n\tconst [ min = '', max = '' ] = Array.isArray( value ) ? value : [];\n\n\tconst onChangeMin = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: [ Number( newValue ), max ],\n\t\t\t} ),\n\t\t[ id, onChange, max ]\n\t);\n\n\tconst onChangeMax = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: [ min, Number( newValue ) ],\n\t\t\t} ),\n\t\t[ id, onChange, min ]\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\thelp={ __( 'The max. value must be greater than the min. value.' ) }\n\t\t>\n\t\t\t<Flex direction=\"row\" gap={ 4 }>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Min.' ) }\n\t\t\t\t\tvalue={ min }\n\t\t\t\t\tmax={ max ? Number( max ) - 1 : undefined }\n\t\t\t\t\tonChange={ onChangeMin }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t/>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Max.' ) }\n\t\t\t\t\tvalue={ max }\n\t\t\t\t\tmin={ min ? Number( min ) + 1 : undefined }\n\t\t\t\t\tonChange={ onChangeMax }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</BaseControl>\n\t);\n}\n\nexport default function Integer< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\toperator,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, description } = field;\n\tconst value = field.getValue( { item: data } ) ?? '';\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string | undefined )
|
|
1
|
+
{"version":3,"names":["Flex","BaseControl","__experimentalNumberControl","NumberControl","privateApis","useCallback","__","OPERATOR_BETWEEN","unlock","jsx","_jsx","jsxs","_jsxs","ValidatedNumberControl","BetweenControls","id","value","onChange","hideLabelFromVision","min","max","Array","isArray","onChangeMin","newValue","Number","onChangeMax","__nextHasNoMarginBottom","help","children","direction","gap","label","undefined","__next40pxDefaultSize","Integer","data","field","operator","_field$getValue","description","getValue","item","onChangeControl","includes","required","isValid","customValidator","custom"],"sources":["@wordpress/dataviews/src/dataform-controls/integer.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tBaseControl,\n\t__experimentalNumberControl as NumberControl,\n\tprivateApis,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { OPERATOR_BETWEEN } from '../constants';\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedNumberControl } = unlock( privateApis );\n\nfunction BetweenControls< Item >( {\n\tid,\n\tvalue,\n\tonChange,\n\thideLabelFromVision,\n}: {\n\tid: string;\n\tvalue: any;\n\tonChange: DataFormControlProps< Item >[ 'onChange' ];\n\thideLabelFromVision?: boolean;\n} ) {\n\tconst [ min = '', max = '' ] = Array.isArray( value ) ? value : [];\n\n\tconst onChangeMin = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: [ Number( newValue ), max ],\n\t\t\t} ),\n\t\t[ id, onChange, max ]\n\t);\n\n\tconst onChangeMax = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: [ min, Number( newValue ) ],\n\t\t\t} ),\n\t\t[ id, onChange, min ]\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\thelp={ __( 'The max. value must be greater than the min. value.' ) }\n\t\t>\n\t\t\t<Flex direction=\"row\" gap={ 4 }>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Min.' ) }\n\t\t\t\t\tvalue={ min }\n\t\t\t\t\tmax={ max ? Number( max ) - 1 : undefined }\n\t\t\t\t\tonChange={ onChangeMin }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t/>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Max.' ) }\n\t\t\t\t\tvalue={ max }\n\t\t\t\t\tmin={ min ? Number( min ) + 1 : undefined }\n\t\t\t\t\tonChange={ onChangeMax }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</BaseControl>\n\t);\n}\n\nexport default function Integer< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\toperator,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, description } = field;\n\tconst value = field.getValue( { item: data } ) ?? '';\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string | undefined ) => {\n\t\t\tonChange( {\n\t\t\t\t// Do not convert an empty string or undefined to a number,\n\t\t\t\t// otherwise there's a mismatch between the UI control (empty)\n\t\t\t\t// and the data relied by onChange (0).\n\t\t\t\t[ id ]: [ '', undefined ].includes( newValue )\n\t\t\t\t\t? undefined\n\t\t\t\t\t: Number( newValue ),\n\t\t\t} );\n\t\t},\n\t\t[ id, onChange ]\n\t);\n\n\tif ( operator === OPERATOR_BETWEEN ) {\n\t\treturn (\n\t\t\t<BetweenControls\n\t\t\t\tid={ id }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ValidatedNumberControl\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 ]: [ undefined, '', null ].includes( newValue )\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: Number( 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\tlabel={ label }\n\t\t\thelp={ description }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { BaseControl, SelectControl, __experimentalNumberControl as NumberControl, __experimentalHStack as HStack } from '@wordpress/components';
|
|
10
|
+
import { useCallback } from '@wordpress/element';
|
|
11
|
+
import { __ } from '@wordpress/i18n';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Internal dependencies
|
|
15
|
+
*/
|
|
16
|
+
import { OPERATOR_IN_THE_PAST, OPERATOR_OVER } from '../constants';
|
|
17
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
|
+
export const TIME_UNITS_OPTIONS = {
|
|
19
|
+
[OPERATOR_IN_THE_PAST]: [{
|
|
20
|
+
value: 'days',
|
|
21
|
+
label: __('Days')
|
|
22
|
+
}, {
|
|
23
|
+
value: 'weeks',
|
|
24
|
+
label: __('Weeks')
|
|
25
|
+
}, {
|
|
26
|
+
value: 'months',
|
|
27
|
+
label: __('Months')
|
|
28
|
+
}, {
|
|
29
|
+
value: 'years',
|
|
30
|
+
label: __('Years')
|
|
31
|
+
}],
|
|
32
|
+
[OPERATOR_OVER]: [{
|
|
33
|
+
value: 'days',
|
|
34
|
+
label: __('Days ago')
|
|
35
|
+
}, {
|
|
36
|
+
value: 'weeks',
|
|
37
|
+
label: __('Weeks ago')
|
|
38
|
+
}, {
|
|
39
|
+
value: 'months',
|
|
40
|
+
label: __('Months ago')
|
|
41
|
+
}, {
|
|
42
|
+
value: 'years',
|
|
43
|
+
label: __('Years ago')
|
|
44
|
+
}]
|
|
45
|
+
};
|
|
46
|
+
export default function RelativeDateControl({
|
|
47
|
+
id,
|
|
48
|
+
value,
|
|
49
|
+
onChange,
|
|
50
|
+
label,
|
|
51
|
+
hideLabelFromVision,
|
|
52
|
+
options,
|
|
53
|
+
className
|
|
54
|
+
}) {
|
|
55
|
+
const {
|
|
56
|
+
value: relValue = '',
|
|
57
|
+
unit = options[0].value
|
|
58
|
+
} = value;
|
|
59
|
+
const onChangeValue = useCallback(newValue => onChange({
|
|
60
|
+
[id]: {
|
|
61
|
+
value: Number(newValue),
|
|
62
|
+
unit
|
|
63
|
+
}
|
|
64
|
+
}), [id, onChange, unit]);
|
|
65
|
+
const onChangeUnit = useCallback(newUnit => onChange({
|
|
66
|
+
[id]: {
|
|
67
|
+
value: relValue,
|
|
68
|
+
unit: newUnit
|
|
69
|
+
}
|
|
70
|
+
}), [id, onChange, relValue]);
|
|
71
|
+
return /*#__PURE__*/_jsx(BaseControl, {
|
|
72
|
+
id: id,
|
|
73
|
+
__nextHasNoMarginBottom: true,
|
|
74
|
+
className: clsx(className, 'dataviews-controls__relative-date'),
|
|
75
|
+
label: label,
|
|
76
|
+
hideLabelFromVision: hideLabelFromVision,
|
|
77
|
+
children: /*#__PURE__*/_jsxs(HStack, {
|
|
78
|
+
spacing: 2.5,
|
|
79
|
+
children: [/*#__PURE__*/_jsx(NumberControl, {
|
|
80
|
+
__next40pxDefaultSize: true,
|
|
81
|
+
className: "dataviews-controls__relative-date-number",
|
|
82
|
+
spinControls: "none",
|
|
83
|
+
min: 1,
|
|
84
|
+
step: 1,
|
|
85
|
+
value: relValue,
|
|
86
|
+
onChange: onChangeValue
|
|
87
|
+
}), /*#__PURE__*/_jsx(SelectControl, {
|
|
88
|
+
className: "dataviews-controls__relative-date-unit",
|
|
89
|
+
__next40pxDefaultSize: true,
|
|
90
|
+
__nextHasNoMarginBottom: true,
|
|
91
|
+
label: __('Unit'),
|
|
92
|
+
value: unit,
|
|
93
|
+
options: options,
|
|
94
|
+
onChange: onChangeUnit,
|
|
95
|
+
hideLabelFromVision: true
|
|
96
|
+
})]
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=relative-date-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["clsx","BaseControl","SelectControl","__experimentalNumberControl","NumberControl","__experimentalHStack","HStack","useCallback","__","OPERATOR_IN_THE_PAST","OPERATOR_OVER","jsx","_jsx","jsxs","_jsxs","TIME_UNITS_OPTIONS","value","label","RelativeDateControl","id","onChange","hideLabelFromVision","options","className","relValue","unit","onChangeValue","newValue","Number","onChangeUnit","newUnit","__nextHasNoMarginBottom","children","spacing","__next40pxDefaultSize","spinControls","min","step"],"sources":["@wordpress/dataviews/src/dataform-controls/relative-date-control.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tSelectControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { OPERATOR_IN_THE_PAST, OPERATOR_OVER } from '../constants';\n\ninterface RelativeDateControlProps {\n\tid: string;\n\tvalue: { value?: string | number; unit?: string };\n\tonChange: ( value: any ) => void;\n\tlabel: string;\n\thideLabelFromVision?: boolean;\n\toptions: { value: string; label: string }[];\n\tclassName?: string;\n}\n\nexport const TIME_UNITS_OPTIONS = {\n\t[ OPERATOR_IN_THE_PAST ]: [\n\t\t{ value: 'days', label: __( 'Days' ) },\n\t\t{ value: 'weeks', label: __( 'Weeks' ) },\n\t\t{ value: 'months', label: __( 'Months' ) },\n\t\t{ value: 'years', label: __( 'Years' ) },\n\t],\n\t[ OPERATOR_OVER ]: [\n\t\t{ value: 'days', label: __( 'Days ago' ) },\n\t\t{ value: 'weeks', label: __( 'Weeks ago' ) },\n\t\t{ value: 'months', label: __( 'Months ago' ) },\n\t\t{ value: 'years', label: __( 'Years ago' ) },\n\t],\n};\n\nexport default function RelativeDateControl( {\n\tid,\n\tvalue,\n\tonChange,\n\tlabel,\n\thideLabelFromVision,\n\toptions,\n\tclassName,\n}: RelativeDateControlProps ) {\n\tconst { value: relValue = '', unit = options[ 0 ].value } = value;\n\n\tconst onChangeValue = useCallback(\n\t\t( newValue: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: { value: Number( newValue ), unit },\n\t\t\t} ),\n\t\t[ id, onChange, unit ]\n\t);\n\n\tconst onChangeUnit = useCallback(\n\t\t( newUnit: string | undefined ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: { value: relValue, unit: newUnit },\n\t\t\t} ),\n\t\t[ id, onChange, relValue ]\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\tid={ id }\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName={ clsx( className, 'dataviews-controls__relative-date' ) }\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t>\n\t\t\t<HStack spacing={ 2.5 }>\n\t\t\t\t<NumberControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"dataviews-controls__relative-date-number\"\n\t\t\t\t\tspinControls=\"none\"\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t\tstep={ 1 }\n\t\t\t\t\tvalue={ relValue }\n\t\t\t\t\tonChange={ onChangeValue }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tclassName=\"dataviews-controls__relative-date-unit\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Unit' ) }\n\t\t\t\t\tvalue={ unit }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tonChange={ onChangeUnit }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</BaseControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,15 +18,21 @@ export default function Select({
|
|
|
18
18
|
var _field$getValue, _field$elements;
|
|
19
19
|
const {
|
|
20
20
|
id,
|
|
21
|
-
label
|
|
21
|
+
label,
|
|
22
|
+
type
|
|
22
23
|
} = field;
|
|
24
|
+
const isMultiple = type === 'array';
|
|
23
25
|
const value = (_field$getValue = field.getValue({
|
|
24
26
|
item: data
|
|
25
|
-
})) !== null && _field$getValue !== void 0 ? _field$getValue : '';
|
|
27
|
+
})) !== null && _field$getValue !== void 0 ? _field$getValue : isMultiple ? [] : '';
|
|
26
28
|
const onChangeControl = useCallback(newValue => onChange({
|
|
27
29
|
[id]: newValue
|
|
28
30
|
}), [id, onChange]);
|
|
29
|
-
const elements = [
|
|
31
|
+
const fieldElements = (_field$elements = field?.elements) !== null && _field$elements !== void 0 ? _field$elements : [];
|
|
32
|
+
const hasEmptyValue = fieldElements.some(({
|
|
33
|
+
value: elementValue
|
|
34
|
+
}) => elementValue === '');
|
|
35
|
+
const elements = hasEmptyValue || isMultiple ? fieldElements : [
|
|
30
36
|
/*
|
|
31
37
|
* Value can be undefined when:
|
|
32
38
|
*
|
|
@@ -37,7 +43,7 @@ export default function Select({
|
|
|
37
43
|
{
|
|
38
44
|
label: __('Select item'),
|
|
39
45
|
value: ''
|
|
40
|
-
}, ...
|
|
46
|
+
}, ...fieldElements];
|
|
41
47
|
return /*#__PURE__*/_jsx(SelectControl, {
|
|
42
48
|
label: label,
|
|
43
49
|
value: value,
|
|
@@ -46,7 +52,8 @@ export default function Select({
|
|
|
46
52
|
onChange: onChangeControl,
|
|
47
53
|
__next40pxDefaultSize: true,
|
|
48
54
|
__nextHasNoMarginBottom: true,
|
|
49
|
-
hideLabelFromVision: hideLabelFromVision
|
|
55
|
+
hideLabelFromVision: hideLabelFromVision,
|
|
56
|
+
multiple: isMultiple
|
|
50
57
|
});
|
|
51
58
|
}
|
|
52
59
|
//# sourceMappingURL=select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SelectControl","useCallback","__","jsx","_jsx","Select","data","field","onChange","hideLabelFromVision","_field$getValue","_field$elements","id","label","value","getValue","item","onChangeControl","newValue","elements","help","description","options","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/dataviews/src/dataform-controls/select.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\n\nexport default function Select< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label } = field;\n\tconst value = field.getValue( { item: data } ) ?? '';\n\tconst onChangeControl = useCallback(\n\t\t( newValue: any ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\tconst elements = [\n\t\t/*\n\t\t * Value can be undefined when:\n\t\t *\n\t\t * - the field is not required\n\t\t * - in bulk editing\n\t\t *\n\t\t */\n\t\t{ label: __( 'Select item' ), value: '' },\n\t\t...
|
|
1
|
+
{"version":3,"names":["SelectControl","useCallback","__","jsx","_jsx","Select","data","field","onChange","hideLabelFromVision","_field$getValue","_field$elements","id","label","type","isMultiple","value","getValue","item","onChangeControl","newValue","fieldElements","elements","hasEmptyValue","some","elementValue","help","description","options","__next40pxDefaultSize","__nextHasNoMarginBottom","multiple"],"sources":["@wordpress/dataviews/src/dataform-controls/select.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\n\nexport default function Select< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, type } = field;\n\tconst isMultiple = type === 'array';\n\tconst value = field.getValue( { item: data } ) ?? ( isMultiple ? [] : '' );\n\tconst onChangeControl = useCallback(\n\t\t( newValue: any ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\tconst fieldElements = field?.elements ?? [];\n\tconst hasEmptyValue = fieldElements.some(\n\t\t( { value: elementValue } ) => elementValue === ''\n\t);\n\n\tconst elements =\n\t\thasEmptyValue || isMultiple\n\t\t\t? fieldElements\n\t\t\t: [\n\t\t\t\t\t/*\n\t\t\t\t\t * Value can be undefined when:\n\t\t\t\t\t *\n\t\t\t\t\t * - the field is not required\n\t\t\t\t\t * - in bulk editing\n\t\t\t\t\t *\n\t\t\t\t\t */\n\t\t\t\t\t{ label: __( 'Select item' ), value: '' },\n\t\t\t\t\t...fieldElements,\n\t\t\t ];\n\n\treturn (\n\t\t<SelectControl\n\t\t\tlabel={ label }\n\t\t\tvalue={ value }\n\t\t\thelp={ field.description }\n\t\t\toptions={ elements }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\tmultiple={ isMultiple }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAKA,eAAe,SAASC,MAAMA,CAAU;EACvCC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EAAA,IAAAC,eAAA,EAAAC,eAAA;EACjC,MAAM;IAAEC,EAAE;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGP,KAAK;EACjC,MAAMQ,UAAU,GAAGD,IAAI,KAAK,OAAO;EACnC,MAAME,KAAK,IAAAN,eAAA,GAAGH,KAAK,CAACU,QAAQ,CAAE;IAAEC,IAAI,EAAEZ;EAAK,CAAE,CAAC,cAAAI,eAAA,cAAAA,eAAA,GAAMK,UAAU,GAAG,EAAE,GAAG,EAAI;EAC1E,MAAMI,eAAe,GAAGlB,WAAW,CAChCmB,QAAa,IACdZ,QAAQ,CAAE;IACT,CAAEI,EAAE,GAAIQ;EACT,CAAE,CAAC,EACJ,CAAER,EAAE,EAAEJ,QAAQ,CACf,CAAC;EAED,MAAMa,aAAa,IAAAV,eAAA,GAAGJ,KAAK,EAAEe,QAAQ,cAAAX,eAAA,cAAAA,eAAA,GAAI,EAAE;EAC3C,MAAMY,aAAa,GAAGF,aAAa,CAACG,IAAI,CACvC,CAAE;IAAER,KAAK,EAAES;EAAa,CAAC,KAAMA,YAAY,KAAK,EACjD,CAAC;EAED,MAAMH,QAAQ,GACbC,aAAa,IAAIR,UAAU,GACxBM,aAAa,GACb;EACA;AACL;AACA;AACA;AACA;AACA;AACA;EACK;IAAER,KAAK,EAAEX,EAAE,CAAE,aAAc,CAAC;IAAEc,KAAK,EAAE;EAAG,CAAC,EACzC,GAAGK,aAAa,CACf;EAEL,oBACCjB,IAAA,CAACJ,aAAa;IACba,KAAK,EAAGA,KAAO;IACfG,KAAK,EAAGA,KAAO;IACfU,IAAI,EAAGnB,KAAK,CAACoB,WAAa;IAC1BC,OAAO,EAAGN,QAAU;IACpBd,QAAQ,EAAGW,eAAiB;IAC5BU,qBAAqB;IACrBC,uBAAuB;IACvBrB,mBAAmB,EAAGA,mBAAqB;IAC3CsB,QAAQ,EAAGhB;EAAY,CACvB,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { privateApis } from '@wordpress/components';
|
|
5
5
|
import { useCallback } from '@wordpress/element';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
+
|
|
11
|
+
import { unlock } from '../lock-unlock';
|
|
10
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
const {
|
|
14
|
+
ValidatedTextControl
|
|
15
|
+
} = unlock(privateApis);
|
|
11
16
|
export default function Text({
|
|
12
17
|
data,
|
|
13
18
|
field,
|
|
@@ -26,7 +31,17 @@ export default function Text({
|
|
|
26
31
|
const onChangeControl = useCallback(newValue => onChange({
|
|
27
32
|
[id]: newValue
|
|
28
33
|
}), [id, onChange]);
|
|
29
|
-
return /*#__PURE__*/_jsx(
|
|
34
|
+
return /*#__PURE__*/_jsx(ValidatedTextControl, {
|
|
35
|
+
required: !!field.isValid?.required,
|
|
36
|
+
customValidator: newValue => {
|
|
37
|
+
if (field.isValid?.custom) {
|
|
38
|
+
return field.isValid.custom({
|
|
39
|
+
...data,
|
|
40
|
+
[id]: newValue
|
|
41
|
+
}, field);
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
},
|
|
30
45
|
label: label,
|
|
31
46
|
placeholder: placeholder,
|
|
32
47
|
value: value !== null && value !== void 0 ? value : '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["privateApis","useCallback","unlock","jsx","_jsx","ValidatedTextControl","Text","data","field","onChange","hideLabelFromVision","id","label","placeholder","description","value","getValue","item","onChangeControl","newValue","required","isValid","customValidator","custom","help","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/dataviews/src/dataform-controls/text.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedTextControl } = unlock( privateApis );\n\nexport default function Text< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, placeholder, description } = field;\n\tconst value = field.getValue( { item: data } );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\treturn (\n\t\t<ValidatedTextControl\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\tlabel={ label }\n\t\t\tplaceholder={ placeholder }\n\t\t\tvalue={ value ?? '' }\n\t\t\thelp={ description }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,uBAAuB;AACnD,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;;AAEA,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAM;EAAEC;AAAqB,CAAC,GAAGH,MAAM,CAAEF,WAAY,CAAC;AAEtD,eAAe,SAASM,IAAIA,CAAU;EACrCC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGN,KAAK;EACrD,MAAMO,KAAK,GAAGP,KAAK,CAACQ,QAAQ,CAAE;IAAEC,IAAI,EAAEV;EAAK,CAAE,CAAC;EAE9C,MAAMW,eAAe,GAAGjB,WAAW,CAChCkB,QAAgB,IACjBV,QAAQ,CAAE;IACT,CAAEE,EAAE,GAAIQ;EACT,CAAE,CAAC,EACJ,CAAER,EAAE,EAAEF,QAAQ,CACf,CAAC;EAED,oBACCL,IAAA,CAACC,oBAAoB;IACpBe,QAAQ,EAAG,CAAC,CAAEZ,KAAK,CAACa,OAAO,EAAED,QAAU;IACvCE,eAAe,EAAKH,QAAa,IAAM;MACtC,IAAKX,KAAK,CAACa,OAAO,EAAEE,MAAM,EAAG;QAC5B,OAAOf,KAAK,CAACa,OAAO,CAACE,MAAM,CAC1B;UACC,GAAGhB,IAAI;UACP,CAAEI,EAAE,GAAIQ;QACT,CAAC,EACDX,KACD,CAAC;MACF;MAEA,OAAO,IAAI;IACZ,CAAG;IACHI,KAAK,EAAGA,KAAO;IACfC,WAAW,EAAGA,WAAa;IAC3BE,KAAK,EAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAI;IACrBS,IAAI,EAAGV,WAAa;IACpBL,QAAQ,EAAGS,eAAiB;IAC5BO,qBAAqB;IACrBC,uBAAuB;IACvBhB,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -5,9 +5,11 @@ import clsx from 'clsx';
|
|
|
5
5
|
/**
|
|
6
6
|
* WordPress dependencies
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { __experimentalHStack as HStack, __experimentalVStack as VStack, Spinner, Flex, FlexItem, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
9
9
|
import { __, sprintf } from '@wordpress/i18n';
|
|
10
10
|
import { useInstanceId } from '@wordpress/compose';
|
|
11
|
+
import { isAppleOS } from '@wordpress/keycodes';
|
|
12
|
+
import { useContext } from '@wordpress/element';
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Internal dependencies
|
|
@@ -15,9 +17,9 @@ import { useInstanceId } from '@wordpress/compose';
|
|
|
15
17
|
import { unlock } from '../../lock-unlock';
|
|
16
18
|
import ItemActions from '../../components/dataviews-item-actions';
|
|
17
19
|
import DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';
|
|
20
|
+
import DataViewsContext from '../../components/dataviews-context';
|
|
18
21
|
import { useHasAPossibleBulkAction, useSomeItemHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';
|
|
19
22
|
import { ItemClickWrapper } from '../utils/item-click-wrapper';
|
|
20
|
-
import { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';
|
|
21
23
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
22
24
|
const {
|
|
23
25
|
Badge
|
|
@@ -37,7 +39,8 @@ function GridItem({
|
|
|
37
39
|
descriptionField,
|
|
38
40
|
regularFields,
|
|
39
41
|
badgeFields,
|
|
40
|
-
hasBulkActions
|
|
42
|
+
hasBulkActions,
|
|
43
|
+
config
|
|
41
44
|
}) {
|
|
42
45
|
const {
|
|
43
46
|
showTitle = true,
|
|
@@ -50,7 +53,8 @@ function GridItem({
|
|
|
50
53
|
const isSelected = selection.includes(id);
|
|
51
54
|
const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {
|
|
52
55
|
item: item,
|
|
53
|
-
field: mediaField
|
|
56
|
+
field: mediaField,
|
|
57
|
+
config: config
|
|
54
58
|
}) : null;
|
|
55
59
|
const renderedTitleField = showTitle && titleField?.render ? /*#__PURE__*/_jsx(titleField.render, {
|
|
56
60
|
item: item,
|
|
@@ -78,7 +82,7 @@ function GridItem({
|
|
|
78
82
|
'is-selected': hasBulkAction && isSelected
|
|
79
83
|
}),
|
|
80
84
|
onClickCapture: event => {
|
|
81
|
-
if (event.
|
|
85
|
+
if (isAppleOS() ? event.metaKey : event.ctrlKey) {
|
|
82
86
|
event.stopPropagation();
|
|
83
87
|
event.preventDefault();
|
|
84
88
|
if (!hasBulkAction) {
|
|
@@ -184,9 +188,13 @@ function ViewGrid({
|
|
|
184
188
|
renderItemLink,
|
|
185
189
|
selection,
|
|
186
190
|
view,
|
|
187
|
-
className
|
|
191
|
+
className,
|
|
192
|
+
empty
|
|
188
193
|
}) {
|
|
189
194
|
var _view$fields;
|
|
195
|
+
const {
|
|
196
|
+
resizeObserverRef
|
|
197
|
+
} = useContext(DataViewsContext);
|
|
190
198
|
const titleField = fields.find(field => field.id === view?.titleField);
|
|
191
199
|
const mediaField = fields.find(field => field.id === view?.mediaField);
|
|
192
200
|
const descriptionField = fields.find(field => field.id === view?.descriptionField);
|
|
@@ -209,12 +217,15 @@ function ViewGrid({
|
|
|
209
217
|
badgeFields: []
|
|
210
218
|
});
|
|
211
219
|
const hasData = !!data?.length;
|
|
212
|
-
const updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();
|
|
213
220
|
const hasBulkActions = useSomeItemHasAPossibleBulkAction(actions, data);
|
|
214
|
-
const usedPreviewSize =
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
221
|
+
const usedPreviewSize = view.layout?.previewSize;
|
|
222
|
+
/*
|
|
223
|
+
* This is the maximum width that an image can achieve in the grid. The reasoning is:
|
|
224
|
+
* The biggest min image width available is 430px (see /dataviews-layouts/grid/preview-size-picker.tsx).
|
|
225
|
+
* Because the grid is responsive, once there is room for another column, the images shrink to accommodate it.
|
|
226
|
+
* So each image will never grow past 2*430px plus a little more to account for the gaps.
|
|
227
|
+
*/
|
|
228
|
+
const size = '900px';
|
|
218
229
|
const groupField = view.groupByField ? fields.find(f => f.id === view.groupByField) : null;
|
|
219
230
|
|
|
220
231
|
// Group data by groupByField if specified
|
|
@@ -240,13 +251,13 @@ function ViewGrid({
|
|
|
240
251
|
children: sprintf(
|
|
241
252
|
// translators: 1: The label of the field e.g. "Date". 2: The value of the field, e.g.: "May 2022".
|
|
242
253
|
__('%1$s: %2$s'), groupField.label, groupName)
|
|
243
|
-
}), /*#__PURE__*/_jsx(
|
|
244
|
-
gap: 8,
|
|
245
|
-
columns: 2,
|
|
246
|
-
alignment: "top",
|
|
254
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
247
255
|
className: clsx('dataviews-view-grid', className),
|
|
248
|
-
style:
|
|
256
|
+
style: {
|
|
257
|
+
gridTemplateColumns: usedPreviewSize && `repeat(auto-fill, minmax(${usedPreviewSize}px, 1fr))`
|
|
258
|
+
},
|
|
249
259
|
"aria-busy": isLoading,
|
|
260
|
+
ref: resizeObserverRef,
|
|
250
261
|
children: groupItems.map(item => {
|
|
251
262
|
return /*#__PURE__*/_jsx(GridItem, {
|
|
252
263
|
view: view,
|
|
@@ -263,20 +274,23 @@ function ViewGrid({
|
|
|
263
274
|
descriptionField: descriptionField,
|
|
264
275
|
regularFields: regularFields,
|
|
265
276
|
badgeFields: badgeFields,
|
|
266
|
-
hasBulkActions: hasBulkActions
|
|
277
|
+
hasBulkActions: hasBulkActions,
|
|
278
|
+
config: {
|
|
279
|
+
sizes: size
|
|
280
|
+
}
|
|
267
281
|
}, getItemId(item));
|
|
268
282
|
})
|
|
269
283
|
})]
|
|
270
284
|
}, groupName))
|
|
271
285
|
}),
|
|
272
286
|
// Render a single grid with all data.
|
|
273
|
-
hasData && !dataByGroup && /*#__PURE__*/_jsx(
|
|
274
|
-
gap: 8,
|
|
275
|
-
columns: 2,
|
|
276
|
-
alignment: "top",
|
|
287
|
+
hasData && !dataByGroup && /*#__PURE__*/_jsx("div", {
|
|
277
288
|
className: clsx('dataviews-view-grid', className),
|
|
278
|
-
style:
|
|
289
|
+
style: {
|
|
290
|
+
gridTemplateColumns: usedPreviewSize && `repeat(auto-fill, minmax(${usedPreviewSize}px, 1fr))`
|
|
291
|
+
},
|
|
279
292
|
"aria-busy": isLoading,
|
|
293
|
+
ref: resizeObserverRef,
|
|
280
294
|
children: data.map(item => {
|
|
281
295
|
return /*#__PURE__*/_jsx(GridItem, {
|
|
282
296
|
view: view,
|
|
@@ -293,7 +307,10 @@ function ViewGrid({
|
|
|
293
307
|
descriptionField: descriptionField,
|
|
294
308
|
regularFields: regularFields,
|
|
295
309
|
badgeFields: badgeFields,
|
|
296
|
-
hasBulkActions: hasBulkActions
|
|
310
|
+
hasBulkActions: hasBulkActions,
|
|
311
|
+
config: {
|
|
312
|
+
sizes: size
|
|
313
|
+
}
|
|
297
314
|
}, getItemId(item));
|
|
298
315
|
})
|
|
299
316
|
}),
|
|
@@ -304,7 +321,7 @@ function ViewGrid({
|
|
|
304
321
|
'dataviews-no-results': !isLoading
|
|
305
322
|
}),
|
|
306
323
|
children: /*#__PURE__*/_jsx("p", {
|
|
307
|
-
children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) :
|
|
324
|
+
children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : empty
|
|
308
325
|
})
|
|
309
326
|
})]
|
|
310
327
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","privateApis","componentsPrivateApis","__","sprintf","useInstanceId","unlock","ItemActions","DataViewsSelectionCheckbox","useHasAPossibleBulkAction","useSomeItemHasAPossibleBulkAction","ItemClickWrapper","useUpdatedPreviewSizeOnViewportChange","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Badge","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","showTitle","showMedia","showDescription","hasBulkAction","id","instanceId","isSelected","includes","renderedMediaField","render","field","renderedTitleField","mediaA11yProps","titleA11yProps","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","disabled","justify","length","isCompact","wrap","alignment","map","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","_view$fields","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","updatedPreviewSize","usedPreviewSize","previewSize","gridStyle","gridTemplateColumns","groupField","groupByField","dataByGroup","groups","groupName","getValue","has","set","get","Map","Array","from","entries","groupItems","label","columns"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nimport { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } field={ mediaField } />\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-grid__media\"\n\t\t\t\t\t{ ...mediaA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-grid__title-field dataviews-title-field\"\n\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ descriptionField }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\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/>\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nfunction ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tselection,\n\tview,\n\tclassName,\n}: ViewGridProps< Item > ) {\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;\n\tconst gridStyle = usedPreviewSize\n\t\t? {\n\t\t\t\tgridTemplateColumns: `repeat(${ usedPreviewSize }, minmax(0, 1fr))`,\n\t\t }\n\t\t: {};\n\n\tconst groupField = view.groupByField\n\t\t? fields.find( ( f ) => f.id === view.groupByField )\n\t\t: null;\n\n\t// Group data by groupByField if specified\n\tconst dataByGroup = groupField\n\t\t? data.reduce( ( groups: Map< string, typeof data >, item ) => {\n\t\t\t\tconst groupName = groupField.getValue( { item } );\n\t\t\t\tif ( ! groups.has( groupName ) ) {\n\t\t\t\t\tgroups.set( groupName, [] );\n\t\t\t\t}\n\t\t\t\tgroups.get( groupName )?.push( item );\n\t\t\t\treturn groups;\n\t\t }, new Map< string, typeof data >() )\n\t\t: null;\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\t// Render multiple groups.\n\t\t\t\thasData && groupField && dataByGroup && (\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t{ Array.from( dataByGroup.entries() ).map(\n\t\t\t\t\t\t\t( [ groupName, groupItems ] ) => (\n\t\t\t\t\t\t\t\t<VStack key={ groupName } spacing={ 2 }>\n\t\t\t\t\t\t\t\t\t<h3 className=\"dataviews-view-grid__group-header\">\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: 1: The label of the field e.g. \"Date\". 2: The value of the field, e.g.: \"May 2022\".\n\t\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\t\tgroupField.label,\n\t\t\t\t\t\t\t\t\t\t\tgroupName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'dataviews-view-grid',\n\t\t\t\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ groupItems.map( ( item ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection\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\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable\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\trenderItemLink={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderItemLink\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\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField\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\tregularFields={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tregularFields\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\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions\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/>\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</Grid>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t{\n\t\t\t\t// Render a single grid with all data.\n\t\t\t\thasData && ! dataByGroup && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\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</Grid>\n\t\t\t\t)\n\t\t\t}\n\t\t\t{\n\t\t\t\t// Render empty state.\n\t\t\t\t! hasData && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ViewGrid;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","privateApis","componentsPrivateApis","__","sprintf","useInstanceId","isAppleOS","useContext","unlock","ItemActions","DataViewsSelectionCheckbox","DataViewsContext","useHasAPossibleBulkAction","useSomeItemHasAPossibleBulkAction","ItemClickWrapper","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Badge","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","config","showTitle","showMedia","showDescription","hasBulkAction","id","instanceId","isSelected","includes","renderedMediaField","render","field","renderedTitleField","mediaA11yProps","titleA11yProps","spacing","className","onClickCapture","event","metaKey","ctrlKey","stopPropagation","preventDefault","filter","itemId","children","disabled","justify","length","isCompact","wrap","alignment","map","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","empty","_view$fields","resizeObserverRef","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","usedPreviewSize","previewSize","size","groupField","groupByField","dataByGroup","groups","groupName","getValue","has","set","get","Map","Array","from","entries","groupItems","label","gridTemplateColumns","ref","sizes"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { isAppleOS } from '@wordpress/keycodes';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport DataViewsContext from '../../components/dataviews-context';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n\tconfig: {\n\t\tsizes: string;\n\t};\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n\tconfig,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render\n\t\t\titem={ item }\n\t\t\tfield={ mediaField }\n\t\t\tconfig={ config }\n\t\t/>\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( isAppleOS() ? event.metaKey : event.ctrlKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-grid__media\"\n\t\t\t\t\t{ ...mediaA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-grid__title-field dataviews-title-field\"\n\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ descriptionField }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\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/>\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nfunction ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tselection,\n\tview,\n\tclassName,\n\tempty,\n}: ViewGridProps< Item > ) {\n\tconst { resizeObserverRef } = useContext( DataViewsContext );\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = view.layout?.previewSize;\n\t/*\n\t * This is the maximum width that an image can achieve in the grid. The reasoning is:\n\t * The biggest min image width available is 430px (see /dataviews-layouts/grid/preview-size-picker.tsx).\n\t * Because the grid is responsive, once there is room for another column, the images shrink to accommodate it.\n\t * So each image will never grow past 2*430px plus a little more to account for the gaps.\n\t */\n\tconst size = '900px';\n\n\tconst groupField = view.groupByField\n\t\t? fields.find( ( f ) => f.id === view.groupByField )\n\t\t: null;\n\n\t// Group data by groupByField if specified\n\tconst dataByGroup = groupField\n\t\t? data.reduce( ( groups: Map< string, typeof data >, item ) => {\n\t\t\t\tconst groupName = groupField.getValue( { item } );\n\t\t\t\tif ( ! groups.has( groupName ) ) {\n\t\t\t\t\tgroups.set( groupName, [] );\n\t\t\t\t}\n\t\t\t\tgroups.get( groupName )?.push( item );\n\t\t\t\treturn groups;\n\t\t }, new Map< string, typeof data >() )\n\t\t: null;\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\t// Render multiple groups.\n\t\t\t\thasData && groupField && dataByGroup && (\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t{ Array.from( dataByGroup.entries() ).map(\n\t\t\t\t\t\t\t( [ groupName, groupItems ] ) => (\n\t\t\t\t\t\t\t\t<VStack key={ groupName } spacing={ 2 }>\n\t\t\t\t\t\t\t\t\t<h3 className=\"dataviews-view-grid__group-header\">\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: 1: The label of the field e.g. \"Date\". 2: The value of the field, e.g.: \"May 2022\".\n\t\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\t\tgroupField.label,\n\t\t\t\t\t\t\t\t\t\t\tgroupName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'dataviews-view-grid',\n\t\t\t\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\n\t\t\t\t\t\t\t\t\t\t\t\tusedPreviewSize &&\n\t\t\t\t\t\t\t\t\t\t\t\t`repeat(auto-fill, minmax(${ usedPreviewSize }px, 1fr))`,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\t\t\t\t\tref={ resizeObserverRef }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ groupItems.map( ( item ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection\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\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable\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\trenderItemLink={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderItemLink\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\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField\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\tregularFields={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tregularFields\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\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions\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\tconfig={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsizes: size,\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/>\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</div>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t{\n\t\t\t\t// Render a single grid with all data.\n\t\t\t\thasData && ! dataByGroup && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tgridTemplateColumns:\n\t\t\t\t\t\t\t\tusedPreviewSize &&\n\t\t\t\t\t\t\t\t`repeat(auto-fill, minmax(${ usedPreviewSize }px, 1fr))`,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\tref={ resizeObserverRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\t\tconfig={ {\n\t\t\t\t\t\t\t\t\t\tsizes: size,\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\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t\t{\n\t\t\t\t// Render empty state.\n\t\t\t\t! hasData && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>{ isLoading ? <Spinner /> : empty }</p>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ViewGrid;\n"],"mappings":"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","ignoreList":[]}
|