/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { TemplateRef } from '@angular/core'; import { SVGIcon } from '@progress/kendo-angular-icons'; /** * Represents an interface for the Menu items. */ export interface MenuItem { /** * Specifies the item text ([see example](slug:items_menu#toc-showing-text)). */ text?: string; /** * Specifies a URL which is rendered as a `href` attribute on the item link * ([see example](slug:items_menu#toc-rendering-urls)). */ url?: string; /** * Specifies the name of the [font icon](slug:icons#icons-list) that will * be rendered for the item ([see example](slug:items_menu#toc-displaying-font-icons)). */ icon?: string; /** * Defines an [`SVGIcon`](slug:api_icons_svgicon) that will be * rendered for the item using a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component ([see example](slug:items_menu#toc-displaying-svg-icons)). */ svgIcon?: SVGIcon; /** * Specifies if the item is disabled ([see example](slug:items_menu#toc-disabling-items)). */ disabled?: boolean; /** * Specifies the CSS classes that will be rendered on the item element ([see example](slug:items_menu#toc-adding-styles-and-classes)). * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']). */ cssClass?: any; /** * Specifies the CSS styles that will be rendered on the item element ([see example](slug:items_menu#toc-adding-styles-and-classes)). * Supports the type of values that are supported by [`ngStyle`](link:site.data.urls.angular['ngstyleapi']). */ cssStyle?: any; /** * Specifies a template for the item. */ template?: TemplateRef; /** * Specifies a template for the item content. */ contentTemplate?: TemplateRef; /** * Specifies the children of the item ([see example]({% slug databinding_menu %})). */ items?: any[]; /** * Represents the additional data that is associated with the Menu item. */ data?: any; /** * Specifies if this is a separator item. * If set to true only the `cssClass` and `cssStyle` fields are rendered. */ separator?: boolean; }