Spaces:
Running
Running
| /** | |
| * -------------------------------------------------------------------------- | |
| * Bootstrap (v5.1.3): popover.js | |
| * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) | |
| * -------------------------------------------------------------------------- | |
| */ | |
| import { | |
| defineJQueryPlugin | |
| } from './util/index' | |
| import Tooltip from './tooltip' | |
| /** | |
| * ------------------------------------------------------------------------ | |
| * Constants | |
| * ------------------------------------------------------------------------ | |
| */ | |
| const NAME = 'popover' | |
| const DATA_KEY = 'bs.popover' | |
| const EVENT_KEY = `.${DATA_KEY}` | |
| const CLASS_PREFIX = 'bs-popover' | |
| const Default = { | |
| ...Tooltip.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.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 SELECTOR_TITLE = '.popover-header' | |
| const SELECTOR_CONTENT = '.popover-body' | |
| /** | |
| * ------------------------------------------------------------------------ | |
| * Class Definition | |
| * ------------------------------------------------------------------------ | |
| */ | |
| class Popover extends Tooltip { | |
| // 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(tip) { | |
| this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE) | |
| this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT) | |
| } | |
| // Private | |
| _getContent() { | |
| return this._resolvePossibleFunction(this._config.content) | |
| } | |
| _getBasicClassPrefix() { | |
| return CLASS_PREFIX | |
| } | |
| // Static | |
| static jQueryInterface(config) { | |
| return this.each(function() { | |
| const data = Popover.getOrCreateInstance(this, config) | |
| 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) | |
| export default Popover |