jenesius-vue-form
Version:
Heavy form system for Vue.js
24 lines (23 loc) • 1.07 kB
TypeScript
import Form from "./Form";
/**
* @description Класс для работы с зависимыми элементами формы. Основная задача - поддержание целостности.
* При добавлении элемента устанавливается значение родителя, а также добавление в массив.
* При удалении значение родителя сбрасывается.
* */
export default class DependencyQueue<T extends (DependencyItem & Record<string, any>)> {
private array;
private readonly form;
constructor(form: Form);
add(object: T): void;
remove(object: T): void;
find(expression: (elem: T, index: number) => boolean): T | undefined;
forEach(callback: (elem: T) => void): void;
get length(): number;
includes(elem: T): boolean;
reduce<U>(callback: (acc: U, elem: T) => U, defaultAcc: U): U;
}
export interface DependencyItem {
parent?: Form | undefined;
name?: string;
dispatchEvent?: any;
}