@wordpress/dataviews 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +3 -13
  3. package/build/add-filter.js.map +1 -1
  4. package/build/bulk-actions.js.map +1 -1
  5. package/build/constants.js +1 -4
  6. package/build/constants.js.map +1 -1
  7. package/build/dataviews.js +3 -17
  8. package/build/dataviews.js.map +1 -1
  9. package/build/dropdown-menu-helper.js.map +1 -1
  10. package/build/filter-and-sort-data-view.js +147 -0
  11. package/build/filter-and-sort-data-view.js.map +1 -0
  12. package/build/filter-summary.js +4 -2
  13. package/build/filter-summary.js.map +1 -1
  14. package/build/filters.js +11 -17
  15. package/build/filters.js.map +1 -1
  16. package/build/index.js +3 -9
  17. package/build/index.js.map +1 -1
  18. package/build/item-actions.js.map +1 -1
  19. package/build/lock-unlock.js.map +1 -1
  20. package/build/normalize-fields.js +25 -0
  21. package/build/normalize-fields.js.map +1 -0
  22. package/build/pagination.js.map +1 -1
  23. package/build/reset-filters.js.map +1 -1
  24. package/build/search-widget.js +5 -4
  25. package/build/search-widget.js.map +1 -1
  26. package/build/search.js.map +1 -1
  27. package/build/single-selection-checkbox.js +1 -1
  28. package/build/single-selection-checkbox.js.map +1 -1
  29. package/build/utils.js +1 -65
  30. package/build/utils.js.map +1 -1
  31. package/build/view-actions.js.map +1 -1
  32. package/build/view-grid.js +57 -19
  33. package/build/view-grid.js.map +1 -1
  34. package/build/view-list.js +112 -66
  35. package/build/view-list.js.map +1 -1
  36. package/build/view-table.js +32 -24
  37. package/build/view-table.js.map +1 -1
  38. package/build-module/add-filter.js.map +1 -1
  39. package/build-module/bulk-actions.js.map +1 -1
  40. package/build-module/constants.js +0 -3
  41. package/build-module/constants.js.map +1 -1
  42. package/build-module/dataviews.js +3 -17
  43. package/build-module/dataviews.js.map +1 -1
  44. package/build-module/dropdown-menu-helper.js.map +1 -1
  45. package/build-module/filter-and-sort-data-view.js +139 -0
  46. package/build-module/filter-and-sort-data-view.js.map +1 -0
  47. package/build-module/filter-summary.js +3 -2
  48. package/build-module/filter-summary.js.map +1 -1
  49. package/build-module/filters.js +12 -18
  50. package/build-module/filters.js.map +1 -1
  51. package/build-module/index.js +1 -1
  52. package/build-module/index.js.map +1 -1
  53. package/build-module/item-actions.js.map +1 -1
  54. package/build-module/lock-unlock.js.map +1 -1
  55. package/build-module/normalize-fields.js +19 -0
  56. package/build-module/normalize-fields.js.map +1 -0
  57. package/build-module/pagination.js.map +1 -1
  58. package/build-module/reset-filters.js.map +1 -1
  59. package/build-module/search-widget.js +4 -3
  60. package/build-module/search-widget.js.map +1 -1
  61. package/build-module/search.js.map +1 -1
  62. package/build-module/single-selection-checkbox.js +1 -1
  63. package/build-module/single-selection-checkbox.js.map +1 -1
  64. package/build-module/utils.js +0 -63
  65. package/build-module/utils.js.map +1 -1
  66. package/build-module/view-actions.js.map +1 -1
  67. package/build-module/view-grid.js +58 -20
  68. package/build-module/view-grid.js.map +1 -1
  69. package/build-module/view-list.js +114 -68
  70. package/build-module/view-list.js.map +1 -1
  71. package/build-module/view-table.js +33 -25
  72. package/build-module/view-table.js.map +1 -1
  73. package/build-style/style-rtl.css +75 -39
  74. package/build-style/style.css +75 -39
  75. package/package.json +11 -11
  76. package/src/constants.js +0 -3
  77. package/src/dataviews.js +2 -16
  78. package/src/filter-and-sort-data-view.js +154 -0
  79. package/src/filter-summary.js +4 -4
  80. package/src/filters.js +20 -32
  81. package/src/index.js +1 -1
  82. package/src/normalize-fields.js +17 -0
  83. package/src/search-widget.js +4 -3
  84. package/src/single-selection-checkbox.js +1 -1
  85. package/src/stories/fixtures.js +75 -1
  86. package/src/stories/index.story.js +5 -113
  87. package/src/style.scss +89 -49
  88. package/src/test/filter-and-sort-data-view.js +276 -0
  89. package/src/utils.js +0 -52
  90. package/src/view-grid.js +97 -36
  91. package/src/view-list.js +147 -77
  92. package/src/view-table.js +36 -24
