@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
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = ViewList;
8
- var _react = require("react");
9
8
  var _clsx = _interopRequireDefault(require("clsx"));
10
9
  var _compose = require("@wordpress/compose");
11
10
  var _components = require("@wordpress/components");
@@ -14,6 +13,7 @@ var _i18n = require("@wordpress/i18n");
14
13
  var _icons = require("@wordpress/icons");
15
14
  var _lockUnlock = require("./lock-unlock");
16
15
  var _itemActions = require("./item-actions");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
17
  /**
18
18
  * External dependencies
19
19
  */
@@ -80,125 +80,144 @@ function ListItem({
80
80
  };
81
81
  }, [actions, item]);
82
82
  const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
83
- return (0, _react.createElement)(CompositeRow, {
83
+ const primaryActionLabel = primaryAction && (typeof primaryAction.label === 'string' ? primaryAction.label : primaryAction.label([item]));
84
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeRow, {
84
85
  ref: itemRef,
85
- render: (0, _react.createElement)("li", null),
86
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {}),
86
87
  role: "row",
87
88
  className: (0, _clsx.default)({
88
89
  'is-selected': isSelected,
89
90
  'is-hovered': isHovered
90
91
  }),
91
92
  onMouseEnter: handleMouseEnter,
92
- onMouseLeave: handleMouseLeave
93
- }, (0, _react.createElement)(_components.__experimentalHStack, {
94
- className: "dataviews-view-list__item-wrapper",
95
- alignment: "top"
96
- }, (0, _react.createElement)("div", {
97
- role: "gridcell"
98
- }, (0, _react.createElement)(CompositeItem, {
99
- store: store,
100
- render: (0, _react.createElement)("div", null),
101
- role: "button",
102
- id: id,
103
- "aria-pressed": isSelected,
104
- "aria-labelledby": labelId,
105
- "aria-describedby": descriptionId,
106
- className: "dataviews-view-list__item",
107
- onClick: () => onSelect(item)
108
- }, (0, _react.createElement)(_components.__experimentalHStack, {
109
- spacing: 3,
110
- justify: "start",
111
- alignment: "flex-start"
112
- }, (0, _react.createElement)("div", {
113
- className: "dataviews-view-list__media-wrapper"
114
- }, mediaField?.render({
115
- item
116
- }) || (0, _react.createElement)("div", {
117
- className: "dataviews-view-list__media-placeholder"
118
- })), (0, _react.createElement)(_components.__experimentalVStack, {
119
- spacing: 1
120
- }, (0, _react.createElement)("span", {
121
- className: "dataviews-view-list__primary-field",
122
- id: labelId
123
- }, primaryField?.render({
124
- item
125
- })), (0, _react.createElement)("div", {
126
- className: "dataviews-view-list__fields",
127
- id: descriptionId
128
- }, visibleFields.map(field => (0, _react.createElement)("div", {
129
- key: field.id,
130
- className: "dataviews-view-list__field"
131
- }, (0, _react.createElement)(_components.VisuallyHidden, {
132
- as: "span",
133
- className: "dataviews-view-list__field-label"
134
- }, field.header), (0, _react.createElement)("span", {
135
- className: "dataviews-view-list__field-value"
136
- }, field.render({
137
- item
138
- }))))))))), actions?.length > 0 && (0, _react.createElement)(_components.__experimentalHStack, {
139
- spacing: 1,
140
- justify: "flex-end",
141
- className: "dataviews-view-list__item-actions",
142
- style: {
143
- flexShrink: '0',
144
- width: 'auto'
145
- }
146
- }, primaryAction && 'RenderModal' in primaryAction && (0, _react.createElement)("div", {
147
- role: "gridcell"
148
- }, (0, _react.createElement)(CompositeItem, {
149
- store: store,
150
- render: (0, _react.createElement)(_components.Button, {
151
- label: primaryAction.label,
152
- icon: primaryAction.icon,
153
- isDestructive: primaryAction.isDestructive,
154
- size: "compact",
155
- onClick: () => setIsModalOpen(true)
93
+ onMouseLeave: handleMouseLeave,
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
95
+ className: "dataviews-view-list__item-wrapper",
96
+ alignment: "center",
97
+ spacing: 0,
98
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
99
+ role: "gridcell",
100
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeItem, {
101
+ store: store,
102
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}),
103
+ role: "button",
104
+ id: id,
105
+ "aria-pressed": isSelected,
106
+ "aria-labelledby": labelId,
107
+ "aria-describedby": descriptionId,
108
+ className: "dataviews-view-list__item",
109
+ onClick: () => onSelect(item),
110
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
111
+ spacing: 3,
112
+ justify: "start",
113
+ alignment: "flex-start",
114
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
115
+ className: "dataviews-view-list__media-wrapper",
116
+ children: mediaField?.render({
117
+ item
118
+ }) || /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
119
+ className: "dataviews-view-list__media-placeholder"
120
+ })
121
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
122
+ spacing: 0,
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
124
+ className: "dataviews-view-list__primary-field",
125
+ id: labelId,
126
+ children: primaryField?.render({
127
+ item
128
+ })
129
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
130
+ className: "dataviews-view-list__fields",
131
+ id: descriptionId,
132
+ children: visibleFields.map(field => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
133
+ className: "dataviews-view-list__field",
134
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
135
+ as: "span",
136
+ className: "dataviews-view-list__field-label",
137
+ children: field.header
138
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
139
+ className: "dataviews-view-list__field-value",
140
+ children: field.render({
141
+ item
142
+ })
143
+ })]
144
+ }, field.id))
145
+ })]
146
+ })]
147
+ })
148
+ })
149
+ }), actions?.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
150
+ spacing: 1,
151
+ justify: "flex-end",
152
+ className: "dataviews-view-list__item-actions",
153
+ style: {
154
+ flexShrink: '0',
155
+ width: 'auto'
156
+ },
157
+ children: [primaryAction && 'RenderModal' in primaryAction && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
158
+ role: "gridcell",
159
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeItem, {
160
+ store: store,
161
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
162
+ label: primaryActionLabel,
163
+ icon: primaryAction.icon,
164
+ isDestructive: primaryAction.isDestructive,
165
+ size: "compact",
166
+ onClick: () => setIsModalOpen(true)
167
+ }),
168
+ children: isModalOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_itemActions.ActionModal, {
169
+ action: primaryAction,
170
+ items: [item],
171
+ closeModal: () => setIsModalOpen(false)
172
+ })
173
+ })
174
+ }), primaryAction && !('RenderModal' in primaryAction) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
175
+ role: "gridcell",
176
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeItem, {
177
+ store: store,
178
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
179
+ label: primaryActionLabel,
180
+ icon: primaryAction.icon,
181
+ isDestructive: primaryAction.isDestructive,
182
+ size: "compact",
183
+ onClick: () => primaryAction.callback([item])
184
+ })
185
+ })
186
+ }, primaryAction.id), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
187
+ role: "gridcell",
188
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenu, {
189
+ trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeItem, {
190
+ store: store,
191
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
192
+ size: "compact",
193
+ icon: _icons.moreVertical,
194
+ label: (0, _i18n.__)('Actions'),
195
+ __experimentalIsFocusable: true,
196
+ disabled: !actions.length,
197
+ onKeyDown: event => {
198
+ if (event.key === 'ArrowDown') {
199
+ // Prevent the default behaviour (open dropdown menu) and go down.
200
+ event.preventDefault();
201
+ store.move(store.down());
202
+ }
203
+ if (event.key === 'ArrowUp') {
204
+ // Prevent the default behavior (open dropdown menu) and go up.
205
+ event.preventDefault();
206
+ store.move(store.up());
207
+ }
208
+ }
209
+ })
210
+ }),
211
+ placement: "bottom-end",
212
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_itemActions.ActionsDropdownMenuGroup, {
213
+ actions: eligibleActions,
214
+ item: item
215
+ })
216
+ })
217
+ })]
218
+ })]
156
219
  })
