/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { SVGIcon } from "@progress/kendo-svg-icons";
/**
 * Represents the item models of the Kendo UI DropDownButton and SplitButton components. These are the interface fields that the items use.
 *
 * @example
 *
 * ```typescript
 * @Component({
 * selector: 'my-app',
 * template: `
 *  <kendo-splitbutton [data]="items">SplitButton</kendo-splitbutton>
 * `
 * })
 * class AppComponent {
 *   public items: ListItemModel[] = [{
 *      text: 'item1',
 *      icon: 'arrow-rotate-cw',
 *      click: (dataItem: any) => {
 *          //action
 *      }
 *  }, {
 *      text: 'item2',
 *      iconClass: 'test icon class',
 *      click: (dataItem: any) => {
 *          //action
 *      }
 *  }]
 * }
 * ```
 */
export interface ListItemModel {
    /**
     * Sets the text of the item.
     */
    text?: string;
    /**
     * Defines an icon rendered next to the title.
     */
    icon?: string;
    /**
     * Defines an [SVGIcon](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) rendered next to the title.
     */
    svgIcon?: SVGIcon;
    /**
     * Defines an icon with a custom CSS class rendered next to the title.
     */
    iconClass?: string;
    /**
     * Specifies the location of an image displayed next to the title.
     */
    imageUrl?: string;
    /**
     * Specifies the value of the image element `alt` attribute.
     *
     * @remarks
     * This option is related to accessibility.
     */
    imageAlt?: string;
    /**
     * Disables the button list item when set to `true`.
     */
    disabled?: boolean;
    /**
     * Specifies the CSS classes rendered on the item element. Supports the same values as `ngClass`.
     */
    cssClass?: any;
    /**
      * Emits an event when the item is clicked.
     */
    click?: (dataItem?: any) => void;
}
