@wordpress/dataviews 4.6.0 → 4.8.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 (147) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +596 -89
  3. package/build/components/dataform-combined-edit/index.js +12 -6
  4. package/build/components/dataform-combined-edit/index.js.map +1 -1
  5. package/build/components/dataviews/index.js +8 -1
  6. package/build/components/dataviews/index.js.map +1 -1
  7. package/build/components/dataviews-bulk-actions/index.js +6 -6
  8. package/build/components/dataviews-bulk-actions/index.js.map +1 -1
  9. package/build/components/dataviews-context/index.js +2 -0
  10. package/build/components/dataviews-context/index.js.map +1 -1
  11. package/build/components/dataviews-filters/add-filter.js +7 -7
  12. package/build/components/dataviews-filters/add-filter.js.map +1 -1
  13. package/build/components/dataviews-filters/index.js +2 -2
  14. package/build/components/dataviews-filters/index.js.map +1 -1
  15. package/build/components/dataviews-item-actions/index.js +11 -11
  16. package/build/components/dataviews-item-actions/index.js.map +1 -1
  17. package/build/components/dataviews-layout/index.js +5 -1
  18. package/build/components/dataviews-layout/index.js.map +1 -1
  19. package/build/components/dataviews-selection-checkbox/index.js +1 -2
  20. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  21. package/build/components/dataviews-view-config/index.js +6 -6
  22. package/build/components/dataviews-view-config/index.js.map +1 -1
  23. package/build/components/form-field-visibility/index.js +32 -0
  24. package/build/components/form-field-visibility/index.js.map +1 -0
  25. package/build/dataforms-layouts/panel/index.js +9 -3
  26. package/build/dataforms-layouts/panel/index.js.map +1 -1
  27. package/build/dataforms-layouts/regular/index.js +8 -2
  28. package/build/dataforms-layouts/regular/index.js.map +1 -1
  29. package/build/dataviews-layouts/grid/index.js +14 -3
  30. package/build/dataviews-layouts/grid/index.js.map +1 -1
  31. package/build/dataviews-layouts/list/index.js +10 -12
  32. package/build/dataviews-layouts/list/index.js.map +1 -1
  33. package/build/dataviews-layouts/table/column-header-menu.js +18 -18
  34. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
  35. package/build/dataviews-layouts/table/index.js +22 -5
  36. package/build/dataviews-layouts/table/index.js.map +1 -1
  37. package/build/dataviews-layouts/utils/get-clickable-item-props.js +25 -0
  38. package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -0
  39. package/build/normalize-fields.js +16 -3
  40. package/build/normalize-fields.js.map +1 -1
  41. package/build/types.js.map +1 -1
  42. package/build/validation.js +9 -0
  43. package/build/validation.js.map +1 -1
  44. package/build-module/components/dataform-combined-edit/index.js +12 -6
  45. package/build-module/components/dataform-combined-edit/index.js.map +1 -1
  46. package/build-module/components/dataviews/index.js +8 -1
  47. package/build-module/components/dataviews/index.js.map +1 -1
  48. package/build-module/components/dataviews-bulk-actions/index.js +6 -6
  49. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
  50. package/build-module/components/dataviews-context/index.js +2 -0
  51. package/build-module/components/dataviews-context/index.js.map +1 -1
  52. package/build-module/components/dataviews-filters/add-filter.js +6 -6
  53. package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
  54. package/build-module/components/dataviews-filters/index.js +4 -4
  55. package/build-module/components/dataviews-filters/index.js.map +1 -1
  56. package/build-module/components/dataviews-item-actions/index.js +10 -10
  57. package/build-module/components/dataviews-item-actions/index.js.map +1 -1
  58. package/build-module/components/dataviews-layout/index.js +5 -1
  59. package/build-module/components/dataviews-layout/index.js.map +1 -1
  60. package/build-module/components/dataviews-selection-checkbox/index.js +1 -2
  61. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  62. package/build-module/components/dataviews-view-config/index.js +6 -6
  63. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  64. package/build-module/components/form-field-visibility/index.js +26 -0
  65. package/build-module/components/form-field-visibility/index.js.map +1 -0
  66. package/build-module/dataforms-layouts/panel/index.js +9 -4
  67. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  68. package/build-module/dataforms-layouts/regular/index.js +7 -2
  69. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  70. package/build-module/dataviews-layouts/grid/index.js +14 -3
  71. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  72. package/build-module/dataviews-layouts/list/index.js +11 -13
  73. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  74. package/build-module/dataviews-layouts/table/column-header-menu.js +18 -18
  75. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
  76. package/build-module/dataviews-layouts/table/index.js +22 -5
  77. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  78. package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +19 -0
  79. package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -0
  80. package/build-module/normalize-fields.js +15 -3
  81. package/build-module/normalize-fields.js.map +1 -1
  82. package/build-module/types.js.map +1 -1
  83. package/build-module/validation.js +9 -0
  84. package/build-module/validation.js.map +1 -1
  85. package/build-style/style-rtl.css +15 -6
  86. package/build-style/style.css +15 -6
  87. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  88. package/build-types/components/dataform-combined-edit/index.d.ts.map +1 -1
  89. package/build-types/components/dataviews/index.d.ts +3 -1
  90. package/build-types/components/dataviews/index.d.ts.map +1 -1
  91. package/build-types/components/dataviews-context/index.d.ts +2 -0
  92. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  93. package/build-types/components/dataviews-filters/add-filter.d.ts +1 -1
  94. package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -1
  95. package/build-types/components/dataviews-item-actions/index.d.ts +2 -2
  96. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  97. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  98. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
  99. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  100. package/build-types/components/form-field-visibility/index.d.ts +11 -0
  101. package/build-types/components/form-field-visibility/index.d.ts.map +1 -0
  102. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  103. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
  104. package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
  105. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  106. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  107. package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
  108. package/build-types/dataviews-layouts/table/index.d.ts +1 -1
  109. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  110. package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +14 -0
  111. package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +1 -0
  112. package/build-types/lock-unlock.d.ts +1 -1
  113. package/build-types/lock-unlock.d.ts.map +1 -1
  114. package/build-types/normalize-fields.d.ts.map +1 -1
  115. package/build-types/types.d.ts +11 -6
  116. package/build-types/types.d.ts.map +1 -1
  117. package/build-types/validation.d.ts +9 -0
  118. package/build-types/validation.d.ts.map +1 -1
  119. package/package.json +12 -11
  120. package/src/components/dataform/stories/index.story.tsx +19 -3
  121. package/src/components/dataform-combined-edit/index.tsx +10 -7
  122. package/src/components/dataform-combined-edit/style.scss +4 -0
  123. package/src/components/dataviews/index.tsx +10 -1
  124. package/src/components/dataviews/style.scss +9 -3
  125. package/src/components/dataviews-bulk-actions/index.tsx +6 -6
  126. package/src/components/dataviews-context/index.ts +4 -0
  127. package/src/components/dataviews-filters/add-filter.tsx +8 -10
  128. package/src/components/dataviews-filters/index.tsx +4 -4
  129. package/src/components/dataviews-item-actions/index.tsx +15 -15
  130. package/src/components/dataviews-layout/index.tsx +4 -0
  131. package/src/components/dataviews-selection-checkbox/index.tsx +3 -2
  132. package/src/components/dataviews-view-config/index.tsx +8 -10
  133. package/src/components/form-field-visibility/index.tsx +32 -0
  134. package/src/dataforms-layouts/panel/index.tsx +11 -5
  135. package/src/dataforms-layouts/regular/index.tsx +9 -3
  136. package/src/dataviews-layouts/grid/index.tsx +29 -5
  137. package/src/dataviews-layouts/grid/style.scss +5 -0
  138. package/src/dataviews-layouts/list/index.tsx +10 -12
  139. package/src/dataviews-layouts/list/style.scss +1 -7
  140. package/src/dataviews-layouts/table/column-header-menu.tsx +31 -35
  141. package/src/dataviews-layouts/table/index.tsx +34 -3
  142. package/src/dataviews-layouts/utils/get-clickable-item-props.ts +22 -0
  143. package/src/normalize-fields.ts +17 -2
  144. package/src/test/normalize-fields.ts +45 -0
  145. package/src/types.ts +13 -2
  146. package/src/validation.ts +9 -0
  147. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,26 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useMemo } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+
