@blaze-cms/react-page-builder 0.113.1 → 0.114.0-alpha.3

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 (106) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +5 -8
  3. package/lib/components/Card/CardRender.js +61 -17
  4. package/lib/components/Card/CardRender.js.map +1 -1
  5. package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
  6. package/lib/components/List/ListBuilder.js +11 -6
  7. package/lib/components/List/ListBuilder.js.map +1 -1
  8. package/lib/components/List/ListFactory.js +20 -7
  9. package/lib/components/List/ListFactory.js.map +1 -1
  10. package/lib/components/List/helpers/get-sort-props.js +46 -0
  11. package/lib/components/List/helpers/get-sort-props.js.map +1 -0
  12. package/lib/components/List/helpers/index.js +8 -0
  13. package/lib/components/List/helpers/index.js.map +1 -1
  14. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  15. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  16. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +60 -22
  17. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  18. package/lib/components/SearchFilter/SearchFilterContainer.js +8 -4
  19. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  20. package/lib/components/SearchFilter/components/Checkbox.js +5 -2
  21. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  22. package/lib/components/SearchFilter/components/Range.js +7 -3
  23. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  24. package/lib/components/SearchFilter/components/Select.js +5 -2
  25. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  26. package/lib/components/SearchFilter/constants.js +13 -1
  27. package/lib/components/SearchFilter/constants.js.map +1 -1
  28. package/lib/components/SearchFilter/helpers/build-query.js +6 -5
  29. package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
  30. package/lib/components/SearchFilter/helpers/get-range-value.js +6 -4
  31. package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  32. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js +29 -0
  33. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
  34. package/lib/components/SearchFilter/helpers/index.js +8 -0
  35. package/lib/components/SearchFilter/helpers/index.js.map +1 -1
  36. package/lib/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  37. package/lib/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  38. package/lib/helpers/get-generic-render-variables.js +32 -22
  39. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  40. package/lib-es/components/Card/CardRender.js +32 -5
  41. package/lib-es/components/Card/CardRender.js.map +1 -1
  42. package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
  43. package/lib-es/components/List/ListBuilder.js +11 -6
  44. package/lib-es/components/List/ListBuilder.js.map +1 -1
  45. package/lib-es/components/List/ListFactory.js +20 -8
  46. package/lib-es/components/List/ListFactory.js.map +1 -1
  47. package/lib-es/components/List/helpers/get-sort-props.js +26 -0
  48. package/lib-es/components/List/helpers/get-sort-props.js.map +1 -0
  49. package/lib-es/components/List/helpers/index.js +1 -0
  50. package/lib-es/components/List/helpers/index.js.map +1 -1
  51. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  52. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  53. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +54 -23
  54. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  55. package/lib-es/components/SearchFilter/SearchFilterContainer.js +8 -4
  56. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  57. package/lib-es/components/SearchFilter/components/Checkbox.js +5 -2
  58. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  59. package/lib-es/components/SearchFilter/components/Range.js +7 -3
  60. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  61. package/lib-es/components/SearchFilter/components/Select.js +5 -2
  62. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  63. package/lib-es/components/SearchFilter/constants.js +12 -1
  64. package/lib-es/components/SearchFilter/constants.js.map +1 -1
  65. package/lib-es/components/SearchFilter/helpers/build-query.js +5 -4
  66. package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
  67. package/lib-es/components/SearchFilter/helpers/get-range-value.js +1 -1
  68. package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  69. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js +20 -0
  70. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
  71. package/lib-es/components/SearchFilter/helpers/index.js +2 -1
  72. package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
  73. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  74. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  75. package/lib-es/helpers/get-generic-render-variables.js +22 -15
  76. package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
  77. package/package.json +2 -2
  78. package/src/components/Card/CardRender.js +24 -6
  79. package/src/components/Card/helpers/filter-query-setup.js +1 -0
  80. package/src/components/List/ListBuilder.js +11 -6
  81. package/src/components/List/ListFactory.js +18 -8
  82. package/src/components/List/helpers/get-sort-props.js +17 -0
  83. package/src/components/List/helpers/index.js +1 -0
  84. package/src/components/SearchFilter/SearchFilter/FiltersList.js +15 -2
  85. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +78 -27
  86. package/src/components/SearchFilter/SearchFilterContainer.js +8 -4
  87. package/src/components/SearchFilter/components/Checkbox.js +4 -2
  88. package/src/components/SearchFilter/components/Range.js +7 -3
  89. package/src/components/SearchFilter/components/Select.js +4 -2
  90. package/src/components/SearchFilter/constants.js +14 -1
  91. package/src/components/SearchFilter/helpers/build-query.js +5 -4
  92. package/src/components/SearchFilter/helpers/get-range-value.js +3 -1
  93. package/src/components/SearchFilter/helpers/get-responsive-filter-classnames.js +22 -0
  94. package/src/components/SearchFilter/helpers/index.js +2 -0
  95. package/src/components/SearchFilter/helpers/is-device-desktop.js +2 -1
  96. package/src/helpers/get-generic-render-variables.js +22 -12
  97. package/tests/unit/src/components/List/helpers/get-sort-props.test.js +58 -0
  98. package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +29 -3
  99. package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +304 -6
  100. package/tests/unit/src/helpers/build-raw-query.test.js +2 -1
  101. package/tests/unit/src/helpers/get-generic-render-variables.test.js +5 -11
  102. package/lib/helpers/check-sort-by.js +0 -16
  103. package/lib/helpers/check-sort-by.js.map +0 -1
  104. package/lib-es/helpers/check-sort-by.js +0 -4
  105. package/lib-es/helpers/check-sort-by.js.map +0 -1
  106. package/src/helpers/check-sort-by.js +0 -4
