@coveo/headless 3.28.0 → 3.28.1-pre.060ac226ea

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 (41) hide show
  1. package/dist/cjs/case-assist/headless.cjs +1 -1
  2. package/dist/cjs/case-assist/node.cjs.stats.json +1 -1
  3. package/dist/cjs/commerce/headless.cjs +20 -7
  4. package/dist/cjs/commerce/node.cjs.stats.json +1 -1
  5. package/dist/cjs/headless.cjs +1 -1
  6. package/dist/cjs/insight/headless.cjs +1 -1
  7. package/dist/cjs/insight/node.cjs.stats.json +1 -1
  8. package/dist/cjs/node.cjs.stats.json +1 -1
  9. package/dist/cjs/recommendation/headless.cjs +1 -1
  10. package/dist/cjs/recommendation/node.cjs.stats.json +1 -1
  11. package/dist/cjs/ssr/headless.cjs +1 -1
  12. package/dist/cjs/ssr/node.cjs.stats.json +1 -1
  13. package/dist/cjs/ssr-commerce/headless.cjs +20 -7
  14. package/dist/cjs/ssr-commerce/node.cjs.stats.json +1 -1
  15. package/dist/cjs/ssr-commerce-next/headless.cjs +20 -7
  16. package/dist/cjs/ssr-commerce-next/node.cjs.stats.json +1 -1
  17. package/dist/cjs/ssr-next/headless.cjs +1 -1
  18. package/dist/cjs/ssr-next/node.cjs.stats.json +1 -1
  19. package/dist/definitions/controllers/core/sort/headless-core-sort.d.ts +12 -0
  20. package/dist/definitions/features/commerce/facets/core-facet/core-facet-actions.d.ts +12 -0
  21. package/dist/definitions/features/commerce/facets/numeric-facet/numeric-facet-actions.d.ts +7 -0
  22. package/dist/esm/features/commerce/facets/core-facet/core-facet-actions.js +12 -0
  23. package/dist/esm/features/commerce/facets/facet-set/facet-set-slice.js +19 -7
  24. package/dist/esm/features/commerce/facets/numeric-facet/numeric-facet-actions.js +7 -0
  25. package/dist/esm/utils/version.js +1 -1
  26. package/dist/quantic/browser.cjs.stats.json +1 -1
  27. package/dist/quantic/case-assist/browser.cjs.stats.json +1 -1
  28. package/dist/quantic/case-assist/headless.js +1 -1
  29. package/dist/quantic/case-assist/headless.js.map +1 -1
  30. package/dist/quantic/commerce/browser.cjs.stats.json +1 -1
  31. package/dist/quantic/commerce/headless.js +2 -2
  32. package/dist/quantic/commerce/headless.js.map +3 -3
  33. package/dist/quantic/headless.js +1 -1
  34. package/dist/quantic/headless.js.map +2 -2
  35. package/dist/quantic/insight/browser.cjs.stats.json +1 -1
  36. package/dist/quantic/insight/headless.js +1 -1
  37. package/dist/quantic/insight/headless.js.map +2 -2
  38. package/dist/quantic/recommendation/browser.cjs.stats.json +1 -1
  39. package/dist/quantic/recommendation/headless.js +1 -1
  40. package/dist/quantic/recommendation/headless.js.map +1 -1
  41. package/package.json +1 -1
@@ -32,6 +32,18 @@ export interface Sort extends Controller {
32
32
  * Verifies whether the specified sort criterion is the currently active one.
33
33
  *
34
34
  * @param criterion - The sort criterion to evaluate.
35
+ * Can be a single criterion or an array of criteria.
36
+ * The criteria in an array will be applied sequentially. For example, if there's a tie on the 1st criterion, the API uses the 2nd criterion to break the tie. However, this only works when combining:
37
+ * `SortByRelevancy` followed by one or more `SortByField` or `SortByDate` criteria.
38
+ * `SortByQRE` followed by one or more `SortByField` or `SortByDate` criteria.
39
+ * Two or more `SortByField` criteria.
40
+ * A single `SortByDate` criterion and one or more `SortByField` criteria in any order.
41
+ *
42
+ * Examples:
43
+ * * `SortByRelevancy`, `SortByField`
44
+ * * `SortByQRE`, `SortByField`
45
+ * * `SortByDate`, `SortByField`, `SortByField`
46
+ *
35
47
  * @returns `true` if the specified sort criterion is the currently active one; `false` otherwise.
36
48
  */
37
49
  isSortedBy(criterion: SortCriterion | SortCriterion[]): boolean;
@@ -4,6 +4,11 @@ export type UpdateCoreFacetNumberOfValuesPayload = UpdateFacetNumberOfValuesActi
4
4
  export declare const updateCoreFacetNumberOfValues: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: UpdateFacetNumberOfValuesActionCreatorPayload], UpdateFacetNumberOfValuesActionCreatorPayload, "commerce/facets/core/updateNumberOfValues", never, never>;
