@wordpress/dataviews 1.1.0 → 2.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 (176) hide show
  1. package/CHANGELOG.md +27 -5
  2. package/README.md +33 -30
  3. package/build/add-filter.js +30 -22
  4. package/build/add-filter.js.map +1 -1
  5. package/build/bulk-actions-toolbar.js +187 -0
  6. package/build/bulk-actions-toolbar.js.map +1 -0
  7. package/build/bulk-actions.js +75 -62
  8. package/build/bulk-actions.js.map +1 -1
  9. package/build/constants.js +17 -10
  10. package/build/constants.js.map +1 -1
  11. package/build/dataviews.js +64 -50
  12. package/build/dataviews.js.map +1 -1
  13. package/build/filter-and-sort-data-view.js +2 -2
  14. package/build/filter-and-sort-data-view.js.map +1 -1
  15. package/build/filter-summary.js +106 -96
  16. package/build/filter-summary.js.map +1 -1
  17. package/build/filters.js +18 -17
  18. package/build/filters.js.map +1 -1
  19. package/build/index.js.map +1 -1
  20. package/build/item-actions.js +101 -69
  21. package/build/item-actions.js.map +1 -1
  22. package/build/layouts.js.map +1 -1
  23. package/build/lock-unlock.js.map +1 -1
  24. package/build/normalize-fields.js.map +1 -1
  25. package/build/pagination.js +66 -57
  26. package/build/pagination.js.map +1 -1
  27. package/build/reset-filters.js +9 -4
  28. package/build/reset-filters.js.map +1 -1
  29. package/build/search-widget.js +108 -89
  30. package/build/search-widget.js.map +1 -1
  31. package/build/search.js +13 -6
  32. package/build/search.js.map +1 -1
  33. package/build/single-selection-checkbox.js +6 -2
  34. package/build/single-selection-checkbox.js.map +1 -1
  35. package/build/types.js.map +1 -1
  36. package/build/utils.js +3 -15
  37. package/build/utils.js.map +1 -1
  38. package/build/view-actions.js +168 -120
  39. package/build/view-actions.js.map +1 -1
  40. package/build/view-grid.js +119 -106
  41. package/build/view-grid.js.map +1 -1
  42. package/build/view-list.js +217 -83
  43. package/build/view-list.js.map +1 -1
  44. package/build/view-table.js +227 -199
  45. package/build/view-table.js.map +1 -1
  46. package/build-module/add-filter.js +30 -22
  47. package/build-module/add-filter.js.map +1 -1
  48. package/build-module/bulk-actions-toolbar.js +182 -0
  49. package/build-module/bulk-actions-toolbar.js.map +1 -0
  50. package/build-module/bulk-actions.js +77 -62
  51. package/build-module/bulk-actions.js.map +1 -1
  52. package/build-module/constants.js +16 -9
  53. package/build-module/constants.js.map +1 -1
  54. package/build-module/dataviews.js +65 -50
  55. package/build-module/dataviews.js.map +1 -1
  56. package/build-module/filter-and-sort-data-view.js +2 -2
  57. package/build-module/filter-and-sort-data-view.js.map +1 -1
  58. package/build-module/filter-summary.js +107 -97
  59. package/build-module/filter-summary.js.map +1 -1
  60. package/build-module/filters.js +18 -17
  61. package/build-module/filters.js.map +1 -1
  62. package/build-module/index.js.map +1 -1
  63. package/build-module/item-actions.js +102 -71
  64. package/build-module/item-actions.js.map +1 -1
  65. package/build-module/layouts.js.map +1 -1
  66. package/build-module/lock-unlock.js.map +1 -1
  67. package/build-module/normalize-fields.js.map +1 -1
  68. package/build-module/pagination.js +67 -57
  69. package/build-module/pagination.js.map +1 -1
  70. package/build-module/reset-filters.js +9 -4
  71. package/build-module/reset-filters.js.map +1 -1
  72. package/build-module/search-widget.js +109 -89
  73. package/build-module/search-widget.js.map +1 -1
  74. package/build-module/search.js +13 -6
  75. package/build-module/search.js.map +1 -1
  76. package/build-module/single-selection-checkbox.js +6 -2
  77. package/build-module/single-selection-checkbox.js.map +1 -1
  78. package/build-module/types.js.map +1 -1
  79. package/build-module/utils.js +2 -13
  80. package/build-module/utils.js.map +1 -1
  81. package/build-module/view-actions.js +170 -121
  82. package/build-module/view-actions.js.map +1 -1
  83. package/build-module/view-grid.js +121 -106
  84. package/build-module/view-grid.js.map +1 -1
  85. package/build-module/view-list.js +219 -85
  86. package/build-module/view-list.js.map +1 -1
  87. package/build-module/view-table.js +230 -201
  88. package/build-module/view-table.js.map +1 -1
  89. package/build-style/style-rtl.css +168 -44
  90. package/build-style/style.css +168 -44
  91. package/build-types/add-filter.d.ts +11 -0
  92. package/build-types/add-filter.d.ts.map +1 -0
  93. package/build-types/bulk-actions-toolbar.d.ts +12 -0
  94. package/build-types/bulk-actions-toolbar.d.ts.map +1 -0
  95. package/build-types/bulk-actions.d.ts +14 -0
  96. package/build-types/bulk-actions.d.ts.map +1 -0
  97. package/build-types/constants.d.ts +19 -32
  98. package/build-types/constants.d.ts.map +1 -1
  99. package/build-types/dataviews.d.ts +22 -0
  100. package/build-types/dataviews.d.ts.map +1 -0
  101. package/build-types/filter-and-sort-data-view.d.ts +3 -3
  102. package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
  103. package/build-types/filter-summary.d.ts +14 -0
  104. package/build-types/filter-summary.d.ts.map +1 -0
  105. package/build-types/filters.d.ts +13 -0
  106. package/build-types/filters.d.ts.map +1 -0
  107. package/build-types/index.d.ts +4 -0
  108. package/build-types/index.d.ts.map +1 -0
  109. package/build-types/item-actions.d.ts +35 -0
  110. package/build-types/item-actions.d.ts.map +1 -0
  111. package/build-types/layouts.d.ts +24 -0
  112. package/build-types/layouts.d.ts.map +1 -0
  113. package/build-types/lock-unlock.d.ts +2 -0
  114. package/build-types/lock-unlock.d.ts.map +1 -0
  115. package/build-types/normalize-fields.d.ts +2 -2
  116. package/build-types/normalize-fields.d.ts.map +1 -1
  117. package/build-types/pagination.d.ts +16 -0
  118. package/build-types/pagination.d.ts.map +1 -0
  119. package/build-types/reset-filters.d.ts +13 -0
  120. package/build-types/reset-filters.d.ts.map +1 -0
  121. package/build-types/search-widget.d.ts +10 -0
  122. package/build-types/search-widget.d.ts.map +1 -0
  123. package/build-types/search.d.ts +13 -0
  124. package/build-types/search.d.ts.map +1 -0
  125. package/build-types/single-selection-checkbox.d.ts +17 -0
  126. package/build-types/single-selection-checkbox.d.ts.map +1 -0
  127. package/build-types/stories/fixtures.d.ts +114 -0
  128. package/build-types/stories/fixtures.d.ts.map +1 -0
  129. package/build-types/stories/index.story.d.ts +15 -0
  130. package/build-types/stories/index.story.d.ts.map +1 -0
  131. package/build-types/types.d.ts +221 -21
  132. package/build-types/types.d.ts.map +1 -1
  133. package/build-types/utils.d.ts +3 -0
  134. package/build-types/utils.d.ts.map +1 -0
  135. package/build-types/view-actions.d.ts +12 -0
  136. package/build-types/view-actions.d.ts.map +1 -0
  137. package/build-types/view-grid.d.ts +4 -0
  138. package/build-types/view-grid.d.ts.map +1 -0
  139. package/build-types/view-list.d.ts +4 -0
  140. package/build-types/view-list.d.ts.map +1 -0
  141. package/build-types/view-table.d.ts +5 -0
  142. package/build-types/view-table.d.ts.map +1 -0
  143. package/package.json +12 -13
  144. package/src/{add-filter.js → add-filter.tsx} +17 -1
  145. package/src/bulk-actions-toolbar.tsx +272 -0
  146. package/src/{bulk-actions.js → bulk-actions.tsx} +77 -17
  147. package/src/constants.ts +12 -5
  148. package/src/{dataviews.js → dataviews.tsx} +54 -14
  149. package/src/filter-and-sort-data-view.ts +13 -8
  150. package/src/{filter-summary.js → filter-summary.tsx} +38 -9
  151. package/src/{filters.js → filters.tsx} +18 -6
  152. package/src/{item-actions.js → item-actions.tsx} +119 -30
  153. package/src/normalize-fields.ts +4 -2
  154. package/src/{pagination.js → pagination.tsx} +29 -8
  155. package/src/{reset-filters.js → reset-filters.tsx} +17 -2
  156. package/src/{search-widget.js → search-widget.tsx} +27 -7
  157. package/src/{search.js → search.tsx} +22 -5
  158. package/src/{single-selection-checkbox.js → single-selection-checkbox.tsx} +17 -2
  159. package/src/style.scss +166 -43
  160. package/src/types.ts +286 -21
  161. package/src/{utils.js → utils.ts} +5 -13
  162. package/src/{view-actions.js → view-actions.tsx} +105 -49
  163. package/src/{view-grid.js → view-grid.tsx} +31 -18
  164. package/src/view-list.tsx +410 -0
  165. package/src/{view-table.js → view-table.tsx} +99 -40
  166. package/tsconfig.json +3 -4
  167. package/tsconfig.tsbuildinfo +1 -1
  168. package/build/dropdown-menu-helper.js +0 -71
  169. package/build/dropdown-menu-helper.js.map +0 -1
  170. package/build-module/dropdown-menu-helper.js +0 -64
  171. package/build-module/dropdown-menu-helper.js.map +0 -1
  172. package/src/dropdown-menu-helper.js +0 -61
  173. package/src/view-list.js +0 -207
  174. /package/src/{index.js → index.ts} +0 -0
  175. /package/src/{layouts.js → layouts.ts} +0 -0
  176. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = SearchWidget;
