/** * DevExpress Analytics (widgets\utils.d.ts) * Version: 25.2.7 * Build date: May 5, 2026 * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ import { Observable, Computed, Subscribable } from 'knockout'; import { IPathRequest } from './common/pathRequest'; import { TreeListItemViewModel } from './treelist/_treelistItem'; import { CustomItemCreatingInfo } from 'devextreme/ui/select_box'; import { SimplifiedSearchMode } from 'devextreme/common'; import { IViewModel } from '../serializer/native/models/interfaces.model'; import { ActionListsBase } from '../core/tools/_actionListBase'; import { DxPromise } from '../core/utils/_jqueryUtils'; import { MultiPlatformComputed, MultiPlatformObservable } from '../serializer/native/multiplatformEngine'; export interface IEnumValue { displayName: string; name: string; value: any; } export interface IDataMemberInfo { name: string; displayName: string; actionsTemplate?: string; contenttemplate?: string; data?: any; isList?: boolean; specifics?: string; isSelected?: boolean; dataType?: string; templateName?: string; innerActions?: any; relationPath?: string; noDragable?: any; dragData?: any; icon?: string; items?: IDataMemberInfo[]; isListType?: boolean; isSupportQueries?: boolean; cssRule?: { [key: string]: boolean; }; enumValues?: IEnumValue[] | null; enumRegisteredType?: string | null; } export interface IComponent { name: MultiPlatformObservable | MultiPlatformComputed; } export interface IItemsProvider { getItems: (path: IPathRequest) => DxPromise; subscribeOnItemsChanged?: (item: TreeListItemViewModel, callback: (promise: DxPromise) => void) => () => void; getItemByPath?: (path: IPathRequest) => DxPromise; getValues?: (path: IPathRequest) => DxPromise; } export interface IHotKey { ctrlKey?: boolean; altKey?: boolean; keyCode: number; } export interface IActionViewModel extends IViewModel { ref?: string; displayText?: string; disabled?: boolean; hasSeparator?: boolean; visible?: boolean; selected?: boolean; templateName?: string; click: (e: any) => void; actionClass: string; block: { attr: { 'aria-label': string; 'aria-disabled': 'true' | 'false'; 'aria-pressed'?: 'true' | 'false'; }; }; image: { templateName: string; class: string; }; } export interface ISelectBoxActionViewModel extends IActionViewModel { getPopupContainer: (element: HTMLElement) => HTMLElement; widget: { value: any; onValueChanged: (newVal: any) => void; dataSource: any; opened?: boolean; displayExpr?: (val: number) => string; onCustomItemCreating?: (e: CustomItemCreatingInfo) => void; onFocusOut?: (val: any) => void; onKeyUp?: (val: any) => void; itemTemplate?: any; placeholder?: string; searchMode?: SimplifiedSearchMode; width?: string; searchEnabled?: boolean; searchTimeout?: number; inputAttr: { 'aria-label': string; }; dropDownOptions?: { wrapperAttr?: { class?: string; 'aria-label': string; }; }; }; } export interface IContentActionViewModel extends IActionViewModel { contentData: any; } export interface IAction { id?: string; text?: string; textId?: string; container?: string; clickAction?: (model?: any) => void; hotKey?: IHotKey | IHotKey[]; hasSeparator?: boolean; isContextMenuAction?: boolean; templateName?: string; contentData?: any; position?: number; displayExpr?: (val: any) => string; onCustomItemCreating?: (e: CustomItemCreatingInfo) => void; group?: () => string; displayText?: () => string; imageTemplateName?: Observable | Computed | string; imageClassName?: Observable | Computed | string; disabled?: Observable | Computed | boolean; visible?: Observable | Computed | boolean; selected?: Observable | Computed | boolean; zoom?: Subscribable | number; zoomStep?: Subscribable; zoomLevels?: Subscribable | number[]; getViewModel?: (parent: ActionListsBase, index: number) => IActionViewModel; } export interface IActionKO extends IAction { disabled?: Observable | Computed; } export interface IActionGroup { groupName: string; actions: IAction; }