5
5
  export type UpdateCoreFacetIsFieldExpandedPayload = UpdateFacetIsFieldExpandedActionCreatorPayload;
6
6
  export declare const updateCoreFacetIsFieldExpanded: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: UpdateFacetIsFieldExpandedActionCreatorPayload], UpdateFacetIsFieldExpandedActionCreatorPayload, "commerce/facets/core/updateIsFieldExpanded", never, never>;
7
+ /**
8
+ * Action to clear all core facet values.
9
+ *
10
+ * This is primarily used by the breadcrumb manager to reset all selected facets.
11
+ */
7
12
  export declare const clearAllCoreFacets: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"commerce/facets/core/clearAll">;
8
13
  export declare const deleteAllCoreFacets: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"commerce/facets/core/deleteAll">;
9
14
  export type DeselectAllValuesInCoreFacetPayload = {
@@ -12,6 +17,13 @@ export type DeselectAllValuesInCoreFacetPayload = {
12
17
  */
13
18
  facetId: string;
14
19
  };
20
+ /**
21
+ * Action to deselect all values for a given facet.
22
+ *
23
+ * This is primarily used in facets to clear all selected values at the same time.
24
+ *
25
+ * @param payload - The payload of type {@link DeselectAllValuesInCoreFacetPayload} containing the facet ID to clear.
26
+ */
15
27
  export declare const deselectAllValuesInCoreFacet: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: DeselectAllValuesInCoreFacetPayload], DeselectAllValuesInCoreFacetPayload, "commerce/facets/core/deselectAllValues", never, never>;
16
28
  export type UpdateCoreFacetFreezeCurrentValuesPayload = UpdateFreezeCurrentValuesActionCreatorPayload;
17
29
  export declare const updateCoreFacetFreezeCurrentValues: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: UpdateFreezeCurrentValuesActionCreatorPayload], UpdateFreezeCurrentValuesActionCreatorPayload, "commerce/facets/core/updateFreezeCurrentValues", never, never>;
@@ -9,6 +9,13 @@ export interface ToggleSelectNumericFacetValuePayload {
9
9
  */
10
10
  selection: NumericRangeRequest;
11
11
  }
12
+ /**
13
+ * Action to toggle a facet value of a NumericFacet.
14
+ *
15
+ * This is primarily used in facets and in breadcrumbs to select or deselect a facet value.
16
+ *
17
+ * @param payload - The payload of type {@link ToggleSelectNumericFacetValuePayload} containing the facet ID and the selection to toggle.
18
+ */
12
19
  export declare const toggleSelectNumericFacetValue: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ToggleSelectNumericFacetValuePayload], ToggleSelectNumericFacetValuePayload, "commerce/facets/numericFacet/toggleSelectValue", never, never>;
13
20
  export type ToggleExcludeNumericFacetValuePayload = ToggleSelectNumericFacetValuePayload;
14
21
  export declare const toggleExcludeNumericFacetValue: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ToggleSelectNumericFacetValuePayload], ToggleSelectNumericFacetValuePayload, "commerce/facets/numericFacet/toggleExcludeValue", never, never>;
@@ -9,8 +9,20 @@ export const updateCoreFacetIsFieldExpanded = createAction('commerce/facets/core
9
9
  facetId: requiredNonEmptyString,
10
10
  isFieldExpanded: new BooleanValue({ required: true }),
11
11
  }));
12
+ /**
13
+ * Action to clear all core facet values.
14
+ *
15
+ * This is primarily used by the breadcrumb manager to reset all selected facets.
16
+ */
12
17
  export const clearAllCoreFacets = createAction('commerce/facets/core/clearAll');
13
18
  export const deleteAllCoreFacets = createAction('commerce/facets/core/deleteAll');
