@wordpress/dataviews 4.9.1-next.cd6172eb0.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +33 -58
  3. package/build/components/dataviews/index.js +1 -0
  4. package/build/components/dataviews/index.js.map +1 -1
  5. package/build/components/dataviews-bulk-actions/index.js +30 -2
  6. package/build/components/dataviews-bulk-actions/index.js.map +1 -1
  7. package/build/components/dataviews-filters/add-filter.js +1 -0
  8. package/build/components/dataviews-filters/add-filter.js.map +1 -1
  9. package/build/components/dataviews-filters/filter-summary.js +1 -0
  10. package/build/components/dataviews-filters/filter-summary.js.map +1 -1
  11. package/build/components/dataviews-filters/index.js +1 -0
  12. package/build/components/dataviews-filters/index.js.map +1 -1
  13. package/build/components/dataviews-filters/reset-filters.js +1 -0
  14. package/build/components/dataviews-filters/reset-filters.js.map +1 -1
  15. package/build/components/dataviews-filters/search-widget.js +1 -0
  16. package/build/components/dataviews-filters/search-widget.js.map +1 -1
  17. package/build/components/dataviews-item-actions/index.js +59 -75
  18. package/build/components/dataviews-item-actions/index.js.map +1 -1
  19. package/build/components/dataviews-layout/index.js +1 -0
  20. package/build/components/dataviews-layout/index.js.map +1 -1
  21. package/build/components/dataviews-pagination/index.js +1 -0
  22. package/build/components/dataviews-pagination/index.js.map +1 -1
  23. package/build/components/dataviews-selection-checkbox/index.js +4 -3
  24. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  25. package/build/components/dataviews-view-config/index.js +195 -126
  26. package/build/components/dataviews-view-config/index.js.map +1 -1
  27. package/build/dataforms-layouts/data-form-layout.js +1 -0
  28. package/build/dataforms-layouts/data-form-layout.js.map +1 -1
  29. package/build/dataforms-layouts/index.js +1 -0
  30. package/build/dataforms-layouts/index.js.map +1 -1
  31. package/build/dataforms-layouts/panel/index.js +1 -0
  32. package/build/dataforms-layouts/panel/index.js.map +1 -1
  33. package/build/dataforms-layouts/regular/index.js +1 -0
  34. package/build/dataforms-layouts/regular/index.js.map +1 -1
  35. package/build/dataviews-layouts/grid/index.js +102 -66
  36. package/build/dataviews-layouts/grid/index.js.map +1 -1
  37. package/build/dataviews-layouts/index.js +0 -60
  38. package/build/dataviews-layouts/index.js.map +1 -1
  39. package/build/dataviews-layouts/list/index.js +44 -17
  40. package/build/dataviews-layouts/list/index.js.map +1 -1
  41. package/build/dataviews-layouts/table/column-header-menu.js +20 -24
  42. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
  43. package/build/dataviews-layouts/table/column-primary.js +55 -0
  44. package/build/dataviews-layouts/table/column-primary.js.map +1 -0
  45. package/build/dataviews-layouts/table/index.js +74 -88
  46. package/build/dataviews-layouts/table/index.js.map +1 -1
  47. package/build/dataviews-layouts/utils/get-clickable-item-props.js +2 -2
  48. package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -1
  49. package/build/filter-and-sort-data-view.js +1 -0
  50. package/build/filter-and-sort-data-view.js.map +1 -1
  51. package/build/normalize-fields.js +1 -0
  52. package/build/normalize-fields.js.map +1 -1
  53. package/build/normalize-form-fields.js +1 -0
  54. package/build/normalize-form-fields.js.map +1 -1
  55. package/build/types.js.map +1 -1
  56. package/build/utils.js +1 -0
  57. package/build/utils.js.map +1 -1
  58. package/build/validation.js +1 -0
  59. package/build/validation.js.map +1 -1
  60. package/build-module/components/dataviews/index.js +1 -0
  61. package/build-module/components/dataviews/index.js.map +1 -1
  62. package/build-module/components/dataviews-bulk-actions/index.js +31 -3
  63. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
  64. package/build-module/components/dataviews-filters/add-filter.js +1 -0
  65. package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
  66. package/build-module/components/dataviews-filters/filter-summary.js +1 -0
  67. package/build-module/components/dataviews-filters/filter-summary.js.map +1 -1
  68. package/build-module/components/dataviews-filters/index.js +1 -0
  69. package/build-module/components/dataviews-filters/index.js.map +1 -1
  70. package/build-module/components/dataviews-filters/reset-filters.js +1 -0
  71. package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
  72. package/build-module/components/dataviews-filters/search-widget.js +1 -0
  73. package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
  74. package/build-module/components/dataviews-item-actions/index.js +60 -75
  75. package/build-module/components/dataviews-item-actions/index.js.map +1 -1
  76. package/build-module/components/dataviews-layout/index.js +1 -0
  77. package/build-module/components/dataviews-layout/index.js.map +1 -1
  78. package/build-module/components/dataviews-pagination/index.js +1 -0
  79. package/build-module/components/dataviews-pagination/index.js.map +1 -1
  80. package/build-module/components/dataviews-selection-checkbox/index.js +4 -3
  81. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  82. package/build-module/components/dataviews-view-config/index.js +199 -130
  83. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  84. package/build-module/dataforms-layouts/data-form-layout.js +1 -0
  85. package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
  86. package/build-module/dataforms-layouts/index.js +1 -0
  87. package/build-module/dataforms-layouts/index.js.map +1 -1
  88. package/build-module/dataforms-layouts/panel/index.js +1 -0
  89. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  90. package/build-module/dataforms-layouts/regular/index.js +1 -0
  91. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  92. package/build-module/dataviews-layouts/grid/index.js +103 -67
  93. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  94. package/build-module/dataviews-layouts/index.js +0 -57
  95. package/build-module/dataviews-layouts/index.js.map +1 -1
  96. package/build-module/dataviews-layouts/list/index.js +44 -17
  97. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  98. package/build-module/dataviews-layouts/table/column-header-menu.js +20 -24
  99. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
  100. package/build-module/dataviews-layouts/table/column-primary.js +48 -0
  101. package/build-module/dataviews-layouts/table/column-primary.js.map +1 -0
  102. package/build-module/dataviews-layouts/table/index.js +77 -91
  103. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  104. package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +2 -2
  105. package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -1
  106. package/build-module/filter-and-sort-data-view.js +1 -0
  107. package/build-module/filter-and-sort-data-view.js.map +1 -1
  108. package/build-module/normalize-fields.js +1 -0
  109. package/build-module/normalize-fields.js.map +1 -1
  110. package/build-module/normalize-form-fields.js +1 -0
  111. package/build-module/normalize-form-fields.js.map +1 -1
  112. package/build-module/types.js.map +1 -1
  113. package/build-module/utils.js +1 -0
  114. package/build-module/utils.js.map +1 -1
  115. package/build-module/validation.js +1 -0
  116. package/build-module/validation.js.map +1 -1
  117. package/build-style/style-rtl.css +87 -75
  118. package/build-style/style.css +87 -75
  119. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  120. package/build-types/components/dataviews/stories/index.story.d.ts +0 -1
  121. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  122. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
  123. package/build-types/components/dataviews-item-actions/index.d.ts +7 -9
  124. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  125. package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -2
  126. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
  127. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  128. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  129. package/build-types/dataviews-layouts/index.d.ts +0 -4
  130. package/build-types/dataviews-layouts/index.d.ts.map +1 -1
  131. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  132. package/build-types/dataviews-layouts/table/column-header-menu.d.ts +1 -0
  133. package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
  134. package/build-types/dataviews-layouts/table/column-primary.d.ts +14 -0
  135. package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -0
  136. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  137. package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +3 -3
  138. package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +1 -1
  139. package/build-types/types.d.ts +20 -39
  140. package/build-types/types.d.ts.map +1 -1
  141. package/build-wp/index.js +1185 -1317
  142. package/build.js +1 -1
  143. package/package.json +10 -10
  144. package/src/components/dataviews/stories/fixtures.tsx +0 -3
  145. package/src/components/dataviews/stories/index.story.tsx +14 -106
  146. package/src/components/dataviews/style.scss +33 -33
  147. package/src/components/dataviews-bulk-actions/index.tsx +43 -3
  148. package/src/components/dataviews-item-actions/index.tsx +84 -99
  149. package/src/components/dataviews-selection-checkbox/index.tsx +4 -4
  150. package/src/components/dataviews-view-config/index.tsx +301 -195
  151. package/src/components/dataviews-view-config/style.scss +17 -0
  152. package/src/dataviews-layouts/grid/index.tsx +136 -101
  153. package/src/dataviews-layouts/grid/style.scss +16 -25
  154. package/src/dataviews-layouts/index.ts +0 -88
  155. package/src/dataviews-layouts/list/index.tsx +62 -32
  156. package/src/dataviews-layouts/list/style.scss +5 -4
  157. package/src/dataviews-layouts/table/column-header-menu.tsx +94 -86
  158. package/src/dataviews-layouts/table/column-primary.tsx +58 -0
  159. package/src/dataviews-layouts/table/index.tsx +88 -133
  160. package/src/dataviews-layouts/table/style.scss +4 -0
  161. package/src/dataviews-layouts/utils/get-clickable-item-props.ts +9 -3
  162. package/src/types.ts +21 -46
  163. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.10.0 (2024-12-11)
