@wordpress/dataviews 8.0.1-next.e256d081a.0 → 9.0.1-next.6870dfe5b.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 +24 -1
- package/README.md +96 -1
- package/build/components/dataform-context/index.js +1 -0
- package/build/components/dataform-context/index.js.map +1 -1
- package/build/components/dataviews/index.js +11 -1
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +1 -0
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +2 -1
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-picker/footer.js +145 -0
- package/build/components/dataviews-picker/footer.js.map +1 -0
- package/build/components/dataviews-picker/index.js +201 -0
- package/build/components/dataviews-picker/index.js.map +1 -0
- package/build/components/dataviews-selection-checkbox/index.js +4 -2
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +1 -0
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/constants.js +4 -1
- package/build/constants.js.map +1 -1
- package/build/dataform-controls/checkbox.js +23 -2
- package/build/dataform-controls/checkbox.js.map +1 -1
- package/build/dataform-controls/color.js +128 -0
- package/build/dataform-controls/color.js.map +1 -0
- package/build/dataform-controls/email.js +10 -45
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +8 -2
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/telephone.js +34 -0
- package/build/dataform-controls/telephone.js.map +1 -0
- package/build/dataform-controls/text.js +7 -48
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/{boolean.js → toggle.js} +6 -4
- package/build/dataform-controls/toggle.js.map +1 -0
- package/build/dataform-controls/url.js +34 -0
- package/build/dataform-controls/url.js.map +1 -0
- package/build/dataform-controls/utils/validated-text.js +76 -0
- package/build/dataform-controls/utils/validated-text.js.map +1 -0
- package/build/dataforms-layouts/card/index.js +6 -7
- package/build/dataforms-layouts/card/index.js.map +1 -1
- package/build/dataforms-layouts/data-form-layout.js +16 -4
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +31 -1
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/row/index.js +113 -0
- package/build/dataforms-layouts/row/index.js.map +1 -0
- package/build/dataviews-layouts/grid/index.js +16 -11
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/index.js +9 -1
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/picker-grid/index.js +357 -0
- package/build/dataviews-layouts/picker-grid/index.js.map +1 -0
- package/build/dataviews-layouts/utils/grid-items.js +37 -0
- package/build/dataviews-layouts/utils/grid-items.js.map +1 -0
- package/build/dataviews-layouts/utils/preview-size-picker.js +81 -0
- package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
- package/build/field-types/boolean.js +1 -1
- package/build/field-types/boolean.js.map +1 -1
- package/build/field-types/color.js +113 -0
- package/build/field-types/color.js.map +1 -0
- package/build/field-types/index.js +12 -0
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/telephone.js +57 -0
- package/build/field-types/telephone.js.map +1 -0
- package/build/field-types/url.js +57 -0
- package/build/field-types/url.js.map +1 -0
- package/build/normalize-form-fields.js +6 -0
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +1 -1
- package/build/validation.js.map +1 -1
- package/build-module/components/dataform-context/index.js +1 -0
- package/build-module/components/dataform-context/index.js.map +1 -1
- package/build-module/components/dataviews/index.js +11 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +1 -0
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +2 -1
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-picker/footer.js +136 -0
- package/build-module/components/dataviews-picker/footer.js.map +1 -0
- package/build-module/components/dataviews-picker/index.js +191 -0
- package/build-module/components/dataviews-picker/index.js.map +1 -0
- package/build-module/components/dataviews-selection-checkbox/index.js +4 -2
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +1 -0
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/constants.js +3 -0
- package/build-module/constants.js.map +1 -1
- package/build-module/dataform-controls/checkbox.js +25 -3
- package/build-module/dataform-controls/checkbox.js.map +1 -1
- package/build-module/dataform-controls/color.js +122 -0
- package/build-module/dataform-controls/color.js.map +1 -0
- package/build-module/dataform-controls/email.js +9 -45
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +8 -2
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/telephone.js +27 -0
- package/build-module/dataform-controls/telephone.js.map +1 -0
- package/build-module/dataform-controls/text.js +6 -48
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/{boolean.js → toggle.js} +5 -3
- package/build-module/dataform-controls/toggle.js.map +1 -0
- package/build-module/dataform-controls/url.js +27 -0
- package/build-module/dataform-controls/url.js.map +1 -0
- package/build-module/dataform-controls/utils/validated-text.js +70 -0
- package/build-module/dataform-controls/utils/validated-text.js.map +1 -0
- package/build-module/dataforms-layouts/card/index.js +6 -7
- package/build-module/dataforms-layouts/card/index.js.map +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js +14 -4
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +32 -1
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/row/index.js +106 -0
- package/build-module/dataforms-layouts/row/index.js.map +1 -0
- package/build-module/dataviews-layouts/grid/index.js +16 -11
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/index.js +10 -2
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/picker-grid/index.js +348 -0
- package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -0
- package/build-module/dataviews-layouts/utils/grid-items.js +29 -0
- package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -0
- package/build-module/dataviews-layouts/utils/preview-size-picker.js +73 -0
- package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
- package/build-module/field-types/boolean.js +1 -1
- package/build-module/field-types/boolean.js.map +1 -1
- package/build-module/field-types/color.js +107 -0
- package/build-module/field-types/color.js.map +1 -0
- package/build-module/field-types/index.js +12 -0
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/telephone.js +51 -0
- package/build-module/field-types/telephone.js.map +1 -0
- package/build-module/field-types/url.js +51 -0
- package/build-module/field-types/url.js.map +1 -0
- package/build-module/normalize-form-fields.js +6 -0
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +1 -1
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +252 -12
- package/build-style/style.css +252 -12
- package/build-types/components/dataform/stories/index.story.d.ts +19 -4
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataform-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +1 -1
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +1 -0
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-picker/footer.d.ts +4 -0
- package/build-types/components/dataviews-picker/footer.d.ts.map +1 -0
- package/build-types/components/dataviews-picker/index.d.ts +55 -0
- package/build-types/components/dataviews-picker/index.d.ts.map +1 -0
- package/build-types/components/dataviews-picker/stories/index.story.d.ts +42 -0
- package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +1 -0
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -1
- package/build-types/components/dataviews-selection-checkbox/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 +1 -0
- package/build-types/constants.d.ts.map +1 -1
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
- package/build-types/dataform-controls/color.d.ts +6 -0
- package/build-types/dataform-controls/color.d.ts.map +1 -0
- 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/telephone.d.ts +6 -0
- package/build-types/dataform-controls/telephone.d.ts.map +1 -0
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle.d.ts +6 -0
- package/build-types/dataform-controls/toggle.d.ts.map +1 -0
- package/build-types/dataform-controls/url.d.ts +6 -0
- package/build-types/dataform-controls/url.d.ts.map +1 -0
- package/build-types/dataform-controls/utils/validated-text.d.ts +16 -0
- package/build-types/dataform-controls/utils/validated-text.d.ts.map +1 -0
- package/build-types/dataforms-layouts/card/index.d.ts +0 -3
- package/build-types/dataforms-layouts/card/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts +4 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -1
- package/build-types/dataforms-layouts/index.d.ts +10 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/row/index.d.ts +6 -0
- package/build-types/dataforms-layouts/row/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +12 -1
- package/build-types/dataviews-layouts/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/picker-grid/index.d.ts +4 -0
- package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/utils/grid-items.d.ts +5 -0
- package/build-types/dataviews-layouts/utils/grid-items.d.ts.map +1 -0
- package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts +2 -0
- package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts.map +1 -0
- package/build-types/field-types/color.d.ts +20 -0
- package/build-types/field-types/color.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/stories/index.story.d.ts +81 -0
- package/build-types/field-types/stories/index.story.d.ts.map +1 -0
- package/build-types/field-types/telephone.d.ts +20 -0
- package/build-types/field-types/telephone.d.ts.map +1 -0
- package/build-types/field-types/url.d.ts +20 -0
- package/build-types/field-types/url.d.ts.map +1 -0
- package/build-types/normalize-form-fields.d.ts.map +1 -1
- package/build-types/test/dataviews-picker.d.ts +2 -0
- package/build-types/test/dataviews-picker.d.ts.map +1 -0
- package/build-types/types.d.ts +36 -5
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/build-wp/index.js +5061 -4013
- package/package.json +16 -15
- package/src/components/dataform/stories/index.story.tsx +333 -11
- package/src/components/dataform-context/index.tsx +1 -0
- package/src/components/dataviews/index.tsx +25 -1
- package/src/components/dataviews/stories/fixtures.tsx +1 -1
- package/src/components/dataviews/stories/index.story.tsx +14 -0
- package/src/components/dataviews/style.scss +4 -2
- package/src/components/dataviews-context/index.ts +3 -0
- package/src/components/dataviews-layout/index.tsx +4 -2
- package/src/components/dataviews-picker/footer.tsx +207 -0
- package/src/components/dataviews-picker/index.tsx +284 -0
- package/src/components/dataviews-picker/stories/index.story.tsx +251 -0
- package/src/components/dataviews-picker/style.scss +10 -0
- package/src/components/dataviews-selection-checkbox/index.tsx +3 -0
- package/src/components/dataviews-view-config/index.tsx +1 -0
- package/src/constants.ts +3 -0
- package/src/dataform-controls/checkbox.tsx +33 -3
- package/src/dataform-controls/color.tsx +139 -0
- package/src/dataform-controls/email.tsx +10 -52
- package/src/dataform-controls/index.tsx +8 -2
- package/src/dataform-controls/telephone.tsx +30 -0
- package/src/dataform-controls/text.tsx +2 -57
- package/src/dataform-controls/{boolean.tsx → toggle.tsx} +3 -2
- package/src/dataform-controls/url.tsx +30 -0
- package/src/dataform-controls/utils/validated-text.tsx +96 -0
- package/src/dataforms-layouts/card/index.tsx +5 -4
- package/src/dataforms-layouts/card/style.scss +7 -0
- package/src/dataforms-layouts/data-form-layout.tsx +15 -3
- package/src/dataforms-layouts/index.tsx +35 -0
- package/src/dataforms-layouts/row/index.tsx +115 -0
- package/src/dataforms-layouts/row/style.scss +3 -0
- package/src/dataviews-layouts/grid/index.tsx +38 -33
- package/src/dataviews-layouts/grid/style.scss +42 -20
- package/src/dataviews-layouts/index.ts +16 -2
- package/src/dataviews-layouts/picker-grid/index.tsx +490 -0
- package/src/dataviews-layouts/picker-grid/style.scss +171 -0
- package/src/dataviews-layouts/utils/grid-items.scss +21 -0
- package/src/dataviews-layouts/utils/grid-items.tsx +35 -0
- package/src/dataviews-layouts/utils/preview-size-picker.tsx +87 -0
- package/src/field-types/boolean.tsx +1 -1
- package/src/field-types/color.tsx +115 -0
- package/src/field-types/index.tsx +15 -0
- package/src/field-types/stories/index.story.tsx +719 -0
- package/src/field-types/telephone.tsx +71 -0
- package/src/field-types/url.tsx +71 -0
- package/src/normalize-form-fields.ts +6 -0
- package/src/style.scss +4 -0
- package/src/test/dataform.tsx +2 -2
- package/src/test/dataviews-picker.tsx +478 -0
- package/src/test/dataviews.tsx +86 -0
- package/src/types.ts +56 -4
- package/src/validation.ts +3 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dataform-controls/boolean.js.map +0 -1
- package/build-module/dataform-controls/boolean.js.map +0 -1
- package/build-types/components/stories/index.story.d.ts +0 -63
- package/build-types/components/stories/index.story.d.ts.map +0 -1
- package/build-types/dataform-controls/boolean.d.ts +0 -6
- package/build-types/dataform-controls/boolean.d.ts.map +0 -1
- package/src/components/stories/index.story.tsx +0 -372
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ValidatedText;
|
|
7
|
+
var _components = require("@wordpress/components");
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* WordPress dependencies
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Internal dependencies
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
ValidatedInputControl
|
|
21
|
+
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
22
|
+
function ValidatedText({
|
|
23
|
+
data,
|
|
24
|
+
field,
|
|
25
|
+
onChange,
|
|
26
|
+
hideLabelFromVision,
|
|
27
|
+
type,
|
|
28
|
+
icon
|
|
29
|
+
}) {
|
|
30
|
+
const {
|
|
31
|
+
id,
|
|
32
|
+
label,
|
|
33
|
+
placeholder,
|
|
34
|
+
description
|
|
35
|
+
} = field;
|
|
36
|
+
const value = field.getValue({
|
|
37
|
+
item: data
|
|
38
|
+
});
|
|
39
|
+
const [customValidity, setCustomValidity] = (0, _element.useState)(undefined);
|
|
40
|
+
const onChangeControl = (0, _element.useCallback)(newValue => onChange({
|
|
41
|
+
[id]: newValue
|
|
42
|
+
}), [id, onChange]);
|
|
43
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ValidatedInputControl, {
|
|
44
|
+
required: !!field.isValid?.required,
|
|
45
|
+
onValidate: newValue => {
|
|
46
|
+
const message = field.isValid?.custom?.({
|
|
47
|
+
...data,
|
|
48
|
+
[id]: newValue
|
|
49
|
+
}, field);
|
|
50
|
+
if (message) {
|
|
51
|
+
setCustomValidity({
|
|
52
|
+
type: 'invalid',
|
|
53
|
+
message
|
|
54
|
+
});
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
setCustomValidity(undefined);
|
|
58
|
+
},
|
|
59
|
+
customValidity: customValidity,
|
|
60
|
+
label: label,
|
|
61
|
+
placeholder: placeholder,
|
|
62
|
+
value: value !== null && value !== void 0 ? value : '',
|
|
63
|
+
help: description,
|
|
64
|
+
onChange: onChangeControl,
|
|
65
|
+
hideLabelFromVision: hideLabelFromVision,
|
|
66
|
+
type: type,
|
|
67
|
+
prefix: icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControlPrefixWrapper, {
|
|
68
|
+
variant: "icon",
|
|
69
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
|
|
70
|
+
icon: icon
|
|
71
|
+
})
|
|
72
|
+
}) : undefined,
|
|
73
|
+
__next40pxDefaultSize: true
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=validated-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_lockUnlock","_jsxRuntime","ValidatedInputControl","unlock","privateApis","ValidatedText","data","field","onChange","hideLabelFromVision","type","icon","id","label","placeholder","description","value","getValue","item","customValidity","setCustomValidity","useState","undefined","onChangeControl","useCallback","newValue","jsx","required","isValid","onValidate","message","custom","help","prefix","__experimentalInputControlPrefixWrapper","variant","children","Icon","__next40pxDefaultSize"],"sources":["@wordpress/dataviews/src/dataform-controls/utils/validated-text.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tprivateApis,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n} from '@wordpress/components';\nimport { useCallback, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../../types';\nimport { unlock } from '../../lock-unlock';\n\nconst { ValidatedInputControl } = unlock( privateApis );\n\nexport type DataFormValidatedTextControlProps< Item > =\n\tDataFormControlProps< Item > & {\n\t\t/**\n\t\t * The input type of the control.\n\t\t */\n\t\ttype?: 'text' | 'email' | 'tel' | 'url';\n\t\t/**\n\t\t * Optional icon to display as prefix.\n\t\t */\n\t\ticon?: React.ComponentType | React.ReactElement;\n\t};\n\nexport default function ValidatedText< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\ttype,\n\ticon,\n}: DataFormValidatedTextControlProps< Item > ) {\n\tconst { id, label, placeholder, description } = field;\n\tconst value = field.getValue( { item: data } );\n\tconst [ customValidity, setCustomValidity ] =\n\t\tuseState<\n\t\t\tReact.ComponentProps<\n\t\t\t\ttypeof ValidatedInputControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\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<ValidatedInputControl\n\t\t\trequired={ !! field.isValid?.required }\n\t\t\tonValidate={ ( newValue: any ) => {\n\t\t\t\tconst message = field.isValid?.custom?.(\n\t\t\t\t\t{\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t[ id ]: newValue,\n\t\t\t\t\t},\n\t\t\t\t\tfield\n\t\t\t\t);\n\n\t\t\t\tif ( message ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetCustomValidity( undefined );\n\t\t\t} }\n\t\t\tcustomValidity={ customValidity }\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\thideLabelFromVision={ hideLabelFromVision }\n\t\t\ttype={ type }\n\t\t\tprefix={\n\t\t\t\ticon ? (\n\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\t__next40pxDefaultSize\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAMA,IAAAE,WAAA,GAAAF,OAAA;AAA2C,IAAAG,WAAA,GAAAH,OAAA;AAd3C;AACA;AACA;;AAQA;AACA;AACA;;AAIA,MAAM;EAAEI;AAAsB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAY,CAAC;AAcxC,SAASC,aAAaA,CAAU;EAC9CC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC,mBAAmB;EACnBC,IAAI;EACJC;AAC0C,CAAC,EAAG;EAC9C,MAAM;IAAEC,EAAE;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGR,KAAK;EACrD,MAAMS,KAAK,GAAGT,KAAK,CAACU,QAAQ,CAAE;IAAEC,IAAI,EAAEZ;EAAK,CAAE,CAAC;EAC9C,MAAM,CAAEa,cAAc,EAAEC,iBAAiB,CAAE,GAC1C,IAAAC,iBAAQ,EAILC,SAAU,CAAC;EAEf,MAAMC,eAAe,GAAG,IAAAC,oBAAW,EAChCC,QAAgB,IACjBjB,QAAQ,CAAE;IACT,CAAEI,EAAE,GAAIa;EACT,CAAE,CAAC,EACJ,CAAEb,EAAE,EAAEJ,QAAQ,CACf,CAAC;EAED,oBACC,IAAAP,WAAA,CAAAyB,GAAA,EAACxB,qBAAqB;IACrByB,QAAQ,EAAG,CAAC,CAAEpB,KAAK,CAACqB,OAAO,EAAED,QAAU;IACvCE,UAAU,EAAKJ,QAAa,IAAM;MACjC,MAAMK,OAAO,GAAGvB,KAAK,CAACqB,OAAO,EAAEG,MAAM,GACpC;QACC,GAAGzB,IAAI;QACP,CAAEM,EAAE,GAAIa;MACT,CAAC,EACDlB,KACD,CAAC;MAED,IAAKuB,OAAO,EAAG;QACdV,iBAAiB,CAAE;UAClBV,IAAI,EAAE,SAAS;UACfoB;QACD,CAAE,CAAC;QACH;MACD;MAEAV,iBAAiB,CAAEE,SAAU,CAAC;IAC/B,CAAG;IACHH,cAAc,EAAGA,cAAgB;IACjCN,KAAK,EAAGA,KAAO;IACfC,WAAW,EAAGA,WAAa;IAC3BE,KAAK,EAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAI;IACrBgB,IAAI,EAAGjB,WAAa;IACpBP,QAAQ,EAAGe,eAAiB;IAC5Bd,mBAAmB,EAAGA,mBAAqB;IAC3CC,IAAI,EAAGA,IAAM;IACbuB,MAAM,EACLtB,IAAI,gBACH,IAAAV,WAAA,CAAAyB,GAAA,EAAC7B,WAAA,CAAAqC,uCAAyB;MAACC,OAAO,EAAC,MAAM;MAAAC,QAAA,eACxC,IAAAnC,WAAA,CAAAyB,GAAA,EAAC7B,WAAA,CAAAwC,IAAI;QAAC1B,IAAI,EAAGA;MAAM,CAAE;IAAC,CACI,CAAC,GACzBW,SACJ;IACDgB,qBAAqB;EAAA,CACrB,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -15,10 +15,6 @@ var _dataFormLayout = require("../data-form-layout");
|
|
|
15
15
|
var _isCombinedField = require("../is-combined-field");
|
|
16
16
|
var _normalizeFormFields = require("../../normalize-form-fields");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
/**
|
|
19
|
-
* External dependencies
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
18
|
/**
|
|
23
19
|
* WordPress dependencies
|
|
24
20
|
*/
|
|
@@ -95,13 +91,16 @@ function FormCardField({
|
|
|
95
91
|
/*#__PURE__*/
|
|
96
92
|
// If it doesn't have a header, keep it open.
|
|
97
93
|
// Otherwise, the card will not be visible.
|
|
98
|
-
(0, _jsxRuntime.
|
|
94
|
+
(0, _jsxRuntime.jsxs)(_components.CardBody, {
|
|
99
95
|
className: "dataforms-layouts-card__field-control",
|
|
100
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
96
|
+
children: [field.description && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
97
|
+
className: "dataforms-layouts-card__field-description",
|
|
98
|
+
children: field.description
|
|
99
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataFormLayout.DataFormLayout, {
|
|
101
100
|
data: data,
|
|
102
101
|
form: form,
|
|
103
102
|
onChange: onChange
|
|
104
|
-
})
|
|
103
|
+
})]
|
|
105
104
|
})]
|
|
106
105
|
});
|
|
107
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_icons","_","_dataformContext","_interopRequireDefault","_dataFormLayout","_isCombinedField","_normalizeFormFields","_jsxRuntime","useCollapsibleCard","initialIsOpen","isOpen","setIsOpen","useState","toggle","useCallback","prev","CollapsibleCardHeader","children","props","jsxs","CardHeader","onClick","style","cursor","jsx","width","display","justifyContent","alignItems","Button","__next40pxDefaultSize","variant","icon","chevronUp","chevronDown","FormCardField","data","field","onChange","hideLabelFromVision","fields","useContext","DataFormContext","layout","normalizeLayout","type","form","useMemo","DEFAULT_LAYOUT","isCombinedField","isOpened","withHeader","label","Card","className","CardBody","DataFormLayout","fieldDefinition","find","fieldDef","id","Edit","RegularLayout","getFormFieldLayout","component"],"sources":["@wordpress/dataviews/src/dataforms-layouts/card/index.tsx"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_icons","_","_dataformContext","_interopRequireDefault","_dataFormLayout","_isCombinedField","_normalizeFormFields","_jsxRuntime","useCollapsibleCard","initialIsOpen","isOpen","setIsOpen","useState","toggle","useCallback","prev","CollapsibleCardHeader","children","props","jsxs","CardHeader","onClick","style","cursor","jsx","width","display","justifyContent","alignItems","Button","__next40pxDefaultSize","variant","icon","chevronUp","chevronDown","FormCardField","data","field","onChange","hideLabelFromVision","fields","useContext","DataFormContext","layout","normalizeLayout","type","form","useMemo","DEFAULT_LAYOUT","isCombinedField","isOpened","withHeader","label","Card","className","CardBody","description","DataFormLayout","fieldDefinition","find","fieldDef","id","Edit","RegularLayout","getFormFieldLayout","component"],"sources":["@wordpress/dataviews/src/dataforms-layouts/card/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Card, CardBody, CardHeader } from '@wordpress/components';\nimport { useCallback, useContext, useMemo, useState } from '@wordpress/element';\nimport { chevronDown, chevronUp } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getFormFieldLayout } from '..';\nimport DataFormContext from '../../components/dataform-context';\nimport type { NormalizedCardLayout, FieldLayoutProps, Form } from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT, normalizeLayout } from '../../normalize-form-fields';\n\nexport function useCollapsibleCard( initialIsOpen: boolean = true ) {\n\tconst [ isOpen, setIsOpen ] = useState( initialIsOpen );\n\n\tconst toggle = useCallback( () => {\n\t\tsetIsOpen( ( prev ) => ! prev );\n\t}, [] );\n\n\tconst CollapsibleCardHeader = useCallback(\n\t\t( {\n\t\t\tchildren,\n\t\t\t...props\n\t\t}: {\n\t\t\tchildren: React.ReactNode;\n\t\t\t[ key: string ]: any;\n\t\t} ) => (\n\t\t\t<CardHeader\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={ toggle }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t...props.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</div>\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\ticon={ isOpen ? chevronUp : chevronDown }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-label={ isOpen ? 'Collapse' : 'Expand' }\n\t\t\t\t/>\n\t\t\t</CardHeader>\n\t\t),\n\t\t[ toggle, isOpen ]\n\t);\n\n\treturn { isOpen, CollapsibleCardHeader };\n}\n\nexport default function FormCardField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\n\tconst layout: NormalizedCardLayout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'card',\n\t} ) as NormalizedCardLayout;\n\n\tconst form: Form = useMemo(\n\t\t(): Form => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: isCombinedField( field ) ? field.children : [],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\tconst { isOpen, CollapsibleCardHeader } = useCollapsibleCard(\n\t\tlayout.isOpened\n\t);\n\tif ( isCombinedField( field ) ) {\n\t\tconst withHeader = !! field.label && layout.withHeader;\n\t\treturn (\n\t\t\t<Card className=\"dataforms-layouts-card__field\">\n\t\t\t\t{ withHeader && (\n\t\t\t\t\t<CollapsibleCardHeader className=\"dataforms-layouts-card__field-label\">\n\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t</CollapsibleCardHeader>\n\t\t\t\t) }\n\t\t\t\t{ ( isOpen || ! withHeader ) && (\n\t\t\t\t\t// If it doesn't have a header, keep it open.\n\t\t\t\t\t// Otherwise, the card will not be visible.\n\t\t\t\t\t<CardBody className=\"dataforms-layouts-card__field-control\">\n\t\t\t\t\t\t{ field.description && (\n\t\t\t\t\t\t\t<div className=\"dataforms-layouts-card__field-description\">\n\t\t\t\t\t\t\t\t{ field.description }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</CardBody>\n\t\t\t\t) }\n\t\t\t</Card>\n\t\t);\n\t}\n\n\tconst fieldDefinition = fields.find(\n\t\t( fieldDef ) => fieldDef.id === field.id\n\t);\n\n\tif ( ! fieldDefinition || ! fieldDefinition.Edit ) {\n\t\treturn null;\n\t}\n\n\tconst RegularLayout = getFormFieldLayout( 'regular' )?.component;\n\tif ( ! RegularLayout ) {\n\t\treturn null;\n\t}\n\tconst withHeader = !! fieldDefinition.label && layout.withHeader;\n\treturn (\n\t\t<Card className=\"dataforms-layouts-card__field\">\n\t\t\t{ withHeader && (\n\t\t\t\t<CollapsibleCardHeader className=\"dataforms-layouts-card__field-label\">\n\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t</CollapsibleCardHeader>\n\t\t\t) }\n\t\t\t{ ( isOpen || ! withHeader ) && (\n\t\t\t\t// If it doesn't have a header, keep it open.\n\t\t\t\t// Otherwise, the card will not be visible.\n\t\t\t\t<CardBody className=\"dataforms-layouts-card__field-control\">\n\t\t\t\t\t<RegularLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\thideLabelFromVision || withHeader\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</CardBody>\n\t\t\t) }\n\t\t</Card>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,8 +10,10 @@ var _element = require("@wordpress/element");
|
|
|
10
10
|
var _index = require("./index");
|
|
11
11
|
var _dataformContext = _interopRequireDefault(require("../components/dataform-context"));
|
|
12
12
|
var _isCombinedField = require("./is-combined-field");
|
|
13
|
-
var _normalizeFormFields =
|
|
13
|
+
var _normalizeFormFields = _interopRequireWildcard(require("../normalize-form-fields"));
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
17
|
/**
|
|
16
18
|
* WordPress dependencies
|
|
17
19
|
*/
|
|
@@ -20,12 +22,20 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
20
22
|
* Internal dependencies
|
|
21
23
|
*/
|
|
22
24
|
|
|
25
|
+
const DEFAULT_WRAPPER = ({
|
|
26
|
+
children
|
|
27
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
28
|
+
spacing: 4,
|
|
29
|
+
children: children
|
|
30
|
+
});
|
|
23
31
|
function DataFormLayout({
|
|
24
32
|
data,
|
|
25
33
|
form,
|
|
26
34
|
onChange,
|
|
27
|
-
children
|
|
35
|
+
children,
|
|
36
|
+
as
|
|
28
37
|
}) {
|
|
38
|
+
var _ref;
|
|
29
39
|
const {
|
|
30
40
|
fields: fieldDefinitions
|
|
31
41
|
} = (0, _element.useContext)(_dataformContext.default);
|
|
@@ -34,8 +44,10 @@ function DataFormLayout({
|
|
|
34
44
|
return fieldDefinitions.find(fieldDefinition => fieldDefinition.id === fieldId);
|
|
35
45
|
}
|
|
36
46
|
const normalizedFormFields = (0, _element.useMemo)(() => (0, _normalizeFormFields.default)(form), [form]);
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
const normalizedFormLayout = (0, _normalizeFormFields.normalizeLayout)(form.layout);
|
|
48
|
+
const Wrapper = (_ref = as !== null && as !== void 0 ? as : (0, _index.getFormFieldLayout)(normalizedFormLayout.type)?.wrapper) !== null && _ref !== void 0 ? _ref : DEFAULT_WRAPPER;
|
|
49
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
|
|
50
|
+
layout: normalizedFormLayout,
|
|
39
51
|
children: normalizedFormFields.map(formField => {
|
|
40
52
|
const FieldLayout = (0, _index.getFormFieldLayout)(formField.layout.type)?.component;
|
|
41
53
|
if (!FieldLayout) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_index","_dataformContext","_interopRequireDefault","_isCombinedField","_normalizeFormFields","_jsxRuntime","DataFormLayout","data","form","onChange","
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_index","_dataformContext","_interopRequireDefault","_isCombinedField","_normalizeFormFields","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DEFAULT_WRAPPER","children","jsx","__experimentalVStack","spacing","DataFormLayout","data","form","onChange","as","_ref","fields","fieldDefinitions","useContext","DataFormContext","getFieldDefinition","field","fieldId","id","find","fieldDefinition","normalizedFormFields","useMemo","normalizeFormFields","normalizedFormLayout","normalizeLayout","layout","Wrapper","getFormFieldLayout","type","wrapper","map","formField","FieldLayout","component","isCombinedField","undefined","isVisible"],"sources":["@wordpress/dataviews/src/dataforms-layouts/data-form-layout.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { Form, FormField, SimpleFormField } from '../types';\nimport { getFormFieldLayout } from './index';\nimport DataFormContext from '../components/dataform-context';\nimport { isCombinedField } from './is-combined-field';\nimport normalizeFormFields, { normalizeLayout } from '../normalize-form-fields';\n\nconst DEFAULT_WRAPPER = ( { children }: { children: React.ReactNode } ) => (\n\t<VStack spacing={ 4 }>{ children }</VStack>\n);\n\nexport function DataFormLayout< Item >( {\n\tdata,\n\tform,\n\tonChange,\n\tchildren,\n\tas,\n}: {\n\tdata: Item;\n\tform: Form;\n\tonChange: ( value: any ) => void;\n\tchildren?: (\n\t\tFieldLayout: ( props: {\n\t\t\tdata: Item;\n\t\t\tfield: FormField;\n\t\t\tonChange: ( value: any ) => void;\n\t\t\thideLabelFromVision?: boolean;\n\t\t} ) => React.JSX.Element | null,\n\t\tfield: FormField\n\t) => React.JSX.Element;\n\tas?: React.ComponentType< { children: React.ReactNode } >;\n} ) {\n\tconst { fields: fieldDefinitions } = useContext( DataFormContext );\n\n\tfunction getFieldDefinition( field: SimpleFormField | string ) {\n\t\tconst fieldId = typeof field === 'string' ? field : field.id;\n\n\t\treturn fieldDefinitions.find(\n\t\t\t( fieldDefinition ) => fieldDefinition.id === fieldId\n\t\t);\n\t}\n\n\tconst normalizedFormFields = useMemo(\n\t\t() => normalizeFormFields( form ),\n\t\t[ form ]\n\t);\n\n\tconst normalizedFormLayout = normalizeLayout( form.layout );\n\tconst Wrapper =\n\t\tas ??\n\t\tgetFormFieldLayout( normalizedFormLayout.type )?.wrapper ??\n\t\tDEFAULT_WRAPPER;\n\n\treturn (\n\t\t<Wrapper layout={ normalizedFormLayout }>\n\t\t\t{ normalizedFormFields.map( ( formField ) => {\n\t\t\t\tconst FieldLayout = getFormFieldLayout( formField.layout.type )\n\t\t\t\t\t?.component;\n\n\t\t\t\tif ( ! FieldLayout ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst fieldDefinition = ! isCombinedField( formField )\n\t\t\t\t\t? getFieldDefinition( formField )\n\t\t\t\t\t: undefined;\n\n\t\t\t\tif (\n\t\t\t\t\tfieldDefinition &&\n\t\t\t\t\tfieldDefinition.isVisible &&\n\t\t\t\t\t! fieldDefinition.isVisible( data )\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif ( children ) {\n\t\t\t\t\treturn children( FieldLayout, formField );\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\tkey={ formField.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ formField }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,9 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getFormFieldLayout = getFormFieldLayout;
|
|
8
|
+
var _components = require("@wordpress/components");
|
|
8
9
|
var _regular = _interopRequireDefault(require("./regular"));
|
|
9
10
|
var _panel = _interopRequireDefault(require("./panel"));
|
|
10
11
|
var _card = _interopRequireDefault(require("./card"));
|
|
12
|
+
var _row = _interopRequireDefault(require("./row"));
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
/**
|
|
15
|
+
* WordPress dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
11
18
|
/**
|
|
12
19
|
* Internal dependencies
|
|
13
20
|
*/
|
|
@@ -17,10 +24,33 @@ const FORM_FIELD_LAYOUTS = [{
|
|
|
17
24
|
component: _regular.default
|
|
18
25
|
}, {
|
|
19
26
|
type: 'panel',
|
|
20
|
-
component: _panel.default
|
|
27
|
+
component: _panel.default,
|
|
28
|
+
wrapper: ({
|
|
29
|
+
children
|
|
30
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
31
|
+
spacing: 2,
|
|
32
|
+
children: children
|
|
33
|
+
})
|
|
21
34
|
}, {
|
|
22
35
|
type: 'card',
|
|
23
36
|
component: _card.default
|
|
37
|
+
}, {
|
|
38
|
+
type: 'row',
|
|
39
|
+
component: _row.default,
|
|
40
|
+
wrapper: ({
|
|
41
|
+
children,
|
|
42
|
+
layout
|
|
43
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
44
|
+
spacing: 4,
|
|
45
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
46
|
+
className: "dataforms-layouts-row__field",
|
|
47
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
|
|
48
|
+
spacing: 4,
|
|
49
|
+
alignment: layout.alignment,
|
|
50
|
+
children: children
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|
|
24
54
|
}];
|
|
25
55
|
function getFormFieldLayout(type) {
|
|
26
56
|
return FORM_FIELD_LAYOUTS.find(layout => layout.type === type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_components","require","_regular","_interopRequireDefault","_panel","_card","_row","_jsxRuntime","FORM_FIELD_LAYOUTS","type","component","FormRegularField","FormPanelField","wrapper","children","jsx","__experimentalVStack","spacing","FormCardField","FormRowField","layout","className","__experimentalHStack","alignment","getFormFieldLayout","find"],"sources":["@wordpress/dataviews/src/dataforms-layouts/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { Layout, RowLayout } from '../types';\nimport FormRegularField from './regular';\nimport FormPanelField from './panel';\nimport FormCardField from './card';\nimport FormRowField from './row';\n\nconst FORM_FIELD_LAYOUTS = [\n\t{\n\t\ttype: 'regular',\n\t\tcomponent: FormRegularField,\n\t},\n\t{\n\t\ttype: 'panel',\n\t\tcomponent: FormPanelField,\n\t\twrapper: ( { children }: { children: React.ReactNode } ) => (\n\t\t\t<VStack spacing={ 2 }>{ children }</VStack>\n\t\t),\n\t},\n\t{\n\t\ttype: 'card',\n\t\tcomponent: FormCardField,\n\t},\n\t{\n\t\ttype: 'row',\n\t\tcomponent: FormRowField,\n\t\twrapper: ( {\n\t\t\tchildren,\n\t\t\tlayout,\n\t\t}: {\n\t\t\tchildren: React.ReactNode;\n\t\t\tlayout: Layout;\n\t\t} ) => (\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<div className=\"dataforms-layouts-row__field\">\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\talignment={ ( layout as RowLayout ).alignment }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</HStack>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t),\n\t},\n];\n\nexport function getFormFieldLayout( type: string ) {\n\treturn FORM_FIELD_LAYOUTS.find( ( layout ) => layout.type === type );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AASA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,IAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAiC,IAAAM,WAAA,GAAAN,OAAA;AAfjC;AACA;AACA;;AAMA;AACA;AACA;;AAOA,MAAMO,kBAAkB,GAAG,CAC1B;EACCC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAEC;AACZ,CAAC,EACD;EACCF,IAAI,EAAE,OAAO;EACbC,SAAS,EAAEE,cAAc;EACzBC,OAAO,EAAEA,CAAE;IAAEC;EAAwC,CAAC,kBACrD,IAAAP,WAAA,CAAAQ,GAAA,EAACf,WAAA,CAAAgB,oBAAM;IAACC,OAAO,EAAG,CAAG;IAAAH,QAAA,EAAGA;EAAQ,CAAU;AAE5C,CAAC,EACD;EACCL,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEQ;AACZ,CAAC,EACD;EACCT,IAAI,EAAE,KAAK;EACXC,SAAS,EAAES,YAAY;EACvBN,OAAO,EAAEA,CAAE;IACVC,QAAQ;IACRM;EAID,CAAC,kBACA,IAAAb,WAAA,CAAAQ,GAAA,EAACf,WAAA,CAAAgB,oBAAM;IAACC,OAAO,EAAG,CAAG;IAAAH,QAAA,eACpB,IAAAP,WAAA,CAAAQ,GAAA;MAAKM,SAAS,EAAC,8BAA8B;MAAAP,QAAA,eAC5C,IAAAP,WAAA,CAAAQ,GAAA,EAACf,WAAA,CAAAsB,oBAAM;QACNL,OAAO,EAAG,CAAG;QACbM,SAAS,EAAKH,MAAM,CAAgBG,SAAW;QAAAT,QAAA,EAE7CA;MAAQ,CACH;IAAC,CACL;EAAC,CACC;AAEV,CAAC,CACD;AAEM,SAASU,kBAAkBA,CAAEf,IAAY,EAAG;EAClD,OAAOD,kBAAkB,CAACiB,IAAI,CAAIL,MAAM,IAAMA,MAAM,CAACX,IAAI,KAAKA,IAAK,CAAC;AACrE","ignoreList":[]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = FormRowField;
|
|
8
|
+
var _components = require("@wordpress/components");
|
|
9
|
+
var _element = require("@wordpress/element");
|
|
10
|
+
var _dataformContext = _interopRequireDefault(require("../../components/dataform-context"));
|
|
11
|
+
var _dataFormLayout = require("../data-form-layout");
|
|
12
|
+
var _isCombinedField = require("../is-combined-field");
|
|
13
|
+
var _normalizeFormFields = require("../../normalize-form-fields");
|
|
14
|
+
var _ = require("..");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Internal dependencies
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function Header({
|
|
25
|
+
title
|
|
26
|
+
}) {
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
28
|
+
className: "dataforms-layouts-row__header",
|
|
29
|
+
spacing: 4,
|
|
30
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
31
|
+
alignment: "center",
|
|
32
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHeading, {
|
|
33
|
+
level: 2,
|
|
34
|
+
size: 13,
|
|
35
|
+
children: title
|
|
36
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {})]
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const EMPTY_WRAPPER = ({
|
|
41
|
+
children
|
|
42
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
43
|
+
children: children
|
|
44
|
+
});
|
|
45
|
+
function FormRowField({
|
|
46
|
+
data,
|
|
47
|
+
field,
|
|
48
|
+
onChange,
|
|
49
|
+
hideLabelFromVision
|
|
50
|
+
}) {
|
|
51
|
+
const {
|
|
52
|
+
fields
|
|
53
|
+
} = (0, _element.useContext)(_dataformContext.default);
|
|
54
|
+
const layout = (0, _normalizeFormFields.normalizeLayout)({
|
|
55
|
+
...field.layout,
|
|
56
|
+
type: 'row'
|
|
57
|
+
});
|
|
58
|
+
if ((0, _isCombinedField.isCombinedField)(field)) {
|
|
59
|
+
const form = {
|
|
60
|
+
fields: field.children.map(child => {
|
|
61
|
+
if (typeof child === 'string') {
|
|
62
|
+
return {
|
|
63
|
+
id: child
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return child;
|
|
67
|
+
})
|
|
68
|
+
};
|
|
69
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
70
|
+
className: "dataforms-layouts-row__field",
|
|
71
|
+
children: [!hideLabelFromVision && field.label && /*#__PURE__*/(0, _jsxRuntime.jsx)(Header, {
|
|
72
|
+
title: field.label
|
|
73
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
|
|
74
|
+
alignment: layout.alignment,
|
|
75
|
+
spacing: 4,
|
|
76
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataFormLayout.DataFormLayout, {
|
|
77
|
+
data: data,
|
|
78
|
+
form: form,
|
|
79
|
+
onChange: onChange,
|
|
80
|
+
as: EMPTY_WRAPPER,
|
|
81
|
+
children: (FieldLayout, nestedField) => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
82
|
+
className: "dataforms-layouts-row__field-control",
|
|
83
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldLayout, {
|
|
84
|
+
data: data,
|
|
85
|
+
field: nestedField,
|
|
86
|
+
onChange: onChange,
|
|
87
|
+
hideLabelFromVision: hideLabelFromVision
|
|
88
|
+
})
|
|
89
|
+
}, nestedField.id)
|
|
90
|
+
})
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const fieldDefinition = fields.find(f => f.id === field.id);
|
|
95
|
+
if (!fieldDefinition || !fieldDefinition.Edit) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const RegularLayout = (0, _.getFormFieldLayout)('regular')?.component;
|
|
99
|
+
if (!RegularLayout) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
104
|
+
className: "dataforms-layouts-row__field-control",
|
|
105
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(RegularLayout, {
|
|
106
|
+
data: data,
|
|
107
|
+
field: fieldDefinition,
|
|
108
|
+
onChange: onChange
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_dataformContext","_interopRequireDefault","_dataFormLayout","_isCombinedField","_normalizeFormFields","_","_jsxRuntime","Header","title","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","EMPTY_WRAPPER","Fragment","FormRowField","data","field","onChange","hideLabelFromVision","fields","useContext","DataFormContext","layout","normalizeLayout","type","isCombinedField","form","map","child","id","label","DataFormLayout","as","FieldLayout","nestedField","fieldDefinition","find","f","Edit","RegularLayout","getFormFieldLayout","component"],"sources":["@wordpress/dataviews/src/dataforms-layouts/row/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { FieldLayoutProps, Form, NormalizedRowLayout } from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { normalizeLayout } from '../../normalize-form-fields';\nimport { getFormFieldLayout } from '..';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-row__header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_WRAPPER = ( { children }: { children: React.ReactNode } ) => (\n\t<>{ children }</>\n);\n\nexport default function FormRowField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\n\tconst layout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'row',\n\t} ) as NormalizedRowLayout;\n\n\tif ( isCombinedField( field ) ) {\n\t\tconst form: Form = {\n\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\treturn { id: child };\n\t\t\t\t}\n\t\t\t\treturn child;\n\t\t\t} ),\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-row__field\">\n\t\t\t\t{ ! hideLabelFromVision && field.label && (\n\t\t\t\t\t<Header title={ field.label } />\n\t\t\t\t) }\n\t\t\t\t<HStack alignment={ layout.alignment } spacing={ 4 }>\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tas={ EMPTY_WRAPPER }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, nestedField ) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ nestedField.id }\n\t\t\t\t\t\t\t\tclassName=\"dataforms-layouts-row__field-control\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tfield={ nestedField }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DataFormLayout>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst fieldDefinition = fields.find( ( f ) => f.id === field.id );\n\n\tif ( ! fieldDefinition || ! fieldDefinition.Edit ) {\n\t\treturn null;\n\t}\n\n\tconst RegularLayout = getFormFieldLayout( 'regular' )?.component;\n\tif ( ! RegularLayout ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"dataforms-layouts-row__field-control\">\n\t\t\t\t<RegularLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AAMA,IAAAE,gBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,CAAA,GAAAP,OAAA;AAAwC,IAAAQ,WAAA,GAAAR,OAAA;AAnBxC;AACA;AACA;;AASA;AACA;AACA;;AAQA,SAASS,MAAMA,CAAE;EAAEC;AAAyB,CAAC,EAAG;EAC/C,oBACC,IAAAF,WAAA,CAAAG,GAAA,EAACZ,WAAA,CAAAa,oBAAM;IAACC,SAAS,EAAC,+BAA+B;IAACC,OAAO,EAAG,CAAG;IAAAC,QAAA,eAC9D,IAAAP,WAAA,CAAAQ,IAAA,EAACjB,WAAA,CAAAkB,oBAAM;MAACC,SAAS,EAAC,QAAQ;MAAAH,QAAA,gBACzB,IAAAP,WAAA,CAAAG,GAAA,EAACZ,WAAA,CAAAoB,qBAAO;QAACC,KAAK,EAAG,CAAG;QAACC,IAAI,EAAG,EAAI;QAAAN,QAAA,EAC7BL;MAAK,CACC,CAAC,eACV,IAAAF,WAAA,CAAAG,GAAA,EAACZ,WAAA,CAAAuB,oBAAM,IAAE,CAAC;IAAA,CACH;EAAC,CACF,CAAC;AAEX;AAEA,MAAMC,aAAa,GAAGA,CAAE;EAAER;AAAwC,CAAC,kBAClE,IAAAP,WAAA,CAAAG,GAAA,EAAAH,WAAA,CAAAgB,QAAA;EAAAT,QAAA,EAAIA;AAAQ,CAAI,CAChB;AAEc,SAASU,YAAYA,CAAU;EAC7CC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AACyB,CAAC,EAAG;EAC7B,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,mBAAU,EAAEC,wBAAgB,CAAC;EAEhD,MAAMC,MAAM,GAAG,IAAAC,oCAAe,EAAE;IAC/B,GAAGP,KAAK,CAACM,MAAM;IACfE,IAAI,EAAE;EACP,CAAE,CAAwB;EAE1B,IAAK,IAAAC,gCAAe,EAAET,KAAM,CAAC,EAAG;IAC/B,MAAMU,IAAU,GAAG;MAClBP,MAAM,EAAEH,KAAK,CAACZ,QAAQ,CAACuB,GAAG,CAAIC,KAAK,IAAM;QACxC,IAAK,OAAOA,KAAK,KAAK,QAAQ,EAAG;UAChC,OAAO;YAAEC,EAAE,EAAED;UAAM,CAAC;QACrB;QACA,OAAOA,KAAK;MACb,CAAE;IACH,CAAC;IAED,oBACC,IAAA/B,WAAA,CAAAQ,IAAA;MAAKH,SAAS,EAAC,8BAA8B;MAAAE,QAAA,GAC1C,CAAEc,mBAAmB,IAAIF,KAAK,CAACc,KAAK,iBACrC,IAAAjC,WAAA,CAAAG,GAAA,EAACF,MAAM;QAACC,KAAK,EAAGiB,KAAK,CAACc;MAAO,CAAE,CAC/B,eACD,IAAAjC,WAAA,CAAAG,GAAA,EAACZ,WAAA,CAAAkB,oBAAM;QAACC,SAAS,EAAGe,MAAM,CAACf,SAAW;QAACJ,OAAO,EAAG,CAAG;QAAAC,QAAA,eACnD,IAAAP,WAAA,CAAAG,GAAA,EAACP,eAAA,CAAAsC,cAAc;UACdhB,IAAI,EAAGA,IAAM;UACbW,IAAI,EAAGA,IAAM;UACbT,QAAQ,EAAGA,QAAU;UACrBe,EAAE,EAAGpB,aAAe;UAAAR,QAAA,EAElBA,CAAE6B,WAAW,EAAEC,WAAW,kBAC3B,IAAArC,WAAA,CAAAG,GAAA;YAECE,SAAS,EAAC,sCAAsC;YAAAE,QAAA,eAEhD,IAAAP,WAAA,CAAAG,GAAA,EAACiC,WAAW;cACXlB,IAAI,EAAGA,IAAM;cACbC,KAAK,EAAGkB,WAAa;cACrBjB,QAAQ,EAAGA,QAAU;cACrBC,mBAAmB,EAAGA;YAAqB,CAC3C;UAAC,GARIgB,WAAW,CAACL,EASd;QACL,CACc;MAAC,CACV,CAAC;IAAA,CACL,CAAC;EAER;EAEA,MAAMM,eAAe,GAAGhB,MAAM,CAACiB,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACR,EAAE,KAAKb,KAAK,CAACa,EAAG,CAAC;EAEjE,IAAK,CAAEM,eAAe,IAAI,CAAEA,eAAe,CAACG,IAAI,EAAG;IAClD,OAAO,IAAI;EACZ;EAEA,MAAMC,aAAa,GAAG,IAAAC,oBAAkB,EAAE,SAAU,CAAC,EAAEC,SAAS;EAChE,IAAK,CAAEF,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAA1C,WAAA,CAAAG,GAAA,EAAAH,WAAA,CAAAgB,QAAA;IAAAT,QAAA,eACC,IAAAP,WAAA,CAAAG,GAAA;MAAKE,SAAS,EAAC,sCAAsC;MAAAE,QAAA,eACpD,IAAAP,WAAA,CAAAG,GAAA,EAACuC,aAAa;QACbxB,IAAI,EAAGA,IAAM;QACbC,KAAK,EAAGmB,eAAiB;QACzBlB,QAAQ,EAAGA;MAAU,CACrB;IAAC,CACE;EAAC,CACL,CAAC;AAEL","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@ var _dataviewsSelectionCheckbox = _interopRequireDefault(require("../../componen
|
|
|
17
17
|
var _dataviewsContext = _interopRequireDefault(require("../../components/dataviews-context"));
|
|
18
18
|
var _dataviewsBulkActions = require("../../components/dataviews-bulk-actions");
|
|
19
19
|
var _itemClickWrapper = require("../utils/item-click-wrapper");
|
|
20
|
+
var _gridItems = require("../utils/grid-items");
|
|
20
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
22
|
/**
|
|
22
23
|
* External dependencies
|
|
@@ -71,6 +72,7 @@ function GridItem({
|
|
|
71
72
|
item: item,
|
|
72
73
|
field: titleField
|
|
73
74
|
}) : null;
|
|
75
|
+
const shouldRenderMedia = showMedia && renderedMediaField;
|
|
74
76
|
let mediaA11yProps;
|
|
75
77
|
let titleA11yProps;
|
|
76
78
|
if (isItemClickable(item) && onClickItem) {
|
|
@@ -108,7 +110,7 @@ function GridItem({
|
|
|
108
110
|
role: infiniteScrollEnabled ? 'article' : undefined,
|
|
109
111
|
"aria-setsize": infiniteScrollEnabled ? paginationInfo.totalItems : undefined,
|
|
110
112
|
"aria-posinset": posinset,
|
|
111
|
-
children: [
|
|
113
|
+
children: [shouldRenderMedia && /*#__PURE__*/(0, _jsxRuntime.jsx)(_itemClickWrapper.ItemClickWrapper, {
|
|
112
114
|
item: item,
|
|
113
115
|
isItemClickable: isItemClickable,
|
|
114
116
|
onClickItem: onClickItem,
|
|
@@ -116,14 +118,21 @@ function GridItem({
|
|
|
116
118
|
className: "dataviews-view-grid__media",
|
|
117
119
|
...mediaA11yProps,
|
|
118
120
|
children: renderedMediaField
|
|
119
|
-
}), hasBulkActions &&
|
|
121
|
+
}), hasBulkActions && shouldRenderMedia && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsSelectionCheckbox.default, {
|
|
120
122
|
item: item,
|
|
121
123
|
selection: selection,
|
|
122
124
|
onChangeSelection: onChangeSelection,
|
|
123
125
|
getItemId: getItemId,
|
|
124
126
|
titleField: titleField,
|
|
125
127
|
disabled: !hasBulkAction
|
|
126
|
-
}), /*#__PURE__*/(0, _jsxRuntime.
|
|
128
|
+
}), !showTitle && shouldRenderMedia && !!actions?.length && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
129
|
+
className: "dataviews-view-grid__media-actions",
|
|
130
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.default, {
|
|
131
|
+
item: item,
|
|
132
|
+
actions: actions,
|
|
133
|
+
isCompact: true
|
|
134
|
+
})
|
|
135
|
+
}), showTitle && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
127
136
|
justify: "space-between",
|
|
128
137
|
className: "dataviews-view-grid__title-actions",
|
|
129
138
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_itemClickWrapper.ItemClickWrapper, {
|
|
@@ -272,11 +281,9 @@ function ViewGrid({
|
|
|
272
281
|
children: (0, _i18n.sprintf)(
|
|
273
282
|
// translators: 1: The label of the field e.g. "Date". 2: The value of the field, e.g.: "May 2022".
|
|
274
283
|
(0, _i18n.__)('%1$s: %2$s'), groupField.label, groupName)
|
|
275
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
284
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_gridItems.GridItems, {
|
|
276
285
|
className: (0, _clsx.default)('dataviews-view-grid', className),
|
|
277
|
-
|
|
278
|
-
gridTemplateColumns: usedPreviewSize && `repeat(auto-fill, minmax(${usedPreviewSize}px, 1fr))`
|
|
279
|
-
},
|
|
286
|
+
previewSize: usedPreviewSize,
|
|
280
287
|
"aria-busy": isLoading,
|
|
281
288
|
ref: resizeObserverRef,
|
|
282
289
|
children: groupItems.map(item => {
|
|
@@ -305,11 +312,9 @@ function ViewGrid({
|
|
|
305
312
|
}, groupName))
|
|
306
313
|
}),
|
|
307
314
|
// Render a single grid with all data.
|
|
308
|
-
hasData && !dataByGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
315
|
+
hasData && !dataByGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_gridItems.GridItems, {
|
|
309
316
|
className: (0, _clsx.default)('dataviews-view-grid', className),
|
|
310
|
-
|
|
311
|
-
gridTemplateColumns: usedPreviewSize && `repeat(auto-fill, minmax(${usedPreviewSize}px, 1fr))`
|
|
312
|
-
},
|
|
317
|
+
previewSize: usedPreviewSize,
|
|
313
318
|
"aria-busy": isLoading,
|
|
314
319
|
ref: resizeObserverRef,
|
|
315
320
|
role: isInfiniteScroll ? 'feed' : undefined,
|