19
+ /**
20
+ * Action to deselect all values for a given facet.
21
+ *
22
+ * This is primarily used in facets to clear all selected values at the same time.
23
+ *
24
+ * @param payload - The payload of type {@link DeselectAllValuesInCoreFacetPayload} containing the facet ID to clear.
25
+ */
14
26
  export const deselectAllValuesInCoreFacet = createAction('commerce/facets/core/deselectAllValues', (payload) => validatePayload(payload, {
15
27
  facetId: requiredNonEmptyString,
16
28
  }));
@@ -74,6 +74,7 @@ export const commerceFacetSetReducer = createReducer(getCommerceFacetSetInitialS
74
74
  return;
75
75
  }
76
76
  updateExistingFacetValueState(existingValue, 'select');
77
+ facetRequest.numberOfValues = facetRequest.initialNumberOfValues;
77
78
  if (facetRequest.interval === 'continuous' &&
78
79
  existingValue.state === 'idle') {
79
80
  facetRequest.values = [];
@@ -143,6 +144,7 @@ export const commerceFacetSetReducer = createReducer(getCommerceFacetSetInitialS
143
144
  return;
144
145
  }
145
146
  updateExistingFacetValueState(existingValue, 'exclude');
147
+ facetRequest.numberOfValues = facetRequest.initialNumberOfValues;
146
148
  if (facetRequest.interval === 'continuous' &&
147
149
  existingValue.state === 'idle') {
148
150
  facetRequest.values = [];
@@ -162,6 +164,7 @@ export const commerceFacetSetReducer = createReducer(getCommerceFacetSetInitialS
162
164
  return;
163
165
  }
164
166
  updateExistingFacetValueState(existingValue, 'exclude');
167
+ facetRequest.numberOfValues = facetRequest.initialNumberOfValues;
165
168
  })
166
169
  .addCase(updateCategoryFacetNumberOfValues, (state, action) => {
167
170
  const { facetId, numberOfValues } = action.payload;
@@ -315,16 +318,25 @@ function handleFieldSuggestionsFulfilled(state, facetId) {
315
318
  }
316
319
  }
317
320
  function handleDeselectAllFacetValues(request) {
318
- if (request.type === 'hierarchical') {
319
- request.initialNumberOfValues = undefined;
320
- request.numberOfValues = undefined;
321
- request.values = [];
322
- request.preventAutoSelect = true;
323
- }
324
- else {
321
+ const resetValues = () => {
325
322
  request.values.forEach((value) => {
326
323
  value.state = 'idle';
327
324
  });
325
+ };
326
+ switch (request.type) {
327
+ case 'hierarchical':
328
+ request.initialNumberOfValues = undefined;
329
+ request.numberOfValues = undefined;
330
+ request.values = [];
331
+ request.preventAutoSelect = true;
332
+ break;
333
+ case 'numericalRange':
334
+ request.numberOfValues = request.initialNumberOfValues;
335
+ resetValues();
336
+ break;
337
+ default:
338
+ resetValues();
339
+ break;
328
340
  }
329
341
  }
330
342
  /**
@@ -2,6 +2,13 @@ import { ArrayValue, BooleanValue, NumberValue, RecordValue, StringValue, } from
2
2
  import { createAction } from '@reduxjs/toolkit';
3
3
  import { requiredNonEmptyString, serializeSchemaValidationError, validatePayload, validatePayloadAndThrow, } from '../../../../utils/validate-payload.js';
4
4
  import { validateManualNumericRanges } from '../../../facets/range-facets/numeric-facet-set/numeric-facet-actions.js';
5
+ /**
6
+ * Action to toggle a facet value of a NumericFacet.
7
+ *
8
+ * This is primarily used in facets and in breadcrumbs to select or deselect a facet value.
9
+ *
10
+ * @param payload - The payload of type {@link ToggleSelectNumericFacetValuePayload} containing the facet ID and the selection to toggle.
11
+ */
5
12
  export const toggleSelectNumericFacetValue = createAction('commerce/facets/numericFacet/toggleSelectValue', (payload) => validatePayload(payload, {
6
13
  facetId: requiredNonEmptyString,
7
14
  selection: new RecordValue({
@@ -1,2 +1,2 @@
1
- export const VERSION = "3.28.0" || 'Test version';
1
+ export const VERSION = "3.28.1-pre.060ac226ea" || 'Test version';
2
2
  export const COVEO_FRAMEWORK = ['@coveo/atomic', '@coveo/quantic'];