@wordpress/dataviews 4.5.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/dataviews-bulk-actions/index.js +8 -8
  3. package/build/components/dataviews-bulk-actions/index.js.map +1 -1
  4. package/build/components/dataviews-filters/add-filter.js +7 -7
  5. package/build/components/dataviews-filters/add-filter.js.map +1 -1
  6. package/build/components/dataviews-filters/filter-summary.js +8 -8
  7. package/build/components/dataviews-filters/filter-summary.js.map +1 -1
  8. package/build/components/dataviews-filters/index.js +3 -3
  9. package/build/components/dataviews-filters/index.js.map +1 -1
  10. package/build/components/dataviews-filters/search-widget.js +1 -1
  11. package/build/components/dataviews-filters/search-widget.js.map +1 -1
  12. package/build/components/dataviews-item-actions/index.js +11 -11
  13. package/build/components/dataviews-item-actions/index.js.map +1 -1
  14. package/build/components/dataviews-selection-checkbox/index.js +1 -2
  15. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  16. package/build/components/dataviews-view-config/index.js +10 -10
  17. package/build/components/dataviews-view-config/index.js.map +1 -1
  18. package/build/dataforms-layouts/panel/index.js +1 -1
  19. package/build/dataforms-layouts/panel/index.js.map +1 -1
  20. package/build/dataviews-layouts/grid/index.js.map +1 -1
  21. package/build/dataviews-layouts/list/index.js +74 -81
  22. package/build/dataviews-layouts/list/index.js.map +1 -1
  23. package/build/dataviews-layouts/table/column-header-menu.js +18 -18
  24. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
  25. package/build/types.js.map +1 -1
  26. package/build-module/components/dataform-combined-edit/index.js +1 -3
  27. package/build-module/components/dataform-combined-edit/index.js.map +1 -1
  28. package/build-module/components/dataviews/index.js +1 -2
  29. package/build-module/components/dataviews/index.js.map +1 -1
  30. package/build-module/components/dataviews-bulk-actions/index.js +9 -10
  31. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
  32. package/build-module/components/dataviews-filters/add-filter.js +6 -6
  33. package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
  34. package/build-module/components/dataviews-filters/filter-summary.js +9 -10
  35. package/build-module/components/dataviews-filters/filter-summary.js.map +1 -1
  36. package/build-module/components/dataviews-filters/index.js +6 -7
  37. package/build-module/components/dataviews-filters/index.js.map +1 -1
  38. package/build-module/components/dataviews-filters/search-widget.js +2 -3
  39. package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
  40. package/build-module/components/dataviews-footer/index.js +1 -2
  41. package/build-module/components/dataviews-footer/index.js.map +1 -1
  42. package/build-module/components/dataviews-item-actions/index.js +11 -13
  43. package/build-module/components/dataviews-item-actions/index.js.map +1 -1
  44. package/build-module/components/dataviews-pagination/index.js +1 -2
  45. package/build-module/components/dataviews-pagination/index.js.map +1 -1
  46. package/build-module/components/dataviews-selection-checkbox/index.js +1 -2
  47. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  48. package/build-module/components/dataviews-view-config/index.js +11 -13
  49. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  50. package/build-module/dataform-controls/datetime.js +1 -2
  51. package/build-module/dataform-controls/datetime.js.map +1 -1
  52. package/build-module/dataforms-layouts/panel/index.js +3 -5
  53. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  54. package/build-module/dataviews-layouts/grid/index.js +1 -3
  55. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  56. package/build-module/dataviews-layouts/list/index.js +76 -84
  57. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  58. package/build-module/dataviews-layouts/table/column-header-menu.js +19 -20
  59. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
  60. package/build-module/dataviews-layouts/table/index.js +1 -3
  61. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  62. package/build-module/types.js.map +1 -1
  63. package/build-style/style-rtl.css +30 -38
  64. package/build-style/style.css +30 -38
  65. package/build-types/components/dataviews-filters/add-filter.d.ts +1 -1
  66. package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -1
  67. package/build-types/components/dataviews-item-actions/index.d.ts +2 -2
  68. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  69. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
  70. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  71. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  72. package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
  73. package/build-types/types.d.ts +5 -6
  74. package/build-types/types.d.ts.map +1 -1
  75. package/package.json +13 -12
  76. package/src/components/dataviews-bulk-actions/index.tsx +6 -6
  77. package/src/components/dataviews-filters/add-filter.tsx +8 -10
  78. package/src/components/dataviews-filters/index.tsx +4 -4
  79. package/src/components/dataviews-item-actions/index.tsx +15 -15
  80. package/src/components/dataviews-selection-checkbox/index.tsx +3 -2
  81. package/src/components/dataviews-view-config/index.tsx +9 -11
  82. package/src/dataforms-layouts/panel/index.tsx +2 -2
  83. package/src/dataviews-layouts/list/index.tsx +85 -106
  84. package/src/dataviews-layouts/list/style.scss +32 -49
  85. package/src/dataviews-layouts/table/column-header-menu.tsx +31 -35
  86. package/src/types.ts +6 -2
  87. package/tsconfig.tsbuildinfo +1 -1
@@ -28,7 +28,7 @@ var _jsxRuntime = require("react/jsx-runtime");
28
28
  */
29
29
 
30
30
  const {
31
- DropdownMenuV2: DropdownMenu
31
+ Menu
32
32
  } = (0, _lockUnlock.unlock)(_components.privateApis);
