{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import { getDocument } from \"ssr-window\";\r\nimport type { TStaticElementCfg } from \"../../utils/getCfg\";\r\nimport { getCfg } from \"../../utils/getCfg\";\r\nimport type { TCollectionItemDefaultCfg } from \"../collection\";\r\n\r\n/**\r\n * Factory. Подходит в ситуациях, компонент выводится на страницу единожды без добавления в коллекцию, добавляя лишь `instance`, `cfg` и автоматически вызывая метод `init`, если элемент был найден.\r\n * @module StandaloneItem\r\n * @param selector{String} передаваемый селектор элемента\r\n * @param defaultCfg{Object=} конфигурация плагина по умолчанию\r\n * @example import { StandaloneItem } from \"@delement/ui/plugins\"\r\n *\r\n * class MyPlugin extends StandaloneItem {\r\n *\r\n *   static selector = \"[data-js-MyPlugin]\";\r\n *\r\n *   static defaultCfg = {}\r\n *\r\n *   constructor() {\r\n *     super(MyPlugin.selector, MyPlugin.defaultCfg);\r\n *     // console.debug(this.instance, this.cfg, this.init);\r\n *   }\r\n *\r\n *   init() {\r\n *     // вызывается автоматически, если элемент найден на странице\r\n *   }\r\n *\r\n * }\r\n */\r\nclass StandaloneItem<T extends TCollectionItemDefaultCfg = TCollectionItemDefaultCfg> {\r\n\r\n  instance: HTMLElement | null;\r\n\r\n  cfg: TStaticElementCfg<T>;\r\n\r\n  constructor(selector: string, defaultCfg: T = {} as T) {\r\n    const element = getDocument().querySelector(selector);\r\n    this.instance = element as HTMLElement | null;\r\n    if (this.instance) {\r\n      this.cfg = getCfg<T>(this.instance, selector, defaultCfg);\r\n      // Микротаска для корректной инициализации полей наследуемого класса\r\n      queueMicrotask(() => this.init());\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Инициализатор, вызываемый если элемент найден на странице\r\n   */\r\n  init() {\r\n  }\r\n\r\n}\r\n\r\nexport { StandaloneItem };\r\n"],"names":["StandaloneItem","instance","cfg","constructor","selector","defaultCfg","element","getDocument","querySelector","this","getCfg","queueMicrotask","init"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;GA6BA,MAAMA,eAEJC,SAEAC,IAEA,WAAAC,CAAYC,SAAkBC,WAAgB,IAC5C,MAAMC,QAAUC,cAAcC,cAAcJ,UAC5CK,KAAKR,SAAWK,QAChB,GAAIG,KAAKR,SAAU,CACjBQ,KAAKP,IAAMQ,OAAUD,KAAKR,SAAUG,SAAUC;oEAE9CM;eAAe,IAAMF,KAAKG,OAC5B,CACF;;;KAKA,IAAAA,GACA"}