@@ -0,0 +1,22 @@
1
+ import classnames from 'classnames';
2
+ import { MORE_FILTERS_CLASSES } from '../constants';
3
+
4
+ const getResponsiveFilterClassnames = (
5
+ moreFiltersDesktopCollapsed,
6
+ moreFiltersMobileCollapsed
7
+ ) => ({
8
+ moreFiltersMobileWrapperClass: classnames(MORE_FILTERS_CLASSES.MOBILE_WRAPPER, {
9
+ [`${MORE_FILTERS_CLASSES.MOBILE_WRAPPER}--open`]: !moreFiltersMobileCollapsed
10
+ }),
11
+ moreFiltersMobileTogglerClass: classnames(MORE_FILTERS_CLASSES.MOBILE_TOGGLER, {
12
+ [`${MORE_FILTERS_CLASSES.MOBILE_TOGGLER}--open`]: !moreFiltersMobileCollapsed
13
+ }),
14
+ moreFiltersDesktopWrapperClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_WRAPPER, {
15
+ [`${MORE_FILTERS_CLASSES.DESKTOP_WRAPPER}--open`]: !moreFiltersDesktopCollapsed
16
+ }),
17
+ moreFiltersDesktopTogglerClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_TOGGLER, {
18
+ [`${MORE_FILTERS_CLASSES.DESKTOP_TOGGLER}--open`]: !moreFiltersDesktopCollapsed
19
+ })
20
+ });
21
+
22
+ export default getResponsiveFilterClassnames;
@@ -2,6 +2,7 @@ import buildNewQuery from './build-new-query';
2
2
  import buildRawQueryStringified from './build-raw-query-stringified';
3
3
  import { decodeValue, encodeValue } from './decode-encode';
4
4
  import checkIfRangeUpdated from './check-if-range-updated';
5
+ import getResponsiveFilterClassnames from './get-responsive-filter-classnames';
5
6
  import getDisplayValue from './get-display-value';
6
7
  import calculateStep from './calculate-step';
7
8
  import calculateMinMax from './calculate-min-max';