8
- var _react = require("react");
9
8
  var Ariakit = _interopRequireWildcard(require("@ariakit/react"));
10
9
  var _removeAccents = _interopRequireDefault(require("remove-accents"));
11
10
  var _i18n = require("@wordpress/i18n");
@@ -14,6 +13,7 @@ var _components = require("@wordpress/components");
14
13
  var _icons = require("@wordpress/icons");
15
14
  var _primitives = require("@wordpress/primitives");
16
15
  var _lockUnlock = require("./lock-unlock");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
19
  /**
@@ -34,14 +34,15 @@ const {
34
34
  CompositeItemV2: CompositeItem,
35
35
  useCompositeStoreV2: useCompositeStore
36
36
  } = (0, _lockUnlock.unlock)(_components.privateApis);
37
- const radioCheck = (0, _react.createElement)(_primitives.SVG, {
37
+ const radioCheck = /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SVG, {
38
38
  xmlns: "http://www.w3.org/2000/svg",
39
- viewBox: "0 0 24 24"
40
- }, (0, _react.createElement)(_primitives.Circle, {
41
- cx: 12,
42
- cy: 12,
43
- r: 3
44
- }));
39
+ viewBox: "0 0 24 24",
40
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.Circle, {
41
+ cx: 12,
42
+ cy: 12,
43
+ r: 3
44
+ })
45
+ });
45
46
  function normalizeSearchInput(input = '') {
46
47
  return (0, _removeAccents.default)(input.trim().toLowerCase());
47
48
  }
@@ -82,7 +83,7 @@ function ListBox({
82
83
  });
83
84
  const currentFilter = view.filters.find(f => f.field === filter.field);
84
85
  const currentValue = getCurrentValue(filter, currentFilter);
85
- return (0, _react.createElement)(Composite, {
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Composite, {
86
87
  store: compositeStore,
87
88
  role: "listbox",
88
89
  className: "dataviews-search-widget-listbox",
@@ -93,49 +94,54 @@ function ListBox({
93
94
  compositeStore.move(compositeStore.first());
94
95
  }
95
96
  },
96
- render: (0, _react.createElement)(Ariakit.CompositeTypeahead, {
97
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(Ariakit.CompositeTypeahead, {
97
98
  store: compositeStore
98
- })
99
- }, filter.elements.map(element => (0, _react.createElement)(Ariakit.CompositeHover, {
100
- store: compositeStore,
101
- key: element.value,
102
- render: (0, _react.createElement)(CompositeItem, {
103
- render: (0, _react.createElement)("div", {
104
- "aria-label": element.label,
105
- role: "option",
106
- className: "dataviews-search-widget-listitem"
99
+ }),
100
+ children: filter.elements.map(element => /*#__PURE__*/(0, _jsxRuntime.jsxs)(Ariakit.CompositeHover, {
101
+ store: compositeStore,
102
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(CompositeItem, {
103
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
104
+ "aria-label": element.label,
105
+ role: "option",
106
+ className: "dataviews-search-widget-listitem"
107
+ }),
108
+ onClick: () => {
109
+ const newFilters = currentFilter ? [...view.filters.map(_filter => {
110
+ if (_filter.field === filter.field) {
111
+ return {
112
+ ..._filter,
113
+ operator: currentFilter.operator || filter.operators[0],
114
+ value: getNewValue(filter, currentFilter, element.value)
115
+ };
116
+ }
117
+ return _filter;
118
+ })] : [...view.filters, {
119
+ field: filter.field,
120
+ operator: filter.operators[0],
121
+ value: getNewValue(filter, currentFilter, element.value)
122
+ }];
123
+ onChangeView({
124
+ ...view,
125
+ page: 1,
126
+ filters: newFilters
127
+ });
128
+ }
107
129
  }),
108
- onClick: () => {
109
- const newFilters = currentFilter ? [...view.filters.map(_filter => {
110
- if (_filter.field === filter.field) {
111
- return {
112
- ..._filter,
113
- operator: currentFilter.operator || filter.operators[0],
114
- value: getNewValue(filter, currentFilter, element.value)
115
- };
116
- }
117
- return _filter;
118
- })] : [...view.filters, {
119
- field: filter.field,
120
- operator: filter.operators[0],
121
- value: getNewValue(filter, currentFilter, element.value)
122
- }];
123
- onChangeView({
124
- ...view,
125
- page: 1,
126
- filters: newFilters
127
- });
128
- }
129
- })
130
- }, (0, _react.createElement)("span", {
131
- className: "dataviews-search-widget-listitem-check"
132
- }, filter.singleSelection && currentValue === element.value && (0, _react.createElement)(_components.Icon, {
133
- icon: radioCheck
134
- }), !filter.singleSelection && currentValue.includes(element.value) && (0, _react.createElement)(_components.Icon, {
135
- icon: _icons.check
136
- })), (0, _react.createElement)("span", null, element.label, !!element.description && (0, _react.createElement)("span", {
137
- className: "dataviews-search-widget-listitem-description"
138
- }, element.description)))));
130
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
131
+ className: "dataviews-search-widget-listitem-check",
132
+ children: [filter.singleSelection && currentValue === element.value && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
133
+ icon: radioCheck
134
+ }), !filter.singleSelection && currentValue.includes(element.value) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
135
+ icon: _icons.check
136
+ })]
137
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
138
+ children: [element.label, !!element.description && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
139
+ className: "dataviews-search-widget-listitem-description",
140
+ children: element.description
141
+ })]
142
+ })]
143
+ }, element.value))
144
+ });
139
145
  }
