@coveo/headless 3.27.8-pre.5f8a67af1e → 3.27.8-pre.63fc406dfa
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.
- package/dist/cjs/case-assist/headless.cjs +1 -1
- package/dist/cjs/commerce/headless.cjs +1 -1
- package/dist/cjs/headless.cjs +1 -1
- package/dist/cjs/insight/headless.cjs +1 -1
- package/dist/cjs/recommendation/headless.cjs +1 -1
- package/dist/cjs/ssr/headless.cjs +1 -1
- package/dist/cjs/ssr-commerce/headless.cjs +1 -1
- package/dist/definitions/features/commerce/product-listing/product-listing-selectors.d.ts +2 -2
- package/dist/definitions/features/commerce/search/search-selectors.d.ts +2 -2
- package/dist/esm/utils/version.js +1 -1
- package/dist/quantic/case-assist/headless.js +1 -1
- package/dist/quantic/commerce/headless.js +1 -1
- package/dist/quantic/headless.js +1 -1
- package/dist/quantic/insight/headless.js +1 -1
- package/dist/quantic/recommendation/headless.js +1 -1
- package/package.json +1 -13
- package/dist/cjs/ssr-commerce-next/headless.cjs +0 -19530
- package/dist/cjs/ssr-commerce-next/node.cjs.stats.json +0 -1
- package/dist/cjs/ssr-next/headless.cjs +0 -22437
- package/dist/cjs/ssr-next/node.cjs.stats.json +0 -1
- package/dist/definitions/ssr-commerce-next.index.d.ts +0 -170
- package/dist/definitions/ssr-next/commerce/controller-utils.d.ts +0 -19
- package/dist/definitions/ssr-next/commerce/controllers/breadcrumb-manager/headless-core-breadcrumb-manager.ssr.d.ts +0 -10
- package/dist/definitions/ssr-next/commerce/controllers/cart/headless-cart.ssr.d.ts +0 -15
- package/dist/definitions/ssr-next/commerce/controllers/context/headless-context.ssr.d.ts +0 -12
- package/dist/definitions/ssr-next/commerce/controllers/did-you-mean/headless-did-you-mean.ssr.d.ts +0 -10
- package/dist/definitions/ssr-next/commerce/controllers/filter-suggestions/headless-filter-suggestions-generator.ssr.d.ts +0 -15
- package/dist/definitions/ssr-next/commerce/controllers/generator/headless-commerce-facet-generator.ssr.d.ts +0 -66
- package/dist/definitions/ssr-next/commerce/controllers/instant-products/headless-instant-products.ssr.d.ts +0 -12
- package/dist/definitions/ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.d.ts +0 -11
- package/dist/definitions/ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.d.ts +0 -25
- package/dist/definitions/ssr-next/commerce/controllers/product-list/headless-product-list.ssr.d.ts +0 -12
- package/dist/definitions/ssr-next/commerce/controllers/product-view/headless-product-view.ssr.d.ts +0 -20
- package/dist/definitions/ssr-next/commerce/controllers/recent-queries-list/headless-recent-queries-list.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/commerce/controllers/recommendations/headless-recommendations.ssr.d.ts +0 -17
- package/dist/definitions/ssr-next/commerce/controllers/search-box/headless-search-box.ssr.d.ts +0 -12
- package/dist/definitions/ssr-next/commerce/controllers/sort/headless-core-commerce-sort.ssr.d.ts +0 -11
- package/dist/definitions/ssr-next/commerce/controllers/standalone-search-box/headless-standalone-search-box.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/commerce/controllers/summary/headless-core-summary.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/commerce/controllers/triggers/headless-notify-trigger.ssr.d.ts +0 -12
- package/dist/definitions/ssr-next/commerce/controllers/triggers/headless-query-trigger.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/commerce/controllers/triggers/headless-redirection-trigger.ssr.d.ts +0 -12
- package/dist/definitions/ssr-next/commerce/engine/commerce-engine.ssr.d.ts +0 -25
- package/dist/definitions/ssr-next/commerce/factories/build-factory.d.ts +0 -22
- package/dist/definitions/ssr-next/commerce/factories/hydrated-state-factory.d.ts +0 -4
- package/dist/definitions/ssr-next/commerce/factories/recommendation-hydrated-state-factory.d.ts +0 -3
- package/dist/definitions/ssr-next/commerce/factories/recommendation-static-state-factory.d.ts +0 -3
- package/dist/definitions/ssr-next/commerce/factories/static-state-factory.d.ts +0 -4
- package/dist/definitions/ssr-next/commerce/types/build.d.ts +0 -10
- package/dist/definitions/ssr-next/commerce/types/controller-constants.d.ts +0 -7
- package/dist/definitions/ssr-next/commerce/types/controller-definitions.d.ts +0 -220
- package/dist/definitions/ssr-next/commerce/types/controller-inference.d.ts +0 -24
- package/dist/definitions/ssr-next/commerce/types/controller-scopes.d.ts +0 -71
- package/dist/definitions/ssr-next/commerce/types/engine.d.ts +0 -75
- package/dist/definitions/ssr-next/commerce/types/fetch-static-state.d.ts +0 -17
- package/dist/definitions/ssr-next/commerce/types/from-build-result.d.ts +0 -19
- package/dist/definitions/ssr-next/commerce/types/hydrate-static-state.d.ts +0 -20
- package/dist/definitions/ssr-next/commerce/types/kind.d.ts +0 -9
- package/dist/definitions/ssr-next/commerce/utils/recommendation-filter.d.ts +0 -11
- package/dist/definitions/ssr-next/common/augment-preprocess-request.d.ts +0 -9
- package/dist/definitions/ssr-next/common/controller-utils.d.ts +0 -16
- package/dist/definitions/ssr-next/common/errors.d.ts +0 -9
- package/dist/definitions/ssr-next/common/types/build.d.ts +0 -9
- package/dist/definitions/ssr-next/common/types/controllers.d.ts +0 -37
- package/dist/definitions/ssr-next/common/types/engine.d.ts +0 -60
- package/dist/definitions/ssr-next/common/types/fetch-static-state.d.ts +0 -17
- package/dist/definitions/ssr-next/common/types/from-build-result.d.ts +0 -8
- package/dist/definitions/ssr-next/common/types/hydrate-static-state.d.ts +0 -21
- package/dist/definitions/ssr-next/common/types/inference.d.ts +0 -19
- package/dist/definitions/ssr-next/common/types/utilities.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/context/headless-context.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/did-you-mean/headless-did-you-mean.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/facet-manager/headless-facet-manager.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/facets/category-facet/headless-category-facet.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/facets/facet/headless-facet.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.d.ts +0 -15
- package/dist/definitions/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.d.ts +0 -15
- package/dist/definitions/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/folded-result-list/headless-folded-result-list.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/history-manager/headless-history-manager.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/instant-results/instant-results.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/pager/headless-pager.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/query-error/headless-query-error.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/query-summary/headless-query-summary.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/quickview/headless-quickview.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/recent-results-list/headless-recent-results-list.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/result-list/headless-result-list.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/results-per-page/headless-results-per-page.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/search-box/headless-search-box.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.d.ts +0 -16
- package/dist/definitions/ssr-next/search/controllers/search-status/headless-search-status.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/smart-snippet/headless-smart-snippet.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.d.ts +0 -15
- package/dist/definitions/ssr-next/search/controllers/sort/headless-sort.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/static-filter/headless-static-filter.ssr.d.ts +0 -15
- package/dist/definitions/ssr-next/search/controllers/tab/headless-tab.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/tab-manager/headless-tab-manager.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/triggers/headless-execute-trigger.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/triggers/headless-notify-trigger.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/triggers/headless-query-trigger.ssr.d.ts +0 -14
- package/dist/definitions/ssr-next/search/controllers/triggers/headless-redirection-trigger.ssr.d.ts +0 -13
- package/dist/definitions/ssr-next/search/controllers/url-manager/headless-url-manager.ssr.d.ts +0 -16
- package/dist/definitions/ssr-next/search/engine/search-engine.ssr.d.ts +0 -35
- package/dist/definitions/ssr-next.index.d.ts +0 -219
- package/dist/esm/ssr-commerce-next.index.js +0 -130
- package/dist/esm/ssr-next/commerce/controller-utils.js +0 -42
- package/dist/esm/ssr-next/commerce/controllers/breadcrumb-manager/headless-core-breadcrumb-manager.ssr.js +0 -21
- package/dist/esm/ssr-next/commerce/controllers/cart/headless-cart.ssr.js +0 -24
- package/dist/esm/ssr-next/commerce/controllers/context/headless-context.ssr.js +0 -24
- package/dist/esm/ssr-next/commerce/controllers/did-you-mean/headless-did-you-mean.ssr.js +0 -13
- package/dist/esm/ssr-next/commerce/controllers/filter-suggestions/headless-filter-suggestions-generator.ssr.js +0 -15
- package/dist/esm/ssr-next/commerce/controllers/generator/headless-commerce-facet-generator.ssr.js +0 -93
- package/dist/esm/ssr-next/commerce/controllers/instant-products/headless-instant-products.ssr.js +0 -15
- package/dist/esm/ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.js +0 -22
- package/dist/esm/ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.js +0 -70
- package/dist/esm/ssr-next/commerce/controllers/product-list/headless-product-list.ssr.js +0 -21
- package/dist/esm/ssr-next/commerce/controllers/product-view/headless-product-view.ssr.js +0 -29
- package/dist/esm/ssr-next/commerce/controllers/recent-queries-list/headless-recent-queries-list.ssr.js +0 -16
- package/dist/esm/ssr-next/commerce/controllers/recommendations/headless-recommendations.ssr.js +0 -25
- package/dist/esm/ssr-next/commerce/controllers/search-box/headless-search-box.ssr.js +0 -13
- package/dist/esm/ssr-next/commerce/controllers/sort/headless-core-commerce-sort.ssr.js +0 -22
- package/dist/esm/ssr-next/commerce/controllers/standalone-search-box/headless-standalone-search-box.ssr.js +0 -15
- package/dist/esm/ssr-next/commerce/controllers/summary/headless-core-summary.ssr.js +0 -21
- package/dist/esm/ssr-next/commerce/controllers/triggers/headless-notify-trigger.ssr.js +0 -14
- package/dist/esm/ssr-next/commerce/controllers/triggers/headless-query-trigger.ssr.js +0 -13
- package/dist/esm/ssr-next/commerce/controllers/triggers/headless-redirection-trigger.ssr.js +0 -13
- package/dist/esm/ssr-next/commerce/engine/commerce-engine.ssr.js +0 -68
- package/dist/esm/ssr-next/commerce/factories/build-factory.js +0 -90
- package/dist/esm/ssr-next/commerce/factories/hydrated-state-factory.js +0 -23
- package/dist/esm/ssr-next/commerce/factories/recommendation-hydrated-state-factory.js +0 -23
- package/dist/esm/ssr-next/commerce/factories/recommendation-static-state-factory.js +0 -36
- package/dist/esm/ssr-next/commerce/factories/static-state-factory.js +0 -41
- package/dist/esm/ssr-next/commerce/types/build.js +0 -1
- package/dist/esm/ssr-next/commerce/types/controller-constants.js +0 -9
- package/dist/esm/ssr-next/commerce/types/controller-definitions.js +0 -1
- package/dist/esm/ssr-next/commerce/types/controller-inference.js +0 -1
- package/dist/esm/ssr-next/commerce/types/controller-scopes.js +0 -1
- package/dist/esm/ssr-next/commerce/types/engine.js +0 -1
- package/dist/esm/ssr-next/commerce/types/fetch-static-state.js +0 -1
- package/dist/esm/ssr-next/commerce/types/from-build-result.js +0 -1
- package/dist/esm/ssr-next/commerce/types/hydrate-static-state.js +0 -1
- package/dist/esm/ssr-next/commerce/types/kind.js +0 -14
- package/dist/esm/ssr-next/commerce/utils/recommendation-filter.js +0 -49
- package/dist/esm/ssr-next/common/augment-preprocess-request.js +0 -23
- package/dist/esm/ssr-next/common/controller-utils.js +0 -29
- package/dist/esm/ssr-next/common/errors.js +0 -25
- package/dist/esm/ssr-next/common/types/build.js +0 -1
- package/dist/esm/ssr-next/common/types/controllers.js +0 -1
- package/dist/esm/ssr-next/common/types/engine.js +0 -1
- package/dist/esm/ssr-next/common/types/fetch-static-state.js +0 -1
- package/dist/esm/ssr-next/common/types/from-build-result.js +0 -1
- package/dist/esm/ssr-next/common/types/hydrate-static-state.js +0 -1
- package/dist/esm/ssr-next/common/types/inference.js +0 -1
- package/dist/esm/ssr-next/common/types/utilities.js +0 -1
- package/dist/esm/ssr-next/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/context/headless-context.ssr.js +0 -19
- package/dist/esm/ssr-next/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/did-you-mean/headless-did-you-mean.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/facet-manager/headless-facet-manager.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/facets/category-facet/headless-category-facet.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/facets/facet/headless-facet.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.js +0 -15
- package/dist/esm/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.js +0 -15
- package/dist/esm/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/folded-result-list/headless-folded-result-list.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/history-manager/headless-history-manager.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/instant-results/instant-results.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/pager/headless-pager.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/query-error/headless-query-error.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/query-summary/headless-query-summary.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/quickview/headless-quickview.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/recent-results-list/headless-recent-results-list.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/result-list/headless-result-list.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/results-per-page/headless-results-per-page.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/search-box/headless-search-box.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.js +0 -58
- package/dist/esm/ssr-next/search/controllers/search-status/headless-search-status.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/smart-snippet/headless-smart-snippet.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/sort/headless-sort.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/static-filter/headless-static-filter.ssr.js +0 -15
- package/dist/esm/ssr-next/search/controllers/tab/headless-tab.ssr.js +0 -14
- package/dist/esm/ssr-next/search/controllers/tab-manager/headless-tab-manager.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/triggers/headless-execute-trigger.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/triggers/headless-notify-trigger.ssr.js +0 -12
- package/dist/esm/ssr-next/search/controllers/triggers/headless-query-trigger.ssr.js +0 -13
- package/dist/esm/ssr-next/search/controllers/triggers/headless-redirection-trigger.ssr.js +0 -12
- package/dist/esm/ssr-next/search/controllers/url-manager/headless-url-manager.ssr.js +0 -16
- package/dist/esm/ssr-next/search/engine/search-engine.ssr.js +0 -105
- package/dist/esm/ssr-next.index.js +0 -146
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { clone, filterObject, mapObject } from '../../utils/utils.js';
|
|
2
|
-
import { InvalidControllerDefinition } from '../common/errors.js';
|
|
3
|
-
function hasKindProperty(controller) {
|
|
4
|
-
return '_kind' in controller;
|
|
5
|
-
}
|
|
6
|
-
export function createStaticState({ searchActions, controllers, }) {
|
|
7
|
-
return {
|
|
8
|
-
controllers: mapObject(controllers, (controller) => ({
|
|
9
|
-
state: clone(controller.state),
|
|
10
|
-
...(hasKindProperty(controller) && { _kind: controller._kind }),
|
|
11
|
-
})),
|
|
12
|
-
searchActions: searchActions.map((action) => clone(action)),
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
function buildControllerFromDefinition({ definition, engine, solutionType, props, }) {
|
|
16
|
-
return ('build' in definition
|
|
17
|
-
? definition.build(engine, solutionType)
|
|
18
|
-
: definition.buildWithProps(engine, props, solutionType));
|
|
19
|
-
}
|
|
20
|
-
export function buildControllerDefinitions({ definitionsMap, engine, solutionType, propsMap, }) {
|
|
21
|
-
const controllerMap = mapObject(definitionsMap, (definition, key) => {
|
|
22
|
-
const unavailableInSolutionType = () => !(solutionType in definition) ||
|
|
23
|
-
(solutionType in definition &&
|
|
24
|
-
definition[solutionType] === false);
|
|
25
|
-
const props = propsMap?.[key];
|
|
26
|
-
if (unavailableInSolutionType()) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
return buildControllerFromDefinition({
|
|
30
|
-
definition,
|
|
31
|
-
engine,
|
|
32
|
-
solutionType,
|
|
33
|
-
props,
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
return filterObject(controllerMap, (value) => value !== null);
|
|
37
|
-
}
|
|
38
|
-
export function ensureAtLeastOneSolutionType(options) {
|
|
39
|
-
if (options?.listing === false && options?.search === false) {
|
|
40
|
-
throw new InvalidControllerDefinition();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { buildProductListing } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
2
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
3
|
-
import { ensureAtLeastOneSolutionType } from '../../../../ssr/commerce/controller-utils.js';
|
|
4
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Defines a `BreadcrumbManager` controller instance.
|
|
7
|
-
* @group Definers
|
|
8
|
-
*
|
|
9
|
-
* @returns The `BreadcrumbManager` controller definition.
|
|
10
|
-
*/
|
|
11
|
-
export function defineBreadcrumbManager(options) {
|
|
12
|
-
ensureAtLeastOneSolutionType(options);
|
|
13
|
-
return {
|
|
14
|
-
listing: true,
|
|
15
|
-
search: true,
|
|
16
|
-
...options,
|
|
17
|
-
build: (engine, solutionType) => solutionType === SolutionType.listing
|
|
18
|
-
? buildProductListing(engine).breadcrumbManager()
|
|
19
|
-
: buildSearch(engine).breadcrumbManager(),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { buildCart, } from '../../../../controllers/commerce/context/cart/headless-cart.js';
|
|
2
|
-
import { MissingControllerProps } from '../../../common/errors.js';
|
|
3
|
-
import { createControllerWithKind, Kind } from '../../types/kind.js';
|
|
4
|
-
/**
|
|
5
|
-
* Defines a `Cart` controller instance.
|
|
6
|
-
* @group Definers
|
|
7
|
-
*
|
|
8
|
-
* @returns The `Cart` controller definition.
|
|
9
|
-
*/
|
|
10
|
-
export function defineCart() {
|
|
11
|
-
return {
|
|
12
|
-
listing: true,
|
|
13
|
-
search: true,
|
|
14
|
-
standalone: true,
|
|
15
|
-
recommendation: true,
|
|
16
|
-
buildWithProps: (engine, props) => {
|
|
17
|
-
if (props === undefined) {
|
|
18
|
-
throw new MissingControllerProps(Kind.Cart);
|
|
19
|
-
}
|
|
20
|
-
const controller = buildCart(engine, { initialState: props.initialState });
|
|
21
|
-
return createControllerWithKind(controller, Kind.Cart);
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { buildContext, } from '../../../../controllers/commerce/context/headless-context.js';
|
|
2
|
-
import { MissingControllerProps } from '../../../common/errors.js';
|
|
3
|
-
import { createControllerWithKind, Kind } from '../../types/kind.js';
|
|
4
|
-
/**
|
|
5
|
-
* Defines a `Context` controller instance.
|
|
6
|
-
* @group Definers
|
|
7
|
-
*
|
|
8
|
-
* @returns The `Context` controller definition.
|
|
9
|
-
*/
|
|
10
|
-
export function defineContext() {
|
|
11
|
-
return {
|
|
12
|
-
listing: true,
|
|
13
|
-
search: true,
|
|
14
|
-
standalone: true,
|
|
15
|
-
recommendation: true,
|
|
16
|
-
buildWithProps: (engine, props) => {
|
|
17
|
-
if (props === undefined) {
|
|
18
|
-
throw new MissingControllerProps(Kind.Context);
|
|
19
|
-
}
|
|
20
|
-
const controller = buildContext(engine, { options: props });
|
|
21
|
-
return createControllerWithKind(controller, Kind.Context);
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines a `DidYouMean` controller instance.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `DidYouMean` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineDidYouMean() {
|
|
9
|
-
return {
|
|
10
|
-
search: true,
|
|
11
|
-
build: (engine) => buildSearch(engine).didYouMean(),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { buildFilterSuggestionsGenerator, } from '../../../../controllers/commerce/filter-suggestions/headless-filter-suggestions-generator.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `FilterSuggestionsGenerator` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `FilterSuggestionsGenerator` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineFilterSuggestionsGenerator() {
|
|
9
|
-
return {
|
|
10
|
-
search: true,
|
|
11
|
-
listing: true,
|
|
12
|
-
standalone: true,
|
|
13
|
-
build: (engine) => buildFilterSuggestionsGenerator(engine),
|
|
14
|
-
};
|
|
15
|
-
}
|
package/dist/esm/ssr-next/commerce/controllers/generator/headless-commerce-facet-generator.ssr.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { stateKey } from '../../../../app/state-key.js';
|
|
2
|
-
import { getCategoryFacetState } from '../../../../controllers/commerce/core/facets/category/headless-commerce-category-facet.js';
|
|
3
|
-
import { getDateFacetState } from '../../../../controllers/commerce/core/facets/date/headless-commerce-date-facet.js';
|
|
4
|
-
import { getCoreFacetState } from '../../../../controllers/commerce/core/facets/headless-core-commerce-facet.js';
|
|
5
|
-
import { getLocationFacetState } from '../../../../controllers/commerce/core/facets/location/headless-commerce-location-facet.js';
|
|
6
|
-
import { getNumericFacetState } from '../../../../controllers/commerce/core/facets/numeric/headless-commerce-numeric-facet.js';
|
|
7
|
-
import { getRegularFacetState } from '../../../../controllers/commerce/core/facets/regular/headless-commerce-regular-facet.js';
|
|
8
|
-
import { facetResponseSelector as listingFacetResponseSelector, isFacetLoadingResponseSelector as listingIsFacetLoadingResponseSelector, } from '../../../../controllers/commerce/product-listing/facets/headless-product-listing-facet-options.js';
|
|
9
|
-
import { buildProductListing } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
10
|
-
import { facetResponseSelector as searchFacetResponseSelector, isFacetLoadingResponseSelector as searchIsFacetLoadingResponseSelector, } from '../../../../controllers/commerce/search/facets/headless-search-facet-options.js';
|
|
11
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
12
|
-
import { facetRequestSelector } from '../../../../features/commerce/facets/facet-set/facet-set-selector.js';
|
|
13
|
-
import { manualNumericFacetSelector } from '../../../../features/commerce/facets/numeric-facet/manual-numeric-facet-selectors.js';
|
|
14
|
-
import { manualNumericFacetReducer as manualNumericFacetSet } from '../../../../features/commerce/facets/numeric-facet/manual-numeric-facet-slice.js';
|
|
15
|
-
import { categoryFacetSearchStateSelector } from '../../../../features/facets/facet-search-set/category/category-facet-search-state-selector.js';
|
|
16
|
-
import { specificFacetSearchStateSelector } from '../../../../features/facets/facet-search-set/specific/specific-facet-search-state-selector.js';
|
|
17
|
-
import { ensureAtLeastOneSolutionType } from '../../../../ssr/commerce/controller-utils.js';
|
|
18
|
-
import { loadReducerError } from '../../../../utils/errors.js';
|
|
19
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
20
|
-
/**
|
|
21
|
-
* @group Definers
|
|
22
|
-
*/
|
|
23
|
-
export function defineFacetGenerator(options) {
|
|
24
|
-
ensureAtLeastOneSolutionType(options);
|
|
25
|
-
return {
|
|
26
|
-
listing: true,
|
|
27
|
-
search: true,
|
|
28
|
-
...options,
|
|
29
|
-
build: (engine, solutionType) => buildFacetGenerator(engine, { props: { solutionType: solutionType } }),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Creates a `FacetGenerator` sub-controller for server-side rendering purposes (SSR).
|
|
34
|
-
*
|
|
35
|
-
* @param engine - The SSR commerce engine.
|
|
36
|
-
* @param options - The facet generator options used internally.
|
|
37
|
-
* @returns A `FacetGenerator` sub-controller.
|
|
38
|
-
*/
|
|
39
|
-
export function buildFacetGenerator(engine, options) {
|
|
40
|
-
if (!loadFacetGeneratorReducers(engine)) {
|
|
41
|
-
throw loadReducerError;
|
|
42
|
-
}
|
|
43
|
-
const getEngineState = () => engine[stateKey];
|
|
44
|
-
const solutionType = options.props.solutionType;
|
|
45
|
-
const getFacetResponseSelector = (facetId) => {
|
|
46
|
-
return solutionType === SolutionType.listing
|
|
47
|
-
? listingFacetResponseSelector(getEngineState(), facetId)
|
|
48
|
-
: searchFacetResponseSelector(getEngineState(), facetId);
|
|
49
|
-
};
|
|
50
|
-
const isFacetLoadingResponseSelector = solutionType === SolutionType.listing
|
|
51
|
-
? listingIsFacetLoadingResponseSelector(getEngineState())
|
|
52
|
-
: searchIsFacetLoadingResponseSelector(getEngineState());
|
|
53
|
-
const createFacetState = (facetResponseSelector) => {
|
|
54
|
-
const facetId = facetResponseSelector.facetId;
|
|
55
|
-
return getCoreFacetState(facetId, facetRequestSelector(getEngineState(), facetId), facetResponseSelector, isFacetLoadingResponseSelector);
|
|
56
|
-
};
|
|
57
|
-
const baseController = solutionType === SolutionType.listing
|
|
58
|
-
? buildProductListing(engine).facetGenerator()
|
|
59
|
-
: buildSearch(engine).facetGenerator();
|
|
60
|
-
const { state: _state, ...restOfBaseController } = baseController;
|
|
61
|
-
return {
|
|
62
|
-
...restOfBaseController,
|
|
63
|
-
getFacetController: (facetId, facetType) => {
|
|
64
|
-
const controller = baseController.facets.find((f) => f.state.facetId === facetId && f.type === facetType);
|
|
65
|
-
return controller;
|
|
66
|
-
},
|
|
67
|
-
get state() {
|
|
68
|
-
const facetResponseSelectors = baseController.state
|
|
69
|
-
.map(getFacetResponseSelector)
|
|
70
|
-
.filter((selector) => selector !== undefined);
|
|
71
|
-
return facetResponseSelectors.map((selector) => {
|
|
72
|
-
const facetResponseSelector = selector;
|
|
73
|
-
const facetId = facetResponseSelector.facetId;
|
|
74
|
-
switch (facetResponseSelector.type) {
|
|
75
|
-
case 'hierarchical':
|
|
76
|
-
return getCategoryFacetState(createFacetState(facetResponseSelector), categoryFacetSearchStateSelector(getEngineState(), facetId), facetRequestSelector(getEngineState(), facetId));
|
|
77
|
-
case 'dateRange':
|
|
78
|
-
return getDateFacetState(createFacetState(facetResponseSelector));
|
|
79
|
-
case 'numericalRange':
|
|
80
|
-
return getNumericFacetState(createFacetState(facetResponseSelector), facetResponseSelector, manualNumericFacetSelector(getEngineState(), facetId));
|
|
81
|
-
case 'regular':
|
|
82
|
-
return getRegularFacetState(createFacetState(facetResponseSelector), specificFacetSearchStateSelector(getEngineState(), facetId));
|
|
83
|
-
case 'location':
|
|
84
|
-
return getLocationFacetState(createFacetState(facetResponseSelector));
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
function loadFacetGeneratorReducers(engine) {
|
|
91
|
-
engine.addReducers({ manualNumericFacetSet });
|
|
92
|
-
return true;
|
|
93
|
-
}
|
package/dist/esm/ssr-next/commerce/controllers/instant-products/headless-instant-products.ssr.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { buildInstantProducts, } from '../../../../controllers/commerce/instant-products/headless-instant-products.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `InstantProducts` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `InstantProducts` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineInstantProducts(props = { options: {} }) {
|
|
9
|
-
return {
|
|
10
|
-
listing: true,
|
|
11
|
-
search: true,
|
|
12
|
-
standalone: true,
|
|
13
|
-
build: (engine) => buildInstantProducts(engine, props),
|
|
14
|
-
};
|
|
15
|
-
}
|
package/dist/esm/ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { buildProductListing } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
2
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
3
|
-
import { ensureAtLeastOneSolutionType } from '../../../../ssr/commerce/controller-utils.js';
|
|
4
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Defines a `Pagination` controller instance.
|
|
7
|
-
* @group Definers
|
|
8
|
-
*
|
|
9
|
-
* @param props - The configurable `Pagination` properties.
|
|
10
|
-
* @returns The `Pagination` controller definition.
|
|
11
|
-
*/
|
|
12
|
-
export function definePagination(props) {
|
|
13
|
-
ensureAtLeastOneSolutionType(props);
|
|
14
|
-
return {
|
|
15
|
-
listing: true,
|
|
16
|
-
search: true,
|
|
17
|
-
...props,
|
|
18
|
-
build: (engine, solutionType) => solutionType === SolutionType.listing
|
|
19
|
-
? buildProductListing(engine).pagination(props)
|
|
20
|
-
: buildSearch(engine).pagination(props),
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { buildProductListing } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
2
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
3
|
-
import { commerceFacetSetReducer as commerceFacetSet } from '../../../../features/commerce/facets/facet-set/facet-set-slice.js';
|
|
4
|
-
import { manualNumericFacetReducer as manualNumericFacetSet } from '../../../../features/commerce/facets/numeric-facet/manual-numeric-facet-slice.js';
|
|
5
|
-
import { paginationReducer as commercePagination } from '../../../../features/commerce/pagination/pagination-slice.js';
|
|
6
|
-
import { parametersReducer as commerceParameters } from '../../../../features/commerce/parameters/parameters-slice.js';
|
|
7
|
-
import { queryReducer as query } from '../../../../features/commerce/query/query-slice.js';
|
|
8
|
-
import { sortReducer as commerceSort } from '../../../../features/commerce/sort/sort-slice.js';
|
|
9
|
-
import { facetOrderReducer as facetOrder } from '../../../../features/facets/facet-order/facet-order-slice.js';
|
|
10
|
-
import { querySetReducer as querySet } from '../../../../features/query-set/query-set-slice.js';
|
|
11
|
-
import { ensureAtLeastOneSolutionType } from '../../../../ssr/commerce/controller-utils.js';
|
|
12
|
-
import { loadReducerError } from '../../../../utils/errors.js';
|
|
13
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
14
|
-
import { createControllerWithKind, Kind } from '../../types/kind.js';
|
|
15
|
-
/**
|
|
16
|
-
* Defines a `ParameterManager` controller instance.
|
|
17
|
-
* @group Definers
|
|
18
|
-
*
|
|
19
|
-
* @returns The `ParameterManager` controller definition.
|
|
20
|
-
*/
|
|
21
|
-
export function defineParameterManager(options) {
|
|
22
|
-
ensureAtLeastOneSolutionType(options);
|
|
23
|
-
return {
|
|
24
|
-
listing: true,
|
|
25
|
-
search: true,
|
|
26
|
-
...options,
|
|
27
|
-
buildWithProps: (engine, props, solutionType) => {
|
|
28
|
-
if (solutionType === SolutionType.listing) {
|
|
29
|
-
if (!loadCommerceProductListingParameterReducers(engine)) {
|
|
30
|
-
throw loadReducerError;
|
|
31
|
-
}
|
|
32
|
-
const controller = buildProductListing(engine).parameterManager({
|
|
33
|
-
...props,
|
|
34
|
-
excludeDefaultParameters: true,
|
|
35
|
-
});
|
|
36
|
-
return createControllerWithKind(controller, Kind.ParameterManager);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
if (!loadCommerceSearchParameterReducers(engine)) {
|
|
40
|
-
throw loadReducerError;
|
|
41
|
-
}
|
|
42
|
-
const controller = buildSearch(engine).parameterManager({
|
|
43
|
-
...props,
|
|
44
|
-
excludeDefaultParameters: true,
|
|
45
|
-
});
|
|
46
|
-
return createControllerWithKind(controller, Kind.ParameterManager);
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function loadCommerceCommonParameterReducers(engine) {
|
|
52
|
-
engine.addReducers({
|
|
53
|
-
commerceParameters,
|
|
54
|
-
commerceFacetSet,
|
|
55
|
-
commerceSort,
|
|
56
|
-
commercePagination,
|
|
57
|
-
facetOrder,
|
|
58
|
-
manualNumericFacetSet,
|
|
59
|
-
});
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
function loadCommerceSearchParameterReducers(engine) {
|
|
63
|
-
loadCommerceCommonParameterReducers(engine);
|
|
64
|
-
engine.addReducers({ query, querySet });
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
function loadCommerceProductListingParameterReducers(engine) {
|
|
68
|
-
loadCommerceCommonParameterReducers(engine);
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { buildProductListing, } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
2
|
-
import { buildSearch, } from '../../../../controllers/commerce/search/headless-search.js';
|
|
3
|
-
import { ensureAtLeastOneSolutionType } from '../../controller-utils.js';
|
|
4
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Defines a `ProductList` controller instance.
|
|
7
|
-
* @group Definers
|
|
8
|
-
*
|
|
9
|
-
* @returns The `ProductList` controller definition.
|
|
10
|
-
*/
|
|
11
|
-
export function defineProductList(options) {
|
|
12
|
-
ensureAtLeastOneSolutionType(options);
|
|
13
|
-
return {
|
|
14
|
-
listing: true,
|
|
15
|
-
search: true,
|
|
16
|
-
...options,
|
|
17
|
-
build: (engine, solutionType) => solutionType === SolutionType.listing
|
|
18
|
-
? buildProductListing(engine)
|
|
19
|
-
: buildSearch(engine),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { buildProductView, } from '../../../../controllers/commerce/product-view/headless-product-view.js';
|
|
2
|
-
import { buildController, } from '../../../../controllers/controller/headless-controller.js';
|
|
3
|
-
/**
|
|
4
|
-
* Defines a `ProductView` controller instance.
|
|
5
|
-
*
|
|
6
|
-
* This controller is stateless and does not implement a `subscribe` method,
|
|
7
|
-
* making it simpler but different from other controllers in the system.
|
|
8
|
-
* Its sole purpose is to log an `ec.productView` event.
|
|
9
|
-
*
|
|
10
|
-
* @returns The `ProductView` controller definition.
|
|
11
|
-
*
|
|
12
|
-
* @group Definers
|
|
13
|
-
*/
|
|
14
|
-
export function defineProductView() {
|
|
15
|
-
return {
|
|
16
|
-
listing: true,
|
|
17
|
-
search: true,
|
|
18
|
-
standalone: true,
|
|
19
|
-
build: (engine) => buildSSRProductView(engine),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function buildSSRProductView(engine) {
|
|
23
|
-
const controller = buildController(engine);
|
|
24
|
-
const productView = buildProductView(engine);
|
|
25
|
-
return {
|
|
26
|
-
...controller,
|
|
27
|
-
...productView,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { buildRecentQueriesList, } from '../../../../controllers/commerce/recent-queries-list/headless-recent-queries-list.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `RecentQueriesList` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @param props - The configuration `RecentQueriesList` properties.
|
|
7
|
-
* @returns The `RecentQueriesList` controller definition.
|
|
8
|
-
*/
|
|
9
|
-
export function defineRecentQueriesList(props = {}) {
|
|
10
|
-
return {
|
|
11
|
-
search: true,
|
|
12
|
-
listing: true,
|
|
13
|
-
standalone: true,
|
|
14
|
-
build: (engine) => buildRecentQueriesList(engine, props),
|
|
15
|
-
};
|
|
16
|
-
}
|
package/dist/esm/ssr-next/commerce/controllers/recommendations/headless-recommendations.ssr.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { buildRecommendations, } from '../../../../controllers/commerce/recommendations/headless-recommendations.js';
|
|
2
|
-
import { recommendationInternalOptionKey } from '../../types/controller-constants.js';
|
|
3
|
-
import { createControllerWithKind, Kind } from '../../types/kind.js';
|
|
4
|
-
/**
|
|
5
|
-
* Defines a `Recommendations` controller instance.
|
|
6
|
-
* @group Definers
|
|
7
|
-
*
|
|
8
|
-
* @param props - The configurable `Recommendations` properties.
|
|
9
|
-
* @returns The `Recommendations` controller definition.
|
|
10
|
-
* */
|
|
11
|
-
export function defineRecommendations(props) {
|
|
12
|
-
return {
|
|
13
|
-
recommendation: true,
|
|
14
|
-
[recommendationInternalOptionKey]: {
|
|
15
|
-
...props.options,
|
|
16
|
-
},
|
|
17
|
-
buildWithProps: (engine, options) => {
|
|
18
|
-
const staticOptions = props.options;
|
|
19
|
-
const controller = buildRecommendations(engine, {
|
|
20
|
-
options: { ...staticOptions, ...options },
|
|
21
|
-
});
|
|
22
|
-
return createControllerWithKind(controller, Kind.Recommendations);
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { buildSearchBox, } from '../../../../controllers/commerce/search-box/headless-search-box.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines a `SearchBox` controller instance.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `SearchBox` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineSearchBox(props = {}) {
|
|
9
|
-
return {
|
|
10
|
-
search: true,
|
|
11
|
-
build: (engine) => buildSearchBox(engine, props),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { buildProductListing } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
2
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
3
|
-
import { ensureAtLeastOneSolutionType } from '../../../../ssr/commerce/controller-utils.js';
|
|
4
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Defines a `Sort` controller instance.
|
|
7
|
-
* @group Definers
|
|
8
|
-
*
|
|
9
|
-
* @param props - The configurable `Sort` properties.
|
|
10
|
-
* @returns The `Sort` controller definition.
|
|
11
|
-
*/
|
|
12
|
-
export function defineSort(props) {
|
|
13
|
-
ensureAtLeastOneSolutionType(props);
|
|
14
|
-
return {
|
|
15
|
-
listing: true,
|
|
16
|
-
search: true,
|
|
17
|
-
...props,
|
|
18
|
-
build: (engine, solutionType) => solutionType === SolutionType.listing
|
|
19
|
-
? buildProductListing(engine).sort(props)
|
|
20
|
-
: buildSearch(engine).sort(props),
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { buildStandaloneSearchBox, } from '../../../../controllers/commerce/standalone-search-box/headless-standalone-search-box.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `StandaloneSearchBox` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @param props - The configurable `StandaloneSearchBox` properties.
|
|
7
|
-
* @returns The `StandaloneSearchBox` controller definition.
|
|
8
|
-
*/
|
|
9
|
-
export function defineStandaloneSearchBox(props) {
|
|
10
|
-
return {
|
|
11
|
-
listing: true,
|
|
12
|
-
standalone: true,
|
|
13
|
-
build: (engine) => buildStandaloneSearchBox(engine, props),
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { buildProductListing } from '../../../../controllers/commerce/product-listing/headless-product-listing.js';
|
|
2
|
-
import { buildSearch } from '../../../../controllers/commerce/search/headless-search.js';
|
|
3
|
-
import { ensureAtLeastOneSolutionType } from '../../../../ssr/commerce/controller-utils.js';
|
|
4
|
-
import { SolutionType } from '../../types/controller-constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Defines a `Summary` controller instance.
|
|
7
|
-
* @group Definers
|
|
8
|
-
*
|
|
9
|
-
* @returns The `Summary` controller definition.
|
|
10
|
-
*/
|
|
11
|
-
export function defineSummary(options) {
|
|
12
|
-
ensureAtLeastOneSolutionType(options);
|
|
13
|
-
return {
|
|
14
|
-
listing: true,
|
|
15
|
-
search: true,
|
|
16
|
-
...options,
|
|
17
|
-
build: (engine, solutionType) => solutionType === SolutionType.listing
|
|
18
|
-
? buildProductListing(engine).summary()
|
|
19
|
-
: buildSearch(engine).summary(),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { buildNotifyTrigger } from '../../../../controllers/commerce/triggers/headless-notify-trigger.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `NotifyTrigger` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `NotifyTrigger` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineNotifyTrigger() {
|
|
9
|
-
return {
|
|
10
|
-
listing: true,
|
|
11
|
-
search: true,
|
|
12
|
-
build: (engine) => buildNotifyTrigger(engine),
|
|
13
|
-
};
|
|
14
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { buildQueryTrigger } from '../../../../controllers/commerce/triggers/headless-query-trigger.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `QueryTrigger` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `QueryTrigger` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineQueryTrigger() {
|
|
9
|
-
return {
|
|
10
|
-
search: true,
|
|
11
|
-
build: (engine) => buildQueryTrigger(engine),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { buildRedirectionTrigger } from '../../../../controllers/commerce/triggers/headless-redirection-trigger.js';
|
|
2
|
-
/**
|
|
3
|
-
* Defines the `RedirectionTrigger` controller for the purpose of server-side rendering.
|
|
4
|
-
* @group Definers
|
|
5
|
-
*
|
|
6
|
-
* @returns The `RedirectionTrigger` controller definition.
|
|
7
|
-
*/
|
|
8
|
-
export function defineRedirectionTrigger() {
|
|
9
|
-
return {
|
|
10
|
-
search: true,
|
|
11
|
-
build: (engine) => buildRedirectionTrigger(engine),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility functions to be used for Commerce Server Side Rendering.
|
|
3
|
-
*/
|
|
4
|
-
import { buildFactory, } from '../factories/build-factory.js';
|
|
5
|
-
import { hydratedStaticStateFactory } from '../factories/hydrated-state-factory.js';
|
|
6
|
-
import { hydratedRecommendationStaticStateFactory } from '../factories/recommendation-hydrated-state-factory.js';
|
|
7
|
-
import { fetchRecommendationStaticStateFactory } from '../factories/recommendation-static-state-factory.js';
|
|
8
|
-
import { fetchStaticStateFactory } from '../factories/static-state-factory.js';
|
|
9
|
-
import { SolutionType } from '../types/controller-constants.js';
|
|
10
|
-
/**
|
|
11
|
-
* Initializes a Commerce engine definition in SSR with given controllers definitions and commerce engine config.
|
|
12
|
-
* @param options - The commerce engine definition
|
|
13
|
-
* @returns Three utility functions to fetch the initial state of the engine in SSR, hydrate the state in CSR,
|
|
14
|
-
* and a build function that can be used for edge cases requiring more control.
|
|
15
|
-
*
|
|
16
|
-
* @group Engine
|
|
17
|
-
*/
|
|
18
|
-
export function defineCommerceEngine(options) {
|
|
19
|
-
const { controllers: controllerDefinitions, ...engineOptions } = options;
|
|
20
|
-
const getOptions = () => engineOptions;
|
|
21
|
-
const setNavigatorContextProvider = (navigatorContextProvider) => {
|
|
22
|
-
engineOptions.navigatorContextProvider = navigatorContextProvider;
|
|
23
|
-
};
|
|
24
|
-
const getAccessToken = () => engineOptions.configuration.accessToken;
|
|
25
|
-
const setAccessToken = (accessToken) => {
|
|
26
|
-
engineOptions.configuration.accessToken = accessToken;
|
|
27
|
-
};
|
|
28
|
-
const build = buildFactory(controllerDefinitions, getOptions());
|
|
29
|
-
const fetchStaticState = fetchStaticStateFactory(controllerDefinitions, getOptions());
|
|
30
|
-
const hydrateStaticState = hydratedStaticStateFactory(controllerDefinitions, getOptions());
|
|
31
|
-
const fetchRecommendationStaticState = fetchRecommendationStaticStateFactory(controllerDefinitions, getOptions());
|
|
32
|
-
const hydrateRecommendationStaticState = hydratedRecommendationStaticStateFactory(controllerDefinitions, getOptions());
|
|
33
|
-
return {
|
|
34
|
-
listingEngineDefinition: {
|
|
35
|
-
build: build(SolutionType.listing),
|
|
36
|
-
fetchStaticState: fetchStaticState(SolutionType.listing),
|
|
37
|
-
hydrateStaticState: hydrateStaticState(SolutionType.listing),
|
|
38
|
-
setNavigatorContextProvider,
|
|
39
|
-
getAccessToken,
|
|
40
|
-
setAccessToken,
|
|
41
|
-
},
|
|
42
|
-
searchEngineDefinition: {
|
|
43
|
-
build: build(SolutionType.search),
|
|
44
|
-
fetchStaticState: fetchStaticState(SolutionType.search),
|
|
45
|
-
hydrateStaticState: hydrateStaticState(SolutionType.search),
|
|
46
|
-
setNavigatorContextProvider,
|
|
47
|
-
getAccessToken,
|
|
48
|
-
setAccessToken,
|
|
49
|
-
},
|
|
50
|
-
recommendationEngineDefinition: {
|
|
51
|
-
build: build(SolutionType.recommendation),
|
|
52
|
-
fetchStaticState: fetchRecommendationStaticState,
|
|
53
|
-
hydrateStaticState: hydrateRecommendationStaticState,
|
|
54
|
-
setNavigatorContextProvider,
|
|
55
|
-
getAccessToken,
|
|
56
|
-
setAccessToken,
|
|
57
|
-
},
|
|
58
|
-
// TODO KIT-3738 : The standaloneEngineDefinition should not be async since no request is sent to the API
|
|
59
|
-
standaloneEngineDefinition: {
|
|
60
|
-
build: build(SolutionType.standalone),
|
|
61
|
-
fetchStaticState: fetchStaticState(SolutionType.standalone),
|
|
62
|
-
hydrateStaticState: hydrateStaticState(SolutionType.standalone),
|
|
63
|
-
setNavigatorContextProvider,
|
|
64
|
-
getAccessToken,
|
|
65
|
-
setAccessToken,
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
}
|