@wordpress/dataviews 2.1.0 → 2.2.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 (56) hide show
  1. package/CHANGELOG.md +8 -5
  2. package/build/bulk-actions-toolbar.js +5 -1
  3. package/build/bulk-actions-toolbar.js.map +1 -1
  4. package/build/bulk-actions.js +10 -20
  5. package/build/bulk-actions.js.map +1 -1
  6. package/build/dataviews.js +17 -11
  7. package/build/dataviews.js.map +1 -1
  8. package/build/item-actions.js +16 -5
  9. package/build/item-actions.js.map +1 -1
  10. package/build/lock-unlock.js +1 -1
  11. package/build/lock-unlock.js.map +1 -1
  12. package/build/single-selection-checkbox.js +1 -1
  13. package/build/single-selection-checkbox.js.map +1 -1
  14. package/build/types.js.map +1 -1
  15. package/build/view-list.js +9 -3
  16. package/build/view-list.js.map +1 -1
  17. package/build/view-table.js +11 -5
  18. package/build/view-table.js.map +1 -1
  19. package/build-module/bulk-actions-toolbar.js +5 -1
  20. package/build-module/bulk-actions-toolbar.js.map +1 -1
  21. package/build-module/bulk-actions.js +11 -21
  22. package/build-module/bulk-actions.js.map +1 -1
  23. package/build-module/dataviews.js +18 -12
  24. package/build-module/dataviews.js.map +1 -1
  25. package/build-module/item-actions.js +16 -5
  26. package/build-module/item-actions.js.map +1 -1
  27. package/build-module/lock-unlock.js +1 -1
  28. package/build-module/lock-unlock.js.map +1 -1
  29. package/build-module/single-selection-checkbox.js +1 -1
  30. package/build-module/single-selection-checkbox.js.map +1 -1
  31. package/build-module/types.js.map +1 -1
  32. package/build-module/view-list.js +9 -3
  33. package/build-module/view-list.js.map +1 -1
  34. package/build-module/view-table.js +11 -5
  35. package/build-module/view-table.js.map +1 -1
  36. package/build-types/bulk-actions-toolbar.d.ts.map +1 -1
  37. package/build-types/bulk-actions.d.ts.map +1 -1
  38. package/build-types/dataviews.d.ts +3 -1
  39. package/build-types/dataviews.d.ts.map +1 -1
  40. package/build-types/item-actions.d.ts.map +1 -1
  41. package/build-types/types.d.ts +5 -11
  42. package/build-types/types.d.ts.map +1 -1
  43. package/build-types/view-list.d.ts.map +1 -1
  44. package/build-types/view-table.d.ts.map +1 -1
  45. package/package.json +10 -9
  46. package/src/bulk-actions-toolbar.tsx +5 -1
  47. package/src/bulk-actions.tsx +13 -32
  48. package/src/dataviews.tsx +25 -24
  49. package/src/item-actions.tsx +12 -8
  50. package/src/lock-unlock.ts +1 -1
  51. package/src/single-selection-checkbox.tsx +1 -1
  52. package/src/types.ts +7 -13
  53. package/src/view-list.tsx +10 -7
  54. package/src/view-table.tsx +14 -3
  55. package/tsconfig.json +1 -0
  56. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.2.0 (2024-06-26)
6
+
5
7
  ## 2.1.0 (2024-06-15)
6
8
 
7
9
  ## 2.0.0 (2024-05-31)
@@ -16,9 +18,10 @@
16
18
 
