@wordpress/dataviews 1.0.0 → 1.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 (153) hide show
  1. package/CHANGELOG.md +13 -5
  2. package/build/bulk-actions-toolbar.js +182 -0
  3. package/build/bulk-actions-toolbar.js.map +1 -0
  4. package/build/bulk-actions.js +8 -8
  5. package/build/bulk-actions.js.map +1 -1
  6. package/build/constants.js +1 -26
  7. package/build/constants.js.map +1 -1
  8. package/build/dataviews.js +13 -5
  9. package/build/dataviews.js.map +1 -1
  10. package/build/filter-and-sort-data-view.js +72 -65
  11. package/build/filter-and-sort-data-view.js.map +1 -1
  12. package/build/filter-summary.js +3 -3
  13. package/build/filter-summary.js.map +1 -1
  14. package/build/index.js +2 -2
  15. package/build/index.js.map +1 -1
  16. package/build/item-actions.js +41 -22
  17. package/build/item-actions.js.map +1 -1
  18. package/build/layouts.js +38 -0
  19. package/build/layouts.js.map +1 -0
  20. package/build/lock-unlock.js.map +1 -1
  21. package/build/normalize-fields.js +7 -2
  22. package/build/normalize-fields.js.map +1 -1
  23. package/build/pagination.js +13 -7
  24. package/build/pagination.js.map +1 -1
  25. package/build/single-selection-checkbox.js +4 -0
  26. package/build/single-selection-checkbox.js.map +1 -1
  27. package/build/types.js +6 -0
  28. package/build/types.js.map +1 -0
  29. package/build/view-actions.js +2 -1
  30. package/build/view-actions.js.map +1 -1
  31. package/build/view-grid.js +9 -10
  32. package/build/view-grid.js.map +1 -1
  33. package/build/view-list.js +134 -21
  34. package/build/view-list.js.map +1 -1
  35. package/build/view-table.js +9 -9
  36. package/build/view-table.js.map +1 -1
  37. package/build-module/bulk-actions-toolbar.js +175 -0
  38. package/build-module/bulk-actions-toolbar.js.map +1 -0
  39. package/build-module/bulk-actions.js +8 -8
  40. package/build-module/bulk-actions.js.map +1 -1
  41. package/build-module/constants.js +1 -25
  42. package/build-module/constants.js.map +1 -1
  43. package/build-module/dataviews.js +13 -5
  44. package/build-module/dataviews.js.map +1 -1
  45. package/build-module/filter-and-sort-data-view.js +72 -65
  46. package/build-module/filter-and-sort-data-view.js.map +1 -1
  47. package/build-module/filter-summary.js +3 -3
  48. package/build-module/filter-summary.js.map +1 -1
  49. package/build-module/index.js +1 -1
  50. package/build-module/index.js.map +1 -1
  51. package/build-module/item-actions.js +40 -24
  52. package/build-module/item-actions.js.map +1 -1
  53. package/build-module/layouts.js +30 -0
  54. package/build-module/layouts.js.map +1 -0
  55. package/build-module/lock-unlock.js.map +1 -1
  56. package/build-module/normalize-fields.js +7 -2
  57. package/build-module/normalize-fields.js.map +1 -1
  58. package/build-module/pagination.js +14 -7
  59. package/build-module/pagination.js.map +1 -1
  60. package/build-module/single-selection-checkbox.js +5 -0
  61. package/build-module/single-selection-checkbox.js.map +1 -1
  62. package/build-module/types.js +2 -0
  63. package/build-module/types.js.map +1 -0
  64. package/build-module/view-actions.js +2 -1
  65. package/build-module/view-actions.js.map +1 -1
  66. package/build-module/view-grid.js +9 -10
  67. package/build-module/view-grid.js.map +1 -1
  68. package/build-module/view-list.js +135 -23
  69. package/build-module/view-list.js.map +1 -1
  70. package/build-module/view-table.js +9 -9
  71. package/build-module/view-table.js.map +1 -1
  72. package/build-style/style-rtl.css +82 -44
  73. package/build-style/style.css +82 -44
  74. package/build-types/add-filter.d.ts +8 -0
  75. package/build-types/add-filter.d.ts.map +1 -0
  76. package/build-types/bulk-actions-toolbar.d.ts +8 -0
  77. package/build-types/bulk-actions-toolbar.d.ts.map +1 -0
  78. package/build-types/bulk-actions.d.ts +14 -0
  79. package/build-types/bulk-actions.d.ts.map +1 -0
  80. package/build-types/constants.d.ts +45 -0
  81. package/build-types/constants.d.ts.map +1 -0
  82. package/build-types/dataviews.d.ts +15 -0
  83. package/build-types/dataviews.d.ts.map +1 -0
  84. package/build-types/dropdown-menu-helper.d.ts +6 -0
  85. package/build-types/dropdown-menu-helper.d.ts.map +1 -0
  86. package/build-types/filter-and-sort-data-view.d.ts +18 -0
  87. package/build-types/filter-and-sort-data-view.d.ts.map +1 -0
  88. package/build-types/filter-summary.d.ts +6 -0
  89. package/build-types/filter-summary.d.ts.map +1 -0
  90. package/build-types/filters.d.ts +3 -0
  91. package/build-types/filters.d.ts.map +1 -0
  92. package/build-types/index.d.ts +4 -0
  93. package/build-types/index.d.ts.map +1 -0
  94. package/build-types/item-actions.d.ts +37 -0
  95. package/build-types/item-actions.d.ts.map +1 -0
  96. package/build-types/layouts.d.ts +20 -0
  97. package/build-types/layouts.d.ts.map +1 -0
  98. package/build-types/lock-unlock.d.ts +2 -0
  99. package/build-types/lock-unlock.d.ts.map +1 -0
  100. package/build-types/normalize-fields.d.ts +12 -0
  101. package/build-types/normalize-fields.d.ts.map +1 -0
  102. package/build-types/pagination.d.ts +16 -0
  103. package/build-types/pagination.d.ts.map +1 -0
  104. package/build-types/reset-filters.d.ts +6 -0
  105. package/build-types/reset-filters.d.ts.map +1 -0
  106. package/build-types/search-widget.d.ts +2 -0
  107. package/build-types/search-widget.d.ts.map +1 -0
  108. package/build-types/search.d.ts +3 -0
  109. package/build-types/search.d.ts.map +1 -0
  110. package/build-types/single-selection-checkbox.d.ts +17 -0
  111. package/build-types/single-selection-checkbox.d.ts.map +1 -0
  112. package/build-types/stories/fixtures.d.ts +114 -0
  113. package/build-types/stories/fixtures.d.ts.map +1 -0
  114. package/build-types/stories/index.story.d.ts +15 -0
  115. package/build-types/stories/index.story.d.ts.map +1 -0
  116. package/build-types/types.d.ts +254 -0
  117. package/build-types/types.d.ts.map +1 -0
  118. package/build-types/utils.d.ts +2 -0
  119. package/build-types/utils.d.ts.map +1 -0
  120. package/build-types/view-actions.d.ts +3 -0
  121. package/build-types/view-actions.d.ts.map +1 -0
  122. package/build-types/view-grid.d.ts +15 -0
  123. package/build-types/view-grid.d.ts.map +1 -0
  124. package/build-types/view-list.d.ts +16 -0
  125. package/build-types/view-list.d.ts.map +1 -0
  126. package/build-types/view-table.d.ts +14 -0
  127. package/build-types/view-table.d.ts.map +1 -0
  128. package/package.json +12 -12
  129. package/src/bulk-actions-toolbar.js +244 -0
  130. package/src/{bulk-actions.js → bulk-actions.tsx} +73 -17
  131. package/src/{constants.js → constants.ts} +1 -35
  132. package/src/dataviews.js +16 -4
  133. package/src/filter-and-sort-data-view.ts +169 -0
  134. package/src/filter-summary.js +3 -3
  135. package/src/index.js +1 -1
  136. package/src/{item-actions.js → item-actions.tsx} +112 -28
  137. package/src/layouts.js +39 -0
  138. package/src/normalize-fields.ts +25 -0
  139. package/src/{pagination.js → pagination.tsx} +28 -7
  140. package/src/{single-selection-checkbox.js → single-selection-checkbox.tsx} +17 -2
  141. package/src/stories/fixtures.js +0 -2
  142. package/src/style.scss +100 -44
  143. package/src/types.ts +314 -0
  144. package/src/view-actions.js +2 -1
  145. package/src/{view-grid.js → view-grid.tsx} +45 -16
  146. package/src/view-list.tsx +421 -0
  147. package/src/view-table.js +8 -8
  148. package/tsconfig.json +22 -0
  149. package/tsconfig.tsbuildinfo +1 -0
  150. package/src/filter-and-sort-data-view.js +0 -154
  151. package/src/normalize-fields.js +0 -17
  152. package/src/view-list.js +0 -207
  153. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -0,0 +1,175 @@
