@wordpress/dataviews 1.2.0 → 2.0.1

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.
Files changed (150) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +33 -30
  3. package/build/add-filter.js +30 -22
  4. package/build/add-filter.js.map +1 -1
  5. package/build/bulk-actions-toolbar.js +74 -69
  6. package/build/bulk-actions-toolbar.js.map +1 -1
  7. package/build/bulk-actions.js +69 -56
  8. package/build/bulk-actions.js.map +1 -1
  9. package/build/constants.js +17 -10
  10. package/build/constants.js.map +1 -1
  11. package/build/dataviews.js +63 -56
  12. package/build/dataviews.js.map +1 -1
  13. package/build/filter-summary.js +105 -95
  14. package/build/filter-summary.js.map +1 -1
  15. package/build/filters.js +18 -17
  16. package/build/filters.js.map +1 -1
  17. package/build/index.js.map +1 -1
  18. package/build/item-actions.js +79 -65
  19. package/build/item-actions.js.map +1 -1
  20. package/build/layouts.js.map +1 -1
  21. package/build/pagination.js +60 -57
  22. package/build/pagination.js.map +1 -1
  23. package/build/reset-filters.js +9 -4
  24. package/build/reset-filters.js.map +1 -1
  25. package/build/search-widget.js +108 -89
  26. package/build/search-widget.js.map +1 -1
  27. package/build/search.js +13 -6
  28. package/build/search.js.map +1 -1
  29. package/build/single-selection-checkbox.js +2 -2
  30. package/build/single-selection-checkbox.js.map +1 -1
  31. package/build/types.js.map +1 -1
  32. package/build/utils.js +3 -15
  33. package/build/utils.js.map +1 -1
  34. package/build/view-actions.js +168 -120
  35. package/build/view-actions.js.map +1 -1
  36. package/build/view-grid.js +113 -99
  37. package/build/view-grid.js.map +1 -1
  38. package/build/view-list.js +154 -132
  39. package/build/view-list.js.map +1 -1
  40. package/build/view-table.js +220 -192
  41. package/build/view-table.js.map +1 -1
  42. package/build-module/add-filter.js +30 -22
  43. package/build-module/add-filter.js.map +1 -1
  44. package/build-module/bulk-actions-toolbar.js +76 -69
  45. package/build-module/bulk-actions-toolbar.js.map +1 -1
  46. package/build-module/bulk-actions.js +71 -56
  47. package/build-module/bulk-actions.js.map +1 -1
  48. package/build-module/constants.js +16 -9
  49. package/build-module/constants.js.map +1 -1
  50. package/build-module/dataviews.js +64 -56
  51. package/build-module/dataviews.js.map +1 -1
  52. package/build-module/filter-summary.js +106 -96
  53. package/build-module/filter-summary.js.map +1 -1
  54. package/build-module/filters.js +18 -17
  55. package/build-module/filters.js.map +1 -1
  56. package/build-module/index.js.map +1 -1
  57. package/build-module/item-actions.js +81 -65
  58. package/build-module/item-actions.js.map +1 -1
  59. package/build-module/layouts.js.map +1 -1
  60. package/build-module/pagination.js +61 -58
  61. package/build-module/pagination.js.map +1 -1
  62. package/build-module/reset-filters.js +9 -4
  63. package/build-module/reset-filters.js.map +1 -1
  64. package/build-module/search-widget.js +109 -89
  65. package/build-module/search-widget.js.map +1 -1
  66. package/build-module/search.js +13 -6
  67. package/build-module/search.js.map +1 -1
  68. package/build-module/single-selection-checkbox.js +2 -3
  69. package/build-module/single-selection-checkbox.js.map +1 -1
  70. package/build-module/types.js.map +1 -1
  71. package/build-module/utils.js +2 -13
  72. package/build-module/utils.js.map +1 -1
  73. package/build-module/view-actions.js +170 -121
  74. package/build-module/view-actions.js.map +1 -1
  75. package/build-module/view-grid.js +115 -99
  76. package/build-module/view-grid.js.map +1 -1
  77. package/build-module/view-list.js +155 -132
  78. package/build-module/view-list.js.map +1 -1
  79. package/build-module/view-table.js +223 -194
  80. package/build-module/view-table.js.map +1 -1
  81. package/build-style/style-rtl.css +115 -22
  82. package/build-style/style.css +115 -22
  83. package/build-types/add-filter.d.ts +9 -6
  84. package/build-types/add-filter.d.ts.map +1 -1
  85. package/build-types/bulk-actions-toolbar.d.ts +11 -7
  86. package/build-types/bulk-actions-toolbar.d.ts.map +1 -1
  87. package/build-types/bulk-actions.d.ts.map +1 -1
  88. package/build-types/constants.d.ts +19 -32
  89. package/build-types/constants.d.ts.map +1 -1
  90. package/build-types/dataviews.d.ts +21 -14
  91. package/build-types/dataviews.d.ts.map +1 -1
  92. package/build-types/filter-summary.d.ts +13 -5
  93. package/build-types/filter-summary.d.ts.map +1 -1
  94. package/build-types/filters.d.ts +11 -1
  95. package/build-types/filters.d.ts.map +1 -1
  96. package/build-types/index.d.ts +3 -3
  97. package/build-types/index.d.ts.map +1 -1
  98. package/build-types/item-actions.d.ts +5 -7
  99. package/build-types/item-actions.d.ts.map +1 -1
  100. package/build-types/layouts.d.ts +8 -4
  101. package/build-types/layouts.d.ts.map +1 -1
  102. package/build-types/reset-filters.d.ts +12 -5
  103. package/build-types/reset-filters.d.ts.map +1 -1
  104. package/build-types/search-widget.d.ts +9 -1
  105. package/build-types/search-widget.d.ts.map +1 -1
  106. package/build-types/search.d.ts +11 -1
  107. package/build-types/search.d.ts.map +1 -1
  108. package/build-types/types.d.ts +78 -10
  109. package/build-types/types.d.ts.map +1 -1
  110. package/build-types/utils.d.ts +2 -1
  111. package/build-types/utils.d.ts.map +1 -1
  112. package/build-types/view-actions.d.ts +10 -1
  113. package/build-types/view-actions.d.ts.map +1 -1
  114. package/build-types/view-grid.d.ts +1 -12
  115. package/build-types/view-grid.d.ts.map +1 -1
  116. package/build-types/view-list.d.ts +2 -14
  117. package/build-types/view-list.d.ts.map +1 -1
  118. package/build-types/view-table.d.ts +3 -12
  119. package/build-types/view-table.d.ts.map +1 -1
  120. package/package.json +11 -12
  121. package/src/{add-filter.js → add-filter.tsx} +17 -1
  122. package/src/{bulk-actions-toolbar.js → bulk-actions-toolbar.tsx} +68 -40
  123. package/src/bulk-actions.tsx +5 -1
  124. package/src/constants.ts +12 -5
  125. package/src/{dataviews.js → dataviews.tsx} +41 -12
  126. package/src/{filter-summary.js → filter-summary.tsx} +35 -6
  127. package/src/{filters.js → filters.tsx} +18 -6
  128. package/src/item-actions.tsx +21 -15
  129. package/src/pagination.tsx +1 -1
  130. package/src/{reset-filters.js → reset-filters.tsx} +17 -2
  131. package/src/{search-widget.js → search-widget.tsx} +27 -7
  132. package/src/{search.js → search.tsx} +22 -5
  133. package/src/style.scss +102 -25
  134. package/src/types.ts +105 -10
  135. package/src/{utils.js → utils.ts} +5 -13
  136. package/src/{view-actions.js → view-actions.tsx} +105 -49
  137. package/src/view-grid.tsx +4 -20
  138. package/src/view-list.tsx +13 -23
  139. package/src/{view-table.js → view-table.tsx} +91 -32
  140. package/tsconfig.json +0 -3
  141. package/tsconfig.tsbuildinfo +1 -1
  142. package/build/dropdown-menu-helper.js +0 -71
  143. package/build/dropdown-menu-helper.js.map +0 -1
  144. package/build-module/dropdown-menu-helper.js +0 -64
  145. package/build-module/dropdown-menu-helper.js.map +0 -1
  146. package/build-types/dropdown-menu-helper.d.ts +0 -6
  147. package/build-types/dropdown-menu-helper.d.ts.map +0 -1
  148. package/src/dropdown-menu-helper.js +0 -61
  149. /package/src/{index.js → index.ts} +0 -0
  150. /package/src/{layouts.js → layouts.ts} +0 -0
