@wordpress/dataviews 4.9.0 → 4.9.1-next.a9f418477.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.
- package/CHANGELOG.md +20 -0
- package/README.md +16 -39
- package/build/components/dataviews/index.js +2 -3
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +1 -2
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +21 -20
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-selection-checkbox/index.js +3 -3
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +191 -126
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +88 -64
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/index.js +0 -60
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +30 -13
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +19 -24
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +55 -0
- package/build/dataviews-layouts/table/column-primary.js.map +1 -0
- package/build/dataviews-layouts/table/index.js +73 -83
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/utils/get-clickable-item-props.js +15 -4
- package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +2 -3
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +1 -2
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +21 -20
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-selection-checkbox/index.js +3 -3
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +195 -130
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +89 -65
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/index.js +0 -57
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +30 -13
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +19 -24
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +48 -0
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -0
- package/build-module/dataviews-layouts/table/index.js +76 -86
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +15 -4
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +68 -65
- package/build-style/style.css +68 -65
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +0 -1
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +1 -1
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -2
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +0 -4
- package/build-types/dataviews-layouts/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts +1 -0
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts +14 -0
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -0
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +9 -4
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +1 -1
- package/build-types/lock-unlock.d.ts +1 -1
- package/build-types/lock-unlock.d.ts.map +1 -1
- package/build-types/types.d.ts +21 -40
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +14820 -0
- package/build.js +40 -0
- package/package.json +28 -11
- package/src/components/dataviews/index.tsx +2 -3
- package/src/components/dataviews/stories/fixtures.tsx +0 -3
- package/src/components/dataviews/stories/index.story.tsx +14 -106
- package/src/components/dataviews/style.scss +33 -33
- package/src/components/dataviews-context/index.ts +2 -3
- package/src/components/dataviews-item-actions/index.tsx +30 -25
- package/src/components/dataviews-selection-checkbox/index.tsx +4 -4
- package/src/components/dataviews-view-config/index.tsx +291 -193
- package/src/components/dataviews-view-config/style.scss +9 -0
- package/src/dataviews-layouts/grid/index.tsx +116 -99
- package/src/dataviews-layouts/grid/style.scss +15 -24
- package/src/dataviews-layouts/index.ts +0 -88
- package/src/dataviews-layouts/list/index.tsx +48 -30
- package/src/dataviews-layouts/table/column-header-menu.tsx +94 -86
- package/src/dataviews-layouts/table/column-primary.tsx +58 -0
- package/src/dataviews-layouts/table/index.tsx +89 -134
- package/src/dataviews-layouts/table/style.scss +4 -0
- package/src/dataviews-layouts/utils/get-clickable-item-props.ts +22 -9
- package/src/types.ts +22 -47
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## Breaking Changes
|
|
6
|
+
|
|
7
|
+
- Support showing or hiding title, media and description fields ([#67477](https://github.com/WordPress/gutenberg/pull/67477)).
|
|
8
|
+
- Unify the `title`, `media` and `description` fields for the different layouts. So instead of the previous `view.layout.mediaField`, `view.layout.primaryField` and `view.layout.columnFields`, all the layouts now support these three fields with the following config ([#67477](https://github.com/WordPress/gutenberg/pull/67477)):
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const view = {
|
|
12
|
+
type: 'table',
|
|
13
|
+
titleField: 'title',
|
|
14
|
+
mediaField: 'media',
|
|
15
|
+
descriptionField: 'description',
|
|
16
|
+
fields: [ 'author', 'date' ],
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Internal
|
|
21
|
+
|
|
22
|
+
- Upgraded `@ariakit/react` (v0.4.13) and `@ariakit/test` (v0.4.5) ([#65907](https://github.com/WordPress/gutenberg/pull/65907)).
|
|
23
|
+
- Upgraded `@ariakit/react` (v0.4.15) and `@ariakit/test` (v0.4.7) ([#67404](https://github.com/WordPress/gutenberg/pull/67404)).
|
|
24
|
+
|
|
5
25
|
## 4.9.0 (2024-11-27)
|
|
6
26
|
|
|
7
27
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -17,6 +17,8 @@ npm install @wordpress/dataviews --save
|
|
|
17
17
|
|
|
18
18
|
<div class="callout callout-info">At <a href="https://wordpress.github.io/gutenberg/">WordPress Gutenberg's Storybook</a> there's and <a href="https://wordpress.github.io/gutenberg/?path=/docs/dataviews-dataviews--docs">example implementation of the Dataviews component</a>.</div>
|
|
19
19
|
|
|
20
|
+
**Important note** If you're trying to use the `DataViews` component in a WordPress plugin or theme and you're building your scripts using the `@wordpress/scripts` package, you need to import the components from `@wordpress/dataviews/wp` instead of `@wordpress/dataviews`.
|
|
21
|
+
|
|
20
22
|
### Usage
|
|
21
23
|
|
|
22
24
|
The `DataViews` component receives data and some other configuration to render the dataset. It'll call the `onChangeView` callback every time the user has interacted with the dataset in some way (sorted, filtered, changed layout, etc.):
|
|
@@ -163,6 +165,7 @@ const view = {
|
|
|
163
165
|
field: 'date',
|
|
164
166
|
direction: 'desc',
|
|
165
167
|
},
|
|
168
|
+
titleField: 'title',
|
|
166
169
|
fields: [ 'author', 'status' ],
|
|
167
170
|
layout: {},
|
|
168
171
|
};
|
|
@@ -182,50 +185,22 @@ Properties:
|
|
|
182
185
|
|
|
183
186
|
- `field`: the field used for sorting the dataset.
|
|
184
187
|
- `direction`: the direction to use for sorting, one of `asc` or `desc`.
|
|
185
|
-
|
|
186
|
-
- `
|
|
188
|
+
- `titleField`: The id of the field reprensenting the title of the record.
|
|
189
|
+
- `mediaField`: The id of the field reprensenting the media of the record.
|
|
190
|
+
- `descriptionField`: The id of field the reprensenting the description of the record.
|
|
191
|
+
- `showTitle`: Whether the title should be shown in the UI. `true` by default.
|
|
192
|
+
- `showMedia`: Whether the media should be shown in the UI. `true` by default.
|
|
193
|
+
- `showDescription`: Whether the description should be shown in the UI. `true` by default.
|
|
194
|
+
- `fields`: a list of remaining field `id` that are visible in the UI and the specific order in which they are displayed.
|
|
187
195
|
- `layout`: config that is specific to a particular layout type.
|
|
188
196
|
|
|
189
197
|
##### Properties of `layout`
|
|
190
198
|
|
|
191
199
|
| Properties of `layout` | Table | Grid | List |
|
|
192
200
|
| --------------------------------------------------------------------------------------------------------------- | ----- | ---- | ---- |
|
|
193
|
-
| `primaryField`: the field's `id` to be highlighted in each layout. It's not hidable. | ✓ | ✓ | ✓ |
|
|
194
|
-
| `mediaField`: the field's `id` to be used for rendering each card's media. It's not hiddable. | | ✓ | ✓ |
|
|
195
|
-
| `columnFields`: a list of field's `id` to render vertically stacked instead of horizontally (the default). | | ✓ | |
|
|
196
201
|
| `badgeFields`: a list of field's `id` to render without label and styled as badges. | | ✓ | |
|
|
197
|
-
| `combinedFields`: a list of "virtual" fields that are made by combining others. See "Combining fields" section. | ✓ | | |
|
|
198
202
|
| `styles`: additional `width`, `maxWidth`, `minWidth` styles for each field column. | ✓ | | |
|
|
199
203
|
|
|
200
|
-
##### Combining fields
|
|
201
|
-
|
|
202
|
-
The `table` layout has the ability to create "virtual" fields that are made out by combining existing ones.
|
|
203
|
-
|
|
204
|
-
Each "virtual field", has to provide an `id` and `label` (optionally a `header` instead), which have the same meaning as any other field.
|
|
205
|
-
|
|
206
|
-
Additionally, they need to provide:
|
|
207
|
-
|
|
208
|
-
- `children`: a list of field's `id` to combine
|
|
209
|
-
- `direction`: how should they be stacked, `vertical` or `horizontal`
|
|
210
|
-
|
|
211
|
-
For example, this is how you'd define a `site` field which is a combination of a `title` and `description` fields, which are not displayed:
|
|
212
|
-
|
|
213
|
-
```js
|
|
214
|
-
{
|
|
215
|
-
fields: [ 'site', 'status' ],
|
|
216
|
-
layout: {
|
|
217
|
-
combinedFields: [
|
|
218
|
-
{
|
|
219
|
-
id: 'site',
|
|
220
|
-
label: 'Site',
|
|
221
|
-
children: [ 'title', 'description' ],
|
|
222
|
-
direction: 'vertical',
|
|
223
|
-
}
|
|
224
|
-
]
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
204
|
#### `onChangeView`: `function`
|
|
230
205
|
|
|
231
206
|
Callback executed when the view has changed. It receives the new view object as a parameter.
|
|
@@ -253,6 +228,7 @@ function MyCustomPageTable() {
|
|
|
253
228
|
value: [ 'publish', 'draft' ],
|
|
254
229
|
},
|
|
255
230
|
],
|
|
231
|
+
titleField: 'title',
|
|
256
232
|
fields: [ 'author', 'status' ],
|
|
257
233
|
layout: {},
|
|
258
234
|
} );
|
|
@@ -368,14 +344,15 @@ For example, this is how you'd enable only the table view type:
|
|
|
368
344
|
```js
|
|
369
345
|
const defaultLayouts = {
|
|
370
346
|
table: {
|
|
371
|
-
|
|
372
|
-
primaryField: 'my-key',
|
|
373
|
-
},
|
|
347
|
+
showMedia: false,
|
|
374
348
|
},
|
|
349
|
+
grid: {
|
|
350
|
+
showMedia: true,
|
|
351
|
+
}
|
|
375
352
|
};
|
|
376
353
|
```
|
|
377
354
|
|
|
378
|
-
The `defaultLayouts` property should be an object that includes properties named `table`, `grid`, or `list`.
|
|
355
|
+
The `defaultLayouts` property should be an object that includes properties named `table`, `grid`, or `list`. These properties are applied to the view object each time the user switches to the corresponding layout.
|
|
379
356
|
|
|
380
357
|
#### `selection`: `string[]`
|
|
381
358
|
|
|
@@ -30,8 +30,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
const defaultGetItemId = item => item.id;
|
|
33
|
-
const defaultIsItemClickable = () =>
|
|
34
|
-
const defaultOnClickItem = () => {};
|
|
33
|
+
const defaultIsItemClickable = () => true;
|
|
35
34
|
const EMPTY_ARRAY = [];
|
|
36
35
|
function DataViews({
|
|
37
36
|
view,
|
|
@@ -47,7 +46,7 @@ function DataViews({
|
|
|
47
46
|
defaultLayouts,
|
|
48
47
|
selection: selectionProperty,
|
|
49
48
|
onChangeSelection,
|
|
50
|
-
onClickItem
|
|
49
|
+
onClickItem,
|
|
51
50
|
isItemClickable = defaultIsItemClickable,
|
|
52
51
|
header
|
|
53
52
|
}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","defaultOnClickItem","EMPTY_ARRAY","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","isItemClickable","header","selectionState","setSelectionState","useState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","isShowingFilter","setIsShowingFilter","isPrimary","jsx","Provider","children","jsxs","className","__experimentalHStack","alignment","justify","spacing","expanded","label","FiltersToggle","style","flexShrink"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\n\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\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\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => false;\nconst defaultOnClickItem = () => {};\nconst EMPTY_ARRAY: any[] = [];\n\nexport default function DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem = defaultOnClickItem,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\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\n\tconst filters = useFilters( _fields, view );\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >( () =>\n\t\t( filters || [] ).some( ( filter ) => filter.isPrimary )\n\t);\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t\t<FiltersToggle\n\t\t\t\t\t\t\tfilters={ filters }\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\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\tsetIsShowingFilter={ setIsShowingFilter }\n\t\t\t\t\t\t\tisShowingFilter={ isShowingFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DataViewsViewConfig\n\t\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ isShowingFilter && <DataViewsFilters /> }\n\t\t\t\t<DataViewsLayout />\n\t\t\t\t<DataViewsFooter />\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","isItemClickable","header","selectionState","setSelectionState","useState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","isShowingFilter","setIsShowingFilter","isPrimary","jsx","Provider","children","jsxs","className","__experimentalHStack","alignment","justify","spacing","expanded","label","FiltersToggle","style","flexShrink"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\n\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\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\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nexport default function DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\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\n\tconst filters = useFilters( _fields, view );\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >( () =>\n\t\t( filters || [] ).some( ( filter ) => filter.isPrimary )\n\t);\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t\t<FiltersToggle\n\t\t\t\t\t\t\tfilters={ filters }\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\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\tsetIsShowingFilter={ setIsShowingFilter }\n\t\t\t\t\t\t\tisShowingFilter={ isShowingFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DataViewsViewConfig\n\t\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ isShowingFilter && <DataViewsFilters /> }\n\t\t\t\t<DataViewsLayout />\n\t\t\t\t<DataViewsFooter />\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,8 +30,7 @@ const DataViewsContext = (0, _element.createContext)({
|
|
|
30
30
|
setOpenedFilter: () => {},
|
|
31
31
|
openedFilter: null,
|
|
32
32
|
getItemId: item => item.id,
|
|
33
|
-
|
|
34
|
-
isItemClickable: () => false
|
|
33
|
+
isItemClickable: () => true
|
|
35
34
|
});
|
|
36
35
|
var _default = exports.default = DataViewsContext;
|
|
37
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_constants","DataViewsContext","createContext","view","type","LAYOUT_TABLE","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","
|
|
1
|
+
{"version":3,"names":["_element","require","_constants","DataViewsContext","createContext","view","type","LAYOUT_TABLE","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","isItemClickable","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { View, Action, NormalizedField } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { LAYOUT_TABLE } from '../../constants';\n\ntype DataViewsContextType< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tisItemClickable: () => true,\n} );\n\nexport default DataViewsContext;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;AAyBA,MAAME,gBAAgB,GAAG,IAAAC,sBAAa,EAAiC;EACtEC,IAAI,EAAE;IAAEC,IAAI,EAAEC;EAAa,CAAC;EAC5BC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,EAAE;EACRC,cAAc,EAAE;IACfC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACb,CAAC;EACDC,SAAS,EAAE,EAAE;EACbC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,YAAY,EAAE,IAAI;EAClBC,SAAS,EAAIC,IAAI,IAAMA,IAAI,CAACC,EAAE;EAC9BC,eAAe,EAAEA,CAAA,KAAM;AACxB,CAAE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWrB,gBAAgB","ignoreList":[]}
|
|
@@ -69,7 +69,7 @@ function ActionModal({
|
|
|
69
69
|
__experimentalHideHeader: !!action.hideModalHeader,
|
|
70
70
|
onRequestClose: closeModal !== null && closeModal !== void 0 ? closeModal : () => {},
|
|
71
71
|
focusOnMount: "firstContentElement",
|
|
72
|
-
size: "
|
|
72
|
+
size: "medium",
|
|
73
73
|
overlayClassName: `dataviews-action-modal dataviews-action-modal__${kebabCase(action.id)}`,
|
|
74
74
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(action.RenderModal, {
|
|
75
75
|
items: items,
|
|
@@ -108,23 +108,11 @@ function ActionsMenuGroup({
|
|
|
108
108
|
}) {
|
|
109
109
|
const registry = (0, _data.useRegistry)();
|
|
110
110
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Group, {
|
|
111
|
-
children:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
ActionTrigger: MenuItemTrigger
|
|
117
|
-
}, action.id);
|
|
118
|
-
}
|
|
119
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuItemTrigger, {
|
|
120
|
-
action: action,
|
|
121
|
-
onClick: () => {
|
|
122
|
-
action.callback([item], {
|
|
123
|
-
registry
|
|
124
|
-
});
|
|
125
|
-
},
|
|
126
|
-
items: [item]
|
|
127
|
-
}, action.id);
|
|
111
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionsList, {
|
|
112
|
+
actions: actions,
|
|
113
|
+
item: item,
|
|
114
|
+
registry: registry,
|
|
115
|
+
ActionTrigger: MenuItemTrigger
|
|
128
116
|
})
|
|
129
117
|
});
|
|
130
118
|
}
|
|
@@ -211,15 +199,28 @@ function PrimaryActions({
|
|
|
211
199
|
if (!Array.isArray(actions) || actions.length === 0) {
|
|
212
200
|
return null;
|
|
213
201
|
}
|
|
202
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionsList, {
|
|
203
|
+
actions: actions,
|
|
204
|
+
item: item,
|
|
205
|
+
registry: registry,
|
|
206
|
+
ActionTrigger: ButtonTrigger
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function ActionsList({
|
|
210
|
+
item,
|
|
211
|
+
actions,
|
|
212
|
+
registry,
|
|
213
|
+
ActionTrigger
|
|
214
|
+
}) {
|
|
214
215
|
return actions.map(action => {
|
|
215
216
|
if ('RenderModal' in action) {
|
|
216
217
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionWithModal, {
|
|
217
218
|
action: action,
|
|
218
219
|
items: [item],
|
|
219
|
-
ActionTrigger:
|
|
220
|
+
ActionTrigger: ActionTrigger
|
|
220
221
|
}, action.id);
|
|
221
222
|
}
|
|
222
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
223
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionTrigger, {
|
|
223
224
|
action: action,
|
|
224
225
|
onClick: () => {
|
|
225
226
|
action.callback([item], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_icons","_data","_lockUnlock","_jsxRuntime","Menu","kebabCase","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","items","label","jsx","Button","icon","isDestructive","size","MenuItemTrigger","Item","hideOnClick","children","ItemLabel","ActionModal","closeModal","Modal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","overlayClassName","id","RenderModal","ActionWithModal","ActionTrigger","isBusy","isModalOpen","setIsModalOpen","useState","actionTriggerProps","jsxs","Fragment","ActionsMenuGroup","actions","item","registry","useRegistry","Group","map","callback","hasOnlyOneActionAndIsPrimary","primaryActions","length","ItemActions","isCompact","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","isSmall","PrimaryActions","__experimentalHStack","spacing","justify","className","style","flexShrink","width","trigger","moreVertical","__","accessibleWhenDisabled","disabled","placement","Array","isArray"],"sources":["@wordpress/dataviews/src/components/dataviews-item-actions/index.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 } from '../../types';\n\nconst { Menu, kebabCase } = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\ninterface ActionModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal?: () => void;\n}\n\ninterface ActionWithModalProps< Item > extends ActionModalProps< Item > {\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n\tisBusy?: boolean;\n}\n\ninterface ActionsMenuGroupProps< Item > {\n\tactions: Action< Item >[];\n\titem: Item;\n}\n\ninterface ItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisSmall?: boolean;\n}\n\ninterface PrimaryActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tregistry: ReturnType< typeof useRegistry >;\n}\n\nfunction ButtonTrigger< Item >( {\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 MenuItemTrigger< Item >( {\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<Menu.Item\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! ( 'RenderModal' in action ) }\n\t\t>\n\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t</Menu.Item>\n\t);\n}\n\nexport function ActionModal< Item >( {\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 >( {\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 ActionsMenuGroup< Item >( {\n\tactions,\n\titem,\n}: ActionsMenuGroupProps< Item > ) {\n\tconst registry = useRegistry();\n\treturn (\n\t\t<Menu.Group>\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={ MenuItemTrigger }\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<MenuItemTrigger\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</Menu.Group>\n\t);\n}\n\nfunction hasOnlyOneActionAndIsPrimary< Item >(\n\tprimaryActions: Action< Item >[],\n\tactions: Action< Item >[]\n) {\n\treturn primaryActions.length === 1 && actions.length === 1;\n}\n\nexport default function ItemActions< Item >( {\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\n\tif ( isCompact ) {\n\t\treturn (\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ eligibleActions }\n\t\t\t\tisSmall\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( hasOnlyOneActionAndIsPrimary( primaryActions, actions ) ) {\n\t\treturn (\n\t\t\t<PrimaryActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t);\n\t}\n\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\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item >( {\n\titem,\n\tactions,\n\tisSmall,\n}: CompactItemActionsProps< Item > ) {\n\treturn (\n\t\t<Menu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize={ isSmall ? 'small' : 'compact' }\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\taccessibleWhenDisabled\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<ActionsMenuGroup actions={ actions } item={ item } />\n\t\t</Menu>\n\t);\n}\n\nfunction PrimaryActions< Item >( {\n\titem,\n\tactions,\n\tregistry,\n}: PrimaryActionsProps< Item > ) {\n\tif ( ! Array.isArray( actions ) || actions.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn actions.map( ( action ) => {\n\t\tif ( 'RenderModal' in action ) {\n\t\t\treturn (\n\t\t\t\t<ActionWithModal\n\t\t\t\t\tkey={ action.id }\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\tActionTrigger={ ButtonTrigger }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<ButtonTrigger\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t} }\n\t\t\t\titems={ [ item ] }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_icons","_data","_lockUnlock","_jsxRuntime","Menu","kebabCase","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","items","label","jsx","Button","icon","isDestructive","size","MenuItemTrigger","Item","hideOnClick","children","ItemLabel","ActionModal","closeModal","Modal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","overlayClassName","id","RenderModal","ActionWithModal","ActionTrigger","isBusy","isModalOpen","setIsModalOpen","useState","actionTriggerProps","jsxs","Fragment","ActionsMenuGroup","actions","item","registry","useRegistry","Group","ActionsList","hasOnlyOneActionAndIsPrimary","primaryActions","length","ItemActions","isCompact","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","isSmall","PrimaryActions","__experimentalHStack","spacing","justify","className","style","flexShrink","width","trigger","moreVertical","__","accessibleWhenDisabled","disabled","placement","Array","isArray","map","callback"],"sources":["@wordpress/dataviews/src/components/dataviews-item-actions/index.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 } from '../../types';\n\nconst { Menu, kebabCase } = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\ninterface ActionModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal?: () => void;\n}\n\ninterface ActionWithModalProps< Item > extends ActionModalProps< Item > {\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n\tisBusy?: boolean;\n}\n\ninterface ActionsMenuGroupProps< Item > {\n\tactions: Action< Item >[];\n\titem: Item;\n}\n\ninterface ItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisSmall?: boolean;\n}\n\ninterface PrimaryActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tregistry: ReturnType< typeof useRegistry >;\n}\ninterface ActionsListProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tregistry: ReturnType< typeof useRegistry >;\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n}\n\nfunction ButtonTrigger< Item >( {\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 MenuItemTrigger< Item >( {\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<Menu.Item\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! ( 'RenderModal' in action ) }\n\t\t>\n\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t</Menu.Item>\n\t);\n}\n\nexport function ActionModal< Item >( {\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=\"medium\"\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 >( {\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 ActionsMenuGroup< Item >( {\n\tactions,\n\titem,\n}: ActionsMenuGroupProps< Item > ) {\n\tconst registry = useRegistry();\n\treturn (\n\t\t<Menu.Group>\n\t\t\t<ActionsList\n\t\t\t\tactions={ actions }\n\t\t\t\titem={ item }\n\t\t\t\tregistry={ registry }\n\t\t\t\tActionTrigger={ MenuItemTrigger }\n\t\t\t/>\n\t\t</Menu.Group>\n\t);\n}\n\nfunction hasOnlyOneActionAndIsPrimary< Item >(\n\tprimaryActions: Action< Item >[],\n\tactions: Action< Item >[]\n) {\n\treturn primaryActions.length === 1 && actions.length === 1;\n}\n\nexport default function ItemActions< Item >( {\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\n\tif ( isCompact ) {\n\t\treturn (\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ eligibleActions }\n\t\t\t\tisSmall\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( hasOnlyOneActionAndIsPrimary( primaryActions, actions ) ) {\n\t\treturn (\n\t\t\t<PrimaryActions\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t);\n\t}\n\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\n\t\t\t\titem={ item }\n\t\t\t\tactions={ primaryActions }\n\t\t\t\tregistry={ registry }\n\t\t\t/>\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item >( {\n\titem,\n\tactions,\n\tisSmall,\n}: CompactItemActionsProps< Item > ) {\n\treturn (\n\t\t<Menu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize={ isSmall ? 'small' : 'compact' }\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\taccessibleWhenDisabled\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<ActionsMenuGroup actions={ actions } item={ item } />\n\t\t</Menu>\n\t);\n}\n\nfunction PrimaryActions< Item >( {\n\titem,\n\tactions,\n\tregistry,\n}: PrimaryActionsProps< Item > ) {\n\tif ( ! Array.isArray( actions ) || actions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<ActionsList\n\t\t\tactions={ actions }\n\t\t\titem={ item }\n\t\t\tregistry={ registry }\n\t\t\tActionTrigger={ ButtonTrigger }\n\t\t/>\n\t);\n}\n\nfunction ActionsList< Item >( {\n\titem,\n\tactions,\n\tregistry,\n\tActionTrigger,\n}: ActionsListProps< Item > ) {\n\treturn actions.map( ( action ) => {\n\t\tif ( 'RenderModal' in action ) {\n\t\t\treturn (\n\t\t\t\t<ActionWithModal\n\t\t\t\t\tkey={ action.id }\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<ActionTrigger\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t} }\n\t\t\t\titems={ [ item ] }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,15 +20,15 @@ function DataViewsSelectionCheckbox({
|
|
|
20
20
|
onChangeSelection,
|
|
21
21
|
item,
|
|
22
22
|
getItemId,
|
|
23
|
-
|
|
23
|
+
titleField,
|
|
24
24
|
disabled
|
|
25
25
|
}) {
|
|
26
26
|
const id = getItemId(item);
|
|
27
27
|
const checked = !disabled && selection.includes(id);
|
|
28
28
|
let selectionLabel;
|
|
29
|
-
if (
|
|
29
|
+
if (titleField?.getValue && item) {
|
|
30
30
|
// eslint-disable-next-line @wordpress/valid-sprintf
|
|
31
|
-
selectionLabel = (0, _i18n.sprintf)(checked ? /* translators: %s: item title. */(0, _i18n.__)('Deselect item: %s') : /* translators: %s: item title. */(0, _i18n.__)('Select item: %s'),
|
|
31
|
+
selectionLabel = (0, _i18n.sprintf)(checked ? /* translators: %s: item title. */(0, _i18n.__)('Deselect item: %s') : /* translators: %s: item title. */(0, _i18n.__)('Select item: %s'), titleField.getValue({
|
|
32
32
|
item
|
|
33
33
|
}));
|
|
34
34
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_jsxRuntime","DataViewsSelectionCheckbox","selection","onChangeSelection","item","getItemId","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_jsxRuntime","DataViewsSelectionCheckbox","selection","onChangeSelection","item","getItemId","titleField","disabled","id","checked","includes","selectionLabel","getValue","sprintf","__","jsx","CheckboxControl","className","__nextHasNoMarginBottom","onChange","filter","itemId"],"sources":["@wordpress/dataviews/src/components/dataviews-selection-checkbox/index.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 } from '../../types';\nimport type { SetSelection } from '../../private-types';\n\ninterface DataViewsSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\titem: Item;\n\tgetItemId: ( item: Item ) => string;\n\ttitleField?: Field< Item >;\n\tdisabled: boolean;\n}\n\nexport default function DataViewsSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\titem,\n\tgetItemId,\n\ttitleField,\n\tdisabled,\n}: DataViewsSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst checked = ! disabled && selection.includes( id );\n\tlet selectionLabel;\n\tif ( titleField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\tchecked\n\t\t\t\t? /* translators: %s: item title. */ __( 'Deselect item: %s' )\n\t\t\t\t: /* translators: %s: item title. */ __( 'Select item: %s' ),\n\t\t\ttitleField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = checked\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-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ checked }\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\tonChangeSelection(\n\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t: [ ...selection, id ]\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,0BAA0BA,CAAU;EAC3DC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,SAAS;EACTC,UAAU;EACVC;AACwC,CAAC,EAAG;EAC5C,MAAMC,EAAE,GAAGH,SAAS,CAAED,IAAK,CAAC;EAC5B,MAAMK,OAAO,GAAG,CAAEF,QAAQ,IAAIL,SAAS,CAACQ,QAAQ,CAAEF,EAAG,CAAC;EACtD,IAAIG,cAAc;EAClB,IAAKL,UAAU,EAAEM,QAAQ,IAAIR,IAAI,EAAG;IACnC;IACAO,cAAc,GAAG,IAAAE,aAAO,EACvBJ,OAAO,GACJ,kCAAmC,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GAC5D,kCAAmC,IAAAA,QAAE,EAAE,iBAAkB,CAAC,EAC7DR,UAAU,CAACM,QAAQ,CAAE;MAAER;IAAK,CAAE,CAC/B,CAAC;EACF,CAAC,MAAM;IACNO,cAAc,GAAGF,OAAO,GACrB,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GACzB,IAAAA,QAAE,EAAE,eAAgB,CAAC;EACzB;EACA,oBACC,IAAAd,WAAA,CAAAe,GAAA,EAAChB,WAAA,CAAAiB,eAAe;IACfC,SAAS,EAAC,8BAA8B;IACxCC,uBAAuB;IACvB,cAAaP,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1BE,OAAO,EAAGA,OAAS;IACnBU,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKZ,QAAQ,EAAG;QACf;MACD;MAEAJ,iBAAiB,CAChBD,SAAS,CAACQ,QAAQ,CAAEF,EAAG,CAAC,GACrBN,SAAS,CAACkB,MAAM,CAAIC,MAAM,IAAMb,EAAE,KAAKa,MAAO,CAAC,GAC/C,CAAE,GAAGnB,SAAS,EAAEM,EAAE,CACtB,CAAC;IACF;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|