feature-libs/checkout/core/services/checkout-page-meta.resolver.ts
Resolves the page data for all Content Pages based on the PageType.CONTENT_PAGE
and the MultiStepCheckoutSummaryPageTemplate. If the checkout page matches this template,
the more generic ContentPageMetaResolver is overridden by this resolver.
The page title and robots are resolved in this implementation only.
Properties |
|
Methods |
constructor(translation: TranslationService, activeCartService: ActiveCartService, basePageMetaResolver: BasePageMetaResolver)
|
||||||||||||
|
Parameters :
|
| resolveDescription |
resolveDescription()
|
|
Returns :
Observable<string | undefined>
|
| resolveRobots |
resolveRobots()
|
|
Returns :
Observable<PageRobotsMeta[]>
|
| getPriority | ||||||
getPriority(page: Page)
|
||||||
|
Inherited from
PageMetaResolver
|
||||||
|
Defined in
PageMetaResolver:37
|
||||||
|
Parameters :
Returns :
number
|
| getScore | ||||||
getScore(page: Page)
|
||||||
|
Inherited from
PageMetaResolver
|
||||||
|
Defined in
PageMetaResolver:22
|
||||||
|
Returns the matching score for a resolver class, based on the page type and page template.
Parameters :
Returns :
number
|
| hasMatch | ||||||
hasMatch(page: Page)
|
||||||
|
Inherited from
PageMetaResolver
|
||||||
|
Defined in
PageMetaResolver:33
|
||||||
|
Parameters :
Returns :
boolean
|
| Protected cart$ |
Type : Observable<Cart>
|
Default value : this.activeCartService.getActive()
|
| pageTemplate |
Type : string
|
|
Inherited from
PageMetaResolver
|
|
Defined in
PageMetaResolver:16
|
|
The page template is used to score the (non)matching page template |
| pageType |
Type : PageType
|
|
Inherited from
PageMetaResolver
|
|
Defined in
PageMetaResolver:13
|
|
The |
import { Injectable } from '@angular/core';
import {
ActiveCartService,
BasePageMetaResolver,
Cart,
PageDescriptionResolver,
PageMetaResolver,
PageRobotsMeta,
PageRobotsResolver,
PageTitleResolver,
PageType,
TranslationService,
} from '@spartacus/core';
import { Observable } from 'rxjs';
import { switchMap } from 'rxjs/operators';
/**
* Resolves the page data for all Content Pages based on the `PageType.CONTENT_PAGE`
* and the `MultiStepCheckoutSummaryPageTemplate`. If the checkout page matches this template,
* the more generic `ContentPageMetaResolver` is overridden by this resolver.
*
* The page title and robots are resolved in this implementation only.
*/
@Injectable({
providedIn: 'root',
})
export class CheckoutPageMetaResolver
extends PageMetaResolver
implements PageTitleResolver, PageDescriptionResolver, PageRobotsResolver
{
protected cart$: Observable<Cart> = this.activeCartService.getActive();
constructor(
protected translation: TranslationService,
protected activeCartService: ActiveCartService,
protected basePageMetaResolver: BasePageMetaResolver
) {
super();
this.pageType = PageType.CONTENT_PAGE;
this.pageTemplate = 'MultiStepCheckoutSummaryPageTemplate';
}
/**
* @override
* Resolves the page title from the translation `pageMetaResolver.checkout.title`. The
* cart total item `count` is passed to the translation, so it can be used in the title.
*
* The title from the page data is ignored for this page title.
*/
resolveTitle(): Observable<string> {
return this.cart$.pipe(
switchMap((c) =>
this.translation.translate('pageMetaResolver.checkout.title', {
count: c.totalItems,
})
)
);
}
resolveDescription(): Observable<string | undefined> {
return this.basePageMetaResolver.resolveDescription();
}
resolveRobots(): Observable<PageRobotsMeta[]> {
return this.basePageMetaResolver.resolveRobots();
}
}