import type { TStaticElementCfg } from "../../utils/getCfg"; import { getCfg } from "../../utils/getCfg"; import type { TCollectionItemDefaultCfg } from "../collection"; /** * Factory. Предоставляет готовые поля `instance` и `cfg`. * @module CollectionItem * @param element{Element} передаваемый элемент DOM * @param selector{String=} передаваемый селектор элемента * @param defaultCfg{Object=} конфигурация плагина по умолчанию * @example * import { CollectionItem } from "@delement/ui/plugins" * * class MyPlugin extends CollectionItem { * * constructor(el) { * super(el); * // console.debug(this.instance, this.cfg); * } * * } */ class CollectionItem { instance: HTMLElement; cfg: TStaticElementCfg; constructor(element: HTMLElement, selector = "", defaultCfg: T = {} as T) { this.instance = element; this.cfg = getCfg(this.instance, selector, defaultCfg); } } export { CollectionItem, };