devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
733 lines (722 loc) • 23.1 kB
TypeScript
/**
* DevExtreme (ui/list.d.ts)
* Version: 19.2.6
* Build date: Thu Jan 30 2020
*
* Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import '../jquery_augmentation';
import {
dxElement
} from '../core/element';
import {
template
} from '../core/templates/template';
import DataSource, {
DataSourceOptions
} from '../data/data_source';
import {
event
} from '../events';
import CollectionWidget, {
CollectionWidgetItem,
CollectionWidgetOptions
} from './collection/ui.collection_widget.base';
import {
dxSortableOptions
} from './sortable';
import {
SearchBoxMixinOptions
} from './widget/ui.search_box_mixin';
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxListOptions extends CollectionWidgetOptions<dxList>, SearchBoxMixinOptions<dxList> {
/**
* @docid dxListOptions.activeStateEnabled
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
activeStateEnabled?: boolean;
/**
* @docid dxListOptions.allowItemDeleting
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
allowItemDeleting?: boolean;
/**
* @docid dxListOptions.allowItemReordering
* @type boolean
* @default false
* @deprecated dxListOptions.itemDragging
* @prevFileNamespace DevExpress.ui
* @public
*/
allowItemReordering?: boolean;
/**
* @docid dxListOptions.bounceEnabled
* @type boolean
* @default true
* @default false [for](desktop)
* @prevFileNamespace DevExpress.ui
* @public
*/
bounceEnabled?: boolean;
/**
* @docid dxListOptions.collapsibleGroups
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
collapsibleGroups?: boolean;
/**
* @docid dxListOptions.dataSource
* @type string|Array<string,dxListItem,object>|DataSource|DataSourceOptions
* @default null
* @prevFileNamespace DevExpress.ui
* @public
*/
dataSource?: string | Array<string | dxListItem | any> | DataSource | DataSourceOptions;
/**
* @docid dxListOptions.displayExpr
* @type string|function(item)
* @default undefined
* @type_function_param1 item:object
* @type_function_return string
* @prevFileNamespace DevExpress.ui
* @public
*/
displayExpr?: string | ((item: any) => string);
/**
* @docid dxListOptions.focusStateEnabled
* @type boolean
* @default true [for](desktop)
* @prevFileNamespace DevExpress.ui
* @public
*/
focusStateEnabled?: boolean;
/**
* @docid dxListOptions.groupTemplate
* @type template|function
* @default "group"
* @type_function_param1 groupData:object
* @type_function_param2 groupIndex:number
* @type_function_param3 groupElement:dxElement
* @type_function_return string|Node|jQuery
* @prevFileNamespace DevExpress.ui
* @public
*/
groupTemplate?: template | ((groupData: any, groupIndex: number, groupElement: dxElement) => string | Element | JQuery);
/**
* @docid dxListOptions.grouped
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
grouped?: boolean;
/**
* @docid dxListOptions.hoverStateEnabled
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
hoverStateEnabled?: boolean;
/**
* @docid dxListOptions.indicateLoading
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
indicateLoading?: boolean;
/**
* @docid dxListOptions.itemDeleteMode
* @type Enums.ListItemDeleteMode
* @default 'static'
* @default 'slideItem' [for](iOS)
* @default 'swipe' [for](Android)
* @prevFileNamespace DevExpress.ui
* @public
*/
itemDeleteMode?: 'context' | 'slideButton' | 'slideItem' | 'static' | 'swipe' | 'toggle';
/**
* @docid dxListOptions.itemDragging
* @type dxSortableOptions
* @prevFileNamespace DevExpress.ui
* @public
*/
itemDragging?: dxSortableOptions;
/**
* @docid dxListOptions.items
* @type Array<string, dxListItem, object>
* @fires dxListOptions.onOptionChanged
* @prevFileNamespace DevExpress.ui
* @public
*/
items?: Array<string | dxListItem | any>;
/**
* @docid dxListOptions.menuItems
* @type Array<Object>
* @default []
* @prevFileNamespace DevExpress.ui
* @public
*/
menuItems?: Array<{ action?: ((itemElement: dxElement, itemData: any) => any), text?: string }>;
/**
* @docid dxListOptions.menuMode
* @type Enums.ListMenuMode
* @default 'context'
* @default 'slide' [for](iOS)
* @prevFileNamespace DevExpress.ui
* @public
*/
menuMode?: 'context' | 'slide';
/**
* @docid dxListOptions.nextButtonText
* @type string
* @default "More"
* @prevFileNamespace DevExpress.ui
* @public
*/
nextButtonText?: string;
/**
* @docid dxListOptions.onGroupRendered
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 groupData:object
* @type_function_param1_field5 groupElement:dxElement
* @type_function_param1_field6 groupIndex:number
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onGroupRendered?: ((e: { component?: dxList, element?: dxElement, model?: any, groupData?: any, groupElement?: dxElement, groupIndex?: number }) => any);
/**
* @docid dxListOptions.onItemClick
* @extends Action
* @type function(e)|string
* @type_function_param1 e:object
* @type_function_param1_field4 itemData:object
* @type_function_param1_field5 itemElement:dxElement
* @type_function_param1_field6 itemIndex:number | object
* @type_function_param1_field7 jQueryEvent:jQuery.Event:deprecated(event)
* @type_function_param1_field8 event:event
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemClick?: ((e: { component?: dxList, element?: dxElement, model?: any, itemData?: any, itemElement?: dxElement, itemIndex?: number | any, jQueryEvent?: JQueryEventObject, event?: event }) => any) | string;
/**
* @docid dxListOptions.onItemContextMenu
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 itemData:object
* @type_function_param1_field5 itemElement:dxElement
* @type_function_param1_field6 itemIndex:number | object
* @type_function_param1_field7 jQueryEvent:jQuery.Event:deprecated(event)
* @type_function_param1_field8 event:event
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemContextMenu?: ((e: { component?: dxList, element?: dxElement, model?: any, itemData?: any, itemElement?: dxElement, itemIndex?: number | any, jQueryEvent?: JQueryEventObject, event?: event }) => any);
/**
* @docid dxListOptions.onItemDeleted
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 itemData:object
* @type_function_param1_field5 itemElement:dxElement
* @type_function_param1_field6 itemIndex:number | object
* @action
* @hidden false
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemDeleted?: ((e: { component?: dxList, element?: dxElement, model?: any, itemData?: any, itemElement?: dxElement, itemIndex?: number | any }) => any);
/**
* @docid dxListOptions.onItemDeleting
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 itemData:object
* @type_function_param1_field5 itemElement:dxElement
* @type_function_param1_field6 itemIndex:number | object
* @type_function_param1_field7 cancel:boolean | Promise<void>
* @action
* @hidden false
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemDeleting?: ((e: { component?: dxList, element?: dxElement, model?: any, itemData?: any, itemElement?: dxElement, itemIndex?: number | any, cancel?: boolean | Promise<void> | JQueryPromise<void> }) => any);
/**
* @docid dxListOptions.onItemHold
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 itemData:object
* @type_function_param1_field5 itemElement:dxElement
* @type_function_param1_field6 itemIndex:number | object
* @type_function_param1_field7 jQueryEvent:jQuery.Event:deprecated(event)
* @type_function_param1_field8 event:event
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemHold?: ((e: { component?: dxList, element?: dxElement, model?: any, itemData?: any, itemElement?: dxElement, itemIndex?: number | any, jQueryEvent?: JQueryEventObject, event?: event }) => any);
/**
* @docid dxListOptions.onItemReordered
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 itemData:object
* @type_function_param1_field5 itemElement:dxElement
* @type_function_param1_field6 itemIndex:number | object
* @type_function_param1_field7 fromIndex:number
* @type_function_param1_field8 toIndex:number
* @action
* @hidden false
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemReordered?: ((e: { component?: dxList, element?: dxElement, model?: any, itemData?: any, itemElement?: dxElement, itemIndex?: number | any, fromIndex?: number, toIndex?: number }) => any);
/**
* @docid dxListOptions.onItemSwipe
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 jQueryEvent:jQuery.Event:deprecated(event)
* @type_function_param1_field5 event:event
* @type_function_param1_field6 itemData:object
* @type_function_param1_field7 itemElement:dxElement
* @type_function_param1_field8 itemIndex:number | object
* @type_function_param1_field9 direction:string
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onItemSwipe?: ((e: { component?: dxList, element?: dxElement, model?: any, jQueryEvent?: JQueryEventObject, event?: event, itemData?: any, itemElement?: dxElement, itemIndex?: number | any, direction?: string }) => any);
/**
* @docid dxListOptions.onPageLoading
* @extends Action
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onPageLoading?: ((e: { component?: dxList, element?: dxElement, model?: any }) => any);
/**
* @docid dxListOptions.onPullRefresh
* @extends Action
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onPullRefresh?: ((e: { component?: dxList, element?: dxElement, model?: any }) => any);
/**
* @docid dxListOptions.onScroll
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 jQueryEvent:jQuery.Event:deprecated(event)
* @type_function_param1_field5 event:event
* @type_function_param1_field6 scrollOffset:object
* @type_function_param1_field7 reachedLeft:boolean
* @type_function_param1_field8 reachedRight:boolean
* @type_function_param1_field9 reachedTop:boolean
* @type_function_param1_field10 reachedBottom:boolean
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onScroll?: ((e: { component?: dxList, element?: dxElement, model?: any, jQueryEvent?: JQueryEventObject, event?: event, scrollOffset?: any, reachedLeft?: boolean, reachedRight?: boolean, reachedTop?: boolean, reachedBottom?: boolean }) => any);
/**
* @docid dxListOptions.onSelectAllValueChanged
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 value:boolean
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onSelectAllValueChanged?: ((e: { component?: dxList, element?: dxElement, model?: any, value?: boolean }) => any);
/**
* @docid dxListOptions.pageLoadMode
* @type Enums.ListPageLoadMode
* @default "scrollBottom"
* @default 'nextButton' [for](desktop)
* @prevFileNamespace DevExpress.ui
* @public
*/
pageLoadMode?: 'nextButton' | 'scrollBottom';
/**
* @docid dxListOptions.pageLoadingText
* @type string
* @default "Loading..."
* @default "" [for](Material)
* @prevFileNamespace DevExpress.ui
* @public
*/
pageLoadingText?: string;
/**
* @docid dxListOptions.pullRefreshEnabled
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
pullRefreshEnabled?: boolean;
/**
* @docid dxListOptions.pulledDownText
* @type string
* @default "Release to refresh..."
* @default "" [for](Material)
* @prevFileNamespace DevExpress.ui
* @public
*/
pulledDownText?: string;
/**
* @docid dxListOptions.pullingDownText
* @type string
* @default "Pull down to refresh..."
* @default "" [for](Material)
* @prevFileNamespace DevExpress.ui
* @public
*/
pullingDownText?: string;
/**
* @docid dxListOptions.refreshingText
* @type string
* @default "Refreshing..."
* @default "" [for](Material)
* @prevFileNamespace DevExpress.ui
* @public
*/
refreshingText?: string;
/**
* @docid dxListOptions.repaintChangesOnly
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
repaintChangesOnly?: boolean;
/**
* @docid dxListOptions.scrollByContent
* @type boolean
* @default true
* @default false [for](non-touch_devices)
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollByContent?: boolean;
/**
* @docid dxListOptions.scrollByThumb
* @type boolean
* @default false
* @default true [for](desktop)
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollByThumb?: boolean;
/**
* @docid dxListOptions.scrollingEnabled
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollingEnabled?: boolean;
/**
* @docid dxListOptions.selectAllMode
* @type Enums.SelectAllMode
* @default 'page'
* @prevFileNamespace DevExpress.ui
* @public
*/
selectAllMode?: 'allPages' | 'page';
/**
* @docid dxListOptions.selectionMode
* @type Enums.ListSelectionMode
* @default 'none'
* @prevFileNamespace DevExpress.ui
* @public
*/
selectionMode?: 'all' | 'multiple' | 'none' | 'single';
/**
* @docid dxListOptions.showScrollbar
* @type Enums.ShowScrollbarMode
* @default 'onScroll'
* @default 'onHover' [for](desktop)
* @prevFileNamespace DevExpress.ui
* @public
*/
showScrollbar?: 'always' | 'never' | 'onHover' | 'onScroll';
/**
* @docid dxListOptions.showSelectionControls
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
showSelectionControls?: boolean;
/**
* @docid dxListOptions.useNativeScrolling
* @default false [for](desktop)
* @default true [for](Mac)
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
useNativeScrolling?: boolean;
}
/** The List is a widget that represents a collection of items in a scrollable list. */
export default class dxList extends CollectionWidget {
constructor(element: Element, options?: dxListOptions)
constructor(element: JQuery, options?: dxListOptions)
/**
* @docid dxListMethods.clientHeight
* @publicName clientHeight()
* @return numeric
* @prevFileNamespace DevExpress.ui
* @public
*/
clientHeight(): number;
/**
* @docid dxListMethods.collapseGroup
* @publicName collapseGroup(groupIndex)
* @param1 groupIndex:Number
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
collapseGroup(groupIndex: number): Promise<void> & JQueryPromise<void>;
/**
* @docid dxListMethods.deleteItem
* @publicName deleteItem(itemElement)
* @param1 itemElement:Node
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
deleteItem(itemElement: Element): Promise<void> & JQueryPromise<void>;
/**
* @docid dxListMethods.deleteItem
* @publicName deleteItem(itemIndex)
* @param1 itemIndex:Number|Object
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
deleteItem(itemIndex: number | any): Promise<void> & JQueryPromise<void>;
/**
* @docid dxListMethods.expandGroup
* @publicName expandGroup(groupIndex)
* @param1 groupIndex:Number
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
expandGroup(groupIndex: number): Promise<void> & JQueryPromise<void>;
/**
* @docid dxListMethods.isItemSelected
* @publicName isItemSelected(itemElement)
* @param1 itemElement:Node
* @return boolean
* @prevFileNamespace DevExpress.ui
* @public
*/
isItemSelected(itemElement: Element): boolean;
/**
* @docid dxListMethods.isItemSelected
* @publicName isItemSelected(itemIndex)
* @param1 itemIndex:Number|Object
* @return boolean
* @prevFileNamespace DevExpress.ui
* @public
*/
isItemSelected(itemIndex: number | any): boolean;
/**
* @docid dxListMethods.reload
* @publicName reload()
* @prevFileNamespace DevExpress.ui
* @public
*/
reload(): void;
/**
* @docid dxListMethods.reorderItem
* @publicName reorderItem(itemElement, toItemElement)
* @param1 itemElement:Node
* @param2 toItemElement:Node
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
reorderItem(itemElement: Element, toItemElement: Element): Promise<void> & JQueryPromise<void>;
/**
* @docid dxListMethods.reorderItem
* @publicName reorderItem(itemIndex, toItemIndex)
* @param1 itemIndex:Number|Object
* @param2 toItemIndex:Number|Object
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
reorderItem(itemIndex: number | any, toItemIndex: number | any): Promise<void> & JQueryPromise<void>;
/**
* @docid dxListMethods.scrollBy
* @publicName scrollBy(distance)
* @param1 distance:numeric
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollBy(distance: number): void;
/**
* @docid dxListMethods.scrollHeight
* @publicName scrollHeight()
* @return numeric
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollHeight(): number;
/**
* @docid dxListMethods.scrollTo
* @publicName scrollTo(location)
* @param1 location:numeric
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollTo(location: number): void;
/**
* @docid dxListMethods.scrollToItem
* @publicName scrollToItem(itemElement)
* @param1 itemElement:Node
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollToItem(itemElement: Element): void;
/**
* @docid dxListMethods.scrollToItem
* @publicName scrollToItem(itemIndex)
* @param1 itemIndex:Number|Object
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollToItem(itemIndex: number | any): void;
/**
* @docid dxListMethods.scrollTop
* @publicName scrollTop()
* @return numeric
* @prevFileNamespace DevExpress.ui
* @public
*/
scrollTop(): number;
/**
* @docid dxListMethods.selectAll
* @publicName selectAll()
* @prevFileNamespace DevExpress.ui
* @public
*/
selectAll(): void;
/**
* @docid dxListMethods.selectItem
* @publicName selectItem(itemElement)
* @param1 itemElement:Node
* @prevFileNamespace DevExpress.ui
* @public
*/
selectItem(itemElement: Element): void;
/**
* @docid dxListMethods.selectItem
* @publicName selectItem(itemIndex)
* @param1 itemIndex:Number|Object
* @prevFileNamespace DevExpress.ui
* @public
*/
selectItem(itemIndex: number | any): void;
/**
* @docid dxListMethods.unselectAll
* @publicName unselectAll()
* @prevFileNamespace DevExpress.ui
* @public
*/
unselectAll(): void;
/**
* @docid dxListMethods.unselectItem
* @publicName unselectItem(itemElement)
* @param1 itemElement:Node
* @prevFileNamespace DevExpress.ui
* @public
*/
unselectItem(itemElement: Element): void;
/**
* @docid dxListMethods.unselectItem
* @publicName unselectItem(itemIndex)
* @param1 itemIndex:Number|Object
* @prevFileNamespace DevExpress.ui
* @public
*/
unselectItem(itemIndex: number | any): void;
/**
* @docid dxListMethods.updateDimensions
* @publicName updateDimensions()
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
updateDimensions(): Promise<void> & JQueryPromise<void>;
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxListItem extends CollectionWidgetItem {
/**
* @docid dxListItem.badge
* @type String
* @prevFileNamespace DevExpress.ui
* @public
*/
badge?: string;
/**
* @docid dxListItem.icon
* @type String
* @prevFileNamespace DevExpress.ui
* @public
*/
icon?: string;
/**
* @docid dxListItem.key
* @type String
* @prevFileNamespace DevExpress.ui
* @public
*/
key?: string;
/**
* @docid dxListItem.showChevron
* @type boolean
* @prevFileNamespace DevExpress.ui
* @public
*/
showChevron?: boolean;
}
declare global {
interface JQuery {
dxList(): JQuery;
dxList(options: "instance"): dxList;
dxList(options: string): any;
dxList(options: string, ...params: any[]): any;
dxList(options: dxListOptions): JQuery;
}
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type Options = dxListOptions;
/** @deprecated use Options instead */
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type IOptions = dxListOptions;