140
146
  function ComboboxList({
141
147
  view,
@@ -150,7 +156,7 @@ function ComboboxList({
150
156
  const normalizedSearch = normalizeSearchInput(deferredSearchValue);
151
157
  return filter.elements.filter(item => normalizeSearchInput(item.label).includes(normalizedSearch));
152
158
  }, [filter.elements, deferredSearchValue]);
153
- return (0, _react.createElement)(Ariakit.ComboboxProvider, {
159
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Ariakit.ComboboxProvider, {
154
160
  resetValueOnSelect: false,
155
161
  selectedValue: currentValue,
156
162
  setSelectedValue: value => {
@@ -174,47 +180,60 @@ function ComboboxList({
174
180
  filters: newFilters
175
181
  });
176
182
  },
177
- setValue: setSearchValue
178
- }, (0, _react.createElement)("div", {
179
- className: "dataviews-search-widget-filter-combobox__wrapper"
180
- }, (0, _react.createElement)(Ariakit.ComboboxLabel, {
181
- render: (0, _react.createElement)(_components.VisuallyHidden, null)
182
- }, (0, _i18n.__)('Search items')), (0, _react.createElement)(Ariakit.Combobox, {
183
- autoSelect: "always",
184
- placeholder: (0, _i18n.__)('Search'),
185
- className: "dataviews-search-widget-filter-combobox__input"
186
- }), (0, _react.createElement)("div", {
187
- className: "dataviews-search-widget-filter-combobox__icon"
188
- }, (0, _react.createElement)(_components.Icon, {
189
- icon: _icons.search
190
- }))), (0, _react.createElement)(Ariakit.ComboboxList, {
191
- className: "dataviews-search-widget-filter-combobox-list",
192
- alwaysVisible: true
193
- }, matches.map(element => {
194
- return (0, _react.createElement)(Ariakit.ComboboxItem, {
195
- key: element.value,
196
- value: element.value,
197
- className: "dataviews-search-widget-listitem",
198
- hideOnClick: false,
199
- setValueOnClick: false,
200
- focusOnHover: true
201
- }, (0, _react.createElement)("span", {
202
- className: "dataviews-search-widget-listitem-check"
203
- }, filter.singleSelection && currentValue === element.value && (0, _react.createElement)(_components.Icon, {
204
- icon: radioCheck
205
- }), !filter.singleSelection && currentValue.includes(element.value) && (0, _react.createElement)(_components.Icon, {
206
- icon: _icons.check
207
- })), (0, _react.createElement)("span", null, (0, _react.createElement)(Ariakit.ComboboxItemValue, {
208
- className: "dataviews-search-widget-filter-combobox-item-value",
209
- value: element.label
210
- }), !!element.description && (0, _react.createElement)("span", {
211
- className: "dataviews-search-widget-listitem-description"
212
- }, element.description)));
213
- }), !matches.length && (0, _react.createElement)("p", null, (0, _i18n.__)('No results found'))));
183
+ setValue: setSearchValue,
184
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
185
+ className: "dataviews-search-widget-filter-combobox__wrapper",
186
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Ariakit.ComboboxLabel, {
187
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
188
+ children: (0, _i18n.__)('Search items')
189
+ }),
190
+ children: (0, _i18n.__)('Search items')
191
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Ariakit.Combobox, {
192
+ autoSelect: "always",
193
+ placeholder: (0, _i18n.__)('Search'),
194
+ className: "dataviews-search-widget-filter-combobox__input"
195
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
196
+ className: "dataviews-search-widget-filter-combobox__icon",
197
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
198
+ icon: _icons.search
199
+ })
200
+ })]
201
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Ariakit.ComboboxList, {
202
+ className: "dataviews-search-widget-filter-combobox-list",
203
+ alwaysVisible: true,
204
+ children: [matches.map(element => {
205
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Ariakit.ComboboxItem, {
206
+ value: element.value,
207
+ className: "dataviews-search-widget-listitem",
208
+ hideOnClick: false,
209
+ setValueOnClick: false,
210
+ focusOnHover: true,
211
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
212
+ className: "dataviews-search-widget-listitem-check",
213
+ children: [filter.singleSelection && currentValue === element.value && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
214
+ icon: radioCheck
215
+ }), !filter.singleSelection && currentValue.includes(element.value) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
216
+ icon: _icons.check
217
+ })]
218
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
219
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Ariakit.ComboboxItemValue, {
220
+ className: "dataviews-search-widget-filter-combobox-item-value",
221
+ value: element.label
222
+ }), !!element.description && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
223
+ className: "dataviews-search-widget-listitem-description",
224
+ children: element.description
225
+ })]
226
+ })]
227
+ }, element.value);
228
+ }), !matches.length && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
229
+ children: (0, _i18n.__)('No results found')
230
+ })]
231
+ })]
232
+ });
214
233
  }
