@spartacus/core
Version:
Spartacus - the core framework
57 lines (56 loc) • 2.2 kB
TypeScript
import { Observable } from 'rxjs';
import { UnifiedInjector } from '../../lazy-loading/unified-injector';
import { Page, PageMeta } from '../model/page.model';
import { PageMetaConfig } from '../page/config/page-meta.config';
import { PageMetaResolver } from '../page/page-meta.resolver';
import { CmsService } from './cms.service';
import * as i0 from "@angular/core";
/**
* Service that collects the page meta data by using injected page resolvers.
*/
export declare class PageMetaService {
protected cms: CmsService;
protected unifiedInjector: UnifiedInjector;
protected pageMetaConfig: PageMetaConfig;
protected platformId: string;
constructor(cms: CmsService, unifiedInjector: UnifiedInjector, pageMetaConfig: PageMetaConfig, platformId: string);
protected resolvers$: Observable<PageMetaResolver[]>;
protected meta$: Observable<PageMeta | null>;
/**
* Returns the observed page meta data for the current page.
*
* The data is resolved by various PageResolvers, which are configurable.
*/
getMeta(): Observable<PageMeta | null>;
/**
* If a `PageResolver` has implemented a resolver interface, the resolved data
* is merged into the `PageMeta` object.
* @param metaResolver
*/
protected resolve(metaResolver: PageMetaResolver): Observable<PageMeta>;
/**
* Returns an object with resolvers. The object properties represent the `PageMeta` property, i.e.:
*
* ```
* {
* title: 'resolveTitle',
* robots: 'resolveRobots'
* }
* ```
*
* This list of resolvers is filtered for CSR vs SSR processing since not all resolvers are
* relevant during browsing.
*/
protected getResolverMethods(): {
[property: string]: string;
};
/**
* Return the resolver with the best match, based on a score
* generated by the resolver.
*
* Resolvers match by default on `PageType` and `page.template`.
*/
protected getMetaResolver(page: Page): Observable<PageMetaResolver | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<PageMetaService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<PageMetaService>;
}