@@ -20,6 +21,7 @@ export {
20
21
  decodeValue,
21
22
  encodeValue,
22
23
  checkIfRangeUpdated,
24
+ getResponsiveFilterClassnames,
23
25
  getDisplayValue,
24
26
  calculateStep,
25
27
  calculateMinMax,
@@ -1,5 +1,6 @@
1
1
  import { TABLET_WIDTH } from '../constants';
2
2
 
3
- const isDeviceDesktop = () => window.innerWidth > TABLET_WIDTH;
3
+ const isDeviceDesktop = () =>
4
+ typeof window !== 'undefined' ? window.innerWidth > TABLET_WIDTH : false;
4
5
 
5
6
  export default isDeviceDesktop;
@@ -1,31 +1,41 @@
1
- import checkSortby from './check-sort-by';
2
1
  import getSortbyFieldName from './get-sort-by-field-name';
3
2
  import { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';
4
3
 
4
+ const buildSortValues = (sortFilters, relations, stringProps) => {
5
+ if (!sortFilters || !sortFilters.length) return { sort: [] };
6
+ const sortValues = sortFilters
7
+ .map(
8
+ ({ sort, propsToDisplay }) =>
9
+ !!sort &&
10
+ !!propsToDisplay[0] &&
11
+ `${getSortbyFieldName(relations, propsToDisplay[0], stringProps)}:${sort.toLowerCase()}`
12
+ )
13
+ .filter(Boolean)
14
+ .join(',');
15
+
16
+ return { sort: sortValues };
17
+ };
5
18
  const getCorrectSort = (relations, filterProps, stringProps, isTextSearchApplied) => {
6
19
  if (isTextSearchApplied) {
7
20
  return {};
8
21
  }
9
- const { sort, sortby } = filterProps;
10
-
11
- const isSortbyArray = Array.isArray(sortby);
12
-
13
- const hasSortFields = sort && checkSortby(sortby, isSortbyArray);
14
-
15
- const sortValue = hasSortFields
16
- ? `${getSortbyFieldName(relations, sortby, stringProps, isSortbyArray)}:${sort.toLowerCase()}`
17
- : '';
22
+ const { sort, sortby, sortProperties = [] } = filterProps;
18
23
 
19
- return sortValue ? { sort: sortValue } : {};
24
+ return buildSortValues(
25
+ [{ sort, propsToDisplay: [sortby] }, ...sortProperties],
26
+ relations,
27
+ stringProps
28
+ );
20
29
  };
21
30
 
22
31
  const getGenericRenderVariables = (
23
32
  relations,
24
- { limit = DEFAULT_LIMIT, offset, ...filterProps } = {},
33
+ filterProps = {},
25
34
  stringProps = [],
26
35
  rawQueryStringified = '',
27
36
  isTextSearchFilterApplied = false
28
37
  ) => {
38
+ const { limit = DEFAULT_LIMIT, offset } = filterProps;
29
39
  const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);
30
40
  const raw = rawQueryStringified ? { rawQueryStringified } : {};
31
41
 
@@ -0,0 +1,58 @@
1
+ import getSortProps from '../../../../../../src/components/List/helpers/get-sort-props';
2
+
3
+ const property = 'updated';
4
+ const defaultProperty = 'name';
5
+ const asc = 'asc';
6
+ const desc = 'desc';
7
+ const sortProperties = [
8
+ {
9
+ propsToDisplay: [property],
10
+ sort: asc
11
+ }
12
+ ];
13
+ const querySortBy = 'date';
14
+ const props = {
15
+ querySort: '',
16
+ sortProperties,
17
+ defaultSort: desc,
18
+ querySortBy: '',
19
+ defaultSortBy: [defaultProperty]
20
+ };
21
+
22
+ describe('getSortProps helper function', () => {
23
+ it('should ignore old sortby/sort and use sortProperties', () => {
24
+ const { sortbyFilters, updatedSortProperties } = getSortProps(props);
25
+ expect(sortbyFilters).toEqual([property]);
26
+ expect(updatedSortProperties).toEqual(sortProperties);
27
+ });
28
+
29
+ it('should add query sort', () => {
30
+ const { sortbyFilters, updatedSortProperties } = getSortProps({
31
+ ...props,
32
+ querySortBy,
33
+ querySort: desc
34
+ });
35
+ expect(sortbyFilters).toEqual([querySortBy, property]);
36
+ expect(updatedSortProperties).toEqual([
37
+ {
38
+ propsToDisplay: [querySortBy],
39
+ sort: desc
40
+ },
41
+ ...sortProperties
42
+ ]);
43
+ });
44
+
45
+ it('should use old style sort', () => {
46
+ const { sortbyFilters, updatedSortProperties } = getSortProps({
47
+ ...props,
48
+ sortProperties: []
49
+ });
50
+ expect(sortbyFilters).toEqual([defaultProperty]);
51
+ expect(updatedSortProperties).toEqual([
52
+ {
53
+ propsToDisplay: [defaultProperty],
54
+ sort: desc
55
+ }
56
+ ]);
57
+ });
58
+ });
@@ -22,7 +22,8 @@ const mockedProps = {
22
22
  handleSearch: jest.fn(),
23
23
  resetFilters: jest.fn(),
24
24
  name: 'test',
25
- groupAfter: 0,
25
+ groupAfterMobile: 0,
26
+ groupAfterDesktop: 0,
26
27
  isCollapsedOnResponsive: true,
27
28
  displaySearchFilter: false
28
29
  };
@@ -139,10 +140,35 @@ describe('SearchFilter component', () => {
139
140
  });
140
141
  });
