File

src/lib/navigation/navigation-item.ts

Index

Properties

Properties

divider
divider: boolean
Type : boolean
title
title: string
Type : string
Optional
import { IconConfig } from '@rxap/utilities';
import {
  AbstractType,
  InjectionToken,
  Type,
} from '@angular/core';
import { Observable } from 'rxjs';

export type Navigation = Array<NavigationItem | NavigationDividerItem>;

export type NavigationWithInserts = Array<
  | NavigationItem<NavigationWithInserts>
  | NavigationDividerItem
  | NavigationInsertItem
>;

export interface NavigationDividerItem {
  divider: boolean;
  title?: string;
}

export function IsNavigationDividerItem(
  item: any,
): item is NavigationDividerItem {
  return !!item && !!item['divider'];
}

export interface NavigationInsertItem {
  insert: string;
}

export function IsNavigationInsertItem(
  item: any,
): item is NavigationInsertItem {
  return !!item && !!item['insert'];
}

export interface NavigationStatus {
  isVisible(
    navigationItem: NavigationItem,
  ): Observable<boolean> | Promise<boolean> | boolean;
}

export interface NavigationItem<Children = Navigation> extends Record<string, unknown> {
  routerLink: string[] | string;
  label: string;
  children?: Children;
  icon?: IconConfig;
  status?: Array<
    | Type<NavigationStatus>
    | InjectionToken<NavigationStatus>
    | AbstractType<NavigationStatus>
  >;
}

export function IsNavigationItem(item: any): item is NavigationItem {
  return (
    !!item && !!item['routerLink'] && !!item['label']
  );
}

results matching ""

    No results matching ""