157
- }, isModalOpen && (0, _react.createElement)(_itemActions.ActionModal, {
158
- action: primaryAction,
159
- items: [item],
160
- closeModal: () => setIsModalOpen(false)
161
- }))), primaryAction && !('RenderModal' in primaryAction) && (0, _react.createElement)("div", {
162
- role: "gridcell",
163
- key: primaryAction.id
164
- }, (0, _react.createElement)(CompositeItem, {
165
- store: store,
166
- render: (0, _react.createElement)(_components.Button, {
167
- label: primaryAction.label,
168
- icon: primaryAction.icon,
169
- isDestructive: primaryAction.isDestructive,
170
- size: "compact",
171
- onClick: () => primaryAction.callback([item])
172
- })
173
- })), (0, _react.createElement)("div", {
174
- role: "gridcell"
175
- }, (0, _react.createElement)(DropdownMenu, {
176
- trigger: (0, _react.createElement)(CompositeItem, {
177
- store: store,
178
- render: (0, _react.createElement)(_components.Button, {
179
- size: "compact",
180
- icon: _icons.moreVertical,
181
- label: (0, _i18n.__)('Actions'),
182
- disabled: !actions.length,
183
- onKeyDown: event => {
184
- if (event.key === 'ArrowDown') {
185
- // Prevent the default behaviour (open dropdown menu) and go down.
186
- event.preventDefault();
187
- store.move(store.down());
188
- }
189
- if (event.key === 'ArrowUp') {
190
- // Prevent the default behavior (open dropdown menu) and go up.
191
- event.preventDefault();
192
- store.move(store.up());
193
- }
194
- }
195
- })
196
- }),
197
- placement: "bottom-end"
198
- }, (0, _react.createElement)(_itemActions.ActionsDropdownMenuGroup, {
199
- actions: eligibleActions,
200
- item: item
201
- }))))));
220
+ });
202
221
  }