1
+ import { createElement, Fragment } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { ToolbarButton, Toolbar, ToolbarGroup, __unstableMotion as motion, __unstableAnimatePresence as AnimatePresence } from '@wordpress/components';
6
+ import { useMemo, useState, useRef } from '@wordpress/element';
7
+ import { _n, sprintf, __ } from '@wordpress/i18n';
8
+ import { closeSmall } from '@wordpress/icons';
9
+ import { useReducedMotion } from '@wordpress/compose';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import { ActionWithModal } from './item-actions';
15
+ const SNACKBAR_VARIANTS = {
16
+ init: {
17
+ bottom: -48
18
+ },
19
+ open: {
20
+ bottom: 24,
21
+ transition: {
22
+ bottom: {
23
+ type: 'tween',
24
+ duration: 0.2,
25
+ ease: [0, 0, 0.2, 1]
26
+ }
27
+ }
28
+ },
29
+ exit: {
30
+ opacity: 0,
31
+ bottom: 24,
32
+ transition: {
33
+ opacity: {
34
+ type: 'tween',
35
+ duration: 0.2,
36
+ ease: [0, 0, 0.2, 1]
37
+ }
38
+ }
39
+ }
40
+ };
41
+ function ActionTrigger({
42
+ action,
43
+ onClick,
44
+ isBusy
45
+ }) {
46
+ return createElement(ToolbarButton, {
47
+ disabled: isBusy,
48
+ label: action.label,
49
+ icon: action.icon,
50
+ isDestructive: action.isDestructive,
51
+ size: "compact",
52
+ onClick: onClick,
53
+ isBusy: isBusy,
54
+ __experimentalIsFocusable: true,
55
+ tooltipPosition: "top"
56
+ });
57
+ }
58
+ const EMPTY_ARRAY = [];
59
+ function ActionButton({
60
+ action,
61
+ selectedItems,
62
+ actionInProgress,
63
+ setActionInProgress
64
+ }) {
65
+ const selectedEligibleItems = useMemo(() => {
66
+ return selectedItems.filter(item => {
67
+ return action.isEligible(item);
68
+ });
69
+ }, [action, selectedItems]);
70
+ if (!!action.RenderModal) {
71
+ return createElement(ActionWithModal, {
72
+ key: action.id,
73
+ action: action,
74
+ items: selectedEligibleItems,
75
+ ActionTrigger: ActionTrigger,
76
+ onActionStart: () => {
77
+ setActionInProgress(action.id);
78
+ },
79
+ onActionPerformed: () => {
80
+ setActionInProgress(null);
81
+ }
82
+ });
83
+ }
84
+ return createElement(ActionTrigger, {
85
+ key: action.id,
86
+ action: action,
87
+ items: selectedItems,
88
+ onClick: () => {
89
+ setActionInProgress(action.id);
90
+ action.callback(selectedItems, () => {
91
+ setActionInProgress(action.id);
92
+ });
93
+ },
94
+ isBusy: actionInProgress === action.id
95
+ });
96
+ }
97
+ function renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, setSelection) {
98
+ return createElement(Fragment, null, createElement(ToolbarGroup, null, createElement("div", {
99
+ className: "dataviews-bulk-actions__selection-count"
100
+ }, selection.length === 1 ? __('1 item selected') : sprintf(
101
+ // translators: %s: Total number of selected items.
102
+ _n('%s item selected', '%s items selected', selection.length), selection.length))), createElement(ToolbarGroup, null, actionsToShow.map(action => {
103
+ return createElement(ActionButton, {
104
+ key: action.id,
105
+ action: action,
106
+ selectedItems: selectedItems,
107
+ actionInProgress: actionInProgress,
108
+ setActionInProgress: setActionInProgress
109
+ });
110
+ })), createElement(ToolbarGroup, null, createElement(ToolbarButton, {
111
+ icon: closeSmall,
112
+ showTooltip: true,
113
+ tooltipPosition: "top",
114
+ label: __('Cancel'),
115
+ disabled: !!actionInProgress,
116
+ onClick: () => {
117
+ setSelection(EMPTY_ARRAY);
118
+ }
119
+ })));
120
+ }
121
+ function ToolbarContent({
122
+ selection,
123
+ actionsToShow,
124
+ selectedItems,
125
+ setSelection
126
+ }) {
127
+ const [actionInProgress, setActionInProgress] = useState(null);
128
+ const buttons = useRef(null);
129
+ if (!actionInProgress) {
130
+ if (buttons.current) {
131
+ buttons.current = null;
132
+ }
133
+ return renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, setSelection);
134
+ } else if (!buttons.current) {
135
+ buttons.current = renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, setSelection);
136
+ }
137
+ return buttons.current;
138
+ }
139
+ export default function BulkActionsToolbar({
140
+ data,
141
+ selection,
142
+ actions = EMPTY_ARRAY,
143
+ setSelection,
144
+ getItemId
145
+ }) {
146
+ const isReducedMotion = useReducedMotion();
147
+ const selectedItems = useMemo(() => {
148
+ return data.filter(item => selection.includes(getItemId(item)));
149
+ }, [selection, data, getItemId]);
150
+ const actionsToShow = useMemo(() => actions.filter(action => {
151
+ return action.supportsBulk && action.icon && selectedItems.some(item => action.isEligible(item));
152
+ }), [actions, selectedItems]);
153
+ if (selection && selection.length === 0 || actionsToShow.length === 0) {
154
+ return null;
155
+ }
156
+ return createElement(AnimatePresence, null, createElement(motion.div, {
157
+ layout: !isReducedMotion // See https://www.framer.com/docs/animation/#layout-animations
158
+ ,
159
+ initial: 'init',
160
+ animate: 'open',
161
+ exit: 'exit',
162
+ variants: isReducedMotion ? undefined : SNACKBAR_VARIANTS,
163
+ className: "dataviews-bulk-actions"
164
+ }, createElement(Toolbar, {
165
+ label: __('Bulk actions')
166
+ }, createElement("div", {
167
+ className: "dataviews-bulk-actions-toolbar-wrapper"
168
+ }, createElement(ToolbarContent, {
169
+ selection: selection,
170
+ actionsToShow: actionsToShow,
171
+ selectedItems: selectedItems,
172
+ setSelection: setSelection
173
+ })))));
174
+ }
175
+ //# sourceMappingURL=bulk-actions-toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ToolbarButton","Toolbar","ToolbarGroup","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useMemo","useState","useRef","_n","sprintf","__","closeSmall","useReducedMotion","ActionWithModal","SNACKBAR_VARIANTS","init","bottom","open","transition","type","duration","ease","exit","opacity","ActionTrigger","action","onClick","isBusy","createElement","disabled","label","icon","isDestructive","size","__experimentalIsFocusable","tooltipPosition","EMPTY_ARRAY","ActionButton","selectedItems","actionInProgress","setActionInProgress","selectedEligibleItems","filter","item","isEligible","RenderModal","key","id","items","onActionStart","onActionPerformed","callback","renderToolbarContent","selection","actionsToShow","setSelection","Fragment","className","length","map","showTooltip","ToolbarContent","buttons","current","BulkActionsToolbar","data","actions","getItemId","isReducedMotion","includes","supportsBulk","some","div","layout","initial","animate","variants","undefined"],"sources":["@wordpress/dataviews/src/bulk-actions-toolbar.js"],"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';\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( { action, onClick, isBusy } ) {\n\treturn (\n\t\t<ToolbarButton\n\t\t\tdisabled={ isBusy }\n\t\t\tlabel={ action.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( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n} ) {\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( !! action.RenderModal ) {\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\tonActionStart={ () => {\n\t\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\t} }\n\t\t\t\tonActionPerformed={ () => {\n\t\t\t\t\tsetActionInProgress( null );\n\t\t\t\t} }\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\titems={ selectedItems }\n\t\t\tonClick={ () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\taction.callback( selectedItems, () => {\n\t\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderToolbarContent(\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n\tsetSelection\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\tsetSelection( 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( {\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tsetSelection,\n} ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState( null );\n\tconst buttons = useRef( 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\tsetSelection\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\tsetSelection\n\t\t);\n\t}\n\treturn buttons.current;\n}\n\nexport default function BulkActionsToolbar( {\n\tdata,\n\tselection,\n\tactions = EMPTY_ARRAY,\n\tsetSelection,\n\tgetItemId,\n} ) {\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( ( item ) => action.isEligible( item ) )\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\tsetSelection={ setSelection }\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":[]}
@@ -19,7 +19,7 @@ const {
19
19
  export function useHasAPossibleBulkAction(actions, item) {
20
20
  return useMemo(() => {
21
21
  return actions.some(action => {
22
- return action.supportsBulk && action.isEligible(item);
22
+ return action.supportsBulk && (!action.isEligible || action.isEligible(item));
23
23
  });
24
24
  }, [actions, item]);
25
25
  }
@@ -27,7 +27,7 @@ export function useSomeItemHasAPossibleBulkAction(actions, data) {
27
27
  return useMemo(() => {
28
28
  return data.some(item => {
29
29
  return actions.some(action => {
30
- return action.supportsBulk && action.isEligible(item);
30
+ return action.supportsBulk && (!action.isEligible || action.isEligible(item));
31
31
  });
32
32
  });
33
33
  }, [actions, data]);
@@ -39,7 +39,7 @@ function ActionWithModal({
39
39
  onMenuOpenChange
40
40
  }) {
41
41
  const eligibleItems = useMemo(() => {
42
- return selectedItems.filter(item => action.isEligible(item));
42
+ return selectedItems.filter(item => !action.isEligible || action.isEligible(item));
43
43
  }, [action, selectedItems]);
44
44
  const {
45
45
  RenderModal,
@@ -49,14 +49,14 @@ function ActionWithModal({
49
49
  setActionWithModal(undefined);
50
50
  }, [setActionWithModal]);
51
51
  return createElement(Modal, {
52
- title: !hideModalHeader && action.label,
52
+ title: !hideModalHeader ? action.label : undefined,
53
53
  __experimentalHideHeader: !!hideModalHeader,
54
54
  onRequestClose: onCloseModal,
55
55
  overlayClassName: "dataviews-action-modal"
56
56
  }, createElement(RenderModal, {
57
57
  items: eligibleItems,
58
58
  closeModal: onCloseModal,
59
- onPerform: () => onMenuOpenChange(false)
59
+ onActionPerformed: () => onMenuOpenChange(false)
60
60
  }));
61
61
  }
62
62
  function BulkActionItem({
@@ -65,9 +65,9 @@ function BulkActionItem({
65
65
  setActionWithModal
66
66
  }) {
67
67
  const eligibleItems = useMemo(() => {
68
- return selectedItems.filter(item => action.isEligible(item));
68
+ return selectedItems.filter(item => !action.isEligible || action.isEligible(item));
69
69
  }, [action, selectedItems]);
70
- const shouldShowModal = !!action.RenderModal;
70
+ const shouldShowModal = ('RenderModal' in action);
71
71
  return createElement(DropdownMenuItem, {
72
72
  key: action.id,
73
73
  disabled: eligibleItems.length === 0,
@@ -106,7 +106,7 @@ export default function BulkActions({
106
106
  const [actionWithModal, setActionWithModal] = useState();
107
107
  const selectableItems = useMemo(() => {
108
108
  return data.filter(item => {
109
- return bulkActions.some(action => action.isEligible(item));
109
+ return bulkActions.some(action => !action.isEligible || action.isEligible(item));
110
110
  });
111
111
  }, [data, bulkActions]);
112
112
  const numberSelectableItems = selectableItems.length;
@@ -1 +1 @@
1
- {"version":3,"names":["privateApis","componentsPrivateApis","Button","Modal","__","sprintf","_n","useMemo","useState","useCallback","useEffect","unlock","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","useHasAPossibleBulkAction","actions","item","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","ActionWithModal","selectedItems","setActionWithModal","onMenuOpenChange","eligibleItems","filter","RenderModal","hideModalHeader","onCloseModal","undefined","createElement","title","label","__experimentalHideHeader","onRequestClose","overlayClassName","items","closeModal","onPerform","BulkActionItem","shouldShowModal","key","id","disabled","length","hideOnClick","onClick","callback","suffix","ActionsMenuGroup","Fragment","map","BulkActions","selection","onSelectionChange","getItemId","bulkActions","isMenuOpen","actionWithModal","selectableItems","numberSelectableItems","areAllSelected","includes","hasNonSelectableItemSelected","selectedItem","open","onOpenChange","style","minWidth","trigger","className","__next40pxDefaultSize","variant","size"],"sources":["@wordpress/dataviews/src/bulk-actions.js"],"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';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nexport function useHasAPossibleBulkAction( actions, item ) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction( actions, data ) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nfunction ActionWithModal( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n\tonMenuOpenChange,\n} ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => action.isEligible( item ) );\n\t}, [ action, selectedItems ] );\n\tconst { RenderModal, hideModalHeader } = action;\n\tconst onCloseModal = useCallback( () => {\n\t\tsetActionWithModal( undefined );\n\t}, [ setActionWithModal ] );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ ! hideModalHeader && action.label }\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\tonPerform={ () => onMenuOpenChange( false ) }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nfunction BulkActionItem( { action, selectedItems, setActionWithModal } ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => action.isEligible( item ) );\n\t}, [ action, selectedItems ] );\n\n\tconst shouldShowModal = !! action.RenderModal;\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( { actions, selectedItems, setActionWithModal } ) {\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( {\n\tdata,\n\tactions,\n\tselection,\n\tonSelectionChange,\n\tgetItemId,\n} ) {\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\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some( ( action ) => action.isEligible( item ) );\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":"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","ignoreList":[]}
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","Button","Modal","__","sprintf","_n","useMemo","useState","useCallback","useEffect","unlock","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","useHasAPossibleBulkAction","actions","item","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","ActionWithModal","selectedItems","setActionWithModal","onMenuOpenChange","eligibleItems","filter","RenderModal","hideModalHeader","onCloseModal","undefined","createElement","title","label","__experimentalHideHeader","onRequestClose","overlayClassName","items","closeModal","onActionPerformed","BulkActionItem","shouldShowModal","key","id","disabled","length","hideOnClick","onClick","callback","suffix","ActionsMenuGroup","Fragment","map","BulkActions","selection","onSelectionChange","getItemId","bulkActions","isMenuOpen","actionWithModal","selectableItems","numberSelectableItems","areAllSelected","includes","hasNonSelectableItemSelected","selectedItem","open","onOpenChange","style","minWidth","trigger","className","__next40pxDefaultSize","variant","size"],"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\treturn (\n\t\t<Modal\n\t\t\ttitle={ ! hideModalHeader ? action.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":"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","ignoreList":[]}
@@ -1,15 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __, isRTL } from '@wordpress/i18n';
5
- import { blockTable, category, formatListBullets, formatListBulletsRTL } from '@wordpress/icons';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import ViewTable from './view-table';
11
- import ViewGrid from './view-grid';
12
- import ViewList from './view-list';
4
+ import { __ } from '@wordpress/i18n';
13
5
 
14
6
  // Filter operators.
15
7
  export const OPERATOR_IS = 'is';
@@ -60,20 +52,4 @@ export const SORTING_DIRECTIONS = {
60
52
  export const LAYOUT_TABLE = 'table';
61
53
  export const LAYOUT_GRID = 'grid';
62
54
  export const LAYOUT_LIST = 'list';
63
- export const VIEW_LAYOUTS = [{
64
- type: LAYOUT_TABLE,
65
- label: __('Table'),
66
- component: ViewTable,
67
- icon: blockTable
68
- }, {
69
- type: LAYOUT_GRID,
70
- label: __('Grid'),
71
- component: ViewGrid,
72
- icon: category
73
- }, {
74
- type: LAYOUT_LIST,
75
- label: __('List'),
76
- component: ViewList,
77
- icon: isRTL() ? formatListBulletsRTL : formatListBullets
78
- }];
79
55
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","isRTL","blockTable","category","formatListBullets","formatListBulletsRTL","ViewTable","ViewGrid","ViewList","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","ALL_OPERATORS","OPERATORS","key","label","SORTING_DIRECTIONS","asc","desc","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST","VIEW_LAYOUTS","type","component","icon"],"sources":["@wordpress/dataviews/src/constants.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './view-table';\nimport ViewGrid from './view-grid';\nimport ViewList from './view-list';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\n\nexport const ALL_OPERATORS = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n];\nexport const OPERATORS = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n};\n\n// Sorting\nexport const SORTING_DIRECTIONS = {\n\tasc: { label: __( 'Sort ascending' ) },\n\tdesc: { label: __( 'Sort descending' ) },\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SACCC,UAAU,EACVC,QAAQ,EACRC,iBAAiB,EACjBC,oBAAoB,QACd,kBAAkB;;AAEzB;AACA;AACA;AACA,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,QAAQ,MAAM,aAAa;;AAElC;AACA,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,gBAAgB,GAAG,QAAQ;AACxC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;AAE7C,OAAO,MAAMC,aAAa,GAAG,CAC5BN,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,CACnB;AACD,OAAO,MAAME,SAAS,GAAG;EACxB,CAAEP,WAAW,GAAI;IAChBQ,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAElB,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEU,eAAe,GAAI;IACpBO,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAElB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEW,eAAe,GAAI;IACpBM,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAElB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEY,gBAAgB,GAAI;IACrBK,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAElB,EAAE,CAAE,SAAU;EACtB,CAAC;EACD,CAAEa,eAAe,GAAI;IACpBI,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAElB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEc,mBAAmB,GAAI;IACxBG,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAElB,EAAE,CAAE,YAAa;EACzB;AACD,CAAC;;AAED;AACA,OAAO,MAAMmB,kBAAkB,GAAG;EACjCC,GAAG,EAAE;IAAEF,KAAK,EAAElB,EAAE,CAAE,gBAAiB;EAAE,CAAC;EACtCqB,IAAI,EAAE;IAAEH,KAAK,EAAElB,EAAE,CAAE,iBAAkB;EAAE;AACxC,CAAC;;AAED;AACA,OAAO,MAAMsB,YAAY,GAAG,OAAO;AACnC,OAAO,MAAMC,WAAW,GAAG,MAAM;AACjC,OAAO,MAAMC,WAAW,GAAG,MAAM;AAEjC,OAAO,MAAMC,YAAY,GAAG,CAC3B;EACCC,IAAI,EAAEJ,YAAY;EAClBJ,KAAK,EAAElB,EAAE,CAAE,OAAQ,CAAC;EACpB2B,SAAS,EAAErB,SAAS;EACpBsB,IAAI,EAAE1B;AACP,CAAC,EACD;EACCwB,IAAI,EAAEH,WAAW;EACjBL,KAAK,EAAElB,EAAE,CAAE,MAAO,CAAC;EACnB2B,SAAS,EAAEpB,QAAQ;EACnBqB,IAAI,EAAEzB;AACP,CAAC,EACD;EACCuB,IAAI,EAAEF,WAAW;EACjBN,KAAK,EAAElB,EAAE,CAAE,MAAO,CAAC;EACnB2B,SAAS,EAAEnB,QAAQ;EACnBoB,IAAI,EAAE3B,KAAK,CAAC,CAAC,GAAGI,oBAAoB,GAAGD;AACxC,CAAC,CACD","ignoreList":[]}
1
+ {"version":3,"names":["__","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","ALL_OPERATORS","OPERATORS","key","label","SORTING_DIRECTIONS","asc","desc","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST"],"sources":["@wordpress/dataviews/src/constants.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\n\nexport const ALL_OPERATORS = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n];\nexport const OPERATORS = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n};\n\n// Sorting\nexport const SORTING_DIRECTIONS = {\n\tasc: { label: __( 'Sort ascending' ) },\n\tdesc: { label: __( 'Sort descending' ) },\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,gBAAgB,GAAG,QAAQ;AACxC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;AAE7C,OAAO,MAAMC,aAAa,GAAG,CAC5BN,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,CACnB;AACD,OAAO,MAAME,SAAS,GAAG;EACxB,CAAEP,WAAW,GAAI;IAChBQ,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAEV,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEE,eAAe,GAAI;IACpBO,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEV,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEG,eAAe,GAAI;IACpBM,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEV,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEI,gBAAgB,GAAI;IACrBK,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAEV,EAAE,CAAE,SAAU;EACtB,CAAC;EACD,CAAEK,eAAe,GAAI;IACpBI,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEV,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEM,mBAAmB,GAAI;IACxBG,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAEV,EAAE,CAAE,YAAa;EACzB;AACD,CAAC;;AAED;AACA,OAAO,MAAMW,kBAAkB,GAAG;EACjCC,GAAG,EAAE;IAAEF,KAAK,EAAEV,EAAE,CAAE,gBAAiB;EAAE,CAAC;EACtCa,IAAI,EAAE;IAAEH,KAAK,EAAEV,EAAE,CAAE,iBAAkB;EAAE;AACxC,CAAC;;AAED;AACA,OAAO,MAAMc,YAAY,GAAG,OAAO;AACnC,OAAO,MAAMC,WAAW,GAAG,MAAM;AACjC,OAAO,MAAMC,WAAW,GAAG,MAAM","ignoreList":[]}
@@ -12,9 +12,11 @@ import Pagination from './pagination';
12
12
  import ViewActions from './view-actions';
13
13
  import Filters from './filters';
14
14
  import Search from './search';
15
- import { VIEW_LAYOUTS, LAYOUT_TABLE, LAYOUT_GRID } from './constants';
15
+ import { LAYOUT_TABLE, LAYOUT_GRID } from './constants';
16
+ import { VIEW_LAYOUTS } from './layouts';
16
17
  import BulkActions from './bulk-actions';
17
18
  import { normalizeFields } from './normalize-fields';
19
+ import BulkActionsToolbar from './bulk-actions-toolbar';
18
20
  const defaultGetItemId = item => item.id;
19
21
  const defaultOnSelectionChange = () => {};
20
22
  function useSomeItemHasAPossibleBulkAction(actions, data) {
@@ -88,20 +90,26 @@ export default function DataViews({
88
90
  onChangeView: onChangeView,
89
91
  supportedLayouts: supportedLayouts
90
92
  })), createElement(ViewComponent, {
91
- fields: _fields,
92
- view: view,
93
- onChangeView: onChangeView,
94
93
  actions: actions,
95
94
  data: data,
95
+ fields: _fields,
96
96
  getItemId: getItemId,
97
97
  isLoading: isLoading,
98
+ onChangeView: onChangeView,
98
99
  onSelectionChange: onSetSelection,
99
100
  selection: selection,
100
- setOpenedFilter: setOpenedFilter
101
+ setOpenedFilter: setOpenedFilter,
102
+ view: view
101
103
  }), createElement(Pagination, {
102
104
  view: view,
103
105
  onChangeView: onChangeView,
104
106
  paginationInfo: paginationInfo
107
+ }), [LAYOUT_TABLE, LAYOUT_GRID].includes(view.type) && hasPossibleBulkAction && createElement(BulkActionsToolbar, {
108
+ data: data,
109
+ actions: actions,
110
+ selection: selection,
111
+ setSelection: setSelection,
112
+ getItemId: getItemId
105
113
  }));
106
114
  }
107
115
  //# sourceMappingURL=dataviews.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","VIEW_LAYOUTS","LAYOUT_TABLE","LAYOUT_GRID","BulkActions","normalizeFields","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","createElement","className","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.js"],"sourcesContent":["/**\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 { VIEW_LAYOUTS, LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\n\nconst defaultGetItemId = ( item ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction( actions, data ) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews( {\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} ) {\n\tconst [ selection, setSelection ] = useState( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState( 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 ) => {\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(\n\t\t( v ) => v.type === view.type\n\t).component;\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\tfields={ _fields }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\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</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","LAYOUT_TABLE","LAYOUT_GRID","VIEW_LAYOUTS","BulkActions","normalizeFields","BulkActionsToolbar","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","createElement","className","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.js"],"sourcesContent":["/**\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';\n\nconst defaultGetItemId = ( item ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction( actions, data ) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews( {\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} ) {\n\tconst [ selection, setSelection ] = useState( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState( 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 ) => {\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(\n\t\t( v ) => v.type === view.type\n\t).component;\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\tsetSelection={ setSelection }\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":[]}