import EventScope from "@web-atoms/core/dist/core/EventScope"; import XNode from "@web-atoms/core/dist/core/XNode"; import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl"; import { IDialogOptions } from "@web-atoms/core/dist/web/services/PopupService"; import MergeNode from "./MergeNode"; import "./styles/popup.global.css"; import "./styles/suggestion-popup.global.css"; import "./styles/repeater.global.css"; export interface IItemPair { parent: ParentItem; child: ChildItem; } export type IRepeaterItemInfo = [string, AtomRepeater, any, number, HTMLElement] | undefined; export declare const getParentRepeaterItem: (target: HTMLElement) => IRepeaterItemInfo; export type Match = (text: string) => (item: T) => boolean; export type IAskSuggestion = (items: T[], itemRenderer: (item: T) => XNode, match: Match) => any; export declare const MatchTrue: (...a: any[]) => boolean; export declare const MatchFalse: (...a: any[]) => boolean; export declare const ArrowToString: (item: any) => any; export declare const MatchCaseInsensitive: (textField?: (item: any) => string) => (s: string) => (...a: any[]) => boolean; export declare const MatchAnyCaseInsensitive: (textField?: (item: any) => string) => (s: string) => (...a: any[]) => boolean; export declare const SameObjectValue: (item: any) => any; /** * Asks user for selecting item from given suggestions * @param items items to display * @param itemRenderer render function * @param match search match * @returns selected item */ export declare function askSuggestion(items: T[], itemRenderer: (item: T, index: number, repeater: AtomRepeater) => XNode, match: Match, options: IDialogOptions): Promise; /** * Asks user for selecting item from given suggestions * @param items items to display * @param itemRenderer render function * @param match search match * @returns selected item */ export declare function askSuggestionPopup(opener: AtomRepeater & { search: string; }, items: T[], itemRenderer: (item: T, index: number, repeater: AtomRepeater) => XNode, match: Match, selectedItem: T): Promise; export interface ISelectorCheckBox { text?: string; iconSelected?: string; icon?: string; [key: string]: any; } export declare function SelectorCheckBox({ text, icon, iconSelected, ...a }: ISelectorCheckBox, ...nodes: XNode[]): any; export interface ISelectAll extends ISelectorCheckBox { items: any[]; selectedItems: any[]; } export declare function SelectAll({ text, icon, iconSelected, ...a }: ISelectAll, ...nodes: XNode[]): any; export declare function disposeChildren(owner: AtomControl, e: HTMLElement): void; export declare function disposeChild(owner: AtomControl, e: HTMLElement): void; export declare function defaultComparer(left: T, right: T): boolean; export default class AtomRepeater extends AtomControl { static from(element: any): TR; static itemFromElement(e: HTMLElement, ar?: AtomRepeater): { recreate: string; header: string; footer: string; itemPath: string; itemIndex: string; item: any; nestedItem: any; clickEvent: string; target: HTMLElement; }; "event-item-click"?: (e: CustomEvent) => void; "event-item-select"?: (e: CustomEvent) => void; "event-item-deselect"?: (e: CustomEvent) => void; "data-items-updated-event"?: string; "data-selection-updated-event"?: string; "event-items-updated"?: (e: CustomEvent<{ type: string; items: any[]; }>) => void; "event-selection-updated"?: (e: CustomEvent) => void; bubbleEvents: boolean; allowMultipleSelection: boolean; selectOnClick: any; selectedItems: T[]; itemsPresenter: any; items: T[]; watch: any; visibilityFilter: (item: T) => boolean; enableFunc: (item: T) => boolean; itemRenderer: (item: T, index: number, repeater: AtomRepeater) => XNode; valuePath: (a: T) => any; comparer: (left: T, right: T) => boolean; deferUpdates: boolean; header: any; headerRenderer: any; footer: any; footerRenderer: any; enableDragDrop: any; orderBy: any; itemTag: string; set refreshEventScope(v: EventScope); get allSelected(): boolean; get value(): any; set value(v: any); get selectedItem(): T; set selectedItem(value: T); scrollToSelection: boolean; mergeOnRefresh: boolean; protected footerPresenter: HTMLElement; protected headerPresenter: HTMLElement; private footerElement; private headerElement; private initialValue; private itemsDisposable; private selectedItemsDisposable; private deferredUpdateId; private bringIntoViewId; onPropertyChanged(name: string): void; bringSelectionIntoView(force?: boolean): void; forEach(action: (item: T, element: HTMLElement) => void, container?: HTMLElement): void; any(fx?: (item: any) => boolean, itemSelector?: string, container?: HTMLElement): Generator<{ item: T; element: HTMLElement; }, void, unknown>; all(container?: HTMLElement): Generator<{ item: T; element: HTMLElement; }, void, unknown>; elementAt(index: number, container?: HTMLElement): HTMLElement; elementForItem(itemToFind: any, container?: HTMLElement): HTMLElement; refreshItem(item: any, fx?: Promise | any, index?: number): void; mergeItem(index: number, m: MergeNode): void; updatePartial(key: any, index: any, item: any, container?: HTMLElement): void; updateItems(container?: HTMLElement, force?: boolean): void; protected render(node: XNode, e?: any, creator?: any): void; protected preCreate(): void; protected dispatchCustomEvent(type: string, detail: any): void; protected updateClasses(): void; protected updateVisibility(): void; protected updateHeaderFooter(name: any, presenter: HTMLElement, item: any, itemRenderer: (i: any) => XNode, insert?: boolean): void; protected dispatchHeaderFooterEvent(eventName: any, type: any, recreate: any, originalTarget: any): void; protected dispatchItemEvent(eventName: any, item: any, recreate: any, originalTarget: any, nestedItem?: any): void; protected dispatchClickEvent(e: MouseEvent, data: any): void; } //# sourceMappingURL=AtomRepeater.d.ts.map