203
222
  function ViewList(props) {
204
223
  const {
@@ -236,33 +255,36 @@ function ViewList(props) {
236
255
  }, [isActiveIdInList]);
237
256
  const hasData = data?.length;
238
257
  if (!hasData) {
239
- return (0, _react.createElement)("div", {
258
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
240
259
  className: (0, _clsx.default)({
241
260
  'dataviews-loading': isLoading,
242
261
  'dataviews-no-results': !hasData && !isLoading
262
+ }),
263
+ children: !hasData && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
264
+ children: isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}) : (0, _i18n.__)('No results')
243
265
  })
244
- }, !hasData && (0, _react.createElement)("p", null, isLoading ? (0, _react.createElement)(_components.Spinner, null) : (0, _i18n.__)('No results')));
266
+ });
245
267
  }
246
- return (0, _react.createElement)(Composite, {
268
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Composite, {
247
269
  id: baseId,
248
- render: (0, _react.createElement)("ul", null),
270
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {}),
249
271
  className: "dataviews-view-list",
250
272
  role: "grid",
251
- store: store
252
- }, data.map(item => {
253
- const id = getItemDomId(item);
254
- return (0, _react.createElement)(ListItem, {
255
- key: id,
256
- id: id,
257
- actions: actions,
258
- item: item,
259
- isSelected: item === selectedItem,
260
- onSelect: onSelect,
261
- mediaField: mediaField,
262
- primaryField: primaryField,
263
- store: store,
264
- visibleFields: visibleFields
265
- });
266
- }));
273
+ store: store,
274
+ children: data.map(item => {
275
+ const id = getItemDomId(item);
276
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ListItem, {
277
+ id: id,
278
+ actions: actions,
279
+ item: item,
280
+ isSelected: item === selectedItem,
281
+ onSelect: onSelect,
282
+ mediaField: mediaField,
283
+ primaryField: primaryField,
284
+ store: store,
285
+ visibleFields: visibleFields
286
+ }, id);
287
+ })
288
+ });
267
289
  }