215
234
  function SearchWidget(props) {
216
235
  const Widget = props.filter.elements.length > 10 ? ComboboxList : ListBox;
217
- return (0, _react.createElement)(Widget, {
236
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Widget, {
218
237
  ...props
219
238
  });
220
239
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Ariakit","_interopRequireWildcard","require","_removeAccents","_interopRequireDefault","_i18n","_element","_components","_icons","_primitives","_lockUnlock","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","unlock","componentsPrivateApis","radioCheck","_react","createElement","SVG","xmlns","viewBox","Circle","cx","cy","normalizeSearchInput","input","removeAccents","trim","toLowerCase","EMPTY_ARRAY","getCurrentValue","filterDefinition","currentFilter","singleSelection","value","Array","isArray","getNewValue","includes","filter","v","ListBox","view","onChangeView","compositeStore","virtualFocus","focusLoop","defaultActiveId","operators","length","undefined","filters","find","f","field","currentValue","store","role","className","sprintf","__","name","onFocusVisible","getState","activeId","move","first","render","CompositeTypeahead","elements","map","element","CompositeHover","key","label","onClick","newFilters","_filter","operator","page","Icon","icon","check","description","ComboboxList","searchValue","setSearchValue","useState","deferredSearchValue","useDeferredValue","matches","useMemo","normalizedSearch","item","ComboboxProvider","resetValueOnSelect","selectedValue","setSelectedValue","setValue","ComboboxLabel","VisuallyHidden","Combobox","autoSelect","placeholder","search","alwaysVisible","ComboboxItem","hideOnClick","setValueOnClick","focusOnHover","ComboboxItemValue","SearchWidget","props","Widget"],"sources":["@wordpress/dataviews/src/search-widget.js"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo, useDeferredValue } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { search, check } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY = [];\nconst getCurrentValue = ( filterDefinition, currentFilter ) => {\n\tif ( filterDefinition.singleSelection ) {\n\t\treturn currentFilter?.value;\n\t}\n\n\tif ( Array.isArray( currentFilter?.value ) ) {\n\t\treturn currentFilter.value;\n\t}\n\n\tif ( ! Array.isArray( currentFilter?.value ) && !! currentFilter?.value ) {\n\t\treturn [ currentFilter.value ];\n\t}\n\n\treturn EMPTY_ARRAY;\n};\n\nconst getNewValue = ( filterDefinition, currentFilter, value ) => {\n\tif ( filterDefinition.singleSelection ) {\n\t\treturn value;\n\t}\n\n\tif ( Array.isArray( currentFilter?.value ) ) {\n\t\treturn currentFilter.value.includes( value )\n\t\t\t? currentFilter.value.filter( ( v ) => v !== value )\n\t\t\t: [ ...currentFilter.value, value ];\n\t}\n\n\treturn [ value ];\n};\n\nfunction ListBox( { view, filter, onChangeView } ) {\n\tconst compositeStore = useCompositeStore( {\n\t\tvirtualFocus: true,\n\t\tfocusLoop: true,\n\t\t// When we have no or just one operator, we can set the first item as active.\n\t\t// We do that by passing `undefined` to `defaultActiveId`. Otherwise, we set it to `null`,\n\t\t// so the first item is not selected, since the focus is on the operators control.\n\t\tdefaultActiveId: filter.operators?.length === 1 ? undefined : null,\n\t} );\n\tconst currentFilter = view.filters.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\treturn (\n\t\t<Composite\n\t\t\tstore={ compositeStore }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"dataviews-search-widget-listbox\"\n\t\t\taria-label={ sprintf(\n\t\t\t\t/* translators: List of items for a filter. 1: Filter name. e.g.: \"List of: Author\". */\n\t\t\t\t__( 'List of: %1$s' ),\n\t\t\t\tfilter.name\n\t\t\t) }\n\t\t\tonFocusVisible={ () => {\n\t\t\t\tif ( ! compositeStore.getState().activeId ) {\n\t\t\t\t\tcompositeStore.move( compositeStore.first() );\n\t\t\t\t}\n\t\t\t} }\n\t\t\trender={ <Ariakit.CompositeTypeahead store={ compositeStore } /> }\n\t\t>\n\t\t\t{ filter.elements.map( ( element ) => (\n\t\t\t\t<Ariakit.CompositeHover\n\t\t\t\t\tstore={ compositeStore }\n\t\t\t\t\tkey={ element.value }\n\t\t\t\t\trender={\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\taria-label={ element.label }\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-search-widget-listitem\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t...view.filters.map(\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\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_filter.field ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.field\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\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\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentFilter.operator ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: getNewValue(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentFilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telement.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn _filter;\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 ]\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t...view.filters,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: getNewValue(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentFilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\telement.value\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 ];\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: newFilters,\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>\n\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-check\">\n\t\t\t\t\t\t{ filter.singleSelection &&\n\t\t\t\t\t\t\tcurrentValue === element.value && (\n\t\t\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! filter.singleSelection &&\n\t\t\t\t\t\t\tcurrentValue.includes( element.value ) && (\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-description\">\n\t\t\t\t\t\t\t\t{ element.description }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</Ariakit.CompositeHover>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nfunction ComboboxList( { view, filter, onChangeView } ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst deferredSearchValue = useDeferredValue( searchValue );\n\tconst currentFilter = view.filters.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\tconst matches = useMemo( () => {\n\t\tconst normalizedSearch = normalizeSearchInput( deferredSearchValue );\n\t\treturn filter.elements.filter( ( item ) =>\n\t\t\tnormalizeSearchInput( item.label ).includes( normalizedSearch )\n\t\t);\n\t}, [ filter.elements, deferredSearchValue ] );\n\treturn (\n\t\t<Ariakit.ComboboxProvider\n\t\t\tresetValueOnSelect={ false }\n\t\t\tselectedValue={ currentValue }\n\t\t\tsetSelectedValue={ ( value ) => {\n\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\tcurrentFilter.operator ||\n\t\t\t\t\t\t\t\t\t\t\tfilter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\tvalue,\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\treturn _filter;\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t ]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\t...view.filters,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ];\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tfilters: newFilters,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tsetValue={ setSearchValue }\n\t\t>\n\t\t\t<div className=\"dataviews-search-widget-filter-combobox__wrapper\">\n\t\t\t\t<Ariakit.ComboboxLabel render={ <VisuallyHidden /> }>\n\t\t\t\t\t{ __( 'Search items' ) }\n\t\t\t\t</Ariakit.ComboboxLabel>\n\t\t\t\t<Ariakit.Combobox\n\t\t\t\t\tautoSelect=\"always\"\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\tclassName=\"dataviews-search-widget-filter-combobox__input\"\n\t\t\t\t/>\n\t\t\t\t<div className=\"dataviews-search-widget-filter-combobox__icon\">\n\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<Ariakit.ComboboxList\n\t\t\t\tclassName=\"dataviews-search-widget-filter-combobox-list\"\n\t\t\t\talwaysVisible\n\t\t\t>\n\t\t\t\t{ matches.map( ( element ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Ariakit.ComboboxItem\n\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\tvalue={ element.value }\n\t\t\t\t\t\t\tclassName=\"dataviews-search-widget-listitem\"\n\t\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\t\tsetValueOnClick={ false }\n\t\t\t\t\t\t\tfocusOnHover\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-check\">\n\t\t\t\t\t\t\t\t{ filter.singleSelection &&\n\t\t\t\t\t\t\t\t\tcurrentValue === element.value && (\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! filter.singleSelection &&\n\t\t\t\t\t\t\t\t\tcurrentValue.includes( element.value ) && (\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<Ariakit.ComboboxItemValue\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-search-widget-filter-combobox-item-value\"\n\t\t\t\t\t\t\t\t\tvalue={ element.label }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-description\">\n\t\t\t\t\t\t\t\t\t\t{ element.description }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Ariakit.ComboboxItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ ! matches.length && <p>{ __( 'No results found' ) }</p> }\n\t\t\t</Ariakit.ComboboxList>\n\t\t</Ariakit.ComboboxProvider>\n\t);\n}\n\nexport default function SearchWidget( props ) {\n\tconst Widget = props.filter.elements.length > 10 ? ComboboxList : ListBox;\n\treturn <Widget { ...props } />;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Ariakit","_interopRequireWildcard","require","_removeAccents","_interopRequireDefault","_i18n","_element","_components","_icons","_primitives","_lockUnlock","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","unlock","componentsPrivateApis","radioCheck","jsx","SVG","xmlns","viewBox","children","Circle","cx","cy","normalizeSearchInput","input","removeAccents","trim","toLowerCase","EMPTY_ARRAY","getCurrentValue","filterDefinition","currentFilter","singleSelection","value","Array","isArray","getNewValue","includes","filter","v","ListBox","view","onChangeView","compositeStore","virtualFocus","focusLoop","defaultActiveId","operators","length","undefined","filters","find","f","field","currentValue","store","role","className","sprintf","__","name","onFocusVisible","getState","activeId","move","first","render","CompositeTypeahead","elements","map","element","jsxs","CompositeHover","label","onClick","newFilters","_filter","operator","page","Icon","icon","check","description","ComboboxList","searchValue","setSearchValue","useState","deferredSearchValue","useDeferredValue","matches","useMemo","normalizedSearch","item","ComboboxProvider","resetValueOnSelect","selectedValue","setSelectedValue","setValue","ComboboxLabel","VisuallyHidden","Combobox","autoSelect","placeholder","search","alwaysVisible","ComboboxItem","hideOnClick","setValueOnClick","focusOnHover","ComboboxItemValue","SearchWidget","props","Widget"],"sources":["@wordpress/dataviews/src/search-widget.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo, useDeferredValue } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { search, check } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Filter, NormalizedFilter, View } from './types';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\ninterface SearchWidgetProps {\n\tview: View;\n\tfilter: NormalizedFilter;\n\tonChangeView: ( view: View ) => void;\n}\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\nconst getCurrentValue = (\n\tfilterDefinition: NormalizedFilter,\n\tcurrentFilter?: Filter\n) => {\n\tif ( filterDefinition.singleSelection ) {\n\t\treturn currentFilter?.value;\n\t}\n\n\tif ( Array.isArray( currentFilter?.value ) ) {\n\t\treturn currentFilter.value;\n\t}\n\n\tif ( ! Array.isArray( currentFilter?.value ) && !! currentFilter?.value ) {\n\t\treturn [ currentFilter.value ];\n\t}\n\n\treturn EMPTY_ARRAY;\n};\n\nconst getNewValue = (\n\tfilterDefinition: NormalizedFilter,\n\tcurrentFilter: Filter | undefined,\n\tvalue: any\n) => {\n\tif ( filterDefinition.singleSelection ) {\n\t\treturn value;\n\t}\n\n\tif ( Array.isArray( currentFilter?.value ) ) {\n\t\treturn currentFilter.value.includes( value )\n\t\t\t? currentFilter.value.filter( ( v ) => v !== value )\n\t\t\t: [ ...currentFilter.value, value ];\n\t}\n\n\treturn [ value ];\n};\n\nfunction ListBox( { view, filter, onChangeView }: SearchWidgetProps ) {\n\tconst compositeStore = useCompositeStore( {\n\t\tvirtualFocus: true,\n\t\tfocusLoop: true,\n\t\t// When we have no or just one operator, we can set the first item as active.\n\t\t// We do that by passing `undefined` to `defaultActiveId`. Otherwise, we set it to `null`,\n\t\t// so the first item is not selected, since the focus is on the operators control.\n\t\tdefaultActiveId: filter.operators?.length === 1 ? undefined : null,\n\t} );\n\tconst currentFilter = view.filters.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\treturn (\n\t\t<Composite\n\t\t\tstore={ compositeStore }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"dataviews-search-widget-listbox\"\n\t\t\taria-label={ sprintf(\n\t\t\t\t/* translators: List of items for a filter. 1: Filter name. e.g.: \"List of: Author\". */\n\t\t\t\t__( 'List of: %1$s' ),\n\t\t\t\tfilter.name\n\t\t\t) }\n\t\t\tonFocusVisible={ () => {\n\t\t\t\tif ( ! compositeStore.getState().activeId ) {\n\t\t\t\t\tcompositeStore.move( compositeStore.first() );\n\t\t\t\t}\n\t\t\t} }\n\t\t\trender={ <Ariakit.CompositeTypeahead store={ compositeStore } /> }\n\t\t>\n\t\t\t{ filter.elements.map( ( element ) => (\n\t\t\t\t<Ariakit.CompositeHover\n\t\t\t\t\tstore={ compositeStore }\n\t\t\t\t\tkey={ element.value }\n\t\t\t\t\trender={\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\taria-label={ element.label }\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-search-widget-listitem\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t...view.filters.map(\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\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_filter.field ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.field\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\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\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentFilter.operator ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: getNewValue(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentFilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telement.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn _filter;\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 ]\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t...view.filters,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: getNewValue(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentFilter,\n\t\t\t\t\t\t\t\t\t\t\t\t\telement.value\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 ];\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: newFilters,\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>\n\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-check\">\n\t\t\t\t\t\t{ filter.singleSelection &&\n\t\t\t\t\t\t\tcurrentValue === element.value && (\n\t\t\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! filter.singleSelection &&\n\t\t\t\t\t\t\tcurrentValue.includes( element.value ) && (\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-description\">\n\t\t\t\t\t\t\t\t{ element.description }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</Ariakit.CompositeHover>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nfunction ComboboxList( { view, filter, onChangeView }: SearchWidgetProps ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst deferredSearchValue = useDeferredValue( searchValue );\n\tconst currentFilter = view.filters.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst currentValue = getCurrentValue( filter, currentFilter );\n\tconst matches = useMemo( () => {\n\t\tconst normalizedSearch = normalizeSearchInput( deferredSearchValue );\n\t\treturn filter.elements.filter( ( item ) =>\n\t\t\tnormalizeSearchInput( item.label ).includes( normalizedSearch )\n\t\t);\n\t}, [ filter.elements, deferredSearchValue ] );\n\treturn (\n\t\t<Ariakit.ComboboxProvider\n\t\t\tresetValueOnSelect={ false }\n\t\t\tselectedValue={ currentValue }\n\t\t\tsetSelectedValue={ ( value ) => {\n\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\tcurrentFilter.operator ||\n\t\t\t\t\t\t\t\t\t\t\tfilter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\tvalue,\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\treturn _filter;\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t ]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\t...view.filters,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ];\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tfilters: newFilters,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tsetValue={ setSearchValue }\n\t\t>\n\t\t\t<div className=\"dataviews-search-widget-filter-combobox__wrapper\">\n\t\t\t\t<Ariakit.ComboboxLabel\n\t\t\t\t\trender={\n\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t{ __( 'Search items' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Search items' ) }\n\t\t\t\t</Ariakit.ComboboxLabel>\n\t\t\t\t<Ariakit.Combobox\n\t\t\t\t\tautoSelect=\"always\"\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\tclassName=\"dataviews-search-widget-filter-combobox__input\"\n\t\t\t\t/>\n\t\t\t\t<div className=\"dataviews-search-widget-filter-combobox__icon\">\n\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<Ariakit.ComboboxList\n\t\t\t\tclassName=\"dataviews-search-widget-filter-combobox-list\"\n\t\t\t\talwaysVisible\n\t\t\t>\n\t\t\t\t{ matches.map( ( element ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Ariakit.ComboboxItem\n\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\tvalue={ element.value }\n\t\t\t\t\t\t\tclassName=\"dataviews-search-widget-listitem\"\n\t\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\t\tsetValueOnClick={ false }\n\t\t\t\t\t\t\tfocusOnHover\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-check\">\n\t\t\t\t\t\t\t\t{ filter.singleSelection &&\n\t\t\t\t\t\t\t\t\tcurrentValue === element.value && (\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! filter.singleSelection &&\n\t\t\t\t\t\t\t\t\tcurrentValue.includes( element.value ) && (\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<Ariakit.ComboboxItemValue\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-search-widget-filter-combobox-item-value\"\n\t\t\t\t\t\t\t\t\tvalue={ element.label }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t\t\t<span className=\"dataviews-search-widget-listitem-description\">\n\t\t\t\t\t\t\t\t\t\t{ element.description }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Ariakit.ComboboxItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ ! matches.length && <p>{ __( 'No results found' ) }</p> }\n\t\t\t</Ariakit.ComboboxList>\n\t\t</Ariakit.ComboboxProvider>\n\t);\n}\n\nexport default function SearchWidget( props: SearchWidgetProps ) {\n\tconst Widget = props.filter.elements.length > 10 ? ComboboxList : ListBox;\n\treturn <Widget { ...props } />;\n}\n"],"mappings":"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","ignoreList":[]}
package/build/search.js CHANGED
@@ -4,15 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = require("react");
8
7
  var _i18n = require("@wordpress/i18n");
