{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import type { RefObject } from \"react\";\r\nimport { createElement } from \"react\";\r\nimport { DatePicker as DatePickerApp } from \"../../components/datePicker\";\r\nimport type { IDatePickerRef } from \"../../components/datePicker/config/types\";\r\nimport { constants } from \"../../constants\";\r\nimport { Collection } from \"../collection\";\r\nimport type { TCollectionElement, TCollectionItemDefaultCfg } from \"../collection\";\r\nimport { CollectionReactItem } from \"../collectionReactItem\";\r\nimport type { TValidationEvent } from \"../forms/validation\";\r\n\r\ntype TCollectionArgs = [ string, typeof DatePicker, boolean? ];\r\n\r\n/**\r\n * Класс для рендеринга элемента коллекции календарей статичной верстки\r\n */\r\nexport class DatePicker extends CollectionReactItem {\r\n\r\n  constructor(el: TCollectionElement, params: TCollectionItemDefaultCfg = {}) {\r\n    super(el as HTMLElement, DatePickerCollection.selector, params);\r\n    this.render();\r\n    this.#bindEvents();\r\n  }\r\n\r\n  render() {\r\n    this.onBeforeMount();\r\n    this.root.render(createElement(DatePickerApp, {\r\n      ref: this.ref as RefObject<IDatePickerRef | null>,\r\n      onUnmount: this.onUnmount.bind(this),\r\n      onMount: this.onMount.bind(this),\r\n      ...this.cfg,\r\n    }));\r\n  }\r\n\r\n  #onValidation({ detail }: TValidationEvent) {\r\n    if (detail.updateValidationUI) {\r\n      detail.updateValidationUI();\r\n    }\r\n  }\r\n\r\n  #bindEvents() {\r\n    this.instance.addEventListener(constants.formBubbles.inputInvalid, (e: Event) => this.#onValidation(e as TValidationEvent));\r\n    this.instance.addEventListener(constants.formBubbles.inputValid, (e: Event) => this.#onValidation(e as TValidationEvent));\r\n  }\r\n\r\n}\r\n\r\n/**\r\n * Плагин для автоматического рендера календарей. Является коллекцией.\r\n * @module DatePickerCollection\r\n * @memberof Collection\r\n * @example\r\n * // <div data-js-datepicker='{}'><div>\r\n */\r\nexport class DatePickerCollection extends Collection {\n\n  /**\n   * Признак регистрации коллекции в глобальном namespace Core.\n   * @type {boolean}\n   */\n  static isApp = true;\n\n  /**\n   * CSS-селектор контейнеров DatePicker для автоподключения коллекции.\n   * @type {string}\n   */\n  static selector = \"[data-js-datepicker]\";\n\r\n  constructor(...args: TCollectionArgs) {\r\n    const defaultArgs: TCollectionArgs = [ DatePickerCollection.selector, DatePicker, true ];\r\n    const finalArgs = args.length ? args : defaultArgs;\r\n    super(...finalArgs);\r\n  }\r\n\r\n}\r\n"],"names":["DatePicker","CollectionReactItem","constructor","el","params","super","DatePickerCollection","selector","this","render","bindEvents","onBeforeMount","root","createElement","DatePickerApp","ref","onUnmount","bind","onMount","cfg","onValidation","detail","updateValidationUI","instance","addEventListener","constants","formBubbles","inputInvalid","e","inputValid","Collection","static","args","defaultArgs","finalArgs","length"],"mappings":";;;GAeO,MAAMA,mBAAmBC,oBAE9B,WAAAC,CAAYC,GAAwBC,OAAoC,IACtEC,MAAMF,GAAmBG,qBAAqBC,SAAUH,QACxDI,KAAKC,SACLD,MAAKE,YACP,CAEA,MAAAD,GACED,KAAKG,gBACLH,KAAKI,KAAKH,OAAOI,cAAcC,aAAe,CAC5CC,IAAKP,KAAKO,IACVC,UAAWR,KAAKQ,UAAUC,KAAKT,MAC/BU,QAASV,KAAKU,QAAQD,KAAKT,SACxBA,KAAKW,MAEZ,CAEA,aAAAC,EAAcC,OAAEA,SACd,GAAIA,OAAOC,mBACTD,OAAOC,oBAEX,CAEA,WAAAZ,GACEF,KAAKe,SAASC,iBAAiBC,UAAUC,YAAYC,aAAeC,GAAapB,MAAKY,aAAcQ,IACpGpB,KAAKe,SAASC,iBAAiBC,UAAUC,YAAYG,WAAaD,GAAapB,MAAKY,aAAcQ,GACpG;;;;;;;GAWK,MAAMtB,6BAA6BwB;;;;;AAMxCC,aAAe;;;;;AAMfA,gBAAkB,uBAElB,WAAA7B,IAAe8B,MACb,MAAMC,YAA+B,CAAE3B,qBAAqBC,SAAUP,WAAY,MAClF,MAAMkC,UAAYF,KAAKG,OAASH,KAAOC,YACvC5B,SAAS6B,UACX"}