{"version":3,"file":"popover.mjs","sources":["../../src/components/popover.ts"],"sourcesContent":["/* Native JavaScript for Bootstrap 5 | Popover\n---------------------------------------------- */\nimport { focus, getInstance, ObjectAssign } from \"@thednp/shorty\";\n\nimport dataBsToggle from \"~/strings/dataBsToggle\";\nimport popoverString from \"~/strings/popoverString\";\nimport popoverComponent from \"~/strings/popoverComponent\";\n\nimport getTipTemplate from \"~/util/getTipTemplate\";\nimport styleTip from \"~/util/styleTip\";\nimport tooltipDefaults from \"~/util/tooltipDefaults\";\nimport Tooltip from \"./tooltip\";\n\nimport type { PopoverOptions /* , PopoverEvent */ } from \"~/interface/popover\";\n\n// POPOVER PRIVATE GC\n// ==================\nconst popoverSelector =\n  `[${dataBsToggle}=\"${popoverString}\"],[data-tip=\"${popoverString}\"]`;\n\nconst popoverDefaults: PopoverOptions = ObjectAssign({}, tooltipDefaults, {\n  template: getTipTemplate(popoverString),\n  content: \"\",\n  dismissible: false,\n  btnClose:\n    '<button class=\"btn-close position-absolute top-0 end-0 m-1\" aria-label=\"Close\"></button>',\n});\n\n/**\n * Static method which returns an existing `Popover` instance associated\n * to a target `Element`.\n */\nconst getPopoverInstance = (element: Element) =>\n  getInstance<Popover>(element, popoverComponent);\n\n/**\n * A `Popover` initialization callback.\n */\nconst popoverInitCallback = (element: Element) => new Popover(element);\n\n// POPOVER DEFINITION\n// ==================\n/** Returns a new `Popover` instance. */\nexport default class Popover extends Tooltip {\n  static selector = popoverSelector;\n  static init = popoverInitCallback;\n  static getInstance = getPopoverInstance;\n  static styleTip = styleTip;\n  declare options: PopoverOptions;\n\n  /**\n   * @param target the target element\n   * @param config the instance options\n   */\n  constructor(target: Element | string, config?: Partial<PopoverOptions>) {\n    super(target, config);\n  }\n  /**\n   * Returns component name string.\n   */\n  get name() {\n    return popoverComponent;\n  }\n  /**\n   * Returns component default options.\n   */\n  get defaults() {\n    return popoverDefaults;\n  }\n\n  /* extend original `show()` */\n  show = () => {\n    super.show();\n    // btn only exists within dismissible popover\n    const { options, btn } = this;\n    // istanbul ignore else @preserve\n    if (options.dismissible && btn) setTimeout(() => focus(btn), 17);\n  };\n}\n"],"names":["popoverSelector","dataBsToggle","popoverString","popoverDefaults","ObjectAssign","tooltipDefaults","getTipTemplate","getPopoverInstance","element","getInstance","popoverComponent","popoverInitCallback","Popover","Tooltip","styleTip","target","config","options","btn","focus"],"mappings":";;;AAgBA,MAAMA,IACJ,IAAIC,CAAY,KAAKC,CAAa,iBAAiBA,CAAa,MAE5DC,IAAkCC,EAAa,CAAC,GAAGC,GAAiB;AAAA,EACxE,UAAUC,EAAeJ,CAAa;AAAA,EACtC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UACE;AACJ,CAAC,GAGKK,IAAqB,CAACC,MAC1BC,EAAqBD,GAASE,CAAgB,GAG1CC,IAAsB,CAACH,MAAqB,IAAII,EAAQJ,CAAO;AAKrE,MAAqBI,UAAgBC,EAAQ;AAAA,EAC3C,OAAO,WAAWb;AAAA,EAClB,OAAO,OAAOW;AAAA,EACd,OAAO,cAAcJ;AAAA,EACrB,OAAO,WAAWO;AAAA,EAIlB,YAAYC,GAA0BC,GAAkC;AACtE,UAAMD,GAAQC,CAAM;AAAA,EAAA;AAAA,EAGtB,IAAI,OAAO;AACF,WAAAN;AAAA,EAAA;AAAA,EAGT,IAAI,WAAW;AACN,WAAAP;AAAA,EAAA;AAAA,EAIT,OAAO,MAAM;AACX,UAAM,KAAK;AAEL,UAAA,EAAE,SAAAc,GAAS,KAAAC,EAAA,IAAQ;AAErB,IAAAD,EAAQ,eAAeC,KAAK,WAAW,MAAMC,EAAMD,CAAG,GAAG,EAAE;AAAA,EACjE;AACF;"}