33
33
  function generateItemWrapperCompositeId(idPrefix) {
34
34
  return `${idPrefix}-item-wrapper`;
@@ -98,11 +98,11 @@ function ListItem({
98
98
  const labelId = `${idPrefix}-label`;
99
99
  const descriptionId = `${idPrefix}-description`;
100
100
  const [isHovered, setIsHovered] = (0, _element.useState)(false);
101
- const handleMouseEnter = () => {
102
- setIsHovered(true);
103
- };
104
- const handleMouseLeave = () => {
105
- setIsHovered(false);
101
+ const handleHover = ({
102
+ type
103
+ }) => {
104
+ const isHover = type === 'mouseenter';
105
+ setIsHovered(isHover);
106
106
  };
107
107
  (0, _element.useEffect)(() => {
108
108
  if (isSelected) {
@@ -126,14 +126,44 @@ function ListItem({
126
126
  eligibleActions: _eligibleActions
127
127
  };
128
128
  }, [actions, item]);
129
- const renderedMediaField = mediaField?.render ? /*#__PURE__*/(0, _jsxRuntime.jsx)(mediaField.render, {
130
- item: item
131
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
132
- className: "dataviews-view-list__media-placeholder"
133
- });
129
+ const renderedMediaField = mediaField?.render ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
130
+ className: "dataviews-view-list__media-wrapper",
131
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(mediaField.render, {
132
+ item: item
133
+ })
134
+ }) : null;
134
135
  const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/(0, _jsxRuntime.jsx)(primaryField.render, {
135
136
  item: item
136
137
  }) : null;
138
+ const usedActions = eligibleActions?.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
139
+ spacing: 3,
140
+ className: "dataviews-view-list__item-actions",
141
+ children: [primaryAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(PrimaryActionGridCell, {
142
+ idPrefix: idPrefix,
143
+ primaryAction: primaryAction,
144
+ item: item
145
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
146
+ role: "gridcell",
147
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu, {
148
+ trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Item, {
149
+ id: generateDropdownTriggerCompositeId(idPrefix),
150
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
151
+ size: "small",
152
+ icon: _icons.moreVertical,
153
+ label: (0, _i18n.__)('Actions'),
154
+ accessibleWhenDisabled: true,
155
+ disabled: !actions.length,
156
+ onKeyDown: onDropdownTriggerKeyDown
157
+ })
158
+ }),
159
+ placement: "bottom-end",
160
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.ActionsMenuGroup, {
161
+ actions: eligibleActions,
162
+ item: item
163
+ })
164
+ })
165
+ })]
166
+ });
137
167
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Row, {
138
168
  ref: itemRef,
139
169
  render: /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {}),
@@ -142,89 +172,52 @@ function ListItem({
142
172
  'is-selected': isSelected,
143
173
  'is-hovered': isHovered
144
174
  }),
145
- onMouseEnter: handleMouseEnter,
146
- onMouseLeave: handleMouseLeave,
175
+ onMouseEnter: handleHover,
176
+ onMouseLeave: handleHover,
147
177
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
148
178
  className: "dataviews-view-list__item-wrapper",
149
- alignment: "center",
150
179
  spacing: 0,
151
180
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
152
181
  role: "gridcell",
153
182
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Item, {
154
- render: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}),
155
- role: "button",
156
183
  id: generateItemWrapperCompositeId(idPrefix),
157
184
  "aria-pressed": isSelected,
158
185
  "aria-labelledby": labelId,
159
186
  "aria-describedby": descriptionId,
160
187
  className: "dataviews-view-list__item",
161
- onClick: () => onSelect(item),
162
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
163
- spacing: 3,
164
- justify: "start",
165
- alignment: "flex-start",
166
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
167
- className: "dataviews-view-list__media-wrapper",
168
- children: renderedMediaField
169
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
170
- spacing: 1,
171
- className: "dataviews-view-list__field-wrapper",
172
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
173
- className: "dataviews-view-list__primary-field",
174
- id: labelId,
175
- children: renderedPrimaryField
176
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
177
- className: "dataviews-view-list__fields",
178
- id: descriptionId,
179
- children: visibleFields.map(field => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
180
- className: "dataviews-view-list__field",
181
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
182
- as: "span",
183
- className: "dataviews-view-list__field-label",
184
- children: field.label
185
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
186
- className: "dataviews-view-list__field-value",
187
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
188
- item: item
189
- })
190
- })]
191
- }, field.id))
192
- })]
193
- })]
194
- })
188
+ onClick: () => onSelect(item)
195
189
  })
196
- }), eligibleActions?.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
190
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
197
191
  spacing: 3,
198
- justify: "flex-end",
199
- className: "dataviews-view-list__item-actions",
200
- style: {
201
- flexShrink: '0',
202
- width: 'auto'
203
- },
204
- children: [primaryAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(PrimaryActionGridCell, {
205
- idPrefix: idPrefix,
206
- primaryAction: primaryAction,
207
- item: item
208
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
209
- role: "gridcell",
210
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenu, {
211
- trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.Item, {
212
- id: generateDropdownTriggerCompositeId(idPrefix),
213
- render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
214
- size: "small",
215
- icon: _icons.moreVertical,
216
- label: (0, _i18n.__)('Actions'),
217
- accessibleWhenDisabled: true,
218
- disabled: !actions.length,
219
- onKeyDown: onDropdownTriggerKeyDown
220
- })
221
- }),
222
- placement: "bottom-end",
223
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.ActionsDropdownMenuGroup, {
224
- actions: eligibleActions,
225
- item: item
226
- })
227
- })
192
+ justify: "start",
193
+ alignment: "flex-start",
194
+ children: [renderedMediaField, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
195
+ spacing: 1,
196
+ className: "dataviews-view-list__field-wrapper",
197
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
198
+ spacing: 0,
199
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
200
+ className: "dataviews-view-list__primary-field",
201
+ id: labelId,
202
+ children: renderedPrimaryField
203
+ }), usedActions]
204
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
205
+ className: "dataviews-view-list__fields",
206
+ id: descriptionId,
207
+ children: visibleFields.map(field => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
208
+ className: "dataviews-view-list__field",
209
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
210
+ as: "span",
211
+ className: "dataviews-view-list__field-label",
212
+ children: field.label
213
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
214
+ className: "dataviews-view-list__field-value",
215
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
216
+ item: item
217
+ })
218
+ })]
219
+ }, field.id))
220
+ })]
228
221
  })]
