File

projects/core/src/cms/page/routing/route-page-meta.model.ts

Description

Angular ActivatedRouteSnapshot extended with the custom configuration of the page meta in the property data.cxPageMeta.

Extends

ActivatedRouteSnapshot

Index

Properties

Properties

routeConfig
routeConfig: | null
Type : | null
import { Type } from '@angular/core';
import { ActivatedRouteSnapshot, Data, Route } from '@angular/router';
import { Observable } from 'rxjs';
import { BreadcrumbMeta } from '../../model/page.model';

/**
 * Angular ActivatedRouteSnapshot extended with the custom configuration
 * of the page meta in the property `data.cxPageMeta`.
 */
export interface ActivatedRouteSnapshotWithPageMeta
  extends ActivatedRouteSnapshot {
  routeConfig:
    | (Route & {
        data?: Data & {
          cxPageMeta?: RoutePageMetaConfig;
        };
      })
    | null;
}

/**
 * Configuration of the breadcrumb for the Route.
 */
export interface RoutePageMetaConfig {
  breadcrumb?: string | RouteBreadcrumbConfig;

  /**
   * Optional resolver class implementing `RoutePageMetaResolver`.
   * The resolver instance will be implicitly inherited by all the
   * child routes of the route with defined resolver (unless some
   * child route defines its own resolver).
   */
  resolver?: Type<any>;
}

/**
 * Configuration of the breadcrumb for specific route
 */
export interface RouteBreadcrumbConfig {
  /**
   * Raw text for the breadcrumb label.
   */
  raw?: string;

  /**
   * Translation key for the breadcrumb label.
   * */
  i18n?: string;
}

/**
 * Params for the breadcrumb resolver of a single activated route.
 */
export interface RouteBreadcrumbResolverParams {
  url?: string;
  pageMetaConfig?: RoutePageMetaConfig;
  route?: ActivatedRouteSnapshot;
}

/**
 * Breadcrumb resolver interface for a single route
 */
export interface RouteBreadcrumbResolver {
  /**
   * Turns the route definition (with its breadcrumb config) into the resolved breadcrumb.
   *
   * @param url precalculated absolute link based on the route snapshot and its ancestors in the routes tree
   * @param pageMetaConfig page meta config for the route, including the breadcrumb config
   * @param route the route snapshot
   */
  resolveBreadcrumbs(
    params: RouteBreadcrumbResolverParams
  ): Observable<BreadcrumbMeta[]>;
}

result-matching ""

    No results matching ""