text: /*!
    * Bootstrap popover.js v5.0.1 (https://getbootstrap.com/)
    * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
    * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
    */
  (function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/data.js'), require('./tooltip.js')) :
    typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/data', './tooltip'], factory) :
    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.SelectorEngine, global.Data, global.Tooltip));
  }(this, (function (SelectorEngine, Data, Tooltip) { 'use strict';
  
    function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
  
    var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
    var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
    var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
  
    const getjQuery = () => {
      const {
        jQuery
      } = window;
  
      if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
        return jQuery;
      }
  
      return null;
    };
  
    const onDOMContentLoaded = callback => {
      if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', callback);
      } else {
        callback();
      }
    };
  
    const defineJQueryPlugin = plugin => {
      onDOMContentLoaded(() => {
        const $ = getjQuery();
        /* istanbul ignore if */
  
        if ($) {
          const name = plugin.NAME;
          const JQUERY_NO_CONFLICT = $.fn[name];
          $.fn[name] = plugin.jQueryInterface;
          $.fn[name].Constructor = plugin;
  
          $.fn[name].noConflict = () => {
            $.fn[name] = JQUERY_NO_CONFLICT;
            return plugin.jQueryInterface;
          };
        }
      });
    };
  
    /**
     * --------------------------------------------------------------------------
     * Bootstrap (v5.0.1): popover.js
     * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
     * --------------------------------------------------------------------------
     */
    /**
     * ------------------------------------------------------------------------
     * Constants
     * ------------------------------------------------------------------------
     */
  
    const NAME = 'popover';
    const DATA_KEY = 'bs.popover';
    const EVENT_KEY = `.${DATA_KEY}`;
    const CLASS_PREFIX = 'bs-popover';
    const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
    const Default = { ...Tooltip__default['default'].Default,
      placement: 'right',
      offset: [0, 8],
      trigger: 'click',
      content: '',
      template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
    };
    const DefaultType = { ...Tooltip__default['default'].DefaultType,
      content: '(string|element|function)'
    };
    const Event = {
      HIDE: `hide${EVENT_KEY}`,
      HIDDEN: `hidden${EVENT_KEY}`,
      SHOW: `show${EVENT_KEY}`,
      SHOWN: `shown${EVENT_KEY}`,
      INSERTED: `inserted${EVENT_KEY}`,
      CLICK: `click${EVENT_KEY}`,
      FOCUSIN: `focusin${EVENT_KEY}`,
      FOCUSOUT: `focusout${EVENT_KEY}`,
      MOUSEENTER: `mouseenter${EVENT_KEY}`,
      MOUSELEAVE: `mouseleave${EVENT_KEY}`
    };
    const CLASS_NAME_FADE = 'fade';
    const CLASS_NAME_SHOW = 'show';
    const SELECTOR_TITLE = '.popover-header';
    const SELECTOR_CONTENT = '.popover-body';
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */
  
    class Popover extends Tooltip__default['default'] {
      // Getters
      static get Default() {
        return Default;
      }
  
      static get NAME() {
        return NAME;
      }
  
      static get Event() {
        return Event;
      }
  
      static get DefaultType() {
        return DefaultType;
      } // Overrides
  
  
      isWithContent() {
        return this.getTitle() || this._getContent();
      }
  
      setContent() {
        const tip = this.getTipElement(); // we use append for html objects to maintain js events
  
        this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
  
        let content = this._getContent();
  
        if (typeof content === 'function') {
          content = content.call(this._element);
        }
  
        this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
        tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
      } // Private
  
  
      _addAttachmentClass(attachment) {
        this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`);
      }
  
      _getContent() {
        return this._element.getAttribute('data-bs-content') || this._config.content;
      }
  
      _cleanTipClass() {
        const tip = this.getTipElement();
        const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
  
        if (tabClass !== null && tabClass.length > 0) {
          tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
        }
      } // Static
  
  
      static jQueryInterface(config) {
        return this.each(function () {
          let data = Data__default['default'].get(this, DATA_KEY);
  
          const _config = typeof config === 'object' ? config : null;
  
          if (!data && /dispose|hide/.test(config)) {
            return;
          }
  
          if (!data) {
            data = new Popover(this, _config);
            Data__default['default'].set(this, DATA_KEY, data);
          }
  
          if (typeof config === 'string') {
            if (typeof data[config] === 'undefined') {
              throw new TypeError(`No method named "${config}"`);
            }
  
            data[config]();
          }
        });
      }
  
    }
    /**
     * ------------------------------------------------------------------------
     * jQuery
     * ------------------------------------------------------------------------
     * add .Popover to jQuery only if jQuery is present
     */
  
  
    defineJQueryPlugin(Popover);
  
    return Popover;
  
  })));
  