229
222
  })]
230
223
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_data","_lockUnlock","_dataviewsItemActions","_jsxRuntime","DropdownMenuV2","DropdownMenu","unlock","componentsPrivateApis","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","useRegistry","isModalOpen","setIsModalOpen","useState","compositeItemId","id","label","jsx","role","children","Composite","Item","render","Button","icon","isDestructive","size","onClick","ActionModal","action","items","closeModal","callback","ListItem","actions","isSelected","mediaField","onSelect","primaryField","visibleFields","onDropdownTriggerKeyDown","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","handleMouseEnter","handleMouseLeave","useEffect","current","scrollIntoView","behavior","block","inline","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","renderedMediaField","className","renderedPrimaryField","Row","ref","clsx","onMouseEnter","onMouseLeave","jsxs","__experimentalHStack","alignment","spacing","justify","__experimentalVStack","map","field","VisuallyHidden","as","length","style","flexShrink","width","trigger","moreVertical","__","accessibleWhenDisabled","disabled","onKeyDown","placement","ActionsDropdownMenuGroup","ViewList","props","data","fields","getItemId","isLoading","onChangeSelection","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","viewFields","generateCompositeItemIdPrefix","useCallback","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","usePrevious","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","Spinner","activeId","setActiveId"],"sources":["@wordpress/dataviews/src/dataviews-layouts/list/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } 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\tComposite,\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';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tActionsDropdownMenuGroup,\n\tActionModal,\n} from '../../components/dataviews-item-actions';\nimport type { Action, NormalizedField, ViewListProps } from '../../types';\n\ninterface ListViewItemProps< Item > {\n\tactions: Action< Item >[];\n\tidPrefix: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tonDropdownTriggerKeyDown: React.KeyboardEventHandler< HTMLButtonElement >;\n}\n\nconst { DropdownMenuV2: DropdownMenu } = unlock( componentsPrivateApis );\n\nfunction generateItemWrapperCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(\n\tidPrefix: string,\n\tprimaryActionId: string\n) {\n\treturn `${ idPrefix }-primary-action-${ primaryActionId }`;\n}\nfunction generateDropdownTriggerCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-dropdown`;\n}\n\nfunction PrimaryActionGridCell< Item >( {\n\tidPrefix,\n\tprimaryAction,\n\titem,\n}: {\n\tidPrefix: string;\n\tprimaryAction: Action< Item >;\n\titem: Item;\n} ) {\n\tconst registry = useRegistry();\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst compositeItemId = generatePrimaryActionCompositeId(\n\t\tidPrefix,\n\t\tprimaryAction.id\n\t);\n\n\tconst label =\n\t\ttypeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] );\n\n\treturn 'RenderModal' in primaryAction ? (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Composite.Item>\n\t\t</div>\n\t) : (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tprimaryAction.callback( [ item ], { registry } );\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</div>\n\t);\n}\n\nfunction ListItem< Item >( {\n\tactions,\n\tidPrefix,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tvisibleFields,\n\tonDropdownTriggerKeyDown,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLDivElement >( null );\n\tconst labelId = `${ idPrefix }-label`;\n\tconst descriptionId = `${ idPrefix }-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 renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : (\n\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t);\n\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\n\treturn (\n\t\t<Composite.Row\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<Composite.Item\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ generateItemWrapperCompositeId( idPrefix ) }\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{ renderedMediaField }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-wrapper\"\n\t\t\t\t\t\t\t>\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{ renderedPrimaryField }\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.label }\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={ 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</Composite.Item>\n\t\t\t\t</div>\n\t\t\t\t{ eligibleActions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 3 }\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 && (\n\t\t\t\t\t\t\t<PrimaryActionGridCell\n\t\t\t\t\t\t\t\tidPrefix={ idPrefix }\n\t\t\t\t\t\t\t\tprimaryAction={ primaryAction }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t/>\n\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<Composite.Item\n\t\t\t\t\t\t\t\t\t\tid={ generateDropdownTriggerCompositeId(\n\t\t\t\t\t\t\t\t\t\t\tidPrefix\n\t\t\t\t\t\t\t\t\t\t) }\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=\"small\"\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\taccessibleWhenDisabled\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={\n\t\t\t\t\t\t\t\t\t\t\t\t\tonDropdownTriggerKeyDown\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</Composite.Row>\n\t);\n}\n\nexport default function ViewList< Item >( props: ViewListProps< Item > ) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonChangeSelection,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\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 viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\tviewFields.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 = ( item: Item ) =>\n\t\tonChangeSelection( [ getItemId( item ) ] );\n\n\tconst generateCompositeItemIdPrefix = useCallback(\n\t\t( item: Item ) => `${ baseId }-${ getItemId( item ) }`,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst isActiveCompositeItem = useCallback(\n\t\t( item: Item, idToCheck: string ) => {\n\t\t\t// All composite items use the same prefix in their IDs.\n\t\t\treturn idToCheck.startsWith(\n\t\t\t\tgenerateCompositeItemIdPrefix( item )\n\t\t\t);\n\t\t},\n\t\t[ generateCompositeItemIdPrefix ]\n\t);\n\n\t// Controlled state for the active composite item.\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState<\n\t\tstring | null | undefined\n\t>( undefined );\n\n\t// Update the active composite item when the selected item changes.\n\tuseEffect( () => {\n\t\tif ( selectedItem ) {\n\t\t\tsetActiveCompositeId(\n\t\t\t\tgenerateItemWrapperCompositeId(\n\t\t\t\t\tgenerateCompositeItemIdPrefix( selectedItem )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selectedItem, generateCompositeItemIdPrefix ] );\n\n\tconst activeItemIndex = data.findIndex( ( item ) =>\n\t\tisActiveCompositeItem( item, activeCompositeId ?? '' )\n\t);\n\tconst previousActiveItemIndex = usePrevious( activeItemIndex );\n\tconst isActiveIdInList = activeItemIndex !== -1;\n\n\tconst selectCompositeItem = useCallback(\n\t\t(\n\t\t\ttargetIndex: number,\n\t\t\t// Allows invokers to specify a custom function to generate the\n\t\t\t// target composite item ID\n\t\t\tgenerateCompositeId: ( idPrefix: string ) => string\n\t\t) => {\n\t\t\t// Clamping between 0 and data.length - 1 to avoid out of bounds.\n\t\t\tconst clampedIndex = Math.min(\n\t\t\t\tdata.length - 1,\n\t\t\t\tMath.max( 0, targetIndex )\n\t\t\t);\n\t\t\tif ( ! data[ clampedIndex ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst itemIdPrefix = generateCompositeItemIdPrefix(\n\t\t\t\tdata[ clampedIndex ]\n\t\t\t);\n\t\t\tconst targetCompositeItemId = generateCompositeId( itemIdPrefix );\n\n\t\t\tsetActiveCompositeId( targetCompositeItemId );\n\t\t\tdocument.getElementById( targetCompositeItemId )?.focus();\n\t\t},\n\t\t[ data, generateCompositeItemIdPrefix ]\n\t);\n\n\t// Select a new active composite item when the current active item\n\t// is removed from the list.\n\tuseEffect( () => {\n\t\tconst wasActiveIdInList =\n\t\t\tpreviousActiveItemIndex !== undefined &&\n\t\t\tpreviousActiveItemIndex !== -1;\n\t\tif ( ! isActiveIdInList && wasActiveIdInList ) {\n\t\t\t// By picking `previousActiveItemIndex` as the next item index, we are\n\t\t\t// basically picking the item that would have been after the deleted one.\n\t\t\t// If the previously active (and removed) item was the last of the list,\n\t\t\t// we will select the item before it — which is the new last item.\n\t\t\tselectCompositeItem(\n\t\t\t\tpreviousActiveItemIndex,\n\t\t\t\tgenerateItemWrapperCompositeId\n\t\t\t);\n\t\t}\n\t}, [ isActiveIdInList, selectCompositeItem, previousActiveItemIndex ] );\n\n\t// Prevent the default behavior (open dropdown menu) and instead select the\n\t// dropdown menu trigger on the previous/next row.\n\t// https://github.com/ariakit/ariakit/issues/3768\n\tconst onDropdownTriggerKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLButtonElement > ) => {\n\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the next row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex + 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the previous row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex - 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectCompositeItem, activeItemIndex ]\n\t);\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\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = generateCompositeItemIdPrefix( 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\tidPrefix={ 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\tvisibleFields={ visibleFields }\n\t\t\t\t\t\tonDropdownTriggerKeyDown={ onDropdownTriggerKeyDown }\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","_data","_lockUnlock","_dataviewsItemActions","_jsxRuntime","Menu","unlock","componentsPrivateApis","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","useRegistry","isModalOpen","setIsModalOpen","useState","compositeItemId","id","label","jsx","role","children","Composite","Item","render","Button","icon","isDestructive","size","onClick","ActionModal","action","items","closeModal","callback","ListItem","actions","isSelected","mediaField","onSelect","primaryField","visibleFields","onDropdownTriggerKeyDown","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","handleHover","type","isHover","useEffect","current","scrollIntoView","behavior","block","inline","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","renderedMediaField","className","renderedPrimaryField","usedActions","length","jsxs","__experimentalHStack","spacing","trigger","moreVertical","__","accessibleWhenDisabled","disabled","onKeyDown","placement","ActionsMenuGroup","Row","ref","clsx","onMouseEnter","onMouseLeave","justify","alignment","__experimentalVStack","map","field","VisuallyHidden","as","ViewList","props","data","fields","getItemId","isLoading","onChangeSelection","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","viewFields","generateCompositeItemIdPrefix","useCallback","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","usePrevious","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","Spinner","activeId","setActiveId"],"sources":["@wordpress/dataviews/src/dataviews-layouts/list/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } 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\tComposite,\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';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tActionsMenuGroup,\n\tActionModal,\n} from '../../components/dataviews-item-actions';\nimport type { Action, NormalizedField, ViewListProps } from '../../types';\n\ninterface ListViewItemProps< Item > {\n\tactions: Action< Item >[];\n\tidPrefix: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tonDropdownTriggerKeyDown: React.KeyboardEventHandler< HTMLButtonElement >;\n}\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nfunction generateItemWrapperCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(\n\tidPrefix: string,\n\tprimaryActionId: string\n) {\n\treturn `${ idPrefix }-primary-action-${ primaryActionId }`;\n}\nfunction generateDropdownTriggerCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-dropdown`;\n}\n\nfunction PrimaryActionGridCell< Item >( {\n\tidPrefix,\n\tprimaryAction,\n\titem,\n}: {\n\tidPrefix: string;\n\tprimaryAction: Action< Item >;\n\titem: Item;\n} ) {\n\tconst registry = useRegistry();\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst compositeItemId = generatePrimaryActionCompositeId(\n\t\tidPrefix,\n\t\tprimaryAction.id\n\t);\n\n\tconst label =\n\t\ttypeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] );\n\n\treturn 'RenderModal' in primaryAction ? (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Composite.Item>\n\t\t</div>\n\t) : (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tprimaryAction.callback( [ item ], { registry } );\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</div>\n\t);\n}\n\nfunction ListItem< Item >( {\n\tactions,\n\tidPrefix,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tvisibleFields,\n\tonDropdownTriggerKeyDown,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLDivElement >( null );\n\tconst labelId = `${ idPrefix }-label`;\n\tconst descriptionId = `${ idPrefix }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleHover: React.MouseEventHandler = ( { type } ) => {\n\t\tconst isHover = type === 'mouseenter';\n\t\tsetIsHovered( isHover );\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 renderedMediaField = mediaField?.render ? (\n\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t<mediaField.render item={ item } />\n\t\t</div>\n\t) : null;\n\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\n\tconst usedActions = eligibleActions?.length > 0 && (\n\t\t<HStack spacing={ 3 } className=\"dataviews-view-list__item-actions\">\n\t\t\t{ primaryAction && (\n\t\t\t\t<PrimaryActionGridCell\n\t\t\t\t\tidPrefix={ idPrefix }\n\t\t\t\t\tprimaryAction={ primaryAction }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Menu\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\tid={ generateDropdownTriggerCompositeId(\n\t\t\t\t\t\t\t\tidPrefix\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\tonKeyDown={ onDropdownTriggerKeyDown }\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\tplacement=\"bottom-end\"\n\t\t\t\t>\n\t\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t</Menu>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n\n\treturn (\n\t\t<Composite.Row\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={ handleHover }\n\t\t\tonMouseLeave={ handleHover }\n\t\t>\n\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\" spacing={ 0 }>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\tid={ generateItemWrapperCompositeId( idPrefix ) }\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</div>\n\t\t\t\t<HStack spacing={ 3 } justify=\"start\" alignment=\"flex-start\">\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__field-wrapper\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack spacing={ 0 }>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ usedActions }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\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>\n\t\t\t\t\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\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<field.render item={ item } />\n\t\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) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</VStack>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Composite.Row>\n\t);\n}\n\nexport default function ViewList< Item >( props: ViewListProps< Item > ) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonChangeSelection,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\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 viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\tviewFields.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 = ( item: Item ) =>\n\t\tonChangeSelection( [ getItemId( item ) ] );\n\n\tconst generateCompositeItemIdPrefix = useCallback(\n\t\t( item: Item ) => `${ baseId }-${ getItemId( item ) }`,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst isActiveCompositeItem = useCallback(\n\t\t( item: Item, idToCheck: string ) => {\n\t\t\t// All composite items use the same prefix in their IDs.\n\t\t\treturn idToCheck.startsWith(\n\t\t\t\tgenerateCompositeItemIdPrefix( item )\n\t\t\t);\n\t\t},\n\t\t[ generateCompositeItemIdPrefix ]\n\t);\n\n\t// Controlled state for the active composite item.\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState<\n\t\tstring | null | undefined\n\t>( undefined );\n\n\t// Update the active composite item when the selected item changes.\n\tuseEffect( () => {\n\t\tif ( selectedItem ) {\n\t\t\tsetActiveCompositeId(\n\t\t\t\tgenerateItemWrapperCompositeId(\n\t\t\t\t\tgenerateCompositeItemIdPrefix( selectedItem )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selectedItem, generateCompositeItemIdPrefix ] );\n\n\tconst activeItemIndex = data.findIndex( ( item ) =>\n\t\tisActiveCompositeItem( item, activeCompositeId ?? '' )\n\t);\n\tconst previousActiveItemIndex = usePrevious( activeItemIndex );\n\tconst isActiveIdInList = activeItemIndex !== -1;\n\n\tconst selectCompositeItem = useCallback(\n\t\t(\n\t\t\ttargetIndex: number,\n\t\t\t// Allows invokers to specify a custom function to generate the\n\t\t\t// target composite item ID\n\t\t\tgenerateCompositeId: ( idPrefix: string ) => string\n\t\t) => {\n\t\t\t// Clamping between 0 and data.length - 1 to avoid out of bounds.\n\t\t\tconst clampedIndex = Math.min(\n\t\t\t\tdata.length - 1,\n\t\t\t\tMath.max( 0, targetIndex )\n\t\t\t);\n\t\t\tif ( ! data[ clampedIndex ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst itemIdPrefix = generateCompositeItemIdPrefix(\n\t\t\t\tdata[ clampedIndex ]\n\t\t\t);\n\t\t\tconst targetCompositeItemId = generateCompositeId( itemIdPrefix );\n\n\t\t\tsetActiveCompositeId( targetCompositeItemId );\n\t\t\tdocument.getElementById( targetCompositeItemId )?.focus();\n\t\t},\n\t\t[ data, generateCompositeItemIdPrefix ]\n\t);\n\n\t// Select a new active composite item when the current active item\n\t// is removed from the list.\n\tuseEffect( () => {\n\t\tconst wasActiveIdInList =\n\t\t\tpreviousActiveItemIndex !== undefined &&\n\t\t\tpreviousActiveItemIndex !== -1;\n\t\tif ( ! isActiveIdInList && wasActiveIdInList ) {\n\t\t\t// By picking `previousActiveItemIndex` as the next item index, we are\n\t\t\t// basically picking the item that would have been after the deleted one.\n\t\t\t// If the previously active (and removed) item was the last of the list,\n\t\t\t// we will select the item before it — which is the new last item.\n\t\t\tselectCompositeItem(\n\t\t\t\tpreviousActiveItemIndex,\n\t\t\t\tgenerateItemWrapperCompositeId\n\t\t\t);\n\t\t}\n\t}, [ isActiveIdInList, selectCompositeItem, previousActiveItemIndex ] );\n\n\t// Prevent the default behavior (open dropdown menu) and instead select the\n\t// dropdown menu trigger on the previous/next row.\n\t// https://github.com/ariakit/ariakit/issues/3768\n\tconst onDropdownTriggerKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLButtonElement > ) => {\n\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the next row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex + 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the previous row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex - 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectCompositeItem, activeItemIndex ]\n\t);\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\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = generateCompositeItemIdPrefix( 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\tidPrefix={ 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\tvisibleFields={ visibleFields }\n\t\t\t\t\t\tonDropdownTriggerKeyDown={ onDropdownTriggerKeyDown }\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":[]}
@@ -26,13 +26,13 @@ var _jsxRuntime = require("react/jsx-runtime");
26
26
  */
27
27
 
28
28
  const {
29
- DropdownMenuV2
29
+ Menu
30
30
  } = (0, _lockUnlock.unlock)(_components.privateApis);
31
- function WithDropDownMenuSeparators({
31
+ function WithMenuSeparators({
32
32
  children
33
33
  }) {
34
34
  return _element.Children.toArray(children).filter(Boolean).map((child, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
35
- children: [i > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Separator, {}), child]
35
+ children: [i > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Separator, {}), child]
36
36
  }, i));
37
37
  }
