/**@jsxImportSource react */ import { Instance } from "../ui/Instance"; import type { RenderingContext } from "../ui/RenderingContext"; import { GroupAdapter, GroupingConfig } from "../ui/adapter/GroupAdapter"; import { Container, StyledContainerBase, StyledContainerConfig } from "../ui/Container"; import { Selection } from "../ui/selection/Selection"; import { Widget } from "../ui/Widget"; import { BooleanProp, ClassProp, CollatorOptions, Prop, RecordAlias, StringProp, StructuredProp, StyleProp } from "../ui/Prop"; import { Create } from "../util/Component"; export interface ListConfig extends StyledContainerConfig { /** An array of records to be displayed in the list. */ records?: Prop; /** Record alias. Default is `$record`. */ recordName?: RecordAlias; /** Record alias. Alias for `recordName`. Default is `$record`. */ recordAlias?: RecordAlias; /** Index alias. Default is `$index`. */ indexName?: RecordAlias; /** Index alias. Alias for `indexName`. Default is `$index`. */ indexAlias?: RecordAlias; /** Style to be applied to each list item. */ itemStyle?: StyleProp; /** CSS class to be applied to each list item. */ itemClass?: ClassProp; /** CSS class to be applied to each list item. */ itemClassName?: ClassProp; /** Text to be displayed when the list is empty. */ emptyText?: StringProp; /** A grouping definition, field name, or an array of grouping level definitions. */ grouping?: string | GroupingConfig | (string | GroupingConfig)[]; /** Base CSS class to be applied to the element. Default is 'list'. */ baseClass?: string; /** Set to `true` to allow focus on the list. */ focusable?: BooleanProp; /** Boolean for focus state. */ focused?: BooleanProp; /** Boolean for item padding. */ itemPad?: BooleanProp; /** Set to `true` to enable row caching. */ cached?: BooleanProp; /** Selection configuration. */ selection?: StructuredProp; /** Parameters that affect filtering. */ filterParams?: StructuredProp; /** Callback to create a filter function for given filter params. */ onCreateFilter?: (filterParams: any, instance?: Instance) => (record: T) => boolean; /** Scroll selection into the view. Default value is false. */ scrollSelectionIntoView?: BooleanProp; /** Options for data sorting. */ sortOptions?: CollatorOptions; /** Parameter for disabling specific items. */ itemDisabled?: BooleanProp; /** Automatic selection without cursor navigation. */ selectMode?: BooleanProp; /** Tab key selects item under cursor. */ selectOnTab?: BooleanProp; /** Callback invoked during scrolling. */ onScroll?: string | ((event: Event, instance: Instance) => void); /** Callback for item click. */ onItemClick?: string | ((e: React.MouseEvent, instance: Instance) => void); /** Callback for item double click. */ onItemDoubleClick?: string | ((e: React.MouseEvent, instance: Instance) => void); /** Callback for keyboard down events. */ pipeKeyDown?: string | ((handler: ((e: React.KeyboardEvent) => void) | null, instance: Instance) => void); /** A field used to get the unique identifier of the record. */ keyField?: string; /** Data adapter used to convert data in list of records. Used to enable grouping and tree operations. */ dataAdapter?: Create; } export declare class List extends StyledContainerBase { constructor(config?: ListConfig); recordAlias?: string; recordName: string; indexAlias?: string; indexName: string; adapter: GroupAdapter; child: ListItem; selection: Selection; itemClass?: string; itemClassName?: string; itemStyle?: string; itemDisabled?: boolean; item?: Widget; layout?: any; keyField?: string; records?: any[]; sortOptions?: any; grouping?: string | GroupingConfig | (string | GroupingConfig)[]; focusable?: boolean; focused?: boolean; itemPad?: boolean; cached?: boolean; scrollSelectionIntoView?: boolean; selectMode?: boolean; selectOnTab?: boolean; pipeKeyDown?: string | ((handler: ((e: React.KeyboardEvent) => void) | null, instance: Instance) => void); autoFocus?: boolean; baseClass: string; filter?: (item: unknown, filterParams: Record) => boolean; onCreateFilter?: (filterParams: Record, instance: Instance) => (record: unknown) => boolean; onItemClick?: (e: React.MouseEvent, instance: Instance) => void; onItemDoubleClick?: (e: React.MouseEvent, instance: Instance) => void; onKeyDown?: (e: React.KeyboardEvent, instance: Instance) => void; onScroll?: (event: Event, instance: Instance) => void; onFocus?: (event: FocusEvent, instance: Instance) => void; onBlur?: (event: FocusEvent, instance: Instance) => void; onMouseLeave?: (event: React.MouseEvent, instance: Instance) => void; onMouseEnter?: (event: React.MouseEvent, instance: Instance) => void; onMouseMove?: (event: React.MouseEvent, instance: Instance) => void; onMouseUp?: (event: React.MouseEvent, instance: Instance) => void; onMouseDown?: (event: React.MouseEvent, instance: Instance) => void; onMouseOver?: (event: React.MouseEvent, instance: Instance) => void; onMouseOut?: (event: React.MouseEvent, instance: Instance) => void; init(): void; initInstance(context: RenderingContext, instance: Instance): void; declareData(): void; prepareData(context: RenderingContext, instance: Instance): void; applyParentStore(instance: Instance): void; explore(context: RenderingContext, instance: Instance): void; render(context: RenderingContext, instance: Instance, key: string): React.ReactNode; groupBy(grouping: string | GroupingConfig | (string | GroupingConfig)[]): void; } declare class ListItem extends Container { declareData(...args: Record[]): void; } export {}; //# sourceMappingURL=List.d.ts.map