9
8
  var _element = require("@wordpress/element");
10
9
  var _components = require("@wordpress/components");
11
10
  var _compose = require("@wordpress/compose");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
12
  /**
13
13
  * WordPress dependencies
14
14
  */
15
15
 
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
16
20
  const Search = (0, _element.memo)(function Search({
17
21
  label,
18
22
  view,
@@ -20,21 +24,24 @@ const Search = (0, _element.memo)(function Search({
20
24
  }) {
21
25
  const [search, setSearch, debouncedSearch] = (0, _compose.useDebouncedInput)(view.search);
22
26
  (0, _element.useEffect)(() => {
23
- setSearch(view.search);
24
- }, [view]);
27
+ var _view$search;
28
+ setSearch((_view$search = view.search) !== null && _view$search !== void 0 ? _view$search : '');
29
+ }, [view.search, setSearch]);
25
30
  const onChangeViewRef = (0, _element.useRef)(onChangeView);
31
+ const viewRef = (0, _element.useRef)(view);
26
32
  (0, _element.useEffect)(() => {
27
33
  onChangeViewRef.current = onChangeView;
28
- }, [onChangeView]);
34
+ viewRef.current = view;
35
+ }, [onChangeView, view]);
29
36
  (0, _element.useEffect)(() => {
30
37
  onChangeViewRef.current({
31
- ...view,
38
+ ...viewRef.current,
32
39
  page: 1,
33
40
  search: debouncedSearch
34
41
  });
35
42
  }, [debouncedSearch]);
36
43
  const searchLabel = label || (0, _i18n.__)('Search');
37
- return (0, _react.createElement)(_components.SearchControl, {
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SearchControl, {
38
45
  __nextHasNoMarginBottom: true,
39
46
  onChange: setSearch,
40
47
  value: search,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_compose","Search","memo","label","view","onChangeView","search","setSearch","debouncedSearch","useDebouncedInput","useEffect","onChangeViewRef","useRef","current","page","searchLabel","__","_react","createElement","SearchControl","__nextHasNoMarginBottom","onChange","value","placeholder","size","_default","exports","default"],"sources":["@wordpress/dataviews/src/search.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, memo } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\nimport { useDebouncedInput } from '@wordpress/compose';\n\nconst Search = memo( function Search( { label, view, onChangeView } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput(\n\t\tview.search\n\t);\n\tuseEffect( () => {\n\t\tsetSearch( view.search );\n\t}, [ view ] );\n\tconst onChangeViewRef = useRef( onChangeView );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current = onChangeView;\n\t}, [ onChangeView ] );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current( {\n\t\t\t...view,\n\t\t\tpage: 1,\n\t\t\tsearch: debouncedSearch,\n\t\t} );\n\t}, [ debouncedSearch ] );\n\tconst searchLabel = label || __( 'Search' );\n\treturn (\n\t\t<SearchControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tonChange={ setSearch }\n\t\t\tvalue={ search }\n\t\t\tlabel={ searchLabel }\n\t\t\tplaceholder={ searchLabel }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n} );\n\nexport default Search;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,MAAM,GAAG,IAAAC,aAAI,EAAE,SAASD,MAAMA,CAAE;EAAEE,KAAK;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EACrE,MAAM,CAAEC,MAAM,EAAEC,SAAS,EAAEC,eAAe,CAAE,GAAG,IAAAC,0BAAiB,EAC/DL,IAAI,CAACE,MACN,CAAC;EACD,IAAAI,kBAAS,EAAE,MAAM;IAChBH,SAAS,CAAEH,IAAI,CAACE,MAAO,CAAC;EACzB,CAAC,EAAE,CAAEF,IAAI,CAAG,CAAC;EACb,MAAMO,eAAe,GAAG,IAAAC,eAAM,EAAEP,YAAa,CAAC;EAC9C,IAAAK,kBAAS,EAAE,MAAM;IAChBC,eAAe,CAACE,OAAO,GAAGR,YAAY;EACvC,CAAC,EAAE,CAAEA,YAAY,CAAG,CAAC;EACrB,IAAAK,kBAAS,EAAE,MAAM;IAChBC,eAAe,CAACE,OAAO,CAAE;MACxB,GAAGT,IAAI;MACPU,IAAI,EAAE,CAAC;MACPR,MAAM,EAAEE;IACT,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEA,eAAe,CAAG,CAAC;EACxB,MAAMO,WAAW,GAAGZ,KAAK,IAAI,IAAAa,QAAE,EAAE,QAAS,CAAC;EAC3C,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAoB,aAAa;IACbC,uBAAuB;IACvBC,QAAQ,EAAGd,SAAW;IACtBe,KAAK,EAAGhB,MAAQ;IAChBH,KAAK,EAAGY,WAAa;IACrBQ,WAAW,EAAGR,WAAa;IAC3BS,IAAI,EAAC;EAAS,CACd,CAAC;AAEJ,CAAE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEW1B,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_compose","_jsxRuntime","Search","memo","label","view","onChangeView","search","setSearch","debouncedSearch","useDebouncedInput","useEffect","_view$search","onChangeViewRef","useRef","viewRef","current","page","searchLabel","__","jsx","SearchControl","__nextHasNoMarginBottom","onChange","value","placeholder","size","_default","exports","default"],"sources":["@wordpress/dataviews/src/search.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, memo } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport type { View } from './types';\n\ninterface SearchProps {\n\tlabel?: string;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\nconst Search = memo( function Search( {\n\tlabel,\n\tview,\n\tonChangeView,\n}: SearchProps ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput(\n\t\tview.search\n\t);\n\tuseEffect( () => {\n\t\tsetSearch( view.search ?? '' );\n\t}, [ view.search, setSearch ] );\n\tconst onChangeViewRef = useRef( onChangeView );\n\tconst viewRef = useRef( view );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current = onChangeView;\n\t\tviewRef.current = view;\n\t}, [ onChangeView, view ] );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current( {\n\t\t\t...viewRef.current,\n\t\t\tpage: 1,\n\t\t\tsearch: debouncedSearch,\n\t\t} );\n\t}, [ debouncedSearch ] );\n\tconst searchLabel = label || __( 'Search' );\n\treturn (\n\t\t<SearchControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tonChange={ setSearch }\n\t\t\tvalue={ search }\n\t\t\tlabel={ searchLabel }\n\t\t\tplaceholder={ searchLabel }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n} );\n\nexport default Search;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAAuD,IAAAI,WAAA,GAAAJ,OAAA;AANvD;AACA;AACA;;AAMA;AACA;AACA;;AASA,MAAMK,MAAM,GAAG,IAAAC,aAAI,EAAE,SAASD,MAAMA,CAAE;EACrCE,KAAK;EACLC,IAAI;EACJC;AACY,CAAC,EAAG;EAChB,MAAM,CAAEC,MAAM,EAAEC,SAAS,EAAEC,eAAe,CAAE,GAAG,IAAAC,0BAAiB,EAC/DL,IAAI,CAACE,MACN,CAAC;EACD,IAAAI,kBAAS,EAAE,MAAM;IAAA,IAAAC,YAAA;IAChBJ,SAAS,EAAAI,YAAA,GAAEP,IAAI,CAACE,MAAM,cAAAK,YAAA,cAAAA,YAAA,GAAI,EAAG,CAAC;EAC/B,CAAC,EAAE,CAAEP,IAAI,CAACE,MAAM,EAAEC,SAAS,CAAG,CAAC;EAC/B,MAAMK,eAAe,GAAG,IAAAC,eAAM,EAAER,YAAa,CAAC;EAC9C,MAAMS,OAAO,GAAG,IAAAD,eAAM,EAAET,IAAK,CAAC;EAC9B,IAAAM,kBAAS,EAAE,MAAM;IAChBE,eAAe,CAACG,OAAO,GAAGV,YAAY;IACtCS,OAAO,CAACC,OAAO,GAAGX,IAAI;EACvB,CAAC,EAAE,CAAEC,YAAY,EAAED,IAAI,CAAG,CAAC;EAC3B,IAAAM,kBAAS,EAAE,MAAM;IAChBE,eAAe,CAACG,OAAO,CAAE;MACxB,GAAGD,OAAO,CAACC,OAAO;MAClBC,IAAI,EAAE,CAAC;MACPV,MAAM,EAAEE;IACT,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEA,eAAe,CAAG,CAAC;EACxB,MAAMS,WAAW,GAAGd,KAAK,IAAI,IAAAe,QAAE,EAAE,QAAS,CAAC;EAC3C,oBACC,IAAAlB,WAAA,CAAAmB,GAAA,EAACrB,WAAA,CAAAsB,aAAa;IACbC,uBAAuB;IACvBC,QAAQ,EAAGf,SAAW;IACtBgB,KAAK,EAAGjB,MAAQ;IAChBH,KAAK,EAAGc,WAAa;IACrBO,WAAW,EAAGP,WAAa;IAC3BQ,IAAI,EAAC;EAAS,CACd,CAAC;AAEJ,CAAE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEW3B,MAAM","ignoreList":[]}