38
38
  const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
@@ -70,7 +70,7 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
70
70
  } else {
71
71
  header = combinedField.header || combinedField.label;
72
72
  }
73
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2, {
73
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu, {
74
74
  align: "start",
75
75
  trigger: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Button, {
76
76
  size: "compact",
@@ -85,12 +85,12 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
85
85
  style: {
86
86
  minWidth: '240px'
87
87
  },
88
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(WithDropDownMenuSeparators, {
89
- children: [isSortable && /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Group, {
88
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(WithMenuSeparators, {
89
+ children: [isSortable && /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Group, {
90
90
  children: _constants.SORTING_DIRECTIONS.map(direction => {
91
91
  const isChecked = view.sort && isSorted && view.sort.direction === direction;
92
92
  const value = `${fieldId}-${direction}`;
93
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.RadioItem, {
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.RadioItem, {
94
94
  // All sorting radio items share the same name, so that
95
95
  // selecting a sorting option automatically deselects the
96
96
  // previously selected one, even if it is displayed in
@@ -108,13 +108,13 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
108
108
  }
109
109
  });
110
110
  },
111
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.ItemLabel, {
111
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
112
112
  children: _constants.sortLabels[direction]
113
113
  })
114
114
  }, value);
115
115
  })
116
- }), canAddFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Group, {
117
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Item, {
116
+ }), canAddFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Group, {
117
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Item, {
118
118
  prefix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
119
119
  icon: _icons.funnel
120
120
  }),
@@ -130,12 +130,12 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
130
130
  }]
131
131
  });