@@ -1,4 +1,3 @@
1
- import { createElement, Fragment } from "react";
2
1
  /**
3
2
  * External dependencies
4
3
  */
@@ -16,6 +15,9 @@ import { __ } from '@wordpress/i18n';
16
15
  import ItemActions from './item-actions';
17
16
  import SingleSelectionCheckbox from './single-selection-checkbox';
18
17
  import { useHasAPossibleBulkAction } from './bulk-actions';
18
+ import { jsx as _jsx } from "react/jsx-runtime";
19
+ import { jsxs as _jsxs } from "react/jsx-runtime";
20
+ import { Fragment as _Fragment } from "react/jsx-runtime";
19
21
  function GridItem({
20
22
  selection,
21
23
  data,
@@ -32,9 +34,8 @@ function GridItem({
32
34
  const hasBulkAction = useHasAPossibleBulkAction(actions, item);
33
35
  const id = getItemId(item);
34
36
  const isSelected = selection.includes(id);
35
- return createElement(VStack, {
37
+ return /*#__PURE__*/_jsxs(VStack, {
36
38
  spacing: 0,
37
- key: id,
38
39
  className: clsx('dataviews-view-grid__card', {
39
40
  'is-selected': hasBulkAction && isSelected
40
41
  }),
@@ -57,76 +58,86 @@ function GridItem({
57
58
  }));
58
59
  }
59
60
  }
60
- }
61
- }, createElement("div", {
62
- className: "dataviews-view-grid__media"
63
- }, mediaField?.render({
64
- item
65
- })), createElement(HStack, {
66
- justify: "space-between",
67
- className: "dataviews-view-grid__title-actions"
68
- }, createElement(SingleSelectionCheckbox, {
69
- item: item,
70
- selection: selection,
71
- onSelectionChange: onSelectionChange,
72
- getItemId: getItemId,
73
- data: data,
74
- primaryField: primaryField,
75
- disabled: !hasBulkAction
76
- }), createElement(HStack, {
77
- className: "dataviews-view-grid__primary-field"
78
- }, primaryField?.render({
79
- item
80
- })), createElement(ItemActions, {
81
- item: item,
82
- actions: actions,
83
- isCompact: true
84
- })), !!badgeFields?.length && createElement(HStack, {
85
- className: "dataviews-view-grid__badge-fields",
86
- spacing: 2,
87
- wrap: true,
88
- alignment: "top",
89
- justify: "flex-start"
90
- }, badgeFields.map(field => {
91
- const renderedValue = field.render({
92
- item
93
- });
94
- if (!renderedValue) {
95
- return null;
96
- }
97
- return createElement(FlexItem, {
98
- key: field.id,
99
- className: 'dataviews-view-grid__field-value'
100
- }, renderedValue);
101
- })), !!visibleFields?.length && createElement(VStack, {
102
- className: "dataviews-view-grid__fields",
103
- spacing: 3
104
- }, visibleFields.map(field => {
105
- const renderedValue = field.render({
106
- item
107
- });
108
- if (!renderedValue) {
109
- return null;
110
- }
111
- return createElement(Flex, {
112
- className: clsx('dataviews-view-grid__field', columnFields?.includes(field.id) ? 'is-column' : 'is-row'),
113
- key: field.id,
114
- gap: 1,
61
+ },
62
+ children: [/*#__PURE__*/_jsx("div", {
63
+ className: "dataviews-view-grid__media",
64
+ children: mediaField?.render({
65
+ item
66
+ })
67
+ }), /*#__PURE__*/_jsxs(HStack, {
68
+ justify: "space-between",
69
+ className: "dataviews-view-grid__title-actions",
70
+ children: [/*#__PURE__*/_jsx(SingleSelectionCheckbox, {
71
+ item: item,
72
+ selection: selection,
73
+ onSelectionChange: onSelectionChange,
74
+ getItemId: getItemId,
75
+ data: data,
76
+ primaryField: primaryField,
77
+ disabled: !hasBulkAction
78
+ }), /*#__PURE__*/_jsx(HStack, {
79
+ className: "dataviews-view-grid__primary-field",
80
+ children: primaryField?.render({
81
+ item
82
+ })
83
+ }), /*#__PURE__*/_jsx(ItemActions, {
84
+ item: item,
85
+ actions: actions,
86
+ isCompact: true
87
+ })]
88
+ }), !!badgeFields?.length && /*#__PURE__*/_jsx(HStack, {
89
+ className: "dataviews-view-grid__badge-fields",
90
+ spacing: 2,
91
+ wrap: true,
92
+ alignment: "top",
115
93
  justify: "flex-start",
116
- expanded: true,
117
- style: {
118
- height: 'auto'
119
- },
120
- direction: columnFields?.includes(field.id) ? 'column' : 'row'
121
- }, createElement(Fragment, null, createElement(FlexItem, {
122
- className: "dataviews-view-grid__field-name"
123
- }, field.header), createElement(FlexItem, {
124
- className: "dataviews-view-grid__field-value",
125
- style: {
126
- maxHeight: 'none'
127
- }
128
- }, renderedValue)));
129
- })));
94
+ children: badgeFields.map(field => {
95
+ const renderedValue = field.render({
96
+ item
97
+ });
98
+ if (!renderedValue) {
99
+ return null;
100
+ }
101
+ return /*#__PURE__*/_jsx(FlexItem, {
102
+ className: "dataviews-view-grid__field-value",
103
+ children: renderedValue
104
+ }, field.id);
105
+ })
106
+ }), !!visibleFields?.length && /*#__PURE__*/_jsx(VStack, {
107
+ className: "dataviews-view-grid__fields",
108
+ spacing: 3,
109
+ children: visibleFields.map(field => {
110
+ const renderedValue = field.render({
111
+ item
112
+ });
113
+ if (!renderedValue) {
114
+ return null;
115
+ }
116
+ return /*#__PURE__*/_jsx(Flex, {
117
+ className: clsx('dataviews-view-grid__field', columnFields?.includes(field.id) ? 'is-column' : 'is-row'),
118
+ gap: 1,
119
+ justify: "flex-start",
120
+ expanded: true,
121
+ style: {
122
+ height: 'auto'
123
+ },
124
+ direction: columnFields?.includes(field.id) ? 'column' : 'row',
125
+ children: /*#__PURE__*/_jsxs(_Fragment, {
126
+ children: [/*#__PURE__*/_jsx(FlexItem, {
127
+ className: "dataviews-view-grid__field-name",
128
+ children: field.header
129
+ }), /*#__PURE__*/_jsx(FlexItem, {
130
+ className: "dataviews-view-grid__field-value",
131
+ style: {
132
+ maxHeight: 'none'
133
+ },
134
+ children: renderedValue
135
+ })]
136
+ })
137
+ }, field.id);
138
+ })
139
+ })]
140
+ }, id);
130
141
  }