@@ -0,0 +1,139 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import removeAccents from 'remove-accents';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_NONE, OPERATOR_IS_ANY, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from './constants';
10
+ import { normalizeFields } from './normalize-fields';
11
+ function normalizeSearchInput(input = '') {
12
+ return removeAccents(input.trim().toLowerCase());
13
+ }
14
+ const EMPTY_ARRAY = [];
15
+
16
+ /**
17
+ * Applies the filtering, sorting and pagination to the raw data based on the view configuration.
18
+ *
19
+ * @param {any[]} data Raw data.
20
+ * @param {Object} view View config.
21
+ * @param {Object[]} fields Fields config.
22
+ *
23
+ * @return {Object} { data: any[], paginationInfo: { totalItems: number, totalPages: number } }
24
+ */
25
+ export function filterSortAndPaginate(data, view, fields) {
26
+ if (!data) {
27
+ return {
28
+ data: EMPTY_ARRAY,
29
+ paginationInfo: {
30
+ totalItems: 0,
31
+ totalPages: 0
32
+ }
33
+ };
34
+ }
35
+ const _fields = normalizeFields(fields);
36
+ let filteredData = [...data];
37
+ // Handle global search.
38
+ if (view.search) {
39
+ const normalizedSearch = normalizeSearchInput(view.search);
40
+ filteredData = filteredData.filter(item => {
41
+ return _fields.filter(field => field.enableGlobalSearch).map(field => {
42
+ return normalizeSearchInput(field.getValue({
43
+ item
44
+ }));
45
+ }).some(field => field.includes(normalizedSearch));
46
+ });
47
+ }
48
+ if (view.filters.length > 0) {
49
+ view.filters.forEach(filter => {
50
+ const field = _fields.find(_field => _field.id === filter.field);
51
+ if (filter.operator === OPERATOR_IS_ANY && filter?.value?.length > 0) {
52
+ filteredData = filteredData.filter(item => {
53
+ const fieldValue = field.getValue({
54
+ item
55
+ });
56
+ if (Array.isArray(fieldValue)) {
57
+ return filter.value.some(filterValue => fieldValue.includes(filterValue));
58
+ } else if (typeof fieldValue === 'string') {
59
+ return filter.value.includes(fieldValue);
60
+ }
61
+ return false;
62
+ });
63
+ } else if (filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
64
+ filteredData = filteredData.filter(item => {
65
+ const fieldValue = field.getValue({
66
+ item
67
+ });
68
+ if (Array.isArray(fieldValue)) {
69
+ return !filter.value.some(filterValue => fieldValue.includes(filterValue));
70
+ } else if (typeof fieldValue === 'string') {
71
+ return !filter.value.includes(fieldValue);
72
+ }
73
+ return false;
74
+ });
75
+ } else if (filter.operator === OPERATOR_IS_ALL && filter?.value?.length > 0) {
76
+ filteredData = filteredData.filter(item => {
77
+ return filter.value.every(value => {
78
+ return field.getValue({
79
+ item
80
+ }).includes(value);
81
+ });
82
+ });
83
+ } else if (filter.operator === OPERATOR_IS_NOT_ALL && filter?.value?.length > 0) {
84
+ filteredData = filteredData.filter(item => {
85
+ return filter.value.every(value => {
86
+ return !field.getValue({
87
+ item
88
+ }).includes(value);
89
+ });
90
+ });
91
+ } else if (filter.operator === OPERATOR_IS) {
92
+ filteredData = filteredData.filter(item => {
93
+ return filter.value === field.getValue({
94
+ item
95
+ });
96
+ });
97
+ } else if (filter.operator === OPERATOR_IS_NOT) {
98
+ filteredData = filteredData.filter(item => {
99
+ return filter.value !== field.getValue({
100
+ item
101
+ });
102
+ });
103
+ }
104
+ });
105
+ }
106
+
107
+ // Handle sorting.
108
+ if (view.sort) {
109
+ const fieldId = view.sort.field;
110
+ const fieldToSort = _fields.find(field => {
111
+ return field.id === fieldId;
112
+ });
113
+ filteredData.sort((a, b) => {
114
+ var _fieldToSort$getValue, _fieldToSort$getValue2;
115
+ const valueA = (_fieldToSort$getValue = fieldToSort.getValue({
116
+ item: a
117
+ })) !== null && _fieldToSort$getValue !== void 0 ? _fieldToSort$getValue : '';
118
+ const valueB = (_fieldToSort$getValue2 = fieldToSort.getValue({
119
+ item: b
120
+ })) !== null && _fieldToSort$getValue2 !== void 0 ? _fieldToSort$getValue2 : '';
121
+ return view.sort.direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
122
+ });
123
+ }
124
+
125
+ // Handle pagination.
126
+ const hasPagination = view.page && view.perPage;
127
+ const start = hasPagination ? (view.page - 1) * view.perPage : 0;
128
+ const totalItems = filteredData?.length || 0;
129
+ const totalPages = hasPagination ? Math.ceil(totalItems / view.perPage) : 1;
130
+ filteredData = hasPagination ? filteredData?.slice(start, start + view.perPage) : filteredData;
131
+ return {
132
+ data: filteredData,
133
+ paginationInfo: {
134
+ totalItems,
135
+ totalPages
136
+ }
137
+ };
138
+ }
139
+ //# sourceMappingURL=filter-and-sort-data-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["removeAccents","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","value","fieldValue","Array","isArray","filterValue","every","sort","fieldId","fieldToSort","a","b","_fieldToSort$getValue","_fieldToSort$getValue2","valueA","valueB","direction","localeCompare","hasPagination","page","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param {any[]} data Raw data.\n * @param {Object} view View config.\n * @param {Object[]} fields Fields config.\n *\n * @return {Object} { data: any[], paginationInfo: { totalItems: number, totalPages: number } }\n */\nexport function filterSortAndPaginate( data, view, fields ) {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif (\n\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\treturn filter.value.some( ( filterValue ) =>\n\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\treturn ! filter.value.some( ( filterValue ) =>\n\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value.every( ( value ) => {\n\t\t\t\t\t\treturn field.getValue( { item } ).includes( value );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value.every( ( value ) => {\n\t\t\t\t\t\treturn ! field.getValue( { item } ).includes( value );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t} );\n\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tfilteredData.sort( ( a, b ) => {\n\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\treturn view.sort.direction === 'asc'\n\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t: valueB.localeCompare( valueA );\n\t\t} );\n\t}\n\n\t// Handle pagination.\n\tconst hasPagination = view.page && view.perPage;\n\tconst start = hasPagination ? ( view.page - 1 ) * view.perPage : 0;\n\tconst totalItems = filteredData?.length || 0;\n\tconst totalPages = hasPagination\n\t\t? Math.ceil( totalItems / view.perPage )\n\t\t: 1;\n\tfilteredData = hasPagination\n\t\t? filteredData?.slice( start, start + view.perPage )\n\t\t: filteredData;\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,8 @@ import { Dropdown, __experimentalVStack as VStack, __experimentalHStack as HStac
11
11
  import { __, sprintf } from '@wordpress/i18n';
12
12
  import { useRef, createInterpolateElement } from '@wordpress/element';
13
13
  import { closeSmall } from '@wordpress/icons';
14
- import { ENTER, SPACE } from '@wordpress/keycodes';
14
+ const ENTER = 'Enter';
15
+ const SPACE = ' ';
15
16
 