268
290
  //# sourceMappingURL=view-list.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_lockUnlock","_itemActions","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","DropdownMenuV2","DropdownMenu","unlock","componentsPrivateApis","ListItem","actions","id","isSelected","item","mediaField","onSelect","primaryField","store","visibleFields","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","useEffect","current","scrollIntoView","behavior","block","inline","primaryAction","eligibleActions","useMemo","_eligibleActions","filter","action","isEligible","_primaryActions","isPrimary","icon","isModalOpen","setIsModalOpen","_react","createElement","ref","render","role","className","clsx","onMouseEnter","onMouseLeave","__experimentalHStack","alignment","onClick","spacing","justify","__experimentalVStack","map","field","key","VisuallyHidden","as","header","length","style","flexShrink","width","Button","label","isDestructive","size","ActionModal","items","closeModal","callback","trigger","moreVertical","__","disabled","onKeyDown","event","preventDefault","move","down","up","placement","ActionsDropdownMenuGroup","ViewList","props","data","fields","getItemId","isLoading","onSelectionChange","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","hiddenFields","useCallback","getItemDomId","undefined","defaultActiveId","isActiveIdInList","state","some","activeId","hasData","Spinner"],"sources":["@wordpress/dataviews/src/view-list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n// Import CompositeStore type, which is not exported from @wordpress/components.\n// eslint-disable-next-line no-restricted-imports\nimport type { CompositeStore } from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type {\n\tAction,\n\tAnyItem,\n\tNormalizedField,\n\tViewList as ViewListType,\n} from './types';\n\nimport { ActionsDropdownMenuGroup, ActionModal } from './item-actions';\n\ninterface ListViewProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tid: string;\n\tisLoading: boolean;\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tselection: string[];\n\tview: ViewListType;\n}\n\ninterface ListViewItemProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tid?: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tstore: CompositeStore;\n\tvisibleFields: NormalizedField< Item >[];\n}\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n\tDropdownMenuV2: DropdownMenu,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem< Item extends AnyItem >( {\n\tactions,\n\tid,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tstore,\n\tvisibleFields,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLElement >( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-view-list__item-wrapper\"\n\t\t\t\talignment=\"top\"\n\t\t\t>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t\t{ actions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item-actions\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tflexShrink: '0',\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryAction && 'RenderModal' in primaryAction && (\n\t\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryAction.label }\n\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( true )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\t\t\t\tcloseModal={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ primaryAction &&\n\t\t\t\t\t\t\t! ( 'RenderModal' in primaryAction ) && (\n\t\t\t\t\t\t\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryAction.label }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.callback( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ ( event: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: string;\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreventDefault: () => void;\n\t\t\t\t\t\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'ArrowDown'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behaviour (open dropdown menu) and go down.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.down()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key === 'ArrowUp'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behavior (open dropdown menu) and go up.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.up()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList< Item extends AnyItem >(\n\tprops: ListViewProps< Item >\n) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonSelectionChange,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( item.id )\n\t);\n\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 = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item: Item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item?: Item ) =>\n\t\t\titem ? `${ baseId }-${ getItemId( item ) }` : undefined,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\t// Manage focused item, when the active one is removed from the list.\n\tconst isActiveIdInList = store.useState(\n\t\t( state: { items: any[]; activeId: any } ) =>\n\t\t\tstate.items.some(\n\t\t\t\t( item: { id: any } ) => item.id === state.activeId\n\t\t\t)\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isActiveIdInList ) {\n\t\t\t// Prefer going down, except if there is no item below (last item), then go up (last item in list).\n\t\t\tif ( store.down() ) {\n\t\t\t\tstore.move( store.down() );\n\t\t\t} else if ( store.up() ) {\n\t\t\t\tstore.move( store.up() );\n\t\t\t}\n\t\t}\n\t}, [ isActiveIdInList ] );\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\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>\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\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_lockUnlock","_itemActions","_jsxRuntime","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","DropdownMenuV2","DropdownMenu","unlock","componentsPrivateApis","ListItem","actions","id","isSelected","item","mediaField","onSelect","primaryField","store","visibleFields","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","useEffect","current","scrollIntoView","behavior","block","inline","primaryAction","eligibleActions","useMemo","_eligibleActions","filter","action","isEligible","_primaryActions","isPrimary","icon","isModalOpen","setIsModalOpen","primaryActionLabel","label","jsx","ref","render","role","className","clsx","onMouseEnter","onMouseLeave","children","jsxs","__experimentalHStack","alignment","spacing","onClick","justify","__experimentalVStack","map","field","VisuallyHidden","as","header","length","style","flexShrink","width","Button","isDestructive","size","ActionModal","items","closeModal","callback","trigger","moreVertical","__","__experimentalIsFocusable","disabled","onKeyDown","event","key","preventDefault","move","down","up","placement","ActionsDropdownMenuGroup","ViewList","props","data","fields","getItemId","isLoading","onSelectionChange","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","hiddenFields","useCallback","getItemDomId","undefined","defaultActiveId","isActiveIdInList","state","some","activeId","hasData","Spinner"],"sources":["@wordpress/dataviews/src/view-list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n// Import CompositeStore type, which is not exported from @wordpress/components.\n// eslint-disable-next-line no-restricted-imports\nimport type { CompositeStore } from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, AnyItem, NormalizedField, ViewListProps } from './types';\n\nimport { ActionsDropdownMenuGroup, ActionModal } from './item-actions';\n\ninterface ListViewItemProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tid?: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tstore: CompositeStore;\n\tvisibleFields: NormalizedField< Item >[];\n}\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n\tDropdownMenuV2: DropdownMenu,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem< Item extends AnyItem >( {\n\tactions,\n\tid,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tstore,\n\tvisibleFields,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLElement >( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst primaryActionLabel =\n\t\tprimaryAction &&\n\t\t( typeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] ) );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-view-list__item-wrapper\"\n\t\t\t\talignment=\"center\"\n\t\t\t\tspacing={ 0 }\n\t\t\t>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t\t{ actions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item-actions\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tflexShrink: '0',\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryAction && 'RenderModal' in primaryAction && (\n\t\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryActionLabel }\n\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( true )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\t\t\t\tcloseModal={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ primaryAction &&\n\t\t\t\t\t\t\t! ( 'RenderModal' in primaryAction ) && (\n\t\t\t\t\t\t\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryActionLabel }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.callback( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ ( event: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: string;\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreventDefault: () => void;\n\t\t\t\t\t\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'ArrowDown'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behaviour (open dropdown menu) and go down.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.down()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key === 'ArrowUp'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behavior (open dropdown menu) and go up.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.up()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList< Item extends AnyItem >(\n\tprops: ViewListProps< Item >\n) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonSelectionChange,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( item.id )\n\t);\n\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 = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item: Item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item?: Item ) =>\n\t\t\titem ? `${ baseId }-${ getItemId( item ) }` : undefined,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\t// Manage focused item, when the active one is removed from the list.\n\tconst isActiveIdInList = store.useState(\n\t\t( state: { items: any[]; activeId: any } ) =>\n\t\t\tstate.items.some(\n\t\t\t\t( item: { id: any } ) => item.id === state.activeId\n\t\t\t)\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isActiveIdInList ) {\n\t\t\t// Prefer going down, except if there is no item below (last item), then go up (last item in list).\n\t\t\tif ( store.down() ) {\n\t\t\t\tstore.move( store.down() );\n\t\t\t} else if ( store.up() ) {\n\t\t\t\tstore.move( store.up() );\n\t\t\t}\n\t\t}\n\t}, [ isActiveIdInList ] );\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\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>\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\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}