framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
102 lines (93 loc) • 4.67 kB
TypeScript
import { Dom7Array } from 'dom7';
import Framework7, {
CSSSelector,
Framework7EventsClass,
Framework7Plugin,
} from '../app/app-class.js';
export namespace ListIndex {
interface ListIndex extends Framework7EventsClass<Events> {
/** Link to global app instance */
app: Framework7;
/** List index HTML element */
el: HTMLElement;
/** Dom7 instance with list index HTML element */
$el: Dom7Array;
/** Dynamically created inner <ul> HTML element */
ul: HTMLElement;
/** Dom7 instance with dynamically created inner <ul> HTML element */
$ul: Dom7Array;
/** Related List HTML element, passed in listEl parameter */
listEl: HTMLElement;
/** Dom7 instance with related List HTML element, passed in listEl parameter */
$listEl: Dom7Array;
/** Array with calculated indexes */
indexes: number[];
/** List index parameters */
params: Parameters;
/** Recalculates indexes, sizes and rerenders list index */
update(): ListIndex;
/** Scrolls related list to specified index content */
scrollToList(itemContent: string): ListIndex;
/** Destroys list index instance */
destroy(): void;
}
interface Parameters {
/** List Index element. HTMLElement or string with CSS selector of list index element. */
el?: HTMLElement | CSSSelector;
/** Related List View element. HTMLElement or string with CSS selector of List View element. */
listEl?: HTMLElement | CSSSelector;
/** Array with indexes. If not passed then it will automatically generate it based on list-group-title elements inside of passed List View element in listEl parameter. (default auto) */
indexes?: string[] | string; // ??
/** Will automatically scroll related List View to the selected index. (default true) */
scrollList?: boolean;
/** Enables label bubble with selected index when you swipe over list index. (default false) */
label?: boolean;
/** Single index item height. It is required to calculate dynamic index and how many indexes fit on the screen. For iOS theme. (default 14) */
iosItemHeight?: number;
/** Single index item height. It is required to calculate dynamic index and how many indexes fit on the screen. For MD theme. (default 14) */
mdItemHeight?: number;
/** Object with events handlers.. */
on: {
[event in keyof Events]?: Events[event];
};
}
interface Events {
/** Event will be triggered on index select rather by click or swiping. As an argument event handler receives list index instance and selected index item content */
select(listIndex: ListIndex, itemContent: string, itemIndex: number): void;
/** Event will be triggered on index click. As an argument event handler receives list index instance and clicked index item content */
click(listIndex: ListIndex, itemContent: string, itemIndex: number): void;
/** Event will be triggered right before List Index instance will be destroyed. As an argument event handler receives list index instance */
beforeDestroy(listIndex: ListIndex): void;
}
interface DomEvents {
/** Event will be triggered on index select rather by click or swiping */
'listindex:select': () => void;
/** Event will be triggered on index click */
'listindex:click': () => void;
/** Event will be triggered right before List Index instance will be destroyed */
'listindex:beforedestroy': () => void;
}
interface AppMethods {
listIndex: {
/** create ListIndex instance */
create(parameters: Parameters): ListIndex;
/** destroy ListIndex instance */
destroy(el: HTMLElement | CSSSelector | ListIndex): void;
/** get ListIndex instance by HTML element */
get(el: HTMLElement | CSSSelector): ListIndex;
};
}
interface AppParams {
listIndex?: Parameters | undefined;
}
interface AppEvents {
/** Event will be triggered on index select rather by click or swiping. As an argument event handler receives list index instance and selected index item content */
listIndexSelect(listIndex: ListIndex, itemContent: string, itemIndex: number): void;
/** Event will be triggered on index click. As an argument event handler receives list index instance and clicked index item content */
listIndexClick(listIndex: ListIndex, itemContent: string, itemIndex: number): void;
/** Event will be triggered right before List Index instance will be destroyed. As an argument event handler receives list index instance */
listIndexBeforeDestroy(listIndex: ListIndex): void;
}
}
declare const ListIndexComponent: Framework7Plugin;
export default ListIndexComponent;