@@ -4,13 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = SingleSelectionCheckbox;
7
- var _react = require("react");
8
7
  var _i18n = require("@wordpress/i18n");
9
8
  var _components = require("@wordpress/components");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
10
  /**
11
11
  * WordPress dependencies
12
12
  */
13
13
 
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
14
18
  function SingleSelectionCheckbox({
15
19
  selection,
16
20
  onSelectionChange,
@@ -32,7 +36,7 @@ function SingleSelectionCheckbox({
32
36
  } else {
33
37
  selectionLabel = isSelected ? (0, _i18n.__)('Select a new item') : (0, _i18n.__)('Deselect item');
34
38
  }
35
- return (0, _react.createElement)(_components.CheckboxControl, {
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
36
40
  className: "dataviews-view-table-selection-checkbox",
37
41
  __nextHasNoMarginBottom: true,
38
42
  "aria-label": selectionLabel,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","SingleSelectionCheckbox","selection","onSelectionChange","item","data","getItemId","primaryField","disabled","id","isSelected","includes","selectionLabel","getValue","sprintf","__","_react","createElement","CheckboxControl","className","__nextHasNoMarginBottom","checked","onChange","filter","_item","itemId"],"sources":["@wordpress/dataviews/src/single-selection-checkbox.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\nexport default function SingleSelectionCheckbox( {\n\tselection,\n\tonSelectionChange,\n\titem,\n\tdata,\n\tgetItemId,\n\tprimaryField,\n\tdisabled,\n} ) {\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tlet selectionLabel;\n\tif ( primaryField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\t/* translators: %s: item title. */\n\t\t\tisSelected ? __( 'Deselect item: %s' ) : __( 'Select item: %s' ),\n\t\t\tprimaryField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = isSelected\n\t\t\t? __( 'Select a new item' )\n\t\t\t: __( 'Deselect item' );\n\t}\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ isSelected }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId === id || selection.includes( itemId )\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} else {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId !== id && selection.includes( itemId )\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}\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIe,SAASE,uBAAuBA,CAAE;EAChDC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACD,CAAC,EAAG;EACH,MAAMC,EAAE,GAAGH,SAAS,CAAEF,IAAK,CAAC;EAC5B,MAAMM,UAAU,GAAGR,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC;EAC3C,IAAIG,cAAc;EAClB,IAAKL,YAAY,EAAEM,QAAQ,IAAIT,IAAI,EAAG;IACrC;IACAQ,cAAc,GAAG,IAAAE,aAAO,GACvB;IACAJ,UAAU,GAAG,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GAAG,IAAAA,QAAE,EAAE,iBAAkB,CAAC,EAChER,YAAY,CAACM,QAAQ,CAAE;MAAET;IAAK,CAAE,CACjC,CAAC;EACF,CAAC,MAAM;IACNQ,cAAc,GAAGF,UAAU,GACxB,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GACzB,IAAAA,QAAE,EAAE,eAAgB,CAAC;EACzB;EACA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAkB,eAAe;IACfC,SAAS,EAAC,yCAAyC;IACnDC,uBAAuB;IACvB,cAAaR,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1Ba,OAAO,EAAGX,UAAY;IACtBY,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKd,QAAQ,EAAG;QACf;MACD;MAEA,IAAK,CAAEE,UAAU,EAAG;QACnBP,iBAAiB,CAChBE,IAAI,CAACkB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGnB,SAAS,GAAIkB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKhB,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEc,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF,CAAC,MAAM;QACNtB,iBAAiB,CAChBE,IAAI,CAACkB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGnB,SAAS,GAAIkB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKhB,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEc,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF;IACD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_jsxRuntime","SingleSelectionCheckbox","selection","onSelectionChange","item","data","getItemId","primaryField","disabled","id","isSelected","includes","selectionLabel","getValue","sprintf","__","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","onChange","filter","_item","itemId"],"sources":["@wordpress/dataviews/src/single-selection-checkbox.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { Field, AnyItem } from './types';\n\ninterface SingleSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\titem: Item;\n\tdata: Item[];\n\tgetItemId: ( item: Item ) => string;\n\tprimaryField?: Field< Item >;\n\tdisabled: boolean;\n}\n\nexport default function SingleSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\titem,\n\tdata,\n\tgetItemId,\n\tprimaryField,\n\tdisabled,\n}: SingleSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tlet selectionLabel;\n\tif ( primaryField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\t/* translators: %s: item title. */\n\t\t\tisSelected ? __( 'Deselect item: %s' ) : __( 'Select item: %s' ),\n\t\t\tprimaryField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = isSelected\n\t\t\t? __( 'Select a new item' )\n\t\t\t: __( 'Deselect item' );\n\t}\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ isSelected }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId === id || selection.includes( itemId )\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} else {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId !== id && selection.includes( itemId )\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}\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAJxD;AACA;AACA;;AAIA;AACA;AACA;;AAae,SAASG,uBAAuBA,CAA0B;EACxEC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACqC,CAAC,EAAG;EACzC,MAAMC,EAAE,GAAGH,SAAS,CAAEF,IAAK,CAAC;EAC5B,MAAMM,UAAU,GAAGR,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC;EAC3C,IAAIG,cAAc;EAClB,IAAKL,YAAY,EAAEM,QAAQ,IAAIT,IAAI,EAAG;IACrC;IACAQ,cAAc,GAAG,IAAAE,aAAO,GACvB;IACAJ,UAAU,GAAG,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GAAG,IAAAA,QAAE,EAAE,iBAAkB,CAAC,EAChER,YAAY,CAACM,QAAQ,CAAE;MAAET;IAAK,CAAE,CACjC,CAAC;EACF,CAAC,MAAM;IACNQ,cAAc,GAAGF,UAAU,GACxB,IAAAK,QAAE,EAAE,mBAAoB,CAAC,GACzB,IAAAA,QAAE,EAAE,eAAgB,CAAC;EACzB;EACA,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACjB,WAAA,CAAAkB,eAAe;IACfC,SAAS,EAAC,yCAAyC;IACnDC,uBAAuB;IACvB,cAAaP,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1BY,OAAO,EAAGV,UAAY;IACtBW,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKb,QAAQ,EAAG;QACf;MACD;MAEA,IAAK,CAAEE,UAAU,EAAG;QACnBP,iBAAiB,CAChBE,IAAI,CAACiB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGlB,SAAS,GAAIiB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKf,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEa,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF,CAAC,MAAM;QACNrB,iBAAiB,CAChBE,IAAI,CAACiB,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGlB,SAAS,GAAIiB,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKf,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAEa,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF;IACD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\ntype Item = Record< string, any >;\n\ninterface Option {\n\tvalue: any;\n\tlabel: string;\n}\n\ninterface filterByConfig {\n\toperators?: Operator[];\n\tisPrimary?: boolean;\n}\n\ntype Operator = 'is' | 'isNot' | 'isAny' | 'isNone' | 'isAll' | 'isNotAll';\n\nexport interface Field {\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\theader?: string;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( { item }: { item: Item } ) => any;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ( { item }: { item: Item } ) => ReactNode;\n\n\t/**\n\t * The width of the field column.\n\t */\n\twidth: string | number | undefined;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth: string | number | undefined;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth: string | number | undefined;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting: boolean | undefined;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch: boolean | undefined;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding: boolean | undefined;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[] | undefined;\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy: filterByConfig | undefined;\n}\n\nexport type NormalizedField = Required< Field >;\n\nexport type Data = Item[];\n\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface View {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: string;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ReactNode } from 'react';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type AnyItem = Record< string, any >;\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport interface Field< Item extends AnyItem > {\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\theader?: string;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ( args: { item: Item } ) => ReactNode;\n\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n}\n\nexport type NormalizedField< Item extends AnyItem > = Field< Item > &\n\tRequired< Pick< Field< Item >, 'header' | 'getValue' | 'render' > >;\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item extends AnyItem > = Field< Item >[];\n\nexport type Data< Item extends AnyItem > = Item[];\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The hidden fields.\n\t */\n\thiddenFields: string[];\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item extends AnyItem > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n}\n\nexport interface ActionModal< Item extends AnyItem >\n\textends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action has finished.\n\t */\n\tonActionPerformed: ( ( items: Item[] ) => void ) | undefined;\n\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tonActionStart: ( ( items: Item[] ) => void ) | undefined;\n\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t}: {\n\t\titems: Item[];\n\t\tcloseModal?: () => void;\n\t\tonActionStart?: ( items: Item[] ) => void;\n\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t} ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item extends AnyItem >\n\textends ActionBase< AnyItem > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: ( items: Item[] ) => void;\n}\n\nexport type Action< Item extends AnyItem > =\n\t| ActionModal< Item >\n\t| ActionButton< Item >;\n\nexport interface ViewBaseProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView( view: View ): void;\n\tonSelectionChange: ( items: Item[] ) => void;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n}\n\nexport interface ViewTableProps< Item extends AnyItem >\n\textends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item extends AnyItem >\n\textends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item extends AnyItem >\n\textends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item extends AnyItem > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n"],"mappings":"","ignoreList":[]}