131
142
  export default function ViewGrid({
132
143
  actions,
@@ -157,32 +168,37 @@ export default function ViewGrid({
157
168
  badgeFields: []
158
169
  });
159
170
  const hasData = !!data?.length;
160
- return createElement(Fragment, null, hasData && createElement(Grid, {
161
- gap: 6,
162
- columns: 2,
163
- alignment: "top",
164
- className: "dataviews-view-grid",
165
- "aria-busy": isLoading
166
- }, data.map(item => {
167
- return createElement(GridItem, {
168
- key: getItemId(item),
169
- selection: selection,
170
- data: data,
171
- onSelectionChange: onSelectionChange,
172
- getItemId: getItemId,
173
- item: item,
174
- actions: actions,
175
- mediaField: mediaField,
176
- primaryField: primaryField,
177
- visibleFields: visibleFields,
178
- badgeFields: badgeFields,
179
- columnFields: view.layout.columnFields
180
- });
181
- })), !hasData && createElement("div", {
182
- className: clsx({
183
- 'dataviews-loading': isLoading,
184
- 'dataviews-no-results': !isLoading
185
- })
186
- }, createElement("p", null, isLoading ? createElement(Spinner, null) : __('No results'))));
171
+ return /*#__PURE__*/_jsxs(_Fragment, {
172
+ children: [hasData && /*#__PURE__*/_jsx(Grid, {
173
+ gap: 8,
174
+ columns: 2,
175
+ alignment: "top",
176
+ className: "dataviews-view-grid",
177
+ "aria-busy": isLoading,
178
+ children: data.map(item => {
179
+ return /*#__PURE__*/_jsx(GridItem, {
180
+ selection: selection,
181
+ data: data,
182
+ onSelectionChange: onSelectionChange,
183
+ getItemId: getItemId,
184
+ item: item,
185
+ actions: actions,
186
+ mediaField: mediaField,
187
+ primaryField: primaryField,
188
+ visibleFields: visibleFields,
189
+ badgeFields: badgeFields,
190
+ columnFields: view.layout.columnFields
191
+ }, getItemId(item));
192
+ })
193
+ }), !hasData && /*#__PURE__*/_jsx("div", {
194
+ className: clsx({
195
+ 'dataviews-loading': isLoading,
196
+ 'dataviews-no-results': !isLoading
197
+ }),
198
+ children: /*#__PURE__*/_jsx("p", {
199
+ children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')
200
+ })
201
+ })]
202
+ });
187
203
  }
188
204
  //# sourceMappingURL=view-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","__","ItemActions","SingleSelectionCheckbox","useHasAPossibleBulkAction","GridItem","selection","data","onSelectionChange","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","id","isSelected","includes","createElement","spacing","key","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","_item","itemId","render","justify","disabled","isCompact","length","wrap","alignment","map","field","renderedValue","gap","expanded","style","height","direction","Fragment","header","maxHeight","ViewGrid","fields","isLoading","view","find","layout","reduce","accumulator","hiddenFields","push","hasData","columns"],"sources":["@wordpress/dataviews/src/view-grid.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} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { useHasAPossibleBulkAction } from './bulk-actions';\nimport type {\n\tAction,\n\tAnyItem,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n} from './types';\n\ninterface GridItemProps< Item extends AnyItem > {\n\tselection: string[];\n\tdata: Item[];\n\tonSelectionChange: ( items: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields: string[];\n}\n\ninterface ViewGridProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading: boolean;\n\tonSelectionChange: ( items: Item[] ) => void;\n\tselection: string[];\n\tview: ViewGridType;\n}\n\nfunction GridItem< Item extends AnyItem >( {\n\tselection,\n\tdata,\n\tonSelectionChange,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\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\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\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} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\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}\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ mediaField?.render( { item } ) }\n\t\t\t</div>\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<SingleSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName={ 'dataviews-view-grid__field-value' }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 3 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\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<>\n\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{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\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\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item extends AnyItem >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonSelectionChange,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\tview.hiddenFields.includes( field.id ) ||\n\t\t\t\t[ view.layout.mediaField, view.layout.primaryField ].includes(\n\t\t\t\t\tfield.id\n\t\t\t\t)\n\t\t\t) {\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( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 6 }\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\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\tselection={ selection }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\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\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout.columnFields }\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","__","ItemActions","SingleSelectionCheckbox","useHasAPossibleBulkAction","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GridItem","selection","data","onSelectionChange","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","id","isSelected","includes","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","_item","itemId","children","render","justify","disabled","isCompact","length","wrap","alignment","map","field","renderedValue","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","fields","isLoading","view","find","layout","reduce","accumulator","hiddenFields","key","push","hasData","columns"],"sources":["@wordpress/dataviews/src/view-grid.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} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { useHasAPossibleBulkAction } from './bulk-actions';\nimport type { Action, AnyItem, NormalizedField, ViewGridProps } from './types';\n\ninterface GridItemProps< Item extends AnyItem > {\n\tselection: string[];\n\tdata: Item[];\n\tonSelectionChange: ( items: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item extends AnyItem >( {\n\tselection,\n\tdata,\n\tonSelectionChange,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\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\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\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} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\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}\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ mediaField?.render( { item } ) }\n\t\t\t</div>\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<SingleSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 3 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\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<>\n\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{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\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\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item extends AnyItem >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonSelectionChange,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\tview.hiddenFields.includes( field.id ) ||\n\t\t\t\t[ view.layout.mediaField, view.layout.primaryField ].includes(\n\t\t\t\t\tfield.id\n\t\t\t\t)\n\t\t\t) {\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( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\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\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\tselection={ selection }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\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\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout.columnFields }\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,4 +1,3 @@
1
- import { createElement } from "react";
2
1
  /**
3
2
  * External dependencies
4
3
  */
@@ -20,6 +19,8 @@ import { moreVertical } from '@wordpress/icons';
20
19
  */
21
20
  import { unlock } from './lock-unlock';
22
21
  import { ActionsDropdownMenuGroup, ActionModal } from './item-actions';
22
+ import { jsx as _jsx } from "react/jsx-runtime";
23
+ import { jsxs as _jsxs } from "react/jsx-runtime";
23
24
  const {
24
25
  useCompositeStoreV2: useCompositeStore,
25
26
  CompositeV2: Composite,
@@ -71,125 +72,144 @@ function ListItem({
71
72
  };
72
73
  }, [actions, item]);
73
74
  const [isModalOpen, setIsModalOpen] = useState(false);
74
- return createElement(CompositeRow, {
75
+ const primaryActionLabel = primaryAction && (typeof primaryAction.label === 'string' ? primaryAction.label : primaryAction.label([item]));
76
+ return /*#__PURE__*/_jsx(CompositeRow, {
75
77
  ref: itemRef,
76
- render: createElement("li", null),
78
+ render: /*#__PURE__*/_jsx("li", {}),
77
79
  role: "row",
78
80
  className: clsx({
79
81
  'is-selected': isSelected,
80
82
  'is-hovered': isHovered
81
83
  }),
82
84
  onMouseEnter: handleMouseEnter,
83
- onMouseLeave: handleMouseLeave
84
- }, createElement(HStack, {
85
- className: "dataviews-view-list__item-wrapper",
86
- alignment: "top"
87
- }, createElement("div", {
88
- role: "gridcell"
89
- }, createElement(CompositeItem, {
90
- store: store,
91
- render: createElement("div", null),
92
- role: "button",
93
- id: id,
94
- "aria-pressed": isSelected,
95
- "aria-labelledby": labelId,
96
- "aria-describedby": descriptionId,
97
- className: "dataviews-view-list__item",
98
- onClick: () => onSelect(item)
99
- }, createElement(HStack, {
100
- spacing: 3,
101
- justify: "start",
102
- alignment: "flex-start"
103
- }, createElement("div", {
104
- className: "dataviews-view-list__media-wrapper"
105
- }, mediaField?.render({
106
- item
107
- }) || createElement("div", {
108
- className: "dataviews-view-list__media-placeholder"
109
- })), createElement(VStack, {
110
- spacing: 1
111
- }, createElement("span", {
112
- className: "dataviews-view-list__primary-field",
113
- id: labelId
114
- }, primaryField?.render({
115
- item
116
- })), createElement("div", {
117
- className: "dataviews-view-list__fields",
118
- id: descriptionId
119
- }, visibleFields.map(field => createElement("div", {
120
- key: field.id,
121
- className: "dataviews-view-list__field"
122
- }, createElement(VisuallyHidden, {
123
- as: "span",
124
- className: "dataviews-view-list__field-label"
125
- }, field.header), createElement("span", {
126
- className: "dataviews-view-list__field-value"
127
- }, field.render({
128
- item
129
- }))))))))), actions?.length > 0 && createElement(HStack, {
130
- spacing: 1,
131
- justify: "flex-end",
132
- className: "dataviews-view-list__item-actions",
133
- style: {
134
- flexShrink: '0',
135
- width: 'auto'
136
- }
137
- }, primaryAction && 'RenderModal' in primaryAction && createElement("div", {
138
- role: "gridcell"
139
- }, createElement(CompositeItem, {
140
- store: store,
141
- render: createElement(Button, {
142
- label: primaryAction.label,
143
- icon: primaryAction.icon,
144
- isDestructive: primaryAction.isDestructive,
145
- size: "compact",
146
- onClick: () => setIsModalOpen(true)
85
+ onMouseLeave: handleMouseLeave,
86
+ children: /*#__PURE__*/_jsxs(HStack, {
87
+ className: "dataviews-view-list__item-wrapper",
88
+ alignment: "center",
89
+ spacing: 0,
90
+ children: [/*#__PURE__*/_jsx("div", {
91
+ role: "gridcell",
92
+ children: /*#__PURE__*/_jsx(CompositeItem, {
93
+ store: store,
94
+ render: /*#__PURE__*/_jsx("div", {}),
95
+ role: "button",
96
+ id: id,
97
+ "aria-pressed": isSelected,
98
+ "aria-labelledby": labelId,
99
+ "aria-describedby": descriptionId,
100
+ className: "dataviews-view-list__item",
101
+ onClick: () => onSelect(item),
102
+ children: /*#__PURE__*/_jsxs(HStack, {
103
+ spacing: 3,
104
+ justify: "start",
105
+ alignment: "flex-start",
106
+ children: [/*#__PURE__*/_jsx("div", {
107
+ className: "dataviews-view-list__media-wrapper",
108
+ children: mediaField?.render({
109
+ item
110
+ }) || /*#__PURE__*/_jsx("div", {
111
+ className: "dataviews-view-list__media-placeholder"
112
+ })
113
+ }), /*#__PURE__*/_jsxs(VStack, {
114
+ spacing: 0,
115
+ children: [/*#__PURE__*/_jsx("span", {
116
+ className: "dataviews-view-list__primary-field",
117
+ id: labelId,
118
+ children: primaryField?.render({
119
+ item
120
+ })
121
+ }), /*#__PURE__*/_jsx("div", {
122
+ className: "dataviews-view-list__fields",
123
+ id: descriptionId,
124
+ children: visibleFields.map(field => /*#__PURE__*/_jsxs("div", {
125
+ className: "dataviews-view-list__field",
126
+ children: [/*#__PURE__*/_jsx(VisuallyHidden, {
127
+ as: "span",
128
+ className: "dataviews-view-list__field-label",
129
+ children: field.header
130
+ }), /*#__PURE__*/_jsx("span", {
131
+ className: "dataviews-view-list__field-value",
132
+ children: field.render({
133
+ item
134
+ })
135
+ })]
136
+ }, field.id))
137
+ })]
138
+ })]
139
+ })
140
+ })
141
+ }), actions?.length > 0 && /*#__PURE__*/_jsxs(HStack, {
142
+ spacing: 1,
143
+ justify: "flex-end",
144
+ className: "dataviews-view-list__item-actions",
145
+ style: {
146
+ flexShrink: '0',
147
+ width: 'auto'
148
+ },
149
+ children: [primaryAction && 'RenderModal' in primaryAction && /*#__PURE__*/_jsx("div", {
150
+ role: "gridcell",
151
+ children: /*#__PURE__*/_jsx(CompositeItem, {
152
+ store: store,
153
+ render: /*#__PURE__*/_jsx(Button, {
154
+ label: primaryActionLabel,
155
+ icon: primaryAction.icon,
156
+ isDestructive: primaryAction.isDestructive,
157
+ size: "compact",
158
+ onClick: () => setIsModalOpen(true)
159
+ }),
160
+ children: isModalOpen && /*#__PURE__*/_jsx(ActionModal, {
161
+ action: primaryAction,
162
+ items: [item],
163
+ closeModal: () => setIsModalOpen(false)
164
+ })
165
+ })
166
+ }), primaryAction && !('RenderModal' in primaryAction) && /*#__PURE__*/_jsx("div", {
167
+ role: "gridcell",
168
+ children: /*#__PURE__*/_jsx(CompositeItem, {
169
+ store: store,
170
+ render: /*#__PURE__*/_jsx(Button, {
171
+ label: primaryActionLabel,
172
+ icon: primaryAction.icon,
173
+ isDestructive: primaryAction.isDestructive,
174
+ size: "compact",
175
+ onClick: () => primaryAction.callback([item])
176
+ })
177
+ })
178
+ }, primaryAction.id), /*#__PURE__*/_jsx("div", {
179
+ role: "gridcell",
180
+ children: /*#__PURE__*/_jsx(DropdownMenu, {
181
+ trigger: /*#__PURE__*/_jsx(CompositeItem, {
182
+ store: store,
183
+ render: /*#__PURE__*/_jsx(Button, {
184
+ size: "compact",
185
+ icon: moreVertical,
186
+ label: __('Actions'),
187
+ __experimentalIsFocusable: true,
188
+ disabled: !actions.length,
189
+ onKeyDown: event => {
190
+ if (event.key === 'ArrowDown') {
191
+ // Prevent the default behaviour (open dropdown menu) and go down.
192
+ event.preventDefault();
193
+ store.move(store.down());
194
+ }
195
+ if (event.key === 'ArrowUp') {
196
+ // Prevent the default behavior (open dropdown menu) and go up.
197
+ event.preventDefault();
198
+ store.move(store.up());
199
+ }
200
+ }
201
+ })
202
+ }),
203
+ placement: "bottom-end",
204
+ children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {
205
+ actions: eligibleActions,
206
+ item: item
207
+ })
208
+ })
209
+ })]
210
+ })]
147
211
  })
148
- }, isModalOpen && createElement(ActionModal, {
149
- action: primaryAction,
150
- items: [item],
151
- closeModal: () => setIsModalOpen(false)
152
- }))), primaryAction && !('RenderModal' in primaryAction) && createElement("div", {
153
- role: "gridcell",
154
- key: primaryAction.id
155
- }, createElement(CompositeItem, {
156
- store: store,
157
- render: createElement(Button, {
158
- label: primaryAction.label,
159
- icon: primaryAction.icon,
160
- isDestructive: primaryAction.isDestructive,
161
- size: "compact",
162
- onClick: () => primaryAction.callback([item])
163
- })
164
- })), createElement("div", {
165
- role: "gridcell"
166
- }, createElement(DropdownMenu, {
167
- trigger: createElement(CompositeItem, {
168
- store: store,
169
- render: createElement(Button, {
170
- size: "compact",
171
- icon: moreVertical,
172
- label: __('Actions'),
173
- disabled: !actions.length,
174
- onKeyDown: event => {
175
- if (event.key === 'ArrowDown') {
176
- // Prevent the default behaviour (open dropdown menu) and go down.
177
- event.preventDefault();
178
- store.move(store.down());
179
- }
180
- if (event.key === 'ArrowUp') {
181
- // Prevent the default behavior (open dropdown menu) and go up.
182
- event.preventDefault();
183
- store.move(store.up());
184
- }
185
- }
186
- })
187
- }),
188
- placement: "bottom-end"
189
- }, createElement(ActionsDropdownMenuGroup, {
190
- actions: eligibleActions,
191
- item: item
192
- }))))));
212
+ });
193
213
  }
194
214
  export default function ViewList(props) {
195
215
  const {
@@ -227,33 +247,36 @@ export default function ViewList(props) {
227
247
  }, [isActiveIdInList]);
228
248
  const hasData = data?.length;
229
249
  if (!hasData) {
230
- return createElement("div", {
250
+ return /*#__PURE__*/_jsx("div", {
231
251
  className: clsx({
232
252
  'dataviews-loading': isLoading,
233
253
  'dataviews-no-results': !hasData && !isLoading
254
+ }),
255
+ children: !hasData && /*#__PURE__*/_jsx("p", {
256
+ children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')
234
257
  })
235
- }, !hasData && createElement("p", null, isLoading ? createElement(Spinner, null) : __('No results')));
258
+ });
236
259
  }
237
- return createElement(Composite, {
260
+ return /*#__PURE__*/_jsx(Composite, {
238
261
  id: baseId,
239
- render: createElement("ul", null),
262
+ render: /*#__PURE__*/_jsx("ul", {}),
240
263
  className: "dataviews-view-list",
241
264
  role: "grid",
242
- store: store
243
- }, data.map(item => {
244
- const id = getItemDomId(item);
245
- return createElement(ListItem, {
246
- key: id,
247
- id: id,
248
- actions: actions,
249
- item: item,
250
- isSelected: item === selectedItem,
251
- onSelect: onSelect,
252
- mediaField: mediaField,
253
- primaryField: primaryField,
254
- store: store,
255
- visibleFields: visibleFields
256
- });
257
- }));
265
+ store: store,
266
+ children: data.map(item => {
267
+ const id = getItemDomId(item);
268
+ return /*#__PURE__*/_jsx(ListItem, {
269
+ id: id,
270
+ actions: actions,
271
+ item: item,
272
+ isSelected: item === selectedItem,
273
+ onSelect: onSelect,
274
+ mediaField: mediaField,
275
+ primaryField: primaryField,
276
+ store: store,
277
+ visibleFields: visibleFields
278
+ }, id);
279
+ })
280
+ });
258
281
  }
259
282
  //# sourceMappingURL=view-list.js.map