132
132
  },
133
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.ItemLabel, {
133
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
134
134
  children: (0, _i18n.__)('Add filter')
135
135
  })
136
136
  })
137
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(DropdownMenuV2.Group, {
138
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Item, {
137
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Menu.Group, {
138
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Item, {
139
139
  prefix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
140
140
  icon: _icons.arrowLeft
141
141
  }),
@@ -147,10 +147,10 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
147
147
  fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), fieldId, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]
148
148
  });
149
149
  },
150
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.ItemLabel, {
150
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
151
151
  children: (0, _i18n.__)('Move left')
152
152
  })
153
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Item, {
153
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Item, {
154
154
  prefix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
155
155
  icon: _icons.arrowRight
156
156
  }),
@@ -162,10 +162,10 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
162
162
  fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], fieldId, ...visibleFieldIds.slice(index + 2)]
163
163
  });
164
164
  },
165
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.ItemLabel, {
165
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
166
166
  children: (0, _i18n.__)('Move right')
167
167
  })
168
- }), isHidable && field && /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.Item, {
168
+ }), isHidable && field && /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Item, {
169
169
  prefix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
170
170
  icon: _icons.unseen
171
171
  }),
@@ -176,7 +176,7 @@ const _HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
176
176
  fields: visibleFieldIds.filter(id => id !== fieldId)