17
19
  - Remove some unused dependencies ([#62010](https://github.com/WordPress/gutenberg/pull/62010)).
18
20
 
19
- ### Enhancement
21
+ ### Enhancements
20
22
 
21
23
  - `label` prop in Actions API can be either a `string` value or a `function`, in case we want to use information from the selected items. ([#61942](https://github.com/WordPress/gutenberg/pull/61942)).
24
+ - Add `registry` argument to the callback of the actions API. ([#62505](https://github.com/WordPress/gutenberg/pull/62505)).
22
25
 
23
26
  ## 1.2.0 (2024-05-16)
24
27
 
@@ -30,24 +33,24 @@
30
33
 
31
34
  ## 1.0.0 (2024-04-19)
32
35
 
33
- ### Breaking changes
36
+ ### Breaking Changes
34
37
 
35
38
  - Removed the `onDetailsChange` event only available for the list layout. We are looking into adding actions to the list layout, including primary ones.
36
39
 
37
40
  ## 0.9.0 (2024-04-03)
38
41
 
39
- ### Enhancement
42
+ ### Enhancements
40
43
 
41
44
  - The `enumeration` type has been removed and we'll introduce new field types soon. The existing filters will still work as before given they checked for field.elements, which is still a condition filters should have.
42
45
 
43
46
  ## 0.8.0 (2024-03-21)
44
47
 
45
- ### Enhancement
48
+ ### Enhancements
46
49
 
47
50
  - Two new operators have been added: `isAll` and `isNotAll`. These are meant to represent `AND` operations. For example, `Category is all: Book, Review, Science Fiction` would represent all items that have all three categories selected.
48
51
  - DataViews now supports multi-selection. A new set of filter operators has been introduced: `is`, `isNot`, `isAny`, `isNone`. Single-selection operators are `is` and `isNot`, and multi-selection operators are `isAny` and `isNone`. If no operators are declared for a filter, it will support multi-selection. Additionally, the old filter operators `in` and `notIn` operators have been deprecated and will work as `is` and `isNot` respectively. Please, migrate to the new operators as they'll be removed soon.
49
52
 
50
- ### Breaking changes
53
+ ### Breaking Changes
51
54
 
52
55
  - Removed the `getPaginationResults` and `sortByTextFields` utils and replaced them with a unique `filterSortAndPaginate` function.
53
56
 
@@ -9,6 +9,7 @@ var _element = require("@wordpress/element");
9
9
  var _i18n = require("@wordpress/i18n");
10
10
  var _icons = require("@wordpress/icons");
11
11
  var _compose = require("@wordpress/compose");
12
+ var _data = require("@wordpress/data");
12
13
  var _itemActions = require("./item-actions");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  /**
@@ -71,6 +72,7 @@ function ActionButton({
71
72
  actionInProgress,
72
73
  setActionInProgress
73
74
  }) {
75
+ const registry = (0, _data.useRegistry)();
74
76
  const selectedEligibleItems = (0, _element.useMemo)(() => {
75
77
  return selectedItems.filter(item => {
76
78
  return !action.isEligible || action.isEligible(item);
@@ -87,7 +89,9 @@ function ActionButton({
87
89
  action: action,
88
90
  onClick: () => {
89
91
  setActionInProgress(action.id);
90
- action.callback(selectedItems);
92
+ action.callback(selectedItems, {
93
+ registry
94
+ });
91
95
  },
92
96
  items: selectedEligibleItems,
93
97
  isBusy: actionInProgress === action.id
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_icons","_compose","_itemActions","_jsxRuntime","SNACKBAR_VARIANTS","init","bottom","open","transition","type","duration","ease","exit","opacity","ActionTrigger","action","onClick","isBusy","items","label","jsx","ToolbarButton","disabled","icon","isDestructive","size","__experimentalIsFocusable","tooltipPosition","EMPTY_ARRAY","ActionButton","selectedItems","actionInProgress","setActionInProgress","selectedEligibleItems","useMemo","filter","item","isEligible","ActionWithModal","id","callback","renderToolbarContent","selection","actionsToShow","onSelectionChange","jsxs","Fragment","children","ToolbarGroup","className","length","__","sprintf","_n","map","closeSmall","showTooltip","ToolbarContent","useState","buttons","useRef","current","BulkActionsToolbar","data","actions","getItemId","isReducedMotion","useReducedMotion","includes","supportsBulk","some","__unstableAnimatePresence","__unstableMotion","div","layout","initial","animate","variants","undefined","Toolbar"],"sources":["@wordpress/dataviews/src/bulk-actions-toolbar.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tToolbar,\n\tToolbarGroup,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useMemo, useState, useRef } from '@wordpress/element';\nimport { _n, sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ActionWithModal } from './item-actions';\nimport type { Action, AnyItem } from './types';\nimport type { ActionTriggerProps } from './item-actions';\n\ninterface ActionButtonProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item extends AnyItem > {\n\tselection: string[];\n\tactionsToShow: Action< Item >[];\n\tselectedItems: Item[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n}\n\ninterface BulkActionsToolbarProps< Item extends AnyItem > {\n\tdata: Item[];\n\tselection: string[];\n\tactions: Action< Item >[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\tbottom: -48,\n\t},\n\topen: {\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\tbottom: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\topacity: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n};\n\nfunction ActionTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<ToolbarButton\n\t\t\tdisabled={ isBusy }\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\t__experimentalIsFocusable\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\taction.callback( selectedItems );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderToolbarContent< Item extends AnyItem >(\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonSelectionChange: ( selection: Item[] ) => void\n) {\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<div className=\"dataviews-bulk-actions__selection-count\">\n\t\t\t\t\t{ selection.length === 1\n\t\t\t\t\t\t? __( '1 item selected' )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of selected items.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'%s item selected',\n\t\t\t\t\t\t\t\t\t'%s items selected',\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonSelectionChange( EMPTY_ARRAY );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n\nfunction ToolbarContent< Item extends AnyItem >( {\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tonSelectionChange,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst buttons = useRef< JSX.Element | null >( null );\n\tif ( ! actionInProgress ) {\n\t\tif ( buttons.current ) {\n\t\t\tbuttons.current = null;\n\t\t}\n\t\treturn renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonSelectionChange\n\t\t);\n\t} else if ( ! buttons.current ) {\n\t\tbuttons.current = renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonSelectionChange\n\t\t);\n\t}\n\treturn buttons.current;\n}\n\nexport default function BulkActionsToolbar< Item extends AnyItem >( {\n\tdata,\n\tselection,\n\tactions = EMPTY_ARRAY,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsToolbarProps< Item > ) {\n\tconst isReducedMotion = useReducedMotion();\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter( ( item ) =>\n\t\t\tselection.includes( getItemId( item ) )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\n\tif (\n\t\t( selection && selection.length === 0 ) ||\n\t\tactionsToShow.length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\tinitial=\"init\"\n\t\t\t\tanimate=\"open\"\n\t\t\t\texit=\"exit\"\n\t\t\t\tvariants={ isReducedMotion ? undefined : SNACKBAR_VARIANTS }\n\t\t\t\tclassName=\"dataviews-bulk-actions\"\n\t\t\t>\n\t\t\t\t<Toolbar label={ __( 'Bulk actions' ) }>\n\t\t\t\t\t<div className=\"dataviews-bulk-actions-toolbar-wrapper\">\n\t\t\t\t\t\t<ToolbarContent\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tactionsToShow={ actionsToShow }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Toolbar>\n\t\t\t</motion.div>\n\t\t</AnimatePresence>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_icons","_compose","_data","_itemActions","_jsxRuntime","SNACKBAR_VARIANTS","init","bottom","open","transition","type","duration","ease","exit","opacity","ActionTrigger","action","onClick","isBusy","items","label","jsx","ToolbarButton","disabled","icon","isDestructive","size","__experimentalIsFocusable","tooltipPosition","EMPTY_ARRAY","ActionButton","selectedItems","actionInProgress","setActionInProgress","registry","useRegistry","selectedEligibleItems","useMemo","filter","item","isEligible","ActionWithModal","id","callback","renderToolbarContent","selection","actionsToShow","onSelectionChange","jsxs","Fragment","children","ToolbarGroup","className","length","__","sprintf","_n","map","closeSmall","showTooltip","ToolbarContent","useState","buttons","useRef","current","BulkActionsToolbar","data","actions","getItemId","isReducedMotion","useReducedMotion","includes","supportsBulk","some","__unstableAnimatePresence","__unstableMotion","div","layout","initial","animate","variants","undefined","Toolbar"],"sources":["@wordpress/dataviews/src/bulk-actions-toolbar.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tToolbar,\n\tToolbarGroup,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useMemo, useState, useRef } from '@wordpress/element';\nimport { _n, sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { ActionWithModal } from './item-actions';\nimport type { Action, AnyItem } from './types';\nimport type { ActionTriggerProps } from './item-actions';\n\ninterface ActionButtonProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item extends AnyItem > {\n\tselection: string[];\n\tactionsToShow: Action< Item >[];\n\tselectedItems: Item[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n}\n\ninterface BulkActionsToolbarProps< Item extends AnyItem > {\n\tdata: Item[];\n\tselection: string[];\n\tactions: Action< Item >[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\tbottom: -48,\n\t},\n\topen: {\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\tbottom: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\topacity: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n};\n\nfunction ActionTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<ToolbarButton\n\t\t\tdisabled={ isBusy }\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\t__experimentalIsFocusable\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\taction.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderToolbarContent< Item extends AnyItem >(\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonSelectionChange: ( selection: Item[] ) => void\n) {\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<div className=\"dataviews-bulk-actions__selection-count\">\n\t\t\t\t\t{ selection.length === 1\n\t\t\t\t\t\t? __( '1 item selected' )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of selected items.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'%s item selected',\n\t\t\t\t\t\t\t\t\t'%s items selected',\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonSelectionChange( EMPTY_ARRAY );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n\nfunction ToolbarContent< Item extends AnyItem >( {\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tonSelectionChange,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst buttons = useRef< JSX.Element | null >( null );\n\tif ( ! actionInProgress ) {\n\t\tif ( buttons.current ) {\n\t\t\tbuttons.current = null;\n\t\t}\n\t\treturn renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonSelectionChange\n\t\t);\n\t} else if ( ! buttons.current ) {\n\t\tbuttons.current = renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonSelectionChange\n\t\t);\n\t}\n\treturn buttons.current;\n}\n\nexport default function BulkActionsToolbar< Item extends AnyItem >( {\n\tdata,\n\tselection,\n\tactions = EMPTY_ARRAY,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsToolbarProps< Item > ) {\n\tconst isReducedMotion = useReducedMotion();\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter( ( item ) =>\n\t\t\tselection.includes( getItemId( item ) )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\n\tif (\n\t\t( selection && selection.length === 0 ) ||\n\t\tactionsToShow.length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\tinitial=\"init\"\n\t\t\t\tanimate=\"open\"\n\t\t\t\texit=\"exit\"\n\t\t\t\tvariants={ isReducedMotion ? undefined : SNACKBAR_VARIANTS }\n\t\t\t\tclassName=\"dataviews-bulk-actions\"\n\t\t\t>\n\t\t\t\t<Toolbar label={ __( 'Bulk actions' ) }>\n\t\t\t\t\t<div className=\"dataviews-bulk-actions-toolbar-wrapper\">\n\t\t\t\t\t\t<ToolbarContent\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tactionsToShow={ actionsToShow }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Toolbar>\n\t\t\t</motion.div>\n\t\t</AnimatePresence>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ exports.useSomeItemHasAPossibleBulkAction = useSomeItemHasAPossibleBulkAction;
9
9
  var _components = require("@wordpress/components");
10
10
  var _i18n = require("@wordpress/i18n");
11
11
  var _element = require("@wordpress/element");
12
+ var _data = require("@wordpress/data");
12
13
  var _lockUnlock = require("./lock-unlock");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  /**
@@ -75,6 +76,7 @@ function BulkActionItem({
75
76
  selectedItems,
76
77
  setActionWithModal
77
78
  }) {
79
+ const registry = (0, _data.useRegistry)();
78
80
  const eligibleItems = (0, _element.useMemo)(() => {
79
81
  return selectedItems.filter(item => !action.isEligible || action.isEligible(item));
80
82
  }, [action, selectedItems]);
@@ -86,7 +88,9 @@ function BulkActionItem({
86
88
  if (shouldShowModal) {
87
89
  setActionWithModal(action);
88
90
  } else {
89
- await action.callback(eligibleItems);
91
+ action.callback(eligibleItems, {
92
+ registry
93
+ });
90
94
  }
91
95
  },
92
96
  suffix: eligibleItems.length > 0 ? eligibleItems.length : undefined,
@@ -124,24 +128,10 @@ function BulkActions({
124
128
  });
125
129
  }, [data, bulkActions]);
126
130
  const numberSelectableItems = selectableItems.length;
127
- const areAllSelected = selection && selection.length === numberSelectableItems;
128
131
  const selectedItems = (0, _element.useMemo)(() => {
129
- return data.filter(item => selection.includes(getItemId(item)));
130
- }, [selection, data, getItemId]);
131
- const hasNonSelectableItemSelected = (0, _element.useMemo)(() => {
132
- return selectedItems.some(item => {
133
- return !selectableItems.includes(item);
134
- });
135
- }, [selectedItems, selectableItems]);
136
- (0, _element.useEffect)(() => {
137
- if (hasNonSelectableItemSelected) {
138
- onSelectionChange(selectedItems.filter(selectedItem => {
139
- return selectableItems.some(item => {
140
- return getItemId(selectedItem) === getItemId(item);
141
- });
142
- }));
143
- }
144
- }, [hasNonSelectableItemSelected, selectedItems, selectableItems, getItemId, onSelectionChange]);
132
+ return data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));
133
+ }, [selection, data, getItemId, selectableItems]);
134
+ const areAllSelected = selectedItems.length === numberSelectableItems;
145
135
  if (bulkActions.length === 0) {
146
136
  return null;
147
137
  }
@@ -158,8 +148,8 @@ function BulkActions({
158
148
  __next40pxDefaultSize: true,
159
149
  variant: "tertiary",
160
150
  size: "compact",
161
- children: selection.length ? (0, _i18n.sprintf)( /* translators: %d: Number of items. */
162
- (0, _i18n._n)('Edit %d item', 'Edit %d items', selection.length), selection.length) : (0, _i18n.__)('Bulk edit')
151
+ children: selectedItems.length ? (0, _i18n.sprintf)( /* translators: %d: Number of items. */
152
+ (0, _i18n._n)('Edit %d item', 'Edit %d items', selectedItems.length), selectedItems.length) : (0, _i18n.__)('Bulk edit')
163
153
  }),
164
154
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ActionsMenuGroup, {
165
155
  actions: bulkActions,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_lockUnlock","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","useHasAPossibleBulkAction","actions","item","useMemo","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","ActionWithModal","selectedItems","setActionWithModal","onMenuOpenChange","eligibleItems","filter","RenderModal","hideModalHeader","onCloseModal","useCallback","undefined","label","jsx","Modal","title","__experimentalHideHeader","onRequestClose","overlayClassName","children","items","closeModal","onActionPerformed","BulkActionItem","shouldShowModal","disabled","length","hideOnClick","onClick","callback","suffix","id","ActionsMenuGroup","jsxs","Fragment","map","BulkActions","selection","onSelectionChange","getItemId","bulkActions","isMenuOpen","useState","actionWithModal","selectableItems","numberSelectableItems","areAllSelected","includes","hasNonSelectableItemSelected","useEffect","selectedItem","open","onOpenChange","__","style","minWidth","trigger","Button","className","__next40pxDefaultSize","variant","size","sprintf","_n"],"sources":["@wordpress/dataviews/src/bulk-actions.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useCallback, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\ninterface ActionWithModalProps< Item extends AnyItem > {\n\taction: ActionModal< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n}\n\ninterface BulkActionsItemProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface ActionsMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface BulkActionsProps< Item extends AnyItem > {\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function useHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nfunction ActionWithModal< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n\tonMenuOpenChange,\n}: ActionWithModalProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\tconst { RenderModal, hideModalHeader } = action;\n\tconst onCloseModal = useCallback( () => {\n\t\tsetActionWithModal( undefined );\n\t}, [ setActionWithModal ] );\n\tconst label =\n\t\ttypeof action.label === 'string'\n\t\t\t? action.label\n\t\t\t: action.label( selectedItems );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ ! hideModalHeader ? label : undefined }\n\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\tonRequestClose={ onCloseModal }\n\t\t\toverlayClassName=\"dataviews-action-modal\"\n\t\t>\n\t\t\t<RenderModal\n\t\t\t\titems={ eligibleItems }\n\t\t\t\tcloseModal={ onCloseModal }\n\t\t\t\tonActionPerformed={ () => onMenuOpenChange( false ) }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nfunction BulkActionItem< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n}: BulkActionsItemProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\n\tconst shouldShowModal = 'RenderModal' in action;\n\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tkey={ action.id }\n\t\t\tdisabled={ eligibleItems.length === 0 }\n\t\t\thideOnClick={ ! shouldShowModal }\n\t\t\tonClick={ async () => {\n\t\t\t\tif ( shouldShowModal ) {\n\t\t\t\t\tsetActionWithModal( action );\n\t\t\t\t} else {\n\t\t\t\t\tawait action.callback( eligibleItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tsuffix={\n\t\t\t\teligibleItems.length > 0 ? eligibleItems.length : undefined\n\t\t\t}\n\t\t>\n\t\t\t{ action.label }\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionsMenuGroup< Item extends AnyItem >( {\n\tactions,\n\tselectedItems,\n\tsetActionWithModal,\n}: ActionsMenuGroupProps< Item > ) {\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t\t<BulkActionItem\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</DropdownMenuGroup>\n\t\t\t<DropdownMenuSeparator />\n\t\t</>\n\t);\n}\n\nexport default function BulkActions< Item extends AnyItem >( {\n\tdata,\n\tactions,\n\tselection,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsProps< Item > ) {\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst [ isMenuOpen, onMenuOpenChange ] = useState( false );\n\tconst [ actionWithModal, setActionWithModal ] = useState<\n\t\tActionModal< Item > | undefined\n\t>();\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst numberSelectableItems = selectableItems.length;\n\tconst areAllSelected =\n\t\tselection && selection.length === numberSelectableItems;\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter( ( item ) =>\n\t\t\tselection.includes( getItemId( item ) )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst hasNonSelectableItemSelected = useMemo( () => {\n\t\treturn selectedItems.some( ( item ) => {\n\t\t\treturn ! selectableItems.includes( item );\n\t\t} );\n\t}, [ selectedItems, selectableItems ] );\n\tuseEffect( () => {\n\t\tif ( hasNonSelectableItemSelected ) {\n\t\t\tonSelectionChange(\n\t\t\t\tselectedItems.filter( ( selectedItem ) => {\n\t\t\t\t\treturn selectableItems.some( ( item ) => {\n\t\t\t\t\t\treturn getItemId( selectedItem ) === getItemId( item );\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t}, [\n\t\thasNonSelectableItemSelected,\n\t\tselectedItems,\n\t\tselectableItems,\n\t\tgetItemId,\n\t\tonSelectionChange,\n\t] );\n\n\tif ( bulkActions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\topen={ isMenuOpen }\n\t\t\t\tonOpenChange={ onMenuOpenChange }\n\t\t\t\tlabel={ __( 'Bulk actions' ) }\n\t\t\t\tstyle={ { minWidth: '240px' } }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-bulk-edit-button\"\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ selection.length\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Number of items. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'Edit %d item',\n\t\t\t\t\t\t\t\t\t\t'Edit %d items',\n\t\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Bulk edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\tactions={ bulkActions }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t/>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ areAllSelected }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={ numberSelectableItems }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Select all' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ selection.length === 0 }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Deselect' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t</DropdownMenuGroup>\n\t\t\t</DropdownMenu>\n\t\t\t{ actionWithModal && (\n\t\t\t\t<ActionWithModal\n\t\t\t\t\taction={ actionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tonMenuOpenChange={ onMenuOpenChange }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AAAuC,IAAAI,WAAA,GAAAJ,OAAA;AAdvC;AACA;AACA;;AASA;AACA;AACA;;AAIA,MAAM;EACLK,cAAc,EAAEC,YAAY;EAC5BC,mBAAmB,EAAEC,iBAAiB;EACtCC,kBAAkB,EAAEC,gBAAgB;EACpCC,uBAAuB,EAAEC;AAC1B,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AA6B5B,SAASC,yBAAyBA,CACxCC,OAAyB,EACzBC,IAAU,EACT;EACD,OAAO,IAAAC,gBAAO,EAAE,MAAM;IACrB,OAAOF,OAAO,CAACG,IAAI,CAAIC,MAAM,IAAM;MAClC,OACCA,MAAM,CAACC,YAAY,KACjB,CAAED,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAEL,IAAK,CAAC,CAAE;IAEtD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAED,OAAO,EAAEC,IAAI,CAAG,CAAC;AACvB;AAEO,SAASM,iCAAiCA,CAChDP,OAAyB,EACzBQ,IAAY,EACX;EACD,OAAO,IAAAN,gBAAO,EAAE,MAAM;IACrB,OAAOM,IAAI,CAACL,IAAI,CAAIF,IAAI,IAAM;MAC7B,OAAOD,OAAO,CAACG,IAAI,CAAIC,MAAM,IAAM;QAClC,OACCA,MAAM,CAACC,YAAY,KACjB,CAAED,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAEL,IAAK,CAAC,CAAE;MAEtD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAED,OAAO,EAAEQ,IAAI,CAAG,CAAC;AACvB;AAEA,SAASC,eAAeA,CAA0B;EACjDL,MAAM;EACNM,aAAa;EACbC,kBAAkB;EAClBC;AAC6B,CAAC,EAAG;EACjC,MAAMC,aAAa,GAAG,IAAAX,gBAAO,EAAE,MAAM;IACpC,OAAOQ,aAAa,CAACI,MAAM,CACxBb,IAAI,IAAM,CAAEG,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAEL,IAAK,CAC5D,CAAC;EACF,CAAC,EAAE,CAAEG,MAAM,EAAEM,aAAa,CAAG,CAAC;EAC9B,MAAM;IAAEK,WAAW;IAAEC;EAAgB,CAAC,GAAGZ,MAAM;EAC/C,MAAMa,YAAY,GAAG,IAAAC,oBAAW,EAAE,MAAM;IACvCP,kBAAkB,CAAEQ,SAAU,CAAC;EAChC,CAAC,EAAE,CAAER,kBAAkB,CAAG,CAAC;EAC3B,MAAMS,KAAK,GACV,OAAOhB,MAAM,CAACgB,KAAK,KAAK,QAAQ,GAC7BhB,MAAM,CAACgB,KAAK,GACZhB,MAAM,CAACgB,KAAK,CAAEV,aAAc,CAAC;EACjC,oBACC,IAAAtB,WAAA,CAAAiC,GAAA,EAACtC,WAAA,CAAAuC,KAAK;IACLC,KAAK,EAAG,CAAEP,eAAe,GAAGI,KAAK,GAAGD,SAAW;IAC/CK,wBAAwB,EAAG,CAAC,CAAER,eAAiB;IAC/CS,cAAc,EAAGR,YAAc;IAC/BS,gBAAgB,EAAC,wBAAwB;IAAAC,QAAA,eAEzC,IAAAvC,WAAA,CAAAiC,GAAA,EAACN,WAAW;MACXa,KAAK,EAAGf,aAAe;MACvBgB,UAAU,EAAGZ,YAAc;MAC3Ba,iBAAiB,EAAGA,CAAA,KAAMlB,gBAAgB,CAAE,KAAM;IAAG,CACrD;EAAC,CACI,CAAC;AAEV;AAEA,SAASmB,cAAcA,CAA0B;EAChD3B,MAAM;EACNM,aAAa;EACbC;AAC6B,CAAC,EAAG;EACjC,MAAME,aAAa,GAAG,IAAAX,gBAAO,EAAE,MAAM;IACpC,OAAOQ,aAAa,CAACI,MAAM,CACxBb,IAAI,IAAM,CAAEG,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAEL,IAAK,CAC5D,CAAC;EACF,CAAC,EAAE,CAAEG,MAAM,EAAEM,aAAa,CAAG,CAAC;EAE9B,MAAMsB,eAAe,IAAG,aAAa,IAAI5B,MAAM;EAE/C,oBACC,IAAAhB,WAAA,CAAAiC,GAAA,EAAC3B,gBAAgB;IAEhBuC,QAAQ,EAAGpB,aAAa,CAACqB,MAAM,KAAK,CAAG;IACvCC,WAAW,EAAG,CAAEH,eAAiB;IACjCI,OAAO,EAAG,MAAAA,CAAA,KAAY;MACrB,IAAKJ,eAAe,EAAG;QACtBrB,kBAAkB,CAAEP,MAAO,CAAC;MAC7B,CAAC,MAAM;QACN,MAAMA,MAAM,CAACiC,QAAQ,CAAExB,aAAc,CAAC;MACvC;IACD,CAAG;IACHyB,MAAM,EACLzB,aAAa,CAACqB,MAAM,GAAG,CAAC,GAAGrB,aAAa,CAACqB,MAAM,GAAGf,SAClD;IAAAQ,QAAA,EAECvB,MAAM,CAACgB;EAAK,GAdRhB,MAAM,CAACmC,EAeI,CAAC;AAErB;AAEA,SAASC,gBAAgBA,CAA0B;EAClDxC,OAAO;EACPU,aAAa;EACbC;AAC8B,CAAC,EAAG;EAClC,oBACC,IAAAvB,WAAA,CAAAqD,IAAA,EAAArD,WAAA,CAAAsD,QAAA;IAAAf,QAAA,gBACC,IAAAvC,WAAA,CAAAiC,GAAA,EAAC7B,iBAAiB;MAAAmC,QAAA,EACf3B,OAAO,CAAC2C,GAAG,CAAIvC,MAAM,iBACtB,IAAAhB,WAAA,CAAAiC,GAAA,EAACU,cAAc;QAEd3B,MAAM,EAAGA,MAAQ;QACjBM,aAAa,EAAGA,aAAe;QAC/BC,kBAAkB,EAAGA;MAAoB,GAHnCP,MAAM,CAACmC,EAIb,CACA;IAAC,CACe,CAAC,eACpB,IAAAnD,WAAA,CAAAiC,GAAA,EAACzB,qBAAqB,IAAE,CAAC;EAAA,CACxB,CAAC;AAEL;AAEe,SAASgD,WAAWA,CAA0B;EAC5DpC,IAAI;EACJR,OAAO;EACP6C,SAAS;EACTC,iBAAiB;EACjBC;AACyB,CAAC,EAAG;EAC7B,MAAMC,WAAW,GAAG,IAAA9C,gBAAO,EAC1B,MAAMF,OAAO,CAACc,MAAM,CAAIV,MAAM,IAAMA,MAAM,CAACC,YAAa,CAAC,EACzD,CAAEL,OAAO,CACV,CAAC;EACD,MAAM,CAAEiD,UAAU,EAAErC,gBAAgB,CAAE,GAAG,IAAAsC,iBAAQ,EAAE,KAAM,CAAC;EAC1D,MAAM,CAAEC,eAAe,EAAExC,kBAAkB,CAAE,GAAG,IAAAuC,iBAAQ,EAEtD,CAAC;EACH,MAAME,eAAe,GAAG,IAAAlD,gBAAO,EAAE,MAAM;IACtC,OAAOM,IAAI,CAACM,MAAM,CAAIb,IAAI,IAAM;MAC/B,OAAO+C,WAAW,CAAC7C,IAAI,CACpBC,MAAM,IAAM,CAAEA,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAEL,IAAK,CAC9D,CAAC;IACF,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEO,IAAI,EAAEwC,WAAW,CAAG,CAAC;EAE1B,MAAMK,qBAAqB,GAAGD,eAAe,CAAClB,MAAM;EACpD,MAAMoB,cAAc,GACnBT,SAAS,IAAIA,SAAS,CAACX,MAAM,KAAKmB,qBAAqB;EAExD,MAAM3C,aAAa,GAAG,IAAAR,gBAAO,EAAE,MAAM;IACpC,OAAOM,IAAI,CAACM,MAAM,CAAIb,IAAI,IACzB4C,SAAS,CAACU,QAAQ,CAAER,SAAS,CAAE9C,IAAK,CAAE,CACvC,CAAC;EACF,CAAC,EAAE,CAAE4C,SAAS,EAAErC,IAAI,EAAEuC,SAAS,CAAG,CAAC;EAEnC,MAAMS,4BAA4B,GAAG,IAAAtD,gBAAO,EAAE,MAAM;IACnD,OAAOQ,aAAa,CAACP,IAAI,CAAIF,IAAI,IAAM;MACtC,OAAO,CAAEmD,eAAe,CAACG,QAAQ,CAAEtD,IAAK,CAAC;IAC1C,CAAE,CAAC;EACJ,CAAC,EAAE,CAAES,aAAa,EAAE0C,eAAe,CAAG,CAAC;EACvC,IAAAK,kBAAS,EAAE,MAAM;IAChB,IAAKD,4BAA4B,EAAG;MACnCV,iBAAiB,CAChBpC,aAAa,CAACI,MAAM,CAAI4C,YAAY,IAAM;QACzC,OAAON,eAAe,CAACjD,IAAI,CAAIF,IAAI,IAAM;UACxC,OAAO8C,SAAS,CAAEW,YAAa,CAAC,KAAKX,SAAS,CAAE9C,IAAK,CAAC;QACvD,CAAE,CAAC;MACJ,CAAE,CACH,CAAC;IACF;EACD,CAAC,EAAE,CACFuD,4BAA4B,EAC5B9C,aAAa,EACb0C,eAAe,EACfL,SAAS,EACTD,iBAAiB,CAChB,CAAC;EAEH,IAAKE,WAAW,CAACd,MAAM,KAAK,CAAC,EAAG;IAC/B,OAAO,IAAI;EACZ;EACA,oBACC,IAAA9C,WAAA,CAAAqD,IAAA,EAAArD,WAAA,CAAAsD,QAAA;IAAAf,QAAA,gBACC,IAAAvC,WAAA,CAAAqD,IAAA,EAACnD,YAAY;MACZqE,IAAI,EAAGV,UAAY;MACnBW,YAAY,EAAGhD,gBAAkB;MACjCQ,KAAK,EAAG,IAAAyC,QAAE,EAAE,cAAe,CAAG;MAC9BC,KAAK,EAAG;QAAEC,QAAQ,EAAE;MAAQ,CAAG;MAC/BC,OAAO,eACN,IAAA5E,WAAA,CAAAiC,GAAA,EAACtC,WAAA,CAAAkF,MAAM;QACNC,SAAS,EAAC,4BAA4B;QACtCC,qBAAqB;QACrBC,OAAO,EAAC,UAAU;QAClBC,IAAI,EAAC,SAAS;QAAA1C,QAAA,EAEZkB,SAAS,CAACX,MAAM,GACf,IAAAoC,aAAO,GACP;QACA,IAAAC,QAAE,EACD,cAAc,EACd,eAAe,EACf1B,SAAS,CAACX,MACX,CAAC,EACDW,SAAS,CAACX,MACV,CAAC,GACD,IAAA2B,QAAE,EAAE,WAAY;MAAC,CACb,CACR;MAAAlC,QAAA,gBAED,IAAAvC,WAAA,CAAAiC,GAAA,EAACmB,gBAAgB;QAChBxC,OAAO,EAAGgD,WAAa;QACvBrC,kBAAkB,EAAGA,kBAAoB;QACzCD,aAAa,EAAGA;MAAe,CAC/B,CAAC,eACF,IAAAtB,WAAA,CAAAqD,IAAA,EAACjD,iBAAiB;QAAAmC,QAAA,gBACjB,IAAAvC,WAAA,CAAAiC,GAAA,EAAC3B,gBAAgB;UAChBuC,QAAQ,EAAGqB,cAAgB;UAC3BnB,WAAW,EAAG,KAAO;UACrBC,OAAO,EAAGA,CAAA,KAAM;YACfU,iBAAiB,CAAEM,eAAgB,CAAC;UACrC,CAAG;UACHd,MAAM,EAAGe,qBAAuB;UAAA1B,QAAA,EAE9B,IAAAkC,QAAE,EAAE,YAAa;QAAC,CACH,CAAC,eACnB,IAAAzE,WAAA,CAAAiC,GAAA,EAAC3B,gBAAgB;UAChBuC,QAAQ,EAAGY,SAAS,CAACX,MAAM,KAAK,CAAG;UACnCC,WAAW,EAAG,KAAO;UACrBC,OAAO,EAAGA,CAAA,KAAM;YACfU,iBAAiB,CAAE,EAAG,CAAC;UACxB,CAAG;UAAAnB,QAAA,EAED,IAAAkC,QAAE,EAAE,UAAW;QAAC,CACD,CAAC;MAAA,CACD,CAAC;IAAA,CACP,CAAC,EACbV,eAAe,iBAChB,IAAA/D,WAAA,CAAAiC,GAAA,EAACZ,eAAe;MACfL,MAAM,EAAG+C,eAAiB;MAC1BzC,aAAa,EAAGA,aAAe;MAC/BC,kBAAkB,EAAGA,kBAAoB;MACzCC,gBAAgB,EAAGA;IAAkB,CACrC,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_data","_lockUnlock","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","useHasAPossibleBulkAction","actions","item","useMemo","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","ActionWithModal","selectedItems","setActionWithModal","onMenuOpenChange","eligibleItems","filter","RenderModal","hideModalHeader","onCloseModal","useCallback","undefined","label","jsx","Modal","title","__experimentalHideHeader","onRequestClose","overlayClassName","children","items","closeModal","onActionPerformed","BulkActionItem","registry","useRegistry","shouldShowModal","disabled","length","hideOnClick","onClick","callback","suffix","id","ActionsMenuGroup","jsxs","Fragment","map","BulkActions","selection","onSelectionChange","getItemId","bulkActions","isMenuOpen","useState","actionWithModal","selectableItems","numberSelectableItems","includes","areAllSelected","open","onOpenChange","__","style","minWidth","trigger","Button","className","__next40pxDefaultSize","variant","size","sprintf","_n"],"sources":["@wordpress/dataviews/src/bulk-actions.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useCallback } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\ninterface ActionWithModalProps< Item extends AnyItem > {\n\taction: ActionModal< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n}\n\ninterface BulkActionsItemProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface ActionsMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface BulkActionsProps< Item extends AnyItem > {\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function useHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nfunction ActionWithModal< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n\tonMenuOpenChange,\n}: ActionWithModalProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\tconst { RenderModal, hideModalHeader } = action;\n\tconst onCloseModal = useCallback( () => {\n\t\tsetActionWithModal( undefined );\n\t}, [ setActionWithModal ] );\n\tconst label =\n\t\ttypeof action.label === 'string'\n\t\t\t? action.label\n\t\t\t: action.label( selectedItems );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ ! hideModalHeader ? label : undefined }\n\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\tonRequestClose={ onCloseModal }\n\t\t\toverlayClassName=\"dataviews-action-modal\"\n\t\t>\n\t\t\t<RenderModal\n\t\t\t\titems={ eligibleItems }\n\t\t\t\tcloseModal={ onCloseModal }\n\t\t\t\tonActionPerformed={ () => onMenuOpenChange( false ) }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nfunction BulkActionItem< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n}: BulkActionsItemProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\n\tconst shouldShowModal = 'RenderModal' in action;\n\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tkey={ action.id }\n\t\t\tdisabled={ eligibleItems.length === 0 }\n\t\t\thideOnClick={ ! shouldShowModal }\n\t\t\tonClick={ async () => {\n\t\t\t\tif ( shouldShowModal ) {\n\t\t\t\t\tsetActionWithModal( action );\n\t\t\t\t} else {\n\t\t\t\t\taction.callback( eligibleItems, { registry } );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tsuffix={\n\t\t\t\teligibleItems.length > 0 ? eligibleItems.length : undefined\n\t\t\t}\n\t\t>\n\t\t\t{ action.label }\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionsMenuGroup< Item extends AnyItem >( {\n\tactions,\n\tselectedItems,\n\tsetActionWithModal,\n}: ActionsMenuGroupProps< Item > ) {\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t\t<BulkActionItem\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</DropdownMenuGroup>\n\t\t\t<DropdownMenuSeparator />\n\t\t</>\n\t);\n}\n\nexport default function BulkActions< Item extends AnyItem >( {\n\tdata,\n\tactions,\n\tselection,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsProps< Item > ) {\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst [ isMenuOpen, onMenuOpenChange ] = useState( false );\n\tconst [ actionWithModal, setActionWithModal ] = useState<\n\t\tActionModal< Item > | undefined\n\t>();\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst numberSelectableItems = selectableItems.length;\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst areAllSelected = selectedItems.length === numberSelectableItems;\n\n\tif ( bulkActions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\topen={ isMenuOpen }\n\t\t\t\tonOpenChange={ onMenuOpenChange }\n\t\t\t\tlabel={ __( 'Bulk actions' ) }\n\t\t\t\tstyle={ { minWidth: '240px' } }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-bulk-edit-button\"\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ selectedItems.length\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Number of items. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'Edit %d item',\n\t\t\t\t\t\t\t\t\t\t'Edit %d items',\n\t\t\t\t\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Bulk edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\tactions={ bulkActions }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t/>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ areAllSelected }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={ numberSelectableItems }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Select all' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ selection.length === 0 }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Deselect' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t</DropdownMenuGroup>\n\t\t\t</DropdownMenu>\n\t\t\t{ actionWithModal && (\n\t\t\t\t<ActionWithModal\n\t\t\t\t\taction={ actionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tonMenuOpenChange={ onMenuOpenChange }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -52,17 +52,20 @@ function DataViews({
52
52
  isLoading = false,
53
53
  paginationInfo,
54
54
  supportedLayouts,
55
+ selection: selectionProperty,
56
+ setSelection: setSelectionProperty,
55
57
  onSelectionChange = defaultOnSelectionChange
56
58
  }) {
57
- const [selection, setSelection] = (0, _element.useState)([]);
59
+ const [selectionState, setSelectionState] = (0, _element.useState)([]);
60
+ let selection, setSelection;
61
+ if (selectionProperty !== undefined && setSelectionProperty !== undefined) {
62
+ selection = selectionProperty;
63
+ setSelection = setSelectionProperty;
64
+ } else {
65
+ selection = selectionState;
66
+ setSelection = setSelectionState;
67
+ }
58
68
  const [openedFilter, setOpenedFilter] = (0, _element.useState)(null);
59
- (0, _element.useEffect)(() => {
60
- if (selection.length > 0 && selection.some(id => !data.some(item => getItemId(item) === id))) {
61
- const newSelection = selection.filter(id => data.some(item => getItemId(item) === id));
62
- setSelection(newSelection);
63
- onSelectionChange(data.filter(item => newSelection.includes(getItemId(item))));
64
- }
65
- }, [selection, data, getItemId, onSelectionChange]);
66
69
  const onSetSelection = (0, _element.useCallback)(items => {
67
70
  setSelection(items.map(item => getItemId(item)));
68
71
  onSelectionChange(items);
@@ -70,6 +73,9 @@ function DataViews({
70
73
  const ViewComponent = _layouts.VIEW_LAYOUTS.find(v => v.type === view.type)?.component;
71
74
  const _fields = (0, _element.useMemo)(() => (0, _normalizeFields.normalizeFields)(fields), [fields]);
72
75
  const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(actions, data);
76
+ const _selection = (0, _element.useMemo)(() => {
77
+ return selection.filter(id => data.some(item => getItemId(item) === id));
78
+ }, [selection, data, getItemId]);
73
79
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
74
80
  className: "dataviews-wrapper",
75
81
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
@@ -95,7 +101,7 @@ function DataViews({
95
101
  actions: actions,
96
102
  data: data,
97
103
  onSelectionChange: onSetSelection,
98
- selection: selection,
104
+ selection: _selection,
99
105
  getItemId: getItemId
100
106
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_viewActions.default, {
101
107
  fields: _fields,
@@ -111,7 +117,7 @@ function DataViews({
111
117
  isLoading: isLoading,
112
118
  onChangeView: onChangeView,
113
119
  onSelectionChange: onSetSelection,
114
- selection: selection,
120
+ selection: _selection,
115
121
  setOpenedFilter: setOpenedFilter,
116
122
  view: view
117
123
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_pagination.default, {
@@ -121,7 +127,7 @@ function DataViews({
121
127
  }), [_constants.LAYOUT_TABLE, _constants.LAYOUT_GRID].includes(view.type) && hasPossibleBulkAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(_bulkActionsToolbar.default, {
122
128
  data: data,
123
129
  actions: actions,
124
- selection: selection,
130
+ selection: _selection,
125
131
  onSelectionChange: onSetSelection,
126
132
  getItemId: getItemId
127
133
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_pagination","_interopRequireDefault","_viewActions","_filters","_search","_constants","_layouts","_bulkActions","_normalizeFields","_bulkActionsToolbar","_jsxRuntime","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","useMemo","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","selection","setSelection","useState","openedFilter","setOpenedFilter","useEffect","length","newSelection","filter","includes","onSetSelection","useCallback","items","map","ViewComponent","VIEW_LAYOUTS","find","v","type","component","_fields","normalizeFields","hasPossibleBulkAction","jsxs","className","children","__experimentalHStack","alignment","justify","wrap","jsx","default","label","LAYOUT_TABLE","LAYOUT_GRID"],"sources":["@wordpress/dataviews/src/dataviews.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\nimport BulkActionsToolbar from './bulk-actions-toolbar';\nimport type { Action, AnyItem, Field, View, ViewBaseProps } from './types';\n\ninterface DataViewsProps< Item extends AnyItem > {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tgetItemId?: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tsupportedLayouts: string[];\n\tonSelectionChange?: ( items: Item[] ) => void;\n}\n\nconst defaultGetItemId = ( item: AnyItem ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews< Item extends AnyItem >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = [],\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tsupportedLayouts,\n\tonSelectionChange = defaultOnSelectionChange,\n}: DataViewsProps< Item > ) {\n\tconst [ selection, setSelection ] = useState< string[] >( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tselection.length > 0 &&\n\t\t\tselection.some(\n\t\t\t\t( id ) => ! data.some( ( item ) => getItemId( item ) === id )\n\t\t\t)\n\t\t) {\n\t\t\tconst newSelection = selection.filter( ( id ) =>\n\t\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t\t);\n\t\t\tsetSelection( newSelection );\n\t\t\tonSelectionChange(\n\t\t\t\tdata.filter( ( item ) =>\n\t\t\t\t\tnewSelection.includes( getItemId( item ) )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selection, data, getItemId, onSelectionChange ] );\n\n\tconst onSetSelection = useCallback(\n\t\t( items: Item[] ) => {\n\t\t\tsetSelection( items.map( ( item ) => getItemId( item ) ) );\n\t\t\tonSelectionChange( items );\n\t\t},\n\t\t[ setSelection, getItemId, onSelectionChange ]\n\t);\n\n\tconst ViewComponent = VIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< Item > >;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"start\"\n\t\t\t\tclassName=\"dataviews-filters__view-actions\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\t\t\twrap\n\t\t\t\t>\n\t\t\t\t\t{ search && (\n\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Filters\n\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t\t<BulkActions\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t<ViewActions\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t<ViewComponent\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tfields={ _fields }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\tview={ view }\n\t\t\t/>\n\t\t\t<Pagination\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t/>\n\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t<BulkActionsToolbar\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_pagination","_interopRequireDefault","_viewActions","_filters","_search","_constants","_layouts","_bulkActions","_normalizeFields","_bulkActionsToolbar","_jsxRuntime","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","useMemo","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","selection","selectionProperty","setSelection","setSelectionProperty","onSelectionChange","selectionState","setSelectionState","useState","openedFilter","setOpenedFilter","onSetSelection","useCallback","items","map","ViewComponent","VIEW_LAYOUTS","find","v","type","component","_fields","normalizeFields","hasPossibleBulkAction","_selection","filter","jsxs","className","children","__experimentalHStack","alignment","justify","wrap","jsx","default","label","LAYOUT_TABLE","LAYOUT_GRID","includes"],"sources":["@wordpress/dataviews/src/dataviews.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\nimport BulkActionsToolbar from './bulk-actions-toolbar';\nimport type { Action, AnyItem, Field, View, ViewBaseProps } from './types';\n\ninterface DataViewsProps< Item extends AnyItem > {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tgetItemId?: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tsupportedLayouts: string[];\n\tselection?: string[];\n\tsetSelection?: ( selection: string[] ) => void;\n\tonSelectionChange?: ( items: Item[] ) => void;\n}\n\nconst defaultGetItemId = ( item: AnyItem ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews< Item extends AnyItem >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = [],\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tsupportedLayouts,\n\tselection: selectionProperty,\n\tsetSelection: setSelectionProperty,\n\tonSelectionChange = defaultOnSelectionChange,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tlet selection, setSelection;\n\tif (\n\t\tselectionProperty !== undefined &&\n\t\tsetSelectionProperty !== undefined\n\t) {\n\t\tselection = selectionProperty;\n\t\tsetSelection = setSelectionProperty;\n\t} else {\n\t\tselection = selectionState;\n\t\tsetSelection = setSelectionState;\n\t}\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\n\tconst onSetSelection = useCallback(\n\t\t( items: Item[] ) => {\n\t\t\tsetSelection( items.map( ( item ) => getItemId( item ) ) );\n\t\t\tonSelectionChange( items );\n\t\t},\n\t\t[ setSelection, getItemId, onSelectionChange ]\n\t);\n\n\tconst ViewComponent = VIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< Item > >;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"start\"\n\t\t\t\tclassName=\"dataviews-filters__view-actions\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\t\t\twrap\n\t\t\t\t>\n\t\t\t\t\t{ search && (\n\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Filters\n\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t\t<BulkActions\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\t\tselection={ _selection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t<ViewActions\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t<ViewComponent\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tfields={ _fields }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ _selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\tview={ view }\n\t\t\t/>\n\t\t\t<Pagination\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t/>\n\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t<BulkActionsToolbar\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\tselection={ _selection }\n\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,YAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,OAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,gBAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAR,sBAAA,CAAAH,OAAA;AAAwD,IAAAY,WAAA,GAAAZ,OAAA;AAtBxD;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAgCA,MAAMa,gBAAgB,GAAKC,IAAa,IAAMA,IAAI,CAACC,EAAE;AACrD,MAAMC,wBAAwB,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEzC,SAASC,iCAAiCA,CACzCC,OAAyB,EACzBC,IAAY,EACX;EACD,OAAO,IAAAC,gBAAO,EAAE,MAAM;IACrB,OAAOD,IAAI,CAACE,IAAI,CAAIP,IAAI,IAAM;MAC7B,OAAOI,OAAO,CAACG,IAAI,CAAIC,MAAM,IAAM;QAClC,OACCA,MAAM,CAACC,YAAY,KACjB,CAAED,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAEV,IAAK,CAAC,CAAE;MAEtD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEI,OAAO,EAAEC,IAAI,CAAG,CAAC;AACvB;AAEe,SAASM,SAASA,CAA0B;EAC1DC,IAAI;EACJC,YAAY;EACZC,MAAM;EACNC,MAAM,GAAG,IAAI;EACbC,WAAW,GAAGC,SAAS;EACvBb,OAAO,GAAG,EAAE;EACZC,IAAI;EACJa,SAAS,GAAGnB,gBAAgB;EAC5BoB,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,SAAS,EAAEC,iBAAiB;EAC5BC,YAAY,EAAEC,oBAAoB;EAClCC,iBAAiB,GAAGxB;AACG,CAAC,EAAG;EAC3B,MAAM,CAAEyB,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAC,iBAAQ,EAAc,EAAG,CAAC;EACxE,IAAIP,SAAS,EAAEE,YAAY;EAC3B,IACCD,iBAAiB,KAAKN,SAAS,IAC/BQ,oBAAoB,KAAKR,SAAS,EACjC;IACDK,SAAS,GAAGC,iBAAiB;IAC7BC,YAAY,GAAGC,oBAAoB;EACpC,CAAC,MAAM;IACNH,SAAS,GAAGK,cAAc;IAC1BH,YAAY,GAAGI,iBAAiB;EACjC;EACA,MAAM,CAAEE,YAAY,EAAEC,eAAe,CAAE,GAAG,IAAAF,iBAAQ,EAAmB,IAAK,CAAC;EAE3E,MAAMG,cAAc,GAAG,IAAAC,oBAAW,EAC/BC,KAAa,IAAM;IACpBV,YAAY,CAAEU,KAAK,CAACC,GAAG,CAAInC,IAAI,IAAMkB,SAAS,CAAElB,IAAK,CAAE,CAAE,CAAC;IAC1D0B,iBAAiB,CAAEQ,KAAM,CAAC;EAC3B,CAAC,EACD,CAAEV,YAAY,EAAEN,SAAS,EAAEQ,iBAAiB,CAC7C,CAAC;EAED,MAAMU,aAAa,GAAGC,qBAAY,CAACC,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAK5B,IAAI,CAAC4B,IAAK,CAAC,EACrEC,SAAmD;EACtD,MAAMC,OAAO,GAAG,IAAApC,gBAAO,EAAE,MAAM,IAAAqC,gCAAe,EAAE7B,MAAO,CAAC,EAAE,CAAEA,MAAM,CAAG,CAAC;EAEtE,MAAM8B,qBAAqB,GAAGzC,iCAAiC,CAC9DC,OAAO,EACPC,IACD,CAAC;EACD,MAAMwC,UAAU,GAAG,IAAAvC,gBAAO,EAAE,MAAM;IACjC,OAAOgB,SAAS,CAACwB,MAAM,CAAI7C,EAAE,IAC5BI,IAAI,CAACE,IAAI,CAAIP,IAAI,IAAMkB,SAAS,CAAElB,IAAK,CAAC,KAAKC,EAAG,CACjD,CAAC;EACF,CAAC,EAAE,CAAEqB,SAAS,EAAEjB,IAAI,EAAEa,SAAS,CAAG,CAAC;EACnC,oBACC,IAAApB,WAAA,CAAAiD,IAAA;IAAKC,SAAS,EAAC,mBAAmB;IAAAC,QAAA,gBACjC,IAAAnD,WAAA,CAAAiD,IAAA,EAAC9D,WAAA,CAAAiE,oBAAM;MACNC,SAAS,EAAC,KAAK;MACfC,OAAO,EAAC,OAAO;MACfJ,SAAS,EAAC,iCAAiC;MAAAC,QAAA,gBAE3C,IAAAnD,WAAA,CAAAiD,IAAA,EAAC9D,WAAA,CAAAiE,oBAAM;QACNE,OAAO,EAAC,OAAO;QACfJ,SAAS,EAAC,8BAA8B;QACxCK,IAAI;QAAAJ,QAAA,GAEFlC,MAAM,iBACP,IAAAjB,WAAA,CAAAwD,GAAA,EAAC9D,OAAA,CAAA+D,OAAM;UACNC,KAAK,EAAGxC,WAAa;UACrBJ,IAAI,EAAGA,IAAM;UACbC,YAAY,EAAGA;QAAc,CAC7B,CACD,eACD,IAAAf,WAAA,CAAAwD,GAAA,EAAC/D,QAAA,CAAAgE,OAAO;UACPzC,MAAM,EAAG4B,OAAS;UAClB9B,IAAI,EAAGA,IAAM;UACbC,YAAY,EAAGA,YAAc;UAC7BiB,YAAY,EAAGA,YAAc;UAC7BC,eAAe,EAAGA;QAAiB,CACnC,CAAC;MAAA,CACK,CAAC,EACP,CAAE0B,uBAAY,EAAEC,sBAAW,CAAE,CAACC,QAAQ,CAAE/C,IAAI,CAAC4B,IAAK,CAAC,IACpDI,qBAAqB,iBACpB,IAAA9C,WAAA,CAAAwD,GAAA,EAAC3D,YAAA,CAAA4D,OAAW;QACXnD,OAAO,EAAGA,OAAS;QACnBC,IAAI,EAAGA,IAAM;QACbqB,iBAAiB,EAAGM,cAAgB;QACpCV,SAAS,EAAGuB,UAAY;QACxB3B,SAAS,EAAGA;MAAW,CACvB,CACD,eACF,IAAApB,WAAA,CAAAwD,GAAA,EAAChE,YAAA,CAAAiE,OAAW;QACXzC,MAAM,EAAG4B,OAAS;QAClB9B,IAAI,EAAGA,IAAM;QACbC,YAAY,EAAGA,YAAc;QAC7BQ,gBAAgB,EAAGA;MAAkB,CACrC,CAAC;IAAA,CACK,CAAC,eACT,IAAAvB,WAAA,CAAAwD,GAAA,EAAClB,aAAa;MACbhC,OAAO,EAAGA,OAAS;MACnBC,IAAI,EAAGA,IAAM;MACbS,MAAM,EAAG4B,OAAS;MAClBxB,SAAS,EAAGA,SAAW;MACvBC,SAAS,EAAGA,SAAW;MACvBN,YAAY,EAAGA,YAAc;MAC7Ba,iBAAiB,EAAGM,cAAgB;MACpCV,SAAS,EAAGuB,UAAY;MACxBd,eAAe,EAAGA,eAAiB;MACnCnB,IAAI,EAAGA;IAAM,CACb,CAAC,eACF,IAAAd,WAAA,CAAAwD,GAAA,EAAClE,WAAA,CAAAmE,OAAU;MACV3C,IAAI,EAAGA,IAAM;MACbC,YAAY,EAAGA,YAAc;MAC7BO,cAAc,EAAGA;IAAgB,CACjC,CAAC,EACA,CAAEqC,uBAAY,EAAEC,sBAAW,CAAE,CAACC,QAAQ,CAAE/C,IAAI,CAAC4B,IAAK,CAAC,IACpDI,qBAAqB,iBACpB,IAAA9C,WAAA,CAAAwD,GAAA,EAACzD,mBAAA,CAAA0D,OAAkB;MAClBlD,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGA,OAAS;MACnBkB,SAAS,EAAGuB,UAAY;MACxBnB,iBAAiB,EAAGM,cAAgB;MACpCd,SAAS,EAAGA;IAAW,CACvB,CACD;EAAA,CACE,CAAC;AAER","ignoreList":[]}
@@ -11,6 +11,7 @@ var _components = require("@wordpress/components");
11
11
  var _i18n = require("@wordpress/i18n");
12
12
  var _element = require("@wordpress/element");
13
13
  var _icons = require("@wordpress/icons");
14
+ var _data = require("@wordpress/data");
14
15
  var _lockUnlock = require("./lock-unlock");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
17
  /**
@@ -70,12 +71,12 @@ function ActionModal({
70
71
  title: action.modalHeader || label,
71
72
  __experimentalHideHeader: !!action.hideModalHeader,
72
73
  onRequestClose: closeModal !== null && closeModal !== void 0 ? closeModal : () => {},
74
+ focusOnMount: "firstContentElement",
75
+ size: "small",
73
76
  overlayClassName: `dataviews-action-modal dataviews-action-modal__${kebabCase(action.id)}`,
74
77
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(action.RenderModal, {
75
78
  items: items,
76
- closeModal: closeModal,
77
- onActionStart: action.onActionStart,
78
- onActionPerformed: action.onActionPerformed
79
+ closeModal: closeModal
79
80
  })
80
81
  });
81
82
  }
@@ -108,6 +109,7 @@ function ActionsDropdownMenuGroup({
108
109
  actions,
109
110
  item
110
111
  }) {
112
+ const registry = (0, _data.useRegistry)();
111
113
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuGroup, {
112
114
  children: actions.map(action => {
113
115
  if ('RenderModal' in action) {
@@ -119,7 +121,11 @@ function ActionsDropdownMenuGroup({
119
121
  }
120
122
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItemTrigger, {
121
123
  action: action,
122
- onClick: () => action.callback([item]),
124
+ onClick: () => {
125
+ action.callback([item], {
126
+ registry
127
+ });
128
+ },
123
129
  items: [item]
124
130
  }, action.id);
125
131
  })
@@ -130,6 +136,7 @@ function ItemActions({
130
136
  actions,
131
137
  isCompact
132
138
  }) {
139
+ const registry = (0, _data.useRegistry)();
133
140
  const {
134
141
  primaryActions,
135
142
  eligibleActions
@@ -167,7 +174,11 @@ function ItemActions({
167
174
  }
168
175
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ButtonTrigger, {
169
176
  action: action,
170
- onClick: () => action.callback([item]),
177
+ onClick: () => {
178
+ action.callback([item], {
179
+ registry
180
+ });
181
+ },
171
182
  items: [item]
172
183
  }, action.id);
173
184
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(CompactItemActions, {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_icons","_lockUnlock","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","kebabCase","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","items","label","jsx","Button","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","children","ActionModal","closeModal","Modal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","overlayClassName","id","RenderModal","onActionStart","onActionPerformed","ActionWithModal","ActionTrigger","isBusy","isModalOpen","setIsModalOpen","useState","actionTriggerProps","jsxs","Fragment","ActionsDropdownMenuGroup","actions","item","map","callback","ItemActions","isCompact","primaryActions","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","__experimentalHStack","spacing","justify","className","style","flexShrink","width","length","trigger","moreVertical","__","__experimentalIsFocusable","disabled","placement"],"sources":["@wordpress/dataviews/src/item-actions.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MouseEventHandler, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal as ActionModalType, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\ninterface ActionModalProps< Item extends AnyItem > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal?: () => void;\n}\n\ninterface ActionWithModalProps< Item extends AnyItem >\n\textends ActionModalProps< Item > {\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n\tisBusy?: boolean;\n}\n\ninterface ActionsDropdownMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\titem: Item;\n}\n\ninterface ItemActionsProps< Item extends AnyItem > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item extends AnyItem > {\n\titem: Item;\n\tactions: Action< Item >[];\n}\n\nfunction ButtonTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! ( 'RenderModal' in action ) }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nexport function ActionModal< Item extends AnyItem >( {\n\taction,\n\titems,\n\tcloseModal,\n}: ActionModalProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ action.modalHeader || label }\n\t\t\t__experimentalHideHeader={ !! action.hideModalHeader }\n\t\t\tonRequestClose={ closeModal ?? ( () => {} ) }\n\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\taction.id\n\t\t\t) }` }\n\t\t>\n\t\t\t<action.RenderModal\n\t\t\t\titems={ items }\n\t\t\t\tcloseModal={ closeModal }\n\t\t\t\tonActionStart={ action.onActionStart }\n\t\t\t\tonActionPerformed={ action.onActionPerformed }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nexport function ActionWithModal< Item extends AnyItem >( {\n\taction,\n\titems,\n\tActionTrigger,\n\tisBusy,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t\tisBusy,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function ActionsDropdownMenuGroup< Item extends AnyItem >( {\n\tactions,\n\titem,\n}: ActionsDropdownMenuGroupProps< Item > ) {\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => action.callback( [ item ] ) }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions< Item extends AnyItem >( {\n\titem,\n\tactions,\n\tisCompact,\n}: ItemActionsProps< Item > ) {\n\tconst { primaryActions, 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\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn <CompactItemActions item={ item } actions={ eligibleActions } />;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\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\treturn (\n\t\t\t\t\t\t<ButtonTrigger\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tonClick={ () => action.callback( [ item ] ) }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item extends AnyItem >( {\n\titem,\n\tactions,\n}: CompactItemActionsProps< Item > ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t<ActionsDropdownMenuGroup actions={ actions } item={ item } />\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_icons","_data","_lockUnlock","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","kebabCase","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","items","label","jsx","Button","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","children","ActionModal","closeModal","Modal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","overlayClassName","id","RenderModal","ActionWithModal","ActionTrigger","isBusy","isModalOpen","setIsModalOpen","useState","actionTriggerProps","jsxs","Fragment","ActionsDropdownMenuGroup","actions","item","registry","useRegistry","map","callback","ItemActions","isCompact","primaryActions","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","__experimentalHStack","spacing","justify","className","style","flexShrink","width","length","trigger","moreVertical","__","__experimentalIsFocusable","disabled","placement"],"sources":["@wordpress/dataviews/src/item-actions.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MouseEventHandler, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal as ActionModalType, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\ninterface ActionModalProps< Item extends AnyItem > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal?: () => void;\n}\n\ninterface ActionWithModalProps< Item extends AnyItem >\n\textends ActionModalProps< Item > {\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n\tisBusy?: boolean;\n}\n\ninterface ActionsDropdownMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\titem: Item;\n}\n\ninterface ItemActionsProps< Item extends AnyItem > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item extends AnyItem > {\n\titem: Item;\n\tactions: Action< Item >[];\n}\n\nfunction ButtonTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! ( 'RenderModal' in action ) }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nexport function ActionModal< Item extends AnyItem >( {\n\taction,\n\titems,\n\tcloseModal,\n}: ActionModalProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ action.modalHeader || label }\n\t\t\t__experimentalHideHeader={ !! action.hideModalHeader }\n\t\t\tonRequestClose={ closeModal ?? ( () => {} ) }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\taction.id\n\t\t\t) }` }\n\t\t>\n\t\t\t<action.RenderModal items={ items } closeModal={ closeModal } />\n\t\t</Modal>\n\t);\n}\n\nexport function ActionWithModal< Item extends AnyItem >( {\n\taction,\n\titems,\n\tActionTrigger,\n\tisBusy,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t\tisBusy,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function ActionsDropdownMenuGroup< Item extends AnyItem >( {\n\tactions,\n\titem,\n}: ActionsDropdownMenuGroupProps< Item > ) {\n\tconst registry = useRegistry();\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions< Item extends AnyItem >( {\n\titem,\n\tactions,\n\tisCompact,\n}: ItemActionsProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst { primaryActions, 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\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn <CompactItemActions item={ item } actions={ eligibleActions } />;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\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\treturn (\n\t\t\t\t\t\t<ButtonTrigger\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item extends AnyItem >( {\n\titem,\n\tactions,\n}: CompactItemActionsProps< Item > ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t<ActionsDropdownMenuGroup actions={ actions } item={ item } />\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ var _privateApis = require("@wordpress/private-apis");
12
12
  const {
13
13
  lock,
14
14
  unlock
15
- } = (0, _privateApis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.', '@wordpress/dataviews');
15
+ } = (0, _privateApis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/dataviews');
16
16
  exports.unlock = unlock;
17
17
  exports.lock = lock;
18
18
  //# sourceMappingURL=lock-unlock.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/dataviews/src/lock-unlock.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,iHAAiH,EACjH,sBACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/dataviews/src/lock-unlock.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,+HAA+H,EAC/H,sBACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -25,7 +25,7 @@ function SingleSelectionCheckbox({
25
25
  disabled
26
26
  }) {
27
27
  const id = getItemId(item);
28
- const isSelected = selection.includes(id);
28
+ const isSelected = !disabled && selection.includes(id);
29
29
  let selectionLabel;
30
30
  if (primaryField?.getValue && item) {
31
31
  // eslint-disable-next-line @wordpress/valid-sprintf
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_jsxRuntime","SingleSelectionCheckbox","selection","onSelectionChange","item","data","getItemId","primaryField","disabled","id","isSelected","includes","selectionLabel","getValue","sprintf","__","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","onChange","filter","_item","itemId"],"sources":["@wordpress/dataviews/src/single-selection-checkbox.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { Field, AnyItem } from './types';\n\ninterface SingleSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\titem: Item;\n\tdata: Item[];\n\tgetItemId: ( item: Item ) => string;\n\tprimaryField?: Field< Item >;\n\tdisabled: boolean;\n}\n\nexport default function SingleSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\titem,\n\tdata,\n\tgetItemId,\n\tprimaryField,\n\tdisabled,\n}: SingleSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tlet selectionLabel;\n\tif ( primaryField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\t/* translators: %s: item title. */\n\t\t\tisSelected ? __( 'Deselect item: %s' ) : __( 'Select item: %s' ),\n\t\t\tprimaryField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = isSelected\n\t\t\t? __( 'Select a new item' )\n\t\t\t: __( 'Deselect item' );\n\t}\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ isSelected }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId === id || selection.includes( itemId )\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} else {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId !== id && selection.includes( itemId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAJxD;AACA;AACA;;AAIA;AACA;AACA;;AAae,SAASG,uBAAuBA,CAA0B;EACxEC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACqC,CAAC,EAAG;EACzC,MAAMC,EAAE,GAAGH,SAAS,CAAEF,IAAK,CAAC;EAC5B,MAAMM,UAAU,GAAGR,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC;EAC3C,IAAIG,cAAc;EAClB,IAAKL,YAAY,EAAEM,QAAQ,IAAIT,IAAI,EAAG;IACrC;IACAQ,cAAc,GAAG,IAAAE,aAAO,GACvB;IACAJ,UAAU,GAAG,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GAAG,IAAAA,QAAE,EAAE,iBAAkB,CAAC,EAChER,YAAY,CAACM,QAAQ,CAAE;MAAET;IAAK,CAAE,CACjC,CAAC;EACF,CAAC,MAAM;IACNQ,cAAc,GAAGF,UAAU,GACxB,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GACzB,IAAAA,QAAE,EAAE,eAAgB,CAAC;EACzB;EACA,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACjB,WAAA,CAAAkB,eAAe;IACfC,SAAS,EAAC,yCAAyC;IACnDC,uBAAuB;IACvB,cAAaP,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1BY,OAAO,EAAGV,UAAY;IACtBW,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKb,QAAQ,EAAG;QACf;MACD;MAEA,IAAK,CAAEE,UAAU,EAAG;QACnBP,iBAAiB,CAChBE,IAAI,CAACiB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGlB,SAAS,GAAIiB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKf,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEa,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF,CAAC,MAAM;QACNrB,iBAAiB,CAChBE,IAAI,CAACiB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGlB,SAAS,GAAIiB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKf,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEa,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF;IACD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_jsxRuntime","SingleSelectionCheckbox","selection","onSelectionChange","item","data","getItemId","primaryField","disabled","id","isSelected","includes","selectionLabel","getValue","sprintf","__","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","onChange","filter","_item","itemId"],"sources":["@wordpress/dataviews/src/single-selection-checkbox.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { Field, AnyItem } from './types';\n\ninterface SingleSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\titem: Item;\n\tdata: Item[];\n\tgetItemId: ( item: Item ) => string;\n\tprimaryField?: Field< Item >;\n\tdisabled: boolean;\n}\n\nexport default function SingleSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\titem,\n\tdata,\n\tgetItemId,\n\tprimaryField,\n\tdisabled,\n}: SingleSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst isSelected = ! disabled && selection.includes( id );\n\tlet selectionLabel;\n\tif ( primaryField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\t/* translators: %s: item title. */\n\t\t\tisSelected ? __( 'Deselect item: %s' ) : __( 'Select item: %s' ),\n\t\t\tprimaryField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = isSelected\n\t\t\t? __( 'Select a new item' )\n\t\t\t: __( 'Deselect item' );\n\t}\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ isSelected }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId === id || selection.includes( itemId )\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} else {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId !== id && selection.includes( itemId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAJxD;AACA;AACA;;AAIA;AACA;AACA;;AAae,SAASG,uBAAuBA,CAA0B;EACxEC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACqC,CAAC,EAAG;EACzC,MAAMC,EAAE,GAAGH,SAAS,CAAEF,IAAK,CAAC;EAC5B,MAAMM,UAAU,GAAG,CAAEF,QAAQ,IAAIN,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC;EACzD,IAAIG,cAAc;EAClB,IAAKL,YAAY,EAAEM,QAAQ,IAAIT,IAAI,EAAG;IACrC;IACAQ,cAAc,GAAG,IAAAE,aAAO,GACvB;IACAJ,UAAU,GAAG,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GAAG,IAAAA,QAAE,EAAE,iBAAkB,CAAC,EAChER,YAAY,CAACM,QAAQ,CAAE;MAAET;IAAK,CAAE,CACjC,CAAC;EACF,CAAC,MAAM;IACNQ,cAAc,GAAGF,UAAU,GACxB,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GACzB,IAAAA,QAAE,EAAE,eAAgB,CAAC;EACzB;EACA,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACjB,WAAA,CAAAkB,eAAe;IACfC,SAAS,EAAC,yCAAyC;IACnDC,uBAAuB;IACvB,cAAaP,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1BY,OAAO,EAAGV,UAAY;IACtBW,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKb,QAAQ,EAAG;QACf;MACD;MAEA,IAAK,CAAEE,UAAU,EAAG;QACnBP,iBAAiB,CAChBE,IAAI,CAACiB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGlB,SAAS,GAAIiB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKf,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEa,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF,CAAC,MAAM;QACNrB,iBAAiB,CAChBE,IAAI,CAACiB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGlB,SAAS,GAAIiB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKf,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEa,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF;IACD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}