File

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

Description

Configuration of the breadcrumb for the Route.

Index

Properties

Properties

breadcrumb
breadcrumb: string | RouteBreadcrumbConfig
Type : string | RouteBreadcrumbConfig
Optional
resolver
resolver: Type<any>
Type : Type<any>
Optional

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).

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 ""