@wordpress/dataviews 6.0.1-next.46f643fa0.0 → 7.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 +38 -1
- package/README.md +50 -16
- package/build/components/dataviews/index.js +46 -6
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +5 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/filter.js +13 -6
- package/build/components/dataviews-filters/filter.js.map +1 -1
- package/build/components/dataviews-filters/index.js +16 -5
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/reset-filters.js +2 -2
- package/build/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +1 -10
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +5 -2
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +1 -1
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +10 -6
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js +47 -0
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
- package/build/dataform-controls/array.js +70 -0
- package/build/dataform-controls/array.js.map +1 -0
- package/build/dataform-controls/boolean.js +15 -7
- package/build/dataform-controls/boolean.js.map +1 -1
- package/build/dataform-controls/email.js +14 -7
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +3 -1
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +14 -7
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/select.js +12 -5
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/text.js +14 -7
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataforms-layouts/card/index.js +137 -0
- package/build/dataforms-layouts/card/index.js.map +1 -0
- package/build/dataforms-layouts/data-form-layout.js +2 -2
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +4 -0
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/panel/dropdown.js +124 -0
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +34 -149
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/panel/modal.js +125 -0
- package/build/dataforms-layouts/panel/modal.js.map +1 -0
- package/build/dataforms-layouts/regular/index.js +10 -21
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +27 -9
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +11 -11
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +48 -29
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +3 -0
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +14 -2
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +71 -11
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/field-types/array.js +2 -2
- package/build/field-types/array.js.map +1 -1
- package/build/normalize-form-fields.js +52 -13
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +48 -8
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +5 -1
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/filter.js +13 -6
- package/build-module/components/dataviews-filters/filter.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +16 -5
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/reset-filters.js +2 -2
- package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +1 -10
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +5 -2
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +1 -1
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +10 -6
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +39 -0
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
- package/build-module/dataform-controls/array.js +63 -0
- package/build-module/dataform-controls/array.js.map +1 -0
- package/build-module/dataform-controls/boolean.js +15 -7
- package/build-module/dataform-controls/boolean.js.map +1 -1
- package/build-module/dataform-controls/email.js +15 -8
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +3 -1
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +15 -8
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/select.js +12 -5
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/text.js +15 -8
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataforms-layouts/card/index.js +128 -0
- package/build-module/dataforms-layouts/card/index.js.map +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js +2 -2
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +4 -0
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/dropdown.js +118 -0
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +37 -152
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/modal.js +119 -0
- package/build-module/dataforms-layouts/panel/modal.js.map +1 -0
- package/build-module/dataforms-layouts/regular/index.js +10 -21
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +28 -10
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +11 -11
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +50 -31
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +3 -0
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +14 -2
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +72 -12
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/field-types/array.js +2 -2
- package/build-module/field-types/array.js.map +1 -1
- package/build-module/normalize-form-fields.js +50 -13
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +78 -20
- package/build-style/style.css +78 -20
- package/build-types/components/dataform/stories/index.story.d.ts +41 -17
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +6 -2
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +18 -4
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +6 -2
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/reset-filters.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts +2 -0
- package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts.map +1 -0
- package/build-types/dataform-controls/array.d.ts +6 -0
- package/build-types/dataform-controls/array.d.ts.map +1 -0
- package/build-types/dataform-controls/boolean.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataforms-layouts/card/index.d.ts +13 -0
- package/build-types/dataforms-layouts/card/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts +14 -0
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts +13 -0
- package/build-types/dataforms-layouts/panel/modal.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 +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
- 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.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/field-types/boolean.d.ts +1 -1
- package/build-types/normalize-form-fields.d.ts +10 -3
- package/build-types/normalize-form-fields.d.ts.map +1 -1
- package/build-types/test/normalize-form-fields.d.ts +2 -0
- package/build-types/test/normalize-form-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +64 -7
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +3219 -1186
- package/package.json +15 -15
- package/src/components/dataform/stories/index.story.tsx +479 -91
- package/src/components/dataviews/index.tsx +74 -16
- package/src/components/dataviews/stories/fixtures.tsx +100 -8
- package/src/components/dataviews/stories/index.story.tsx +185 -32
- package/src/components/dataviews/stories/style.css +6 -0
- package/src/components/dataviews/style.scss +4 -0
- package/src/components/dataviews-context/index.ts +8 -2
- package/src/components/dataviews-filters/filter.tsx +15 -5
- package/src/components/dataviews-filters/index.tsx +17 -2
- package/src/components/dataviews-filters/reset-filters.tsx +4 -2
- package/src/components/dataviews-filters/style.scss +5 -1
- package/src/components/dataviews-item-actions/index.tsx +7 -16
- package/src/components/dataviews-layout/index.tsx +3 -0
- package/src/components/dataviews-pagination/index.tsx +1 -1
- package/src/components/dataviews-view-config/index.tsx +16 -6
- package/src/components/dataviews-view-config/infinite-scroll-toggle.tsx +39 -0
- package/src/dataform-controls/array.tsx +85 -0
- package/src/dataform-controls/boolean.tsx +24 -10
- package/src/dataform-controls/email.tsx +24 -11
- package/src/dataform-controls/index.tsx +3 -1
- package/src/dataform-controls/integer.tsx +27 -13
- package/src/dataform-controls/select.tsx +23 -13
- package/src/dataform-controls/text.tsx +24 -11
- package/src/dataforms-layouts/card/index.tsx +154 -0
- package/src/dataforms-layouts/card/style.scss +3 -0
- package/src/dataforms-layouts/data-form-layout.tsx +2 -2
- package/src/dataforms-layouts/index.tsx +5 -0
- package/src/dataforms-layouts/panel/dropdown.tsx +160 -0
- package/src/dataforms-layouts/panel/index.tsx +49 -189
- package/src/dataforms-layouts/panel/modal.tsx +165 -0
- package/src/dataforms-layouts/panel/style.scss +4 -0
- package/src/dataforms-layouts/regular/index.tsx +20 -23
- package/src/dataviews-layouts/grid/index.tsx +34 -6
- package/src/dataviews-layouts/grid/preview-size-picker.tsx +15 -13
- package/src/dataviews-layouts/grid/style.scss +5 -3
- package/src/dataviews-layouts/list/index.tsx +67 -34
- package/src/dataviews-layouts/list/style.scss +7 -3
- package/src/dataviews-layouts/table/column-header-menu.tsx +4 -0
- package/src/dataviews-layouts/table/column-primary.tsx +24 -4
- package/src/dataviews-layouts/table/index.tsx +138 -36
- package/src/dataviews-layouts/table/style.scss +23 -1
- package/src/field-types/array.tsx +1 -1
- package/src/normalize-form-fields.ts +63 -17
- package/src/test/dataform.tsx +181 -3
- package/src/test/dataviews.tsx +38 -0
- package/src/test/filter-and-sort-data-view.js +126 -65
- package/src/test/normalize-form-fields.ts +247 -0
- package/src/types.ts +89 -7
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _components = require("@wordpress/components");
|
|
8
8
|
var _itemClickWrapper = require("../utils/item-click-wrapper");
|
|
9
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
/**
|
|
11
12
|
* External dependencies
|
|
@@ -32,8 +33,17 @@ function ColumnPrimary({
|
|
|
32
33
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
33
34
|
spacing: 3,
|
|
34
35
|
justify: "flex-start",
|
|
35
|
-
children: [mediaField && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
36
|
+
children: [mediaField && /*#__PURE__*/(0, _jsxRuntime.jsx)(_itemClickWrapper.ItemClickWrapper, {
|
|
37
|
+
item: item,
|
|
38
|
+
isItemClickable: isItemClickable,
|
|
39
|
+
onClickItem: onClickItem,
|
|
40
|
+
renderItemLink: renderItemLink,
|
|
36
41
|
className: "dataviews-view-table__cell-content-wrapper dataviews-column-primary__media",
|
|
42
|
+
"aria-label": titleField ? (0, _i18n.sprintf)(
|
|
43
|
+
// translators: %s is the item title.
|
|
44
|
+
(0, _i18n.__)('Click item: %s'), titleField.getValue?.({
|
|
45
|
+
item
|
|
46
|
+
})) : undefined,
|
|
37
47
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(mediaField.render, {
|
|
38
48
|
item: item,
|
|
39
49
|
field: mediaField,
|
|
@@ -43,13 +53,15 @@ function ColumnPrimary({
|
|
|
43
53
|
})
|
|
44
54
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
45
55
|
spacing: 0,
|
|
56
|
+
alignment: "flex-start",
|
|
57
|
+
className: "dataviews-view-table__primary-column-content",
|
|
46
58
|
children: [titleField && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_itemClickWrapper.ItemClickWrapper, {
|
|
47
59
|
item: item,
|
|
48
60
|
isItemClickable: isItemClickable,
|
|
49
61
|
onClickItem: onClickItem,
|
|
50
62
|
renderItemLink: renderItemLink,
|
|
51
63
|
className: "dataviews-view-table__cell-content-wrapper dataviews-title-field",
|
|
52
|
-
children: [level !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
64
|
+
children: [level !== undefined && level > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
53
65
|
className: "dataviews-view-table__level",
|
|
54
66
|
children: ['—'.repeat(level), "\xA0"]
|
|
55
67
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(titleField.render, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_itemClickWrapper","_jsxRuntime","ColumnPrimary","item","level","titleField","mediaField","descriptionField","onClickItem","renderItemLink","isItemClickable","jsxs","__experimentalHStack","spacing","justify","children","jsx","className","render","field","config","sizes","__experimentalVStack","
|
|
1
|
+
{"version":3,"names":["_components","require","_itemClickWrapper","_i18n","_jsxRuntime","ColumnPrimary","item","level","titleField","mediaField","descriptionField","onClickItem","renderItemLink","isItemClickable","jsxs","__experimentalHStack","spacing","justify","children","jsx","ItemClickWrapper","className","sprintf","__","getValue","undefined","render","field","config","sizes","__experimentalVStack","alignment","repeat","_default","exports","default"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-primary.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nimport { sprintf, __ } from '@wordpress/i18n';\n\nfunction ColumnPrimary< Item >( {\n\titem,\n\tlevel,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable,\n}: {\n\titem: Item;\n\tlevel?: number;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\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} ) {\n\treturn (\n\t\t<HStack spacing={ 3 } justify=\"flex-start\">\n\t\t\t{ mediaField && (\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-table__cell-content-wrapper dataviews-column-primary__media\"\n\t\t\t\t\taria-label={\n\t\t\t\t\t\ttitleField\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s is the item title.\n\t\t\t\t\t\t\t\t\t__( 'Click item: %s' ),\n\t\t\t\t\t\t\t\t\ttitleField.getValue?.( { item } )\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<mediaField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ mediaField }\n\t\t\t\t\t\tconfig={ { sizes: '32px' } }\n\t\t\t\t\t/>\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t<VStack\n\t\t\t\tspacing={ 0 }\n\t\t\t\talignment=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-view-table__primary-column-content\"\n\t\t\t>\n\t\t\t\t{ titleField && (\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-table__cell-content-wrapper dataviews-title-field\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ level !== undefined && level > 0 && (\n\t\t\t\t\t\t\t<span className=\"dataviews-view-table__level\">\n\t\t\t\t\t\t\t\t{ '—'.repeat( level ) } \n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t\t\t\t</ItemClickWrapper>\n\t\t\t\t) }\n\t\t\t\t{ descriptionField && (\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</VStack>\n\t\t</HStack>\n\t);\n}\n\nexport default ColumnPrimary;\n"],"mappings":";;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AASA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAlB9C;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAKA,SAASI,aAAaA,CAAU;EAC/BC,IAAI;EACJC,KAAK;EACLC,UAAU;EACVC,UAAU;EACVC,gBAAgB;EAChBC,WAAW;EACXC,cAAc;EACdC;AAcD,CAAC,EAAG;EACH,oBACC,IAAAT,WAAA,CAAAU,IAAA,EAACd,WAAA,CAAAe,oBAAM;IAACC,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC,YAAY;IAAAC,QAAA,GACvCT,UAAU,iBACX,IAAAL,WAAA,CAAAe,GAAA,EAACjB,iBAAA,CAAAkB,gBAAgB;MAChBd,IAAI,EAAGA,IAAM;MACbO,eAAe,EAAGA,eAAiB;MACnCF,WAAW,EAAGA,WAAa;MAC3BC,cAAc,EAAGA,cAAgB;MACjCS,SAAS,EAAC,4EAA4E;MACtF,cACCb,UAAU,GACP,IAAAc,aAAO;MACP;MACA,IAAAC,QAAE,EAAE,gBAAiB,CAAC,EACtBf,UAAU,CAACgB,QAAQ,GAAI;QAAElB;MAAK,CAAE,CAChC,CAAC,GACDmB,SACH;MAAAP,QAAA,eAED,IAAAd,WAAA,CAAAe,GAAA,EAACV,UAAU,CAACiB,MAAM;QACjBpB,IAAI,EAAGA,IAAM;QACbqB,KAAK,EAAGlB,UAAY;QACpBmB,MAAM,EAAG;UAAEC,KAAK,EAAE;QAAO;MAAG,CAC5B;IAAC,CACe,CAClB,eACD,IAAAzB,WAAA,CAAAU,IAAA,EAACd,WAAA,CAAA8B,oBAAM;MACNd,OAAO,EAAG,CAAG;MACbe,SAAS,EAAC,YAAY;MACtBV,SAAS,EAAC,8CAA8C;MAAAH,QAAA,GAEtDV,UAAU,iBACX,IAAAJ,WAAA,CAAAU,IAAA,EAACZ,iBAAA,CAAAkB,gBAAgB;QAChBd,IAAI,EAAGA,IAAM;QACbO,eAAe,EAAGA,eAAiB;QACnCF,WAAW,EAAGA,WAAa;QAC3BC,cAAc,EAAGA,cAAgB;QACjCS,SAAS,EAAC,kEAAkE;QAAAH,QAAA,GAE1EX,KAAK,KAAKkB,SAAS,IAAIlB,KAAK,GAAG,CAAC,iBACjC,IAAAH,WAAA,CAAAU,IAAA;UAAMO,SAAS,EAAC,6BAA6B;UAAAH,QAAA,GAC1C,GAAG,CAACc,MAAM,CAAEzB,KAAM,CAAC,EAAE,MACxB;QAAA,CAAM,CACN,eACD,IAAAH,WAAA,CAAAe,GAAA,EAACX,UAAU,CAACkB,MAAM;UAACpB,IAAI,EAAGA,IAAM;UAACqB,KAAK,EAAGnB;QAAY,CAAE,CAAC;MAAA,CACvC,CAClB,EACCE,gBAAgB,iBACjB,IAAAN,WAAA,CAAAe,GAAA,EAACT,gBAAgB,CAACgB,MAAM;QACvBpB,IAAI,EAAGA,IAAM;QACbqB,KAAK,EAAGjB;MAAkB,CAC1B,CACD;IAAA,CACM,CAAC;EAAA,CACF,CAAC;AAEX;AAAC,IAAAuB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc9B,aAAa","ignoreList":[]}
|
|
@@ -70,16 +70,21 @@ function TableRow({
|
|
|
70
70
|
onClickItem,
|
|
71
71
|
renderItemLink,
|
|
72
72
|
onChangeSelection,
|
|
73
|
-
isActionsColumnSticky
|
|
73
|
+
isActionsColumnSticky,
|
|
74
|
+
posinset
|
|
74
75
|
}) {
|
|
75
76
|
var _view$fields;
|
|
77
|
+
const {
|
|
78
|
+
paginationInfo
|
|
79
|
+
} = (0, _element.useContext)(_dataviewsContext.default);
|
|
76
80
|
const hasPossibleBulkAction = (0, _dataviewsBulkActions.useHasAPossibleBulkAction)(actions, item);
|
|
77
81
|
const isSelected = hasPossibleBulkAction && selection.includes(id);
|
|
78
82
|
const [isHovered, setIsHovered] = (0, _element.useState)(false);
|
|
79
83
|
const {
|
|
80
84
|
showTitle = true,
|
|
81
85
|
showMedia = true,
|
|
82
|
-
showDescription = true
|
|
86
|
+
showDescription = true,
|
|
87
|
+
infiniteScrollEnabled
|
|
83
88
|
} = view;
|
|
84
89
|
const handleMouseEnter = () => {
|
|
85
90
|
setIsHovered(true);
|
|
@@ -105,6 +110,9 @@ function TableRow({
|
|
|
105
110
|
onTouchStart: () => {
|
|
106
111
|
isTouchDeviceRef.current = true;
|
|
107
112
|
},
|
|
113
|
+
"aria-setsize": infiniteScrollEnabled ? paginationInfo.totalItems : undefined,
|
|
114
|
+
"aria-posinset": posinset,
|
|
115
|
+
role: infiniteScrollEnabled ? 'article' : undefined,
|
|
108
116
|
onClick: event => {
|
|
109
117
|
if (!hasPossibleBulkAction) {
|
|
110
118
|
return;
|
|
@@ -202,7 +210,8 @@ function ViewTable({
|
|
|
202
210
|
isItemClickable,
|
|
203
211
|
renderItemLink,
|
|
204
212
|
view,
|
|
205
|
-
className
|
|
213
|
+
className,
|
|
214
|
+
empty
|
|
206
215
|
}) {
|
|
207
216
|
var _view$fields2;
|
|
208
217
|
const {
|
|
@@ -241,6 +250,21 @@ function ViewTable({
|
|
|
241
250
|
const titleField = fields.find(field => field.id === view.titleField);
|
|
242
251
|
const mediaField = fields.find(field => field.id === view.mediaField);
|
|
243
252
|
const descriptionField = fields.find(field => field.id === view.descriptionField);
|
|
253
|
+
|
|
254
|
+
// Get group field if groupByField is specified
|
|
255
|
+
const groupField = view.groupByField ? fields.find(f => f.id === view.groupByField) : null;
|
|
256
|
+
|
|
257
|
+
// Group data by groupByField if specified
|
|
258
|
+
const dataByGroup = groupField ? data.reduce((groups, item) => {
|
|
259
|
+
const groupName = groupField.getValue({
|
|
260
|
+
item
|
|
261
|
+
});
|
|
262
|
+
if (!groups.has(groupName)) {
|
|
263
|
+
groups.set(groupName, []);
|
|
264
|
+
}
|
|
265
|
+
groups.get(groupName)?.push(item);
|
|
266
|
+
return groups;
|
|
267
|
+
}, new Map()) : null;
|
|
244
268
|
const {
|
|
245
269
|
showTitle = true,
|
|
246
270
|
showMedia = true,
|
|
@@ -258,6 +282,7 @@ function ViewTable({
|
|
|
258
282
|
headerMenuRefs.current.delete(column);
|
|
259
283
|
}
|
|
260
284
|
};
|
|
285
|
+
const isInfiniteScroll = view.infiniteScrollEnabled && !dataByGroup;
|
|
261
286
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
262
287
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
|
|
263
288
|
className: (0, _clsx.default)('dataviews-view-table', className, {
|
|
@@ -265,6 +290,7 @@ function ViewTable({
|
|
|
265
290
|
}),
|
|
266
291
|
"aria-busy": isLoading,
|
|
267
292
|
"aria-describedby": tableNoticeId,
|
|
293
|
+
role: isInfiniteScroll ? 'feed' : undefined,
|
|
268
294
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("thead", {
|
|
269
295
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
|
|
270
296
|
className: "dataviews-view-table__row",
|
|
@@ -291,7 +317,7 @@ function ViewTable({
|
|
|
291
317
|
canMove: false
|
|
292
318
|
})
|
|
293
319
|
}), columns.map((column, index) => {
|
|
294
|
-
var _view$layout$styles$c2;
|
|
320
|
+
var _view$layout$styles$c2, _view$layout$enableMo;
|
|
295
321
|
// Explicit picks the supported styles.
|
|
296
322
|
const {
|
|
297
323
|
width,
|
|
@@ -315,7 +341,8 @@ function ViewTable({
|
|
|
315
341
|
fields: fields,
|
|
316
342
|
onChangeView: onChangeView,
|
|
317
343
|
onHide: onHide,
|
|
318
|
-
setOpenedFilter: setOpenedFilter
|
|
344
|
+
setOpenedFilter: setOpenedFilter,
|
|
345
|
+
canMove: (_view$layout$enableMo = view.layout?.enableMoving) !== null && _view$layout$enableMo !== void 0 ? _view$layout$enableMo : true
|
|
319
346
|
})
|
|
320
347
|
}, column);
|
|
321
348
|
}), !!actions?.length && /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
@@ -329,8 +356,17 @@ function ViewTable({
|
|
|
329
356
|
})
|
|
330
357
|
})]
|
|
331
358
|
})
|
|
332
|
-
}), /*#__PURE__*/(0, _jsxRuntime.
|
|
333
|
-
children:
|
|
359
|
+
}), hasData && groupField && dataByGroup ? Array.from(dataByGroup.entries()).map(([groupName, groupItems]) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("tbody", {
|
|
360
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {
|
|
361
|
+
className: "dataviews-view-table__group-header-row",
|
|
362
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
363
|
+
colSpan: columns.length + (hasPrimaryColumn ? 1 : 0) + (hasBulkActions ? 1 : 0) + (actions?.length ? 1 : 0),
|
|
364
|
+
className: "dataviews-view-table__group-header-cell",
|
|
365
|
+
children: (0, _i18n.sprintf)(
|
|
366
|
+
// translators: 1: The label of the field e.g. "Date". 2: The value of the field, e.g.: "May 2022".
|
|
367
|
+
(0, _i18n.__)('%1$s: %2$s'), groupField.label, groupName)
|
|
368
|
+
})
|
|
369
|
+
}), groupItems.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TableRow, {
|
|
334
370
|
item: item,
|
|
335
371
|
level: view.showLevels && typeof getItemLevel === 'function' ? getItemLevel(item) : undefined,
|
|
336
372
|
hasBulkActions: hasBulkActions,
|
|
@@ -348,17 +384,41 @@ function ViewTable({
|
|
|
348
384
|
renderItemLink: renderItemLink,
|
|
349
385
|
isItemClickable: isItemClickable,
|
|
350
386
|
isActionsColumnSticky: !isHorizontalScrollEnd
|
|
387
|
+
}, getItemId(item)))]
|
|
388
|
+
}, `group-${groupName}`)) : /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
|
|
389
|
+
children: hasData && data.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TableRow, {
|
|
390
|
+
item: item,
|
|
391
|
+
level: view.showLevels && typeof getItemLevel === 'function' ? getItemLevel(item) : undefined,
|
|
392
|
+
hasBulkActions: hasBulkActions,
|
|
393
|
+
actions: actions,
|
|
394
|
+
fields: fields,
|
|
395
|
+
id: getItemId(item) || index.toString(),
|
|
396
|
+
view: view,
|
|
397
|
+
titleField: titleField,
|
|
398
|
+
mediaField: mediaField,
|
|
399
|
+
descriptionField: descriptionField,
|
|
400
|
+
selection: selection,
|
|
401
|
+
getItemId: getItemId,
|
|
402
|
+
onChangeSelection: onChangeSelection,
|
|
403
|
+
onClickItem: onClickItem,
|
|
404
|
+
renderItemLink: renderItemLink,
|
|
405
|
+
isItemClickable: isItemClickable,
|
|
406
|
+
isActionsColumnSticky: !isHorizontalScrollEnd,
|
|
407
|
+
posinset: isInfiniteScroll ? index + 1 : undefined
|
|
351
408
|
}, getItemId(item)))
|
|
352
409
|
})]
|
|
353
|
-
}), /*#__PURE__*/(0, _jsxRuntime.
|
|
410
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
354
411
|
className: (0, _clsx.default)({
|
|
355
412
|
'dataviews-loading': isLoading,
|
|
356
413
|
'dataviews-no-results': !hasData && !isLoading
|
|
357
414
|
}),
|
|
358
415
|
id: tableNoticeId,
|
|
359
|
-
children: !hasData && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
360
|
-
children: isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}) :
|
|
361
|
-
})
|
|
416
|
+
children: [!hasData && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
417
|
+
children: isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}) : empty
|
|
418
|
+
}), hasData && isLoading && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
419
|
+
className: "dataviews-loading-more",
|
|
420
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {})
|
|
421
|
+
})]
|
|
362
422
|
})]
|
|
363
423
|
});
|
|
364
424
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_element","_keycodes","_dataviewsContext","_dataviewsSelectionCheckbox","_dataviewsItemActions","_constants","_dataviewsBulkActions","_columnHeaderMenu","_columnPrimary","_useIsHorizontalScrollEnd","_jsxRuntime","TableColumnField","item","fields","column","align","field","find","f","id","className","clsx","jsx","children","render","TableRow","hasBulkActions","level","actions","view","titleField","mediaField","descriptionField","selection","getItemId","isItemClickable","onClickItem","renderItemLink","onChangeSelection","isActionsColumnSticky","_view$fields","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","showTitle","showMedia","showDescription","handleMouseEnter","handleMouseLeave","isTouchDeviceRef","useRef","columns","hasPrimaryColumn","jsxs","onMouseEnter","onMouseLeave","onTouchStart","current","onClick","event","document","getSelection","type","isAppleOS","metaKey","ctrlKey","filter","itemId","default","disabled","undefined","map","_view$layout$styles$c","width","maxWidth","minWidth","layout","styles","style","length","e","stopPropagation","ViewTable","data","getItemLevel","isLoading","onChangeView","setOpenedFilter","_view$fields2","containerRef","useContext","DataViewsContext","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","isHorizontalScrollEnd","useIsHorizontalScrollEnd","scrollContainerRef","enabled","onHide","hidden","get","fallback","node","hasData","headerMenuRef","index","set","delete","Fragment","density","scope","BulkSelectionCheckbox","ref","fieldId","canMove","_view$layout$styles$c2","textAlign","sort","direction","sortValues","__","showLevels","toString","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { isAppleOS } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../../components/dataviews-context';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport { sortValues } from '../../constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n\tBulkSelectionCheckbox,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewTable as ViewTableType,\n\tViewTableProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport ColumnHeaderMenu from './column-header-menu';\nimport ColumnPrimary from './column-primary';\nimport { useIsHorizontalScrollEnd } from './use-is-horizontal-scroll-end';\n\ninterface TableColumnFieldProps< Item > {\n\tfields: NormalizedField< Item >[];\n\tcolumn: string;\n\titem: Item;\n\talign?: 'start' | 'center' | 'end';\n}\n\ninterface TableRowProps< Item > {\n\thasBulkActions: boolean;\n\titem: Item;\n\tlevel?: number;\n\tactions: Action< Item >[];\n\tfields: NormalizedField< Item >[];\n\tid: string;\n\tview: ViewTableType;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tselection: string[];\n\tgetItemId: ( item: Item ) => string;\n\tonChangeSelection: SetSelection;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisActionsColumnSticky?: boolean;\n}\n\nfunction TableColumnField< Item >( {\n\titem,\n\tfields,\n\tcolumn,\n\talign,\n}: TableColumnFieldProps< Item > ) {\n\tconst field = fields.find( ( f ) => f.id === column );\n\n\tif ( ! field ) {\n\t\treturn null;\n\t}\n\n\tconst className = clsx( 'dataviews-view-table__cell-content-wrapper', {\n\t\t'dataviews-view-table__cell-align-end': align === 'end',\n\t\t'dataviews-view-table__cell-align-center': align === 'center',\n\t} );\n\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<field.render item={ item } field={ field } />\n\t\t</div>\n\t);\n}\n\nfunction TableRow< Item >( {\n\thasBulkActions,\n\titem,\n\tlevel,\n\tactions,\n\tfields,\n\tid,\n\tview,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tselection,\n\tgetItemId,\n\tisItemClickable,\n\tonClickItem,\n\trenderItemLink,\n\tonChangeSelection,\n\tisActionsColumnSticky,\n}: TableRowProps< Item > ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = hasPossibleBulkAction && selection.includes( id );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDeviceRef = useRef( false );\n\tconst columns = view.fields ?? [];\n\tconst hasPrimaryColumn =\n\t\t( titleField && showTitle ) ||\n\t\t( mediaField && showMedia ) ||\n\t\t( descriptionField && showDescription );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ clsx( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDeviceRef.current = true;\n\t\t\t} }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tif ( ! hasPossibleBulkAction ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDeviceRef.current &&\n\t\t\t\t\tdocument.getSelection()?.type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( isAppleOS() ? event.metaKey : event.ctrlKey ) {\n\t\t\t\t\t\t// Handle non-consecutive selection.\n\t\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t\t? selection.filter(\n\t\t\t\t\t\t\t\t\t\t( itemId ) => id !== itemId\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Handle single selection\n\t\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t\t? selection.filter(\n\t\t\t\t\t\t\t\t\t\t( itemId ) => id !== itemId\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: [ id ]\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>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td className=\"dataviews-view-table__checkbox-column\">\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ hasPrimaryColumn && (\n\t\t\t\t<td>\n\t\t\t\t\t<ColumnPrimary\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\ttitleField={ showTitle ? titleField : undefined }\n\t\t\t\t\t\tmediaField={ showMedia ? mediaField : undefined }\n\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\tshowDescription ? descriptionField : undefined\n\t\t\t\t\t\t}\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/>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ columns.map( ( column: string ) => {\n\t\t\t\t// Explicit picks the supported styles.\n\t\t\t\tconst { width, maxWidth, minWidth, align } =\n\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\n\t\t\t\treturn (\n\t\t\t\t\t<td\n\t\t\t\t\t\tkey={ column }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tmaxWidth,\n\t\t\t\t\t\t\tminWidth,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TableColumnField\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\talign={ align }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</td>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName={ clsx( 'dataviews-view-table__actions-column', {\n\t\t\t\t\t\t'dataviews-view-table__actions-column--sticky': true,\n\t\t\t\t\t\t'dataviews-view-table__actions-column--stuck':\n\t\t\t\t\t\t\tisActionsColumnSticky,\n\t\t\t\t\t} ) }\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tonChangeView,\n\tonChangeSelection,\n\tselection,\n\tsetOpenedFilter,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tview,\n\tclassName,\n}: ViewTableProps< Item > ) {\n\tconst { containerRef } = useContext( DataViewsContext );\n\tconst headerMenuRefs = useRef<\n\t\tMap< string, { node: HTMLButtonElement; fallback: string } >\n\t>( new Map() );\n\tconst headerMenuToFocusRef = useRef< HTMLButtonElement >();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] =\n\t\tuseState< HTMLButtonElement >();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tconst isHorizontalScrollEnd = useIsHorizontalScrollEnd( {\n\t\tscrollContainerRef: containerRef,\n\t\tenabled: !! actions?.length,\n\t} );\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus( undefined );\n\t\treturn;\n\t}\n\n\tconst onHide = ( field: NormalizedField< Item > ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = hidden\n\t\t\t? headerMenuRefs.current.get( hidden.fallback )\n\t\t\t: undefined;\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\n\tconst hasData = !! data?.length;\n\n\tconst titleField = fields.find( ( field ) => field.id === view.titleField );\n\tconst mediaField = fields.find( ( field ) => field.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view.descriptionField\n\t);\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasPrimaryColumn =\n\t\t( titleField && showTitle ) ||\n\t\t( mediaField && showMedia ) ||\n\t\t( descriptionField && showDescription );\n\tconst columns = view.fields ?? [];\n\tconst headerMenuRef =\n\t\t( column: string, index: number ) => ( node: HTMLButtonElement ) => {\n\t\t\tif ( node ) {\n\t\t\t\theaderMenuRefs.current.set( column, {\n\t\t\t\t\tnode,\n\t\t\t\t\tfallback: columns[ index > 0 ? index - 1 : 1 ],\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\theaderMenuRefs.current.delete( column );\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName={ clsx( 'dataviews-view-table', className, {\n\t\t\t\t\t[ `has-${ view.layout?.density }-density` ]:\n\t\t\t\t\t\tview.layout?.density &&\n\t\t\t\t\t\t[ 'compact', 'comfortable' ].includes(\n\t\t\t\t\t\t\tview.layout.density\n\t\t\t\t\t\t),\n\t\t\t\t} ) }\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\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\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasPrimaryColumn && (\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ titleField && (\n\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\tref={ headerMenuRef(\n\t\t\t\t\t\t\t\t\t\t\ttitleField.id,\n\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tfieldId={ titleField.id }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ columns.map( ( column, index ) => {\n\t\t\t\t\t\t\t// Explicit picks the supported styles.\n\t\t\t\t\t\t\tconst { width, maxWidth, minWidth, align } =\n\t\t\t\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\tkey={ column }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\tmaxWidth,\n\t\t\t\t\t\t\t\t\t\tminWidth,\n\t\t\t\t\t\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\tview.sort?.direction &&\n\t\t\t\t\t\t\t\t\t\tview.sort?.field === column\n\t\t\t\t\t\t\t\t\t\t\t? sortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\tref={ headerMenuRef( column, index ) }\n\t\t\t\t\t\t\t\t\t\tfieldId={ column }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-table__actions-column',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'dataviews-view-table__actions-column--sticky':\n\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t'dataviews-view-table__actions-column--stuck':\n\t\t\t\t\t\t\t\t\t\t\t! isHorizontalScrollEnd,\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\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tdata.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tlevel={\n\t\t\t\t\t\t\t\t\tview.showLevels &&\n\t\t\t\t\t\t\t\t\ttypeof getItemLevel === 'function'\n\t\t\t\t\t\t\t\t\t\t? getItemLevel( item )\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index.toString() }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\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\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\tisActionsColumnSticky={\n\t\t\t\t\t\t\t\t\t! isHorizontalScrollEnd\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</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_element","_keycodes","_dataviewsContext","_dataviewsSelectionCheckbox","_dataviewsItemActions","_constants","_dataviewsBulkActions","_columnHeaderMenu","_columnPrimary","_useIsHorizontalScrollEnd","_jsxRuntime","TableColumnField","item","fields","column","align","field","find","f","id","className","clsx","jsx","children","render","TableRow","hasBulkActions","level","actions","view","titleField","mediaField","descriptionField","selection","getItemId","isItemClickable","onClickItem","renderItemLink","onChangeSelection","isActionsColumnSticky","posinset","_view$fields","paginationInfo","useContext","DataViewsContext","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","showTitle","showMedia","showDescription","infiniteScrollEnabled","handleMouseEnter","handleMouseLeave","isTouchDeviceRef","useRef","columns","hasPrimaryColumn","jsxs","onMouseEnter","onMouseLeave","onTouchStart","current","totalItems","undefined","role","onClick","event","document","getSelection","type","isAppleOS","metaKey","ctrlKey","filter","itemId","default","disabled","map","_view$layout$styles$c","width","maxWidth","minWidth","layout","styles","style","length","e","stopPropagation","ViewTable","data","getItemLevel","isLoading","onChangeView","setOpenedFilter","empty","_view$fields2","containerRef","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","isHorizontalScrollEnd","useIsHorizontalScrollEnd","scrollContainerRef","enabled","onHide","hidden","get","fallback","node","hasData","groupField","groupByField","dataByGroup","reduce","groups","groupName","getValue","has","set","push","headerMenuRef","index","delete","isInfiniteScroll","Fragment","density","scope","BulkSelectionCheckbox","ref","fieldId","canMove","_view$layout$styles$c2","_view$layout$enableMo","textAlign","sort","direction","sortValues","enableMoving","__","Array","from","entries","groupItems","colSpan","sprintf","label","showLevels","toString","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { isAppleOS } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../../components/dataviews-context';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport { sortValues } from '../../constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n\tBulkSelectionCheckbox,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewTable as ViewTableType,\n\tViewTableProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport ColumnHeaderMenu from './column-header-menu';\nimport ColumnPrimary from './column-primary';\nimport { useIsHorizontalScrollEnd } from './use-is-horizontal-scroll-end';\n\ninterface TableColumnFieldProps< Item > {\n\tfields: NormalizedField< Item >[];\n\tcolumn: string;\n\titem: Item;\n\talign?: 'start' | 'center' | 'end';\n}\n\ninterface TableRowProps< Item > {\n\thasBulkActions: boolean;\n\titem: Item;\n\tlevel?: number;\n\tactions: Action< Item >[];\n\tfields: NormalizedField< Item >[];\n\tid: string;\n\tview: ViewTableType;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tselection: string[];\n\tgetItemId: ( item: Item ) => string;\n\tonChangeSelection: SetSelection;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisActionsColumnSticky?: boolean;\n\tposinset?: number;\n}\n\nfunction TableColumnField< Item >( {\n\titem,\n\tfields,\n\tcolumn,\n\talign,\n}: TableColumnFieldProps< Item > ) {\n\tconst field = fields.find( ( f ) => f.id === column );\n\n\tif ( ! field ) {\n\t\treturn null;\n\t}\n\n\tconst className = clsx( 'dataviews-view-table__cell-content-wrapper', {\n\t\t'dataviews-view-table__cell-align-end': align === 'end',\n\t\t'dataviews-view-table__cell-align-center': align === 'center',\n\t} );\n\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<field.render item={ item } field={ field } />\n\t\t</div>\n\t);\n}\n\nfunction TableRow< Item >( {\n\thasBulkActions,\n\titem,\n\tlevel,\n\tactions,\n\tfields,\n\tid,\n\tview,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tselection,\n\tgetItemId,\n\tisItemClickable,\n\tonClickItem,\n\trenderItemLink,\n\tonChangeSelection,\n\tisActionsColumnSticky,\n\tposinset,\n}: TableRowProps< Item > ) {\n\tconst { paginationInfo } = useContext( DataViewsContext );\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = hasPossibleBulkAction && selection.includes( id );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst {\n\t\tshowTitle = true,\n\t\tshowMedia = true,\n\t\tshowDescription = true,\n\t\tinfiniteScrollEnabled,\n\t} = view;\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDeviceRef = useRef( false );\n\tconst columns = view.fields ?? [];\n\tconst hasPrimaryColumn =\n\t\t( titleField && showTitle ) ||\n\t\t( mediaField && showMedia ) ||\n\t\t( descriptionField && showDescription );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ clsx( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDeviceRef.current = true;\n\t\t\t} }\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\trole={ infiniteScrollEnabled ? 'article' : undefined }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tif ( ! hasPossibleBulkAction ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDeviceRef.current &&\n\t\t\t\t\tdocument.getSelection()?.type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( isAppleOS() ? event.metaKey : event.ctrlKey ) {\n\t\t\t\t\t\t// Handle non-consecutive selection.\n\t\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t\t? selection.filter(\n\t\t\t\t\t\t\t\t\t\t( itemId ) => id !== itemId\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Handle single selection\n\t\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t\t? selection.filter(\n\t\t\t\t\t\t\t\t\t\t( itemId ) => id !== itemId\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: [ id ]\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>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td className=\"dataviews-view-table__checkbox-column\">\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ hasPrimaryColumn && (\n\t\t\t\t<td>\n\t\t\t\t\t<ColumnPrimary\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\ttitleField={ showTitle ? titleField : undefined }\n\t\t\t\t\t\tmediaField={ showMedia ? mediaField : undefined }\n\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\tshowDescription ? descriptionField : undefined\n\t\t\t\t\t\t}\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/>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ columns.map( ( column: string ) => {\n\t\t\t\t// Explicit picks the supported styles.\n\t\t\t\tconst { width, maxWidth, minWidth, align } =\n\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\n\t\t\t\treturn (\n\t\t\t\t\t<td\n\t\t\t\t\t\tkey={ column }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tmaxWidth,\n\t\t\t\t\t\t\tminWidth,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TableColumnField\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\talign={ align }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</td>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName={ clsx( 'dataviews-view-table__actions-column', {\n\t\t\t\t\t\t'dataviews-view-table__actions-column--sticky': true,\n\t\t\t\t\t\t'dataviews-view-table__actions-column--stuck':\n\t\t\t\t\t\t\tisActionsColumnSticky,\n\t\t\t\t\t} ) }\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tonChangeView,\n\tonChangeSelection,\n\tselection,\n\tsetOpenedFilter,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tview,\n\tclassName,\n\tempty,\n}: ViewTableProps< Item > ) {\n\tconst { containerRef } = useContext( DataViewsContext );\n\tconst headerMenuRefs = useRef<\n\t\tMap< string, { node: HTMLButtonElement; fallback: string } >\n\t>( new Map() );\n\tconst headerMenuToFocusRef = useRef< HTMLButtonElement >();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] =\n\t\tuseState< HTMLButtonElement >();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tconst isHorizontalScrollEnd = useIsHorizontalScrollEnd( {\n\t\tscrollContainerRef: containerRef,\n\t\tenabled: !! actions?.length,\n\t} );\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus( undefined );\n\t\treturn;\n\t}\n\n\tconst onHide = ( field: NormalizedField< Item > ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = hidden\n\t\t\t? headerMenuRefs.current.get( hidden.fallback )\n\t\t\t: undefined;\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\n\tconst hasData = !! data?.length;\n\n\tconst titleField = fields.find( ( field ) => field.id === view.titleField );\n\tconst mediaField = fields.find( ( field ) => field.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view.descriptionField\n\t);\n\n\t// Get group field if groupByField is specified\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\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasPrimaryColumn =\n\t\t( titleField && showTitle ) ||\n\t\t( mediaField && showMedia ) ||\n\t\t( descriptionField && showDescription );\n\tconst columns = view.fields ?? [];\n\tconst headerMenuRef =\n\t\t( column: string, index: number ) => ( node: HTMLButtonElement ) => {\n\t\t\tif ( node ) {\n\t\t\t\theaderMenuRefs.current.set( column, {\n\t\t\t\t\tnode,\n\t\t\t\t\tfallback: columns[ index > 0 ? index - 1 : 1 ],\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\theaderMenuRefs.current.delete( column );\n\t\t\t}\n\t\t};\n\tconst isInfiniteScroll = view.infiniteScrollEnabled && ! dataByGroup;\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName={ clsx( 'dataviews-view-table', className, {\n\t\t\t\t\t[ `has-${ view.layout?.density }-density` ]:\n\t\t\t\t\t\tview.layout?.density &&\n\t\t\t\t\t\t[ 'compact', 'comfortable' ].includes(\n\t\t\t\t\t\t\tview.layout.density\n\t\t\t\t\t\t),\n\t\t\t\t} ) }\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t\trole={ isInfiniteScroll ? 'feed' : undefined }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\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\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasPrimaryColumn && (\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ titleField && (\n\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\tref={ headerMenuRef(\n\t\t\t\t\t\t\t\t\t\t\ttitleField.id,\n\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tfieldId={ titleField.id }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ columns.map( ( column, index ) => {\n\t\t\t\t\t\t\t// Explicit picks the supported styles.\n\t\t\t\t\t\t\tconst { width, maxWidth, minWidth, align } =\n\t\t\t\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\tkey={ column }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\tmaxWidth,\n\t\t\t\t\t\t\t\t\t\tminWidth,\n\t\t\t\t\t\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\tview.sort?.direction &&\n\t\t\t\t\t\t\t\t\t\tview.sort?.field === column\n\t\t\t\t\t\t\t\t\t\t\t? sortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\tref={ headerMenuRef( column, index ) }\n\t\t\t\t\t\t\t\t\t\tfieldId={ column }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t\tcanMove={\n\t\t\t\t\t\t\t\t\t\t\tview.layout?.enableMoving ?? true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-table__actions-column',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'dataviews-view-table__actions-column--sticky':\n\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t'dataviews-view-table__actions-column--stuck':\n\t\t\t\t\t\t\t\t\t\t\t! isHorizontalScrollEnd,\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\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t{ /* Render grouped data if groupByField is specified */ }\n\t\t\t\t{ hasData && groupField && dataByGroup ? (\n\t\t\t\t\tArray.from( dataByGroup.entries() ).map(\n\t\t\t\t\t\t( [ groupName, groupItems ] ) => (\n\t\t\t\t\t\t\t<tbody key={ `group-${ groupName }` }>\n\t\t\t\t\t\t\t\t<tr className=\"dataviews-view-table__group-header-row\">\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tcolSpan={\n\t\t\t\t\t\t\t\t\t\t\tcolumns.length +\n\t\t\t\t\t\t\t\t\t\t\t( hasPrimaryColumn ? 1 : 0 ) +\n\t\t\t\t\t\t\t\t\t\t\t( hasBulkActions ? 1 : 0 ) +\n\t\t\t\t\t\t\t\t\t\t\t( actions?.length ? 1 : 0 )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__group-header-cell\"\n\t\t\t\t\t\t\t\t\t>\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</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t{ groupItems.map( ( item, index ) => (\n\t\t\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\tlevel={\n\t\t\t\t\t\t\t\t\t\t\tview.showLevels &&\n\t\t\t\t\t\t\t\t\t\t\ttypeof getItemLevel === 'function'\n\t\t\t\t\t\t\t\t\t\t\t\t? getItemLevel( item )\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tid={\n\t\t\t\t\t\t\t\t\t\t\tgetItemId( item ) ||\n\t\t\t\t\t\t\t\t\t\t\tindex.toString()\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\t\tisActionsColumnSticky={\n\t\t\t\t\t\t\t\t\t\t\t! isHorizontalScrollEnd\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) : (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\t\tdata.map( ( item, index ) => (\n\t\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tlevel={\n\t\t\t\t\t\t\t\t\t\tview.showLevels &&\n\t\t\t\t\t\t\t\t\t\ttypeof getItemLevel === 'function'\n\t\t\t\t\t\t\t\t\t\t\t? getItemLevel( item )\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\tid={ getItemId( item ) || index.toString() }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\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\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\tisActionsColumnSticky={\n\t\t\t\t\t\t\t\t\t\t! isHorizontalScrollEnd\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</tbody>\n\t\t\t\t) }\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && <p>{ isLoading ? <Spinner /> : empty }</p> }\n\t\t\t\t{ hasData && isLoading && (\n\t\t\t\t\t<p className=\"dataviews-loading-more\">\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_constants","sort","valueA","valueB","direction","arrA","Array","isArray","arrB","length","joinedA","join","joinedB","localeCompare","render","item","field","value","getValue","arrayFieldType","isValid","custom","undefined","includes","__","every","v","elements","validValues","map","f","Edit","enableSorting","filterBy","defaultOperators","OPERATOR_IS_ANY","OPERATOR_IS_NONE","validOperators","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","_default","exports","default"],"sources":["@wordpress/dataviews/src/field-types/array.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tSortDirection,\n\tFieldTypeDefinition,\n\tNormalizedField,\n} from '../types';\nimport {\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT_ALL,\n} from '../constants';\n\n// Sort arrays by length, then alphabetically by joined string\nfunction sort( valueA: any, valueB: any, direction: SortDirection ) {\n\tconst arrA = Array.isArray( valueA ) ? valueA : [];\n\tconst arrB = Array.isArray( valueB ) ? valueB : [];\n\tif ( arrA.length !== arrB.length ) {\n\t\treturn direction === 'asc'\n\t\t\t? arrA.length - arrB.length\n\t\t\t: arrB.length - arrA.length;\n\t}\n\n\tconst joinedA = arrA.join( ',' );\n\tconst joinedB = arrB.join( ',' );\n\treturn direction === 'asc'\n\t\t? joinedA.localeCompare( joinedB )\n\t\t: joinedB.localeCompare( joinedA );\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tconst value = field.getValue( { item } ) || [];\n\treturn value.join( ', ' );\n}\n\nconst arrayFieldType: FieldTypeDefinition< any > = {\n\tsort,\n\tisValid: {\n\t\tcustom: ( item: any, field: NormalizedField< any > ) => {\n\t\t\tconst value = field.getValue( { item } );\n\n\t\t\tif (\n\t\t\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t\t\t! Array.isArray( value )\n\t\t\t) {\n\t\t\t\treturn __( 'Value must be an array.' );\n\t\t\t}\n\n\t\t\t// Only allow strings for now. Can be extended to other types in the future.\n\t\t\tif ( ! value.every( ( v: any ) => typeof v === 'string' ) ) {\n\t\t\t\treturn __( 'Every value must be a string.' );\n\t\t\t}\n\n\t\t\tif ( field?.elements ) {\n\t\t\t\tconst validValues = field.elements.map( ( f ) => f.value );\n\t\t\t\tif (\n\t\t\t\t\t! value.every( ( v: any ) => validValues.includes( v ) )\n\t\t\t\t) {\n\t\t\t\t\treturn __( 'Value must be one of the elements.' );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t},\n\tEdit:
|
|
1
|
+
{"version":3,"names":["_i18n","require","_constants","sort","valueA","valueB","direction","arrA","Array","isArray","arrB","length","joinedA","join","joinedB","localeCompare","render","item","field","value","getValue","arrayFieldType","isValid","custom","undefined","includes","__","every","v","elements","validValues","map","f","Edit","enableSorting","filterBy","defaultOperators","OPERATOR_IS_ANY","OPERATOR_IS_NONE","validOperators","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","_default","exports","default"],"sources":["@wordpress/dataviews/src/field-types/array.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tSortDirection,\n\tFieldTypeDefinition,\n\tNormalizedField,\n} from '../types';\nimport {\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT_ALL,\n} from '../constants';\n\n// Sort arrays by length, then alphabetically by joined string\nfunction sort( valueA: any, valueB: any, direction: SortDirection ) {\n\tconst arrA = Array.isArray( valueA ) ? valueA : [];\n\tconst arrB = Array.isArray( valueB ) ? valueB : [];\n\tif ( arrA.length !== arrB.length ) {\n\t\treturn direction === 'asc'\n\t\t\t? arrA.length - arrB.length\n\t\t\t: arrB.length - arrA.length;\n\t}\n\n\tconst joinedA = arrA.join( ',' );\n\tconst joinedB = arrB.join( ',' );\n\treturn direction === 'asc'\n\t\t? joinedA.localeCompare( joinedB )\n\t\t: joinedB.localeCompare( joinedA );\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tconst value = field.getValue( { item } ) || [];\n\treturn value.join( ', ' );\n}\n\nconst arrayFieldType: FieldTypeDefinition< any > = {\n\tsort,\n\tisValid: {\n\t\tcustom: ( item: any, field: NormalizedField< any > ) => {\n\t\t\tconst value = field.getValue( { item } );\n\n\t\t\tif (\n\t\t\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t\t\t! Array.isArray( value )\n\t\t\t) {\n\t\t\t\treturn __( 'Value must be an array.' );\n\t\t\t}\n\n\t\t\t// Only allow strings for now. Can be extended to other types in the future.\n\t\t\tif ( ! value.every( ( v: any ) => typeof v === 'string' ) ) {\n\t\t\t\treturn __( 'Every value must be a string.' );\n\t\t\t}\n\n\t\t\tif ( field?.elements ) {\n\t\t\t\tconst validValues = field.elements.map( ( f ) => f.value );\n\t\t\t\tif (\n\t\t\t\t\t! value.every( ( v: any ) => validValues.includes( v ) )\n\t\t\t\t) {\n\t\t\t\t\treturn __( 'Value must be one of the elements.' );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t},\n\tEdit: 'array', // Use array control\n\trender,\n\tenableSorting: true,\n\tfilterBy: {\n\t\tdefaultOperators: [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ],\n\t\tvalidOperators: [\n\t\t\tOPERATOR_IS_ANY,\n\t\t\tOPERATOR_IS_NONE,\n\t\t\tOPERATOR_IS_ALL,\n\t\t\tOPERATOR_IS_NOT_ALL,\n\t\t],\n\t},\n};\n\nexport default arrayFieldType;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAWA,IAAAC,UAAA,GAAAD,OAAA;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAcA;AACA,SAASE,IAAIA,CAAEC,MAAW,EAAEC,MAAW,EAAEC,SAAwB,EAAG;EACnE,MAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAAEL,MAAO,CAAC,GAAGA,MAAM,GAAG,EAAE;EAClD,MAAMM,IAAI,GAAGF,KAAK,CAACC,OAAO,CAAEJ,MAAO,CAAC,GAAGA,MAAM,GAAG,EAAE;EAClD,IAAKE,IAAI,CAACI,MAAM,KAAKD,IAAI,CAACC,MAAM,EAAG;IAClC,OAAOL,SAAS,KAAK,KAAK,GACvBC,IAAI,CAACI,MAAM,GAAGD,IAAI,CAACC,MAAM,GACzBD,IAAI,CAACC,MAAM,GAAGJ,IAAI,CAACI,MAAM;EAC7B;EAEA,MAAMC,OAAO,GAAGL,IAAI,CAACM,IAAI,CAAE,GAAI,CAAC;EAChC,MAAMC,OAAO,GAAGJ,IAAI,CAACG,IAAI,CAAE,GAAI,CAAC;EAChC,OAAOP,SAAS,KAAK,KAAK,GACvBM,OAAO,CAACG,aAAa,CAAED,OAAQ,CAAC,GAChCA,OAAO,CAACC,aAAa,CAAEH,OAAQ,CAAC;AACpC;AAEA,SAASI,MAAMA,CAAE;EAAEC,IAAI;EAAEC;AAAuC,CAAC,EAAG;EACnE,MAAMC,KAAK,GAAGD,KAAK,CAACE,QAAQ,CAAE;IAAEH;EAAK,CAAE,CAAC,IAAI,EAAE;EAC9C,OAAOE,KAAK,CAACN,IAAI,CAAE,IAAK,CAAC;AAC1B;AAEA,MAAMQ,cAA0C,GAAG;EAClDlB,IAAI;EACJmB,OAAO,EAAE;IACRC,MAAM,EAAEA,CAAEN,IAAS,EAAEC,KAA6B,KAAM;MACvD,MAAMC,KAAK,GAAGD,KAAK,CAACE,QAAQ,CAAE;QAAEH;MAAK,CAAE,CAAC;MAExC,IACC,CAAE,CAAEO,SAAS,EAAE,EAAE,EAAE,IAAI,CAAE,CAACC,QAAQ,CAAEN,KAAM,CAAC,IAC3C,CAAEX,KAAK,CAACC,OAAO,CAAEU,KAAM,CAAC,EACvB;QACD,OAAO,IAAAO,QAAE,EAAE,yBAA0B,CAAC;MACvC;;MAEA;MACA,IAAK,CAAEP,KAAK,CAACQ,KAAK,CAAIC,CAAM,IAAM,OAAOA,CAAC,KAAK,QAAS,CAAC,EAAG;QAC3D,OAAO,IAAAF,QAAE,EAAE,+BAAgC,CAAC;MAC7C;MAEA,IAAKR,KAAK,EAAEW,QAAQ,EAAG;QACtB,MAAMC,WAAW,GAAGZ,KAAK,CAACW,QAAQ,CAACE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACb,KAAM,CAAC;QAC1D,IACC,CAAEA,KAAK,CAACQ,KAAK,CAAIC,CAAM,IAAME,WAAW,CAACL,QAAQ,CAAEG,CAAE,CAAE,CAAC,EACvD;UACD,OAAO,IAAAF,QAAE,EAAE,oCAAqC,CAAC;QAClD;MACD;MACA,OAAO,IAAI;IACZ;EACD,CAAC;EACDO,IAAI,EAAE,OAAO;EAAE;EACfjB,MAAM;EACNkB,aAAa,EAAE,IAAI;EACnBC,QAAQ,EAAE;IACTC,gBAAgB,EAAE,CAAEC,0BAAe,EAAEC,2BAAgB,CAAE;IACvDC,cAAc,EAAE,CACfF,0BAAe,EACfC,2BAAgB,EAChBE,0BAAe,EACfC,8BAAmB;EAErB;AACD,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEavB,cAAc","ignoreList":[]}
|
|
@@ -3,33 +3,72 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.DEFAULT_LAYOUT = void 0;
|
|
6
7
|
exports.default = normalizeFormFields;
|
|
8
|
+
exports.normalizeLayout = normalizeLayout;
|
|
7
9
|
/**
|
|
8
10
|
* Internal dependencies
|
|
9
11
|
*/
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const DEFAULT_LAYOUT = exports.DEFAULT_LAYOUT = {
|
|
14
|
+
type: 'regular',
|
|
15
|
+
labelPosition: 'top'
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Normalizes a layout configuration based on its type.
|
|
20
|
+
*
|
|
21
|
+
* @param layout The layout object to normalize.
|
|
22
|
+
* @return The normalized layout object.
|
|
23
|
+
*/
|
|
24
|
+
function normalizeLayout(layout) {
|
|
25
|
+
let normalizedLayout = DEFAULT_LAYOUT;
|
|
26
|
+
if (layout?.type === 'regular') {
|
|
27
|
+
var _layout$labelPosition;
|
|
28
|
+
normalizedLayout = {
|
|
29
|
+
type: 'regular',
|
|
30
|
+
labelPosition: (_layout$labelPosition = layout?.labelPosition) !== null && _layout$labelPosition !== void 0 ? _layout$labelPosition : 'top'
|
|
31
|
+
};
|
|
32
|
+
} else if (layout?.type === 'panel') {
|
|
33
|
+
var _layout$labelPosition2, _layout$openAs;
|
|
34
|
+
normalizedLayout = {
|
|
35
|
+
type: 'panel',
|
|
36
|
+
labelPosition: (_layout$labelPosition2 = layout?.labelPosition) !== null && _layout$labelPosition2 !== void 0 ? _layout$labelPosition2 : 'side',
|
|
37
|
+
openAs: (_layout$openAs = layout?.openAs) !== null && _layout$openAs !== void 0 ? _layout$openAs : 'dropdown'
|
|
38
|
+
};
|
|
39
|
+
} else if (layout?.type === 'card') {
|
|
40
|
+
if (layout.withHeader === false) {
|
|
41
|
+
// Don't let isOpened be false if withHeader is false.
|
|
42
|
+
// Otherwise, the card will not be visible.
|
|
43
|
+
normalizedLayout = {
|
|
44
|
+
type: 'card',
|
|
45
|
+
withHeader: false,
|
|
46
|
+
isOpened: true
|
|
47
|
+
};
|
|
48
|
+
} else {
|
|
49
|
+
normalizedLayout = {
|
|
50
|
+
type: 'card',
|
|
51
|
+
withHeader: true,
|
|
52
|
+
isOpened: typeof layout.isOpened === 'boolean' ? layout.isOpened : true
|
|
53
|
+
};
|
|
54
|
+
}
|
|
16
55
|
}
|
|
17
|
-
|
|
56
|
+
return normalizedLayout;
|
|
57
|
+
}
|
|
58
|
+
function normalizeFormFields(form) {
|
|
59
|
+
var _form$fields;
|
|
60
|
+
const formLayout = normalizeLayout(form?.layout);
|
|
18
61
|
return ((_form$fields = form.fields) !== null && _form$fields !== void 0 ? _form$fields : []).map(field => {
|
|
19
|
-
var _field$layout, _field$labelPosition;
|
|
20
62
|
if (typeof field === 'string') {
|
|
21
63
|
return {
|
|
22
64
|
id: field,
|
|
23
|
-
layout
|
|
24
|
-
labelPosition
|
|
65
|
+
layout: formLayout
|
|
25
66
|
};
|
|
26
67
|
}
|
|
27
|
-
const fieldLayout =
|
|
28
|
-
const fieldLabelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : fieldLayout === 'regular' ? 'top' : 'side';
|
|
68
|
+
const fieldLayout = field.layout ? normalizeLayout(field.layout) : formLayout;
|
|
29
69
|
return {
|
|
30
70
|
...field,
|
|
31
|
-
layout: fieldLayout
|
|
32
|
-
labelPosition: fieldLabelPosition
|
|
71
|
+
layout: fieldLayout
|
|
33
72
|
};
|
|
34
73
|
});
|
|
35
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DEFAULT_LAYOUT","exports","type","labelPosition","normalizeLayout","layout","normalizedLayout","_layout$labelPosition","_layout$labelPosition2","_layout$openAs","openAs","withHeader","isOpened","normalizeFormFields","form","_form$fields","formLayout","fields","map","field","id","fieldLayout"],"sources":["@wordpress/dataviews/src/normalize-form-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {\n\tForm,\n\tLayout,\n\tNormalizedLayout,\n\tNormalizedRegularLayout,\n\tNormalizedPanelLayout,\n\tNormalizedCardLayout,\n} from './types';\n\ninterface NormalizedFormField {\n\tid: string;\n\tlayout: Layout;\n}\n\nexport const DEFAULT_LAYOUT: NormalizedLayout = {\n\ttype: 'regular',\n\tlabelPosition: 'top',\n};\n\n/**\n * Normalizes a layout configuration based on its type.\n *\n * @param layout The layout object to normalize.\n * @return The normalized layout object.\n */\nexport function normalizeLayout( layout?: Layout ): NormalizedLayout {\n\tlet normalizedLayout = DEFAULT_LAYOUT;\n\n\tif ( layout?.type === 'regular' ) {\n\t\tnormalizedLayout = {\n\t\t\ttype: 'regular',\n\t\t\tlabelPosition: layout?.labelPosition ?? 'top',\n\t\t} satisfies NormalizedRegularLayout;\n\t} else if ( layout?.type === 'panel' ) {\n\t\tnormalizedLayout = {\n\t\t\ttype: 'panel',\n\t\t\tlabelPosition: layout?.labelPosition ?? 'side',\n\t\t\topenAs: layout?.openAs ?? 'dropdown',\n\t\t} satisfies NormalizedPanelLayout;\n\t} else if ( layout?.type === 'card' ) {\n\t\tif ( layout.withHeader === false ) {\n\t\t\t// Don't let isOpened be false if withHeader is false.\n\t\t\t// Otherwise, the card will not be visible.\n\t\t\tnormalizedLayout = {\n\t\t\t\ttype: 'card',\n\t\t\t\twithHeader: false,\n\t\t\t\tisOpened: true,\n\t\t\t} satisfies NormalizedCardLayout;\n\t\t} else {\n\t\t\tnormalizedLayout = {\n\t\t\t\ttype: 'card',\n\t\t\t\twithHeader: true,\n\t\t\t\tisOpened:\n\t\t\t\t\ttypeof layout.isOpened === 'boolean'\n\t\t\t\t\t\t? layout.isOpened\n\t\t\t\t\t\t: true,\n\t\t\t} satisfies NormalizedCardLayout;\n\t\t}\n\t}\n\n\treturn normalizedLayout;\n}\n\nexport default function normalizeFormFields(\n\tform: Form\n): NormalizedFormField[] {\n\tconst formLayout = normalizeLayout( form?.layout );\n\n\treturn ( form.fields ?? [] ).map( ( field ) => {\n\t\tif ( typeof field === 'string' ) {\n\t\t\treturn {\n\t\t\t\tid: field,\n\t\t\t\tlayout: formLayout,\n\t\t\t};\n\t\t}\n\n\t\tconst fieldLayout = field.layout\n\t\t\t? normalizeLayout( field.layout )\n\t\t\t: formLayout;\n\t\treturn {\n\t\t\t...field,\n\t\t\tlayout: fieldLayout,\n\t\t};\n\t} );\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;;AAeO,MAAMA,cAAgC,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC/CE,IAAI,EAAE,SAAS;EACfC,aAAa,EAAE;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAEC,MAAe,EAAqB;EACpE,IAAIC,gBAAgB,GAAGN,cAAc;EAErC,IAAKK,MAAM,EAAEH,IAAI,KAAK,SAAS,EAAG;IAAA,IAAAK,qBAAA;IACjCD,gBAAgB,GAAG;MAClBJ,IAAI,EAAE,SAAS;MACfC,aAAa,GAAAI,qBAAA,GAAEF,MAAM,EAAEF,aAAa,cAAAI,qBAAA,cAAAA,qBAAA,GAAI;IACzC,CAAmC;EACpC,CAAC,MAAM,IAAKF,MAAM,EAAEH,IAAI,KAAK,OAAO,EAAG;IAAA,IAAAM,sBAAA,EAAAC,cAAA;IACtCH,gBAAgB,GAAG;MAClBJ,IAAI,EAAE,OAAO;MACbC,aAAa,GAAAK,sBAAA,GAAEH,MAAM,EAAEF,aAAa,cAAAK,sBAAA,cAAAA,sBAAA,GAAI,MAAM;MAC9CE,MAAM,GAAAD,cAAA,GAAEJ,MAAM,EAAEK,MAAM,cAAAD,cAAA,cAAAA,cAAA,GAAI;IAC3B,CAAiC;EAClC,CAAC,MAAM,IAAKJ,MAAM,EAAEH,IAAI,KAAK,MAAM,EAAG;IACrC,IAAKG,MAAM,CAACM,UAAU,KAAK,KAAK,EAAG;MAClC;MACA;MACAL,gBAAgB,GAAG;QAClBJ,IAAI,EAAE,MAAM;QACZS,UAAU,EAAE,KAAK;QACjBC,QAAQ,EAAE;MACX,CAAgC;IACjC,CAAC,MAAM;MACNN,gBAAgB,GAAG;QAClBJ,IAAI,EAAE,MAAM;QACZS,UAAU,EAAE,IAAI;QAChBC,QAAQ,EACP,OAAOP,MAAM,CAACO,QAAQ,KAAK,SAAS,GACjCP,MAAM,CAACO,QAAQ,GACf;MACL,CAAgC;IACjC;EACD;EAEA,OAAON,gBAAgB;AACxB;AAEe,SAASO,mBAAmBA,CAC1CC,IAAU,EACc;EAAA,IAAAC,YAAA;EACxB,MAAMC,UAAU,GAAGZ,eAAe,CAAEU,IAAI,EAAET,MAAO,CAAC;EAElD,OAAO,EAAAU,YAAA,GAAED,IAAI,CAACG,MAAM,cAAAF,YAAA,cAAAA,YAAA,GAAI,EAAE,EAAGG,GAAG,CAAIC,KAAK,IAAM;IAC9C,IAAK,OAAOA,KAAK,KAAK,QAAQ,EAAG;MAChC,OAAO;QACNC,EAAE,EAAED,KAAK;QACTd,MAAM,EAAEW;MACT,CAAC;IACF;IAEA,MAAMK,WAAW,GAAGF,KAAK,CAACd,MAAM,GAC7BD,eAAe,CAAEe,KAAK,CAACd,MAAO,CAAC,GAC/BW,UAAU;IACb,OAAO;MACN,GAAGG,KAAK;MACRd,MAAM,EAAEgB;IACT,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}
|