6
+
7
+ ## Breaking Changes
8
+
9
+ - Support showing or hiding title, media and description fields ([#67477](https://github.com/WordPress/gutenberg/pull/67477)).
10
+ - Unify the `title`, `media` and `description` fields for the different layouts. So instead of the previous `view.layout.mediaField`, `view.layout.primaryField` and `view.layout.columnFields`, all the layouts now support these three fields with the following config ([#67477](https://github.com/WordPress/gutenberg/pull/67477)):
11
+
12
+ ```js
13
+ const view = {
14
+ type: 'table',
15
+ titleField: 'title',
16
+ mediaField: 'media',
17
+ descriptionField: 'description',
18
+ fields: [ 'author', 'date' ],
19
+ }
20
+ ```
21
+
5
22
  ## Internal
6
23
 
7
24
  - Upgraded `@ariakit/react` (v0.4.13) and `@ariakit/test` (v0.4.5) ([#65907](https://github.com/WordPress/gutenberg/pull/65907)).
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # The `@wordpress/dataviews` package
2
2
 
3
- The DataViews package offers two React components and a few utilites to work with a list of data:
3
+ The DataViews package offers two React components and a few utilities to work with a list of data:
4
4
 
5
5
  - `DataViews`: to render the dataset using different types of layouts (table, grid, list) and interaction capabilities (search, filters, sorting, etc.).
6
6
  - `DataForm`: to edit the items of the dataset.
@@ -15,7 +15,7 @@ npm install @wordpress/dataviews --save
15
15
 
16
16
  ## `DataViews`
17
17
 
18
- <div class="callout callout-info">At <a href="https://wordpress.github.io/gutenberg/">WordPress Gutenberg's Storybook</a> there's and <a href="https://wordpress.github.io/gutenberg/?path=/docs/dataviews-dataviews--docs">example implementation of the Dataviews component</a>.</div>
18
+ <div class="callout callout-info">At <a href="https://wordpress.github.io/gutenberg/">WordPress Gutenberg's Storybook</a> there's an <a href="https://wordpress.github.io/gutenberg/?path=/docs/dataviews-dataviews--docs">example implementation of the Dataviews component</a>.</div>
19
19
 
20
20
  **Important note** If you're trying to use the `DataViews` component in a WordPress plugin or theme and you're building your scripts using the `@wordpress/scripts` package, you need to import the components from `@wordpress/dataviews/wp` instead of `@wordpress/dataviews`.
21
21
 
@@ -68,13 +68,13 @@ const data = [
68
68
  ];
69
69
  ```
70
70
 
71
- The data can come from anywhere, from a static JSON file to a dynamic source like a HTTP Request. It's the consumer's responsiblity to query the data source appropiately and update the dataset based on the user's choices for sorting, filtering, etc.
71
+ The data can come from anywhere, from a static JSON file to a dynamic source like an HTTP Request. It's the consumer's responsibility to query the data source appropriately and update the dataset based on the user's choices for sorting, filtering, etc.
72
72
 
73
73
  Each record should have an `id` that identifies them uniquely. If they don't, the consumer should provide the `getItemId` property to `DataViews`: a function that returns an unique identifier for the record.
74
74
 
75
75
  #### `getItemId`: `function`
76
76
 
77
- Function that receives an item and returns an unique identifier for it.
77
+ A function that receives an item and returns a unique identifier for it.
78
78
 
79
79
  It's optional. The field will get a default implementation by `DataViews` that returns the value of the `item[ id ]`.
80
80
 
@@ -165,6 +165,7 @@ const view = {
165
165
  field: 'date',
166
166
  direction: 'desc',
167
167
  },
168
+ titleField: 'title',
168
169
  fields: [ 'author', 'status' ],
169
170
  layout: {},
170
171
  };
@@ -184,55 +185,27 @@ Properties:
184
185
 
185
186
  - `field`: the field used for sorting the dataset.
186
187
  - `direction`: the direction to use for sorting, one of `asc` or `desc`.
187
-
188
- - `fields`: a list of field `id` that are visible in the UI and the specific order in which they are displayed.
188
+ - `titleField`: The id of the field representing the title of the record.
189
+ - `mediaField`: The id of the field representing the media of the record.
190
+ - `descriptionField`: The id of the field representing the description of the record.
191
+ - `showTitle`: Whether the title should be shown in the UI. `true` by default.
192
+ - `showMedia`: Whether the media should be shown in the UI. `true` by default.
193
+ - `showDescription`: Whether the description should be shown in the UI. `true` by default.
194
+ - `fields`: a list of remaining field `id` that are visible in the UI and the specific order in which they are displayed.
189
195
  - `layout`: config that is specific to a particular layout type.
190
196
 
191
197
  ##### Properties of `layout`
192
198
 
193
199
  | Properties of `layout` | Table | Grid | List |
194
200
  | --------------------------------------------------------------------------------------------------------------- | ----- | ---- | ---- |
195
- | `primaryField`: the field's `id` to be highlighted in each layout. It's not hidable. | ✓ | ✓ | ✓ |
196
- | `mediaField`: the field's `id` to be used for rendering each card's media. It's not hiddable. | | ✓ | ✓ |
197
- | `columnFields`: a list of field's `id` to render vertically stacked instead of horizontally (the default). | | ✓ | |
198
201
  | `badgeFields`: a list of field's `id` to render without label and styled as badges. | | ✓ | |
199
- | `combinedFields`: a list of "virtual" fields that are made by combining others. See "Combining fields" section. | ✓ | | |
200
202
  | `styles`: additional `width`, `maxWidth`, `minWidth` styles for each field column. | ✓ | | |
201
203
 
202
- ##### Combining fields
203
-
204
- The `table` layout has the ability to create "virtual" fields that are made out by combining existing ones.
205
-
206
- Each "virtual field", has to provide an `id` and `label` (optionally a `header` instead), which have the same meaning as any other field.
207
-
208
- Additionally, they need to provide:
209
-
210
- - `children`: a list of field's `id` to combine
211
- - `direction`: how should they be stacked, `vertical` or `horizontal`
212
-
213
- For example, this is how you'd define a `site` field which is a combination of a `title` and `description` fields, which are not displayed:
214
-
215
- ```js
216
- {
217
- fields: [ 'site', 'status' ],
218
- layout: {
219
- combinedFields: [
220
- {
221
- id: 'site',
222
- label: 'Site',
223
- children: [ 'title', 'description' ],
224
- direction: 'vertical',
225
- }
226
- ]
227
- }
228
- }
229
- ```
230
-
231
204
  #### `onChangeView`: `function`
232
205
 
233
206
  Callback executed when the view has changed. It receives the new view object as a parameter.
234
207
 
235
- The view is a representation of the visible state of the dataset: what type of layout is used to display it (table, grid, etc.), how the dataset is filtered, how it is sorted or paginated. It's the consumer's responsibility to use the view config to query the data provider and make sure the user decisions (sort, pagination, filters, etc.) are respected.
208
+ The view is a representation of the visible state of the dataset: what type of layout is used to display it (table, grid, etc.), how the dataset is filtered, and how it is sorted or paginated. The consumer is responsible for using the view config to query the data provider and ensure the user decisions (sort, pagination, filters, etc.) are respected.
236
209
 
237
210
  The following example shows how a view object is used to query the WordPress REST API via the entities abstraction. The same can be done with any other data provider.
238
211
 
@@ -255,6 +228,7 @@ function MyCustomPageTable() {
255
228
  value: [ 'publish', 'draft' ],
256
229
  },
257
230
  ],
231
+ titleField: 'title',
258
232
  fields: [ 'author', 'status' ],
259
233
  layout: {},
260
234
  } );
@@ -363,37 +337,38 @@ Whether the data is loading. `false` by default.
363
337
 
364
338
  #### `defaultLayouts`: `Record< string, view >`
365
339
 
366
- This property provides layout information about the view types that are active. If empty, enables all layout types (see "Layout Types") with empty layout data.
340
+ This property provides layout information about active view types. If empty, this enables all layout types (see "Layout Types") with empty layout data.
367
341
 
368
342
  For example, this is how you'd enable only the table view type:
369
343
 
370
344
  ```js
371
345
  const defaultLayouts = {
372
346
  table: {
373
- layout: {
374
- primaryField: 'my-key',
375
- },
347
+ showMedia: false,
376
348
  },
349
+ grid: {
350
+ showMedia: true,
351
+ }
377
352
  };
378
353
  ```
379
354
 
380
- The `defaultLayouts` property should be an object that includes properties named `table`, `grid`, or `list`. Each of these properties should contain a `layout` property, which holds the configuration for each specific layout type. Check "Properties of layout" for the full list of properties available for each layout's configuration
355
+ The `defaultLayouts` property should be an object that includes properties named `table`, `grid`, or `list`. These properties are applied to the view object each time the user switches to the corresponding layout.
381
356
 
382
357
  #### `selection`: `string[]`
383
358
 
384
359
  The list of selected items' ids.
385
360
 
386
- If `selection` and `onChangeSelection` are provided, the `DataViews` component behaves as a controlled component, otherwise, it behaves like an uncontrolled component.
361
+ If `selection` and `onChangeSelection` are provided, the `DataViews` component behaves like a controlled component. Otherwise, it behaves like an uncontrolled component.
387
362
 
388
363
  #### `onChangeSelection`: `function`
389
364
 
390
- Callback that signals the user selected one of more items. It receives the list of selected items' ids as a parameter.
365
+ Callback that signals the user selected one of more items. It receives the list of selected items' IDs as a parameter.
391
366
 
392
- If `selection` and `onChangeSelection` are provided, the `DataViews` component behaves as a controlled component, otherwise, it behaves like an uncontrolled component.
367
+ If `selection` and `onChangeSelection` are provided, the `DataViews` component behaves like a controlled component. Otherwise, it behaves like an uncontrolled component.
393
368
 
394
369
  ### `isItemClickable`: `function`
395
370
 
396
- A function that determines if a media field or a primary field are clickable. It receives an item as an argument and returns a boolean value indicating whether the item can be clicked.
371
+ A function that determines if a media field or a primary field is clickable. It receives an item as an argument and returns a boolean value indicating whether the item can be clicked.
397
372
 
398
373
  ### `onClickItem`: `function`
399
374
 
@@ -430,7 +405,7 @@ const Example = () => {
430
405
 
431
406
  A single item to be edited.
432
407
 
433
- It can be think of as a single record coming from the `data` property of `DataViews` — though it doesn't need to be. It can be totally separated or a mix of records if your app supports bulk editing.
408
+ It can be thought of as a single record coming from the `data` property of `DataViews` — though it doesn't need to be. It can be totally separated or a mix of records if your app supports bulk editing.
434
409
 
435
410
  #### `fields`: `Object[]`
436
411
 
@@ -525,7 +500,7 @@ Returns an object containing:
525
500
 
526
501
  ### `isItemValid`
527
502
 
528
- Utility to determine whether or not the given item's value is valid according to the current fields and form config.
503
+ Utility is used to determine whether or not the given item's value is valid according to the current fields and form configuration.
529
504
 
530
505
  Parameters:
531
506
 
@@ -712,7 +687,7 @@ Example:
712
687
 
713
688
  Field type. One of `text`, `integer`, `datetime`.
714
689
 
715
- If a field declares a `type`, it gets default implementations for the `sort`, `isValid`, and `Edit` functions. They will overriden if the field provides its own.
690
+ If a field declares a `type`, it gets default implementations for the `sort`, `isValid`, and `Edit` functions if no other values are specified.
716
691
 
717
692
  - Type: `string`.
718
693
  - Optional.
@@ -757,7 +732,7 @@ Example:
757
732
 
758
733
  ### `getValue`
759
734
 
760
- React component that returns the value of a field. This value is used in sorting the fields, or when filtering.
735
+ React component that returns the value of a field. This value is used to sort or filter the fields.
761
736
 
762
737
  - Type: React component.
763
738
  - Optional.
@@ -1002,13 +977,13 @@ Example:
1002
977
 
1003
978
  ### `elements`
1004
979
 
1005
- List of valid values for a field. If provided, it creates a DataViews' filter for the field. DataForm's edit control will use these values as well (see `Edit` field property).
980
+ List of valid values for a field. If provided, it creates a DataViews' filter for the field. DataForm's edit control will also use these values. (See `Edit` field property.)
1006
981
 
1007
982
  - Type: `array` of objects.
1008
983
  - Optional.
1009
984
  - Each object can have the following properties:
1010
- - `value`: required, the value to match against the field's value.
1011
- - `label`: required, the name to display to users.
985
+ - `value`: the value to match against the field's value. (Required)
986
+ - `label`: the name to display to users. (Required)
1012
987
  - `description`: optional, a longer description of the item.
1013
988
 
1014
989
  Example:
@@ -1031,7 +1006,7 @@ Configuration of the filters.
1031
1006
  - Type: `object`.
1032
1007
  - Optional.
1033
1008
  - Properties:
1034
- - `operators`: the list of operators supported by the field. See "operators" below. By default, a filter will support the `isAny` and `isNone` multi-selection operators.
1009
+ - `operators`: the list of operators supported by the field. See "operators" below. A filter will support the `isAny` and `isNone` multi-selection operators by default.
1035
1010
  - `isPrimary`: boolean, optional. Indicates if the filter is primary. A primary filter is always visible and is not listed in the "Add filter" component, except for the list layout where it behaves like a secondary filter.
1036
1011
 
1037
1012
  Operators:
@@ -1045,7 +1020,7 @@ Operators:
1045
1020
  | `isAll` | Multiple items | `AND`. The item's field has all of the values in the list. | Category is all: Book, Review, Science Fiction |
1046
1021
  | `isNotAll` | Multiple items | `NOT AND`. The item's field doesn't have all of the values in the list. | Category is not all: Book, Review, Science Fiction |
1047
1022
 
1048
- `is` and `isNot` are single-selection operators, while `isAny`, `isNone`, `isAll`, and `isNotALl` are multi-selection. By default, a filter with no operators declared will support the `isAny` and `isNone` multi-selection operators. A filter cannot mix single-selection & multi-selection operators; if a single-selection operator is present in the list of valid operators, the multi-selection ones will be discarded and the filter won't allow selecting more than one item.
1023
+ `is` and `isNot` are single-selection operators, while `isAny`, `isNone`, `isAll`, and `isNotALl` are multi-selection. A filter with no operators declared will support the `isAny` and `isNone` multi-selection operators by default. A filter cannot mix single-selection & multi-selection operators; if a single-selection operator is present in the list of valid operators, the multi-selection ones will be discarded, and the filter won't allow selecting more than one item.
1049
1024
 
1050
1025
  Example:
1051
1026
 
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","isItemClickable","header","selectionState","setSelectionState","useState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","isShowingFilter","setIsShowingFilter","isPrimary","jsx","Provider","children","jsxs","className","__experimentalHStack","alignment","justify","spacing","expanded","label","FiltersToggle","style","flexShrink"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\n\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nexport default function DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >( () =>\n\t\t( filters || [] ).some( ( filter ) => filter.isPrimary )\n\t);\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t\t<FiltersToggle\n\t\t\t\t\t\t\tfilters={ filters }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\tsetIsShowingFilter={ setIsShowingFilter }\n\t\t\t\t\t\t\tisShowingFilter={ isShowingFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DataViewsViewConfig\n\t\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ isShowingFilter && <DataViewsFilters /> }\n\t\t\t\t<DataViewsLayout />\n\t\t\t\t<DataViewsFooter />\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","isItemClickable","header","selectionState","setSelectionState","useState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","isShowingFilter","setIsShowingFilter","isPrimary","jsx","Provider","children","jsxs","className","__experimentalHStack","alignment","justify","spacing","expanded","label","FiltersToggle","style","flexShrink"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\n\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nexport default function DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >( () =>\n\t\t( filters || [] ).some( ( filter ) => filter.isPrimary )\n\t);\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t\t<FiltersToggle\n\t\t\t\t\t\t\tfilters={ filters }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\tsetIsShowingFilter={ setIsShowingFilter }\n\t\t\t\t\t\t\tisShowingFilter={ isShowingFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DataViewsViewConfig\n\t\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ isShowingFilter && <DataViewsFilters /> }\n\t\t\t\t<DataViewsLayout />\n\t\t\t\t<DataViewsFooter />\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -16,6 +17,10 @@ var _icons = require("@wordpress/icons");
16
17
  var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
17
18
  var _dataviewsItemActions = require("../dataviews-item-actions");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
20
+ /**
21
+ * External dependencies
22
+ */
23
+
19
24
  /**
20
25
  * WordPress dependencies
21
26
  */
@@ -24,6 +29,29 @@ var _jsxRuntime = require("react/jsx-runtime");
24
29
  * Internal dependencies
25
30
  */
26
31
 
32
+ function ActionWithModal({
33
+ action,
34
+ items,
35
+ ActionTriggerComponent
36
+ }) {
37
+ const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
38
+ const actionTriggerProps = {
39
+ action,
40
+ onClick: () => {
41
+ setIsModalOpen(true);
42
+ },
43
+ items
44
+ };
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ActionTriggerComponent, {
47
+ ...actionTriggerProps
48
+ }), isModalOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.ActionModal, {
49
+ action: action,
50
+ items: items,
51
+ closeModal: () => setIsModalOpen(false)
52
+ })]
53
+ });
54
+ }
27
55
  function useHasAPossibleBulkAction(actions, item) {
28
56
  return (0, _element.useMemo)(() => {
29
57
  return actions.some(action => {
@@ -102,10 +130,10 @@ function ActionButton({
102
130
  });
103
131
  }, [action, selectedItems]);
104
132
  if ('RenderModal' in action) {
105
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.ActionWithModal, {
133
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionWithModal, {
106
134
  action: action,
107
135
  items: selectedEligibleItems,
108
- ActionTrigger: ActionTrigger
136
+ ActionTriggerComponent: ActionTrigger
109
137
  }, action.id);
110
138
  }
111
139
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionTrigger, {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_data","_icons","_dataviewsContext","_interopRequireDefault","_dataviewsItemActions","_jsxRuntime","useHasAPossibleBulkAction","actions","item","useMemo","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","BulkSelectionCheckbox","selection","onChangeSelection","getItemId","selectableItems","filter","selectedItems","includes","areAllSelected","length","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","indeterminate","onChange","map","__","ActionTrigger","onClick","isBusy","items","label","Button","disabled","accessibleWhenDisabled","icon","isDestructive","size","tooltipPosition","EMPTY_ARRAY","ActionButton","actionInProgress","setActionInProgress","registry","useRegistry","selectedEligibleItems","ActionWithModal","id","callback","renderFooterContent","actionsToShow","message","sprintf","_n","jsxs","__experimentalHStack","expanded","spacing","children","closeSmall","showTooltip","FooterContent","useState","footerContentRef","useRef","bulkActions","current","BulkActionsFooter","useContext","DataViewsContext"],"sources":["@wordpress/dataviews/src/components/dataviews-bulk-actions/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionWithModal } from '../dataviews-item-actions';\nimport type { Action } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\n\nexport function useHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\ninterface BulkSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function BulkSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && !! selectedItems.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonChangeSelection( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselectableItems.map( ( item ) => getItemId( item ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isBusy }\n\t\t\taccessibleWhenDisabled\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ async () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\tawait action.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t\tsetActionInProgress( null );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderFooterContent< Item >(\n\tdata: Item[],\n\tactions: Action< Item >[],\n\tgetItemId: ( item: Item ) => string,\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\tconst message =\n\t\tselectedItems.length > 0\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d Item selected',\n\t\t\t\t\t\t'%d Items selected',\n\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedItems.length\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n( '%d Item', '%d Items', data.length ),\n\t\t\t\t\tdata.length\n\t\t\t );\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tclassName=\"dataviews-bulk-actions-footer__container\"\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<BulkSelectionCheckbox\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tdata={ data }\n\t\t\t\tactions={ actions }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t/>\n\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t{ message }\n\t\t\t</span>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-bulk-actions-footer__action-buttons\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ selectedItems.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\t\taccessibleWhenDisabled={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nfunction FooterContent< Item >( {\n\tselection,\n\tactions,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst footerContentRef = useRef< JSX.Element | null >( null );\n\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\tif ( ! actionInProgress ) {\n\t\tif ( footerContentRef.current ) {\n\t\t\tfooterContentRef.current = null;\n\t\t}\n\t\treturn renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! footerContentRef.current ) {\n\t\tfooterContentRef.current = renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn footerContentRef.current;\n}\n\nexport function BulkActionsFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\treturn (\n\t\t<FooterContent\n\t\t\tselection={ selection }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tdata={ data }\n\t\t\tactions={ actions }\n\t\t\tgetItemId={ getItemId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_data","_icons","_dataviewsContext","_interopRequireDefault","_dataviewsItemActions","_jsxRuntime","ActionWithModal","action","items","ActionTriggerComponent","isModalOpen","setIsModalOpen","useState","actionTriggerProps","onClick","jsxs","Fragment","children","jsx","ActionModal","closeModal","useHasAPossibleBulkAction","actions","item","useMemo","some","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","BulkSelectionCheckbox","selection","onChangeSelection","getItemId","selectableItems","filter","selectedItems","includes","areAllSelected","length","CheckboxControl","className","__nextHasNoMarginBottom","checked","indeterminate","onChange","map","__","ActionTrigger","isBusy","label","Button","disabled","accessibleWhenDisabled","icon","isDestructive","size","tooltipPosition","EMPTY_ARRAY","ActionButton","actionInProgress","setActionInProgress","registry","useRegistry","selectedEligibleItems","id","callback","renderFooterContent","actionsToShow","message","sprintf","_n","__experimentalHStack","expanded","spacing","closeSmall","showTooltip","FooterContent","footerContentRef","useRef","bulkActions","current","BulkActionsFooter","useContext","DataViewsContext"],"sources":["@wordpress/dataviews/src/components/dataviews-bulk-actions/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionModal } from '../dataviews-item-actions';\nimport type { Action, ActionModal as ActionModalType } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\n\ninterface ActionWithModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tActionTriggerComponent: (\n\t\tprops: ActionTriggerProps< Item >\n\t) => ReactElement;\n}\n\nfunction ActionWithModal< Item >( {\n\taction,\n\titems,\n\tActionTriggerComponent,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTriggerComponent { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function useHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\ninterface BulkSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function BulkSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && !! selectedItems.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonChangeSelection( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselectableItems.map( ( item ) => getItemId( item ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isBusy }\n\t\t\taccessibleWhenDisabled\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTriggerComponent={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ async () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\tawait action.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t\tsetActionInProgress( null );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderFooterContent< Item >(\n\tdata: Item[],\n\tactions: Action< Item >[],\n\tgetItemId: ( item: Item ) => string,\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\tconst message =\n\t\tselectedItems.length > 0\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d Item selected',\n\t\t\t\t\t\t'%d Items selected',\n\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedItems.length\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n( '%d Item', '%d Items', data.length ),\n\t\t\t\t\tdata.length\n\t\t\t );\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tclassName=\"dataviews-bulk-actions-footer__container\"\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<BulkSelectionCheckbox\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tdata={ data }\n\t\t\t\tactions={ actions }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t/>\n\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t{ message }\n\t\t\t</span>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-bulk-actions-footer__action-buttons\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ selectedItems.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\t\taccessibleWhenDisabled={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nfunction FooterContent< Item >( {\n\tselection,\n\tactions,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst footerContentRef = useRef< JSX.Element | null >( null );\n\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\tif ( ! actionInProgress ) {\n\t\tif ( footerContentRef.current ) {\n\t\t\tfooterContentRef.current = null;\n\t\t}\n\t\treturn renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! footerContentRef.current ) {\n\t\tfooterContentRef.current = renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn footerContentRef.current;\n}\n\nexport function BulkActionsFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\treturn (\n\t\t<FooterContent\n\t\t\tselection={ selection }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tdata={ data }\n\t\t\tactions={ actions }\n\t\t\tgetItemId={ getItemId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","AddFilterMenu","filters","view","onChangeView","setOpenedFilter","trigger","inactiveFilters","filter","isVisible","jsx","children","map","Item","onClick","field","page","value","undefined","operator","operators","ItemLabel","name","AddFilter","ref","length","every","isPrimary","Button","accessibleWhenDisabled","size","className","variant","disabled","__","_default","exports","default","forwardRef"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/add-filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Ref } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport type { NormalizedFilter, View } from '../../types';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface AddFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n}\n\nexport function AddFilterMenu( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\ttrigger,\n}: AddFilterProps & {\n\ttrigger: React.ReactNode;\n} ) {\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<Menu trigger={ trigger }>\n\t\t\t{ inactiveFilters.map( ( filter ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetOpenedFilter( filter.field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\tfilters: [\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\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Menu.ItemLabel>{ filter.name }</Menu.ItemLabel>\n\t\t\t\t\t</Menu.Item>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Menu>\n\t);\n}\n\nfunction AddFilter(\n\t{ filters, view, onChangeView, setOpenedFilter }: AddFilterProps,\n\tref: Ref< HTMLButtonElement >\n) {\n\tif ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {\n\t\treturn null;\n\t}\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<AddFilterMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tdisabled={ ! inactiveFilters.length }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\t{ ...{ filters, view, onChangeView, setOpenedFilter } }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( AddFilter );\n"],"mappings":";;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAlB3C;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;;AAIA,MAAM;EAAEK;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AASzC,SAASC,aAAaA,CAAE;EAC9BC,OAAO;EACPC,IAAI;EACJC,YAAY;EACZC,eAAe;EACfC;AAGD,CAAC,EAAG;EACH,MAAMC,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACC,IAAAZ,WAAA,CAAAa,GAAA,EAACZ,IAAI;IAACQ,OAAO,EAAGA,OAAS;IAAAK,QAAA,EACtBJ,eAAe,CAACK,GAAG,CAAIJ,MAAM,IAAM;MACpC,oBACC,IAAAX,WAAA,CAAAa,GAAA,EAACZ,IAAI,CAACe,IAAI;QAETC,OAAO,EAAGA,CAAA,KAAM;UACfT,eAAe,CAAEG,MAAM,CAACO,KAAM,CAAC;UAC/BX,YAAY,CAAE;YACb,GAAGD,IAAI;YACPa,IAAI,EAAE,CAAC;YACPd,OAAO,EAAE,CACR,IAAKC,IAAI,CAACD,OAAO,IAAI,EAAE,CAAE,EACzB;cACCa,KAAK,EAAEP,MAAM,CAACO,KAAK;cACnBE,KAAK,EAAEC,SAAS;cAChBC,QAAQ,EAAEX,MAAM,CAACY,SAAS,CAAE,CAAC;YAC9B,CAAC;UAEH,CAAE,CAAC;QACJ,CAAG;QAAAT,QAAA,eAEH,IAAAd,WAAA,CAAAa,GAAA,EAACZ,IAAI,CAACuB,SAAS;UAAAV,QAAA,EAAGH,MAAM,CAACc;QAAI,CAAkB;MAAC,GAjB1Cd,MAAM,CAACO,KAkBH,CAAC;IAEd,CAAE;EAAC,CACE,CAAC;AAET;AAEA,SAASQ,SAASA,CACjB;EAAErB,OAAO;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAgC,CAAC,EAChEmB,GAA6B,EAC5B;EACD,IAAK,CAAEtB,OAAO,CAACuB,MAAM,IAAIvB,OAAO,CAACwB,KAAK,CAAE,CAAE;IAAEC;EAAU,CAAC,KAAMA,SAAU,CAAC,EAAG;IAC1E,OAAO,IAAI;EACZ;EACA,MAAMpB,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACC,IAAAZ,WAAA,CAAAa,GAAA,EAACT,aAAa;IACbK,OAAO,eACN,IAAAT,WAAA,CAAAa,GAAA,EAAClB,WAAA,CAAAoC,MAAM;MACNC,sBAAsB;MACtBC,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,0BAA0B;MACpCC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,CAAE1B,eAAe,CAACkB,MAAQ;MACrCD,GAAG,EAAGA,GAAK;MAAAb,QAAA,EAET,IAAAuB,QAAE,EAAE,YAAa;IAAC,CACb,CACR;IACMhC,OAAO;IAAEC,IAAI;IAAEC,YAAY;IAAEC;EAAe,CACnD,CAAC;AAEJ;AAAC,IAAA8B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,mBAAU,EAAEf,SAAU,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","AddFilterMenu","filters","view","onChangeView","setOpenedFilter","trigger","inactiveFilters","filter","isVisible","jsx","children","map","Item","onClick","field","page","value","undefined","operator","operators","ItemLabel","name","AddFilter","ref","length","every","isPrimary","Button","accessibleWhenDisabled","size","className","variant","disabled","__","_default","exports","default","forwardRef"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/add-filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Ref } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport type { NormalizedFilter, View } from '../../types';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface AddFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n}\n\nexport function AddFilterMenu( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\ttrigger,\n}: AddFilterProps & {\n\ttrigger: React.ReactNode;\n} ) {\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<Menu trigger={ trigger }>\n\t\t\t{ inactiveFilters.map( ( filter ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetOpenedFilter( filter.field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\tfilters: [\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\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Menu.ItemLabel>{ filter.name }</Menu.ItemLabel>\n\t\t\t\t\t</Menu.Item>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Menu>\n\t);\n}\n\nfunction AddFilter(\n\t{ filters, view, onChangeView, setOpenedFilter }: AddFilterProps,\n\tref: Ref< HTMLButtonElement >\n) {\n\tif ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {\n\t\treturn null;\n\t}\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<AddFilterMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tdisabled={ ! inactiveFilters.length }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\t{ ...{ filters, view, onChangeView, setOpenedFilter } }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( AddFilter );\n"],"mappings":";;;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAlB3C;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;;AAIA,MAAM;EAAEK;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AASzC,SAASC,aAAaA,CAAE;EAC9BC,OAAO;EACPC,IAAI;EACJC,YAAY;EACZC,eAAe;EACfC;AAGD,CAAC,EAAG;EACH,MAAMC,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACC,IAAAZ,WAAA,CAAAa,GAAA,EAACZ,IAAI;IAACQ,OAAO,EAAGA,OAAS;IAAAK,QAAA,EACtBJ,eAAe,CAACK,GAAG,CAAIJ,MAAM,IAAM;MACpC,oBACC,IAAAX,WAAA,CAAAa,GAAA,EAACZ,IAAI,CAACe,IAAI;QAETC,OAAO,EAAGA,CAAA,KAAM;UACfT,eAAe,CAAEG,MAAM,CAACO,KAAM,CAAC;UAC/BX,YAAY,CAAE;YACb,GAAGD,IAAI;YACPa,IAAI,EAAE,CAAC;YACPd,OAAO,EAAE,CACR,IAAKC,IAAI,CAACD,OAAO,IAAI,EAAE,CAAE,EACzB;cACCa,KAAK,EAAEP,MAAM,CAACO,KAAK;cACnBE,KAAK,EAAEC,SAAS;cAChBC,QAAQ,EAAEX,MAAM,CAACY,SAAS,CAAE,CAAC;YAC9B,CAAC;UAEH,CAAE,CAAC;QACJ,CAAG;QAAAT,QAAA,eAEH,IAAAd,WAAA,CAAAa,GAAA,EAACZ,IAAI,CAACuB,SAAS;UAAAV,QAAA,EAAGH,MAAM,CAACc;QAAI,CAAkB;MAAC,GAjB1Cd,MAAM,CAACO,KAkBH,CAAC;IAEd,CAAE;EAAC,CACE,CAAC;AAET;AAEA,SAASQ,SAASA,CACjB;EAAErB,OAAO;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAgC,CAAC,EAChEmB,GAA6B,EAC5B;EACD,IAAK,CAAEtB,OAAO,CAACuB,MAAM,IAAIvB,OAAO,CAACwB,KAAK,CAAE,CAAE;IAAEC;EAAU,CAAC,KAAMA,SAAU,CAAC,EAAG;IAC1E,OAAO,IAAI;EACZ;EACA,MAAMpB,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACC,IAAAZ,WAAA,CAAAa,GAAA,EAACT,aAAa;IACbK,OAAO,eACN,IAAAT,WAAA,CAAAa,GAAA,EAAClB,WAAA,CAAAoC,MAAM;MACNC,sBAAsB;MACtBC,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,0BAA0B;MACpCC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,CAAE1B,eAAe,CAACkB,MAAQ;MACrCD,GAAG,EAAGA,GAAK;MAAAb,QAAA,EAET,IAAAuB,QAAE,EAAE,YAAa;IAAC,CACb,CACR;IACMhC,OAAO;IAAEC,IAAI;IAAEC,YAAY;IAAEC;EAAe,CACnD,CAAC;AAEJ;AAAC,IAAA8B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,mBAAU,EAAEf,SAAU,CAAC","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_searchWidget","_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","OperatorSelector","view","onChangeView","operatorOptions","operators","value","OPERATORS","currentFilter","filters","find","_filter","field","jsxs","__experimentalHStack","spacing","justify","children","FlexItem","SelectControl","options","onChange","newValue","_view$filters","_view$filters2","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","useRef","f","elements","singleSelection","includes","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-summary.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 {\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} from '../../constants';\nimport type {\n\tFilter,\n\tNormalizedFilter,\n\tOperator,\n\tOption,\n\tView,\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 FilterSummaryProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\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. 3: 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. 3: 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. 3: 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. 3: 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. 3: 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. 3: 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\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\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 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\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\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\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 FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n}: FilterSummaryProps ) {\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\tconst activeElements = filter.elements.filter( ( element ) => {\n\t\tif ( filter.singleSelection ) {\n\t\t\treturn element.value === filterInView?.value;\n\t\t}\n\t\treturn filterInView?.value?.includes( element.value );\n\t} );\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<SearchWidget { ...commonProps } />\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":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_searchWidget","_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","OperatorSelector","view","onChangeView","operatorOptions","operators","value","OPERATORS","currentFilter","filters","find","_filter","field","jsxs","__experimentalHStack","spacing","justify","children","FlexItem","SelectControl","options","onChange","newValue","_view$filters","_view$filters2","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","useRef","f","elements","singleSelection","includes","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-summary.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 {\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} from '../../constants';\nimport type {\n\tFilter,\n\tNormalizedFilter,\n\tOperator,\n\tOption,\n\tView,\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 FilterSummaryProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\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. 3: 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. 3: 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. 3: 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. 3: 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. 3: 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. 3: 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\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\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 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\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\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\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 FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n}: FilterSummaryProps ) {\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\tconst activeElements = filter.elements.filter( ( element ) => {\n\t\tif ( filter.singleSelection ) {\n\t\t\treturn element.value === filterInView?.value;\n\t\t}\n\t\treturn filterInView?.value?.includes( element.value );\n\t} );\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<SearchWidget { ...commonProps } />\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":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");