devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
168 lines (158 loc) • 6.14 kB
TypeScript
/**
* DevExtreme (ui/collection/ui.collection_widget.base.d.ts)
* Version: 24.2.6
* Build date: Mon Mar 17 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
UserDefinedElement,
DxElement,
} from '../../core/element';
import {
template,
} from '../../common';
import DataSource, { DataSourceLike } from '../../data/data_source';
import {
EventInfo,
NativeEventInfo,
ItemInfo,
AsyncCancelable,
} from '../../common/core/events';
import Widget, {
WidgetOptions,
} from '../widget/ui.widget';
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type ItemLike = string | CollectionWidgetItem | any;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type SelectionChangingEventBase<TComponent> = AsyncCancelable & EventInfo<TComponent> & SelectionChangeInfo;
/**
*
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export interface SelectionChangeInfo<TItem extends ItemLike = any> {
/**
*
*/
readonly addedItems: Array<TItem>;
/**
*
*/
readonly removedItems: Array<TItem>;
}
/**
*
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export interface CollectionWidgetOptions<
TComponent extends CollectionWidget<any, TItem, TKey> | any,
TItem extends ItemLike = any,
TKey = any,
> extends WidgetOptions<TComponent> {
/**
* Binds the UI component to data.
*/
dataSource?: DataSourceLike<TItem, TKey> | null;
/**
* The time period in milliseconds before the onItemHold event is raised.
*/
itemHoldTimeout?: number;
/**
* Specifies a custom template for items.
*/
itemTemplate?: template | ((itemData: TItem, itemIndex: number, itemElement: DxElement) => string | UserDefinedElement);
/**
* An array of items displayed by the UI component.
*/
items?: Array<TItem>;
/**
* Specifies the key property that provides key values to access data items. Each key value must be unique.
*/
keyExpr?: string | Function;
/**
* Specifies the text or HTML markup displayed by the UI component if the item collection is empty.
*/
noDataText?: string;
/**
* A function that is executed when a collection item is clicked or tapped.
*/
onItemClick?: ((e: NativeEventInfo<TComponent, MouseEvent | PointerEvent> & ItemInfo<TItem>) => void) | string;
/**
* A function that is executed when a collection item is right-clicked or pressed.
*/
onItemContextMenu?: ((e: NativeEventInfo<TComponent, MouseEvent | PointerEvent | TouchEvent> & ItemInfo<TItem>) => void);
/**
* A function that is executed when a collection item has been held for a specified period.
*/
onItemHold?: ((e: NativeEventInfo<TComponent, MouseEvent | PointerEvent | TouchEvent> & ItemInfo<TItem>) => void);
/**
* A function that is executed after a collection item is rendered.
*/
onItemRendered?: ((e: EventInfo<TComponent> & ItemInfo<TItem>) => void);
/**
* A function that is called before selection changes.
*/
onSelectionChanging?: ((e: SelectionChangingEventBase<TComponent>) => void);
/**
* A function that is called after selection changes.
*/
onSelectionChanged?: ((e: EventInfo<TComponent> & SelectionChangeInfo<TItem>) => void);
/**
* The index of the currently selected UI component item.
*/
selectedIndex?: number;
/**
* The selected item object.
*/
selectedItem?: TItem;
/**
* Specifies an array of currently selected item keys.
*/
selectedItemKeys?: Array<TKey>;
/**
* An array of currently selected item objects.
*/
selectedItems?: Array<TItem>;
}
/**
* The base class for UI components containing an item collection.
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export default class CollectionWidget<
TProperties extends CollectionWidgetOptions<any, TItem, TKey>,
TItem extends ItemLike = any,
TKey = any,
> extends Widget<TProperties> {
getDataSource(): DataSource<TItem, TKey>;
}
/**
*
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export interface CollectionWidgetItem {
/**
* Specifies whether the UI component item responds to user interaction.
*/
disabled?: boolean;
/**
* Specifies the HTML markup to be inserted into the item element.
*/
html?: string;
/**
* Specifies a template that should be used to render this item only.
*/
template?: template | ((itemData: this, itemIndex: number, itemElement: DxElement) => string | UserDefinedElement);
/**
* Specifies text displayed for the UI component item.
*/
text?: string;
/**
* Specifies whether or not a UI component item must be displayed.
*/
visible?: boolean;
}