src/app/core/admin/admin-menu/menu-item-for-admin-ui.ts

Implements

MenuItemForAdminUi

Relationships

Used by

No results matching.

Depends on

Index

Properties

Constructor

constructor(uniqueId: string)
Parameters :
Name Type Optional
uniqueId string No

Properties

Optional icon
Type : string
isNew
Type : unknown
Default value : true
label
Type : string
Default value : ""
Optional link
Type : string
subMenu
Type : []
Default value : []
Public uniqueId
Type : string
import { EntityMenuItem, MenuItem } from "../../ui/navigation/menu-item";

/**
 * Extension of MenuItem that includes additional properties
 * for the admin drag&drop logic.
 */
export interface MenuItemForAdminUi extends MenuItem {
  uniqueId: string;
  subMenu: MenuItemForAdminUi[];
}

export class MenuItemForAdminUiNew implements MenuItemForAdminUi {
  constructor(public uniqueId: string) {}

  subMenu = [];
  label: string = "";
  icon?: string;
  link?: string;

  isNew = true;
}

/**
 * True when an item is in manual mode (no entity type) and no link has been set.
 */
export function isManualItemWithoutLink(
  item: MenuItem | EntityMenuItem,
): boolean {
  return !item.link?.trim() && !(item as EntityMenuItem).entityType?.trim();
}

/**
 * True when an item has no destination link and also no nested sub-items.
 */
export function hasNoLinkAndNoSubItems(item: MenuItemForAdminUi): boolean {
  return (
    isManualItemWithoutLink(item) &&
    (!item.subMenu || item.subMenu.length === 0)
  );
}

results matching ""

    No results matching ""