package/build/utils.js CHANGED
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sanitizeOperators = void 0;
6
+ exports.sanitizeOperators = sanitizeOperators;
7
7
  var _constants = require("./constants");
8
8
  /**
9
9
  * Internal dependencies
10
10
  */
11
11
 
12
- const sanitizeOperators = field => {
12
+ function sanitizeOperators(field) {
13
13
  let operators = field.filterBy?.operators;
14
14
 
15
15
  // Assign default values.
@@ -17,17 +17,6 @@ const sanitizeOperators = field => {
17
17
  operators = [_constants.OPERATOR_IS_ANY, _constants.OPERATOR_IS_NONE];
18
18
  }
19
19
 
20
- // Transform legacy in, notIn operators to is, isNot.
21
- // To be removed in the future.
22
- if (operators.includes('in')) {
23
- operators = operators.filter(operator => operator !== 'is');
24
- operators.push('is');
25
- }
26
- if (operators.includes('notIn')) {
27
- operators = operators.filter(operator => operator !== 'notIn');
28
- operators.push('isNot');
29
- }
30
-
31
20
  // Make sure only valid operators are used.
32
21
  operators = operators.filter(operator => _constants.ALL_OPERATORS.includes(operator));
33
22
 
@@ -37,6 +26,5 @@ const sanitizeOperators = field => {
37
26
  operators = operators.filter(operator => [_constants.OPERATOR_IS, _constants.OPERATOR_IS_NOT].includes(operator));
38
27
  }
39
28
  return operators;
40
- };
41
- exports.sanitizeOperators = sanitizeOperators;
29
+ }
42
30
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","sanitizeOperators","field","operators","filterBy","Array","isArray","OPERATOR_IS_ANY","OPERATOR_IS_NONE","includes","filter","operator","push","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","exports"],"sources":["@wordpress/dataviews/src/utils.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tALL_OPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n} from './constants';\n\nexport const sanitizeOperators = ( field ) => {\n\tlet operators = field.filterBy?.operators;\n\n\t// Assign default values.\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ];\n\t}\n\n\t// Transform legacy in, notIn operators to is, isNot.\n\t// To be removed in the future.\n\tif ( operators.includes( 'in' ) ) {\n\t\toperators = operators.filter( ( operator ) => operator !== 'is' );\n\t\toperators.push( 'is' );\n\t}\n\tif ( operators.includes( 'notIn' ) ) {\n\t\toperators = operators.filter( ( operator ) => operator !== 'notIn' );\n\t\toperators.push( 'isNot' );\n\t}\n\n\t// Make sure only valid operators are used.\n\toperators = operators.filter( ( operator ) =>\n\t\tALL_OPERATORS.includes( operator )\n\t);\n\n\t// Do not allow mixing single & multiselection operators.\n\t// Remove multiselection operators if any of the single selection ones is present.\n\tif (\n\t\toperators.includes( OPERATOR_IS ) ||\n\t\toperators.includes( OPERATOR_IS_NOT )\n\t) {\n\t\toperators = operators.filter( ( operator ) =>\n\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( operator )\n\t\t);\n\t}\n\n\treturn operators;\n};\n"],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AASO,MAAMC,iBAAiB,GAAKC,KAAK,IAAM;EAC7C,IAAIC,SAAS,GAAGD,KAAK,CAACE,QAAQ,EAAED,SAAS;;EAEzC;EACA,IAAK,CAAEA,SAAS,IAAI,CAAEE,KAAK,CAACC,OAAO,CAAEH,SAAU,CAAC,EAAG;IAClDA,SAAS,GAAG,CAAEI,0BAAe,EAAEC,2BAAgB,CAAE;EAClD;;EAEA;EACA;EACA,IAAKL,SAAS,CAACM,QAAQ,CAAE,IAAK,CAAC,EAAG;IACjCN,SAAS,GAAGA,SAAS,CAACO,MAAM,CAAIC,QAAQ,IAAMA,QAAQ,KAAK,IAAK,CAAC;IACjER,SAAS,CAACS,IAAI,CAAE,IAAK,CAAC;EACvB;EACA,IAAKT,SAAS,CAACM,QAAQ,CAAE,OAAQ,CAAC,EAAG;IACpCN,SAAS,GAAGA,SAAS,CAACO,MAAM,CAAIC,QAAQ,IAAMA,QAAQ,KAAK,OAAQ,CAAC;IACpER,SAAS,CAACS,IAAI,CAAE,OAAQ,CAAC;EAC1B;;EAEA;EACAT,SAAS,GAAGA,SAAS,CAACO,MAAM,CAAIC,QAAQ,IACvCE,wBAAa,CAACJ,QAAQ,CAAEE,QAAS,CAClC,CAAC;;EAED;EACA;EACA,IACCR,SAAS,CAACM,QAAQ,CAAEK,sBAAY,CAAC,IACjCX,SAAS,CAACM,QAAQ,CAAEM,0BAAgB,CAAC,EACpC;IACDZ,SAAS,GAAGA,SAAS,CAACO,MAAM,CAAIC,QAAQ,IACvC,CAAEG,sBAAW,EAAEC,0BAAe,CAAE,CAACN,QAAQ,CAAEE,QAAS,CACrD,CAAC;EACF;EAEA,OAAOR,SAAS;AACjB,CAAC;AAACa,OAAA,CAAAf,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","sanitizeOperators","field","operators","filterBy","Array","isArray","OPERATOR_IS_ANY","OPERATOR_IS_NONE","filter","operator","ALL_OPERATORS","includes","OPERATOR_IS","OPERATOR_IS_NOT"],"sources":["@wordpress/dataviews/src/utils.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tALL_OPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n} from './constants';\nimport type { AnyItem, NormalizedField } from './types';\n\nexport function sanitizeOperators< Item extends AnyItem >(\n\tfield: NormalizedField< Item >\n) {\n\tlet operators = field.filterBy?.operators;\n\n\t// Assign default values.\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ];\n\t}\n\n\t// Make sure only valid operators are used.\n\toperators = operators.filter( ( operator ) =>\n\t\tALL_OPERATORS.includes( operator )\n\t);\n\n\t// Do not allow mixing single & multiselection operators.\n\t// Remove multiselection operators if any of the single selection ones is present.\n\tif (\n\t\toperators.includes( OPERATOR_IS ) ||\n\t\toperators.includes( OPERATOR_IS_NOT )\n\t) {\n\t\toperators = operators.filter( ( operator ) =>\n\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( operator )\n\t\t);\n\t}\n\n\treturn operators;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAUO,SAASC,iBAAiBA,CAChCC,KAA8B,EAC7B;EACD,IAAIC,SAAS,GAAGD,KAAK,CAACE,QAAQ,EAAED,SAAS;;EAEzC;EACA,IAAK,CAAEA,SAAS,IAAI,CAAEE,KAAK,CAACC,OAAO,CAAEH,SAAU,CAAC,EAAG;IAClDA,SAAS,GAAG,CAAEI,0BAAe,EAAEC,2BAAgB,CAAE;EAClD;;EAEA;EACAL,SAAS,GAAGA,SAAS,CAACM,MAAM,CAAIC,QAAQ,IACvCC,wBAAa,CAACC,QAAQ,CAAEF,QAAS,CAClC,CAAC;;EAED;EACA;EACA,IACCP,SAAS,CAACS,QAAQ,CAAEC,sBAAY,CAAC,IACjCV,SAAS,CAACS,QAAQ,CAAEE,0BAAgB,CAAC,EACpC;IACDX,SAAS,GAAGA,SAAS,CAACM,MAAM,CAAIC,QAAQ,IACvC,CAAEG,sBAAW,EAAEC,0BAAe,CAAE,CAACF,QAAQ,CAAEF,QAAS,CACrD,CAAC;EACF;EAEA,OAAOP,SAAS;AACjB","ignoreList":[]}