@wordpress/dataviews 4.8.0 → 4.9.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 +7 -2
- package/README.md +206 -17
- package/build/components/dataform/index.js +20 -8
- package/build/components/dataform/index.js.map +1 -1
- package/build/components/dataform-context/index.js +33 -0
- package/build/components/dataform-context/index.js.map +1 -0
- package/build/components/dataviews/index.js +3 -7
- 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-filters/index.js +49 -31
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +46 -20
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +1 -3
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +4 -15
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataforms-layouts/data-form-layout.js +59 -0
- package/build/dataforms-layouts/data-form-layout.js.map +1 -0
- package/build/dataforms-layouts/index.js +4 -4
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/is-combined-field.js +14 -0
- package/build/dataforms-layouts/is-combined-field.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +157 -72
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +85 -19
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +9 -9
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/{density-picker.js → preview-size-picker.js} +40 -24
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -0
- package/build/dataviews-layouts/index.js +6 -2
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +3 -2
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/density-picker.js +51 -0
- package/build/dataviews-layouts/table/density-picker.js.map +1 -0
- package/build/dataviews-layouts/table/index.js +4 -1
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/normalize-fields.js +0 -21
- package/build/normalize-fields.js.map +1 -1
- package/build/normalize-form-fields.js +36 -0
- package/build/normalize-form-fields.js.map +1 -0
- package/build/types.js.map +1 -1
- package/build/validation.js.map +1 -1
- package/build-module/components/dataform/index.js +20 -8
- package/build-module/components/dataform/index.js.map +1 -1
- package/build-module/components/dataform-context/index.js +25 -0
- package/build-module/components/dataform-context/index.js.map +1 -0
- package/build-module/components/dataviews/index.js +4 -8
- 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-filters/index.js +50 -32
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +46 -20
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +1 -3
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +5 -16
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js +52 -0
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -0
- package/build-module/dataforms-layouts/index.js +7 -7
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/is-combined-field.js +8 -0
- package/build-module/dataforms-layouts/is-combined-field.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +157 -71
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +87 -20
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +9 -9
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/{density-picker.js → preview-size-picker.js} +38 -24
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -0
- package/build-module/dataviews-layouts/index.js +6 -2
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +3 -2
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/density-picker.js +43 -0
- package/build-module/dataviews-layouts/table/density-picker.js.map +1 -0
- package/build-module/dataviews-layouts/table/index.js +4 -1
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/normalize-fields.js +0 -20
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/normalize-form-fields.js +30 -0
- package/build-module/normalize-form-fields.js.map +1 -0
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +54 -13
- package/build-style/style.css +54 -13
- package/build-types/components/dataform/index.d.ts +1 -1
- package/build-types/components/dataform/index.d.ts.map +1 -1
- package/build-types/components/dataform/stories/index.story.d.ts +18 -7
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataform-context/index.d.ts +13 -0
- package/build-types/components/dataform-context/index.d.ts.map +1 -0
- 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.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +0 -1
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/index.d.ts +1 -1
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts +1 -3
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts +16 -0
- package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -0
- package/build-types/dataforms-layouts/index.d.ts +3 -3
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/is-combined-field.d.ts +6 -0
- package/build-types/dataforms-layouts/is-combined-field.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts +5 -2
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/regular/index.d.ts +5 -2
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +3 -0
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -0
- package/build-types/dataviews-layouts/index.d.ts +5 -0
- 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/density-picker.d.ts +2 -0
- package/build-types/dataviews-layouts/table/density-picker.d.ts.map +1 -0
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts +1 -9
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/normalize-form-fields.d.ts +12 -0
- package/build-types/normalize-form-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +31 -22
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/dataform/index.tsx +22 -5
- package/src/components/dataform/stories/index.story.tsx +88 -49
- package/src/components/dataform-context/index.tsx +30 -0
- package/src/components/dataviews/index.tsx +2 -6
- package/src/components/dataviews/stories/fixtures.tsx +1 -0
- package/src/components/dataviews/stories/index.story.tsx +16 -3
- package/src/components/dataviews-context/index.ts +0 -2
- package/src/components/dataviews-filters/index.tsx +73 -38
- package/src/components/dataviews-item-actions/index.tsx +73 -25
- package/src/components/dataviews-layout/index.tsx +0 -2
- package/src/components/dataviews-view-config/index.tsx +7 -23
- package/src/dataforms-layouts/data-form-layout.tsx +87 -0
- package/src/dataforms-layouts/index.tsx +7 -7
- package/src/dataforms-layouts/is-combined-field.ts +10 -0
- package/src/dataforms-layouts/panel/index.tsx +192 -101
- package/src/dataforms-layouts/panel/style.scss +4 -0
- package/src/dataforms-layouts/regular/index.tsx +101 -37
- package/src/dataforms-layouts/regular/style.scss +30 -0
- package/src/dataviews-layouts/grid/index.tsx +10 -8
- package/src/dataviews-layouts/grid/{density-picker.tsx → preview-size-picker.tsx} +39 -26
- package/src/dataviews-layouts/grid/style.scss +3 -1
- package/src/dataviews-layouts/index.ts +4 -0
- package/src/dataviews-layouts/list/index.tsx +31 -27
- package/src/dataviews-layouts/table/density-picker.tsx +57 -0
- package/src/dataviews-layouts/table/index.tsx +12 -2
- package/src/dataviews-layouts/table/style.scss +32 -0
- package/src/normalize-fields.ts +1 -33
- package/src/normalize-form-fields.ts +42 -0
- package/src/style.scss +1 -1
- package/src/types.ts +36 -21
- package/src/validation.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/dataform-combined-edit/index.js +0 -73
- package/build/components/dataform-combined-edit/index.js.map +0 -1
- package/build/dataforms-layouts/get-visible-fields.js +0 -21
- package/build/dataforms-layouts/get-visible-fields.js.map +0 -1
- package/build/dataviews-layouts/grid/density-picker.js.map +0 -1
- package/build-module/components/dataform-combined-edit/index.js +0 -66
- package/build-module/components/dataform-combined-edit/index.js.map +0 -1
- package/build-module/dataforms-layouts/get-visible-fields.js +0 -14
- package/build-module/dataforms-layouts/get-visible-fields.js.map +0 -1
- package/build-module/dataviews-layouts/grid/density-picker.js.map +0 -1
- package/build-types/components/dataform-combined-edit/index.d.ts +0 -7
- package/build-types/components/dataform-combined-edit/index.d.ts.map +0 -1
- package/build-types/dataforms-layouts/get-visible-fields.d.ts +0 -3
- package/build-types/dataforms-layouts/get-visible-fields.d.ts.map +0 -1
- package/build-types/dataviews-layouts/grid/density-picker.d.ts +0 -5
- package/build-types/dataviews-layouts/grid/density-picker.d.ts.map +0 -1
- package/src/components/dataform-combined-edit/index.tsx +0 -69
- package/src/components/dataform-combined-edit/style.scss +0 -16
- package/src/dataforms-layouts/get-visible-fields.ts +0 -29
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 4.9.0 (2024-11-27)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Fix focus loss when removing all filters or resetting ([#67003](https://github.com/WordPress/gutenberg/pull/67003)).
|
|
10
|
+
|
|
5
11
|
## 4.8.0 (2024-11-16)
|
|
6
12
|
|
|
7
13
|
## 4.7.0 (2024-10-30)
|
|
@@ -25,8 +31,7 @@
|
|
|
25
31
|
## Internal
|
|
26
32
|
|
|
27
33
|
- The "move left/move right" controls in the table layout (popup displayed on cliking header) are always visible. ([#64646](https://github.com/WordPress/gutenberg/pull/64646)). Before this, its visibility depending on filters, enableSorting, and enableHiding.
|
|
28
|
-
-
|
|
29
|
-
|
|
34
|
+
- Filters no longer display the elements' description. ([#64674](https://github.com/WordPress/gutenberg/pull/64674))
|
|
30
35
|
|
|
31
36
|
## Enhancements
|
|
32
37
|
|
package/README.md
CHANGED
|
@@ -293,23 +293,54 @@ function MyCustomPageTable() {
|
|
|
293
293
|
|
|
294
294
|
#### `actions`: `Object[]`
|
|
295
295
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
296
|
+
A list of actions that can be performed on the dataset. See "Actions API" for more details.
|
|
297
|
+
|
|
298
|
+
Example:
|
|
299
|
+
|
|
300
|
+
```js
|
|
301
|
+
const actions = [
|
|
302
|
+
{
|
|
303
|
+
id: 'view',
|
|
304
|
+
label: 'View',
|
|
305
|
+
isPrimary: true,
|
|
306
|
+
icon: <Icon icon={ view } />,
|
|
307
|
+
isEligible: ( item ) => item.status === 'published'
|
|
308
|
+
callback: ( items ) => {
|
|
309
|
+
console.log( 'Viewing item:', items[0] );
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
id: 'edit',
|
|
314
|
+
label: 'Edit',
|
|
315
|
+
icon: <Icon icon={ edit } />,
|
|
316
|
+
supportsBulk: true,
|
|
317
|
+
callback: ( items ) => {
|
|
318
|
+
console.log( 'Editing items:', items );
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
id: 'delete',
|
|
323
|
+
label: 'Delete',
|
|
324
|
+
isDestructive: true,
|
|
325
|
+
supportsBulk: true,
|
|
326
|
+
RenderModal: ( { items, closeModal, onActionPerformed } ) => (
|
|
327
|
+
<div>
|
|
328
|
+
<p>Are you sure you want to delete { items.length } item(s)?</p>
|
|
329
|
+
<Button
|
|
330
|
+
variant="primary"
|
|
331
|
+
onClick={() => {
|
|
332
|
+
console.log( 'Deleting items:', items );
|
|
333
|
+
onActionPerformed();
|
|
334
|
+
closeModal();
|
|
335
|
+
}}
|
|
336
|
+
>
|
|
337
|
+
Confirm Delete
|
|
338
|
+
</Button>
|
|
339
|
+
</div>
|
|
340
|
+
)
|
|
341
|
+
}
|
|
342
|
+
];
|
|
343
|
+
```
|
|
313
344
|
|
|
314
345
|
#### `paginationInfo`: `Object`
|
|
315
346
|
|
|
@@ -502,6 +533,164 @@ Parameters:
|
|
|
502
533
|
|
|
503
534
|
Returns a boolean indicating if the item is valid (true) or not (false).
|
|
504
535
|
|
|
536
|
+
## Actions API
|
|
537
|
+
|
|
538
|
+
### `id`
|
|
539
|
+
|
|
540
|
+
The unique identifier of the action.
|
|
541
|
+
|
|
542
|
+
- Type: `string`
|
|
543
|
+
- Required
|
|
544
|
+
- Example: `move-to-trash`
|
|
545
|
+
|
|
546
|
+
### `label`
|
|
547
|
+
|
|
548
|
+
The user facing description of the action.
|
|
549
|
+
|
|
550
|
+
- Type: `string | function`
|
|
551
|
+
- Required
|
|
552
|
+
- Example:
|
|
553
|
+
|
|
554
|
+
```js
|
|
555
|
+
{
|
|
556
|
+
label: Move to Trash
|
|
557
|
+
}
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
or
|
|
561
|
+
|
|
562
|
+
```js
|
|
563
|
+
{
|
|
564
|
+
label: ( items ) => items.length > 1 ? 'Delete items' : 'Delete item'
|
|
565
|
+
}
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### `isPrimary`
|
|
569
|
+
|
|
570
|
+
Whether the action should be displayed inline (primary) or only displayed in the "More actions" menu (secondary).
|
|
571
|
+
|
|
572
|
+
- Type: `boolean`
|
|
573
|
+
- Optional
|
|
574
|
+
|
|
575
|
+
### `icon`
|
|
576
|
+
|
|
577
|
+
Icon to show for primary actions.
|
|
578
|
+
|
|
579
|
+
- Type: SVG element
|
|
580
|
+
- Required for primary actions, optional for secondary actions.
|
|
581
|
+
|
|
582
|
+
### `isEligible`
|
|
583
|
+
|
|
584
|
+
Function that determines whether the action can be performed for a given record.
|
|
585
|
+
|
|
586
|
+
- Type: `function`
|
|
587
|
+
- Optional. If not present, action is considered eligible for all items.
|
|
588
|
+
- Example:
|
|
589
|
+
|
|
590
|
+
```js
|
|
591
|
+
{
|
|
592
|
+
isEligible: ( item ) => item.status === 'published'
|
|
593
|
+
}
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
### `isDestructive`
|
|
597
|
+
|
|
598
|
+
Whether the action can delete data, in which case the UI communicates it via a red color.
|
|
599
|
+
|
|
600
|
+
- Type: `boolean`
|
|
601
|
+
- Optional
|
|
602
|
+
|
|
603
|
+
### `supportsBulk`
|
|
604
|
+
|
|
605
|
+
Whether the action can operate over multiple items at once.
|
|
606
|
+
|
|
607
|
+
- Type: `boolean`
|
|
608
|
+
- Optional
|
|
609
|
+
- Default: `false`
|
|
610
|
+
|
|
611
|
+
### `disabled`
|
|
612
|
+
|
|
613
|
+
Whether the action is disabled.
|
|
614
|
+
|
|
615
|
+
- Type: `boolean`
|
|
616
|
+
- Optional
|
|
617
|
+
- Default: `false`
|
|
618
|
+
|
|
619
|
+
### `context`
|
|
620
|
+
|
|
621
|
+
Where this action would be visible.
|
|
622
|
+
|
|
623
|
+
- Type: `string`
|
|
624
|
+
- Optional
|
|
625
|
+
- One of: `list`, `single`
|
|
626
|
+
|
|
627
|
+
### `callback`
|
|
628
|
+
|
|
629
|
+
Function that performs the required action.
|
|
630
|
+
|
|
631
|
+
- Type: `function`
|
|
632
|
+
- Either `callback` or `RenderModal` must be provided. If `RenderModal` is provided, `callback` will be ignored
|
|
633
|
+
- Example:
|
|
634
|
+
|
|
635
|
+
```js
|
|
636
|
+
{
|
|
637
|
+
callback: ( items, { onActionPerformed } ) => {
|
|
638
|
+
// Perform action.
|
|
639
|
+
onActionPerformed?.( items );
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
### `RenderModal`
|
|
645
|
+
|
|
646
|
+
Component to render UI in a modal for the action.
|
|
647
|
+
|
|
648
|
+
- Type: `ReactElement`
|
|
649
|
+
- Either `callback` or `RenderModal` must be provided. If `RenderModal` is provided, `callback` will be ignored.
|
|
650
|
+
- Example:
|
|
651
|
+
|
|
652
|
+
```jsx
|
|
653
|
+
{
|
|
654
|
+
RenderModal: ( { items, closeModal, onActionPerformed } ) => {
|
|
655
|
+
const onSubmit = ( event ) => {
|
|
656
|
+
event.preventDefault();
|
|
657
|
+
// Perform action.
|
|
658
|
+
closeModal?.();
|
|
659
|
+
onActionPerformed?.( items );
|
|
660
|
+
};
|
|
661
|
+
return (
|
|
662
|
+
<form onSubmit={ onSubmit }>
|
|
663
|
+
<p>Modal UI</p>
|
|
664
|
+
<HStack>
|
|
665
|
+
<Button variant="tertiary" onClick={ closeModal }>
|
|
666
|
+
Cancel
|
|
667
|
+
</Button>
|
|
668
|
+
<Button variant="primary" type="submit">
|
|
669
|
+
Submit
|
|
670
|
+
</Button>
|
|
671
|
+
</HStack>
|
|
672
|
+
</form>
|
|
673
|
+
);
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### `hideModalHeader`
|
|
679
|
+
|
|
680
|
+
Controls visibility of the modal's header when using `RenderModal`.
|
|
681
|
+
|
|
682
|
+
- Type: `boolean`
|
|
683
|
+
- Optional
|
|
684
|
+
- When false and using `RenderModal`, the action's label is used in modal header
|
|
685
|
+
|
|
686
|
+
### `modalHeader`
|
|
687
|
+
|
|
688
|
+
The header text to show in the modal.
|
|
689
|
+
|
|
690
|
+
- Type: `string`
|
|
691
|
+
- Optional
|
|
692
|
+
|
|
693
|
+
|
|
505
694
|
## Fields API
|
|
506
695
|
|
|
507
696
|
### `id`
|
|
@@ -4,24 +4,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = DataForm;
|
|
7
|
-
var
|
|
7
|
+
var _element = require("@wordpress/element");
|
|
8
|
+
var _dataformContext = require("../dataform-context");
|
|
9
|
+
var _normalizeFields = require("../../normalize-fields");
|
|
10
|
+
var _dataFormLayout = require("../../dataforms-layouts/data-form-layout");
|
|
8
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* WordPress dependencies
|
|
14
|
+
*/
|
|
15
|
+
|
|
9
16
|
/**
|
|
10
17
|
* Internal dependencies
|
|
11
18
|
*/
|
|
12
19
|
|
|
13
20
|
function DataForm({
|
|
21
|
+
data,
|
|
14
22
|
form,
|
|
15
|
-
|
|
23
|
+
fields,
|
|
24
|
+
onChange
|
|
16
25
|
}) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (!layout) {
|
|
26
|
+
const normalizedFields = (0, _element.useMemo)(() => (0, _normalizeFields.normalizeFields)(fields), [fields]);
|
|
27
|
+
if (!form.fields) {
|
|
20
28
|
return null;
|
|
21
29
|
}
|
|
22
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataformContext.DataFormProvider, {
|
|
31
|
+
fields: normalizedFields,
|
|
32
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataFormLayout.DataFormLayout, {
|
|
33
|
+
data: data,
|
|
34
|
+
form: form,
|
|
35
|
+
onChange: onChange
|
|
36
|
+
})
|
|
25
37
|
});
|
|
26
38
|
}
|
|
27
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_element","require","_dataformContext","_normalizeFields","_dataFormLayout","_jsxRuntime","DataForm","data","form","fields","onChange","normalizedFields","useMemo","normalizeFields","jsx","DataFormProvider","children","DataFormLayout"],"sources":["@wordpress/dataviews/src/components/dataform/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormProps } from '../../types';\nimport { DataFormProvider } from '../dataform-context';\nimport { normalizeFields } from '../../normalize-fields';\nimport { DataFormLayout } from '../../dataforms-layouts/data-form-layout';\n\nexport default function DataForm< Item >( {\n\tdata,\n\tform,\n\tfields,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst normalizedFields = useMemo(\n\t\t() => normalizeFields( fields ),\n\t\t[ fields ]\n\t);\n\n\tif ( ! form.fields ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataFormProvider fields={ normalizedFields }>\n\t\t\t<DataFormLayout data={ data } form={ form } onChange={ onChange } />\n\t\t</DataFormProvider>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAA0E,IAAAI,WAAA,GAAAJ,OAAA;AAX1E;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,QAAQA,CAAU;EACzCC,IAAI;EACJC,IAAI;EACJC,MAAM;EACNC;AACsB,CAAC,EAAG;EAC1B,MAAMC,gBAAgB,GAAG,IAAAC,gBAAO,EAC/B,MAAM,IAAAC,gCAAe,EAAEJ,MAAO,CAAC,EAC/B,CAAEA,MAAM,CACT,CAAC;EAED,IAAK,CAAED,IAAI,CAACC,MAAM,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAJ,WAAA,CAAAS,GAAA,EAACZ,gBAAA,CAAAa,gBAAgB;IAACN,MAAM,EAAGE,gBAAkB;IAAAK,QAAA,eAC5C,IAAAX,WAAA,CAAAS,GAAA,EAACV,eAAA,CAAAa,cAAc;MAACV,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACE,QAAQ,EAAGA;IAAU,CAAE;EAAC,CACnD,CAAC;AAErB","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DataFormProvider = DataFormProvider;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const DataFormContext = (0, _element.createContext)({
|
|
19
|
+
fields: []
|
|
20
|
+
});
|
|
21
|
+
function DataFormProvider({
|
|
22
|
+
fields,
|
|
23
|
+
children
|
|
24
|
+
}) {
|
|
25
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(DataFormContext.Provider, {
|
|
26
|
+
value: {
|
|
27
|
+
fields
|
|
28
|
+
},
|
|
29
|
+
children: children
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
var _default = exports.default = DataFormContext;
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_jsxRuntime","DataFormContext","createContext","fields","DataFormProvider","children","jsx","Provider","value","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataform-context/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\n\ntype DataFormContextType< Item > = {\n\tfields: NormalizedField< Item >[];\n};\n\nconst DataFormContext = createContext< DataFormContextType< any > >( {\n\tfields: [],\n} );\n\nexport function DataFormProvider< Item >( {\n\tfields,\n\tchildren,\n}: React.PropsWithChildren< { fields: NormalizedField< Item >[] } > ) {\n\treturn (\n\t\t<DataFormContext.Provider value={ { fields } }>\n\t\t\t{ children }\n\t\t</DataFormContext.Provider>\n\t);\n}\n\nexport default DataFormContext;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAAmD,IAAAC,WAAA,GAAAD,OAAA;AAHnD;AACA;AACA;;AAGA;AACA;AACA;;AAOA,MAAME,eAAe,GAAG,IAAAC,sBAAa,EAAgC;EACpEC,MAAM,EAAE;AACT,CAAE,CAAC;AAEI,SAASC,gBAAgBA,CAAU;EACzCD,MAAM;EACNE;AACiE,CAAC,EAAG;EACrE,oBACC,IAAAL,WAAA,CAAAM,GAAA,EAACL,eAAe,CAACM,QAAQ;IAACC,KAAK,EAAG;MAAEL;IAAO,CAAG;IAAAE,QAAA,EAC3CA;EAAQ,CACe,CAAC;AAE7B;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcV,eAAe","ignoreList":[]}
|
|
@@ -52,7 +52,6 @@ function DataViews({
|
|
|
52
52
|
header
|
|
53
53
|
}) {
|
|
54
54
|
const [selectionState, setSelectionState] = (0, _element.useState)([]);
|
|
55
|
-
const [density, setDensity] = (0, _element.useState)(0);
|
|
56
55
|
const isUncontrolled = selectionProperty === undefined || onChangeSelection === undefined;
|
|
57
56
|
const selection = isUncontrolled ? selectionState : selectionProperty;
|
|
58
57
|
const [openedFilter, setOpenedFilter] = (0, _element.useState)(null);
|
|
@@ -86,8 +85,7 @@ function DataViews({
|
|
|
86
85
|
setOpenedFilter,
|
|
87
86
|
getItemId,
|
|
88
87
|
isItemClickable,
|
|
89
|
-
onClickItem
|
|
90
|
-
density
|
|
88
|
+
onClickItem
|
|
91
89
|
},
|
|
92
90
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
93
91
|
className: "dataviews-wrapper",
|
|
@@ -102,7 +100,7 @@ function DataViews({
|
|
|
102
100
|
className: "dataviews__search",
|
|
103
101
|
children: [search && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsSearch.default, {
|
|
104
102
|
label: searchLabel
|
|
105
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.
|
|
103
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.FiltersToggle, {
|
|
106
104
|
filters: filters,
|
|
107
105
|
view: view,
|
|
108
106
|
onChangeView: onChangeView,
|
|
@@ -117,9 +115,7 @@ function DataViews({
|
|
|
117
115
|
flexShrink: 0
|
|
118
116
|
},
|
|
119
117
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsViewConfig.default, {
|
|
120
|
-
defaultLayouts: defaultLayouts
|
|
121
|
-
density: density,
|
|
122
|
-
setDensity: setDensity
|
|
118
|
+
defaultLayouts: defaultLayouts
|
|
123
119
|
}), header]
|
|
124
120
|
})]
|
|
125
121
|
}), isShowingFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsLayout.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFooter.default, {})]
|
|
@@ -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","density","setDensity","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","FilterVisibilityToggle","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\tFilterVisibilityToggle,\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 [ density, setDensity ] = useState< number >( 0 );\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\tdensity,\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<FilterVisibilityToggle\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\tdensity={ density }\n\t\t\t\t\t\t\tsetDensity={ setDensity }\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","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":[]}
|
|
@@ -31,8 +31,7 @@ const DataViewsContext = (0, _element.createContext)({
|
|
|
31
31
|
openedFilter: null,
|
|
32
32
|
getItemId: item => item.id,
|
|
33
33
|
onClickItem: () => {},
|
|
34
|
-
isItemClickable: () => false
|
|
35
|
-
density: 0
|
|
34
|
+
isItemClickable: () => false
|
|
36
35
|
});
|
|
37
36
|
var _default = exports.default = DataViewsContext;
|
|
38
37
|
//# 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","onClickItem","isItemClickable","
|
|
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","onClickItem","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\tonClickItem: () => {},\n\tisItemClickable: () => false,\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,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,eAAe,EAAEA,CAAA,KAAM;AACxB,CAAE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWtB,gBAAgB","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.FiltersToggle = FiltersToggle;
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
exports.useFilters = useFilters;
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
@@ -64,7 +64,7 @@ function useFilters(fields, view) {
|
|
|
64
64
|
return filters;
|
|
65
65
|
}, [fields, view]);
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function FiltersToggle({
|
|
68
68
|
filters,
|
|
69
69
|
view,
|
|
70
70
|
onChangeView,
|
|
@@ -72,6 +72,7 @@ function FilterVisibilityToggle({
|
|
|
72
72
|
isShowingFilter,
|
|
73
73
|
setIsShowingFilter
|
|
74
74
|
}) {
|
|
75
|
+
const buttonRef = (0, _element.useRef)(null);
|
|
75
76
|
const onChangeViewWithFilterVisibility = (0, _element.useCallback)(_view => {
|
|
76
77
|
onChangeView(_view);
|
|
77
78
|
setIsShowingFilter(true);
|
|
@@ -81,40 +82,57 @@ function FilterVisibilityToggle({
|
|
|
81
82
|
if (filters.length === 0) {
|
|
82
83
|
return null;
|
|
83
84
|
}
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
const addFilterButtonProps = {
|
|
86
|
+
label: (0, _i18n.__)('Add filter'),
|
|
87
|
+
'aria-expanded': false,
|
|
88
|
+
isPressed: false
|
|
89
|
+
};
|
|
90
|
+
const toggleFiltersButtonProps = {
|
|
91
|
+
label: (0, _i18n._x)('Filter', 'verb'),
|
|
92
|
+
'aria-expanded': isShowingFilter,
|
|
93
|
+
isPressed: isShowingFilter,
|
|
94
|
+
onClick: () => {
|
|
95
|
+
if (!isShowingFilter) {
|
|
96
|
+
setOpenedFilter(null);
|
|
97
|
+
}
|
|
98
|
+
setIsShowingFilter(!isShowingFilter);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const buttonComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
102
|
+
ref: buttonRef,
|
|
103
|
+
className: "dataviews-filters__visibility-toggle",
|
|
104
|
+
size: "compact",
|
|
105
|
+
icon: _icons.funnel,
|
|
106
|
+
...(hasVisibleFilters ? toggleFiltersButtonProps : addFilterButtonProps)
|
|
107
|
+
});
|
|
108
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
109
|
+
className: "dataviews-filters__container-visibility-toggle",
|
|
110
|
+
children: !hasVisibleFilters ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_addFilter.AddFilterMenu, {
|
|
86
111
|
filters: filters,
|
|
87
112
|
view: view,
|
|
88
113
|
onChangeView: onChangeViewWithFilterVisibility,
|
|
89
114
|
setOpenedFilter: setOpenedFilter,
|
|
90
|
-
trigger:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
setOpenedFilter(null);
|
|
110
|
-
}
|
|
111
|
-
setIsShowingFilter(!isShowingFilter);
|
|
112
|
-
},
|
|
113
|
-
isPressed: isShowingFilter,
|
|
114
|
-
"aria-expanded": isShowingFilter
|
|
115
|
-
}), hasVisibleFilters && !!view.filters?.length && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
115
|
+
trigger: buttonComponent
|
|
116
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(FilterVisibilityToggle, {
|
|
117
|
+
buttonRef: buttonRef,
|
|
118
|
+
filtersCount: view.filters?.length,
|
|
119
|
+
children: buttonComponent
|
|
120
|
+
})
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function FilterVisibilityToggle({
|
|
124
|
+
buttonRef,
|
|
125
|
+
filtersCount,
|
|
126
|
+
children
|
|
127
|
+
}) {
|
|
128
|
+
// Focus the `add filter` button when unmounts.
|
|
129
|
+
(0, _element.useEffect)(() => () => {
|
|
130
|
+
buttonRef.current?.focus();
|
|
131
|
+
}, [buttonRef]);
|
|
132
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
133
|
+
children: [children, !!filtersCount && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
116
134
|
className: "dataviews-filters-toggle__count",
|
|
117
|
-
children:
|
|
135
|
+
children: filtersCount
|
|
118
136
|
})]
|
|
119
137
|
});
|
|
120
138
|
}
|