10
+ export default function FormFieldVisibility({
11
+ data,
12
+ field,
13
+ children
14
+ }) {
15
+ const isVisible = useMemo(() => {
16
+ if (field.isVisible) {
17
+ return field.isVisible(data);
18
+ }
19
+ return true;
20
+ }, [field.isVisible, data]);
21
+ if (!isVisible) {
22
+ return null;
23
+ }
24
+ return children;
25
+ }
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","FormFieldVisibility","data","field","children","isVisible"],"sources":["@wordpress/dataviews/src/components/form-field-visibility/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\n\ntype FormFieldVisibilityProps< Item > = React.PropsWithChildren< {\n\tfield: NormalizedField< Item >;\n\tdata: Item;\n} >;\n\nexport default function FormFieldVisibility< Item >( {\n\tdata,\n\tfield,\n\tchildren,\n}: FormFieldVisibilityProps< Item > ) {\n\tconst isVisible = useMemo( () => {\n\t\tif ( field.isVisible ) {\n\t\t\treturn field.isVisible( data );\n\t\t}\n\t\treturn true;\n\t}, [ field.isVisible, data ] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;;AAQA,eAAe,SAASC,mBAAmBA,CAAU;EACpDC,IAAI;EACJC,KAAK;EACLC;AACiC,CAAC,EAAG;EACrC,MAAMC,SAAS,GAAGL,OAAO,CAAE,MAAM;IAChC,IAAKG,KAAK,CAACE,SAAS,EAAG;MACtB,OAAOF,KAAK,CAACE,SAAS,CAAEH,IAAK,CAAC;IAC/B;IACA,OAAO,IAAI;EACZ,CAAC,EAAE,CAAEC,KAAK,CAACE,SAAS,EAAEH,IAAI,CAAG,CAAC;EAE9B,IAAK,CAAEG,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EACA,OAAOD,QAAQ;AAChB","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { __experimentalVStack as VStack, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalSpacer as Spacer, Dropdown, Button } from '@wordpress/components';
5
5
  import { useState, useMemo } from '@wordpress/element';
6
- import { sprintf, __ } from '@wordpress/i18n';
6
+ import { sprintf, __, _x } from '@wordpress/i18n';
7
7
  import { closeSmall } from '@wordpress/icons';
8
8
 
9
9
  /**
@@ -11,6 +11,7 @@ import { closeSmall } from '@wordpress/icons';
11
11
  */
12
12
  import { normalizeFields } from '../../normalize-fields';
13
13
  import { getVisibleFields } from '../get-visible-fields';
14
+ import FormFieldVisibility from '../../components/form-field-visibility';
14
15
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
16
  function DropdownHeader({
16
17
  title,
@@ -77,7 +78,7 @@ function FormField({
77
78
  "aria-expanded": isOpen,
78
79
  "aria-label": sprintf(
79
80
  // translators: %s: Field name.
80
- __('Edit %s'), field.label),
81
+ _x('Edit %s', 'field'), field.label),
81
82
  onClick: onToggle,
82
83
  children: /*#__PURE__*/_jsx(field.render, {
83
84
  item: data
@@ -110,10 +111,14 @@ export default function FormPanel({
110
111
  return /*#__PURE__*/_jsx(VStack, {
111
112
  spacing: 2,
112
113
  children: visibleFields.map(field => {
113
- return /*#__PURE__*/_jsx(FormField, {
114
+ return /*#__PURE__*/_jsx(FormFieldVisibility, {
114
115
  data: data,
115
116
  field: field,
116
- onChange: onChange
117
+ children: /*#__PURE__*/_jsx(FormField, {
118
+ data: data,
119
+ field: field,
120
+ onChange: onChange
121
+ })
117
122
  }, field.id);
118
123
  })
119
124
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","Dropdown","Button","useState","useMemo","sprintf","__","closeSmall","normalizeFields","getVisibleFields","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownHeader","title","onClose","className","spacing","children","alignment","level","size","label","icon","onClick","FormField","data","field","onChange","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","ref","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","render","item","renderContent","Edit","hideLabelFromVision","id","FormPanel","fields","form","visibleFields","combinedFields","map"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport { getVisibleFields } from '../get-visible-fields';\nimport type { DataFormProps, NormalizedField } from '../../types';\n\ninterface FormFieldProps< Item > {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: any ) => void;\n}\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction FormField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FormFieldProps< Item > ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ field.label }\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t\t\t} }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t\t\t__( 'Edit %s' ),\n\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<field.render item={ data } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DropdownHeader\n\t\t\t\t\t\t\t\ttitle={ field.label }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n\nexport default function FormPanel< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tgetVisibleFields< Item >(\n\t\t\t\t\tfields,\n\t\t\t\t\tform.fields,\n\t\t\t\t\tform.combinedFields\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.fields, form.combinedFields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","Dropdown","Button","useState","useMemo","sprintf","__","_x","closeSmall","normalizeFields","getVisibleFields","FormFieldVisibility","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownHeader","title","onClose","className","spacing","children","alignment","level","size","label","icon","onClick","FormField","data","field","onChange","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","ref","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","render","item","renderContent","Edit","hideLabelFromVision","id","FormPanel","fields","form","visibleFields","combinedFields","map"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport { getVisibleFields } from '../get-visible-fields';\nimport type { DataFormProps, NormalizedField } from '../../types';\nimport FormFieldVisibility from '../../components/form-field-visibility';\n\ninterface FormFieldProps< Item > {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: any ) => void;\n}\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction FormField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FormFieldProps< Item > ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ field.label }\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t\t\t} }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t\t\t_x( 'Edit %s', 'field' ),\n\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<field.render item={ data } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DropdownHeader\n\t\t\t\t\t\t\t\ttitle={ field.label }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n\nexport default function FormPanel< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tgetVisibleFields< Item >(\n\t\t\t\t\tfields,\n\t\t\t\t\tform.fields,\n\t\t\t\t\tform.combinedFields\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.fields, form.combinedFields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormFieldVisibility\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FormFieldVisibility>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ import { useMemo } from '@wordpress/element';
9
9
  */
10
10
  import { normalizeFields } from '../../normalize-fields';
11
11
  import { getVisibleFields } from '../get-visible-fields';
12
+ import FormFieldVisibility from '../../components/form-field-visibility';
12
13
  import { jsx as _jsx } from "react/jsx-runtime";
13
14
  export default function FormRegular({
14
15
  data,
@@ -20,10 +21,14 @@ export default function FormRegular({
20
21
  return /*#__PURE__*/_jsx(VStack, {
21
22
  spacing: 4,
22
23
  children: visibleFields.map(field => {
23
- return /*#__PURE__*/_jsx(field.Edit, {
24
+ return /*#__PURE__*/_jsx(FormFieldVisibility, {
24
25
  data: data,
25
26
  field: field,
26
- onChange: onChange
27
+ children: /*#__PURE__*/_jsx(field.Edit, {
28
+ data: data,
29
+ field: field,
30
+ onChange: onChange
31
+ })
27
32
  }, field.id);
28
33
  })
29
34
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","useMemo","normalizeFields","getVisibleFields","jsx","_jsx","FormRegular","data","fields","form","onChange","visibleFields","combinedFields","spacing","children","map","field","Edit","id"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport { getVisibleFields } from '../get-visible-fields';\nimport type { DataFormProps } from '../../types';\n\nexport default function FormRegular< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tgetVisibleFields< Item >(\n\t\t\t\t\tfields,\n\t\t\t\t\tform.fields,\n\t\t\t\t\tform.combinedFields\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.fields, form.combinedFields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<field.Edit\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,gBAAgB,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzD,eAAe,SAASC,WAAWA,CAAU;EAC5CC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAGV,OAAO,CAC5B,MACCC,eAAe,CACdC,gBAAgB,CACfK,MAAM,EACNC,IAAI,CAACD,MAAM,EACXC,IAAI,CAACG,cACN,CACD,CAAC,EACF,CAAEJ,MAAM,EAAEC,IAAI,CAACD,MAAM,EAAEC,IAAI,CAACG,cAAc,CAC3C,CAAC;EAED,oBACCP,IAAA,CAACL,MAAM;IAACa,OAAO,EAAG,CAAG;IAAAC,QAAA,EAClBH,aAAa,CAACI,GAAG,CAAIC,KAAK,IAAM;MACjC,oBACCX,IAAA,CAACW,KAAK,CAACC,IAAI;QAEVV,IAAI,EAAGA,IAAM;QACbS,KAAK,EAAGA,KAAO;QACfN,QAAQ,EAAGA;MAAU,GAHfM,KAAK,CAACE,EAIZ,CAAC;IAEJ,CAAE;EAAC,CACI,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalVStack","VStack","useMemo","normalizeFields","getVisibleFields","FormFieldVisibility","jsx","_jsx","FormRegular","data","fields","form","onChange","visibleFields","combinedFields","spacing","children","map","field","Edit","id"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport { getVisibleFields } from '../get-visible-fields';\nimport type { DataFormProps } from '../../types';\nimport FormFieldVisibility from '../../components/form-field-visibility';\n\nexport default function FormRegular< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tgetVisibleFields< Item >(\n\t\t\t\t\tfields,\n\t\t\t\t\tform.fields,\n\t\t\t\t\tform.combinedFields\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.fields, form.combinedFields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormFieldVisibility\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t>\n\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FormFieldVisibility>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,OAAOC,mBAAmB,MAAM,wCAAwC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzE,eAAe,SAASC,WAAWA,CAAU;EAC5CC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAGX,OAAO,CAC5B,MACCC,eAAe,CACdC,gBAAgB,CACfM,MAAM,EACNC,IAAI,CAACD,MAAM,EACXC,IAAI,CAACG,cACN,CACD,CAAC,EACF,CAAEJ,MAAM,EAAEC,IAAI,CAACD,MAAM,EAAEC,IAAI,CAACG,cAAc,CAC3C,CAAC;EAED,oBACCP,IAAA,CAACN,MAAM;IAACc,OAAO,EAAG,CAAG;IAAAC,QAAA,EAClBH,aAAa,CAACI,GAAG,CAAIC,KAAK,IAAM;MACjC,oBACCX,IAAA,CAACF,mBAAmB;QAEnBI,IAAI,EAAGA,IAAM;QACbS,KAAK,EAAGA,KAAO;QAAAF,QAAA,eAEfT,IAAA,CAACW,KAAK,CAACC,IAAI;UACVV,IAAI,EAAGA,IAAM;UACbS,KAAK,EAAGA,KAAO;UACfN,QAAQ,EAAGA;QAAU,CACrB;MAAC,GARIM,KAAK,CAACE,EASQ,CAAC;IAExB,CAAE;EAAC,CACI,CAAC;AAEX","ignoreList":[]}
@@ -15,10 +15,13 @@ import { __ } from '@wordpress/i18n';
15
15
  import ItemActions from '../../components/dataviews-item-actions';
16
16
  import SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';
17
17
  import { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';
18
+ import getClickableItemProps from '../utils/get-clickable-item-props';
18
19
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
19
20
  function GridItem({
20
21
  selection,
21
22
  onChangeSelection,
23
+ onClickItem,
24
+ isItemClickable,
22
25
  getItemId,
23
26
  item,
24
27
  actions,
@@ -37,6 +40,8 @@ function GridItem({
37
40
  const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {
38
41
  item: item
39
42
  }) : null;
43
+ const clickableMediaItemProps = getClickableItemProps(item, isItemClickable, onClickItem, 'dataviews-view-grid__media');
44
+ const clickablePrimaryItemProps = getClickableItemProps(item, isItemClickable, onClickItem, 'dataviews-view-grid__primary-field');
40
45
  return /*#__PURE__*/_jsxs(VStack, {
41
46
  spacing: 0,
42
47
  className: clsx('dataviews-view-grid__card', {
@@ -53,7 +58,7 @@ function GridItem({
53
58
  }
54
59
  },
55
60
  children: [/*#__PURE__*/_jsx("div", {
56
- className: "dataviews-view-grid__media",
61
+ ...clickableMediaItemProps,
57
62
  children: renderedMediaField
58
63
  }), /*#__PURE__*/_jsx(SingleSelectionCheckbox, {
59
64
  item: item,
@@ -66,8 +71,10 @@ function GridItem({
66
71
  justify: "space-between",
67
72
  className: "dataviews-view-grid__title-actions",
68
73
  children: [/*#__PURE__*/_jsx(HStack, {
69
- className: "dataviews-view-grid__primary-field",
70
- children: renderedPrimaryField
74
+ children: /*#__PURE__*/_jsx("div", {
75
+ ...clickablePrimaryItemProps,
76
+ children: renderedPrimaryField
77
+ })
71
78
  }), /*#__PURE__*/_jsx(ItemActions, {
72
79
  item: item,
73
80
  actions: actions,
@@ -126,6 +133,8 @@ export default function ViewGrid({
126
133
  getItemId,
127
134
  isLoading,
128
135
  onChangeSelection,
136
+ onClickItem,
137
+ isItemClickable,
129
138
  selection,
130
139
  view,
131
140
  density
@@ -165,6 +174,8 @@ export default function ViewGrid({
165
174
  return /*#__PURE__*/_jsx(GridItem, {
166
175
  selection: selection,
167
176
  onChangeSelection: onChangeSelection,
177
+ onClickItem: onClickItem,
178
+ isItemClickable: isItemClickable,
168
179
  getItemId: getItemId,
169
180
  item: item,
170
181
  actions: actions,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","__","ItemActions","SingleSelectionCheckbox","useHasAPossibleBulkAction","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GridItem","selection","onChangeSelection","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","id","isSelected","includes","renderedMediaField","render","renderedPrimaryField","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","disabled","justify","isCompact","length","wrap","alignment","map","field","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","view","density","find","layout","viewFields","reduce","accumulator","key","push","hasData","gridStyle","gridTemplateColumns","columns"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport type { Action, NormalizedField, ViewGridProps } from '../../types';\nimport type { SetSelection } from '../../private-types';\n\ninterface GridItemProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item >( {\n\tselection,\n\tonChangeSelection,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ renderedMediaField }\n\t\t\t</div>\n\t\t\t<SingleSelectionCheckbox\n\t\t\t\titem={ item }\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tprimaryField={ primaryField }\n\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 1 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tselection,\n\tview,\n\tdensity,\n}: ViewGridProps< Item > ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout?.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\t! viewFields.includes( field.id ) ||\n\t\t\t\t[\n\t\t\t\t\tview.layout?.mediaField,\n\t\t\t\t\tview?.layout?.primaryField,\n\t\t\t\t].includes( field.id )\n\t\t\t) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst gridStyle = density\n\t\t? { gridTemplateColumns: `repeat(${ density }, minmax(0, 1fr))` }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout?.columnFields }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","__","ItemActions","SingleSelectionCheckbox","useHasAPossibleBulkAction","getClickableItemProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GridItem","selection","onChangeSelection","onClickItem","isItemClickable","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","id","isSelected","includes","renderedMediaField","render","renderedPrimaryField","clickableMediaItemProps","clickablePrimaryItemProps","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","disabled","justify","isCompact","length","wrap","alignment","map","field","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","view","density","find","layout","viewFields","reduce","accumulator","key","push","hasData","gridStyle","gridTemplateColumns","columns"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport type { Action, NormalizedField, ViewGridProps } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport getClickableItemProps from '../utils/get-clickable-item-props';\n\ninterface GridItemProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item >( {\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\n\tconst clickableMediaItemProps = getClickableItemProps(\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\t'dataviews-view-grid__media'\n\t);\n\n\tconst clickablePrimaryItemProps = getClickableItemProps(\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\t'dataviews-view-grid__primary-field'\n\t);\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div { ...clickableMediaItemProps }>{ renderedMediaField }</div>\n\t\t\t<SingleSelectionCheckbox\n\t\t\t\titem={ item }\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tprimaryField={ primaryField }\n\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<HStack>\n\t\t\t\t\t<div { ...clickablePrimaryItemProps }>\n\t\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t\t</div>\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 1 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tselection,\n\tview,\n\tdensity,\n}: ViewGridProps< Item > ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout?.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\t! viewFields.includes( field.id ) ||\n\t\t\t\t[\n\t\t\t\t\tview.layout?.mediaField,\n\t\t\t\t\tview?.layout?.primaryField,\n\t\t\t\t].includes( field.id )\n\t\t\t) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst gridStyle = density\n\t\t? { gridTemplateColumns: `repeat(${ density }, minmax(0, 1fr))` }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout?.columnFields }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,10 +17,10 @@ import { useRegistry } from '@wordpress/data';
17
17
  * Internal dependencies
18
18
  */
19
19
  import { unlock } from '../../lock-unlock';
20
- import { ActionsDropdownMenuGroup, ActionModal } from '../../components/dataviews-item-actions';
20
+ import { ActionsMenuGroup, ActionModal } from '../../components/dataviews-item-actions';
21
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
22
  const {
23
- DropdownMenuV2: DropdownMenu
23
+ Menu
24
24
  } = unlock(componentsPrivateApis);
25
25
  function generateItemWrapperCompositeId(idPrefix) {
26
26
  return `${idPrefix}-item-wrapper`;
@@ -118,11 +118,12 @@ function ListItem({
118
118
  eligibleActions: _eligibleActions
119
119
  };
120
120
  }, [actions, item]);
121
- const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {
122
- item: item
123
- }) : /*#__PURE__*/_jsx("div", {
124
- className: "dataviews-view-list__media-placeholder"
125
- });
121
+ const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx("div", {
122
+ className: "dataviews-view-list__media-wrapper",
123
+ children: /*#__PURE__*/_jsx(mediaField.render, {
124
+ item: item
125
+ })
126
+ }) : null;
126
127
  const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {
127
128
  item: item
128
129
  }) : null;
@@ -135,7 +136,7 @@ function ListItem({
135
136
  item: item
136
137
  }), /*#__PURE__*/_jsx("div", {
137
138
  role: "gridcell",
138
- children: /*#__PURE__*/_jsx(DropdownMenu, {
139
+ children: /*#__PURE__*/_jsx(Menu, {
139
140
  trigger: /*#__PURE__*/_jsx(Composite.Item, {
140
141
  id: generateDropdownTriggerCompositeId(idPrefix),
141
142
  render: /*#__PURE__*/_jsx(Button, {
@@ -148,7 +149,7 @@ function ListItem({
148
149
  })
149
150
  }),
150
151
  placement: "bottom-end",
151
- children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {
152
+ children: /*#__PURE__*/_jsx(ActionsMenuGroup, {
152
153
  actions: eligibleActions,
153
154
  item: item
154
155
  })
@@ -182,10 +183,7 @@ function ListItem({
182
183
  spacing: 3,
183
184
  justify: "start",
184
185
  alignment: "flex-start",
185
- children: [/*#__PURE__*/_jsx("div", {
186
- className: "dataviews-view-list__media-wrapper",
187
- children: renderedMediaField
188
- }), /*#__PURE__*/_jsxs(VStack, {
186
+ children: [renderedMediaField, /*#__PURE__*/_jsxs(VStack, {
189
187
  spacing: 1,
190
188
  className: "dataviews-view-list__field-wrapper",
191
189
  children: [/*#__PURE__*/_jsxs(HStack, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useInstanceId","usePrevious","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","Composite","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","useRegistry","unlock","ActionsDropdownMenuGroup","ActionModal","jsx","_jsx","jsxs","_jsxs","DropdownMenuV2","DropdownMenu","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","isModalOpen","setIsModalOpen","compositeItemId","id","label","role","children","Item","render","icon","isDestructive","size","onClick","action","items","closeModal","callback","ListItem","actions","isSelected","mediaField","onSelect","primaryField","visibleFields","onDropdownTriggerKeyDown","itemRef","labelId","descriptionId","isHovered","setIsHovered","handleHover","type","isHover","current","scrollIntoView","behavior","block","inline","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","renderedMediaField","className","renderedPrimaryField","usedActions","length","spacing","trigger","accessibleWhenDisabled","disabled","onKeyDown","placement","Row","ref","onMouseEnter","onMouseLeave","justify","alignment","map","field","as","ViewList","props","data","fields","getItemId","isLoading","onChangeSelection","selection","view","baseId","selectedItem","findLast","includes","find","layout","viewFields","generateCompositeItemIdPrefix","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","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 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<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\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<DropdownMenu\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<ActionsDropdownMenuGroup\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</DropdownMenu>\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<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t\t</div>\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":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,aAAa,EAAEC,WAAW,QAAQ,oBAAoB;AAC/D,SACCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,MAAM,EACNC,WAAW,IAAIC,qBAAqB,EACpCC,OAAO,EACPC,cAAc,EACdC,SAAS,QACH,uBAAuB;AAC9B,SACCC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACF,oBAAoB;AAC3B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SACCC,wBAAwB,EACxBC,WAAW,QACL,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAejD,MAAM;EAAEC,cAAc,EAAEC;AAAa,CAAC,GAAGR,MAAM,CAAEZ,qBAAsB,CAAC;AAExE,SAASqB,8BAA8BA,CAAEC,QAAgB,EAAG;EAC3D,OAAO,GAAIA,QAAQ,eAAgB;AACpC;AACA,SAASC,gCAAgCA,CACxCD,QAAgB,EAChBE,eAAuB,EACtB;EACD,OAAO,GAAIF,QAAQ,mBAAqBE,eAAe,EAAG;AAC3D;AACA,SAASC,kCAAkCA,CAAEH,QAAgB,EAAG;EAC/D,OAAO,GAAIA,QAAQ,WAAY;AAChC;AAEA,SAASI,qBAAqBA,CAAU;EACvCJ,QAAQ;EACRK,aAAa;EACbC;AAKD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAGlB,WAAW,CAAC,CAAC;EAC9B,MAAM,CAAEmB,WAAW,EAAEC,cAAc,CAAE,GAAGvB,QAAQ,CAAE,KAAM,CAAC;EAEzD,MAAMwB,eAAe,GAAGT,gCAAgC,CACvDD,QAAQ,EACRK,aAAa,CAACM,EACf,CAAC;EAED,MAAMC,KAAK,GACV,OAAOP,aAAa,CAACO,KAAK,KAAK,QAAQ,GACpCP,aAAa,CAACO,KAAK,GACnBP,aAAa,CAACO,KAAK,CAAE,CAAEN,IAAI,CAAG,CAAC;EAEnC,OAAO,aAAa,IAAID,aAAa,gBACpCX,IAAA;IAAKmB,IAAI,EAAC,UAAU;IAAAC,QAAA,eACnBpB,IAAA,CAACb,SAAS,CAACkC,IAAI;MACdJ,EAAE,EAAGD,eAAiB;MACtBM,MAAM,eACLtB,IAAA,CAAClB,MAAM;QACNoC,KAAK,EAAGA,KAAO;QACfK,IAAI,EAAGZ,aAAa,CAACY,IAAM;QAC3BC,aAAa,EAAGb,aAAa,CAACa,aAAe;QAC7CC,IAAI,EAAC,OAAO;QACZC,OAAO,EAAGA,CAAA,KAAMX,cAAc,CAAE,IAAK;MAAG,CACxC,CACD;MAAAK,QAAA,EAECN,WAAW,iBACZd,IAAA,CAACF,WAAW;QACX6B,MAAM,EAAGhB,aAAe;QACxBiB,KAAK,EAAG,CAAEhB,IAAI,CAAI;QAClBiB,UAAU,EAAGA,CAAA,KAAMd,cAAc,CAAE,KAAM;MAAG,CAC5C;IACD,CACc;EAAC,GApBSJ,aAAa,CAACM,EAqBpC,CAAC,gBAENjB,IAAA;IAAKmB,IAAI,EAAC,UAAU;IAAAC,QAAA,eACnBpB,IAAA,CAACb,SAAS,CAACkC,IAAI;MACdJ,EAAE,EAAGD,eAAiB;MACtBM,MAAM,eACLtB,IAAA,CAAClB,MAAM;QACNoC,KAAK,EAAGA,KAAO;QACfK,IAAI,EAAGZ,aAAa,CAACY,IAAM;QAC3BC,aAAa,EAAGb,aAAa,CAACa,aAAe;QAC7CC,IAAI,EAAC,OAAO;QACZC,OAAO,EAAGA,CAAA,KAAM;UACff,aAAa,CAACmB,QAAQ,CAAE,CAAElB,IAAI,CAAE,EAAE;YAAEC;UAAS,CAAE,CAAC;QACjD;MAAG,CACH;IACD,CACD;EAAC,GAdwBF,aAAa,CAACM,EAepC,CACL;AACF;AAEA,SAASc,QAAQA,CAAU;EAC1BC,OAAO;EACP1B,QAAQ;EACR2B,UAAU;EACVrB,IAAI;EACJsB,UAAU;EACVC,QAAQ;EACRC,YAAY;EACZC,aAAa;EACbC;AAC0B,CAAC,EAAG;EAC9B,MAAMC,OAAO,GAAGhD,MAAM,CAAoB,IAAK,CAAC;EAChD,MAAMiD,OAAO,GAAG,GAAIlC,QAAQ,QAAS;EACrC,MAAMmC,aAAa,GAAG,GAAInC,QAAQ,cAAe;EAEjD,MAAM,CAAEoC,SAAS,EAAEC,YAAY,CAAE,GAAGnD,QAAQ,CAAE,KAAM,CAAC;EACrD,MAAMoD,WAAoC,GAAGA,CAAE;IAAEC;EAAK,CAAC,KAAM;IAC5D,MAAMC,OAAO,GAAGD,IAAI,KAAK,YAAY;IACrCF,YAAY,CAAEG,OAAQ,CAAC;EACxB,CAAC;EAEDzD,SAAS,CAAE,MAAM;IAChB,IAAK4C,UAAU,EAAG;MACjBM,OAAO,CAACQ,OAAO,EAAEC,cAAc,CAAE;QAChCC,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE;MACT,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAElB,UAAU,CAAG,CAAC;EAEnB,MAAM;IAAEtB,aAAa;IAAEyC;EAAgB,CAAC,GAAG9D,OAAO,CAAE,MAAM;IACzD;IACA;IACA,MAAM+D,gBAAgB,GAAGrB,OAAO,CAACsB,MAAM,CACpC3B,MAAM,IAAM,CAAEA,MAAM,CAAC4B,UAAU,IAAI5B,MAAM,CAAC4B,UAAU,CAAE3C,IAAK,CAC9D,CAAC;IACD,MAAM4C,eAAe,GAAGH,gBAAgB,CAACC,MAAM,CAC5C3B,MAAM,IAAMA,MAAM,CAAC8B,SAAS,IAAI,CAAC,CAAE9B,MAAM,CAACJ,IAC7C,CAAC;IACD,OAAO;MACNZ,aAAa,EAAE6C,eAAe,GAAI,CAAC,CAAE;MACrCJ,eAAe,EAAEC;IAClB,CAAC;EACF,CAAC,EAAE,CAAErB,OAAO,EAAEpB,IAAI,CAAG,CAAC;EAEtB,MAAM8C,kBAAkB,GAAGxB,UAAU,EAAEZ,MAAM,gBAC5CtB,IAAA,CAACkC,UAAU,CAACZ,MAAM;IAACV,IAAI,EAAGA;EAAM,CAAE,CAAC,gBAEnCZ,IAAA;IAAK2D,SAAS,EAAC;EAAwC,CAAM,CAC7D;EAED,MAAMC,oBAAoB,GAAGxB,YAAY,EAAEd,MAAM,gBAChDtB,IAAA,CAACoC,YAAY,CAACd,MAAM;IAACV,IAAI,EAAGA;EAAM,CAAE,CAAC,GAClC,IAAI;EAER,MAAMiD,WAAW,GAAGT,eAAe,EAAEU,MAAM,GAAG,CAAC,iBAC9C5D,KAAA,CAACvB,MAAM;IAACoF,OAAO,EAAG,CAAG;IAACJ,SAAS,EAAC,mCAAmC;IAAAvC,QAAA,GAChET,aAAa,iBACdX,IAAA,CAACU,qBAAqB;MACrBJ,QAAQ,EAAGA,QAAU;MACrBK,aAAa,EAAGA,aAAe;MAC/BC,IAAI,EAAGA;IAAM,CACb,CACD,eACDZ,IAAA;MAAKmB,IAAI,EAAC,UAAU;MAAAC,QAAA,eACnBpB,IAAA,CAACI,YAAY;QACZ4D,OAAO,eACNhE,IAAA,CAACb,SAAS,CAACkC,IAAI;UACdJ,EAAE,EAAGR,kCAAkC,CACtCH,QACD,CAAG;UACHgB,MAAM,eACLtB,IAAA,CAAClB,MAAM;YACN2C,IAAI,EAAC,OAAO;YACZF,IAAI,EAAG7B,YAAc;YACrBwB,KAAK,EAAGzB,EAAE,CAAE,SAAU,CAAG;YACzBwE,sBAAsB;YACtBC,QAAQ,EAAG,CAAElC,OAAO,CAAC8B,MAAQ;YAC7BK,SAAS,EAAG7B;UAA0B,CACtC;QACD,CACD,CACD;QACD8B,SAAS,EAAC,YAAY;QAAAhD,QAAA,eAEtBpB,IAAA,CAACH,wBAAwB;UACxBmC,OAAO,EAAGoB,eAAiB;UAC3BxC,IAAI,EAAGA;QAAM,CACb;MAAC,CACW;IAAC,CACX,CAAC;EAAA,CACC,CACR;EAED,oBACCZ,IAAA,CAACb,SAAS,CAACkF,GAAG;IACbC,GAAG,EAAG/B,OAAS;IACfjB,MAAM,eAAGtB,IAAA,SAAK,CAAG;IACjBmB,IAAI,EAAC,KAAK;IACVwC,SAAS,EAAGpF,IAAI,CAAE;MACjB,aAAa,EAAE0D,UAAU;MACzB,YAAY,EAAES;IACf,CAAE,CAAG;IACL6B,YAAY,EAAG3B,WAAa;IAC5B4B,YAAY,EAAG5B,WAAa;IAAAxB,QAAA,eAE5BlB,KAAA,CAACvB,MAAM;MAACgF,SAAS,EAAC,mCAAmC;MAACI,OAAO,EAAG,CAAG;MAAA3C,QAAA,gBAClEpB,IAAA;QAAKmB,IAAI,EAAC,UAAU;QAAAC,QAAA,eACnBpB,IAAA,CAACb,SAAS,CAACkC,IAAI;UACdJ,EAAE,EAAGZ,8BAA8B,CAAEC,QAAS,CAAG;UACjD,gBAAe2B,UAAY;UAC3B,mBAAkBO,OAAS;UAC3B,oBAAmBC,aAAe;UAClCkB,SAAS,EAAC,2BAA2B;UACrCjC,OAAO,EAAGA,CAAA,KAAMS,QAAQ,CAAEvB,IAAK;QAAG,CAClC;MAAC,CACE,CAAC,eACNV,KAAA,CAACvB,MAAM;QAACoF,OAAO,EAAG,CAAG;QAACU,OAAO,EAAC,OAAO;QAACC,SAAS,EAAC,YAAY;QAAAtD,QAAA,gBAC3DpB,IAAA;UAAK2D,SAAS,EAAC,oCAAoC;UAAAvC,QAAA,EAChDsC;QAAkB,CAChB,CAAC,eACNxD,KAAA,CAACrB,MAAM;UACNkF,OAAO,EAAG,CAAG;UACbJ,SAAS,EAAC,oCAAoC;UAAAvC,QAAA,gBAE9ClB,KAAA,CAACvB,MAAM;YAACoF,OAAO,EAAG,CAAG;YAAA3C,QAAA,gBACpBpB,IAAA;cACC2D,SAAS,EAAC,oCAAoC;cAC9C1C,EAAE,EAAGuB,OAAS;cAAApB,QAAA,EAEZwC;YAAoB,CAClB,CAAC,EACJC,WAAW;UAAA,CACN,CAAC,eACT7D,IAAA;YACC2D,SAAS,EAAC,6BAA6B;YACvC1C,EAAE,EAAGwB,aAAe;YAAArB,QAAA,EAElBiB,aAAa,CAACsC,GAAG,CAAIC,KAAK,iBAC3B1E,KAAA;cAECyD,SAAS,EAAC,4BAA4B;cAAAvC,QAAA,gBAEtCpB,IAAA,CAACd,cAAc;gBACd2F,EAAE,EAAC,MAAM;gBACTlB,SAAS,EAAC,kCAAkC;gBAAAvC,QAAA,EAE1CwD,KAAK,CAAC1D;cAAK,CACE,CAAC,eACjBlB,IAAA;gBAAM2D,SAAS,EAAC,kCAAkC;gBAAAvC,QAAA,eACjDpB,IAAA,CAAC4E,KAAK,CAACtD,MAAM;kBAACV,IAAI,EAAGA;gBAAM,CAAE;cAAC,CACzB,CAAC;YAAA,GAXDgE,KAAK,CAAC3D,EAYR,CACJ;UAAC,CACC,CAAC;QAAA,CACC,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACK,CAAC;AAElB;AAEA,eAAe,SAAS6D,QAAQA,CAAUC,KAA4B,EAAG;EACxE,MAAM;IACL/C,OAAO;IACPgD,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,iBAAiB;IACjBC,SAAS;IACTC;EACD,CAAC,GAAGP,KAAK;EACT,MAAMQ,MAAM,GAAG/G,aAAa,CAAEsG,QAAQ,EAAE,WAAY,CAAC;EAErD,MAAMU,YAAY,GAAGR,IAAI,EAAES,QAAQ,CAAI7E,IAAI,IAC1CyE,SAAS,CAACK,QAAQ,CAAER,SAAS,CAAEtE,IAAK,CAAE,CACvC,CAAC;EAED,MAAMsB,UAAU,GAAG+C,MAAM,CAACU,IAAI,CAC3Bf,KAAK,IAAMA,KAAK,CAAC3D,EAAE,KAAKqE,IAAI,CAACM,MAAM,EAAE1D,UACxC,CAAC;EACD,MAAME,YAAY,GAAG6C,MAAM,CAACU,IAAI,CAC7Bf,KAAK,IAAMA,KAAK,CAAC3D,EAAE,KAAKqE,IAAI,CAACM,MAAM,EAAExD,YACxC,CAAC;EACD,MAAMyD,UAAU,GAAGP,IAAI,CAACL,MAAM,IAAIA,MAAM,CAACN,GAAG,CAAIC,KAAK,IAAMA,KAAK,CAAC3D,EAAG,CAAC;EACrE,MAAMoB,aAAa,GAAG4C,MAAM,CAAC3B,MAAM,CAChCsB,KAAK,IACNiB,UAAU,CAACH,QAAQ,CAAEd,KAAK,CAAC3D,EAAG,CAAC,IAC/B,CAAE,CAAEqE,IAAI,CAACM,MAAM,EAAExD,YAAY,EAAEkD,IAAI,CAACM,MAAM,EAAE1D,UAAU,CAAE,CAACwD,QAAQ,CAChEd,KAAK,CAAC3D,EACP,CACF,CAAC;EAED,MAAMkB,QAAQ,GAAKvB,IAAU,IAC5BwE,iBAAiB,CAAE,CAAEF,SAAS,CAAEtE,IAAK,CAAC,CAAG,CAAC;EAE3C,MAAMkF,6BAA6B,GAAG1G,WAAW,CAC9CwB,IAAU,IAAM,GAAI2E,MAAM,IAAML,SAAS,CAAEtE,IAAK,CAAC,EAAG,EACtD,CAAE2E,MAAM,EAAEL,SAAS,CACpB,CAAC;EAED,MAAMa,qBAAqB,GAAG3G,WAAW,CACxC,CAAEwB,IAAU,EAAEoF,SAAiB,KAAM;IACpC;IACA,OAAOA,SAAS,CAACC,UAAU,CAC1BH,6BAA6B,CAAElF,IAAK,CACrC,CAAC;EACF,CAAC,EACD,CAAEkF,6BAA6B,CAChC,CAAC;;EAED;EACA,MAAM,CAAEI,iBAAiB,EAAEC,oBAAoB,CAAE,GAAG3G,QAAQ,CAEzD4G,SAAU,CAAC;;EAEd;EACA/G,SAAS,CAAE,MAAM;IAChB,IAAKmG,YAAY,EAAG;MACnBW,oBAAoB,CACnB9F,8BAA8B,CAC7ByF,6BAA6B,CAAEN,YAAa,CAC7C,CACD,CAAC;IACF;EACD,CAAC,EAAE,CAAEA,YAAY,EAAEM,6BAA6B,CAAG,CAAC;EAEpD,MAAMO,eAAe,GAAGrB,IAAI,CAACsB,SAAS,CAAI1F,IAAI,IAC7CmF,qBAAqB,CAAEnF,IAAI,EAAEsF,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI,EAAG,CACtD,CAAC;EACD,MAAMK,uBAAuB,GAAG9H,WAAW,CAAE4H,eAAgB,CAAC;EAC9D,MAAMG,gBAAgB,GAAGH,eAAe,KAAK,CAAC,CAAC;EAE/C,MAAMI,mBAAmB,GAAGrH,WAAW,CACtC,CACCsH,WAAmB,EAGnBC,mBAAmD,KAC/C;IACJ;IACA,MAAMC,YAAY,GAAGC,IAAI,CAACC,GAAG,CAC5B9B,IAAI,CAAClB,MAAM,GAAG,CAAC,EACf+C,IAAI,CAACE,GAAG,CAAE,CAAC,EAAEL,WAAY,CAC1B,CAAC;IACD,IAAK,CAAE1B,IAAI,CAAE4B,YAAY,CAAE,EAAG;MAC7B;IACD;IACA,MAAMI,YAAY,GAAGlB,6BAA6B,CACjDd,IAAI,CAAE4B,YAAY,CACnB,CAAC;IACD,MAAMK,qBAAqB,GAAGN,mBAAmB,CAAEK,YAAa,CAAC;IAEjEb,oBAAoB,CAAEc,qBAAsB,CAAC;IAC7CC,QAAQ,CAACC,cAAc,CAAEF,qBAAsB,CAAC,EAAEG,KAAK,CAAC,CAAC;EAC1D,CAAC,EACD,CAAEpC,IAAI,EAAEc,6BAA6B,CACtC,CAAC;;EAED;EACA;EACAzG,SAAS,CAAE,MAAM;IAChB,MAAMgI,iBAAiB,GACtBd,uBAAuB,KAAKH,SAAS,IACrCG,uBAAuB,KAAK,CAAC,CAAC;IAC/B,IAAK,CAAEC,gBAAgB,IAAIa,iBAAiB,EAAG;MAC9C;MACA;MACA;MACA;MACAZ,mBAAmB,CAClBF,uBAAuB,EACvBlG,8BACD,CAAC;IACF;EACD,CAAC,EAAE,CAAEmG,gBAAgB,EAAEC,mBAAmB,EAAEF,uBAAuB,CAAG,CAAC;;EAEvE;EACA;EACA;EACA,MAAMjE,wBAAwB,GAAGlD,WAAW,CACzCkI,KAA+C,IAAM;IACtD,IAAKA,KAAK,CAACC,GAAG,KAAK,WAAW,EAAG;MAChC;MACAD,KAAK,CAACE,cAAc,CAAC,CAAC;MACtBf,mBAAmB,CAClBJ,eAAe,GAAG,CAAC,EACnB5F,kCACD,CAAC;IACF;IACA,IAAK6G,KAAK,CAACC,GAAG,KAAK,SAAS,EAAG;MAC9B;MACAD,KAAK,CAACE,cAAc,CAAC,CAAC;MACtBf,mBAAmB,CAClBJ,eAAe,GAAG,CAAC,EACnB5F,kCACD,CAAC;IACF;EACD,CAAC,EACD,CAAEgG,mBAAmB,EAAEJ,eAAe,CACvC,CAAC;EAED,MAAMoB,OAAO,GAAGzC,IAAI,EAAElB,MAAM;EAC5B,IAAK,CAAE2D,OAAO,EAAG;IAChB,oBACCzH,IAAA;MACC2D,SAAS,EAAGpF,IAAI,CAAE;QACjB,mBAAmB,EAAE4G,SAAS;QAC9B,sBAAsB,EAAE,CAAEsC,OAAO,IAAI,CAAEtC;MACxC,CAAE,CAAG;MAAA/D,QAAA,EAEH,CAAEqG,OAAO,iBACVzH,IAAA;QAAAoB,QAAA,EAAK+D,SAAS,gBAAGnF,IAAA,CAACf,OAAO,IAAE,CAAC,GAAGQ,EAAE,CAAE,YAAa;MAAC,CAAK;IACtD,CACG,CAAC;EAER;EAEA,oBACCO,IAAA,CAACb,SAAS;IACT8B,EAAE,EAAGsE,MAAQ;IACbjE,MAAM,eAAGtB,IAAA,SAAK,CAAG;IACjB2D,SAAS,EAAC,qBAAqB;IAC/BxC,IAAI,EAAC,MAAM;IACXuG,QAAQ,EAAGxB,iBAAmB;IAC9ByB,WAAW,EAAGxB,oBAAsB;IAAA/E,QAAA,EAElC4D,IAAI,CAACL,GAAG,CAAI/D,IAAI,IAAM;MACvB,MAAMK,EAAE,GAAG6E,6BAA6B,CAAElF,IAAK,CAAC;MAChD,oBACCZ,IAAA,CAAC+B,QAAQ;QAERzB,QAAQ,EAAGW,EAAI;QACfe,OAAO,EAAGA,OAAS;QACnBpB,IAAI,EAAGA,IAAM;QACbqB,UAAU,EAAGrB,IAAI,KAAK4E,YAAc;QACpCrD,QAAQ,EAAGA,QAAU;QACrBD,UAAU,EAAGA,UAAY;QACzBE,YAAY,EAAGA,YAAc;QAC7BC,aAAa,EAAGA,aAAe;QAC/BC,wBAAwB,EAAGA;MAA0B,GAT/CrB,EAUN,CAAC;IAEJ,CAAE;EAAC,CACO,CAAC;AAEd","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useInstanceId","usePrevious","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","Composite","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","useRegistry","unlock","ActionsMenuGroup","ActionModal","jsx","_jsx","jsxs","_jsxs","Menu","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","isModalOpen","setIsModalOpen","compositeItemId","id","label","role","children","Item","render","icon","isDestructive","size","onClick","action","items","closeModal","callback","ListItem","actions","isSelected","mediaField","onSelect","primaryField","visibleFields","onDropdownTriggerKeyDown","itemRef","labelId","descriptionId","isHovered","setIsHovered","handleHover","type","isHover","current","scrollIntoView","behavior","block","inline","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","renderedMediaField","className","renderedPrimaryField","usedActions","length","spacing","trigger","accessibleWhenDisabled","disabled","onKeyDown","placement","Row","ref","onMouseEnter","onMouseLeave","justify","alignment","map","field","as","ViewList","props","data","fields","getItemId","isLoading","onChangeSelection","selection","view","baseId","selectedItem","findLast","includes","find","layout","viewFields","generateCompositeItemIdPrefix","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","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":[]}
@@ -19,13 +19,13 @@ import { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';
19
19
  import { getVisibleFieldIds } from '../index';
20
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
21
  const {
22
- DropdownMenuV2
22
+ Menu
23
23
  } = unlock(componentsPrivateApis);
24
- function WithDropDownMenuSeparators({
24
+ function WithMenuSeparators({
25
25
  children
26
26
  }) {
27
27
  return Children.toArray(children).filter(Boolean).map((child, i) => /*#__PURE__*/_jsxs(Fragment, {
28
- children: [i > 0 && /*#__PURE__*/_jsx(DropdownMenuV2.Separator, {}), child]
28
+ children: [i > 0 && /*#__PURE__*/_jsx(Menu.Separator, {}), child]
29
29
  }, i));
30
30
  }
31
31
  const _HeaderMenu = forwardRef(function HeaderMenu({
@@ -63,7 +63,7 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
63
63
  } else {
64
64
  header = combinedField.header || combinedField.label;
65
65
  }
66
- return /*#__PURE__*/_jsx(DropdownMenuV2, {
66
+ return /*#__PURE__*/_jsx(Menu, {
67
67
  align: "start",
68
68
  trigger: /*#__PURE__*/_jsxs(Button, {
69
69
  size: "compact",
@@ -78,12 +78,12 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
78
78
  style: {
79
79
  minWidth: '240px'
80
80
  },
81
- children: /*#__PURE__*/_jsxs(WithDropDownMenuSeparators, {
82
- children: [isSortable && /*#__PURE__*/_jsx(DropdownMenuV2.Group, {
81
+ children: /*#__PURE__*/_jsxs(WithMenuSeparators, {
82
+ children: [isSortable && /*#__PURE__*/_jsx(Menu.Group, {
83
83
  children: SORTING_DIRECTIONS.map(direction => {
84
84
  const isChecked = view.sort && isSorted && view.sort.direction === direction;
85
85
  const value = `${fieldId}-${direction}`;
86
- return /*#__PURE__*/_jsx(DropdownMenuV2.RadioItem, {
86
+ return /*#__PURE__*/_jsx(Menu.RadioItem, {
87
87
  // All sorting radio items share the same name, so that
88
88
  // selecting a sorting option automatically deselects the
89
89
  // previously selected one, even if it is displayed in
@@ -101,13 +101,13 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
101
101
  }
102
102
  });
103
103
  },
104
- children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
104
+ children: /*#__PURE__*/_jsx(Menu.ItemLabel, {
105
105
  children: sortLabels[direction]
106
106
  })
107
107
  }, value);
108
108
  })
109
- }), canAddFilter && /*#__PURE__*/_jsx(DropdownMenuV2.Group, {
110
- children: /*#__PURE__*/_jsx(DropdownMenuV2.Item, {
109
+ }), canAddFilter && /*#__PURE__*/_jsx(Menu.Group, {
110
+ children: /*#__PURE__*/_jsx(Menu.Item, {
111
111
  prefix: /*#__PURE__*/_jsx(Icon, {
112
112
  icon: funnel
113
113
  }),
@@ -123,12 +123,12 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
123
123
  }]
124
124
  });
125
125
  },
126
- children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
126
+ children: /*#__PURE__*/_jsx(Menu.ItemLabel, {
127
127
  children: __('Add filter')
128
128
  })
129
129
  })
130
- }), /*#__PURE__*/_jsxs(DropdownMenuV2.Group, {
131
- children: [/*#__PURE__*/_jsx(DropdownMenuV2.Item, {
130
+ }), /*#__PURE__*/_jsxs(Menu.Group, {
131
+ children: [/*#__PURE__*/_jsx(Menu.Item, {
132
132
  prefix: /*#__PURE__*/_jsx(Icon, {
133
133
  icon: arrowLeft
134
134
  }),
@@ -140,10 +140,10 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
140
140
  fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), fieldId, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]
141
141
  });
142
142
  },
143
- children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
143
+ children: /*#__PURE__*/_jsx(Menu.ItemLabel, {
144
144
  children: __('Move left')
145
145
  })
146
- }), /*#__PURE__*/_jsx(DropdownMenuV2.Item, {
146
+ }), /*#__PURE__*/_jsx(Menu.Item, {
147
147
  prefix: /*#__PURE__*/_jsx(Icon, {
148
148
  icon: arrowRight
149
149
  }),
@@ -155,10 +155,10 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
155
155
  fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], fieldId, ...visibleFieldIds.slice(index + 2)]
156
156
  });
157
157
  },
158
- children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
158
+ children: /*#__PURE__*/_jsx(Menu.ItemLabel, {
159
159
  children: __('Move right')
160
160
  })
161
- }), isHidable && field && /*#__PURE__*/_jsx(DropdownMenuV2.Item, {
161
+ }), isHidable && field && /*#__PURE__*/_jsx(Menu.Item, {
162
162
  prefix: /*#__PURE__*/_jsx(Icon, {
163
163
  icon: unseen
164
164
  }),
@@ -169,7 +169,7 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
169
169
  fields: visibleFieldIds.filter(id => id !== fieldId)
170
170
  });
171
171
  },
172
- children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
172
+ children: /*#__PURE__*/_jsx(Menu.ItemLabel, {
173
173
  children: __('Hide column')
174
174
  })
175
175
  })]