@wordpress/dataviews 9.0.1-next.6f42e1382.0 → 9.1.1-next.f56bd8138.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 +22 -2
- package/README.md +107 -11
- package/build/components/dataviews-filters/input-widget.js +48 -4
- package/build/components/dataviews-filters/input-widget.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +22 -3
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataform-controls/array.js +117 -29
- package/build/dataform-controls/array.js.map +1 -1
- package/build/dataform-controls/checkbox.js +31 -20
- package/build/dataform-controls/checkbox.js.map +1 -1
- package/build/dataform-controls/color.js +29 -24
- package/build/dataform-controls/color.js.map +1 -1
- package/build/dataform-controls/date.js +32 -24
- package/build/dataform-controls/date.js.map +1 -1
- package/build/dataform-controls/datetime.js +133 -19
- package/build/dataform-controls/datetime.js.map +1 -1
- package/build/dataform-controls/email.js +7 -1
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +23 -0
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +47 -34
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/radio.js +42 -9
- package/build/dataform-controls/radio.js.map +1 -1
- package/build/dataform-controls/relative-date-control.js +6 -10
- package/build/dataform-controls/relative-date-control.js.map +1 -1
- package/build/dataform-controls/select.js +41 -10
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/telephone.js +7 -1
- package/build/dataform-controls/telephone.js.map +1 -1
- package/build/dataform-controls/text.js +14 -2
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/textarea.js +33 -20
- package/build/dataform-controls/textarea.js.map +1 -1
- package/build/dataform-controls/toggle-group.js +36 -6
- package/build/dataform-controls/toggle-group.js.map +1 -1
- package/build/dataform-controls/toggle.js +33 -22
- package/build/dataform-controls/toggle.js.map +1 -1
- package/build/dataform-controls/url.js +7 -1
- package/build/dataform-controls/url.js.map +1 -1
- package/build/dataform-controls/utils/validated-input.js +34 -32
- package/build/dataform-controls/utils/validated-input.js.map +1 -1
- package/build/dataforms-layouts/panel/dropdown.js +10 -14
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -1
- package/build/dataforms-layouts/panel/index.js +24 -11
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/panel/modal.js +22 -27
- package/build/dataforms-layouts/panel/modal.js.map +1 -1
- package/build/dataforms-layouts/panel/summary-button.js +67 -0
- package/build/dataforms-layouts/panel/summary-button.js.map +1 -0
- package/build/field-types/array.js +0 -6
- package/build/field-types/array.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/normalize-fields.js +17 -0
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +18 -1
- package/build/validation.js.map +1 -1
- package/build-module/components/dataviews-filters/input-widget.js +48 -4
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +22 -3
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataform-controls/array.js +120 -32
- package/build-module/dataform-controls/array.js.map +1 -1
- package/build-module/dataform-controls/checkbox.js +31 -21
- package/build-module/dataform-controls/checkbox.js.map +1 -1
- package/build-module/dataform-controls/color.js +28 -24
- package/build-module/dataform-controls/color.js.map +1 -1
- package/build-module/dataform-controls/date.js +32 -24
- package/build-module/dataform-controls/date.js.map +1 -1
- package/build-module/dataform-controls/datetime.js +135 -21
- package/build-module/dataform-controls/datetime.js.map +1 -1
- package/build-module/dataform-controls/email.js +7 -1
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +23 -0
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +46 -34
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/radio.js +44 -11
- package/build-module/dataform-controls/radio.js.map +1 -1
- package/build-module/dataform-controls/relative-date-control.js +6 -10
- package/build-module/dataform-controls/relative-date-control.js.map +1 -1
- package/build-module/dataform-controls/select.js +43 -12
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/telephone.js +7 -1
- package/build-module/dataform-controls/telephone.js.map +1 -1
- package/build-module/dataform-controls/text.js +14 -2
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/textarea.js +32 -20
- package/build-module/dataform-controls/textarea.js.map +1 -1
- package/build-module/dataform-controls/toggle-group.js +38 -8
- package/build-module/dataform-controls/toggle-group.js.map +1 -1
- package/build-module/dataform-controls/toggle.js +33 -23
- package/build-module/dataform-controls/toggle.js.map +1 -1
- package/build-module/dataform-controls/url.js +7 -1
- package/build-module/dataform-controls/url.js.map +1 -1
- package/build-module/dataform-controls/utils/validated-input.js +34 -33
- package/build-module/dataform-controls/utils/validated-input.js.map +1 -1
- package/build-module/dataforms-layouts/panel/dropdown.js +10 -15
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -1
- package/build-module/dataforms-layouts/panel/index.js +24 -11
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/modal.js +22 -28
- package/build-module/dataforms-layouts/panel/modal.js.map +1 -1
- package/build-module/dataforms-layouts/panel/summary-button.js +60 -0
- package/build-module/dataforms-layouts/panel/summary-button.js.map +1 -0
- package/build-module/field-types/array.js +0 -6
- package/build-module/field-types/array.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/normalize-fields.js +15 -0
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +18 -1
- package/build-module/validation.js.map +1 -1
- package/build-types/components/dataform/stories/index.story.d.ts +3 -0
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts +4 -2
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/dataform-controls/array.d.ts.map +1 -1
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
- package/build-types/dataform-controls/color.d.ts.map +1 -1
- package/build-types/dataform-controls/date.d.ts.map +1 -1
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/radio.d.ts.map +1 -1
- package/build-types/dataform-controls/relative-date-control.d.ts +6 -5
- package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -1
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/telephone.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/textarea.d.ts +1 -1
- package/build-types/dataform-controls/textarea.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle.d.ts.map +1 -1
- package/build-types/dataform-controls/url.d.ts.map +1 -1
- package/build-types/dataform-controls/utils/validated-input.d.ts +4 -4
- package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts +2 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts +2 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/summary-button.d.ts +15 -0
- package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +1 -0
- package/build-types/field-types/array.d.ts.map +1 -1
- package/build-types/field-types/stories/index.story.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -0
- package/build-types/index.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts +3 -0
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +68 -4
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/build-wp/index.js +2009 -1489
- package/package.json +16 -15
- package/src/components/dataform/stories/index.story.tsx +509 -8
- package/src/components/dataviews/stories/fixtures.tsx +99 -41
- package/src/components/dataviews/stories/index.story.tsx +1 -1
- package/src/components/dataviews-filters/input-widget.tsx +44 -5
- package/src/components/dataviews-picker/stories/index.story.tsx +1 -1
- package/src/components/dataviews-view-config/index.tsx +18 -3
- package/src/dataform-controls/array.tsx +139 -44
- package/src/dataform-controls/checkbox.tsx +41 -24
- package/src/dataform-controls/color.tsx +33 -24
- package/src/dataform-controls/date.tsx +47 -21
- package/src/dataform-controls/datetime.tsx +171 -23
- package/src/dataform-controls/email.tsx +9 -1
- package/src/dataform-controls/index.tsx +26 -0
- package/src/dataform-controls/integer.tsx +82 -49
- package/src/dataform-controls/radio.tsx +53 -11
- package/src/dataform-controls/relative-date-control.tsx +11 -10
- package/src/dataform-controls/select.tsx +53 -10
- package/src/dataform-controls/telephone.tsx +9 -1
- package/src/dataform-controls/text.tsx +18 -1
- package/src/dataform-controls/textarea.tsx +38 -24
- package/src/dataform-controls/toggle-group.tsx +50 -10
- package/src/dataform-controls/toggle.tsx +41 -24
- package/src/dataform-controls/url.tsx +9 -1
- package/src/dataform-controls/utils/validated-input.tsx +50 -50
- package/src/dataforms-layouts/panel/dropdown.tsx +12 -23
- package/src/dataforms-layouts/panel/index.tsx +39 -16
- package/src/dataforms-layouts/panel/modal.tsx +24 -30
- package/src/dataforms-layouts/panel/summary-button.tsx +92 -0
- package/src/field-types/array.tsx +0 -8
- package/src/field-types/stories/index.story.tsx +89 -1
- package/src/index.ts +1 -0
- package/src/normalize-fields.ts +18 -0
- package/src/test/filter-and-sort-data-view.js +148 -138
- package/src/test/normalize-fields.ts +114 -0
- package/src/test/validation.ts +192 -0
- package/src/types.ts +75 -4
- package/src/validation.ts +30 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
-
## 9.
|
|
5
|
+
## 9.1.0-next.0 (2025-09-24)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- Introduce a new `DataViewsPicker` component. [#70971](https://github.com/WordPress/gutenberg/pull/70971) and [#71836](https://github.com/WordPress/gutenberg/pull/71836).
|
|
10
|
+
- DataForm: Add support for elements validation in array fields [#71194](https://github.com/WordPress/gutenberg/pull/71194)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- DataViews: keep non-hideable fields out of the hidden-fields list when they’re already invisible. [#71729](https://github.com/WordPress/gutenberg/pull/71729/)
|
|
15
|
+
|
|
16
|
+
### Enhancements
|
|
17
|
+
|
|
18
|
+
- DataViews: Require at least one field to be visible. ([#71625](https://github.com/WordPress/gutenberg/pull/71625))
|
|
19
|
+
|
|
20
|
+
## 9.0.0 (2025-09-17)
|
|
6
21
|
|
|
7
22
|
### Breaking changes
|
|
8
23
|
|
|
@@ -11,13 +26,18 @@
|
|
|
11
26
|
|
|
12
27
|
### Features
|
|
13
28
|
|
|
14
|
-
-
|
|
29
|
+
- Field API: introduce `setValue` to fix DataViews filters and DataForm panel layout (modal) when working with nested data. [#71604](https://github.com/WordPress/gutenberg/pull/71604)
|
|
15
30
|
- Dataform: Add new `telephone` field type and field control. [#71498](https://github.com/WordPress/gutenberg/pull/71498)
|
|
16
31
|
- DataForm: introduce a new `row` layout, check the README for details. [#71124](https://github.com/WordPress/gutenberg/pull/71124)
|
|
17
32
|
- Dataform: Add new `url` field type and field control. [#71518](https://github.com/WordPress/gutenberg/pull/71518)
|
|
18
33
|
- Dataform: Add new `password` field type and field control. [#71545](https://github.com/WordPress/gutenberg/pull/71545)
|
|
19
34
|
- DataForm: Add a textarea control for use with the `text` field type ([#71495](https://github.com/WordPress/gutenberg/pull/71495))
|
|
20
35
|
- DataViews: support groupBy in the list layout. [#71548](https://github.com/WordPress/gutenberg/pull/71548)
|
|
36
|
+
- DataForm: support validation in select control [#71665](https://github.com/WordPress/gutenberg/pull/71665)
|
|
37
|
+
- DataForm: support validation in toggleGroup control. ([#71666](https://github.com/WordPress/gutenberg/pull/71666))
|
|
38
|
+
- DataForm: Add object configuration support for Edit property with some options. ([#71582](https://github.com/WordPress/gutenberg/pull/71582))
|
|
39
|
+
- DataForm: Add summary field support for composed fields. ([#71614](https://github.com/WordPress/gutenberg/pull/71614))
|
|
40
|
+
- DataForm: update radio control to support `required` and `custom` validation. [#71664](https://github.com/WordPress/gutenberg/pull/71664)
|
|
21
41
|
|
|
22
42
|
### Bug Fixes
|
|
23
43
|
|
package/README.md
CHANGED
|
@@ -989,24 +989,119 @@ Example:
|
|
|
989
989
|
}
|
|
990
990
|
```
|
|
991
991
|
|
|
992
|
-
### `getValue`
|
|
992
|
+
### `getValue` and `setValue`
|
|
993
993
|
|
|
994
|
-
|
|
994
|
+
These functions control how field values are read from and written to your data structure.
|
|
995
995
|
|
|
996
|
-
-
|
|
996
|
+
Both functions are optional and automatically generated from the field's `id` when not provided. The `id` is treated as a dot-notation path (e.g., `"user.profile.name"` accesses `item.user.profile.name`).
|
|
997
|
+
|
|
998
|
+
#### `getValue`
|
|
999
|
+
|
|
1000
|
+
Function that extracts the field value from an item. This value is used to sort, filter, and display the field.
|
|
1001
|
+
|
|
1002
|
+
- Type: `function`.
|
|
997
1003
|
- Optional.
|
|
998
|
-
-
|
|
999
|
-
-
|
|
1000
|
-
|
|
1001
|
-
- Returns a value that represents the field.
|
|
1004
|
+
- Args:
|
|
1005
|
+
- `item`: the data item to be processed.
|
|
1006
|
+
- Returns the field's value.
|
|
1002
1007
|
|
|
1003
|
-
|
|
1008
|
+
#### `setValue`
|
|
1009
|
+
|
|
1010
|
+
Function that creates a partial item object with updated field values. This is used by DataForm for editing operations and determines the structure of data passed to the `onChange` callback.
|
|
1011
|
+
|
|
1012
|
+
- Type: `function`.
|
|
1013
|
+
- Optional.
|
|
1014
|
+
- Args:
|
|
1015
|
+
- `item`: the current item being edited.
|
|
1016
|
+
- `value`: the new value to be set for the field.
|
|
1017
|
+
- Returns a partial item object with the changes to be applied.
|
|
1018
|
+
|
|
1019
|
+
#### Simple field access
|
|
1020
|
+
|
|
1021
|
+
For basic field access, you only need to specify the field `id`. Both `getValue` and `setValue` are automatically generated:
|
|
1004
1022
|
|
|
1005
1023
|
```js
|
|
1024
|
+
// Data structure
|
|
1025
|
+
const item = {
|
|
1026
|
+
title: 'Hello World',
|
|
1027
|
+
author: 'John Doe'
|
|
1028
|
+
};
|
|
1029
|
+
|
|
1030
|
+
// Field definition
|
|
1006
1031
|
{
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
}
|
|
1032
|
+
id: 'title',
|
|
1033
|
+
label: 'Title'
|
|
1034
|
+
// getValue: automatically becomes ( { item } ) => item.title
|
|
1035
|
+
// setValue: automatically becomes ( { value } ) => ( { title: value } )
|
|
1036
|
+
}
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
#### Nested data access
|
|
1040
|
+
|
|
1041
|
+
Use dot notation in the field `id` to access nested properties:
|
|
1042
|
+
|
|
1043
|
+
```js
|
|
1044
|
+
// Data structure
|
|
1045
|
+
const item = {
|
|
1046
|
+
user: {
|
|
1047
|
+
profile: {
|
|
1048
|
+
name: 'John Doe',
|
|
1049
|
+
email: 'john@example.com'
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
};
|
|
1053
|
+
|
|
1054
|
+
// Field definition - using dot notation (automatic)
|
|
1055
|
+
{
|
|
1056
|
+
id: 'user.profile.name',
|
|
1057
|
+
label: 'User Name'
|
|
1058
|
+
// getValue: automatically becomes ( { item } ) => item.user.profile.name
|
|
1059
|
+
// setValue: automatically becomes ( { value } ) => ( { user: { profile: { name: value } } } )
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
// Alternative - using simple ID with custom functions
|
|
1063
|
+
{
|
|
1064
|
+
id: 'userName',
|
|
1065
|
+
label: 'User Name',
|
|
1066
|
+
getValue: ( { item } ) => item.user.profile.name,
|
|
1067
|
+
setValue: ( { value } ) => ( {
|
|
1068
|
+
user: {
|
|
1069
|
+
profile: { name: value }
|
|
1070
|
+
}
|
|
1071
|
+
} )
|
|
1072
|
+
}
|
|
1073
|
+
```
|
|
1074
|
+
|
|
1075
|
+
#### Custom data transformation
|
|
1076
|
+
|
|
1077
|
+
Provide custom `getValue` and `setValue` functions when you need to transform data between the storage format and display format:
|
|
1078
|
+
|
|
1079
|
+
```js
|
|
1080
|
+
// Data structure
|
|
1081
|
+
const item = {
|
|
1082
|
+
user: {
|
|
1083
|
+
preferences: {
|
|
1084
|
+
notifications: true
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
};
|
|
1088
|
+
|
|
1089
|
+
// Field definition - transform boolean to string options
|
|
1090
|
+
{
|
|
1091
|
+
id: 'notifications',
|
|
1092
|
+
label: 'Notifications',
|
|
1093
|
+
Edit: 'radio',
|
|
1094
|
+
elements: [
|
|
1095
|
+
{ label: 'Enabled', value: 'enabled' },
|
|
1096
|
+
{ label: 'Disabled', value: 'disabled' }
|
|
1097
|
+
],
|
|
1098
|
+
getValue: ( { item } ) =>
|
|
1099
|
+
item.user.preferences.notifications === true ? 'enabled' : 'disabled',
|
|
1100
|
+
setValue: ( { value } ) => ( {
|
|
1101
|
+
user: {
|
|
1102
|
+
preferences: { notifications: value === 'enabled' }
|
|
1103
|
+
}
|
|
1104
|
+
} )
|
|
1010
1105
|
}
|
|
1011
1106
|
```
|
|
1012
1107
|
|
|
@@ -1140,6 +1235,7 @@ Example:
|
|
|
1140
1235
|
Object that contains the validation rules for the field. If a rule is not met, the control will be marked as invalid and a message will be displayed.
|
|
1141
1236
|
|
|
1142
1237
|
- `required`: boolean indicating whether the field is required or not.
|
|
1238
|
+
- `elements`: boolean restricting selection to the provided list of elements only. Used with the `array` field type.
|
|
1143
1239
|
- `custom`: a function that validates a field's value. If the value is invalid, the function should return a string explaining why the value is invalid. Otherwise, the function must return null.
|
|
1144
1240
|
|
|
1145
1241
|
Example:
|
|
@@ -30,12 +30,54 @@ function InputWidget({
|
|
|
30
30
|
fields
|
|
31
31
|
}) {
|
|
32
32
|
const currentFilter = view.filters?.find(f => f.field === filter.field);
|
|
33
|
-
const field = fields.find(f => f.id === filter.field);
|
|
34
33
|
const currentValue = (0, _utils.getCurrentValue)(filter, currentFilter);
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* We are reusing the field.Edit component for filters. By doing so,
|
|
37
|
+
* we get for free a filter control specific to the field type
|
|
38
|
+
* and other aspects of the field API (Edit control configuration, etc.).
|
|
39
|
+
*
|
|
40
|
+
* This approach comes with an issue: the field.Edit controls work with getValue
|
|
41
|
+
* and setValue methods, which take an item (Item) as parameter. But, at this point,
|
|
42
|
+
* we don't have an item and we don't know how to create one, either.
|
|
43
|
+
*
|
|
44
|
+
* So, what we do is to prepare the data and the relevant field configuration
|
|
45
|
+
* as if Item was a plain object whose keys are the field ids:
|
|
46
|
+
*
|
|
47
|
+
* {
|
|
48
|
+
* [ fieldOne.id ]: value,
|
|
49
|
+
* [ fieldTwo.id ]: value,
|
|
50
|
+
* }
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
const field = (0, _element.useMemo)(() => {
|
|
54
|
+
const currentField = fields.find(f => f.id === filter.field);
|
|
55
|
+
if (currentField) {
|
|
56
|
+
return {
|
|
57
|
+
...currentField,
|
|
58
|
+
// Deactivate validation for filters.
|
|
59
|
+
isValid: {
|
|
60
|
+
required: false,
|
|
61
|
+
custom: () => null
|
|
62
|
+
},
|
|
63
|
+
// Configure getValue/setValue as if Item was a plain object.
|
|
64
|
+
getValue: ({
|
|
65
|
+
item
|
|
66
|
+
}) => item[currentField.id],
|
|
67
|
+
setValue: ({
|
|
68
|
+
value
|
|
69
|
+
}) => ({
|
|
70
|
+
[currentField.id]: value
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return currentField;
|
|
75
|
+
}, [fields, filter.field]);
|
|
35
76
|
const data = (0, _element.useMemo)(() => {
|
|
36
77
|
var _view$filters;
|
|
37
|
-
return ((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).reduce((acc,
|
|
38
|
-
|
|
78
|
+
return ((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).reduce((acc, activeFilter) => {
|
|
79
|
+
// We can now assume the field is stored as a Item prop.
|
|
80
|
+
acc[activeFilter.field] = activeFilter.value;
|
|
39
81
|
return acc;
|
|
40
82
|
}, {});
|
|
41
83
|
}, [view.filters]);
|
|
@@ -44,7 +86,9 @@ function InputWidget({
|
|
|
44
86
|
if (!field || !currentFilter) {
|
|
45
87
|
return;
|
|
46
88
|
}
|
|
47
|
-
const nextValue =
|
|
89
|
+
const nextValue = field.getValue({
|
|
90
|
+
item: updatedData
|
|
91
|
+
});
|
|
48
92
|
if ((0, _es.default)(nextValue, currentValue)) {
|
|
49
93
|
return;
|
|
50
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_es","_interopRequireDefault","require","_compose","_element","_components","_utils","_jsxRuntime","InputWidget","filter","view","onChangeView","fields","currentFilter","filters","find","f","field","id","
|
|
1
|
+
{"version":3,"names":["_es","_interopRequireDefault","require","_compose","_element","_components","_utils","_jsxRuntime","InputWidget","filter","view","onChangeView","fields","currentFilter","filters","find","f","field","currentValue","getCurrentValue","useMemo","currentField","id","isValid","required","custom","getValue","item","setValue","value","data","_view$filters","reduce","acc","activeFilter","handleChange","useEvent","updatedData","_view$filters2","nextValue","fastDeepEqual","map","_filter","operator","operators","undefined","Edit","jsx","Flex","className","gap","direction","children","hideLabelFromVision","onChange"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/input-widget.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useEvent } from '@wordpress/compose';\nimport { useMemo } from '@wordpress/element';\nimport { Flex } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { View, NormalizedFilter, NormalizedField } from '../../types';\nimport { getCurrentValue } from './utils';\n\ninterface UserInputWidgetProps {\n\tview: View;\n\tfilter: NormalizedFilter;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< any >[];\n}\n\nexport default function InputWidget( {\n\tfilter,\n\tview,\n\tonChangeView,\n\tfields,\n}: UserInputWidgetProps ) {\n\tconst currentFilter = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\n\t/*\n\t * We are reusing the field.Edit component for filters. By doing so,\n\t * we get for free a filter control specific to the field type\n\t * and other aspects of the field API (Edit control configuration, etc.).\n\t *\n\t * This approach comes with an issue: the field.Edit controls work with getValue\n\t * and setValue methods, which take an item (Item) as parameter. But, at this point,\n\t * we don't have an item and we don't know how to create one, either.\n\t *\n\t * So, what we do is to prepare the data and the relevant field configuration\n\t * as if Item was a plain object whose keys are the field ids:\n\t *\n\t * {\n\t * [ fieldOne.id ]: value,\n\t * [ fieldTwo.id ]: value,\n\t * }\n\t *\n\t */\n\tconst field = useMemo( () => {\n\t\tconst currentField = fields.find( ( f ) => f.id === filter.field );\n\t\tif ( currentField ) {\n\t\t\treturn {\n\t\t\t\t...currentField,\n\t\t\t\t// Deactivate validation for filters.\n\t\t\t\tisValid: {\n\t\t\t\t\trequired: false,\n\t\t\t\t\tcustom: () => null,\n\t\t\t\t},\n\t\t\t\t// Configure getValue/setValue as if Item was a plain object.\n\t\t\t\tgetValue: ( { item }: { item: any } ) =>\n\t\t\t\t\titem[ currentField.id ],\n\t\t\t\tsetValue: ( { value }: { value: any } ) => ( {\n\t\t\t\t\t[ currentField.id ]: value,\n\t\t\t\t} ),\n\t\t\t};\n\t\t}\n\t\treturn currentField;\n\t}, [ fields, filter.field ] );\n\n\tconst data = useMemo( () => {\n\t\treturn ( view.filters ?? [] ).reduce(\n\t\t\t( acc, activeFilter ) => {\n\t\t\t\t// We can now assume the field is stored as a Item prop.\n\t\t\t\tacc[ activeFilter.field ] = activeFilter.value;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{} as Record< string, any >\n\t\t);\n\t}, [ view.filters ] );\n\n\tconst handleChange = useEvent( ( updatedData: Record< string, any > ) => {\n\t\tif ( ! field || ! currentFilter ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextValue = field.getValue( { item: updatedData } );\n\t\tif ( fastDeepEqual( nextValue, currentValue ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChangeView( {\n\t\t\t...view,\n\t\t\tfilters: ( view.filters ?? [] ).map( ( _filter ) =>\n\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\tcurrentFilter.operator || filter.operators[ 0 ],\n\t\t\t\t\t\t\t// Consider empty strings as undefined:\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// - undefined as value means the filter is unset: the filter widget displays no value and the search returns all records\n\t\t\t\t\t\t\t// - empty string as value means \"search empty string\": returns only the records that have an empty string as value\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// In practice, this means the filter will not be able to find an empty string as the value.\n\t\t\t\t\t\t\tvalue: nextValue === '' ? undefined : nextValue,\n\t\t\t\t\t }\n\t\t\t\t\t: _filter\n\t\t\t),\n\t\t} );\n\t} );\n\n\tif ( ! field || ! field.Edit || ! currentFilter ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Flex\n\t\t\tclassName=\"dataviews-filters__user-input-widget\"\n\t\t\tgap={ 2.5 }\n\t\t\tdirection=\"column\"\n\t\t>\n\t\t\t<field.Edit\n\t\t\t\thideLabelFromVision\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\toperator={ currentFilter.operator }\n\t\t\t\tonChange={ handleChange }\n\t\t\t/>\n\t\t</Flex>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -404,8 +404,8 @@ function FieldControl() {
|
|
|
404
404
|
} = (0, _element.useContext)(_dataviewsContext.default);
|
|
405
405
|
const togglableFields = [view?.titleField, view?.mediaField, view?.descriptionField].filter(Boolean);
|
|
406
406
|
const visibleFieldIds = (_view$fields2 = view.fields) !== null && _view$fields2 !== void 0 ? _view$fields2 : [];
|
|
407
|
-
const hiddenFields = fields.filter(f => !visibleFieldIds.includes(f.id) && !togglableFields.includes(f.id) && f.type !== 'media');
|
|
408
|
-
|
|
407
|
+
const hiddenFields = fields.filter(f => !visibleFieldIds.includes(f.id) && !togglableFields.includes(f.id) && f.type !== 'media' && f.enableHiding !== false);
|
|
408
|
+
let visibleFields = visibleFieldIds.map(fieldId => fields.find(f => f.id === fieldId)).filter(isDefined);
|
|
409
409
|
if (!visibleFields?.length && !hiddenFields?.length) {
|
|
410
410
|
return null;
|
|
411
411
|
}
|
|
@@ -452,7 +452,7 @@ function FieldControl() {
|
|
|
452
452
|
}].filter(({
|
|
453
453
|
field
|
|
454
454
|
}) => isDefined(field));
|
|
455
|
-
|
|
455
|
+
let visibleLockedFields = lockedFields.filter(({
|
|
456
456
|
field,
|
|
457
457
|
isVisibleFlag
|
|
458
458
|
}) => {
|
|
@@ -462,6 +462,25 @@ function FieldControl() {
|
|
|
462
462
|
isDefined(field) && ((_view$isVisibleFlag = view[isVisibleFlag]) !== null && _view$isVisibleFlag !== void 0 ? _view$isVisibleFlag : true)
|
|
463
463
|
);
|
|
464
464
|
});
|
|
465
|
+
|
|
466
|
+
// If only one locked field is visible, prevent it from being hidden.
|
|
467
|
+
if (visibleLockedFields.length === 1) {
|
|
468
|
+
visibleLockedFields = visibleLockedFields.map(locked => ({
|
|
469
|
+
...locked,
|
|
470
|
+
field: {
|
|
471
|
+
...locked.field,
|
|
472
|
+
enableHiding: false
|
|
473
|
+
}
|
|
474
|
+
}));
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
// If no locked fields are visible but there are visibleFields, lock the last visible field.
|
|
478
|
+
if (visibleLockedFields.length === 0 && visibleFields.length === 1) {
|
|
479
|
+
visibleFields = [{
|
|
480
|
+
...visibleFields[0],
|
|
481
|
+
enableHiding: false
|
|
482
|
+
}];
|
|
483
|
+
}
|
|
465
484
|
const hiddenLockedFields = lockedFields.filter(({
|
|
466
485
|
field,
|
|
467
486
|
isVisibleFlag
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_infiniteScrollToggle","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","ItemsPerPageControl","infiniteScrollEnabled","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","default","DataViewsViewConfig","memo","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport InfiniteScrollToggle from './infinite-scroll-toggle';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\tcase 'pickerGrid':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t\t} as View );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t\tshowLevels: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowLevels: false,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction ItemsPerPageControl() {\n\tconst { view, config, onChangeView } = useContext( DataViewsContext );\n\tconst { infiniteScrollEnabled } = view;\n\tif (\n\t\t! config ||\n\t\t! config.perPageSizes ||\n\t\tconfig.perPageSizes.length < 2 ||\n\t\tconfig.perPageSizes.length > 6 ||\n\t\tinfiniteScrollEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ config.perPageSizes.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-preview-options-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\n\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isFirst || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id ) &&\n\t\t\tf.type !== 'media'\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: false,\n\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nexport function DataviewsViewConfigDropdown() {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<InfiniteScrollToggle />\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig() {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_infiniteScrollToggle","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","ItemsPerPageControl","infiniteScrollEnabled","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","locked","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","default","DataViewsViewConfig","memo","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport InfiniteScrollToggle from './infinite-scroll-toggle';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\tcase 'pickerGrid':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t\t} as View );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t\tshowLevels: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowLevels: false,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction ItemsPerPageControl() {\n\tconst { view, config, onChangeView } = useContext( DataViewsContext );\n\tconst { infiniteScrollEnabled } = view;\n\tif (\n\t\t! config ||\n\t\t! config.perPageSizes ||\n\t\tconfig.perPageSizes.length < 2 ||\n\t\tconfig.perPageSizes.length > 6 ||\n\t\tinfiniteScrollEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ config.perPageSizes.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-preview-options-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\n\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isFirst || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id ) &&\n\t\t\tf.type !== 'media' &&\n\t\t\tf.enableHiding !== false\n\t);\n\tlet visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tlet visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\t// If only one locked field is visible, prevent it from being hidden.\n\tif ( visibleLockedFields.length === 1 ) {\n\t\tvisibleLockedFields = visibleLockedFields.map( ( locked ) => ( {\n\t\t\t...locked,\n\t\t\tfield: { ...locked.field, enableHiding: false },\n\t\t} ) );\n\t}\n\n\t// If no locked fields are visible but there are visibleFields, lock the last visible field.\n\tif ( visibleLockedFields.length === 0 && visibleFields.length === 1 ) {\n\t\tvisibleFields = [ { ...visibleFields[ 0 ], enableHiding: false } ];\n\t}\n\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: false,\n\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nexport function DataviewsViewConfigDropdown() {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<InfiniteScrollToggle />\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig() {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|