@wordpress/dataviews 4.22.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.md +147 -32
- package/build/components/dataviews/index.js +71 -37
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +15 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/{filter-summary.js → filter.js} +108 -17
- package/build/components/dataviews-filters/filter.js.map +1 -0
- package/build/components/dataviews-filters/index.js +21 -20
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/input-widget.js +76 -0
- package/build/components/dataviews-filters/input-widget.js.map +1 -0
- package/build/components/dataviews-filters/search-widget.js +33 -39
- package/build/components/dataviews-filters/search-widget.js.map +1 -1
- package/build/components/dataviews-filters/utils.js +25 -0
- package/build/components/dataviews-filters/utils.js.map +1 -0
- package/build/components/dataviews-item-actions/index.js +1 -1
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +7 -2
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +4 -3
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +10 -19
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/constants.js +83 -2
- package/build/constants.js.map +1 -1
- package/build/dataform-controls/boolean.js +42 -0
- package/build/dataform-controls/boolean.js.map +1 -0
- package/build/dataform-controls/checkbox.js +44 -0
- package/build/dataform-controls/checkbox.js.map +1 -0
- package/build/dataform-controls/datetime.js +96 -2
- package/build/dataform-controls/datetime.js.map +1 -1
- package/build/dataform-controls/email.js +48 -0
- package/build/dataform-controls/email.js.map +1 -0
- package/build/dataform-controls/index.js +9 -1
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +49 -1
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/select.js +1 -0
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/text.js +3 -1
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/toggle-group.js +52 -0
- package/build/dataform-controls/toggle-group.js.map +1 -0
- package/build/dataforms-layouts/data-form-layout.js +1 -1
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/panel/index.js +14 -5
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +23 -4
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +89 -27
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +11 -6
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +9 -7
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +18 -13
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +46 -14
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +65 -0
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -0
- package/build/dataviews-layouts/utils/item-click-wrapper.js +77 -0
- package/build/dataviews-layouts/utils/item-click-wrapper.js.map +1 -0
- package/build/field-types/array.js +62 -0
- package/build/field-types/array.js.map +1 -0
- package/build/field-types/boolean.js +71 -0
- package/build/field-types/boolean.js.map +1 -0
- package/build/field-types/date.js +57 -0
- package/build/field-types/date.js.map +1 -0
- package/build/field-types/datetime.js +19 -1
- package/build/field-types/datetime.js.map +1 -1
- package/build/field-types/email.js +60 -0
- package/build/field-types/email.js.map +1 -0
- package/build/field-types/index.js +42 -1
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/integer.js +23 -1
- package/build/field-types/integer.js.map +1 -1
- package/build/field-types/media.js +31 -0
- package/build/field-types/media.js.map +1 -0
- package/build/field-types/text.js +23 -1
- package/build/field-types/text.js.map +1 -1
- package/build/filter-and-sort-data-view.js +174 -11
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/normalize-fields.js +72 -11
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils.js +11 -19
- package/build/utils.js.map +1 -1
- package/build-module/components/dataviews/index.js +74 -40
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +16 -2
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/filter.js +309 -0
- package/build-module/components/dataviews-filters/filter.js.map +1 -0
- package/build-module/components/dataviews-filters/index.js +22 -21
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/input-widget.js +69 -0
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -0
- package/build-module/components/dataviews-filters/search-widget.js +31 -37
- package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
- package/build-module/components/dataviews-filters/utils.js +18 -0
- package/build-module/components/dataviews-filters/utils.js.map +1 -0
- package/build-module/components/dataviews-item-actions/index.js +1 -1
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +7 -2
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +4 -4
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +9 -20
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/constants.js +82 -1
- package/build-module/constants.js.map +1 -1
- package/build-module/dataform-controls/boolean.js +35 -0
- package/build-module/dataform-controls/boolean.js.map +1 -0
- package/build-module/dataform-controls/checkbox.js +37 -0
- package/build-module/dataform-controls/checkbox.js.map +1 -0
- package/build-module/dataform-controls/datetime.js +98 -3
- package/build-module/dataform-controls/datetime.js.map +1 -1
- package/build-module/dataform-controls/email.js +41 -0
- package/build-module/dataform-controls/email.js.map +1 -0
- package/build-module/dataform-controls/index.js +9 -1
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +51 -3
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/select.js +1 -0
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/text.js +3 -1
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/toggle-group.js +45 -0
- package/build-module/dataform-controls/toggle-group.js.map +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/panel/index.js +14 -5
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +23 -4
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +90 -29
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +11 -6
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +9 -7
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +18 -12
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +47 -16
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +58 -0
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -0
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js +71 -0
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +1 -0
- package/build-module/field-types/array.js +57 -0
- package/build-module/field-types/array.js.map +1 -0
- package/build-module/field-types/boolean.js +65 -0
- package/build-module/field-types/boolean.js.map +1 -0
- package/build-module/field-types/date.js +51 -0
- package/build-module/field-types/date.js.map +1 -0
- package/build-module/field-types/datetime.js +19 -1
- package/build-module/field-types/datetime.js.map +1 -1
- package/build-module/field-types/email.js +54 -0
- package/build-module/field-types/email.js.map +1 -0
- package/build-module/field-types/index.js +42 -1
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/integer.js +23 -1
- package/build-module/field-types/integer.js.map +1 -1
- package/build-module/field-types/media.js +25 -0
- package/build-module/field-types/media.js.map +1 -0
- package/build-module/field-types/text.js +23 -1
- package/build-module/field-types/text.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +175 -12
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/normalize-fields.js +72 -11
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/utils.js +10 -17
- package/build-module/utils.js.map +1 -1
- package/build-style/style-rtl.css +315 -13
- package/build-style/style.css +315 -13
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +24 -3
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts +10 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +23 -4
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +14 -1
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/filter.d.ts +15 -0
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/index.d.ts +3 -8
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts +13 -0
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/search-widget.d.ts +4 -5
- package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/utils.d.ts +6 -0
- package/build-types/components/dataviews-filters/utils.d.ts.map +1 -0
- package/build-types/components/dataviews-layout/index.d.ts +5 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-pagination/index.d.ts +1 -1
- package/build-types/components/dataviews-pagination/index.d.ts.map +1 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -2
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts +3 -4
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/components/stories/index.story.d.ts +63 -0
- package/build-types/components/stories/index.story.d.ts.map +1 -0
- package/build-types/constants.d.ts +20 -3
- package/build-types/constants.d.ts.map +1 -1
- package/build-types/dataform-controls/boolean.d.ts +6 -0
- package/build-types/dataform-controls/boolean.d.ts.map +1 -0
- package/build-types/dataform-controls/checkbox.d.ts +6 -0
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -0
- package/build-types/dataform-controls/datetime.d.ts +1 -1
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts +6 -0
- package/build-types/dataform-controls/email.d.ts.map +1 -0
- 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 +1 -4
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle-group.d.ts +6 -0
- package/build-types/dataform-controls/toggle-group.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts +2 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +3 -3
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts +8 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/use-is-horizontal-scroll-end.d.ts +19 -0
- package/build-types/dataviews-layouts/table/use-is-horizontal-scroll-end.d.ts.map +1 -0
- package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts +15 -0
- package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -0
- package/build-types/field-types/array.d.ts +7 -0
- package/build-types/field-types/array.d.ts.map +1 -0
- package/build-types/field-types/boolean.d.ts +19 -0
- package/build-types/field-types/boolean.d.ts.map +1 -0
- package/build-types/field-types/date.d.ts +16 -0
- package/build-types/field-types/date.d.ts.map +1 -0
- package/build-types/field-types/datetime.d.ts +7 -1
- package/build-types/field-types/datetime.d.ts.map +1 -1
- package/build-types/field-types/email.d.ts +19 -0
- package/build-types/field-types/email.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts +2 -10
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +7 -1
- package/build-types/field-types/integer.d.ts.map +1 -1
- package/build-types/field-types/media.d.ts +16 -0
- package/build-types/field-types/media.d.ts.map +1 -0
- package/build-types/field-types/text.d.ts +7 -1
- package/build-types/field-types/text.d.ts.map +1 -1
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +74 -8
- package/build-types/types.d.ts.map +1 -1
- package/build-types/utils.d.ts +5 -2
- package/build-types/utils.d.ts.map +1 -1
- package/build-wp/index.js +3299 -1182
- package/package.json +18 -12
- package/src/components/dataform/stories/index.story.tsx +41 -20
- package/src/components/dataviews/index.tsx +108 -43
- package/src/components/dataviews/stories/fixtures.tsx +135 -69
- package/src/components/dataviews/stories/index.story.tsx +265 -7
- package/src/components/dataviews/stories/style.css +24 -3
- package/src/components/dataviews/style.scss +27 -0
- package/src/components/dataviews-context/index.ts +30 -2
- package/src/components/dataviews-filters/filter.tsx +603 -0
- package/src/components/dataviews-filters/index.tsx +23 -29
- package/src/components/dataviews-filters/input-widget.tsx +91 -0
- package/src/components/dataviews-filters/search-widget.tsx +51 -48
- package/src/components/dataviews-filters/style.scss +117 -14
- package/src/components/dataviews-filters/utils.ts +25 -0
- package/src/components/dataviews-item-actions/index.tsx +1 -1
- package/src/components/dataviews-layout/index.tsx +8 -1
- package/src/components/dataviews-pagination/index.tsx +4 -4
- package/src/components/dataviews-selection-checkbox/index.tsx +2 -2
- package/src/components/dataviews-view-config/index.tsx +10 -18
- package/src/components/stories/index.story.tsx +372 -0
- package/src/constants.ts +116 -1
- package/src/dataform-controls/boolean.tsx +30 -0
- package/src/dataform-controls/checkbox.tsx +31 -0
- package/src/dataform-controls/datetime.tsx +106 -2
- package/src/dataform-controls/email.tsx +42 -0
- package/src/dataform-controls/index.tsx +8 -0
- package/src/dataform-controls/integer.tsx +75 -1
- package/src/dataform-controls/select.tsx +1 -0
- package/src/dataform-controls/style.scss +5 -0
- package/src/dataform-controls/text.tsx +2 -1
- package/src/dataform-controls/toggle-group.tsx +59 -0
- package/src/dataforms-layouts/data-form-layout.tsx +1 -1
- package/src/dataforms-layouts/panel/index.tsx +19 -7
- package/src/dataforms-layouts/panel/style.scss +8 -1
- package/src/dataforms-layouts/regular/index.tsx +50 -17
- package/src/dataforms-layouts/regular/style.scss +4 -1
- package/src/dataviews-layouts/grid/index.tsx +180 -68
- package/src/dataviews-layouts/grid/style.scss +8 -0
- package/src/dataviews-layouts/list/index.tsx +12 -5
- package/src/dataviews-layouts/table/column-header-menu.tsx +10 -8
- package/src/dataviews-layouts/table/column-primary.tsx +26 -13
- package/src/dataviews-layouts/table/index.tsx +74 -10
- package/src/dataviews-layouts/table/style.scss +37 -1
- package/src/dataviews-layouts/table/use-is-horizontal-scroll-end.ts +82 -0
- package/src/dataviews-layouts/utils/item-click-wrapper.tsx +93 -0
- package/src/field-types/array.tsx +75 -0
- package/src/field-types/boolean.tsx +66 -0
- package/src/field-types/date.ts +56 -0
- package/src/field-types/datetime.tsx +46 -2
- package/src/field-types/email.tsx +79 -0
- package/src/field-types/index.tsx +50 -3
- package/src/field-types/integer.tsx +53 -2
- package/src/field-types/media.tsx +28 -0
- package/src/field-types/text.tsx +41 -2
- package/src/filter-and-sort-data-view.ts +270 -10
- package/src/normalize-fields.ts +116 -13
- package/src/test/dataviews.tsx +20 -2
- package/src/test/filter-and-sort-data-view.js +601 -25
- package/src/test/normalize-fields.ts +155 -0
- package/src/types.ts +112 -9
- package/src/utils.ts +10 -33
- package/tsconfig.json +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/dataviews-filters/filter-summary.js.map +0 -1
- package/build/dataviews-layouts/utils/get-clickable-item-props.js +0 -36
- package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +0 -1
- package/build-module/components/dataviews-filters/filter-summary.js +0 -218
- package/build-module/components/dataviews-filters/filter-summary.js.map +0 -1
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +0 -30
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +0 -1
- package/build-types/components/dataviews-filters/filter-summary.d.ts +0 -14
- package/build-types/components/dataviews-filters/filter-summary.d.ts.map +0 -1
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +0 -19
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +0 -1
- package/src/components/dataviews-filters/filter-summary.tsx +0 -338
- package/src/dataviews-layouts/utils/get-clickable-item-props.ts +0 -39
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
@@ -96,10 +101,13 @@ function PanelDropdown({
|
|
|
96
101
|
"aria-expanded": isOpen,
|
|
97
102
|
"aria-label": sprintf(
|
|
98
103
|
// translators: %s: Field name.
|
|
99
|
-
_x('Edit %s', 'field'), fieldLabel),
|
|
104
|
+
_x('Edit %s', 'field'), fieldLabel || ''),
|
|
100
105
|
onClick: onToggle,
|
|
106
|
+
disabled: fieldDefinition.readOnly === true,
|
|
107
|
+
accessibleWhenDisabled: true,
|
|
101
108
|
children: /*#__PURE__*/_jsx(fieldDefinition.render, {
|
|
102
|
-
item: data
|
|
109
|
+
item: data,
|
|
110
|
+
field: fieldDefinition
|
|
103
111
|
})
|
|
104
112
|
}),
|
|
105
113
|
renderContent: ({
|
|
@@ -143,7 +151,6 @@ export default function FormPanelField({
|
|
|
143
151
|
}
|
|
144
152
|
return fieldDef.id === field.id;
|
|
145
153
|
});
|
|
146
|
-
const labelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : 'side';
|
|
147
154
|
|
|
148
155
|
// Use internal state instead of a ref to make sure that the component
|
|
149
156
|
// re-renders when the popover's anchor updates.
|
|
@@ -151,13 +158,15 @@ export default function FormPanelField({
|
|
|
151
158
|
if (!fieldDefinition) {
|
|
152
159
|
return null;
|
|
153
160
|
}
|
|
161
|
+
const labelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : 'side';
|
|
162
|
+
const labelClassName = clsx('dataforms-layouts-panel__field-label', `dataforms-layouts-panel__field-label--label-position-${labelPosition}`);
|
|
154
163
|
const fieldLabel = isCombinedField(field) ? field.label : fieldDefinition?.label;
|
|
155
164
|
if (labelPosition === 'top') {
|
|
156
165
|
return /*#__PURE__*/_jsxs(VStack, {
|
|
157
166
|
className: "dataforms-layouts-panel__field",
|
|
158
167
|
spacing: 0,
|
|
159
168
|
children: [/*#__PURE__*/_jsx("div", {
|
|
160
|
-
className:
|
|
169
|
+
className: labelClassName,
|
|
161
170
|
style: {
|
|
162
171
|
paddingBottom: 0
|
|
163
172
|
},
|
|
@@ -194,7 +203,7 @@ export default function FormPanelField({
|
|
|
194
203
|
ref: setPopoverAnchor,
|
|
195
204
|
className: "dataforms-layouts-panel__field",
|
|
196
205
|
children: [/*#__PURE__*/_jsx("div", {
|
|
197
|
-
className:
|
|
206
|
+
className: labelClassName,
|
|
198
207
|
children: fieldLabel
|
|
199
208
|
}), /*#__PURE__*/_jsx("div", {
|
|
200
209
|
className: "dataforms-layouts-panel__field-control",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","Dropdown","Button","sprintf","__","_x","useState","useMemo","useContext","closeSmall","DataFormContext","DataFormLayout","isCombinedField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownHeader","title","onClose","className","spacing","children","alignment","level","size","label","icon","onClick","PanelDropdown","fieldDefinition","popoverAnchor","labelPosition","data","onChange","field","fieldLabel","form","type","fields","map","child","id","popoverProps","anchor","placement","offset","shift","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","includes","render","item","renderContent","FieldLayout","nestedField","_form$fields","hideLabelFromVision","length","FormPanelField","_field$labelPosition","find","fieldDef","filter","firstChildFieldId","setPopoverAnchor","style","paddingBottom","ref"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { useState, useMemo, useContext } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tForm,\n\tFormField,\n\tFieldLayoutProps,\n\tNormalizedField,\n\tSimpleFormField,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle?: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t{ title && (\n\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction PanelDropdown< Item >( {\n\tfieldDefinition,\n\tpopoverAnchor,\n\tlabelPosition = 'side',\n\tdata,\n\tonChange,\n\tfield,\n}: {\n\tfieldDefinition: NormalizedField< Item >;\n\tpopoverAnchor: HTMLElement | null;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tdata: Item;\n\tonChange: ( value: any ) => void;\n\tfield: FormField;\n} ) {\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\tconst form = useMemo( () => {\n\t\tif ( isCombinedField( field ) ) {\n\t\t\treturn {\n\t\t\t\ttype: 'regular' as const,\n\t\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: child,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t} ),\n\t\t\t};\n\t\t}\n\t\t// If not explicit children return the field id itself.\n\t\treturn {\n\t\t\ttype: 'regular' as const,\n\t\t\tfields: [ { id: field.id } ],\n\t\t};\n\t}, [ field ] );\n\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tfocusOnMount\n\t\t\ttoggleProps={ {\n\t\t\t\tsize: 'compact',\n\t\t\t\tvariant: 'tertiary',\n\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tvariant={\n\t\t\t\t\t\t[ 'none', 'top' ].includes( labelPosition )\n\t\t\t\t\t\t\t? 'link'\n\t\t\t\t\t\t\t: 'tertiary'\n\t\t\t\t\t}\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t_x( 'Edit %s', 'field' ),\n\t\t\t\t\t\tfieldLabel\n\t\t\t\t\t) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t>\n\t\t\t\t\t<fieldDefinition.render item={ data } />\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<DropdownHeader title={ fieldLabel } onClose={ onClose } />\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form as Form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, nestedField ) => (\n\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\tkey={ nestedField.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ nestedField }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\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</DataFormLayout>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default function FormPanelField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst fieldDefinition = fields.find( ( fieldDef ) => {\n\t\t// Default to the first child if it is a combined field.\n\t\tif ( isCombinedField( field ) ) {\n\t\t\tconst children = field.children.filter(\n\t\t\t\t( child ): child is string | SimpleFormField =>\n\t\t\t\t\ttypeof child === 'string' || ! isCombinedField( child )\n\t\t\t);\n\t\t\tconst firstChildFieldId =\n\t\t\t\ttypeof children[ 0 ] === 'string'\n\t\t\t\t\t? children[ 0 ]\n\t\t\t\t\t: children[ 0 ].id;\n\t\t\treturn fieldDef.id === firstChildFieldId;\n\t\t}\n\t\treturn fieldDef.id === field.id;\n\t} );\n\tconst labelPosition = field.labelPosition ?? 'side';\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 fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\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=\"dataforms-layouts-panel__field-label\"\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<PanelDropdown\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t\t/>\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<PanelDropdown\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t/>\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=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ fieldLabel }\n\t\t\t</div>\n\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t<PanelDropdown\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","Dropdown","Button","sprintf","__","_x","useState","useMemo","useContext","closeSmall","DataFormContext","DataFormLayout","isCombinedField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownHeader","title","onClose","className","spacing","children","alignment","level","size","label","icon","onClick","PanelDropdown","fieldDefinition","popoverAnchor","labelPosition","data","onChange","field","fieldLabel","form","type","fields","map","child","id","popoverProps","anchor","placement","offset","shift","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","includes","disabled","readOnly","accessibleWhenDisabled","render","item","renderContent","FieldLayout","nestedField","_form$fields","hideLabelFromVision","length","FormPanelField","_field$labelPosition","find","fieldDef","filter","firstChildFieldId","setPopoverAnchor","labelClassName","style","paddingBottom","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\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { useState, useMemo, useContext } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tForm,\n\tFormField,\n\tFieldLayoutProps,\n\tNormalizedField,\n\tSimpleFormField,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle?: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t{ title && (\n\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction PanelDropdown< Item >( {\n\tfieldDefinition,\n\tpopoverAnchor,\n\tlabelPosition = 'side',\n\tdata,\n\tonChange,\n\tfield,\n}: {\n\tfieldDefinition: NormalizedField< Item >;\n\tpopoverAnchor: HTMLElement | null;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tdata: Item;\n\tonChange: ( value: any ) => void;\n\tfield: FormField;\n} ) {\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\tconst form = useMemo( () => {\n\t\tif ( isCombinedField( field ) ) {\n\t\t\treturn {\n\t\t\t\ttype: 'regular' as const,\n\t\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: child,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t} ),\n\t\t\t};\n\t\t}\n\t\t// If not explicit children return the field id itself.\n\t\treturn {\n\t\t\ttype: 'regular' as const,\n\t\t\tfields: [ { id: field.id } ],\n\t\t};\n\t}, [ field ] );\n\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tfocusOnMount\n\t\t\ttoggleProps={ {\n\t\t\t\tsize: 'compact',\n\t\t\t\tvariant: 'tertiary',\n\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tvariant={\n\t\t\t\t\t\t[ 'none', 'top' ].includes( labelPosition )\n\t\t\t\t\t\t\t? 'link'\n\t\t\t\t\t\t\t: 'tertiary'\n\t\t\t\t\t}\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t_x( 'Edit %s', 'field' ),\n\t\t\t\t\t\tfieldLabel || ''\n\t\t\t\t\t) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t>\n\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<DropdownHeader title={ fieldLabel } onClose={ onClose } />\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form as Form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, nestedField ) => (\n\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\tkey={ nestedField.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ nestedField }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\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</DataFormLayout>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default function FormPanelField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst fieldDefinition = fields.find( ( fieldDef ) => {\n\t\t// Default to the first child if it is a combined field.\n\t\tif ( isCombinedField( field ) ) {\n\t\t\tconst children = field.children.filter(\n\t\t\t\t( child ): child is string | SimpleFormField =>\n\t\t\t\t\ttypeof child === 'string' || ! isCombinedField( child )\n\t\t\t);\n\t\t\tconst firstChildFieldId =\n\t\t\t\ttypeof children[ 0 ] === 'string'\n\t\t\t\t\t? children[ 0 ]\n\t\t\t\t\t: children[ 0 ].id;\n\t\t\treturn fieldDef.id === firstChildFieldId;\n\t\t}\n\t\treturn fieldDef.id === field.id;\n\t} );\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 labelPosition = field.labelPosition ?? 'side';\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\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<PanelDropdown\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t\t/>\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<PanelDropdown\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t/>\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<PanelDropdown\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
@@ -70,18 +75,21 @@ export default function FormRegularField({
|
|
|
70
75
|
}
|
|
71
76
|
const labelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : 'top';
|
|
72
77
|
const fieldDefinition = fields.find(fieldDef => fieldDef.id === field.id);
|
|
73
|
-
if (!fieldDefinition) {
|
|
78
|
+
if (!fieldDefinition || !fieldDefinition.Edit) {
|
|
74
79
|
return null;
|
|
75
80
|
}
|
|
76
81
|
if (labelPosition === 'side') {
|
|
77
82
|
return /*#__PURE__*/_jsxs(HStack, {
|
|
78
83
|
className: "dataforms-layouts-regular__field",
|
|
79
84
|
children: [/*#__PURE__*/_jsx("div", {
|
|
80
|
-
className:
|
|
85
|
+
className: clsx('dataforms-layouts-regular__field-label', `dataforms-layouts-regular__field-label--label-position-${labelPosition}`),
|
|
81
86
|
children: fieldDefinition.label
|
|
82
87
|
}), /*#__PURE__*/_jsx("div", {
|
|
83
88
|
className: "dataforms-layouts-regular__field-control",
|
|
84
|
-
children: /*#__PURE__*/_jsx(fieldDefinition.
|
|
89
|
+
children: fieldDefinition.readOnly === true ? /*#__PURE__*/_jsx(fieldDefinition.render, {
|
|
90
|
+
item: data,
|
|
91
|
+
field: fieldDefinition
|
|
92
|
+
}) : /*#__PURE__*/_jsx(fieldDefinition.Edit, {
|
|
85
93
|
data: data,
|
|
86
94
|
field: fieldDefinition,
|
|
87
95
|
onChange: onChange,
|
|
@@ -92,7 +100,18 @@ export default function FormRegularField({
|
|
|
92
100
|
}
|
|
93
101
|
return /*#__PURE__*/_jsx("div", {
|
|
94
102
|
className: "dataforms-layouts-regular__field",
|
|
95
|
-
children: /*#__PURE__*/
|
|
103
|
+
children: fieldDefinition.readOnly === true ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
104
|
+
children: [!hideLabelFromVision && labelPosition !== 'none' && /*#__PURE__*/_jsx("div", {
|
|
105
|
+
className: "dataforms-layouts-regular__field-label",
|
|
106
|
+
children: fieldDefinition.label
|
|
107
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
108
|
+
className: "dataforms-layouts-regular__field-control",
|
|
109
|
+
children: /*#__PURE__*/_jsx(fieldDefinition.render, {
|
|
110
|
+
item: data,
|
|
111
|
+
field: fieldDefinition
|
|
112
|
+
})
|
|
113
|
+
})]
|
|
114
|
+
}) : /*#__PURE__*/_jsx(fieldDefinition.Edit, {
|
|
96
115
|
data: data,
|
|
97
116
|
field: fieldDefinition,
|
|
98
117
|
onChange: onChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useMemo","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","DataFormContext","DataFormLayout","isCombinedField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Header","title","className","spacing","children","alignment","level","size","FormRegularField","data","field","onChange","hideLabelFromVision","_field$labelPosition","fields","form","map","child","id","type","label","labelPosition","fieldDefinition","find","fieldDef","Edit"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\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 { Form, FieldLayoutProps } from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\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 = useMemo( () => {\n\t\tif ( isCombinedField( field ) ) {\n\t\t\treturn {\n\t\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: child,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t} ),\n\t\t\t\ttype: 'regular' as const,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttype: 'regular' as const,\n\t\t\tfields: [],\n\t\t};\n\t}, [ field ] );\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 as 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 labelPosition = field.labelPosition ?? 'top';\n\tconst fieldDefinition = fields.find(\n\t\t( fieldDef ) => fieldDef.id === field.id\n\t);\n\n\tif ( ! fieldDefinition ) {\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
|
|
1
|
+
{"version":3,"names":["clsx","useContext","useMemo","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","DataFormContext","DataFormLayout","isCombinedField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Header","title","className","spacing","children","alignment","level","size","FormRegularField","data","field","onChange","hideLabelFromVision","_field$labelPosition","fields","form","map","child","id","type","label","labelPosition","fieldDefinition","find","fieldDef","Edit","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 { Form, FieldLayoutProps } from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\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 = useMemo( () => {\n\t\tif ( isCombinedField( field ) ) {\n\t\t\treturn {\n\t\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: child,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t} ),\n\t\t\t\ttype: 'regular' as const,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttype: 'regular' as const,\n\t\t\tfields: [],\n\t\t};\n\t}, [ field ] );\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 as 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 labelPosition = field.labelPosition ?? 'top';\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<div className=\"dataforms-layouts-regular__field-label\">\n\t\t\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<div className=\"dataforms-layouts-regular__field-control\">\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</div>\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":[]}
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import clsx from 'clsx';
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* WordPress dependencies
|
|
8
7
|
*/
|
|
9
8
|
import { __experimentalGrid as Grid, __experimentalHStack as HStack, __experimentalVStack as VStack, Spinner, Flex, FlexItem, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
10
|
-
import { __ } from '@wordpress/i18n';
|
|
9
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
11
10
|
import { useInstanceId } from '@wordpress/compose';
|
|
12
11
|
|
|
13
12
|
/**
|
|
@@ -17,7 +16,7 @@ import { unlock } from '../../lock-unlock';
|
|
|
17
16
|
import ItemActions from '../../components/dataviews-item-actions';
|
|
18
17
|
import DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';
|
|
19
18
|
import { useHasAPossibleBulkAction, useSomeItemHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';
|
|
20
|
-
import
|
|
19
|
+
import { ItemClickWrapper } from '../utils/item-click-wrapper';
|
|
21
20
|
import { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';
|
|
22
21
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
23
22
|
const {
|
|
@@ -29,6 +28,7 @@ function GridItem({
|
|
|
29
28
|
onChangeSelection,
|
|
30
29
|
onClickItem,
|
|
31
30
|
isItemClickable,
|
|
31
|
+
renderItemLink,
|
|
32
32
|
getItemId,
|
|
33
33
|
item,
|
|
34
34
|
actions,
|
|
@@ -49,23 +49,13 @@ function GridItem({
|
|
|
49
49
|
const instanceId = useInstanceId(GridItem);
|
|
50
50
|
const isSelected = selection.includes(id);
|
|
51
51
|
const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {
|
|
52
|
-
item: item
|
|
52
|
+
item: item,
|
|
53
|
+
field: mediaField
|
|
53
54
|
}) : null;
|
|
54
55
|
const renderedTitleField = showTitle && titleField?.render ? /*#__PURE__*/_jsx(titleField.render, {
|
|
55
|
-
item: item
|
|
56
|
+
item: item,
|
|
57
|
+
field: titleField
|
|
56
58
|
}) : null;
|
|
57
|
-
const clickableMediaItemProps = getClickableItemProps({
|
|
58
|
-
item,
|
|
59
|
-
isItemClickable,
|
|
60
|
-
onClickItem,
|
|
61
|
-
className: 'dataviews-view-grid__media'
|
|
62
|
-
});
|
|
63
|
-
const clickableTitleItemProps = getClickableItemProps({
|
|
64
|
-
item,
|
|
65
|
-
isItemClickable,
|
|
66
|
-
onClickItem,
|
|
67
|
-
className: 'dataviews-view-grid__title-field dataviews-title-field'
|
|
68
|
-
});
|
|
69
59
|
let mediaA11yProps;
|
|
70
60
|
let titleA11yProps;
|
|
71
61
|
if (isItemClickable(item) && onClickItem) {
|
|
@@ -97,8 +87,12 @@ function GridItem({
|
|
|
97
87
|
onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);
|
|
98
88
|
}
|
|
99
89
|
},
|
|
100
|
-
children: [showMedia && renderedMediaField && /*#__PURE__*/_jsx(
|
|
101
|
-
|
|
90
|
+
children: [showMedia && renderedMediaField && /*#__PURE__*/_jsx(ItemClickWrapper, {
|
|
91
|
+
item: item,
|
|
92
|
+
isItemClickable: isItemClickable,
|
|
93
|
+
onClickItem: onClickItem,
|
|
94
|
+
renderItemLink: renderItemLink,
|
|
95
|
+
className: "dataviews-view-grid__media",
|
|
102
96
|
...mediaA11yProps,
|
|
103
97
|
children: renderedMediaField
|
|
104
98
|
}), hasBulkActions && showMedia && renderedMediaField && /*#__PURE__*/_jsx(DataViewsSelectionCheckbox, {
|
|
@@ -111,8 +105,12 @@ function GridItem({
|
|
|
111
105
|
}), /*#__PURE__*/_jsxs(HStack, {
|
|
112
106
|
justify: "space-between",
|
|
113
107
|
className: "dataviews-view-grid__title-actions",
|
|
114
|
-
children: [/*#__PURE__*/_jsx(
|
|
115
|
-
|
|
108
|
+
children: [/*#__PURE__*/_jsx(ItemClickWrapper, {
|
|
109
|
+
item: item,
|
|
110
|
+
isItemClickable: isItemClickable,
|
|
111
|
+
onClickItem: onClickItem,
|
|
112
|
+
renderItemLink: renderItemLink,
|
|
113
|
+
className: "dataviews-view-grid__title-field dataviews-title-field",
|
|
116
114
|
...titleA11yProps,
|
|
117
115
|
children: renderedTitleField
|
|
118
116
|
}), !!actions?.length && /*#__PURE__*/_jsx(ItemActions, {
|
|
@@ -123,7 +121,8 @@ function GridItem({
|
|
|
123
121
|
}), /*#__PURE__*/_jsxs(VStack, {
|
|
124
122
|
spacing: 1,
|
|
125
123
|
children: [showDescription && descriptionField?.render && /*#__PURE__*/_jsx(descriptionField.render, {
|
|
126
|
-
item: item
|
|
124
|
+
item: item,
|
|
125
|
+
field: descriptionField
|
|
127
126
|
}), !!badgeFields?.length && /*#__PURE__*/_jsx(HStack, {
|
|
128
127
|
className: "dataviews-view-grid__badge-fields",
|
|
129
128
|
spacing: 2,
|
|
@@ -134,7 +133,8 @@ function GridItem({
|
|
|
134
133
|
return /*#__PURE__*/_jsx(Badge, {
|
|
135
134
|
className: "dataviews-view-grid__field-value",
|
|
136
135
|
children: /*#__PURE__*/_jsx(field.render, {
|
|
137
|
-
item: item
|
|
136
|
+
item: item,
|
|
137
|
+
field: field
|
|
138
138
|
})
|
|
139
139
|
}, field.id);
|
|
140
140
|
})
|
|
@@ -161,7 +161,8 @@ function GridItem({
|
|
|
161
161
|
maxHeight: 'none'
|
|
162
162
|
},
|
|
163
163
|
children: /*#__PURE__*/_jsx(field.render, {
|
|
164
|
-
item: item
|
|
164
|
+
item: item,
|
|
165
|
+
field: field
|
|
165
166
|
})
|
|
166
167
|
})]
|
|
167
168
|
})
|
|
@@ -171,7 +172,7 @@ function GridItem({
|
|
|
171
172
|
})]
|
|
172
173
|
}, id);
|
|
173
174
|
}
|
|
174
|
-
|
|
175
|
+
function ViewGrid({
|
|
175
176
|
actions,
|
|
176
177
|
data,
|
|
177
178
|
fields,
|
|
@@ -180,8 +181,10 @@ export default function ViewGrid({
|
|
|
180
181
|
onChangeSelection,
|
|
181
182
|
onClickItem,
|
|
182
183
|
isItemClickable,
|
|
184
|
+
renderItemLink,
|
|
183
185
|
selection,
|
|
184
|
-
view
|
|
186
|
+
view,
|
|
187
|
+
className
|
|
185
188
|
}) {
|
|
186
189
|
var _view$fields;
|
|
187
190
|
const titleField = fields.find(field => field.id === view?.titleField);
|
|
@@ -212,12 +215,66 @@ export default function ViewGrid({
|
|
|
212
215
|
const gridStyle = usedPreviewSize ? {
|
|
213
216
|
gridTemplateColumns: `repeat(${usedPreviewSize}, minmax(0, 1fr))`
|
|
214
217
|
} : {};
|
|
218
|
+
const groupField = view.groupByField ? fields.find(f => f.id === view.groupByField) : null;
|
|
219
|
+
|
|
220
|
+
// Group data by groupByField if specified
|
|
221
|
+
const dataByGroup = groupField ? data.reduce((groups, item) => {
|
|
222
|
+
const groupName = groupField.getValue({
|
|
223
|
+
item
|
|
224
|
+
});
|
|
225
|
+
if (!groups.has(groupName)) {
|
|
226
|
+
groups.set(groupName, []);
|
|
227
|
+
}
|
|
228
|
+
groups.get(groupName)?.push(item);
|
|
229
|
+
return groups;
|
|
230
|
+
}, new Map()) : null;
|
|
215
231
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
216
|
-
children: [
|
|
232
|
+
children: [
|
|
233
|
+
// Render multiple groups.
|
|
234
|
+
hasData && groupField && dataByGroup && /*#__PURE__*/_jsx(VStack, {
|
|
235
|
+
spacing: 4,
|
|
236
|
+
children: Array.from(dataByGroup.entries()).map(([groupName, groupItems]) => /*#__PURE__*/_jsxs(VStack, {
|
|
237
|
+
spacing: 2,
|
|
238
|
+
children: [/*#__PURE__*/_jsx("h3", {
|
|
239
|
+
className: "dataviews-view-grid__group-header",
|
|
240
|
+
children: sprintf(
|
|
241
|
+
// translators: 1: The label of the field e.g. "Date". 2: The value of the field, e.g.: "May 2022".
|
|
242
|
+
__('%1$s: %2$s'), groupField.label, groupName)
|
|
243
|
+
}), /*#__PURE__*/_jsx(Grid, {
|
|
244
|
+
gap: 8,
|
|
245
|
+
columns: 2,
|
|
246
|
+
alignment: "top",
|
|
247
|
+
className: clsx('dataviews-view-grid', className),
|
|
248
|
+
style: gridStyle,
|
|
249
|
+
"aria-busy": isLoading,
|
|
250
|
+
children: groupItems.map(item => {
|
|
251
|
+
return /*#__PURE__*/_jsx(GridItem, {
|
|
252
|
+
view: view,
|
|
253
|
+
selection: selection,
|
|
254
|
+
onChangeSelection: onChangeSelection,
|
|
255
|
+
onClickItem: onClickItem,
|
|
256
|
+
isItemClickable: isItemClickable,
|
|
257
|
+
renderItemLink: renderItemLink,
|
|
258
|
+
getItemId: getItemId,
|
|
259
|
+
item: item,
|
|
260
|
+
actions: actions,
|
|
261
|
+
mediaField: mediaField,
|
|
262
|
+
titleField: titleField,
|
|
263
|
+
descriptionField: descriptionField,
|
|
264
|
+
regularFields: regularFields,
|
|
265
|
+
badgeFields: badgeFields,
|
|
266
|
+
hasBulkActions: hasBulkActions
|
|
267
|
+
}, getItemId(item));
|
|
268
|
+
})
|
|
269
|
+
})]
|
|
270
|
+
}, groupName))
|
|
271
|
+
}),
|
|
272
|
+
// Render a single grid with all data.
|
|
273
|
+
hasData && !dataByGroup && /*#__PURE__*/_jsx(Grid, {
|
|
217
274
|
gap: 8,
|
|
218
275
|
columns: 2,
|
|
219
276
|
alignment: "top",
|
|
220
|
-
className:
|
|
277
|
+
className: clsx('dataviews-view-grid', className),
|
|
221
278
|
style: gridStyle,
|
|
222
279
|
"aria-busy": isLoading,
|
|
223
280
|
children: data.map(item => {
|
|
@@ -227,6 +284,7 @@ export default function ViewGrid({
|
|
|
227
284
|
onChangeSelection: onChangeSelection,
|
|
228
285
|
onClickItem: onClickItem,
|
|
229
286
|
isItemClickable: isItemClickable,
|
|
287
|
+
renderItemLink: renderItemLink,
|
|
230
288
|
getItemId: getItemId,
|
|
231
289
|
item: item,
|
|
232
290
|
actions: actions,
|
|
@@ -238,7 +296,9 @@ export default function ViewGrid({
|
|
|
238
296
|
hasBulkActions: hasBulkActions
|
|
239
297
|
}, getItemId(item));
|
|
240
298
|
})
|
|
241
|
-
}),
|
|
299
|
+
}),
|
|
300
|
+
// Render empty state.
|
|
301
|
+
!hasData && /*#__PURE__*/_jsx("div", {
|
|
242
302
|
className: clsx({
|
|
243
303
|
'dataviews-loading': isLoading,
|
|
244
304
|
'dataviews-no-results': !isLoading
|
|
@@ -249,4 +309,5 @@ export default function ViewGrid({
|
|
|
249
309
|
})]
|
|
250
310
|
});
|
|
251
311
|
}
|
|
312
|
+
export default ViewGrid;
|
|
252
313
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","privateApis","componentsPrivateApis","__","useInstanceId","unlock","ItemActions","DataViewsSelectionCheckbox","useHasAPossibleBulkAction","useSomeItemHasAPossibleBulkAction","getClickableItemProps","useUpdatedPreviewSizeOnViewportChange","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Badge","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","showTitle","showMedia","showDescription","hasBulkAction","id","instanceId","isSelected","includes","renderedMediaField","render","renderedTitleField","clickableMediaItemProps","className","clickableTitleItemProps","mediaA11yProps","titleA11yProps","spacing","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","disabled","justify","length","isCompact","wrap","alignment","map","field","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","_view$fields","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","updatedPreviewSize","usedPreviewSize","previewSize","gridStyle","gridTemplateColumns","columns"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport getClickableItemProps from '../utils/get-clickable-item-props';\nimport { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } />\n\t\t) : null;\n\n\tconst clickableMediaItemProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-grid__media',\n\t} );\n\n\tconst clickableTitleItemProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-grid__title-field dataviews-title-field',\n\t} );\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<div { ...clickableMediaItemProps } { ...mediaA11yProps }>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<div { ...clickableTitleItemProps } { ...titleA11yProps }>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</div>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t<descriptionField.render item={ item } />\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 item={ item } />\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\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\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;\n\tconst gridStyle = usedPreviewSize\n\t\t? {\n\t\t\t\tgridTemplateColumns: `repeat(${ usedPreviewSize }, minmax(0, 1fr))`,\n\t\t }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","privateApis","componentsPrivateApis","__","sprintf","useInstanceId","unlock","ItemActions","DataViewsSelectionCheckbox","useHasAPossibleBulkAction","useSomeItemHasAPossibleBulkAction","ItemClickWrapper","useUpdatedPreviewSizeOnViewportChange","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Badge","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","showTitle","showMedia","showDescription","hasBulkAction","id","instanceId","isSelected","includes","renderedMediaField","render","field","renderedTitleField","mediaA11yProps","titleA11yProps","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","disabled","justify","length","isCompact","wrap","alignment","map","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","_view$fields","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","updatedPreviewSize","usedPreviewSize","previewSize","gridStyle","gridTemplateColumns","groupField","groupByField","dataByGroup","groups","groupName","getValue","has","set","get","Map","Array","from","entries","groupItems","label","columns"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nimport { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } field={ mediaField } />\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-grid__media\"\n\t\t\t\t\t{ ...mediaA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-grid__title-field dataviews-title-field\"\n\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ descriptionField }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nfunction ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tselection,\n\tview,\n\tclassName,\n}: ViewGridProps< Item > ) {\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;\n\tconst gridStyle = usedPreviewSize\n\t\t? {\n\t\t\t\tgridTemplateColumns: `repeat(${ usedPreviewSize }, minmax(0, 1fr))`,\n\t\t }\n\t\t: {};\n\n\tconst groupField = view.groupByField\n\t\t? fields.find( ( f ) => f.id === view.groupByField )\n\t\t: null;\n\n\t// Group data by groupByField if specified\n\tconst dataByGroup = groupField\n\t\t? data.reduce( ( groups: Map< string, typeof data >, item ) => {\n\t\t\t\tconst groupName = groupField.getValue( { item } );\n\t\t\t\tif ( ! groups.has( groupName ) ) {\n\t\t\t\t\tgroups.set( groupName, [] );\n\t\t\t\t}\n\t\t\t\tgroups.get( groupName )?.push( item );\n\t\t\t\treturn groups;\n\t\t }, new Map< string, typeof data >() )\n\t\t: null;\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\t// Render multiple groups.\n\t\t\t\thasData && groupField && dataByGroup && (\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t{ Array.from( dataByGroup.entries() ).map(\n\t\t\t\t\t\t\t( [ groupName, groupItems ] ) => (\n\t\t\t\t\t\t\t\t<VStack key={ groupName } spacing={ 2 }>\n\t\t\t\t\t\t\t\t\t<h3 className=\"dataviews-view-grid__group-header\">\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: 1: The label of the field e.g. \"Date\". 2: The value of the field, e.g.: \"May 2022\".\n\t\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\t\tgroupField.label,\n\t\t\t\t\t\t\t\t\t\t\tgroupName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'dataviews-view-grid',\n\t\t\t\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ groupItems.map( ( item ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\trenderItemLink={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderItemLink\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tregularFields={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tregularFields\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t{\n\t\t\t\t// Render a single grid with all data.\n\t\t\t\thasData && ! dataByGroup && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Grid>\n\t\t\t\t)\n\t\t\t}\n\t\t\t{\n\t\t\t\t// Render empty state.\n\t\t\t\t! hasData && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ViewGrid;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -135,11 +135,13 @@ function ListItem({
|
|
|
135
135
|
const renderedMediaField = showMedia && mediaField?.render ? /*#__PURE__*/_jsx("div", {
|
|
136
136
|
className: "dataviews-view-list__media-wrapper",
|
|
137
137
|
children: /*#__PURE__*/_jsx(mediaField.render, {
|
|
138
|
-
item: item
|
|
138
|
+
item: item,
|
|
139
|
+
field: mediaField
|
|
139
140
|
})
|
|
140
141
|
}) : null;
|
|
141
142
|
const renderedTitleField = showTitle && titleField?.render ? /*#__PURE__*/_jsx(titleField.render, {
|
|
142
|
-
item: item
|
|
143
|
+
item: item,
|
|
144
|
+
field: titleField
|
|
143
145
|
}) : null;
|
|
144
146
|
const usedActions = eligibleActions?.length > 0 && /*#__PURE__*/_jsxs(HStack, {
|
|
145
147
|
spacing: 3,
|
|
@@ -219,7 +221,8 @@ function ListItem({
|
|
|
219
221
|
}), showDescription && descriptionField?.render && /*#__PURE__*/_jsx("div", {
|
|
220
222
|
className: "dataviews-view-list__field",
|
|
221
223
|
children: /*#__PURE__*/_jsx(descriptionField.render, {
|
|
222
|
-
item: item
|
|
224
|
+
item: item,
|
|
225
|
+
field: descriptionField
|
|
223
226
|
})
|
|
224
227
|
}), /*#__PURE__*/_jsx("div", {
|
|
225
228
|
className: "dataviews-view-list__fields",
|
|
@@ -233,7 +236,8 @@ function ListItem({
|
|
|
233
236
|
}), /*#__PURE__*/_jsx("span", {
|
|
234
237
|
className: "dataviews-view-list__field-value",
|
|
235
238
|
children: /*#__PURE__*/_jsx(field.render, {
|
|
236
|
-
item: item
|
|
239
|
+
item: item,
|
|
240
|
+
field: field
|
|
237
241
|
})
|
|
238
242
|
})]
|
|
239
243
|
}, field.id))
|
|
@@ -256,7 +260,8 @@ export default function ViewList(props) {
|
|
|
256
260
|
isLoading,
|
|
257
261
|
onChangeSelection,
|
|
258
262
|
selection,
|
|
259
|
-
view
|
|
263
|
+
view,
|
|
264
|
+
className
|
|
260
265
|
} = props;
|
|
261
266
|
const baseId = useInstanceId(ViewList, 'view-list');
|
|
262
267
|
const selectedItem = data?.findLast(item => selection.includes(getItemId(item)));
|
|
@@ -338,7 +343,7 @@ export default function ViewList(props) {
|
|
|
338
343
|
return /*#__PURE__*/_jsx(Composite, {
|
|
339
344
|
id: baseId,
|
|
340
345
|
render: /*#__PURE__*/_jsx("div", {}),
|
|
341
|
-
className:
|
|
346
|
+
className: clsx('dataviews-view-list', className),
|
|
342
347
|
role: "grid",
|
|
343
348
|
activeId: activeCompositeId,
|
|
344
349
|
setActiveId: setActiveCompositeId,
|