@wordpress/dataviews 9.0.1-next.6870dfe5b.0 → 9.0.1-next.a730c9c8c.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 +17 -1
- package/README.md +107 -12
- package/build/components/dataviews-filters/input-widget.js +48 -4
- package/build/components/dataviews-filters/input-widget.js.map +1 -1
- package/build/components/dataviews-layout/index.js +3 -1
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/dataform-controls/array.js +9 -7
- package/build/dataform-controls/array.js.map +1 -1
- package/build/dataform-controls/checkbox.js +31 -20
- package/build/dataform-controls/checkbox.js.map +1 -1
- package/build/dataform-controls/color.js +29 -24
- package/build/dataform-controls/color.js.map +1 -1
- package/build/dataform-controls/date.js +32 -24
- package/build/dataform-controls/date.js.map +1 -1
- package/build/dataform-controls/datetime.js +133 -19
- package/build/dataform-controls/datetime.js.map +1 -1
- package/build/dataform-controls/email.js +9 -3
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +27 -0
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +47 -34
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/password.js +47 -0
- package/build/dataform-controls/password.js.map +1 -0
- package/build/dataform-controls/radio.js +42 -9
- package/build/dataform-controls/radio.js.map +1 -1
- package/build/dataform-controls/relative-date-control.js +6 -10
- package/build/dataform-controls/relative-date-control.js.map +1 -1
- package/build/dataform-controls/select.js +41 -10
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/telephone.js +9 -3
- package/build/dataform-controls/telephone.js.map +1 -1
- package/build/dataform-controls/text.js +16 -4
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/textarea.js +81 -0
- package/build/dataform-controls/textarea.js.map +1 -0
- package/build/dataform-controls/toggle-group.js +36 -6
- package/build/dataform-controls/toggle-group.js.map +1 -1
- package/build/dataform-controls/toggle.js +33 -22
- package/build/dataform-controls/toggle.js.map +1 -1
- package/build/dataform-controls/url.js +9 -3
- package/build/dataform-controls/url.js.map +1 -1
- package/build/dataform-controls/utils/{validated-text.js → validated-input.js} +36 -29
- package/build/dataform-controls/utils/validated-input.js.map +1 -0
- package/build/dataforms-layouts/panel/dropdown.js +10 -14
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -1
- package/build/dataforms-layouts/panel/index.js +24 -11
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/panel/modal.js +22 -27
- package/build/dataforms-layouts/panel/modal.js.map +1 -1
- package/build/dataforms-layouts/panel/summary-button.js +67 -0
- package/build/dataforms-layouts/panel/summary-button.js.map +1 -0
- package/build/dataforms-layouts/regular/index.js +7 -9
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +5 -15
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +47 -2
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/picker-grid/index.js +5 -15
- package/build/dataviews-layouts/picker-grid/index.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +5 -17
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/utils/get-data-by-group.js +23 -0
- package/build/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
- package/build/field-types/index.js +4 -0
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/password.js +51 -0
- package/build/field-types/password.js.map +1 -0
- package/build/normalize-fields.js +17 -0
- package/build/normalize-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/dataviews-filters/input-widget.js +48 -4
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +3 -1
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/dataform-controls/array.js +9 -7
- package/build-module/dataform-controls/array.js.map +1 -1
- package/build-module/dataform-controls/checkbox.js +31 -21
- package/build-module/dataform-controls/checkbox.js.map +1 -1
- package/build-module/dataform-controls/color.js +28 -24
- package/build-module/dataform-controls/color.js.map +1 -1
- package/build-module/dataform-controls/date.js +32 -24
- package/build-module/dataform-controls/date.js.map +1 -1
- package/build-module/dataform-controls/datetime.js +135 -21
- package/build-module/dataform-controls/datetime.js.map +1 -1
- package/build-module/dataform-controls/email.js +8 -2
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +27 -0
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +46 -34
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/password.js +38 -0
- package/build-module/dataform-controls/password.js.map +1 -0
- package/build-module/dataform-controls/radio.js +44 -11
- package/build-module/dataform-controls/radio.js.map +1 -1
- package/build-module/dataform-controls/relative-date-control.js +6 -10
- package/build-module/dataform-controls/relative-date-control.js.map +1 -1
- package/build-module/dataform-controls/select.js +43 -12
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/telephone.js +8 -2
- package/build-module/dataform-controls/telephone.js.map +1 -1
- package/build-module/dataform-controls/text.js +15 -3
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/textarea.js +74 -0
- package/build-module/dataform-controls/textarea.js.map +1 -0
- package/build-module/dataform-controls/toggle-group.js +38 -8
- package/build-module/dataform-controls/toggle-group.js.map +1 -1
- package/build-module/dataform-controls/toggle.js +33 -23
- package/build-module/dataform-controls/toggle.js.map +1 -1
- package/build-module/dataform-controls/url.js +8 -2
- package/build-module/dataform-controls/url.js.map +1 -1
- package/build-module/dataform-controls/utils/validated-input.js +76 -0
- package/build-module/dataform-controls/utils/validated-input.js.map +1 -0
- package/build-module/dataforms-layouts/panel/dropdown.js +10 -15
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -1
- package/build-module/dataforms-layouts/panel/index.js +24 -11
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/modal.js +22 -28
- package/build-module/dataforms-layouts/panel/modal.js.map +1 -1
- package/build-module/dataforms-layouts/panel/summary-button.js +60 -0
- package/build-module/dataforms-layouts/panel/summary-button.js.map +1 -0
- package/build-module/dataforms-layouts/regular/index.js +8 -10
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +6 -16
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +48 -3
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/picker-grid/index.js +6 -16
- package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +5 -17
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-data-by-group.js +17 -0
- package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
- package/build-module/field-types/index.js +4 -0
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/password.js +46 -0
- package/build-module/field-types/password.js.map +1 -0
- package/build-module/normalize-fields.js +15 -0
- package/build-module/normalize-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 +9 -6
- package/build-style/style.css +9 -6
- package/build-types/components/dataform/stories/index.story.d.ts +3 -14
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts +4 -2
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
- package/build-types/dataform-controls/array.d.ts.map +1 -1
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
- package/build-types/dataform-controls/color.d.ts.map +1 -1
- package/build-types/dataform-controls/date.d.ts.map +1 -1
- 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 +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/password.d.ts +3 -0
- package/build-types/dataform-controls/password.d.ts.map +1 -0
- package/build-types/dataform-controls/radio.d.ts.map +1 -1
- package/build-types/dataform-controls/relative-date-control.d.ts +6 -5
- package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -1
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/telephone.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/textarea.d.ts +6 -0
- package/build-types/dataform-controls/textarea.d.ts.map +1 -0
- package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle.d.ts.map +1 -1
- package/build-types/dataform-controls/url.d.ts.map +1 -1
- package/build-types/dataform-controls/utils/validated-input.d.ts +20 -0
- package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/dropdown.d.ts +2 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts +2 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/summary-button.d.ts +15 -0
- package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +1 -0
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts +6 -0
- package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/password.d.ts +17 -0
- package/build-types/field-types/password.d.ts.map +1 -0
- package/build-types/field-types/stories/index.story.d.ts +5 -1
- package/build-types/field-types/stories/index.story.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts +3 -0
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +67 -4
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/build-wp/index.js +1670 -1350
- package/package.json +16 -15
- package/src/components/dataform/stories/index.story.tsx +489 -17
- package/src/components/dataviews/stories/fixtures.tsx +99 -41
- package/src/components/dataviews/stories/index.story.tsx +2 -2
- package/src/components/dataviews-filters/input-widget.tsx +44 -5
- package/src/components/dataviews-layout/index.tsx +1 -1
- package/src/components/dataviews-picker/stories/index.story.tsx +1 -1
- package/src/dataform-controls/array.tsx +4 -6
- package/src/dataform-controls/checkbox.tsx +41 -24
- package/src/dataform-controls/color.tsx +33 -24
- package/src/dataform-controls/date.tsx +47 -21
- package/src/dataform-controls/datetime.tsx +171 -23
- package/src/dataform-controls/email.tsx +10 -2
- package/src/dataform-controls/index.tsx +30 -0
- package/src/dataform-controls/integer.tsx +82 -49
- package/src/dataform-controls/password.tsx +50 -0
- package/src/dataform-controls/radio.tsx +53 -11
- package/src/dataform-controls/relative-date-control.tsx +11 -10
- package/src/dataform-controls/select.tsx +53 -10
- package/src/dataform-controls/telephone.tsx +10 -2
- package/src/dataform-controls/text.tsx +19 -2
- package/src/dataform-controls/textarea.tsx +85 -0
- package/src/dataform-controls/toggle-group.tsx +50 -10
- package/src/dataform-controls/toggle.tsx +41 -24
- package/src/dataform-controls/url.tsx +10 -2
- package/src/dataform-controls/utils/validated-input.tsx +109 -0
- package/src/dataforms-layouts/panel/dropdown.tsx +12 -23
- package/src/dataforms-layouts/panel/index.tsx +39 -16
- package/src/dataforms-layouts/panel/modal.tsx +24 -30
- package/src/dataforms-layouts/panel/summary-button.tsx +92 -0
- package/src/dataforms-layouts/regular/index.tsx +9 -7
- package/src/dataforms-layouts/regular/style.scss +0 -6
- package/src/dataviews-layouts/grid/index.tsx +9 -14
- package/src/dataviews-layouts/grid/style.scss +1 -0
- package/src/dataviews-layouts/list/index.tsx +74 -2
- package/src/dataviews-layouts/list/style.scss +8 -0
- package/src/dataviews-layouts/picker-grid/index.tsx +9 -13
- package/src/dataviews-layouts/table/index.tsx +10 -14
- package/src/dataviews-layouts/utils/get-data-by-group.ts +18 -0
- package/src/field-types/index.tsx +5 -0
- package/src/field-types/password.tsx +46 -0
- package/src/field-types/stories/index.story.tsx +138 -1
- package/src/normalize-fields.ts +18 -0
- package/src/test/filter-and-sort-data-view.js +148 -138
- package/src/test/normalize-fields.ts +114 -0
- package/src/types.ts +74 -3
- package/src/validation.ts +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dataform-controls/utils/validated-text.js.map +0 -1
- package/build-module/dataform-controls/utils/validated-text.js +0 -70
- package/build-module/dataform-controls/utils/validated-text.js.map +0 -1
- package/build-types/dataform-controls/utils/validated-text.d.ts +0 -16
- package/build-types/dataform-controls/utils/validated-text.d.ts.map +0 -1
- package/src/dataform-controls/utils/validated-text.tsx +0 -96
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_element","_dataformContext","_isCombinedField","_normalizeFormFields","_dropdown","_modal","_jsxRuntime","FormPanelField","data","field","onChange","fields","useContext","DataFormContext","
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_element","_dataformContext","_isCombinedField","_normalizeFormFields","_dropdown","_modal","_jsxRuntime","FormPanelField","data","field","onChange","fields","useContext","DataFormContext","getSummaryFields","isCombinedField","fieldDef","find","_field","id","summary","summaryIds","Array","isArray","map","summaryId","filter","undefined","simpleChildren","children","child","length","firstChildFieldId","summaryFields","fieldDefinition","popoverAnchor","setPopoverAnchor","useState","layout","normalizeLayout","type","labelPosition","labelClassName","clsx","fieldLabel","label","renderedControl","openAs","jsx","default","jsxs","__experimentalVStack","className","spacing","style","paddingBottom","__experimentalHStack","ref"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldLayoutProps,\n\tNormalizedPanelLayout,\n\tSimpleFormField,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { isCombinedField } from '../is-combined-field';\nimport { normalizeLayout } from '../../normalize-form-fields';\nimport PanelDropdown from './dropdown';\nimport PanelModal from './modal';\n\nexport default function FormPanelField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst getSummaryFields = () => {\n\t\tif ( ! isCombinedField( field ) ) {\n\t\t\tconst fieldDef = fields.find(\n\t\t\t\t( _field ) => _field.id === field.id\n\t\t\t);\n\t\t\treturn fieldDef ? [ fieldDef ] : [];\n\t\t}\n\n\t\t// Use summary field(s) if specified for combined fields\n\t\tif ( field.summary ) {\n\t\t\tconst summaryIds = Array.isArray( field.summary )\n\t\t\t\t? field.summary\n\t\t\t\t: [ field.summary ];\n\t\t\treturn summaryIds\n\t\t\t\t.map( ( summaryId ) =>\n\t\t\t\t\tfields.find( ( _field ) => _field.id === summaryId )\n\t\t\t\t)\n\t\t\t\t.filter( ( _field ) => _field !== undefined );\n\t\t}\n\n\t\t// Default to the first simple child\n\t\tconst simpleChildren = field.children.filter(\n\t\t\t( child ): child is string | SimpleFormField =>\n\t\t\t\ttypeof child === 'string' || ! isCombinedField( child )\n\t\t);\n\n\t\tif ( simpleChildren.length === 0 ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst firstChildFieldId =\n\t\t\ttypeof simpleChildren[ 0 ] === 'string'\n\t\t\t\t? simpleChildren[ 0 ]\n\t\t\t\t: simpleChildren[ 0 ].id;\n\n\t\tconst fieldDef = fields.find(\n\t\t\t( _field ) => _field.id === firstChildFieldId\n\t\t);\n\t\treturn fieldDef ? [ fieldDef ] : [];\n\t};\n\n\tconst summaryFields = getSummaryFields();\n\tconst fieldDefinition = summaryFields[ 0 ]; // For backward compatibility\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\n\tif ( ! fieldDefinition ) {\n\t\treturn null;\n\t}\n\n\tconst layout: NormalizedPanelLayout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'panel',\n\t} ) as NormalizedPanelLayout;\n\n\tconst labelPosition = layout.labelPosition;\n\tconst labelClassName = clsx(\n\t\t'dataforms-layouts-panel__field-label',\n\t\t`dataforms-layouts-panel__field-label--label-position-${ labelPosition }`\n\t);\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\n\tconst renderedControl =\n\t\tlayout.openAs === 'modal' ? (\n\t\t\t<PanelModal\n\t\t\t\tfield={ field }\n\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tdata={ data }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t/>\n\t\t) : (\n\t\t\t<PanelDropdown\n\t\t\t\tfield={ field }\n\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tdata={ data }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t/>\n\t\t);\n\n\tif ( labelPosition === 'top' ) {\n\t\treturn (\n\t\t\t<VStack className=\"dataforms-layouts-panel__field\" spacing={ 0 }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ labelClassName }\n\t\t\t\t\tstyle={ { paddingBottom: 0 } }\n\t\t\t\t>\n\t\t\t\t\t{ fieldLabel }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t\t{ renderedControl }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t);\n\t}\n\n\tif ( labelPosition === 'none' ) {\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-panel__field\">\n\t\t\t\t{ renderedControl }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Defaults to label position side.\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className={ labelClassName }>{ fieldLabel }</div>\n\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t{ renderedControl }\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
8
|
+
var _deepmerge = _interopRequireDefault(require("deepmerge"));
|
|
7
9
|
var _components = require("@wordpress/components");
|
|
8
10
|
var _i18n = require("@wordpress/i18n");
|
|
9
11
|
var _element = require("@wordpress/element");
|
|
10
12
|
var _dataFormLayout = require("../data-form-layout");
|
|
11
13
|
var _isCombinedField = require("../is-combined-field");
|
|
12
14
|
var _normalizeFormFields = require("../../normalize-form-fields");
|
|
15
|
+
var _summaryButton = _interopRequireDefault(require("./summary-button"));
|
|
13
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
/**
|
|
18
|
+
* External dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
14
21
|
/**
|
|
15
22
|
* WordPress dependencies
|
|
16
23
|
*/
|
|
@@ -27,21 +34,15 @@ function ModalContent({
|
|
|
27
34
|
onClose
|
|
28
35
|
}) {
|
|
29
36
|
const [changes, setChanges] = (0, _element.useState)({});
|
|
37
|
+
const modalData = (0, _element.useMemo)(() => {
|
|
38
|
+
return (0, _deepmerge.default)(data, changes);
|
|
39
|
+
}, [data, changes]);
|
|
30
40
|
const onApply = () => {
|
|
31
41
|
onChange(changes);
|
|
32
42
|
onClose();
|
|
33
43
|
};
|
|
34
|
-
const handleOnChange =
|
|
35
|
-
setChanges(prev => (
|
|
36
|
-
...prev,
|
|
37
|
-
...value
|
|
38
|
-
}));
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
// Merge original data with local changes for display
|
|
42
|
-
const displayData = {
|
|
43
|
-
...data,
|
|
44
|
-
...changes
|
|
44
|
+
const handleOnChange = newValue => {
|
|
45
|
+
setChanges(prev => (0, _deepmerge.default)(prev, newValue));
|
|
45
46
|
};
|
|
46
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Modal, {
|
|
47
48
|
className: "dataforms-layouts-panel__modal",
|
|
@@ -50,13 +51,13 @@ function ModalContent({
|
|
|
50
51
|
title: fieldLabel,
|
|
51
52
|
size: "medium",
|
|
52
53
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_dataFormLayout.DataFormLayout, {
|
|
53
|
-
data:
|
|
54
|
+
data: modalData,
|
|
54
55
|
form: form,
|
|
55
56
|
onChange: handleOnChange,
|
|
56
57
|
children: (FieldLayout, nestedField) => {
|
|
57
58
|
var _form$fields;
|
|
58
59
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldLayout, {
|
|
59
|
-
data:
|
|
60
|
+
data: modalData,
|
|
60
61
|
field: nestedField,
|
|
61
62
|
onChange: handleOnChange,
|
|
62
63
|
hideLabelFromVision: ((_form$fields = form?.fields) !== null && _form$fields !== void 0 ? _form$fields : []).length < 2
|
|
@@ -81,6 +82,7 @@ function ModalContent({
|
|
|
81
82
|
}
|
|
82
83
|
function PanelModal({
|
|
83
84
|
fieldDefinition,
|
|
85
|
+
summaryFields,
|
|
84
86
|
labelPosition,
|
|
85
87
|
data,
|
|
86
88
|
onChange,
|
|
@@ -97,21 +99,14 @@ function PanelModal({
|
|
|
97
99
|
}]
|
|
98
100
|
}), [field]);
|
|
99
101
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
100
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"aria-label": (0, _i18n.sprintf)(
|
|
106
|
-
// translators: %s: Field name.
|
|
107
|
-
(0, _i18n._x)('Edit %s', 'field'), fieldLabel || ''),
|
|
108
|
-
onClick: () => setIsOpen(true),
|
|
102
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_summaryButton.default, {
|
|
103
|
+
summaryFields: summaryFields,
|
|
104
|
+
data: data,
|
|
105
|
+
labelPosition: labelPosition,
|
|
106
|
+
fieldLabel: fieldLabel,
|
|
109
107
|
disabled: fieldDefinition.readOnly === true,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
item: data,
|
|
113
|
-
field: fieldDefinition
|
|
114
|
-
})
|
|
108
|
+
onClick: () => setIsOpen(true),
|
|
109
|
+
"aria-expanded": isOpen
|
|
115
110
|
}), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(ModalContent, {
|
|
116
111
|
data: data,
|
|
117
112
|
form: form,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_deepmerge","_interopRequireDefault","require","_components","_i18n","_element","_dataFormLayout","_isCombinedField","_normalizeFormFields","_summaryButton","_jsxRuntime","ModalContent","data","form","fieldLabel","onChange","onClose","changes","setChanges","useState","modalData","useMemo","deepMerge","onApply","handleOnChange","newValue","prev","jsxs","Modal","className","onRequestClose","isFullScreen","title","size","children","jsx","DataFormLayout","FieldLayout","nestedField","_form$fields","field","hideLabelFromVision","fields","length","id","__experimentalHStack","spacing","__experimentalSpacer","Button","variant","onClick","__next40pxDefaultSize","__","PanelModal","fieldDefinition","summaryFields","labelPosition","isOpen","setIsOpen","isCombinedField","label","layout","DEFAULT_LAYOUT","Fragment","default","disabled","readOnly","_default","exports"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/modal.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { Form, FormField, NormalizedField } from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT } from '../../normalize-form-fields';\nimport SummaryButton from './summary-button';\n\nfunction ModalContent< Item >( {\n\tdata,\n\tform,\n\tfieldLabel,\n\tonChange,\n\tonClose,\n}: {\n\tdata: Item;\n\tform: Form;\n\tfieldLabel: string;\n\tonChange: ( data: Partial< Item > ) => void;\n\tonClose: () => void;\n} ) {\n\tconst [ changes, setChanges ] = useState< Partial< Item > >( {} );\n\tconst modalData = useMemo( () => {\n\t\treturn deepMerge( data, changes );\n\t}, [ data, changes ] );\n\n\tconst onApply = () => {\n\t\tonChange( changes );\n\t\tonClose();\n\t};\n\n\tconst handleOnChange = ( newValue: Partial< Item > ) => {\n\t\tsetChanges( ( prev ) => deepMerge( prev, newValue ) );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"dataforms-layouts-panel__modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tisFullScreen={ false }\n\t\t\ttitle={ fieldLabel }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<DataFormLayout\n\t\t\t\tdata={ modalData }\n\t\t\t\tform={ form }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t>\n\t\t\t\t{ ( FieldLayout, nestedField ) => (\n\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\tkey={ nestedField.id }\n\t\t\t\t\t\tdata={ modalData }\n\t\t\t\t\t\tfield={ nestedField }\n\t\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</DataFormLayout>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataforms-layouts-panel__modal-footer\"\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<Spacer />\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ onApply }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</Modal>\n\t);\n}\n\nfunction PanelModal< Item >( {\n\tfieldDefinition,\n\tsummaryFields,\n\tlabelPosition,\n\tdata,\n\tonChange,\n\tfield,\n}: {\n\tfieldDefinition: NormalizedField< Item >;\n\tsummaryFields: NormalizedField< Item >[];\n\tlabelPosition: 'side' | 'top' | 'none';\n\tdata: Item;\n\tonChange: ( value: any ) => void;\n\tfield: FormField;\n} ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\n\tconst form: Form = useMemo(\n\t\t(): Form => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: isCombinedField( field )\n\t\t\t\t? field.children\n\t\t\t\t: // If not explicit children return the field id itself.\n\t\t\t\t [ { id: field.id } ],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<SummaryButton\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tdata={ data }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tfieldLabel={ fieldLabel }\n\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\tonClick={ () => setIsOpen( true ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<ModalContent\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tform={ form as Form }\n\t\t\t\t\tfieldLabel={ fieldLabel ?? '' }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonClose={ () => setIsOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PanelModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _components = require("@wordpress/components");
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function SummaryButton({
|
|
19
|
+
summaryFields,
|
|
20
|
+
data,
|
|
21
|
+
labelPosition,
|
|
22
|
+
fieldLabel,
|
|
23
|
+
disabled,
|
|
24
|
+
onClick,
|
|
25
|
+
'aria-expanded': ariaExpanded
|
|
26
|
+
}) {
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
28
|
+
className: "dataforms-layouts-panel__summary-button",
|
|
29
|
+
size: "compact",
|
|
30
|
+
variant: ['none', 'top'].includes(labelPosition) ? 'link' : 'tertiary',
|
|
31
|
+
"aria-expanded": ariaExpanded,
|
|
32
|
+
"aria-label": (0, _i18n.sprintf)(
|
|
33
|
+
// translators: %s: Field name.
|
|
34
|
+
(0, _i18n._x)('Edit %s', 'field'), fieldLabel || ''),
|
|
35
|
+
onClick: onClick,
|
|
36
|
+
disabled: disabled,
|
|
37
|
+
accessibleWhenDisabled: true,
|
|
38
|
+
style: summaryFields.length > 1 ? {
|
|
39
|
+
minHeight: 'auto',
|
|
40
|
+
height: 'auto',
|
|
41
|
+
alignItems: 'flex-start'
|
|
42
|
+
} : undefined,
|
|
43
|
+
children: summaryFields.length > 1 ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
44
|
+
style: {
|
|
45
|
+
display: 'flex',
|
|
46
|
+
flexDirection: 'column',
|
|
47
|
+
alignItems: 'flex-start',
|
|
48
|
+
width: '100%',
|
|
49
|
+
gap: '2px'
|
|
50
|
+
},
|
|
51
|
+
children: summaryFields.map(summaryField => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
52
|
+
style: {
|
|
53
|
+
width: '100%'
|
|
54
|
+
},
|
|
55
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(summaryField.render, {
|
|
56
|
+
item: data,
|
|
57
|
+
field: summaryField
|
|
58
|
+
})
|
|
59
|
+
}, summaryField.id))
|
|
60
|
+
}) : summaryFields.map(summaryField => /*#__PURE__*/(0, _jsxRuntime.jsx)(summaryField.render, {
|
|
61
|
+
item: data,
|
|
62
|
+
field: summaryField
|
|
63
|
+
}, summaryField.id))
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
var _default = exports.default = SummaryButton;
|
|
67
|
+
//# sourceMappingURL=summary-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_jsxRuntime","SummaryButton","summaryFields","data","labelPosition","fieldLabel","disabled","onClick","ariaExpanded","jsx","Button","className","size","variant","includes","sprintf","_x","accessibleWhenDisabled","style","length","minHeight","height","alignItems","undefined","children","display","flexDirection","width","gap","map","summaryField","render","item","field","id","_default","exports","default"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/summary-button.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { sprintf, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\n\nfunction SummaryButton< Item >( {\n\tsummaryFields,\n\tdata,\n\tlabelPosition,\n\tfieldLabel,\n\tdisabled,\n\tonClick,\n\t'aria-expanded': ariaExpanded,\n}: {\n\tsummaryFields: NormalizedField< Item >[];\n\tdata: Item;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tfieldLabel?: string;\n\tdisabled?: boolean;\n\tonClick: () => void;\n\t'aria-expanded'?: boolean;\n} ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"dataforms-layouts-panel__summary-button\"\n\t\t\tsize=\"compact\"\n\t\t\tvariant={\n\t\t\t\t[ 'none', 'top' ].includes( labelPosition )\n\t\t\t\t\t? 'link'\n\t\t\t\t\t: 'tertiary'\n\t\t\t}\n\t\t\taria-expanded={ ariaExpanded }\n\t\t\taria-label={ sprintf(\n\t\t\t\t// translators: %s: Field name.\n\t\t\t\t_x( 'Edit %s', 'field' ),\n\t\t\t\tfieldLabel || ''\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tdisabled={ disabled }\n\t\t\taccessibleWhenDisabled\n\t\t\tstyle={\n\t\t\t\tsummaryFields.length > 1\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tminHeight: 'auto',\n\t\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\t\talignItems: 'flex-start',\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ summaryFields.length > 1 ? (\n\t\t\t\t<div\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\talignItems: 'flex-start',\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\tgap: '2px',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ summaryFields.map( ( summaryField ) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={ summaryField.id }\n\t\t\t\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<summaryField.render\n\t\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\t\tfield={ summaryField }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) ) }\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tsummaryFields.map( ( summaryField ) => (\n\t\t\t\t\t<summaryField.render\n\t\t\t\t\t\tkey={ summaryField.id }\n\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\tfield={ summaryField }\n\t\t\t\t\t/>\n\t\t\t\t) )\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n\nexport default SummaryButton;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAA8C,IAAAE,WAAA,GAAAF,OAAA;AAJ9C;AACA;AACA;;AAIA;AACA;AACA;;AAGA,SAASG,aAAaA,CAAU;EAC/BC,aAAa;EACbC,IAAI;EACJC,aAAa;EACbC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACP,eAAe,EAAEC;AASlB,CAAC,EAAG;EACH,oBACC,IAAAR,WAAA,CAAAS,GAAA,EAACZ,WAAA,CAAAa,MAAM;IACNC,SAAS,EAAC,yCAAyC;IACnDC,IAAI,EAAC,SAAS;IACdC,OAAO,EACN,CAAE,MAAM,EAAE,KAAK,CAAE,CAACC,QAAQ,CAAEV,aAAc,CAAC,GACxC,MAAM,GACN,UACH;IACD,iBAAgBI,YAAc;IAC9B,cAAa,IAAAO,aAAO;IACnB;IACA,IAAAC,QAAE,EAAE,SAAS,EAAE,OAAQ,CAAC,EACxBX,UAAU,IAAI,EACf,CAAG;IACHE,OAAO,EAAGA,OAAS;IACnBD,QAAQ,EAAGA,QAAU;IACrBW,sBAAsB;IACtBC,KAAK,EACJhB,aAAa,CAACiB,MAAM,GAAG,CAAC,GACrB;MACAC,SAAS,EAAE,MAAM;MACjBC,MAAM,EAAE,MAAM;MACdC,UAAU,EAAE;IACZ,CAAC,GACDC,SACH;IAAAC,QAAA,EAECtB,aAAa,CAACiB,MAAM,GAAG,CAAC,gBACzB,IAAAnB,WAAA,CAAAS,GAAA;MACCS,KAAK,EAAG;QACPO,OAAO,EAAE,MAAM;QACfC,aAAa,EAAE,QAAQ;QACvBJ,UAAU,EAAE,YAAY;QACxBK,KAAK,EAAE,MAAM;QACbC,GAAG,EAAE;MACN,CAAG;MAAAJ,QAAA,EAEDtB,aAAa,CAAC2B,GAAG,CAAIC,YAAY,iBAClC,IAAA9B,WAAA,CAAAS,GAAA;QAECS,KAAK,EAAG;UAAES,KAAK,EAAE;QAAO,CAAG;QAAAH,QAAA,eAE3B,IAAAxB,WAAA,CAAAS,GAAA,EAACqB,YAAY,CAACC,MAAM;UACnBC,IAAI,EAAG7B,IAAM;UACb8B,KAAK,EAAGH;QAAc,CACtB;MAAC,GANIA,YAAY,CAACI,EAOf,CACJ;IAAC,CACC,CAAC,GAENhC,aAAa,CAAC2B,GAAG,CAAIC,YAAY,iBAChC,IAAA9B,WAAA,CAAAS,GAAA,EAACqB,YAAY,CAACC,MAAM;MAEnBC,IAAI,EAAG7B,IAAM;MACb8B,KAAK,EAAGH;IAAc,GAFhBA,YAAY,CAACI,EAGnB,CACA;EACF,CACM,CAAC;AAEX;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcpC,aAAa","ignoreList":[]}
|
|
@@ -96,17 +96,15 @@ function FormRegularField({
|
|
|
96
96
|
}
|
|
97
97
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
98
98
|
className: "dataforms-layouts-regular__field",
|
|
99
|
-
children: fieldDefinition.readOnly === true ? /*#__PURE__*/(0, _jsxRuntime.
|
|
100
|
-
children:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
className: "dataforms-layouts-regular__field-control",
|
|
105
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(fieldDefinition.render, {
|
|
99
|
+
children: fieldDefinition.readOnly === true ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
100
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
101
|
+
children: [!hideLabelFromVision && labelPosition !== 'none' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BaseControl.VisualLabel, {
|
|
102
|
+
children: fieldDefinition.label
|
|
103
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(fieldDefinition.render, {
|
|
106
104
|
item: data,
|
|
107
105
|
field: fieldDefinition
|
|
108
|
-
})
|
|
109
|
-
})
|
|
106
|
+
})]
|
|
107
|
+
})
|
|
110
108
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(fieldDefinition.Edit, {
|
|
111
109
|
data: data,
|
|
112
110
|
field: fieldDefinition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_components","_dataformContext","_dataFormLayout","_isCombinedField","_normalizeFormFields","_jsxRuntime","Header","title","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","FormRegularField","data","field","onChange","hideLabelFromVision","fields","useContext","DataFormContext","form","useMemo","layout","DEFAULT_LAYOUT","isCombinedField","Fragment","label","DataFormLayout","normalizeLayout","type","labelPosition","fieldDefinition","find","fieldDef","id","Edit","clsx","readOnly","render","item"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tForm,\n\tFieldLayoutProps,\n\tNormalizedRegularLayout,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT, normalizeLayout } from '../../normalize-form-fields';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-regular__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\nexport default function FormRegularField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\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\tif ( isCombinedField( field ) ) {\n\t\treturn (\n\t\t\t<>\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<DataFormLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tform={ form }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst layout: NormalizedRegularLayout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'regular',\n\t} ) as NormalizedRegularLayout;\n\n\tconst labelPosition = layout.labelPosition;\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\tif ( labelPosition === 'side' ) {\n\t\treturn (\n\t\t\t<HStack className=\"dataforms-layouts-regular__field\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'dataforms-layouts-regular__field-label',\n\t\t\t\t\t\t`dataforms-layouts-regular__field-label--label-position-${ labelPosition }`\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-regular__field-control\">\n\t\t\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<fieldDefinition.Edit\n\t\t\t\t\t\t\tkey={ fieldDefinition.id }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</HStack>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"dataforms-layouts-regular__field\">\n\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t<>\n\t\t\t\t\t{ ! hideLabelFromVision && labelPosition !== 'none' && (\n\t\t\t\t\t\t<
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_components","_dataformContext","_dataFormLayout","_isCombinedField","_normalizeFormFields","_jsxRuntime","Header","title","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","FormRegularField","data","field","onChange","hideLabelFromVision","fields","useContext","DataFormContext","form","useMemo","layout","DEFAULT_LAYOUT","isCombinedField","Fragment","label","DataFormLayout","normalizeLayout","type","labelPosition","fieldDefinition","find","fieldDef","id","Edit","clsx","readOnly","render","item","BaseControl","VisualLabel"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tBaseControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tForm,\n\tFieldLayoutProps,\n\tNormalizedRegularLayout,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT, normalizeLayout } from '../../normalize-form-fields';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-regular__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\nexport default function FormRegularField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\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\tif ( isCombinedField( field ) ) {\n\t\treturn (\n\t\t\t<>\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<DataFormLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tform={ form }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst layout: NormalizedRegularLayout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'regular',\n\t} ) as NormalizedRegularLayout;\n\n\tconst labelPosition = layout.labelPosition;\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\tif ( labelPosition === 'side' ) {\n\t\treturn (\n\t\t\t<HStack className=\"dataforms-layouts-regular__field\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'dataforms-layouts-regular__field-label',\n\t\t\t\t\t\t`dataforms-layouts-regular__field-label--label-position-${ labelPosition }`\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-regular__field-control\">\n\t\t\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<fieldDefinition.Edit\n\t\t\t\t\t\t\tkey={ fieldDefinition.id }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</HStack>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"dataforms-layouts-regular__field\">\n\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t<>\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! hideLabelFromVision && labelPosition !== 'none' && (\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<fieldDefinition.Edit\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\thideLabelFromVision={\n\t\t\t\t\t\tlabelPosition === 'none' ? true : hideLabelFromVision\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@ var _dataviewsContext = _interopRequireDefault(require("../../components/datavie
|
|
|
18
18
|
var _dataviewsBulkActions = require("../../components/dataviews-bulk-actions");
|
|
19
19
|
var _itemClickWrapper = require("../utils/item-click-wrapper");
|
|
20
20
|
var _gridItems = require("../utils/grid-items");
|
|
21
|
+
var _getDataByGroup = _interopRequireDefault(require("../utils/get-data-by-group"));
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
23
|
/**
|
|
23
24
|
* External dependencies
|
|
@@ -256,18 +257,7 @@ function ViewGrid({
|
|
|
256
257
|
*/
|
|
257
258
|
const size = '900px';
|
|
258
259
|
const groupField = view.groupByField ? fields.find(f => f.id === view.groupByField) : null;
|
|
259
|
-
|
|
260
|
-
// Group data by groupByField if specified
|
|
261
|
-
const dataByGroup = groupField ? data.reduce((groups, item) => {
|
|
262
|
-
const groupName = groupField.getValue({
|
|
263
|
-
item
|
|
264
|
-
});
|
|
265
|
-
if (!groups.has(groupName)) {
|
|
266
|
-
groups.set(groupName, []);
|
|
267
|
-
}
|
|
268
|
-
groups.get(groupName)?.push(item);
|
|
269
|
-
return groups;
|
|
270
|
-
}, new Map()) : null;
|
|
260
|
+
const dataByGroup = groupField ? (0, _getDataByGroup.default)(data, groupField) : null;
|
|
271
261
|
const isInfiniteScroll = view.infiniteScrollEnabled && !dataByGroup;
|
|
272
262
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
273
263
|
children: [
|
|
@@ -348,9 +338,9 @@ function ViewGrid({
|
|
|
348
338
|
'dataviews-loading': isLoading,
|
|
349
339
|
'dataviews-no-results': !isLoading
|
|
350
340
|
}),
|
|
351
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
352
|
-
children:
|
|
353
|
-
})
|
|
341
|
+
children: isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
342
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {})
|
|
343
|
+
}) : empty
|
|
354
344
|
}), hasData && isLoading && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
355
345
|
className: "dataviews-loading-more",
|
|
356
346
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_compose","_keycodes","_element","_lockUnlock","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsContext","_dataviewsBulkActions","_itemClickWrapper","_gridItems","_jsxRuntime","Badge","unlock","componentsPrivateApis","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","config","posinset","showTitle","showMedia","showDescription","infiniteScrollEnabled","hasBulkAction","useHasAPossibleBulkAction","id","instanceId","useInstanceId","isSelected","includes","renderedMediaField","render","jsx","field","renderedTitleField","shouldRenderMedia","mediaA11yProps","titleA11yProps","__","paginationInfo","useContext","DataViewsContext","jsxs","__experimentalVStack","spacing","className","clsx","onClickCapture","event","isAppleOS","metaKey","ctrlKey","stopPropagation","preventDefault","filter","itemId","role","undefined","totalItems","children","ItemClickWrapper","default","disabled","length","isCompact","__experimentalHStack","justify","wrap","alignment","map","Flex","gap","expanded","style","height","direction","Fragment","Tooltip","text","label","FlexItem","header","maxHeight","ViewGrid","data","fields","isLoading","empty","_view$fields","resizeObserverRef","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","useSomeItemHasAPossibleBulkAction","usedPreviewSize","previewSize","size","groupField","groupByField","dataByGroup","groups","groupName","getValue","has","set","get","Map","isInfiniteScroll","Array","from","entries","groupItems","sprintf","GridItems","ref","sizes","index","Spinner","_default","exports"],"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\tTooltip,\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';\nimport { GridItems } from '../utils/grid-items';\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\tposinset?: number;\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\tposinset,\n}: GridItemProps< Item > ) {\n\tconst {\n\t\tshowTitle = true,\n\t\tshowMedia = true,\n\t\tshowDescription = true,\n\t\tinfiniteScrollEnabled,\n\t} = 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\tconst shouldRenderMedia = showMedia && renderedMediaField;\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\tconst { paginationInfo } = useContext( DataViewsContext );\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\trole={ infiniteScrollEnabled ? 'article' : undefined }\n\t\t\taria-setsize={\n\t\t\t\tinfiniteScrollEnabled ? paginationInfo.totalItems : undefined\n\t\t\t}\n\t\t\taria-posinset={ posinset }\n\t\t>\n\t\t\t{ shouldRenderMedia && (\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 && shouldRenderMedia && (\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{ ! showTitle && shouldRenderMedia && !! actions?.length && (\n\t\t\t\t<div className=\"dataviews-view-grid__media-actions\">\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ showTitle && (\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t\t>\n\t\t\t\t\t<ItemClickWrapper\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__title-field dataviews-title-field\"\n\t\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t\t</ItemClickWrapper>\n\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\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<Tooltip text={ field.label }>\n\t\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\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\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\tconst isInfiniteScroll = view.infiniteScrollEnabled && ! dataByGroup;\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<GridItems\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\tpreviewSize={ usedPreviewSize }\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</GridItems>\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<GridItems\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tpreviewSize={ usedPreviewSize }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\tref={ resizeObserverRef }\n\t\t\t\t\t\trole={ isInfiniteScroll ? 'feed' : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item, index ) => {\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\tposinset={\n\t\t\t\t\t\t\t\t\t\tisInfiniteScroll ? index + 1 : undefined\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</GridItems>\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\t{ hasData && isLoading && (\n\t\t\t\t<p className=\"dataviews-loading-more\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</p>\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","_interopRequireDefault","require","_components","_i18n","_compose","_keycodes","_element","_lockUnlock","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsContext","_dataviewsBulkActions","_itemClickWrapper","_gridItems","_getDataByGroup","_jsxRuntime","Badge","unlock","componentsPrivateApis","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","config","posinset","showTitle","showMedia","showDescription","infiniteScrollEnabled","hasBulkAction","useHasAPossibleBulkAction","id","instanceId","useInstanceId","isSelected","includes","renderedMediaField","render","jsx","field","renderedTitleField","shouldRenderMedia","mediaA11yProps","titleA11yProps","__","paginationInfo","useContext","DataViewsContext","jsxs","__experimentalVStack","spacing","className","clsx","onClickCapture","event","isAppleOS","metaKey","ctrlKey","stopPropagation","preventDefault","filter","itemId","role","undefined","totalItems","children","ItemClickWrapper","default","disabled","length","isCompact","__experimentalHStack","justify","wrap","alignment","map","Flex","gap","expanded","style","height","direction","Fragment","Tooltip","text","label","FlexItem","header","maxHeight","ViewGrid","data","fields","isLoading","empty","_view$fields","resizeObserverRef","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","useSomeItemHasAPossibleBulkAction","usedPreviewSize","previewSize","size","groupField","groupByField","dataByGroup","getDataByGroup","isInfiniteScroll","Array","from","entries","groupName","groupItems","sprintf","GridItems","ref","sizes","index","Spinner","_default","exports"],"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\tTooltip,\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';\nimport { GridItems } from '../utils/grid-items';\nconst { Badge } = unlock( componentsPrivateApis );\nimport getDataByGroup from '../utils/get-data-by-group';\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\tposinset?: number;\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\tposinset,\n}: GridItemProps< Item > ) {\n\tconst {\n\t\tshowTitle = true,\n\t\tshowMedia = true,\n\t\tshowDescription = true,\n\t\tinfiniteScrollEnabled,\n\t} = 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\tconst shouldRenderMedia = showMedia && renderedMediaField;\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\tconst { paginationInfo } = useContext( DataViewsContext );\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\trole={ infiniteScrollEnabled ? 'article' : undefined }\n\t\t\taria-setsize={\n\t\t\t\tinfiniteScrollEnabled ? paginationInfo.totalItems : undefined\n\t\t\t}\n\t\t\taria-posinset={ posinset }\n\t\t>\n\t\t\t{ shouldRenderMedia && (\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 && shouldRenderMedia && (\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{ ! showTitle && shouldRenderMedia && !! actions?.length && (\n\t\t\t\t<div className=\"dataviews-view-grid__media-actions\">\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ showTitle && (\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t\t>\n\t\t\t\t\t<ItemClickWrapper\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__title-field dataviews-title-field\"\n\t\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t\t</ItemClickWrapper>\n\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\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<Tooltip text={ field.label }>\n\t\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\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\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\tconst dataByGroup = groupField ? getDataByGroup( data, groupField ) : null;\n\tconst isInfiniteScroll = view.infiniteScrollEnabled && ! dataByGroup;\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<GridItems\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\tpreviewSize={ usedPreviewSize }\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</GridItems>\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<GridItems\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tpreviewSize={ usedPreviewSize }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\tref={ resizeObserverRef }\n\t\t\t\t\t\trole={ isInfiniteScroll ? 'feed' : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item, index ) => {\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\tposinset={\n\t\t\t\t\t\t\t\t\t\tisInfiniteScroll ? index + 1 : undefined\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</GridItems>\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{ isLoading ? (\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tempty\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{ hasData && isLoading && (\n\t\t\t\t<p className=\"dataviews-loading-more\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ViewGrid;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ var _data = require("@wordpress/data");
|
|
|
15
15
|
var _lockUnlock = require("../../lock-unlock");
|
|
16
16
|
var _dataviewsItemActions = require("../../components/dataviews-item-actions");
|
|
17
17
|
var _dataviewsContext = _interopRequireDefault(require("../../components/dataviews-context"));
|
|
18
|
+
var _getDataByGroup = _interopRequireDefault(require("../utils/get-data-by-group"));
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
20
|
/**
|
|
20
21
|
* External dependencies
|
|
@@ -359,11 +360,55 @@ function ViewList(props) {
|
|
|
359
360
|
'dataviews-loading': isLoading,
|
|
360
361
|
'dataviews-no-results': !hasData && !isLoading
|
|
361
362
|
}),
|
|
362
|
-
children: !hasData && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
363
|
-
children:
|
|
363
|
+
children: !hasData && (isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
364
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {})
|
|
365
|
+
}) : empty)
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
const groupField = view.groupByField ? fields.find(field => field.id === view.groupByField) : null;
|
|
369
|
+
const dataByGroup = groupField ? (0, _getDataByGroup.default)(data, groupField) : null;
|
|
370
|
+
|
|
371
|
+
// Render data grouped by field
|
|
372
|
+
if (hasData && groupField && dataByGroup) {
|
|
373
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite, {
|
|
374
|
+
id: `${baseId}`,
|
|
375
|
+
render: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}),
|
|
376
|
+
className: "dataviews-view-list__group",
|
|
377
|
+
role: "grid",
|
|
378
|
+
activeId: activeCompositeId,
|
|
379
|
+
setActiveId: setActiveCompositeId,
|
|
380
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
381
|
+
spacing: 4,
|
|
382
|
+
className: (0, _clsx.default)('dataviews-view-list', className),
|
|
383
|
+
children: Array.from(dataByGroup.entries()).map(([groupName, groupItems]) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
384
|
+
spacing: 2,
|
|
385
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h3", {
|
|
386
|
+
className: "dataviews-view-list__group-header",
|
|
387
|
+
children: (0, _i18n.sprintf)(
|
|
388
|
+
// translators: 1: The label of the field e.g. "Date". 2: The value of the field, e.g.: "May 2022".
|
|
389
|
+
(0, _i18n.__)('%1$s: %2$s'), groupField.label, groupName)
|
|
390
|
+
}), groupItems.map(item => {
|
|
391
|
+
const id = generateCompositeItemIdPrefix(item);
|
|
392
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ListItem, {
|
|
393
|
+
view: view,
|
|
394
|
+
idPrefix: id,
|
|
395
|
+
actions: actions,
|
|
396
|
+
item: item,
|
|
397
|
+
isSelected: item === selectedItem,
|
|
398
|
+
onSelect: onSelect,
|
|
399
|
+
mediaField: mediaField,
|
|
400
|
+
titleField: titleField,
|
|
401
|
+
descriptionField: descriptionField,
|
|
402
|
+
otherFields: otherFields,
|
|
403
|
+
onDropdownTriggerKeyDown: onDropdownTriggerKeyDown
|
|
404
|
+
}, id);
|
|
405
|
+
})]
|
|
406
|
+
}, groupName))
|
|
364
407
|
})
|
|
365
408
|
});
|
|
366
409
|
}
|
|
410
|
+
|
|
411
|
+
// Render ungrouped data
|
|
367
412
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
368
413
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite, {
|
|
369
414
|
id: baseId,
|