16
17
  /**
17
18
  * Internal dependencies
@@ -155,7 +156,7 @@ export default function FilterSummary({
155
156
  tabIndex: 0,
156
157
  onClick: onToggle,
157
158
  onKeyDown: event => {
158
- if ([ENTER, SPACE].includes(event.keyCode)) {
159
+ if ([ENTER, SPACE].includes(event.key)) {
159
160
  onToggle();
160
161
  event.preventDefault();
161
162
  }
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","createElement","className","Value","operator","map","element","label","join","OperatorSelector","view","onChangeView","operatorOptions","operators","value","currentFilter","filters","find","_filter","field","spacing","justify","options","onChange","newValue","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","singleSelection","includes","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","keyCode","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/filter-summary.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\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';\n\nconst FilterText = ( { activeElements, filterInView, filter } ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filter-summary__filter-text-name\" />,\n\t\tValue: <span className=\"dataviews-filter-summary__filter-text-value\" />,\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( { filter, view, onChangeView } ) {\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-filter-summary__operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filter-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 newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\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\toperator: newValue,\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn _filter;\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: newValue,\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} ) {\n\tconst toggleRef = useRef();\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters.find( ( f ) => f.field === filter.field );\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-filter-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-filter-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={ classnames(\n\t\t\t\t\t\t\t\t'dataviews-filter-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 (\n\t\t\t\t\t\t\t\t\t[ ENTER, SPACE ].includes( event.keyCode )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-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={ classnames(\n\t\t\t\t\t\t\t\t\t'dataviews-filter-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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"}
1
+ {"version":3,"names":["classnames","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","createElement","className","Value","operator","map","element","label","join","OperatorSelector","view","onChangeView","operatorOptions","operators","value","currentFilter","filters","find","_filter","field","spacing","justify","options","onChange","newValue","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","singleSelection","includes","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","key","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/filter-summary.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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';\n\nconst FilterText = ( { activeElements, filterInView, filter } ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filter-summary__filter-text-name\" />,\n\t\tValue: <span className=\"dataviews-filter-summary__filter-text-value\" />,\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( { filter, view, onChangeView } ) {\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-filter-summary__operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filter-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 newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\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\toperator: newValue,\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn _filter;\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: newValue,\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} ) {\n\tconst toggleRef = useRef();\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters.find( ( f ) => f.field === filter.field );\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-filter-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-filter-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={ classnames(\n\t\t\t\t\t\t\t\t'dataviews-filter-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={ classnames(\n\t\t\t\t\t\t\t\t\t'dataviews-filter-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":[]}
@@ -11,7 +11,7 @@ import FilterSummary from './filter-summary';
11
11
  import AddFilter from './add-filter';
12
12
  import ResetFilters from './reset-filters';
13
13
  import { sanitizeOperators } from './utils';
14
- import { ENUMERATION_TYPE, ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from './constants';
14
+ import { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from './constants';
15
15
  import { __experimentalHStack as HStack } from '@wordpress/components';
16
16
  const Filters = memo(function Filters({
17
17
  fields,
@@ -23,29 +23,23 @@ const Filters = memo(function Filters({
23
23
  const addFilterRef = useRef();
24
24
  const filters = [];
25
25
  fields.forEach(field => {
26
- if (!field.type) {
26
+ if (!field.elements?.length) {
27
27
  return;
28
28
  }
29
29
  const operators = sanitizeOperators(field);
30
30
  if (operators.length === 0) {
31
31
  return;
32
32
  }
33
- switch (field.type) {
34
- case ENUMERATION_TYPE:
35
- if (!field.elements?.length) {
36
- return;
37
- }
38
- const isPrimary = !!field.filterBy?.isPrimary;
39
- filters.push({
40
- field: field.id,
41
- name: field.header,
42
- elements: field.elements,
43
- singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),
44
- operators,
45
- isVisible: isPrimary || view.filters.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),
46
- isPrimary
47
- });
48
- }
33
+ const isPrimary = !!field.filterBy?.isPrimary;
34
+ filters.push({
35
+ field: field.id,
36
+ name: field.header,
37
+ elements: field.elements,
38
+ singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),
39
+ operators,
40
+ isVisible: isPrimary || view.filters.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),
41
+ isPrimary
42
+ });
49
43
  });
50
44
  // Sort filters by primary property. We need the primary filters to be first.
51
45
  // Then we sort by name.
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useRef","FilterSummary","AddFilter","ResetFilters","sanitizeOperators","ENUMERATION_TYPE","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","__experimentalHStack","HStack","Filters","fields","view","onChangeView","openedFilter","setOpenedFilter","addFilterRef","filters","forEach","field","type","operators","length","elements","isPrimary","filterBy","push","id","name","header","singleSelection","some","op","includes","isVisible","f","operator","sort","a","b","localeCompare","addFilter","createElement","key","ref","filterComponents","map","filter","justify","style","width","wrap"],"sources":["@wordpress/dataviews/src/filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport { sanitizeOperators } from './utils';\nimport {\n\tENUMERATION_TYPE,\n\tALL_OPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n} from './constants';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\nconst Filters = memo( function Filters( {\n\tfields,\n\tview,\n\tonChangeView,\n\topenedFilter,\n\tsetOpenedFilter,\n} ) {\n\tconst addFilterRef = useRef();\n\tconst filters = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.type ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = sanitizeOperators( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( field.type ) {\n\t\t\tcase ENUMERATION_TYPE:\n\t\t\t\tif ( ! field.elements?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\t\t\tfilters.push( {\n\t\t\t\t\tfield: field.id,\n\t\t\t\t\tname: field.header,\n\t\t\t\t\telements: field.elements,\n\t\t\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t\t\t),\n\t\t\t\t\toperators,\n\t\t\t\t\tisVisible:\n\t\t\t\t\t\tisPrimary ||\n\t\t\t\t\t\tview.filters.some(\n\t\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t\t\t),\n\t\t\t\t\tisPrimary,\n\t\t\t\t} );\n\t\t}\n\t} );\n\t// Sort filters by primary property. We need the primary filters to be first.\n\t// Then we sort by name.\n\tfilters.sort( ( a, b ) => {\n\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\treturn -1;\n\t\t}\n\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn a.name.localeCompare( b.name );\n\t} );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst filterComponents = [\n\t\t...filters.map( ( filter ) => {\n\t\t\tif ( ! filter.isVisible ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tif ( filterComponents.length > 1 ) {\n\t\tfilterComponents.push(\n\t\t\t<ResetFilters\n\t\t\t\tkey=\"reset-filters\"\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack justify=\"flex-start\" style={ { width: 'fit-content' } } wrap>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n} );\n\nexport default Filters;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,MAAM,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,SAASC,iBAAiB,QAAQ,SAAS;AAC3C,SACCC,gBAAgB,EAChBC,aAAa,EACbC,WAAW,EACXC,eAAe,QACT,aAAa;AACpB,SAASC,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AAEtE,MAAMC,OAAO,GAAGZ,IAAI,CAAE,SAASY,OAAOA,CAAE;EACvCC,MAAM;EACNC,IAAI;EACJC,YAAY;EACZC,YAAY;EACZC;AACD,CAAC,EAAG;EACH,MAAMC,YAAY,GAAGjB,MAAM,CAAC,CAAC;EAC7B,MAAMkB,OAAO,GAAG,EAAE;EAClBN,MAAM,CAACO,OAAO,CAAIC,KAAK,IAAM;IAC5B,IAAK,CAAEA,KAAK,CAACC,IAAI,EAAG;MACnB;IACD;IAEA,MAAMC,SAAS,GAAGlB,iBAAiB,CAAEgB,KAAM,CAAC;IAC5C,IAAKE,SAAS,CAACC,MAAM,KAAK,CAAC,EAAG;MAC7B;IACD;IAEA,QAASH,KAAK,CAACC,IAAI;MAClB,KAAKhB,gBAAgB;QACpB,IAAK,CAAEe,KAAK,CAACI,QAAQ,EAAED,MAAM,EAAG;UAC/B;QACD;QAEA,MAAME,SAAS,GAAG,CAAC,CAAEL,KAAK,CAACM,QAAQ,EAAED,SAAS;QAC9CP,OAAO,CAACS,IAAI,CAAE;UACbP,KAAK,EAAEA,KAAK,CAACQ,EAAE;UACfC,IAAI,EAAET,KAAK,CAACU,MAAM;UAClBN,QAAQ,EAAEJ,KAAK,CAACI,QAAQ;UACxBO,eAAe,EAAET,SAAS,CAACU,IAAI,CAAIC,EAAE,IACpC,CAAE1B,WAAW,EAAEC,eAAe,CAAE,CAAC0B,QAAQ,CAAED,EAAG,CAC/C,CAAC;UACDX,SAAS;UACTa,SAAS,EACRV,SAAS,IACTZ,IAAI,CAACK,OAAO,CAACc,IAAI,CACdI,CAAC,IACFA,CAAC,CAAChB,KAAK,KAAKA,KAAK,CAACQ,EAAE,IACpBtB,aAAa,CAAC4B,QAAQ,CAAEE,CAAC,CAACC,QAAS,CACrC,CAAC;UACFZ;QACD,CAAE,CAAC;IACL;EACD,CAAE,CAAC;EACH;EACA;EACAP,OAAO,CAACoB,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAM;IACzB,IAAKD,CAAC,CAACd,SAAS,IAAI,CAAEe,CAAC,CAACf,SAAS,EAAG;MACnC,OAAO,CAAC,CAAC;IACV;IACA,IAAK,CAAEc,CAAC,CAACd,SAAS,IAAIe,CAAC,CAACf,SAAS,EAAG;MACnC,OAAO,CAAC;IACT;IACA,OAAOc,CAAC,CAACV,IAAI,CAACY,aAAa,CAAED,CAAC,CAACX,IAAK,CAAC;EACtC,CAAE,CAAC;EACH,MAAMa,SAAS,GACdC,aAAA,CAACzC,SAAS;IACT0C,GAAG,EAAC,YAAY;IAChB1B,OAAO,EAAGA,OAAS;IACnBL,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7B+B,GAAG,EAAG5B,YAAc;IACpBD,eAAe,EAAGA;EAAiB,CACnC,CACD;EACD,MAAM8B,gBAAgB,GAAG,CACxB,GAAG5B,OAAO,CAAC6B,GAAG,CAAIC,MAAM,IAAM;IAC7B,IAAK,CAAEA,MAAM,CAACb,SAAS,EAAG;MACzB,OAAO,IAAI;IACZ;IAEA,OACCQ,aAAA,CAAC1C,aAAa;MACb2C,GAAG,EAAGI,MAAM,CAAC5B,KAAO;MACpB4B,MAAM,EAAGA,MAAQ;MACjBnC,IAAI,EAAGA,IAAM;MACbC,YAAY,EAAGA,YAAc;MAC7BG,YAAY,EAAGA,YAAc;MAC7BF,YAAY,EAAGA;IAAc,CAC7B,CAAC;EAEJ,CAAE,CAAC,EACH2B,SAAS,CACT;EAED,IAAKI,gBAAgB,CAACvB,MAAM,GAAG,CAAC,EAAG;IAClCuB,gBAAgB,CAACnB,IAAI,CACpBgB,aAAA,CAACxC,YAAY;MACZyC,GAAG,EAAC,eAAe;MACnB1B,OAAO,EAAGA,OAAS;MACnBL,IAAI,EAAGA,IAAM;MACbC,YAAY,EAAGA;IAAc,CAC7B,CACF,CAAC;EACF;EAEA,OACC6B,aAAA,CAACjC,MAAM;IAACuC,OAAO,EAAC,YAAY;IAACC,KAAK,EAAG;MAAEC,KAAK,EAAE;IAAc,CAAG;IAACC,IAAI;EAAA,GACjEN,gBACK,CAAC;AAEX,CAAE,CAAC;AAEH,eAAenC,OAAO"}
1
+ {"version":3,"names":["memo","useRef","FilterSummary","AddFilter","ResetFilters","sanitizeOperators","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","__experimentalHStack","HStack","Filters","fields","view","onChangeView","openedFilter","setOpenedFilter","addFilterRef","filters","forEach","field","elements","length","operators","isPrimary","filterBy","push","id","name","header","singleSelection","some","op","includes","isVisible","f","operator","sort","a","b","localeCompare","addFilter","createElement","key","ref","filterComponents","map","filter","justify","style","width","wrap"],"sources":["@wordpress/dataviews/src/filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport { sanitizeOperators } from './utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from './constants';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\nconst Filters = memo( function Filters( {\n\tfields,\n\tview,\n\tonChangeView,\n\topenedFilter,\n\tsetOpenedFilter,\n} ) {\n\tconst addFilterRef = useRef();\n\tconst filters = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.elements?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = sanitizeOperators( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\tfilters.push( {\n\t\t\tfield: field.id,\n\t\t\tname: field.header,\n\t\t\telements: field.elements,\n\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t),\n\t\t\toperators,\n\t\t\tisVisible:\n\t\t\t\tisPrimary ||\n\t\t\t\tview.filters.some(\n\t\t\t\t\t( f ) =>\n\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t),\n\t\t\tisPrimary,\n\t\t} );\n\t} );\n\t// Sort filters by primary property. We need the primary filters to be first.\n\t// Then we sort by name.\n\tfilters.sort( ( a, b ) => {\n\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\treturn -1;\n\t\t}\n\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn a.name.localeCompare( b.name );\n\t} );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst filterComponents = [\n\t\t...filters.map( ( filter ) => {\n\t\t\tif ( ! filter.isVisible ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tif ( filterComponents.length > 1 ) {\n\t\tfilterComponents.push(\n\t\t\t<ResetFilters\n\t\t\t\tkey=\"reset-filters\"\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack justify=\"flex-start\" style={ { width: 'fit-content' } } wrap>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n} );\n\nexport default Filters;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  export { default as DataViews } from './dataviews';
2
- export { sortByTextFields, getPaginationResults } from './utils';
3
2
  export { VIEW_LAYOUTS } from './constants';
3
+ export { filterSortAndPaginate } from './filter-and-sort-data-view';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","DataViews","sortByTextFields","getPaginationResults","VIEW_LAYOUTS"],"sources":["@wordpress/dataviews/src/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { sortByTextFields, getPaginationResults } from './utils';\nexport { VIEW_LAYOUTS } from './constants';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa;AAClD,SAASC,gBAAgB,EAAEC,oBAAoB,QAAQ,SAAS;AAChE,SAASC,YAAY,QAAQ,aAAa"}
1
+ {"version":3,"names":["default","DataViews","VIEW_LAYOUTS","filterSortAndPaginate"],"sources":["@wordpress/dataviews/src/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { VIEW_LAYOUTS } from './constants';\nexport { filterSortAndPaginate } from './filter-and-sort-data-view';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa;AAClD,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,qBAAqB,QAAQ,6BAA6B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Modal","__experimentalHStack","HStack","privateApis","componentsPrivateApis","__","useMemo","useState","moreVertical","unlock","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","kebabCase","ButtonTrigger","action","onClick","createElement","label","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","RenderModal","ActionWithModal","item","ActionTrigger","isModalOpen","setIsModalOpen","actionTriggerProps","hideModalHeader","Fragment","title","modalHeader","__experimentalHideHeader","onRequestClose","overlayClassName","id","items","closeModal","ActionsDropdownMenuGroup","actions","map","key","callback","ItemActions","isCompact","primaryActions","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","spacing","justify","className","style","flexShrink","width","length","trigger","disabled","placement"],"sources":["@wordpress/dataviews/src/item-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nfunction ButtonTrigger( { action, onClick } ) {\n\treturn (\n\t\t<Button\n\t\t\tlabel={ action.label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger( { action, onClick } ) {\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! action.RenderModal }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ action.label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionWithModal( { action, item, ActionTrigger } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => setIsModalOpen( true ),\n\t};\n\tconst { RenderModal, hideModalHeader } = action;\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ action.modalHeader || action.label }\n\t\t\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\t\t\taction.id\n\t\t\t\t\t) }` }\n\t\t\t\t>\n\t\t\t\t\t<RenderModal\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ActionsDropdownMenuGroup( { actions, item } ) {\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( !! action.RenderModal ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => action.callback( [ item ] ) }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions( { item, actions, isCompact } ) {\n\tconst { primaryActions, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn <CompactItemActions item={ item } actions={ eligibleActions } />;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( !! action.RenderModal ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\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\treturn (\n\t\t\t\t\t\t<ButtonTrigger\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\tonClick={ () => action.callback( [ item ] ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions( { item, actions } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t<ActionsDropdownMenuGroup actions={ actions } item={ item } />\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","Modal","__experimentalHStack","HStack","privateApis","componentsPrivateApis","__","useMemo","useState","moreVertical","unlock","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","kebabCase","ButtonTrigger","action","onClick","createElement","label","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","RenderModal","ActionWithModal","item","ActionTrigger","isModalOpen","setIsModalOpen","actionTriggerProps","hideModalHeader","Fragment","title","modalHeader","__experimentalHideHeader","onRequestClose","overlayClassName","id","items","closeModal","ActionsDropdownMenuGroup","actions","map","key","callback","ItemActions","isCompact","primaryActions","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","spacing","justify","className","style","flexShrink","width","length","trigger","disabled","placement"],"sources":["@wordpress/dataviews/src/item-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nfunction ButtonTrigger( { action, onClick } ) {\n\treturn (\n\t\t<Button\n\t\t\tlabel={ action.label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger( { action, onClick } ) {\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! action.RenderModal }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ action.label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionWithModal( { action, item, ActionTrigger } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => setIsModalOpen( true ),\n\t};\n\tconst { RenderModal, hideModalHeader } = action;\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ action.modalHeader || action.label }\n\t\t\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\t\t\taction.id\n\t\t\t\t\t) }` }\n\t\t\t\t>\n\t\t\t\t\t<RenderModal\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ActionsDropdownMenuGroup( { actions, item } ) {\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( !! action.RenderModal ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => action.callback( [ item ] ) }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions( { item, actions, isCompact } ) {\n\tconst { primaryActions, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn <CompactItemActions item={ item } actions={ eligibleActions } />;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( !! action.RenderModal ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\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\treturn (\n\t\t\t\t\t\t<ButtonTrigger\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\tonClick={ () => action.callback( [ item ] ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions( { item, actions } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t<ActionsDropdownMenuGroup actions={ actions } item={ item } />\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,KAAK,EACLC,oBAAoB,IAAIC,MAAM,EAC9BC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AAEtC,MAAM;EACLC,cAAc,EAAEC,YAAY;EAC5BC,mBAAmB,EAAEC,iBAAiB;EACtCC,kBAAkB,EAAEC,gBAAgB;EACpCC,uBAAuB,EAAEC,qBAAqB;EAC9CC;AACD,CAAC,GAAGT,MAAM,CAAEL,qBAAsB,CAAC;AAEnC,SAASe,aAAaA,CAAE;EAAEC,MAAM;EAAEC;AAAQ,CAAC,EAAG;EAC7C,OACCC,aAAA,CAACvB,MAAM;IACNwB,KAAK,EAAGH,MAAM,CAACG,KAAO;IACtBC,IAAI,EAAGJ,MAAM,CAACI,IAAM;IACpBC,aAAa,EAAGL,MAAM,CAACK,aAAe;IACtCC,IAAI,EAAC,SAAS;IACdL,OAAO,EAAGA;EAAS,CACnB,CAAC;AAEJ;AAEA,SAASM,uBAAuBA,CAAE;EAAEP,MAAM;EAAEC;AAAQ,CAAC,EAAG;EACvD,OACCC,aAAA,CAACP,gBAAgB;IAChBM,OAAO,EAAGA,OAAS;IACnBO,WAAW,EAAG,CAAER,MAAM,CAACS;EAAa,GAEpCP,aAAA,CAACL,qBAAqB,QAAGG,MAAM,CAACG,KAA8B,CAC7C,CAAC;AAErB;AAEA,SAASO,eAAeA,CAAE;EAAEV,MAAM;EAAEW,IAAI;EAAEC;AAAc,CAAC,EAAG;EAC3D,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG3B,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM4B,kBAAkB,GAAG;IAC1Bf,MAAM;IACNC,OAAO,EAAEA,CAAA,KAAMa,cAAc,CAAE,IAAK;EACrC,CAAC;EACD,MAAM;IAAEL,WAAW;IAAEO;EAAgB,CAAC,GAAGhB,MAAM;EAC/C,OACCE,aAAA,CAAAe,QAAA,QACCf,aAAA,CAACU,aAAa;IAAA,GAAMG;EAAkB,CAAI,CAAC,EACzCF,WAAW,IACZX,aAAA,CAACtB,KAAK;IACLsC,KAAK,EAAGlB,MAAM,CAACmB,WAAW,IAAInB,MAAM,CAACG,KAAO;IAC5CiB,wBAAwB,EAAG,CAAC,CAAEJ,eAAiB;IAC/CK,cAAc,EAAGA,CAAA,KAAM;MACtBP,cAAc,CAAE,KAAM,CAAC;IACxB,CAAG;IACHQ,gBAAgB,EAAI,kDAAkDxB,SAAS,CAC9EE,MAAM,CAACuB,EACR,CAAG;EAAG,GAENrB,aAAA,CAACO,WAAW;IACXe,KAAK,EAAG,CAAEb,IAAI,CAAI;IAClBc,UAAU,EAAGA,CAAA,KAAMX,cAAc,CAAE,KAAM;EAAG,CAC5C,CACK,CAEP,CAAC;AAEL;AAEA,SAASY,wBAAwBA,CAAE;EAAEC,OAAO;EAAEhB;AAAK,CAAC,EAAG;EACtD,OACCT,aAAA,CAACT,iBAAiB,QACfkC,OAAO,CAACC,GAAG,CAAI5B,MAAM,IAAM;IAC5B,IAAK,CAAC,CAAEA,MAAM,CAACS,WAAW,EAAG;MAC5B,OACCP,aAAA,CAACQ,eAAe;QACfmB,GAAG,EAAG7B,MAAM,CAACuB,EAAI;QACjBvB,MAAM,EAAGA,MAAQ;QACjBW,IAAI,EAAGA,IAAM;QACbC,aAAa,EAAGL;MAAyB,CACzC,CAAC;IAEJ;IACA,OACCL,aAAA,CAACK,uBAAuB;MACvBsB,GAAG,EAAG7B,MAAM,CAACuB,EAAI;MACjBvB,MAAM,EAAGA,MAAQ;MACjBC,OAAO,EAAGA,CAAA,KAAMD,MAAM,CAAC8B,QAAQ,CAAE,CAAEnB,IAAI,CAAG;IAAG,CAC7C,CAAC;EAEJ,CAAE,CACgB,CAAC;AAEtB;AAEA,eAAe,SAASoB,WAAWA,CAAE;EAAEpB,IAAI;EAAEgB,OAAO;EAAEK;AAAU,CAAC,EAAG;EACnE,MAAM;IAAEC,cAAc;IAAEC;EAAgB,CAAC,GAAGhD,OAAO,CAAE,MAAM;IAC1D;IACA;IACA,MAAMiD,gBAAgB,GAAGR,OAAO,CAACS,MAAM,CACpCpC,MAAM,IAAM,CAAEA,MAAM,CAACqC,UAAU,IAAIrC,MAAM,CAACqC,UAAU,CAAE1B,IAAK,CAC9D,CAAC;IACD,MAAM2B,eAAe,GAAGH,gBAAgB,CAACC,MAAM,CAC5CpC,MAAM,IAAMA,MAAM,CAACuC,SAAS,IAAI,CAAC,CAAEvC,MAAM,CAACI,IAC7C,CAAC;IACD,OAAO;MACN6B,cAAc,EAAEK,eAAe;MAC/BJ,eAAe,EAAEC;IAClB,CAAC;EACF,CAAC,EAAE,CAAER,OAAO,EAAEhB,IAAI,CAAG,CAAC;EACtB,IAAKqB,SAAS,EAAG;IAChB,OAAO9B,aAAA,CAACsC,kBAAkB;MAAC7B,IAAI,EAAGA,IAAM;MAACgB,OAAO,EAAGO;IAAiB,CAAE,CAAC;EACxE;EACA,OACChC,aAAA,CAACpB,MAAM;IACN2D,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,wBAAwB;IAClCC,KAAK,EAAG;MACPC,UAAU,EAAE,GAAG;MACfC,KAAK,EAAE;IACR;EAAG,GAED,CAAC,CAAEb,cAAc,CAACc,MAAM,IACzBd,cAAc,CAACL,GAAG,CAAI5B,MAAM,IAAM;IACjC,IAAK,CAAC,CAAEA,MAAM,CAACS,WAAW,EAAG;MAC5B,OACCP,aAAA,CAACQ,eAAe;QACfmB,GAAG,EAAG7B,MAAM,CAACuB,EAAI;QACjBvB,MAAM,EAAGA,MAAQ;QACjBW,IAAI,EAAGA,IAAM;QACbC,aAAa,EAAGb;MAAe,CAC/B,CAAC;IAEJ;IACA,OACCG,aAAA,CAACH,aAAa;MACb8B,GAAG,EAAG7B,MAAM,CAACuB,EAAI;MACjBvB,MAAM,EAAGA,MAAQ;MACjBC,OAAO,EAAGA,CAAA,KAAMD,MAAM,CAAC8B,QAAQ,CAAE,CAAEnB,IAAI,CAAG;IAAG,CAC7C,CAAC;EAEJ,CAAE,CAAC,EACJT,aAAA,CAACsC,kBAAkB;IAAC7B,IAAI,EAAGA,IAAM;IAACgB,OAAO,EAAGO;EAAiB,CAAE,CACxD,CAAC;AAEX;AAEA,SAASM,kBAAkBA,CAAE;EAAE7B,IAAI;EAAEgB;AAAQ,CAAC,EAAG;EAChD,OACCzB,aAAA,CAACX,YAAY;IACZyD,OAAO,EACN9C,aAAA,CAACvB,MAAM;MACN2B,IAAI,EAAC,SAAS;MACdF,IAAI,EAAGhB,YAAc;MACrBe,KAAK,EAAGlB,EAAE,CAAE,SAAU,CAAG;MACzBgE,QAAQ,EAAG,CAAEtB,OAAO,CAACoB,MAAQ;MAC7BJ,SAAS,EAAC;IAA8B,CACxC,CACD;IACDO,SAAS,EAAC;EAAY,GAEtBhD,aAAA,CAACwB,wBAAwB;IAACC,OAAO,EAAGA,OAAS;IAAChB,IAAI,EAAGA;EAAM,CAAE,CAChD,CAAC;AAEjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__dangerousOptInToUnstableAPIsOnlyForCoreModules","lock","unlock"],"sources":["@wordpress/dataviews/src/lock-unlock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gDAAgD,QAAQ,yBAAyB;AAE1F,OAAO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5BF,gDAAgD,CAC/C,iHAAiH,EACjH,sBACD,CAAC"}
1
+ {"version":3,"names":["__dangerousOptInToUnstableAPIsOnlyForCoreModules","lock","unlock"],"sources":["@wordpress/dataviews/src/lock-unlock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gDAAgD,QAAQ,yBAAyB;AAE1F,OAAO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5BF,gDAAgD,CAC/C,iHAAiH,EACjH,sBACD,CAAC","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Apply default values and normalize the fields config.
3
+ *
4
+ * @param {Object[]} fields Raw Fields.
5
+ * @return {Object[]} Normalized fields.
6
+ */
7
+ export function normalizeFields(fields) {
8
+ return fields.map(field => {
9
+ const getValue = field.getValue || (({
10
+ item
11
+ }) => item[field.id]);
12
+ return {
13
+ ...field,
14
+ getValue,
15
+ render: field.render || getValue
16
+ };
17
+ });
18
+ }
19
+ //# sourceMappingURL=normalize-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeFields","fields","map","field","getValue","item","id","render"],"sources":["@wordpress/dataviews/src/normalize-fields.js"],"sourcesContent":["/**\n * Apply default values and normalize the fields config.\n *\n * @param {Object[]} fields Raw Fields.\n * @return {Object[]} Normalized fields.\n */\nexport function normalizeFields( fields ) {\n\treturn fields.map( ( field ) => {\n\t\tconst getValue = field.getValue || ( ( { item } ) => item[ field.id ] );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\tgetValue,\n\t\t\trender: field.render || getValue,\n\t\t};\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAEC,MAAM,EAAG;EACzC,OAAOA,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAC/B,MAAMC,QAAQ,GAAGD,KAAK,CAACC,QAAQ,KAAM,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,CAAEF,KAAK,CAACG,EAAE,CAAE,CAAE;IAEvE,OAAO;MACN,GAAGH,KAAK;MACRC,QAAQ;MACRG,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAIH;IACzB,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Button","__experimentalHStack","HStack","SelectControl","createInterpolateElement","memo","sprintf","__","_x","chevronRight","chevronLeft","Pagination","view","onChangeView","paginationInfo","totalItems","totalPages","createElement","expanded","spacing","justify","className","CurrentPageControl","value","page","options","Array","from","map","_","i","label","onChange","newValue","size","__nextHasNoMarginBottom","onClick","disabled","__experimentalIsFocusable","icon","showTooltip","tooltipPosition"],"sources":["@wordpress/dataviews/src/pagination.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\tSelectControl,\n} from '@wordpress/components';\nimport { createInterpolateElement, memo } from '@wordpress/element';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nconst Pagination = memo( function Pagination( {\n\tview,\n\tonChangeView,\n\tpaginationInfo: { totalItems = 0, totalPages },\n} ) {\n\tif ( ! totalItems || ! totalPages ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t!! totalItems &&\n\t\ttotalPages !== 1 && (\n\t\t\t<HStack\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 6 }\n\t\t\t\tjustify=\"end\"\n\t\t\t\tclassName=\"dataviews-pagination\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\tclassName=\"dataviews-pagination__page-selection\"\n\t\t\t\t>\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t_x( 'Page <CurrentPageControl /> of %s', 'paging' ),\n\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\tvalue={ view.page }\n\t\t\t\t\t\t\t\t\toptions={ Array.from(\n\t\t\t\t\t\t\t\t\t\tArray( totalPages )\n\t\t\t\t\t\t\t\t\t).map( ( _, i ) => {\n\t\t\t\t\t\t\t\t\t\tconst page = i + 1;\n\t\t\t\t\t\t\t\t\t\treturn { value: page, label: page };\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\tpage: +newValue,\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\tsize={ 'compact' }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</HStack>\n\t\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page - 1 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page + 1 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t)\n\t);\n} );\n\nexport default Pagination;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","__experimentalHStack","HStack","SelectControl","createInterpolateElement","memo","sprintf","__","_x","chevronRight","chevronLeft","Pagination","view","onChangeView","paginationInfo","totalItems","totalPages","createElement","expanded","spacing","justify","className","CurrentPageControl","value","page","options","Array","from","map","_","i","label","onChange","newValue","size","__nextHasNoMarginBottom","onClick","disabled","__experimentalIsFocusable","icon","showTooltip","tooltipPosition"],"sources":["@wordpress/dataviews/src/pagination.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\tSelectControl,\n} from '@wordpress/components';\nimport { createInterpolateElement, memo } from '@wordpress/element';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nconst Pagination = memo( function Pagination( {\n\tview,\n\tonChangeView,\n\tpaginationInfo: { totalItems = 0, totalPages },\n} ) {\n\tif ( ! totalItems || ! totalPages ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t!! totalItems &&\n\t\ttotalPages !== 1 && (\n\t\t\t<HStack\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 6 }\n\t\t\t\tjustify=\"end\"\n\t\t\t\tclassName=\"dataviews-pagination\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\tclassName=\"dataviews-pagination__page-selection\"\n\t\t\t\t>\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t_x( 'Page <CurrentPageControl /> of %s', 'paging' ),\n\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\tvalue={ view.page }\n\t\t\t\t\t\t\t\t\toptions={ Array.from(\n\t\t\t\t\t\t\t\t\t\tArray( totalPages )\n\t\t\t\t\t\t\t\t\t).map( ( _, i ) => {\n\t\t\t\t\t\t\t\t\t\tconst page = i + 1;\n\t\t\t\t\t\t\t\t\t\treturn { value: page, label: page };\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\tpage: +newValue,\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\tsize={ 'compact' }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</HStack>\n\t\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page - 1 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page + 1 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t)\n\t);\n} );\n\nexport default Pagination;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,oBAAoB,IAAIC,MAAM,EAC9BC,aAAa,QACP,uBAAuB;AAC9B,SAASC,wBAAwB,EAAEC,IAAI,QAAQ,oBAAoB;AACnE,SAASC,OAAO,EAAEC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACjD,SAASC,YAAY,EAAEC,WAAW,QAAQ,kBAAkB;AAE5D,MAAMC,UAAU,GAAGN,IAAI,CAAE,SAASM,UAAUA,CAAE;EAC7CC,IAAI;EACJC,YAAY;EACZC,cAAc,EAAE;IAAEC,UAAU,GAAG,CAAC;IAAEC;EAAW;AAC9C,CAAC,EAAG;EACH,IAAK,CAAED,UAAU,IAAI,CAAEC,UAAU,EAAG;IACnC,OAAO,IAAI;EACZ;EACA,OACC,CAAC,CAAED,UAAU,IACbC,UAAU,KAAK,CAAC,IACfC,aAAA,CAACf,MAAM;IACNgB,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,KAAK;IACbC,SAAS,EAAC;EAAsB,GAEhCJ,aAAA,CAACf,MAAM;IACNkB,OAAO,EAAC,YAAY;IACpBF,QAAQ,EAAG,KAAO;IAClBC,OAAO,EAAG,CAAG;IACbE,SAAS,EAAC;EAAsC,GAE9CjB,wBAAwB,CACzBE,OAAO;EACN;EACAE,EAAE,CAAE,mCAAmC,EAAE,QAAS,CAAC,EACnDQ,UACD,CAAC,EACD;IACCM,kBAAkB,EACjBL,aAAA,CAACd,aAAa;MACb,cAAaI,EAAE,CAAE,cAAe,CAAG;MACnCgB,KAAK,EAAGX,IAAI,CAACY,IAAM;MACnBC,OAAO,EAAGC,KAAK,CAACC,IAAI,CACnBD,KAAK,CAAEV,UAAW,CACnB,CAAC,CAACY,GAAG,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAM;QAClB,MAAMN,IAAI,GAAGM,CAAC,GAAG,CAAC;QAClB,OAAO;UAAEP,KAAK,EAAEC,IAAI;UAAEO,KAAK,EAAEP;QAAK,CAAC;MACpC,CAAE,CAAG;MACLQ,QAAQ,EAAKC,QAAQ,IAAM;QAC1BpB,YAAY,CAAE;UACb,GAAGD,IAAI;UACPY,IAAI,EAAE,CAACS;QACR,CAAE,CAAC;MACJ,CAAG;MACHC,IAAI,EAAG,SAAW;MAClBC,uBAAuB;IAAA,CACvB;EAEH,CACD,CACO,CAAC,EACTlB,aAAA,CAACf,MAAM;IAACgB,QAAQ,EAAG,KAAO;IAACC,OAAO,EAAG;EAAG,GACvCF,aAAA,CAACjB,MAAM;IACNoC,OAAO,EAAGA,CAAA,KACTvB,YAAY,CAAE;MAAE,GAAGD,IAAI;MAAEY,IAAI,EAAEZ,IAAI,CAACY,IAAI,GAAG;IAAE,CAAE,CAC/C;IACDa,QAAQ,EAAGzB,IAAI,CAACY,IAAI,KAAK,CAAG;IAC5Bc,yBAAyB;IACzBP,KAAK,EAAGxB,EAAE,CAAE,eAAgB,CAAG;IAC/BgC,IAAI,EAAG7B,WAAa;IACpB8B,WAAW;IACXN,IAAI,EAAC,SAAS;IACdO,eAAe,EAAC;EAAK,CACrB,CAAC,EACFxB,aAAA,CAACjB,MAAM;IACNoC,OAAO,EAAGA,CAAA,KACTvB,YAAY,CAAE;MAAE,GAAGD,IAAI;MAAEY,IAAI,EAAEZ,IAAI,CAACY,IAAI,GAAG;IAAE,CAAE,CAC/C;IACDa,QAAQ,EAAGzB,IAAI,CAACY,IAAI,IAAIR,UAAY;IACpCsB,yBAAyB;IACzBP,KAAK,EAAGxB,EAAE,CAAE,WAAY,CAAG;IAC3BgC,IAAI,EAAG9B,YAAc;IACrB+B,WAAW;IACXN,IAAI,EAAC,SAAS;IACdO,eAAe,EAAC;EAAK,CACrB,CACM,CACD,CACR;AAEH,CAAE,CAAC;AAEH,eAAe9B,UAAU","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Button","__","ResetFilter","filters","view","onChangeView","isPrimary","field","some","_filter","isDisabled","search","value","undefined","createElement","disabled","__experimentalIsFocusable","size","variant","className","onClick","page"],"sources":["@wordpress/dataviews/src/reset-filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ResetFilter( { filters, view, onChangeView } ) {\n\tconst isPrimary = ( field ) =>\n\t\tfilters.some(\n\t\t\t( _filter ) => _filter.field === field && _filter.isPrimary\n\t\t);\n\tconst isDisabled =\n\t\t! view.search &&\n\t\t! view.filters?.some(\n\t\t\t( _filter ) =>\n\t\t\t\t_filter.value !== undefined || ! isPrimary( _filter.field )\n\t\t);\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isDisabled }\n\t\t\t__experimentalIsFocusable\n\t\t\tsize=\"compact\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tclassName=\"dataviews-filters__reset-button\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: '',\n\t\t\t\t\tfilters: [],\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Reset' ) }\n\t\t</Button>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;AAEpC,eAAe,SAASC,WAAWA,CAAE;EAAEC,OAAO;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EACtE,MAAMC,SAAS,GAAKC,KAAK,IACxBJ,OAAO,CAACK,IAAI,CACTC,OAAO,IAAMA,OAAO,CAACF,KAAK,KAAKA,KAAK,IAAIE,OAAO,CAACH,SACnD,CAAC;EACF,MAAMI,UAAU,GACf,CAAEN,IAAI,CAACO,MAAM,IACb,CAAEP,IAAI,CAACD,OAAO,EAAEK,IAAI,CACjBC,OAAO,IACRA,OAAO,CAACG,KAAK,KAAKC,SAAS,IAAI,CAAEP,SAAS,CAAEG,OAAO,CAACF,KAAM,CAC5D,CAAC;EACF,OACCO,aAAA,CAACd,MAAM;IACNe,QAAQ,EAAGL,UAAY;IACvBM,yBAAyB;IACzBC,IAAI,EAAC,SAAS;IACdC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,OAAO,EAAGA,CAAA,KAAM;MACff,YAAY,CAAE;QACb,GAAGD,IAAI;QACPiB,IAAI,EAAE,CAAC;QACPV,MAAM,EAAE,EAAE;QACVR,OAAO,EAAE;MACV,CAAE,CAAC;IACJ;EAAG,GAEDF,EAAE,CAAE,OAAQ,CACP,CAAC;AAEX"}
1
+ {"version":3,"names":["Button","__","ResetFilter","filters","view","onChangeView","isPrimary","field","some","_filter","isDisabled","search","value","undefined","createElement","disabled","__experimentalIsFocusable","size","variant","className","onClick","page"],"sources":["@wordpress/dataviews/src/reset-filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ResetFilter( { filters, view, onChangeView } ) {\n\tconst isPrimary = ( field ) =>\n\t\tfilters.some(\n\t\t\t( _filter ) => _filter.field === field && _filter.isPrimary\n\t\t);\n\tconst isDisabled =\n\t\t! view.search &&\n\t\t! view.filters?.some(\n\t\t\t( _filter ) =>\n\t\t\t\t_filter.value !== undefined || ! isPrimary( _filter.field )\n\t\t);\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isDisabled }\n\t\t\t__experimentalIsFocusable\n\t\t\tsize=\"compact\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tclassName=\"dataviews-filters__reset-button\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: '',\n\t\t\t\t\tfilters: [],\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Reset' ) }\n\t\t</Button>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;AAEpC,eAAe,SAASC,WAAWA,CAAE;EAAEC,OAAO;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EACtE,MAAMC,SAAS,GAAKC,KAAK,IACxBJ,OAAO,CAACK,IAAI,CACTC,OAAO,IAAMA,OAAO,CAACF,KAAK,KAAKA,KAAK,IAAIE,OAAO,CAACH,SACnD,CAAC;EACF,MAAMI,UAAU,GACf,CAAEN,IAAI,CAACO,MAAM,IACb,CAAEP,IAAI,CAACD,OAAO,EAAEK,IAAI,CACjBC,OAAO,IACRA,OAAO,CAACG,KAAK,KAAKC,SAAS,IAAI,CAAEP,SAAS,CAAEG,OAAO,CAACF,KAAM,CAC5D,CAAC;EACF,OACCO,aAAA,CAACd,MAAM;IACNe,QAAQ,EAAGL,UAAY;IACvBM,yBAAyB;IACzBC,IAAI,EAAC,SAAS;IACdC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,OAAO,EAAGA,CAAA,KAAM;MACff,YAAY,CAAE;QACb,GAAGD,IAAI;QACPiB,IAAI,EAAE,CAAC;QACPV,MAAM,EAAE,EAAE;QACVR,OAAO,EAAE;MACV,CAAE,CAAC;IACJ;EAAG,GAEDF,EAAE,CAAE,OAAQ,CACP,CAAC;AAEX","ignoreList":[]}
@@ -35,6 +35,7 @@ const radioCheck = createElement(SVG, {
35
35
  function normalizeSearchInput(input = '') {
36
36
  return removeAccents(input.trim().toLowerCase());
37
37
  }
38
+ const EMPTY_ARRAY = [];
38
39
  const getCurrentValue = (filterDefinition, currentFilter) => {
39
40
  if (filterDefinition.singleSelection) {
40
41
  return currentFilter?.value;
@@ -45,7 +46,7 @@ const getCurrentValue = (filterDefinition, currentFilter) => {
45
46
  if (!Array.isArray(currentFilter?.value) && !!currentFilter?.value) {
46
47
  return [currentFilter.value];
47
48
  }
48
- return [];
49
+ return EMPTY_ARRAY;
49
50
  };
50
51
  const getNewValue = (filterDefinition, currentFilter, value) => {
51
52
  if (filterDefinition.singleSelection) {
@@ -64,7 +65,7 @@ function ListBox({
64
65
  const compositeStore = useCompositeStore({
65
66
  virtualFocus: true,
66
67
  focusLoop: true,
67
- // When we have no or just one operators, we can set the first item as active.
68
+ // When we have no or just one operator, we can set the first item as active.
68
69
  // We do that by passing `undefined` to `defaultActiveId`. Otherwise, we set it to `null`,
69
70
  // so the first item is not selected, since the focus is on the operators control.
70
71
  defaultActiveId: filter.operators?.length === 1 ? undefined : null
@@ -140,7 +141,7 @@ function ComboboxList({
140
141
  return filter.elements.filter(item => normalizeSearchInput(item.label).includes(normalizedSearch));
141
142
  }, [filter.elements, deferredSearchValue]);
142
143
  return createElement(Ariakit.ComboboxProvider, {
143
- value: searchValue,
144
+ resetValueOnSelect: false,
144
145
  selectedValue: currentValue,
145
146
  setSelectedValue: value => {
146
147
  const newFilters = currentFilter ? [...view.filters.map(_filter => {