@wordpress/dataviews 6.0.1-next.46f643fa0.0 → 7.0.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 +38 -1
- package/README.md +50 -16
- package/build/components/dataviews/index.js +46 -6
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +5 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/filter.js +13 -6
- package/build/components/dataviews-filters/filter.js.map +1 -1
- package/build/components/dataviews-filters/index.js +16 -5
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/reset-filters.js +2 -2
- package/build/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +1 -10
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +5 -2
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +1 -1
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +10 -6
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js +47 -0
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
- package/build/dataform-controls/array.js +70 -0
- package/build/dataform-controls/array.js.map +1 -0
- package/build/dataform-controls/boolean.js +15 -7
- package/build/dataform-controls/boolean.js.map +1 -1
- package/build/dataform-controls/email.js +14 -7
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +3 -1
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +14 -7
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/select.js +12 -5
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/text.js +14 -7
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataforms-layouts/card/index.js +137 -0
- package/build/dataforms-layouts/card/index.js.map +1 -0
- package/build/dataforms-layouts/data-form-layout.js +2 -2
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +4 -0
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/panel/dropdown.js +124 -0
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +34 -149
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/panel/modal.js +125 -0
- package/build/dataforms-layouts/panel/modal.js.map +1 -0
- package/build/dataforms-layouts/regular/index.js +10 -21
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +27 -9
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +11 -11
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +48 -29
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +3 -0
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +14 -2
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +71 -11
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/field-types/array.js +2 -2
- package/build/field-types/array.js.map +1 -1
- package/build/normalize-form-fields.js +52 -13
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +48 -8
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +5 -1
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/filter.js +13 -6
- package/build-module/components/dataviews-filters/filter.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +16 -5
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/reset-filters.js +2 -2
- package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +1 -10
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +5 -2
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +1 -1
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +10 -6
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +39 -0
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
- package/build-module/dataform-controls/array.js +63 -0
- package/build-module/dataform-controls/array.js.map +1 -0
- package/build-module/dataform-controls/boolean.js +15 -7
- package/build-module/dataform-controls/boolean.js.map +1 -1
- package/build-module/dataform-controls/email.js +15 -8
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +3 -1
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +15 -8
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/select.js +12 -5
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/text.js +15 -8
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataforms-layouts/card/index.js +128 -0
- package/build-module/dataforms-layouts/card/index.js.map +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js +2 -2
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +4 -0
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/dropdown.js +118 -0
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +37 -152
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/modal.js +119 -0
- package/build-module/dataforms-layouts/panel/modal.js.map +1 -0
- package/build-module/dataforms-layouts/regular/index.js +10 -21
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +28 -10
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +11 -11
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +50 -31
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +3 -0
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +14 -2
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +72 -12
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/field-types/array.js +2 -2
- package/build-module/field-types/array.js.map +1 -1
- package/build-module/normalize-form-fields.js +50 -13
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +78 -20
- package/build-style/style.css +78 -20
- package/build-types/components/dataform/stories/index.story.d.ts +41 -17
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +6 -2
- 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 +18 -4
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +6 -2
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/reset-filters.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.map +1 -1
- package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts +2 -0
- package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts.map +1 -0
- package/build-types/dataform-controls/array.d.ts +6 -0
- package/build-types/dataform-controls/array.d.ts.map +1 -0
- package/build-types/dataform-controls/boolean.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts.map +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/select.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataforms-layouts/card/index.d.ts +13 -0
- package/build-types/dataforms-layouts/card/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts +14 -0
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts +13 -0
- package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -0
- 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 +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/field-types/boolean.d.ts +1 -1
- package/build-types/normalize-form-fields.d.ts +10 -3
- package/build-types/normalize-form-fields.d.ts.map +1 -1
- package/build-types/test/normalize-form-fields.d.ts +2 -0
- package/build-types/test/normalize-form-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +64 -7
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +3219 -1186
- package/package.json +15 -15
- package/src/components/dataform/stories/index.story.tsx +479 -91
- package/src/components/dataviews/index.tsx +74 -16
- package/src/components/dataviews/stories/fixtures.tsx +100 -8
- package/src/components/dataviews/stories/index.story.tsx +185 -32
- package/src/components/dataviews/stories/style.css +6 -0
- package/src/components/dataviews/style.scss +4 -0
- package/src/components/dataviews-context/index.ts +8 -2
- package/src/components/dataviews-filters/filter.tsx +15 -5
- package/src/components/dataviews-filters/index.tsx +17 -2
- package/src/components/dataviews-filters/reset-filters.tsx +4 -2
- package/src/components/dataviews-filters/style.scss +5 -1
- package/src/components/dataviews-item-actions/index.tsx +7 -16
- package/src/components/dataviews-layout/index.tsx +3 -0
- package/src/components/dataviews-pagination/index.tsx +1 -1
- package/src/components/dataviews-view-config/index.tsx +16 -6
- package/src/components/dataviews-view-config/infinite-scroll-toggle.tsx +39 -0
- package/src/dataform-controls/array.tsx +85 -0
- package/src/dataform-controls/boolean.tsx +24 -10
- package/src/dataform-controls/email.tsx +24 -11
- package/src/dataform-controls/index.tsx +3 -1
- package/src/dataform-controls/integer.tsx +27 -13
- package/src/dataform-controls/select.tsx +23 -13
- package/src/dataform-controls/text.tsx +24 -11
- package/src/dataforms-layouts/card/index.tsx +154 -0
- package/src/dataforms-layouts/card/style.scss +3 -0
- package/src/dataforms-layouts/data-form-layout.tsx +2 -2
- package/src/dataforms-layouts/index.tsx +5 -0
- package/src/dataforms-layouts/panel/dropdown.tsx +160 -0
- package/src/dataforms-layouts/panel/index.tsx +49 -189
- package/src/dataforms-layouts/panel/modal.tsx +165 -0
- package/src/dataforms-layouts/panel/style.scss +4 -0
- package/src/dataforms-layouts/regular/index.tsx +20 -23
- package/src/dataviews-layouts/grid/index.tsx +34 -6
- package/src/dataviews-layouts/grid/preview-size-picker.tsx +15 -13
- package/src/dataviews-layouts/grid/style.scss +5 -3
- package/src/dataviews-layouts/list/index.tsx +67 -34
- package/src/dataviews-layouts/list/style.scss +7 -3
- package/src/dataviews-layouts/table/column-header-menu.tsx +4 -0
- package/src/dataviews-layouts/table/column-primary.tsx +24 -4
- package/src/dataviews-layouts/table/index.tsx +138 -36
- package/src/dataviews-layouts/table/style.scss +23 -1
- package/src/field-types/array.tsx +1 -1
- package/src/normalize-form-fields.ts +63 -17
- package/src/test/dataform.tsx +181 -3
- package/src/test/dataviews.tsx +38 -0
- package/src/test/filter-and-sort-data-view.js +126 -65
- package/src/test/normalize-form-fields.ts +247 -0
- package/src/types.ts +89 -7
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 7.0.0 (2025-08-20)
|
|
6
|
+
|
|
7
|
+
### Breaking changes
|
|
8
|
+
|
|
9
|
+
- DataForm: introduce a new `card` layout. The `form.type` has been moved under a new `layout` object and it is now `form.layout.type`, check the README for details. [#71100](https://github.com/WordPress/gutenberg/pull/71100)
|
|
10
|
+
- Adds a new `config` prop to DataViews that allows hiding the view config control entirely. The `perPageSizes` prop has been moved to be part of this new prop. [#71173](https://github.com/WordPress/gutenberg/pull/71173)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- Introduce a new `array` DataForm Edit control that supports multi-selection. [#71136](https://github.com/WordPress/gutenberg/pull/71136)
|
|
15
|
+
- Add `enableMoving` option to the `table` layout to allow or disallow column moving left and right. [#71120](https://github.com/WordPress/gutenberg/pull/71120)
|
|
16
|
+
- Add infinite scroll support across all layout types (grid, list, table). Enable infinite scroll by providing an `infiniteScrollHandler` function in the `paginationInfo` prop and toggling the feature in the view configuration. ([#70955](https://github.com/WordPress/gutenberg/pull/70955))
|
|
17
|
+
- Add support for modal in DataForm panel layouts. [#71212](https://github.com/WordPress/gutenberg/pull/71212)
|
|
18
|
+
|
|
19
|
+
### Enhancements
|
|
20
|
+
|
|
21
|
+
- Update DataForm stories to better highlight the library's capabilities ([#71268](https://github.com/WordPress/gutenberg/pull/71268)).
|
|
22
|
+
- Add two smaller sizs to the grid layout ([#71077](https://github.com/WordPress/gutenberg/pull/71077)).
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
- Do not throw exception when `view.layout.previewSize` is smaller than the smallest available size. [#71218](https://github.com/WordPress/gutenberg/pull/71218)
|
|
27
|
+
- Fix actions horizontal layout consistency when all actions are primary. [#71274](https://github.com/WordPress/gutenberg/pull/71274)
|
|
28
|
+
|
|
29
|
+
## 6.0.0 (2025-08-07)
|
|
6
30
|
|
|
7
31
|
### Breaking changes
|
|
8
32
|
|
|
@@ -10,13 +34,26 @@
|
|
|
10
34
|
|
|
11
35
|
### Bug Fixes
|
|
12
36
|
|
|
37
|
+
- Do not render an empty ` ` when the title field has level 0. [#71021](https://github.com/WordPress/gutenberg/pull/71021)
|
|
38
|
+
- When a field type is `array` and it has elements, the select control should allow multi-selection. [#71000](https://github.com/WordPress/gutenberg/pull/71000)
|
|
39
|
+
- Set minimum and maximum number of items in `perPageSizes`, so that the UI control is disabled when the list exceeds those limits. [#71004](https://github.com/WordPress/gutenberg/pull/71004)
|
|
13
40
|
- Fix `filterSortAndPaginate` to handle searching fields that have a type of `array` ([#70785](https://github.com/WordPress/gutenberg/pull/70785)).
|
|
14
41
|
- Fix user-input filters: empty value for text and integer filters means there's no value to search for (so it returns all items). It also fixes a type conversion where empty strings for integer were converted to 0 [#70956](https://github.com/WordPress/gutenberg/pull/70956/).
|
|
42
|
+
- Fix Table layout Title's column wrapping and min-width so that long descriptions can be visualized without scrolling. [#70983](https://github.com/WordPress/gutenberg/pull/70983)
|
|
15
43
|
|
|
16
44
|
### Features
|
|
17
45
|
|
|
46
|
+
- Introduce locked filters, as filters that cannot be edited by the user. [#71075](https://github.com/WordPress/gutenberg/pull/71075)
|
|
47
|
+
- Add "groupBy" support to the table layout. [#71055](https://github.com/WordPress/gutenberg/pull/71055)
|
|
48
|
+
- Elements in the Field API can now provide an empty value that will be used instead of the default. [#70894](https://github.com/WordPress/gutenberg/pull/70894)
|
|
18
49
|
- Support Ctrl + Click / Cmd + Click for multiselecting rows in the Table layout ([#70891](https://github.com/WordPress/gutenberg/pull/70891)).
|
|
19
50
|
- Add support for the `Edit` control on the date field type ([#70836](https://github.com/WordPress/gutenberg/pull/70836)).
|
|
51
|
+
- Add support for responsive image attributes in media fields by adding a `config` prop to `mediaField.render`, containing a `sizes` string. Also simplifies grid logic and fixes imprecisions in grid resizing by changing the observed container. ([#70493](https://github.com/WordPress/gutenberg/pull/70493)).
|
|
52
|
+
- `DataViews` empty state can be customized using the new `empty` prop.
|
|
53
|
+
|
|
54
|
+
### Enhancements
|
|
55
|
+
|
|
56
|
+
- Make the media item clickable along the title ([#70985](https://github.com/WordPress/gutenberg/pull/70985)).
|
|
20
57
|
|
|
21
58
|
## 5.0.0 (2025-07-23)
|
|
22
59
|
|
package/README.md
CHANGED
|
@@ -193,6 +193,7 @@ Properties:
|
|
|
193
193
|
- `field`: which field this filter is bound to.
|
|
194
194
|
- `operator`: which type of filter it is. See "Operator types".
|
|
195
195
|
- `value`: the actual value selected by the user.
|
|
196
|
+
- `isLocked`: whether the filter is locked (cannot be edited by the user).
|
|
196
197
|
- `perPage`: number of records to show per page.
|
|
197
198
|
- `page`: the page that is visible.
|
|
198
199
|
- `sort`:
|
|
@@ -207,7 +208,7 @@ Properties:
|
|
|
207
208
|
- `showMedia`: Whether the media should be shown in the UI. `true` by default.
|
|
208
209
|
- `showDescription`: Whether the description should be shown in the UI. `true` by default.
|
|
209
210
|
- `showLevels`: Whether to display the hierarchical levels for the data. `false` by default. See related `getItemLevel` DataView prop.
|
|
210
|
-
- `groupByField`: The id of the field used for grouping the dataset.
|
|
211
|
+
- `groupByField`: The id of the field used for grouping the dataset. Supported by the `grid` and `table` layouts.
|
|
211
212
|
- `fields`: a list of remaining field `id` that are visible in the UI and the specific order in which they are displayed.
|
|
212
213
|
- `layout`: config that is specific to a particular layout type.
|
|
213
214
|
|
|
@@ -415,11 +416,13 @@ The component receives the following props:
|
|
|
415
416
|
|
|
416
417
|
React component to be rendered next to the view config button.
|
|
417
418
|
|
|
418
|
-
#### `
|
|
419
|
+
#### `config`: false | { perPageSizes: number[] }
|
|
419
420
|
|
|
420
|
-
|
|
421
|
+
Optional. Set it to `false` to hide the view config control entirely. Pass an object with a list of `perPageSizes` to control the available item counts per page (defaults to `[10, 20, 50, 100]`). `perPageSizes` needs to have a minimum of 2 items and a maximum of 6, otherwise the UI component won't be displayed.
|
|
421
422
|
|
|
422
|
-
|
|
423
|
+
#### `empty`: React node
|
|
424
|
+
|
|
425
|
+
A message or element to be displayed instead of the dataview's default empty message.
|
|
423
426
|
|
|
424
427
|
### Composition modes
|
|
425
428
|
|
|
@@ -554,15 +557,17 @@ const fields = [
|
|
|
554
557
|
|
|
555
558
|
#### `form`: `Object[]`
|
|
556
559
|
|
|
557
|
-
- `
|
|
558
|
-
- `labelPosition`: either `side`, `top`, or `none`.
|
|
560
|
+
- `layout`: an object describing the layout used to render the top-level fields present in `fields`. See `layout` prop in "Form Field API".
|
|
559
561
|
- `fields`: a list of fields ids that should be rendered. Field ids can also be defined as an object and allow you to define a `layout`, `labelPosition` or `children` if displaying combined fields. See "Form Field API" for a description of every property.
|
|
560
562
|
|
|
561
563
|
Example:
|
|
562
564
|
|
|
563
565
|
```js
|
|
564
566
|
const form = {
|
|
565
|
-
|
|
567
|
+
layout: {
|
|
568
|
+
type: 'panel',
|
|
569
|
+
labelPosition: 'side'
|
|
570
|
+
},
|
|
566
571
|
fields: [
|
|
567
572
|
'title',
|
|
568
573
|
'data',
|
|
@@ -938,6 +943,7 @@ React component that renders the field. This is used by the layouts.
|
|
|
938
943
|
- Defaults to `getValue`.
|
|
939
944
|
- Props
|
|
940
945
|
- `item` value to be processed.
|
|
946
|
+
- `config` object containing configuration options for the field. It's optional. So far, the only object property available is `sizes`: in fields that are set to be the media field, layouts can pass down the expected size reserved for them so that the field can react accordingly.
|
|
941
947
|
- Returns a React element that represents the field's value.
|
|
942
948
|
|
|
943
949
|
Example:
|
|
@@ -1200,6 +1206,8 @@ Example:
|
|
|
1200
1206
|
}
|
|
1201
1207
|
```
|
|
1202
1208
|
|
|
1209
|
+
By default, we add an empty value (label: "Select item"). The label can be overriden by providing an empty element (`{ value: '', label: 'Custom label for empty value'}`).
|
|
1210
|
+
|
|
1203
1211
|
### `filterBy`
|
|
1204
1212
|
|
|
1205
1213
|
Configuration of the filters. By default, fields have filtering enabled using the field's `Edit` function for user input. When `elements` are provided, the filter will use those as predefined options instead. Set to `false` to opt the field out of filtering entirely.
|
|
@@ -1295,31 +1303,57 @@ Example:
|
|
|
1295
1303
|
|
|
1296
1304
|
### `layout`
|
|
1297
1305
|
|
|
1298
|
-
|
|
1306
|
+
Represents the type of layout used to render the field. It'll be one of Regular, Panel, or Card. This prop is the same as the `form.layout` prop.
|
|
1299
1307
|
|
|
1300
|
-
|
|
1308
|
+
#### Regular
|
|
1301
1309
|
|
|
1302
|
-
|
|
1310
|
+
- `type`: `regular`. Required.
|
|
1311
|
+
- `labelPosition`: one of `side`, `top`, or `none`. Optional. `top` by default.
|
|
1312
|
+
|
|
1313
|
+
For example:
|
|
1303
1314
|
|
|
1304
1315
|
```js
|
|
1305
1316
|
{
|
|
1306
1317
|
id: 'field_id',
|
|
1307
|
-
layout:
|
|
1318
|
+
layout: {
|
|
1319
|
+
type: 'regular',
|
|
1320
|
+
labelPosition: 'side'
|
|
1321
|
+
},
|
|
1308
1322
|
}
|
|
1309
1323
|
```
|
|
1310
1324
|
|
|
1311
|
-
|
|
1325
|
+
#### Panel
|
|
1312
1326
|
|
|
1313
|
-
|
|
1327
|
+
- `type`: `panel`. Required.
|
|
1328
|
+
- `labelPosition`: one of `side`, `top`, or `none`. Optional. `top` by default.
|
|
1314
1329
|
|
|
1315
|
-
|
|
1330
|
+
For example:
|
|
1331
|
+
```js
|
|
1332
|
+
{
|
|
1333
|
+
id: 'field_id',
|
|
1334
|
+
layout: {
|
|
1335
|
+
type: 'panel',
|
|
1336
|
+
labelPosition: 'top'
|
|
1337
|
+
},
|
|
1338
|
+
}
|
|
1339
|
+
```
|
|
1316
1340
|
|
|
1317
|
-
|
|
1341
|
+
#### Card
|
|
1342
|
+
|
|
1343
|
+
- `type`: `card`. Required.
|
|
1344
|
+
- `isOpened`: boolean. Optional. `true` by default.
|
|
1345
|
+
- `withHeader`: boolean. Optional. `true` by default.
|
|
1346
|
+
|
|
1347
|
+
For example:
|
|
1318
1348
|
|
|
1319
1349
|
```js
|
|
1320
1350
|
{
|
|
1321
1351
|
id: 'field_id',
|
|
1322
|
-
|
|
1352
|
+
layout: {
|
|
1353
|
+
type: 'card',
|
|
1354
|
+
isOpened: false,
|
|
1355
|
+
withHeader: true,
|
|
1356
|
+
},
|
|
1323
1357
|
}
|
|
1324
1358
|
```
|
|
1325
1359
|
|
|
@@ -41,7 +41,8 @@ function DefaultUI({
|
|
|
41
41
|
searchLabel = undefined
|
|
42
42
|
}) {
|
|
43
43
|
const {
|
|
44
|
-
isShowingFilter
|
|
44
|
+
isShowingFilter,
|
|
45
|
+
config
|
|
45
46
|
} = (0, _element.useContext)(_dataviewsContext.default);
|
|
46
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
47
48
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
@@ -56,13 +57,13 @@ function DefaultUI({
|
|
|
56
57
|
children: [search && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsSearch.default, {
|
|
57
58
|
label: searchLabel
|
|
58
59
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.FiltersToggle, {})]
|
|
59
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
60
|
+
}), (config || header) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
60
61
|
spacing: 1,
|
|
61
62
|
expanded: false,
|
|
62
63
|
style: {
|
|
63
64
|
flexShrink: 0
|
|
64
65
|
},
|
|
65
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsViewConfig.default, {}), header]
|
|
66
|
+
children: ["config && ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsViewConfig.default, {}), header]
|
|
66
67
|
})]
|
|
67
68
|
}), isShowingFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.default, {
|
|
68
69
|
className: "dataviews-filters__container"
|
|
@@ -89,8 +90,14 @@ function DataViews({
|
|
|
89
90
|
isItemClickable = defaultIsItemClickable,
|
|
90
91
|
header,
|
|
91
92
|
children,
|
|
92
|
-
|
|
93
|
+
config = {
|
|
94
|
+
perPageSizes: [10, 20, 50, 100]
|
|
95
|
+
},
|
|
96
|
+
empty
|
|
93
97
|
}) {
|
|
98
|
+
const {
|
|
99
|
+
infiniteScrollHandler
|
|
100
|
+
} = paginationInfo;
|
|
94
101
|
const containerRef = (0, _element.useRef)(null);
|
|
95
102
|
const [containerWidth, setContainerWidth] = (0, _element.useState)(0);
|
|
96
103
|
const resizeObserverRef = (0, _compose.useResizeObserver)(resizeObserverEntries => {
|
|
@@ -116,7 +123,38 @@ function DataViews({
|
|
|
116
123
|
return selection.filter(id => data.some(item => getItemId(item) === id));
|
|
117
124
|
}, [selection, data, getItemId]);
|
|
118
125
|
const filters = (0, _dataviewsFilters.useFilters)(_fields, view);
|
|
119
|
-
const
|
|
126
|
+
const hasPrimaryOrLockedFilters = (0, _element.useMemo)(() => (filters || []).some(filter => filter.isPrimary || filter.isLocked), [filters]);
|
|
127
|
+
const [isShowingFilter, setIsShowingFilter] = (0, _element.useState)(hasPrimaryOrLockedFilters);
|
|
128
|
+
(0, _element.useEffect)(() => {
|
|
129
|
+
if (hasPrimaryOrLockedFilters && !isShowingFilter) {
|
|
130
|
+
setIsShowingFilter(true);
|
|
131
|
+
}
|
|
132
|
+
}, [hasPrimaryOrLockedFilters, isShowingFilter]);
|
|
133
|
+
|
|
134
|
+
// Attach scroll event listener for infinite scroll
|
|
135
|
+
(0, _element.useEffect)(() => {
|
|
136
|
+
if (!view.infiniteScrollEnabled || !containerRef.current) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const handleScroll = (0, _compose.throttle)(event => {
|
|
140
|
+
const target = event.target;
|
|
141
|
+
const scrollTop = target.scrollTop;
|
|
142
|
+
const scrollHeight = target.scrollHeight;
|
|
143
|
+
const clientHeight = target.clientHeight;
|
|
144
|
+
|
|
145
|
+
// Check if user has scrolled near the bottom
|
|
146
|
+
if (scrollTop + clientHeight >= scrollHeight - 100) {
|
|
147
|
+
infiniteScrollHandler?.();
|
|
148
|
+
}
|
|
149
|
+
}, 100); // Throttle to 100ms
|
|
150
|
+
|
|
151
|
+
const container = containerRef.current;
|
|
152
|
+
container.addEventListener('scroll', handleScroll);
|
|
153
|
+
return () => {
|
|
154
|
+
container.removeEventListener('scroll', handleScroll);
|
|
155
|
+
handleScroll.cancel(); // Cancel any pending throttled calls
|
|
156
|
+
};
|
|
157
|
+
}, [infiniteScrollHandler, view.infiniteScrollEnabled]);
|
|
120
158
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsContext.default.Provider, {
|
|
121
159
|
value: {
|
|
122
160
|
view,
|
|
@@ -142,7 +180,9 @@ function DataViews({
|
|
|
142
180
|
filters,
|
|
143
181
|
isShowingFilter,
|
|
144
182
|
setIsShowingFilter,
|
|
145
|
-
|
|
183
|
+
config,
|
|
184
|
+
empty,
|
|
185
|
+
hasInfiniteScrollHandler: !!infiniteScrollHandler
|
|
146
186
|
},
|
|
147
187
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
148
188
|
className: "dataviews-wrapper",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsBulkActions","_dataviewsPagination","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","DefaultUI","header","search","searchLabel","undefined","isShowingFilter","useContext","DataViewsContext","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","DataViews","view","onChangeView","fields","actions","data","getItemId","getItemLevel","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","renderItemLink","isItemClickable","perPageSizes","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","selectionState","setSelectionState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","setIsShowingFilter","isPrimary","Provider","ref","DataViewsSubComponents","BulkActionToolbar","BulkActionsFooter","Filters","DataViewsFilters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useContext, useMemo, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\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 { BulkActionsFooter } from '../dataviews-bulk-actions';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\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\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n\tgetItemLevel?: ( item: Item ) => number;\n\tchildren?: ReactNode;\n\tperPageSizes?: [ number, number, number, number ];\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\ntype DefaultUIProps = Pick<\n\tDataViewsProps< any >,\n\t'header' | 'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\theader,\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\tconst { isShowingFilter } = useContext( DataViewsContext );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t\t{ header }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t{ isShowingFilter && (\n\t\t\t\t<DataViewsFilters className=\"dataviews-filters__container\" />\n\t\t\t) }\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n\tchildren,\n\tperPageSizes,\n}: DataViewsProps< Item > ) {\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\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\tgetItemLevel,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\trenderItemLink,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tperPageSizes,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI\n\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\tsearchLabel={ searchLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsSubComponents = DataViews as typeof DataViews & {\n\tBulkActionToolbar: typeof BulkActionsFooter;\n\tFilters: typeof DataViewsFilters;\n\tFiltersToggle: typeof FiltersToggle;\n\tLayout: typeof DataViewsLayout;\n\tLayoutSwitcher: typeof ViewTypeMenu;\n\tPagination: typeof DataViewsPagination;\n\tSearch: typeof DataViewsSearch;\n\tViewConfig: typeof DataviewsViewConfigDropdown;\n};\n\nDataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;\nDataViewsSubComponents.Filters = DataViewsFilters;\nDataViewsSubComponents.FiltersToggle = FiltersToggle;\nDataViewsSubComponents.Layout = DataViewsLayout;\nDataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsSubComponents.Pagination = DataViewsPagination;\nDataViewsSubComponents.Search = DataViewsSearch;\nDataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;\n\nexport default DataViewsSubComponents;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsBulkActions","_dataviewsPagination","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","DefaultUI","header","search","searchLabel","undefined","isShowingFilter","config","useContext","DataViewsContext","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","DataViews","view","onChangeView","fields","actions","data","getItemId","getItemLevel","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","renderItemLink","isItemClickable","perPageSizes","empty","infiniteScrollHandler","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","selectionState","setSelectionState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","hasPrimaryOrLockedFilters","isPrimary","isLocked","setIsShowingFilter","useEffect","infiniteScrollEnabled","current","handleScroll","throttle","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","Provider","hasInfiniteScrollHandler","ref","DataViewsSubComponents","BulkActionToolbar","BulkActionsFooter","Filters","DataViewsFilters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\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 { BulkActionsFooter } from '../dataviews-bulk-actions';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\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\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n\tgetItemLevel?: ( item: Item ) => number;\n\tchildren?: ReactNode;\n\tconfig?:\n\t\t| false\n\t\t| {\n\t\t\t\tperPageSizes: number[];\n\t\t };\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\ntype DefaultUIProps = Pick<\n\tDataViewsProps< any >,\n\t'header' | 'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\theader,\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\tconst { isShowingFilter, config } = useContext( DataViewsContext );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t{ ( config || header ) && (\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\tconfig && <DataViewsViewConfig />\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isShowingFilter && (\n\t\t\t\t<DataViewsFilters className=\"dataviews-filters__container\" />\n\t\t\t) }\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\tempty,\n}: DataViewsProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\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 hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\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\tgetItemLevel,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\trenderItemLink,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI\n\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\tsearchLabel={ searchLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsSubComponents = DataViews as typeof DataViews & {\n\tBulkActionToolbar: typeof BulkActionsFooter;\n\tFilters: typeof DataViewsFilters;\n\tFiltersToggle: typeof FiltersToggle;\n\tLayout: typeof DataViewsLayout;\n\tLayoutSwitcher: typeof ViewTypeMenu;\n\tPagination: typeof DataViewsPagination;\n\tSearch: typeof DataViewsSearch;\n\tViewConfig: typeof DataviewsViewConfigDropdown;\n};\n\nDataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;\nDataViewsSubComponents.Filters = DataViewsFilters;\nDataViewsSubComponents.FiltersToggle = FiltersToggle;\nDataViewsSubComponents.Layout = DataViewsLayout;\nDataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsSubComponents.Pagination = DataViewsPagination;\nDataViewsSubComponents.Search = DataViewsSearch;\nDataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;\n\nexport default DataViewsSubComponents;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,7 +46,11 @@ const DataViewsContext = (0, _element.createContext)({
|
|
|
46
46
|
},
|
|
47
47
|
filters: [],
|
|
48
48
|
isShowingFilter: false,
|
|
49
|
-
setIsShowingFilter: () => {}
|
|
49
|
+
setIsShowingFilter: () => {},
|
|
50
|
+
hasInfiniteScrollHandler: false,
|
|
51
|
+
config: {
|
|
52
|
+
perPageSizes: []
|
|
53
|
+
}
|
|
50
54
|
});
|
|
51
55
|
var _default = exports.default = DataViewsContext;
|
|
52
56
|
//# 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","isItemClickable","renderItemLink","undefined","containerWidth","containerRef","createRef","resizeObserverRef","defaultLayouts","list","grid","table","filters","isShowingFilter","setIsShowingFilter","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, createRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tView,\n\tAction,\n\tNormalizedField,\n\tSupportedLayouts,\n\tNormalizedFilter,\n} 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\tgetItemLevel?: ( item: Item ) => number;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\tcontainerWidth: number;\n\tcontainerRef: React.MutableRefObject< HTMLDivElement | null >;\n\tresizeObserverRef:\n\t\t| ( ( element?: HTMLDivElement | null ) => void )\n\t\t| React.RefObject< HTMLDivElement >;\n\tdefaultLayouts: SupportedLayouts;\n\tfilters: NormalizedFilter[];\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: ( value: boolean ) => void;\n\
|
|
1
|
+
{"version":3,"names":["_element","require","_constants","DataViewsContext","createContext","view","type","LAYOUT_TABLE","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","isItemClickable","renderItemLink","undefined","containerWidth","containerRef","createRef","resizeObserverRef","defaultLayouts","list","grid","table","filters","isShowingFilter","setIsShowingFilter","hasInfiniteScrollHandler","config","perPageSizes","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement, ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, createRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tView,\n\tAction,\n\tNormalizedField,\n\tSupportedLayouts,\n\tNormalizedFilter,\n} 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\tgetItemLevel?: ( item: Item ) => number;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\tcontainerWidth: number;\n\tcontainerRef: React.MutableRefObject< HTMLDivElement | null >;\n\tresizeObserverRef:\n\t\t| ( ( element?: HTMLDivElement | null ) => void )\n\t\t| React.RefObject< HTMLDivElement >;\n\tdefaultLayouts: SupportedLayouts;\n\tfilters: NormalizedFilter[];\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: ( value: boolean ) => void;\n\tconfig: false | { perPageSizes: number[] };\n\tempty?: ReactNode;\n\thasInfiniteScrollHandler: boolean;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tisItemClickable: () => true,\n\trenderItemLink: undefined,\n\tcontainerWidth: 0,\n\tcontainerRef: createRef(),\n\tresizeObserverRef: () => {},\n\tdefaultLayouts: { list: {}, grid: {}, table: {} },\n\tfilters: [],\n\tisShowingFilter: false,\n\tsetIsShowingFilter: () => {},\n\thasInfiniteScrollHandler: false,\n\tconfig: {\n\t\tperPageSizes: [],\n\t},\n} );\n\nexport default DataViewsContext;\n"],"mappings":";;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AAaA,IAAAC,UAAA,GAAAD,OAAA;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;;AAiDA,MAAME,gBAAgB,GAAG,IAAAC,sBAAa,EAAiC;EACtEC,IAAI,EAAE;IAAEC,IAAI,EAAEC;EAAa,CAAC;EAC5BC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,EAAE;EACRC,cAAc,EAAE;IACfC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACb,CAAC;EACDC,SAAS,EAAE,EAAE;EACbC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,YAAY,EAAE,IAAI;EAClBC,SAAS,EAAIC,IAAI,IAAMA,IAAI,CAACC,EAAE;EAC9BC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,cAAc,EAAEC,SAAS;EACzBC,cAAc,EAAE,CAAC;EACjBC,YAAY,EAAE,IAAAC,kBAAS,EAAC,CAAC;EACzBC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,cAAc,EAAE;IAAEC,IAAI,EAAE,CAAC,CAAC;IAAEC,IAAI,EAAE,CAAC,CAAC;IAAEC,KAAK,EAAE,CAAC;EAAE,CAAC;EACjDC,OAAO,EAAE,EAAE;EACXC,eAAe,EAAE,KAAK;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,wBAAwB,EAAE,KAAK;EAC/BC,MAAM,EAAE;IACPC,YAAY,EAAE;EACf;AACD,CAAE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWrC,gBAAgB","ignoreList":[]}
|
|
@@ -224,8 +224,9 @@ function Filter({
|
|
|
224
224
|
}];
|
|
225
225
|
}
|
|
226
226
|
const isPrimary = filter.isPrimary;
|
|
227
|
-
const
|
|
228
|
-
const
|
|
227
|
+
const isLocked = filterInView?.isLocked;
|
|
228
|
+
const hasValues = !isLocked && filterInView?.value !== undefined;
|
|
229
|
+
const canResetOrRemove = !isLocked && (!isPrimary || hasValues);
|
|
229
230
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Dropdown, {
|
|
230
231
|
defaultOpen: openedFilter === filter.field,
|
|
231
232
|
contentClassName: "dataviews-filters__summary-popover",
|
|
@@ -248,17 +249,23 @@ function Filter({
|
|
|
248
249
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
249
250
|
className: (0, _clsx.default)('dataviews-filters__summary-chip', {
|
|
250
251
|
'has-reset': canResetOrRemove,
|
|
251
|
-
'has-values': hasValues
|
|
252
|
+
'has-values': hasValues,
|
|
253
|
+
'is-not-clickable': isLocked
|
|
252
254
|
}),
|
|
253
255
|
role: "button",
|
|
254
|
-
tabIndex: 0,
|
|
255
|
-
onClick:
|
|
256
|
+
tabIndex: isLocked ? -1 : 0,
|
|
257
|
+
onClick: () => {
|
|
258
|
+
if (!isLocked) {
|
|
259
|
+
onToggle();
|
|
260
|
+
}
|
|
261
|
+
},
|
|
256
262
|
onKeyDown: event => {
|
|
257
|
-
if ([ENTER, SPACE].includes(event.key)) {
|
|
263
|
+
if (!isLocked && [ENTER, SPACE].includes(event.key)) {
|
|
258
264
|
onToggle();
|
|
259
265
|
event.preventDefault();
|
|
260
266
|
}
|
|
261
267
|
},
|
|
268
|
+
"aria-disabled": isLocked,
|
|
262
269
|
"aria-pressed": isOpen,
|
|
263
270
|
"aria-expanded": isOpen,
|
|
264
271
|
ref: toggleRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_searchWidget","_inputWidget","_constants","_jsxRuntime","ENTER","SPACE","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","jsx","className","Value","operator","OPERATOR_IS_ANY","createInterpolateElement","sprintf","__","map","element","label","join","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_LESS_THAN","OPERATOR_GREATER_THAN","OPERATOR_LESS_THAN_OR_EQUAL","OPERATOR_GREATER_THAN_OR_EQUAL","OPERATOR_CONTAINS","OPERATOR_NOT_CONTAINS","OPERATOR_STARTS_WITH","OPERATOR_BEFORE","OPERATOR_AFTER","OPERATOR_BEFORE_INC","OPERATOR_AFTER_INC","OPERATOR_BETWEEN","OPERATOR_ON","OPERATOR_NOT_ON","OPERATOR_IN_THE_PAST","value","unit","OPERATOR_OVER","OperatorSelector","view","onChangeView","operatorOptions","operators","OPERATORS","currentFilter","filters","find","_filter","field","jsxs","__experimentalHStack","spacing","justify","children","FlexItem","SelectControl","options","onChange","newValue","_view$filters","_view$filters2","currentOperator","newFilters","OPERATORS_SHOULD_RESET_VALUE","shouldResetValue","includes","page","size","variant","__nextHasNoMarginBottom","hideLabelFromVision","Filter","addFilterRef","openedFilter","fields","commonProps","toggleRef","useRef","f","elements","singleSelection","isPrimary","hasValues","canResetOrRemove","Dropdown","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","Tooltip","text","toLowerCase","clsx","tabIndex","onClick","onKeyDown","event","key","preventDefault","ref","Icon","icon","closeSmall","renderContent","__experimentalVStack","default"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { RefObject } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport InputWidget from './input-widget';\nimport {\n\tOPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../../constants';\nimport type {\n\tFilter,\n\tNormalizedFilter,\n\tOperator,\n\tOption,\n\tView,\n\tNormalizedField,\n} from '../../types';\n\ninterface FilterTextProps {\n\tactiveElements: Option[];\n\tfilterInView?: Filter;\n\tfilter: NormalizedFilter;\n}\n\ninterface OperatorSelectorProps {\n\tfilter: NormalizedFilter;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FilterProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\n\tfields: NormalizedField< any >[];\n}\n\nconst FilterText = ( {\n\tactiveElements,\n\tfilterInView,\n\tfilter,\n}: FilterTextProps ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filters__summary-filter-text-name\" />,\n\t\tValue: (\n\t\t\t<span className=\"dataviews-filters__summary-filter-text-value\" />\n\t\t),\n\t};\n\n\tif ( filterInView?.operator === OPERATOR_IS_ANY ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NONE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is: Admin\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is not: Admin\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_LESS_THAN ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is less than: 10\". */\n\t\t\t\t__( '<Name>%1$s is less than: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_GREATER_THAN ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is greater than: 10\". */\n\t\t\t\t__( '<Name>%1$s is greater than: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_LESS_THAN_OR_EQUAL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is less than or equal to: 10\". */\n\t\t\t\t__(\n\t\t\t\t\t'<Name>%1$s is less than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_GREATER_THAN_OR_EQUAL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is greater than or equal to: 10\". */\n\t\t\t\t__(\n\t\t\t\t\t'<Name>%1$s is greater than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_CONTAINS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Title contains: Mars\". */\n\t\t\t\t__( '<Name>%1$s contains: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_NOT_CONTAINS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Description doesn't contain: photo\". */\n\t\t\t\t__( \"<Name>%1$s doesn't contain: </Name><Value>%2$s</Value>\" ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_STARTS_WITH ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Title starts with: Mar\". */\n\t\t\t\t__( '<Name>%1$s starts with: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_BEFORE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is before: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is before: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_AFTER ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is after: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is after: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_BEFORE_INC ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is on or before: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is on or before: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_AFTER_INC ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is on or after: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is on or after: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_BETWEEN ) {\n\t\tconst { label } = activeElements[ 0 ];\n\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Min value. 3: Max value. e.g.: \"Item count between (inc): 10 and 180\". */\n\t\t\t\t__(\n\t\t\t\t\t'<Name>%1$s between (inc): </Name><Value>%2$s and %3$s</Value>'\n\t\t\t\t),\n\t\t\t\tfilter.name,\n\t\t\t\tlabel[ 0 ],\n\t\t\t\tlabel[ 1 ]\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_ON ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_NOT_ON ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is not: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IN_THE_PAST ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is in the past: 1 days\". */\n\t\t\t\t__( '<Name>%1$s is in the past: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_OVER ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is over: 1 days ago\". */\n\t\t\t\t__( '<Name>%1$s is over: </Name><Value>%2$s</Value> ago' ),\n\t\t\t\tfilter.name,\n\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( {\n\tfilter,\n\tview,\n\tonChangeView,\n}: OperatorSelectorProps ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters?.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filters__summary-operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filters__summary-operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tclassName=\"dataviews-filters__summary-operators-filter-select\"\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst operator = newValue as Operator;\n\t\t\t\t\t\tconst currentOperator = currentFilter?.operator;\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ).map(\n\t\t\t\t\t\t\t\t\t\t( _filter ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Reset the value only when switching between operators that have different value types.\n\t\t\t\t\t\t\t\t\t\t\t\tconst OPERATORS_SHOULD_RESET_VALUE =\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\t\tOPERATOR_BETWEEN,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN_THE_PAST,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_OVER,\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\tconst shouldResetValue =\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentOperator &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t( OPERATORS_SHOULD_RESET_VALUE.includes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentOperator\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\t\tOPERATORS_SHOULD_RESET_VALUE.includes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) );\n\n\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: shouldResetValue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: _filter.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\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\treturn _filter;\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 ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function Filter( {\n\taddFilterRef,\n\topenedFilter,\n\tfields,\n\t...commonProps\n}: FilterProps ) {\n\tconst toggleRef = useRef< HTMLDivElement >( null );\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\n\tlet activeElements: Option[] = [];\n\n\tif ( filter.elements.length > 0 ) {\n\t\tactiveElements = filter.elements.filter( ( element ) => {\n\t\t\tif ( filter.singleSelection ) {\n\t\t\t\treturn element.value === filterInView?.value;\n\t\t\t}\n\t\t\treturn filterInView?.value?.includes( element.value );\n\t\t} );\n\t} else if ( filterInView?.value !== undefined ) {\n\t\tactiveElements = [\n\t\t\t{\n\t\t\t\tvalue: filterInView.value,\n\t\t\t\tlabel: filterInView.value,\n\t\t\t},\n\t\t];\n\t}\n\n\tconst isPrimary = filter.isPrimary;\n\tconst hasValues = filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isPrimary || hasValues;\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filters__summary-popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filters__summary-chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'dataviews-filters__summary-chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif ( [ ENTER, SPACE ].includes( event.key ) ) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElements={ activeElements }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-filters__summary-chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters?.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\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\t// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\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\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t{ commonProps.filter.elements.length > 0 ? (\n\t\t\t\t\t\t\t<SearchWidget\n\t\t\t\t\t\t\t\t{ ...commonProps }\n\t\t\t\t\t\t\t\tfilter={ {\n\t\t\t\t\t\t\t\t\t...commonProps.filter,\n\t\t\t\t\t\t\t\t\telements: commonProps.filter.elements,\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\t\t<InputWidget { ...commonProps } fields={ fields } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AASA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAQA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAwByB,IAAAQ,WAAA,GAAAR,OAAA;AAtDzB;AACA;AACA;;AAIA;AACA;AACA;;AAcA,MAAMS,KAAK,GAAG,OAAO;AACrB,MAAMC,KAAK,GAAG,GAAG;;AAEjB;AACA;AACA;;AAuDA,MAAMC,UAAU,GAAGA,CAAE;EACpBC,cAAc;EACdC,YAAY;EACZC;AACgB,CAAC,KAAM;EACvB,IAAKF,cAAc,KAAKG,SAAS,IAAIH,cAAc,CAACI,MAAM,KAAK,CAAC,EAAG;IAClE,OAAOF,MAAM,CAACG,IAAI;EACnB;EAEA,MAAMC,kBAAkB,GAAG;IAC1BC,IAAI,eAAE,IAAAX,WAAA,CAAAY,GAAA;MAAMC,SAAS,EAAC;IAA6C,CAAE,CAAC;IACtEC,KAAK,eACJ,IAAAd,WAAA,CAAAY,GAAA;MAAMC,SAAS,EAAC;IAA8C,CAAE;EAElE,CAAC;EAED,IAAKR,YAAY,EAAEU,QAAQ,KAAKC,0BAAe,EAAG;IACjD,OAAO,IAAAC,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,+CAAgD,CAAC,EACrDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAACgB,GAAG,CAAIC,OAAO,IAAMA,OAAO,CAACC,KAAM,CAAC,CAACC,IAAI,CAAE,IAAK,CAC/D,CAAC,EACDb,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKS,2BAAgB,EAAG;IAClD,OAAO,IAAAP,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,gDAAiD,CAAC,EACtDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAACgB,GAAG,CAAIC,OAAO,IAAMA,OAAO,CAACC,KAAM,CAAC,CAACC,IAAI,CAAE,IAAK,CAC/D,CAAC,EACDb,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKU,0BAAe,EAAG;IACjD,OAAO,IAAAR,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,+CAAgD,CAAC,EACrDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAACgB,GAAG,CAAIC,OAAO,IAAMA,OAAO,CAACC,KAAM,CAAC,CAACC,IAAI,CAAE,IAAK,CAC/D,CAAC,EACDb,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKW,8BAAmB,EAAG;IACrD,OAAO,IAAAT,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,mDAAoD,CAAC,EACzDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAACgB,GAAG,CAAIC,OAAO,IAAMA,OAAO,CAACC,KAAM,CAAC,CAACC,IAAI,CAAE,IAAK,CAC/D,CAAC,EACDb,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKY,sBAAW,EAAG;IAC7C,OAAO,IAAAV,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,2CAA4C,CAAC,EACjDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKa,0BAAe,EAAG;IACjD,OAAO,IAAAX,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,+CAAgD,CAAC,EACrDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKc,6BAAkB,EAAG;IACpD,OAAO,IAAAZ,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,qDAAsD,CAAC,EAC3Db,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKe,gCAAqB,EAAG;IACvD,OAAO,IAAAb,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,wDAAyD,CAAC,EAC9Db,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKgB,sCAA2B,EAAG;IAC7D,OAAO,IAAAd,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EACD,iEACD,CAAC,EACDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKiB,yCAA8B,EAAG;IAChE,OAAO,IAAAf,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EACD,oEACD,CAAC,EACDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKkB,4BAAiB,EAAG;IACnD,OAAO,IAAAhB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,iDAAkD,CAAC,EACvDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKmB,gCAAqB,EAAG;IACvD,OAAO,IAAAjB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,wDAAyD,CAAC,EAC9Db,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKoB,+BAAoB,EAAG;IACtD,OAAO,IAAAlB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,oDAAqD,CAAC,EAC1Db,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKqB,0BAAe,EAAG;IACjD,OAAO,IAAAnB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,kDAAmD,CAAC,EACxDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKsB,yBAAc,EAAG;IAChD,OAAO,IAAApB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,iDAAkD,CAAC,EACvDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKuB,8BAAmB,EAAG;IACrD,OAAO,IAAArB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,wDAAyD,CAAC,EAC9Db,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKwB,6BAAkB,EAAG;IACpD,OAAO,IAAAtB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,uDAAwD,CAAC,EAC7Db,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAKyB,2BAAgB,EAAG;IAClD,MAAM;MAAElB;IAAM,CAAC,GAAGlB,cAAc,CAAE,CAAC,CAAE;IAErC,OAAO,IAAAa,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EACD,+DACD,CAAC,EACDb,MAAM,CAACG,IAAI,EACXa,KAAK,CAAE,CAAC,CAAE,EACVA,KAAK,CAAE,CAAC,CACT,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAK0B,sBAAW,EAAG;IAC7C,OAAO,IAAAxB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,2CAA4C,CAAC,EACjDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAK2B,0BAAe,EAAG;IACjD,OAAO,IAAAzB,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,+CAAgD,CAAC,EACrDb,MAAM,CAACG,IAAI,EACXL,cAAc,CAAE,CAAC,CAAE,CAACkB,KACrB,CAAC,EACDZ,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAK4B,+BAAoB,EAAG;IACtD,OAAO,IAAA1B,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,uDAAwD,CAAC,EAC7Db,MAAM,CAACG,IAAI,EACX,GAAIL,cAAc,CAAE,CAAC,CAAE,CAACwC,KAAK,CAACA,KAAK,IAAMxC,cAAc,CAAE,CAAC,CAAE,CAACwC,KAAK,CAACC,IAAI,EACxE,CAAC,EACDnC,kBACD,CAAC;EACF;EAEA,IAAKL,YAAY,EAAEU,QAAQ,KAAK+B,wBAAa,EAAG;IAC/C,OAAO,IAAA7B,iCAAwB,EAC9B,IAAAC,aAAO,EACN;IACA,IAAAC,QAAE,EAAE,oDAAqD,CAAC,EAC1Db,MAAM,CAACG,IAAI,EACX,GAAIL,cAAc,CAAE,CAAC,CAAE,CAACwC,KAAK,CAACA,KAAK,IAAMxC,cAAc,CAAE,CAAC,CAAE,CAACwC,KAAK,CAACC,IAAI,EACxE,CAAC,EACDnC,kBACD,CAAC;EACF;EACA,OAAO,IAAAQ,aAAO,EACb;EACA,IAAAC,QAAE,EAAE,yBAA0B,CAAC,EAC/Bb,MAAM,CAACG,IACR,CAAC;AACF,CAAC;AAED,SAASsC,gBAAgBA,CAAE;EAC1BzC,MAAM;EACN0C,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,eAAe,GAAG5C,MAAM,CAAC6C,SAAS,EAAE/B,GAAG,CAAIL,QAAQ,KAAQ;IAChE6B,KAAK,EAAE7B,QAAQ;IACfO,KAAK,EAAE8B,oBAAS,CAAErC,QAAQ,CAAE,EAAEO;EAC/B,CAAC,CAAG,CAAC;EACL,MAAM+B,aAAa,GAAGL,IAAI,CAACM,OAAO,EAAEC,IAAI,CACrCC,OAAO,IAAMA,OAAO,CAACC,KAAK,KAAKnD,MAAM,CAACmD,KACzC,CAAC;EACD,MAAMb,KAAK,GAAGS,aAAa,EAAEtC,QAAQ,IAAIT,MAAM,CAAC6C,SAAS,CAAE,CAAC,CAAE;EAC9D,OACCD,eAAe,CAAC1C,MAAM,GAAG,CAAC,iBACzB,IAAAR,WAAA,CAAA0D,IAAA,EAACjE,WAAA,CAAAkE,oBAAM;IACNC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,YAAY;IACpBhD,SAAS,EAAC,gDAAgD;IAAAiD,QAAA,gBAE1D,IAAA9D,WAAA,CAAAY,GAAA,EAACnB,WAAA,CAAAsE,QAAQ;MAAClD,SAAS,EAAC,kDAAkD;MAAAiD,QAAA,EACnExD,MAAM,CAACG;IAAI,CACJ,CAAC,eAEX,IAAAT,WAAA,CAAAY,GAAA,EAACnB,WAAA,CAAAuE,aAAa;MACbnD,SAAS,EAAC,oDAAoD;MAC9DS,KAAK,EAAG,IAAAH,QAAE,EAAE,YAAa,CAAG;MAC5ByB,KAAK,EAAGA,KAAO;MACfqB,OAAO,EAAGf,eAAiB;MAC3BgB,QAAQ,EAAKC,QAAQ,IAAM;QAAA,IAAAC,aAAA,EAAAC,cAAA;QAC1B,MAAMtD,QAAQ,GAAGoD,QAAoB;QACrC,MAAMG,eAAe,GAAGjB,aAAa,EAAEtC,QAAQ;QAC/C,MAAMwD,UAAU,GAAGlB,aAAa,GAC7B,CACA,GAAG,EAAAe,aAAA,GAAEpB,IAAI,CAACM,OAAO,cAAAc,aAAA,cAAAA,aAAA,GAAI,EAAE,EAAGhD,GAAG,CAC1BoC,OAAO,IAAM;UACd,IACCA,OAAO,CAACC,KAAK,KAAKnD,MAAM,CAACmD,KAAK,EAC7B;YACD;YACA,MAAMe,4BAA4B,GACjC,CACChC,2BAAgB,EAChBG,+BAAoB,EACpBG,wBAAa,CACb;YACF,MAAM2B,gBAAgB,GACrBH,eAAe,KACbE,4BAA4B,CAACE,QAAQ,CACtCJ,eACD,CAAC,IACAE,4BAA4B,CAACE,QAAQ,CACpC3D,QACD,CAAC,CAAE;YAEL,OAAO;cACN,GAAGyC,OAAO;cACVZ,KAAK,EAAE6B,gBAAgB,GACpBlE,SAAS,GACTiD,OAAO,CAACZ,KAAK;cAChB7B;YACD,CAAC;UACF;UACA,OAAOyC,OAAO;QACf,CACD,CAAC,CACA,GACD,CACA,KAAAa,cAAA,GAAKrB,IAAI,CAACM,OAAO,cAAAe,cAAA,cAAAA,cAAA,GAAI,EAAE,CAAE,EACzB;UACCZ,KAAK,EAAEnD,MAAM,CAACmD,KAAK;UACnB1C,QAAQ;UACR6B,KAAK,EAAErC;QACR,CAAC,CACA;QACJ0C,YAAY,CAAE;UACb,GAAGD,IAAI;UACP2B,IAAI,EAAE,CAAC;UACPrB,OAAO,EAAEiB;QACV,CAAE,CAAC;MACJ,CAAG;MACHK,IAAI,EAAC,OAAO;MACZC,OAAO,EAAC,SAAS;MACjBC,uBAAuB;MACvBC,mBAAmB;IAAA,CACnB,CAAC;EAAA,CACK,CACR;AAEH;AAEe,SAASC,MAAMA,CAAE;EAC/BC,YAAY;EACZC,YAAY;EACZC,MAAM;EACN,GAAGC;AACS,CAAC,EAAG;EAChB,MAAMC,SAAS,GAAG,IAAAC,eAAM,EAAoB,IAAK,CAAC;EAClD,MAAM;IAAEhF,MAAM;IAAE0C,IAAI;IAAEC;EAAa,CAAC,GAAGmC,WAAW;EAClD,MAAM/E,YAAY,GAAG2C,IAAI,CAACM,OAAO,EAAEC,IAAI,CACpCgC,CAAC,IAAMA,CAAC,CAAC9B,KAAK,KAAKnD,MAAM,CAACmD,KAC7B,CAAC;EAED,IAAIrD,cAAwB,GAAG,EAAE;EAEjC,IAAKE,MAAM,CAACkF,QAAQ,CAAChF,MAAM,GAAG,CAAC,EAAG;IACjCJ,cAAc,GAAGE,MAAM,CAACkF,QAAQ,CAAClF,MAAM,CAAIe,OAAO,IAAM;MACvD,IAAKf,MAAM,CAACmF,eAAe,EAAG;QAC7B,OAAOpE,OAAO,CAACuB,KAAK,KAAKvC,YAAY,EAAEuC,KAAK;MAC7C;MACA,OAAOvC,YAAY,EAAEuC,KAAK,EAAE8B,QAAQ,CAAErD,OAAO,CAACuB,KAAM,CAAC;IACtD,CAAE,CAAC;EACJ,CAAC,MAAM,IAAKvC,YAAY,EAAEuC,KAAK,KAAKrC,SAAS,EAAG;IAC/CH,cAAc,GAAG,CAChB;MACCwC,KAAK,EAAEvC,YAAY,CAACuC,KAAK;MACzBtB,KAAK,EAAEjB,YAAY,CAACuC;IACrB,CAAC,CACD;EACF;EAEA,MAAM8C,SAAS,GAAGpF,MAAM,CAACoF,SAAS;EAClC,MAAMC,SAAS,GAAGtF,YAAY,EAAEuC,KAAK,KAAKrC,SAAS;EACnD,MAAMqF,gBAAgB,GAAG,CAAEF,SAAS,IAAIC,SAAS;EACjD,oBACC,IAAA3F,WAAA,CAAAY,GAAA,EAACnB,WAAA,CAAAoG,QAAQ;IACRC,WAAW,EAAGZ,YAAY,KAAK5E,MAAM,CAACmD,KAAO;IAC7CsC,gBAAgB,EAAC,oCAAoC;IACrDC,YAAY,EAAG;MAAEC,SAAS,EAAE,cAAc;MAAEC,IAAI,EAAE;IAAS,CAAG;IAC9DC,OAAO,EAAGA,CAAA,KAAM;MACfd,SAAS,CAACe,OAAO,EAAEC,KAAK,CAAC,CAAC;IAC3B,CAAG;IACHC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,kBACpC,IAAAxG,WAAA,CAAA0D,IAAA;MAAK7C,SAAS,EAAC,2CAA2C;MAAAiD,QAAA,gBACzD,IAAA9D,WAAA,CAAAY,GAAA,EAACnB,WAAA,CAAAgH,OAAO;QACPC,IAAI,EAAG,IAAAxF,aAAO,EACb;QACA,IAAAC,QAAE,EAAE,iBAAkB,CAAC,EACvBb,MAAM,CAACG,IAAI,CAACkG,WAAW,CAAC,CACzB,CAAG;QACHV,SAAS,EAAC,KAAK;QAAAnC,QAAA,eAEf,IAAA9D,WAAA,CAAAY,GAAA;UACCC,SAAS,EAAG,IAAA+F,aAAI,EACf,iCAAiC,EACjC;YACC,WAAW,EAAEhB,gBAAgB;YAC7B,YAAY,EAAED;UACf,CACD,CAAG;UACHO,IAAI,EAAC,QAAQ;UACbW,QAAQ,EAAG,CAAG;UACdC,OAAO,EAAGN,QAAU;UACpBO,SAAS,EAAKC,KAAK,IAAM;YACxB,IAAK,CAAE/G,KAAK,EAAEC,KAAK,CAAE,CAACwE,QAAQ,CAAEsC,KAAK,CAACC,GAAI,CAAC,EAAG;cAC7CT,QAAQ,CAAC,CAAC;cACVQ,KAAK,CAACE,cAAc,CAAC,CAAC;YACvB;UACD,CAAG;UACH,gBAAeX,MAAQ;UACvB,iBAAgBA,MAAQ;UACxBY,GAAG,EAAG9B,SAAW;UAAAvB,QAAA,eAEjB,IAAA9D,WAAA,CAAAY,GAAA,EAACT,UAAU;YACVC,cAAc,EAAGA,cAAgB;YACjCC,YAAY,EAAGA,YAAc;YAC7BC,MAAM,EAAGA;UAAQ,CACjB;QAAC,CACE;MAAC,CACE,CAAC,EACRsF,gBAAgB,iBACjB,IAAA5F,WAAA,CAAAY,GAAA,EAACnB,WAAA,CAAAgH,OAAO;QACPC,IAAI,EAAGhB,SAAS,GAAG,IAAAvE,QAAE,EAAE,OAAQ,CAAC,GAAG,IAAAA,QAAE,EAAE,QAAS,CAAG;QACnD8E,SAAS,EAAC,KAAK;QAAAnC,QAAA,eAEf,IAAA9D,WAAA,CAAAY,GAAA;UACCC,SAAS,EAAG,IAAA+F,aAAI,EACf,wCAAwC,EACxC;YAAE,YAAY,EAAEjB;UAAU,CAC3B,CAAG;UACHmB,OAAO,EAAGA,CAAA,KAAM;YACf7D,YAAY,CAAE;cACb,GAAGD,IAAI;cACP2B,IAAI,EAAE,CAAC;cACPrB,OAAO,EAAEN,IAAI,CAACM,OAAO,EAAEhD,MAAM,CAC1BkD,OAAO,IACRA,OAAO,CAACC,KAAK,KAAKnD,MAAM,CAACmD,KAC3B;YACD,CAAE,CAAC;YACH;YACA;YACA,IAAK,CAAEiC,SAAS,EAAG;cAClBT,YAAY,CAACmB,OAAO,EAAEC,KAAK,CAAC,CAAC;YAC9B,CAAC,MAAM;cACN;cACAhB,SAAS,CAACe,OAAO,EAAEC,KAAK,CAAC,CAAC;YAC3B;UACD,CAAG;UAAAvC,QAAA,eAEH,IAAA9D,WAAA,CAAAY,GAAA,EAACnB,WAAA,CAAA2H,IAAI;YAACC,IAAI,EAAGC;UAAY,CAAE;QAAC,CACrB;MAAC,CACD,CACT;IAAA,CACG,CACH;IACHC,aAAa,EAAGA,CAAA,KAAM;MACrB,oBACC,IAAAvH,WAAA,CAAA0D,IAAA,EAACjE,WAAA,CAAA+H,oBAAM;QAAC5D,OAAO,EAAG,CAAG;QAACC,OAAO,EAAC,YAAY;QAAAC,QAAA,gBACzC,IAAA9D,WAAA,CAAAY,GAAA,EAACmC,gBAAgB;UAAA,GAAMqC;QAAW,CAAI,CAAC,EACrCA,WAAW,CAAC9E,MAAM,CAACkF,QAAQ,CAAChF,MAAM,GAAG,CAAC,gBACvC,IAAAR,WAAA,CAAAY,GAAA,EAACf,aAAA,CAAA4H,OAAY;UAAA,GACPrC,WAAW;UAChB9E,MAAM,EAAG;YACR,GAAG8E,WAAW,CAAC9E,MAAM;YACrBkF,QAAQ,EAAEJ,WAAW,CAAC9E,MAAM,CAACkF;UAC9B;QAAG,CACH,CAAC,gBAEF,IAAAxF,WAAA,CAAAY,GAAA,EAACd,YAAA,CAAA2H,OAAW;UAAA,GAAMrC,WAAW;UAAGD,MAAM,EAAGA;QAAQ,CAAE,CACnD;MAAA,CACM,CAAC;IAEX;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_searchWidget","_inputWidget","_constants","_jsxRuntime","ENTER","SPACE","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","jsx","className","Value","operator","OPERATOR_IS_ANY","createInterpolateElement","sprintf","__","map","element","label","join","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_LESS_THAN","OPERATOR_GREATER_THAN","OPERATOR_LESS_THAN_OR_EQUAL","OPERATOR_GREATER_THAN_OR_EQUAL","OPERATOR_CONTAINS","OPERATOR_NOT_CONTAINS","OPERATOR_STARTS_WITH","OPERATOR_BEFORE","OPERATOR_AFTER","OPERATOR_BEFORE_INC","OPERATOR_AFTER_INC","OPERATOR_BETWEEN","OPERATOR_ON","OPERATOR_NOT_ON","OPERATOR_IN_THE_PAST","value","unit","OPERATOR_OVER","OperatorSelector","view","onChangeView","operatorOptions","operators","OPERATORS","currentFilter","filters","find","_filter","field","jsxs","__experimentalHStack","spacing","justify","children","FlexItem","SelectControl","options","onChange","newValue","_view$filters","_view$filters2","currentOperator","newFilters","OPERATORS_SHOULD_RESET_VALUE","shouldResetValue","includes","page","size","variant","__nextHasNoMarginBottom","hideLabelFromVision","Filter","addFilterRef","openedFilter","fields","commonProps","toggleRef","useRef","f","elements","singleSelection","isPrimary","isLocked","hasValues","canResetOrRemove","Dropdown","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","Tooltip","text","toLowerCase","clsx","tabIndex","onClick","onKeyDown","event","key","preventDefault","ref","Icon","icon","closeSmall","renderContent","__experimentalVStack","default"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { RefObject } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport InputWidget from './input-widget';\nimport {\n\tOPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../../constants';\nimport type {\n\tFilter,\n\tNormalizedFilter,\n\tOperator,\n\tOption,\n\tView,\n\tNormalizedField,\n} from '../../types';\n\ninterface FilterTextProps {\n\tactiveElements: Option[];\n\tfilterInView?: Filter;\n\tfilter: NormalizedFilter;\n}\n\ninterface OperatorSelectorProps {\n\tfilter: NormalizedFilter;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FilterProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\n\tfields: NormalizedField< any >[];\n}\n\nconst FilterText = ( {\n\tactiveElements,\n\tfilterInView,\n\tfilter,\n}: FilterTextProps ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filters__summary-filter-text-name\" />,\n\t\tValue: (\n\t\t\t<span className=\"dataviews-filters__summary-filter-text-value\" />\n\t\t),\n\t};\n\n\tif ( filterInView?.operator === OPERATOR_IS_ANY ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NONE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is: Admin\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is not: Admin\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_LESS_THAN ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is less than: 10\". */\n\t\t\t\t__( '<Name>%1$s is less than: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_GREATER_THAN ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is greater than: 10\". */\n\t\t\t\t__( '<Name>%1$s is greater than: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_LESS_THAN_OR_EQUAL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is less than or equal to: 10\". */\n\t\t\t\t__(\n\t\t\t\t\t'<Name>%1$s is less than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_GREATER_THAN_OR_EQUAL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Price is greater than or equal to: 10\". */\n\t\t\t\t__(\n\t\t\t\t\t'<Name>%1$s is greater than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_CONTAINS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Title contains: Mars\". */\n\t\t\t\t__( '<Name>%1$s contains: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_NOT_CONTAINS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Description doesn't contain: photo\". */\n\t\t\t\t__( \"<Name>%1$s doesn't contain: </Name><Value>%2$s</Value>\" ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_STARTS_WITH ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Title starts with: Mar\". */\n\t\t\t\t__( '<Name>%1$s starts with: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_BEFORE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is before: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is before: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_AFTER ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is after: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is after: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_BEFORE_INC ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is on or before: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is on or before: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_AFTER_INC ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is on or after: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is on or after: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_BETWEEN ) {\n\t\tconst { label } = activeElements[ 0 ];\n\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Min value. 3: Max value. e.g.: \"Item count between (inc): 10 and 180\". */\n\t\t\t\t__(\n\t\t\t\t\t'<Name>%1$s between (inc): </Name><Value>%2$s and %3$s</Value>'\n\t\t\t\t),\n\t\t\t\tfilter.name,\n\t\t\t\tlabel[ 0 ],\n\t\t\t\tlabel[ 1 ]\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_ON ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_NOT_ON ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is not: 2024-01-01\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IN_THE_PAST ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is in the past: 1 days\". */\n\t\t\t\t__( '<Name>%1$s is in the past: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_OVER ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Date is over: 1 days ago\". */\n\t\t\t\t__( '<Name>%1$s is over: </Name><Value>%2$s</Value> ago' ),\n\t\t\t\tfilter.name,\n\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( {\n\tfilter,\n\tview,\n\tonChangeView,\n}: OperatorSelectorProps ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters?.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filters__summary-operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filters__summary-operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tclassName=\"dataviews-filters__summary-operators-filter-select\"\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst operator = newValue as Operator;\n\t\t\t\t\t\tconst currentOperator = currentFilter?.operator;\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ).map(\n\t\t\t\t\t\t\t\t\t\t( _filter ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Reset the value only when switching between operators that have different value types.\n\t\t\t\t\t\t\t\t\t\t\t\tconst OPERATORS_SHOULD_RESET_VALUE =\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\t\tOPERATOR_BETWEEN,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN_THE_PAST,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_OVER,\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\tconst shouldResetValue =\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentOperator &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t( OPERATORS_SHOULD_RESET_VALUE.includes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentOperator\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\t\tOPERATORS_SHOULD_RESET_VALUE.includes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) );\n\n\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: shouldResetValue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: _filter.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\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\treturn _filter;\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 ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function Filter( {\n\taddFilterRef,\n\topenedFilter,\n\tfields,\n\t...commonProps\n}: FilterProps ) {\n\tconst toggleRef = useRef< HTMLDivElement >( null );\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\n\tlet activeElements: Option[] = [];\n\n\tif ( filter.elements.length > 0 ) {\n\t\tactiveElements = filter.elements.filter( ( element ) => {\n\t\t\tif ( filter.singleSelection ) {\n\t\t\t\treturn element.value === filterInView?.value;\n\t\t\t}\n\t\t\treturn filterInView?.value?.includes( element.value );\n\t\t} );\n\t} else if ( filterInView?.value !== undefined ) {\n\t\tactiveElements = [\n\t\t\t{\n\t\t\t\tvalue: filterInView.value,\n\t\t\t\tlabel: filterInView.value,\n\t\t\t},\n\t\t];\n\t}\n\n\tconst isPrimary = filter.isPrimary;\n\tconst isLocked = filterInView?.isLocked;\n\tconst hasValues = ! isLocked && filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isLocked && ( ! isPrimary || hasValues );\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filters__summary-popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filters__summary-chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'dataviews-filters__summary-chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t\t'is-not-clickable': isLocked,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ isLocked ? -1 : 0 }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! isLocked ) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t! isLocked &&\n\t\t\t\t\t\t\t\t\t[ ENTER, SPACE ].includes( event.key )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-disabled={ isLocked }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElements={ activeElements }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-filters__summary-chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters?.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\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\t// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\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\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t{ commonProps.filter.elements.length > 0 ? (\n\t\t\t\t\t\t\t<SearchWidget\n\t\t\t\t\t\t\t\t{ ...commonProps }\n\t\t\t\t\t\t\t\tfilter={ {\n\t\t\t\t\t\t\t\t\t...commonProps.filter,\n\t\t\t\t\t\t\t\t\telements: commonProps.filter.elements,\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\t\t<InputWidget { ...commonProps } fields={ fields } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|