177
177
  });
178
178
  },
179
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuV2.ItemLabel, {
179
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
180
180
  children: (0, _i18n.__)('Hide column')
181
181
  })
182
182
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_components","_element","_lockUnlock","_utils","_constants","_index","_jsxRuntime","DropdownMenuV2","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","jsxs","Fragment","jsx","Separator","_HeaderMenu","forwardRef","HeaderMenu","fieldId","view","fields","onChangeView","onHide","setOpenedFilter","ref","visibleFieldIds","getVisibleFieldIds","index","indexOf","isSorted","sort","field","isHidable","isSortable","canAddFilter","header","operators","combinedField","layout","combinedFields","find","f","id","enableHiding","enableSorting","sanitizeOperators","filters","some","_filter","elements","length","filterBy","isPrimary","label","align","trigger","Button","size","className","variant","sortArrows","direction","style","minWidth","Group","SORTING_DIRECTIONS","isChecked","value","RadioItem","name","checked","onChange","ItemLabel","sortLabels","Item","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","arrowLeft","disabled","_visibleFieldIds$slic","slice","arrowRight","_visibleFieldIds$slic2","unseen","ColumnHeaderMenu","_default","exports","default"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-header-menu.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, Ref, PropsWithoutRef, RefAttributes } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight, unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { sanitizeOperators } from '../../utils';\nimport { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';\nimport type {\n\tNormalizedField,\n\tSortDirection,\n\tViewTable as ViewTableType,\n\tOperator,\n} from '../../types';\nimport { getVisibleFieldIds } from '../index';\n\nconst { DropdownMenuV2 } = unlock( componentsPrivateApis );\n\ninterface HeaderMenuProps< Item > {\n\tfieldId: string;\n\tview: ViewTableType;\n\tfields: NormalizedField< Item >[];\n\tonChangeView: ( view: ViewTableType ) => void;\n\tonHide: ( field: NormalizedField< Item > ) => void;\n\tsetOpenedFilter: ( fieldId: string ) => void;\n}\n\nfunction WithDropDownMenuSeparators( { children }: { children: ReactNode } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuV2.Separator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst _HeaderMenu = forwardRef( function HeaderMenu< Item >(\n\t{\n\t\tfieldId,\n\t\tview,\n\t\tfields,\n\t\tonChangeView,\n\t\tonHide,\n\t\tsetOpenedFilter,\n\t}: HeaderMenuProps< Item >,\n\tref: Ref< HTMLButtonElement >\n) {\n\tconst visibleFieldIds = getVisibleFieldIds( view, fields );\n\tconst index = visibleFieldIds?.indexOf( fieldId ) as number;\n\tconst isSorted = view.sort?.field === fieldId;\n\tlet isHidable = false;\n\tlet isSortable = false;\n\tlet canAddFilter = false;\n\tlet header;\n\tlet operators: Operator[] = [];\n\n\tconst combinedField = view.layout?.combinedFields?.find(\n\t\t( f ) => f.id === fieldId\n\t);\n\tconst field = fields.find( ( f ) => f.id === fieldId );\n\n\tif ( ! combinedField ) {\n\t\tif ( ! field ) {\n\t\t\t// No combined or regular field found.\n\t\t\treturn null;\n\t\t}\n\n\t\tisHidable = field.enableHiding !== false;\n\t\tisSortable = field.enableSorting !== false;\n\t\theader = field.header;\n\n\t\toperators = sanitizeOperators( field );\n\t\t// Filter can be added:\n\t\t// 1. If the field is not already part of a view's filters.\n\t\t// 2. If the field meets the type and operator requirements.\n\t\t// 3. If it's not primary. If it is, it should be already visible.\n\t\tcanAddFilter =\n\t\t\t! view.filters?.some( ( _filter ) => fieldId === _filter.field ) &&\n\t\t\t!! field.elements?.length &&\n\t\t\t!! operators.length &&\n\t\t\t! field.filterBy?.isPrimary;\n\t} else {\n\t\theader = combinedField.header || combinedField.label;\n\t}\n\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ header }\n\t\t\t\t\t{ view.sort && isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithDropDownMenuSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuV2.Group>\n\t\t\t\t\t\t{ SORTING_DIRECTIONS.map(\n\t\t\t\t\t\t\t( direction: SortDirection ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tview.sort &&\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ fieldId }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuV2.RadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\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\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ sortLabels[ direction ] }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuV2.RadioItem>\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</DropdownMenuV2.Group>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<DropdownMenuV2.Group>\n\t\t\t\t\t\t<DropdownMenuV2.Item\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( fieldId );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t</DropdownMenuV2.Item>\n\t\t\t\t\t</DropdownMenuV2.Group>\n\t\t\t\t) }\n\t\t\t\t<DropdownMenuV2.Group>\n\t\t\t\t\t<DropdownMenuV2.Item\n\t\t\t\t\t\tprefix={ <Icon icon={ arrowLeft } /> }\n\t\t\t\t\t\tdisabled={ index < 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\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\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t{ __( 'Move left' ) }\n\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t</DropdownMenuV2.Item>\n\t\t\t\t\t<DropdownMenuV2.Item\n\t\t\t\t\t\tprefix={ <Icon icon={ arrowRight } /> }\n\t\t\t\t\t\tdisabled={ index >= visibleFieldIds.length - 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t{ __( 'Move right' ) }\n\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t</DropdownMenuV2.Item>\n\t\t\t\t\t{ isHidable && field && (\n\t\t\t\t\t\t<DropdownMenuV2.Item\n\t\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonHide( field );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tfields: visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t( id ) => id !== fieldId\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Hide column' ) }\n\t\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t</DropdownMenuV2.Item>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenuV2.Group>\n\t\t\t</WithDropDownMenuSeparators>\n\t\t</DropdownMenuV2>\n\t);\n} );\n\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst ColumnHeaderMenu: < Item >(\n\tprops: PropsWithoutRef< HeaderMenuProps< Item > > &\n\t\tRefAttributes< HTMLButtonElement >\n) => ReturnType< typeof _HeaderMenu > = _HeaderMenu;\n\nexport default ColumnHeaderMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_icons","_components","_element","_lockUnlock","_utils","_constants","_index","_jsxRuntime","Menu","unlock","componentsPrivateApis","WithMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","jsxs","Fragment","jsx","Separator","_HeaderMenu","forwardRef","HeaderMenu","fieldId","view","fields","onChangeView","onHide","setOpenedFilter","ref","visibleFieldIds","getVisibleFieldIds","index","indexOf","isSorted","sort","field","isHidable","isSortable","canAddFilter","header","operators","combinedField","layout","combinedFields","find","f","id","enableHiding","enableSorting","sanitizeOperators","filters","some","_filter","elements","length","filterBy","isPrimary","label","align","trigger","Button","size","className","variant","sortArrows","direction","style","minWidth","Group","SORTING_DIRECTIONS","isChecked","value","RadioItem","name","checked","onChange","ItemLabel","sortLabels","Item","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","arrowLeft","disabled","_visibleFieldIds$slic","slice","arrowRight","_visibleFieldIds$slic2","unseen","ColumnHeaderMenu","_default","exports","default"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-header-menu.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, Ref, PropsWithoutRef, RefAttributes } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight, unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { sanitizeOperators } from '../../utils';\nimport { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';\nimport type {\n\tNormalizedField,\n\tSortDirection,\n\tViewTable as ViewTableType,\n\tOperator,\n} from '../../types';\nimport { getVisibleFieldIds } from '../index';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface HeaderMenuProps< Item > {\n\tfieldId: string;\n\tview: ViewTableType;\n\tfields: NormalizedField< Item >[];\n\tonChangeView: ( view: ViewTableType ) => void;\n\tonHide: ( field: NormalizedField< Item > ) => void;\n\tsetOpenedFilter: ( fieldId: string ) => void;\n}\n\nfunction WithMenuSeparators( { children }: { children: ReactNode } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <Menu.Separator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst _HeaderMenu = forwardRef( function HeaderMenu< Item >(\n\t{\n\t\tfieldId,\n\t\tview,\n\t\tfields,\n\t\tonChangeView,\n\t\tonHide,\n\t\tsetOpenedFilter,\n\t}: HeaderMenuProps< Item >,\n\tref: Ref< HTMLButtonElement >\n) {\n\tconst visibleFieldIds = getVisibleFieldIds( view, fields );\n\tconst index = visibleFieldIds?.indexOf( fieldId ) as number;\n\tconst isSorted = view.sort?.field === fieldId;\n\tlet isHidable = false;\n\tlet isSortable = false;\n\tlet canAddFilter = false;\n\tlet header;\n\tlet operators: Operator[] = [];\n\n\tconst combinedField = view.layout?.combinedFields?.find(\n\t\t( f ) => f.id === fieldId\n\t);\n\tconst field = fields.find( ( f ) => f.id === fieldId );\n\n\tif ( ! combinedField ) {\n\t\tif ( ! field ) {\n\t\t\t// No combined or regular field found.\n\t\t\treturn null;\n\t\t}\n\n\t\tisHidable = field.enableHiding !== false;\n\t\tisSortable = field.enableSorting !== false;\n\t\theader = field.header;\n\n\t\toperators = sanitizeOperators( field );\n\t\t// Filter can be added:\n\t\t// 1. If the field is not already part of a view's filters.\n\t\t// 2. If the field meets the type and operator requirements.\n\t\t// 3. If it's not primary. If it is, it should be already visible.\n\t\tcanAddFilter =\n\t\t\t! view.filters?.some( ( _filter ) => fieldId === _filter.field ) &&\n\t\t\t!! field.elements?.length &&\n\t\t\t!! operators.length &&\n\t\t\t! field.filterBy?.isPrimary;\n\t} else {\n\t\theader = combinedField.header || combinedField.label;\n\t}\n\n\treturn (\n\t\t<Menu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ header }\n\t\t\t\t\t{ view.sort && isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithMenuSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t{ SORTING_DIRECTIONS.map(\n\t\t\t\t\t\t\t( direction: SortDirection ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tview.sort &&\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ fieldId }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ sortLabels[ direction ] }\n\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t</Menu.RadioItem>\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</Menu.Group>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( fieldId );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t</Menu.Group>\n\t\t\t\t) }\n\t\t\t\t<Menu.Group>\n\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\tprefix={ <Icon icon={ arrowLeft } /> }\n\t\t\t\t\t\tdisabled={ index < 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\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\t\t<Menu.ItemLabel>{ __( 'Move left' ) }</Menu.ItemLabel>\n\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\tprefix={ <Icon icon={ arrowRight } /> }\n\t\t\t\t\t\tdisabled={ index >= visibleFieldIds.length - 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Menu.ItemLabel>{ __( 'Move right' ) }</Menu.ItemLabel>\n\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t{ isHidable && field && (\n\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonHide( field );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tfields: visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t( id ) => id !== fieldId\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Hide column' ) }\n\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t) }\n\t\t\t\t</Menu.Group>\n\t\t\t</WithMenuSeparators>\n\t\t</Menu>\n\t);\n} );\n\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst ColumnHeaderMenu: < Item >(\n\tprops: PropsWithoutRef< HeaderMenuProps< Item > > &\n\t\tRefAttributes< HTMLButtonElement >\n) => ReturnType< typeof _HeaderMenu > = _HeaderMenu;\n\nexport default ColumnHeaderMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< { item: Item } >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< { item: Item } >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\theader?: string | ReactElement;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n\tdensity: number;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport interface CombinedFormField< Item > extends CombinedField {\n\trender?: ComponentType< { item: Item } >;\n}\n\nexport interface DataFormCombinedEditProps< Item > {\n\tfield: NormalizedCombinedFormField< Item >;\n\tdata: Item;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n}\n\nexport type NormalizedCombinedFormField< Item > = CombinedFormField< Item > & {\n\tfields: NormalizedField< Item >[];\n\tEdit?: ComponentType< DataFormCombinedEditProps< Item > >;\n};\n\n/**\n * The form configuration.\n */\nexport type Form< Item > = {\n\ttype?: 'regular' | 'panel';\n\tfields?: string[];\n\t/**\n\t * The fields to combine.\n\t */\n\tcombinedFields?: CombinedFormField< Item >[];\n};\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< DataViewRenderFieldProps< Item > >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< DataViewRenderFieldProps< Item > >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\nexport type DataViewRenderFieldProps< Item > = {\n\titem: Item;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\theader?: string | ReactElement;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n\tdensity: number;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport interface CombinedFormField< Item > extends CombinedField {\n\trender?: ComponentType< { item: Item } >;\n}\n\nexport interface DataFormCombinedEditProps< Item > {\n\tfield: NormalizedCombinedFormField< Item >;\n\tdata: Item;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n}\n\nexport type NormalizedCombinedFormField< Item > = CombinedFormField< Item > & {\n\tfields: NormalizedField< Item >[];\n\tEdit?: ComponentType< DataFormCombinedEditProps< Item > >;\n};\n\n/**\n * The form configuration.\n */\nexport type Form< Item > = {\n\ttype?: 'regular' | 'panel';\n\tfields?: string[];\n\t/**\n\t * The fields to combine.\n\t */\n\tcombinedFields?: CombinedFormField< Item >[];\n};\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -6,9 +6,7 @@ import { __experimentalHStack as HStack, __experimentalVStack as VStack, __exper
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
- import { Fragment as _Fragment } from "react/jsx-runtime";
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
10
  function Header({
13
11
  title
14
12
  }) {