141
142
 
142
- describe('when groupAfter > 0', () => {
143
+ describe('when groupAfterMobile > 0 and groupAfterDesktop = 0', () => {
143
144
  const specificMockedProps = {
144
145
  ...mockedProps,
145
- groupAfter: 1
146
+ groupAfterMobile: 1
147
+ };
148
+
149
+ it('should render without throwing error and match snapshot', () => {
150
+ const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
151
+ expect(asFragment()).toMatchSnapshot();
152
+ });
153
+ });
154
+
155
+ describe('when groupAfterMobile = 0 and groupAfterDesktop > 0', () => {
156
+ const specificMockedProps = {
157
+ ...mockedProps,
158
+ groupAfterDesktop: 1
159
+ };
160
+
161
+ it('should render without throwing error and match snapshot', () => {
162
+ const { asFragment } = renderComponent(SearchFilter, specificMockedProps);
163
+ expect(asFragment()).toMatchSnapshot();
164
+ });
165
+ });
166
+
167
+ describe('when groupAfterMobile > 0 and groupAfterDesktop > 0', () => {
168
+ const specificMockedProps = {
169
+ ...mockedProps,
170
+ groupAfterMobile: 1,
171
+ groupAfterDesktop: 1
146
172
  };
147
173
 
148
174
  it('should render without throwing error and match snapshot', () => {
@@ -1,6 +1,6 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`SearchFilter component when groupAfter > 0 should render without throwing error and match snapshot 1`] = `
3
+ exports[`SearchFilter component when groupAfterMobile > 0 and groupAfterDesktop = 0 should render without throwing error and match snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <form
6
6
  class=""
@@ -34,19 +34,317 @@ exports[`SearchFilter component when groupAfter > 0 should render without throwi
34
34
  class="filter__wrapper filter__wrapper--search-refine"
35
35
  >
36
36
  <button
37
- class="filter__more-filters-toggler"
37
+ class="filter__more-filters-mobile-toggler"
38
38
  type="button"
39
39
  >
40
- More filters
40
+ Filters
41
41
  </button>
42
42
  <div
43
- class="filter__more-filters-wrapper"
43
+ class="filter__more-filters-mobile-wrapper"
44
44
  >
45
45
  <div
46
- class="filter__more-filters-content"
46
+ class="filter__more-filters-mobile-content"
47
+ >
48
+ <div
49
+ class="filter__more-filters-desktop-wrapper"
50
+ >
51
+ <div
52
+ class="filter__more-filters-desktop-content"
53
+ />
54
+ <div
55
+ class="filter__more-filters-desktop-buttons"
56
+ >
57
+ <div
58
+ class="filter__reset"
59
+ >
60
+ <button
61
+ class="icon-button icon-button--reset"
62
+ data-testid="reset-icon"
63
+ title="reset--button"
64
+ type="button"
65
+ >
66
+ <i
67
+ class="fas fa-redo-alt"
68
+ />
69
+ </button>
70
+ <div
71
+ data-testid="reset-button"
72
+ role="button"
73
+ >
74
+ Reset all filters
75
+ </div>
76
+ </div>
77
+ <button
78
+ class="button button--full-width"
79
+ type="submit"
80
+ >
81
+ Search
82
+ </button>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ <div
87
+ class="filter__more-filters-mobile-buttons"
88
+ >
89
+ <div
90
+ class="filter__reset"
91
+ >
92
+ <button
93
+ class="icon-button icon-button--reset"
94
+ data-testid="reset-icon"
95
+ title="reset--button"
96
+ type="button"
97
+ >
98
+ <i
99
+ class="fas fa-redo-alt"
100
+ />
101
+ </button>
102
+ <div
103
+ data-testid="reset-button"
104
+ role="button"
105
+ >
106
+ Reset all filters
107
+ </div>
108
+ </div>
109
+ <button
110
+ class="button button--full-width"
111
+ type="submit"
112
+ >
113
+ Search
114
+ </button>
115
+ </div>
116
+ </div>
117
+ <br />
118
+ <button
119
+ class="button button--full-width"
120
+ type="submit"
121
+ >
122
+ Search
123
+ </button>
124
+ </div>
125
+ </div>
126
+ </form>
127
+ </DocumentFragment>
128
+ `;
129
+
130
+ exports[`SearchFilter component when groupAfterMobile = 0 and groupAfterDesktop > 0 should render without throwing error and match snapshot 1`] = `
131
+ <DocumentFragment>
132
+ <form
133
+ class=""
134
+ data-testid="filter-test-form"
135
+ id="filter-test-form"
136
+ >
137
+ <div
138
+ class="filter filter--search-refine"
139
+ >
140
+ <div
141
+ class="filter__reset"
142
+ >
143
+ <button
144
+ class="icon-button icon-button--reset"
145
+ data-testid="reset-icon"
146
+ title="reset--button"
147
+ type="button"
148
+ >
149
+ <i
150
+ class="fas fa-redo-alt"
151
+ />
152
+ </button>
153
+ <div
154
+ data-testid="reset-button"
155
+ role="button"
156
+ >
157
+ Reset all filters
158
+ </div>
159
+ </div>
160
+ <div
161
+ class="filter__wrapper filter__wrapper--search-refine"
162
+ >
163
+ <div
164
+ class="filter__more-filters-mobile-wrapper"
165
+ >
166
+ <div
167
+ class="filter__more-filters-mobile-content"
168
+ >
169
+ <button
170
+ class="filter__more-filters-desktop-toggler"
171
+ type="button"
172
+ >
173
+ More filters
174
+ </button>
175
+ <div
176
+ class="filter__more-filters-desktop-wrapper"
177
+ >
178
+ <div
179
+ class="filter__more-filters-desktop-content"
180
+ />
181
+ <div
182
+ class="filter__more-filters-desktop-buttons"
183
+ >
184
+ <div
185
+ class="filter__reset"
186
+ >
187
+ <button
188
+ class="icon-button icon-button--reset"
189
+ data-testid="reset-icon"
190
+ title="reset--button"
191
+ type="button"
192
+ >
193
+ <i
194
+ class="fas fa-redo-alt"
195
+ />
196
+ </button>
197
+ <div
198
+ data-testid="reset-button"
199
+ role="button"
200
+ >
201
+ Reset all filters
202
+ </div>
203
+ </div>
204
+ <button
205
+ class="button button--full-width"
206
+ type="submit"
207
+ >
208
+ Search
209
+ </button>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ <div
214
+ class="filter__more-filters-mobile-buttons"
215
+ >
216
+ <div
217
+ class="filter__reset"
218
+ >
219
+ <button
220
+ class="icon-button icon-button--reset"
221
+ data-testid="reset-icon"
222
+ title="reset--button"
223
+ type="button"
224
+ >
225
+ <i
226
+ class="fas fa-redo-alt"
227
+ />
228
+ </button>
229
+ <div
230
+ data-testid="reset-button"
231
+ role="button"
232
+ >
233
+ Reset all filters
234
+ </div>
235
+ </div>
236
+ <button
237
+ class="button button--full-width"
238
+ type="submit"
239
+ >
240
+ Search
241
+ </button>
242
+ </div>
243
+ </div>
244
+ <br />
245
+ <button
246
+ class="button button--full-width"
247
+ type="submit"
248
+ >
249
+ Search
250
+ </button>
251
+ </div>
252
+ </div>
253
+ </form>
254
+ </DocumentFragment>
255
+ `;
256
+
257
+ exports[`SearchFilter component when groupAfterMobile > 0 and groupAfterDesktop > 0 should render without throwing error and match snapshot 1`] = `
258
+ <DocumentFragment>
259
+ <form
260
+ class=""
261
+ data-testid="filter-test-form"
262
+ id="filter-test-form"
263
+ >
264
+ <div
265
+ class="filter filter--search-refine"
266
+ >
267
+ <div
268
+ class="filter__reset"
269
+ >
270
+ <button
271
+ class="icon-button icon-button--reset"
272
+ data-testid="reset-icon"
273
+ title="reset--button"
274
+ type="button"
275
+ >
276
+ <i
277
+ class="fas fa-redo-alt"
47
278
  />
279
+ </button>
280
+ <div
281
+ data-testid="reset-button"
282
+ role="button"
283
+ >
284
+ Reset all filters
285
+ </div>
286
+ </div>
287
+ <div
288
+ class="filter__wrapper filter__wrapper--search-refine"
289
+ >
290
+ <button
291
+ class="filter__more-filters-mobile-toggler"
292
+ type="button"
293
+ >
294
+ Filters
295
+ </button>
296
+ <div
297
+ class="filter__more-filters-mobile-wrapper"
298
+ >
299
+ <div
300
+ class="filter__more-filters-mobile-content"
301
+ >
302
+ <button
303
+ class="filter__more-filters-desktop-toggler"
304
+ type="button"
305
+ >
306
+ More filters
307
+ </button>
308
+ <div
309
+ class="filter__more-filters-desktop-wrapper"
310
+ >
311
+ <div
312
+ class="filter__more-filters-desktop-content"
313
+ />
314
+ <div
315
+ class="filter__more-filters-desktop-buttons"
316
+ >
317
+ <div
318
+ class="filter__reset"
319
+ >
320
+ <button
321
+ class="icon-button icon-button--reset"
322
+ data-testid="reset-icon"
323
+ title="reset--button"
324
+ type="button"
325
+ >
326
+ <i
327
+ class="fas fa-redo-alt"
328
+ />
329
+ </button>
330
+ <div
331
+ data-testid="reset-button"
332
+ role="button"
333
+ >
334
+ Reset all filters
335
+ </div>
336
+ </div>
337
+ <button
338
+ class="button button--full-width"
339
+ type="submit"
340
+ >
341
+ Search
342
+ </button>
343
+ </div>
344
+ </div>
345
+ </div>
48
346
  <div
49
- class="filter__more-filters-buttons"
347
+ class="filter__more-filters-mobile-buttons"
50
348
  >
51
349
  <div
52
350
  class="filter__reset"
@@ -304,6 +304,7 @@ describe('build raw query', () => {
304
304
  id,
305
305
  itemsToDisplay
306
306
  );
307
+
307
308
  expect(rawQueryOneCheckboxFilterMoreItemsToDisplayValues).toEqual(
308
309
  RAW_QUERY_OR_OPERATOR_ITEMS_TO_DISPLAY
309
310
  );
@@ -347,7 +348,7 @@ describe('build raw query', () => {
347
348
  filterData,
348
349
  id,
349
350
  [],
350
- false,
351
+ true,
351
352
  { shouldReturnAggs: true, isAZ: true }
352
353
  );
353
354
  expect(queryWithAggs).toEqual(RAW_QUERY_WITH_AGGS);
@@ -17,11 +17,7 @@ const mockedProps = overrides => ({
17
17
  });
18
18
 
19
19
  describe('get card/list render variables', () => {
20
- it('should be a function', () => {
21
- expect(typeof getGenericRenderVariables).toEqual('function');
22
- });
23
-
24
- it('should return always an object', () => {
20
+ it('should always return an object', () => {
25
21
  const variables = getGenericRenderVariables();
26
22
  const variablesWithProps = getGenericRenderVariables([], mockedProps(), STRING_PROPS_EMPTY);
27
23
 
@@ -78,20 +74,18 @@ describe('get card/list render variables', () => {
78
74
  mockedProps({ sortby: ['length'] }),
79
75
  STRING_PROPS_EMPTY
80
76
  );
81
-
82
77
  expect(sort).toEqual('length:desc');
83
78
  });
84
79
 
85
80
  it('should return correct sort data when when there is a prop that is of type string', () => {
86
- const { sort } = getGenericRenderVariables([], mockedProps({ sortby: ['name'] }), STRING_PROPS);
87
-
81
+ const { sort } = getGenericRenderVariables([], mockedProps({ sortby: 'name' }), STRING_PROPS);
88
82
  expect(sort).toEqual('name.keyword:desc');
89
83
  });
90
84
 
91
85
  it("should return correct sort data when when there is a prop that is of type string and it's also a relation prop", () => {
92
86
  const { sort } = getGenericRenderVariables(
93
87
  [{ localField: 'entity', entityIdentifier: 'entity' }],
94
- mockedProps({ sortby: ['entity.name'], sort: 'ASC' }),
88
+ mockedProps({ sortby: 'entity.name', sort: 'ASC' }),
95
89
  ['entity.name']
96
90
  );
97
91
 
@@ -103,7 +97,7 @@ describe('get card/list render variables', () => {
103
97
  const sortby = `${localField}.length`;
104
98
  const { sort } = getGenericRenderVariables(
105
99
  [{ localField, entityIdentifier: 'entity' }],
106
- mockedProps({ sortby: [sortby], sort: 'ASC' }),
100
+ mockedProps({ sortby, sort: 'ASC' }),
107
101
  []
108
102
  );
109
103
 
@@ -113,7 +107,7 @@ describe('get card/list render variables', () => {
113
107
  it('should return correct sort data when when there is a relation prop that is of type string but with updated value', () => {
114
108
  const { sort } = getGenericRenderVariables(
115
109
  [{ localField: 'tag', entityIdentifier: 'tags' }],
116
- mockedProps({ sortby: ['tag.name'], sort: 'ASC' }),
110
+ mockedProps({ sortby: 'tag.name', sort: 'ASC' }),
117
111
  ['tags.name']
118
112
  );
119
113
 
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var checkSortby = function checkSortby(sortby, isSortbyArray) {
11
- return isSortbyArray && sortby.length || !isSortbyArray && sortby;
12
- };
13
-
14
- var _default = checkSortby;
15
- exports["default"] = _default;
16
- //# sourceMappingURL=check-sort-by.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/helpers/check-sort-by.js"],"names":["checkSortby","sortby","isSortbyArray","length"],"mappings":";;;;;;;;;AAAA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAASC,aAAT;AAAA,SACjBA,aAAa,IAAID,MAAM,CAACE,MAAzB,IAAqC,CAACD,aAAD,IAAkBD,MADrC;AAAA,CAApB;;eAGeD,W","sourcesContent":["const checkSortby = (sortby, isSortbyArray) =>\n (isSortbyArray && sortby.length) || (!isSortbyArray && sortby);\n\nexport default checkSortby;\n"],"file":"check-sort-by.js"}
@@ -1,4 +0,0 @@
1
- const checkSortby = (sortby, isSortbyArray) => isSortbyArray && sortby.length || !isSortbyArray && sortby;
2
-
3
- export default checkSortby;
4
- //# sourceMappingURL=check-sort-by.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/helpers/check-sort-by.js"],"names":["checkSortby","sortby","isSortbyArray","length"],"mappings":"AAAA,MAAMA,WAAW,GAAG,CAACC,MAAD,EAASC,aAAT,KACjBA,aAAa,IAAID,MAAM,CAACE,MAAzB,IAAqC,CAACD,aAAD,IAAkBD,MADzD;;AAGA,eAAeD,WAAf","sourcesContent":["const checkSortby = (sortby, isSortbyArray) =>\n (isSortbyArray && sortby.length) || (!isSortbyArray && sortby);\n\nexport default checkSortby;\n"],"file":"check-sort-by.js"}
@@ -1,4 +0,0 @@
1
- const checkSortby = (sortby, isSortbyArray) =>
2
- (isSortbyArray && sortby.length) || (!isSortbyArray && sortby);
3
-
4
- export default checkSortby;