diff options
author | Mario <mario@mariovavti.com> | 2021-07-29 09:31:47 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2021-07-29 09:31:47 +0000 |
commit | cb57c4ea188b982119f515f043a72f037f943025 (patch) | |
tree | 11144c1107f16047ed37f543fc34859d0c649e08 /vendor/twbs/bootstrap/js/dist/popover.js | |
parent | c6133d2558ce29e44342fa7be8bb65e0059aea02 (diff) | |
parent | b7ffec6fbe77eff3c550a922f50bd79321b293ed (diff) | |
download | volse-hubzilla-cb57c4ea188b982119f515f043a72f037f943025.tar.gz volse-hubzilla-cb57c4ea188b982119f515f043a72f037f943025.tar.bz2 volse-hubzilla-cb57c4ea188b982119f515f043a72f037f943025.zip |
Merge branch 'bs5' into 'dev'
Update to bootstrap 5 and implement next generation app menu (work in progress)
See merge request hubzilla/core!1980
Diffstat (limited to 'vendor/twbs/bootstrap/js/dist/popover.js')
-rw-r--r-- | vendor/twbs/bootstrap/js/dist/popover.js | 297 |
1 files changed, 137 insertions, 160 deletions
diff --git a/vendor/twbs/bootstrap/js/dist/popover.js b/vendor/twbs/bootstrap/js/dist/popover.js index 04cc5df73..0fc0ec4b7 100644 --- a/vendor/twbs/bootstrap/js/dist/popover.js +++ b/vendor/twbs/bootstrap/js/dist/popover.js @@ -1,238 +1,215 @@ /*! - * Bootstrap popover.js v4.6.0 (https://getbootstrap.com/) + * Bootstrap popover.js v5.0.2 (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('jquery'), require('./tooltip.js')) : - typeof define === 'function' && define.amd ? define(['jquery', './tooltip'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.jQuery, global.Tooltip)); -}(this, (function ($, Tooltip) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./tooltip.js')) : + typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './tooltip'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.SelectorEngine, global.Tooltip)); +}(this, (function (SelectorEngine, Tooltip) { 'use strict'; function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip); - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); + const getjQuery = () => { + const { + jQuery + } = window; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } + return null; + }; - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; + const DOMContentLoadedCallbacks = []; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } + const onDOMContentLoaded = callback => { + if (document.readyState === 'loading') { + // add listener on the first call when the document is in loading state + if (!DOMContentLoadedCallbacks.length) { + document.addEventListener('DOMContentLoaded', () => { + DOMContentLoadedCallbacks.forEach(callback => callback()); + }); } - return target; - }; - - return _extends.apply(this, arguments); - } + DOMContentLoadedCallbacks.push(callback); + } else { + callback(); + } + }; - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } + 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.2): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME = 'popover'; - var VERSION = '4.6.0'; - var DATA_KEY = 'bs.popover'; - var EVENT_KEY = "." + DATA_KEY; - var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; - var CLASS_PREFIX = 'bs-popover'; - var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - - var Default = _extends({}, Tooltip__default['default'].Default, { + 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="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' - }); - - var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, { + 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)' - }); - - var CLASS_NAME_FADE = 'fade'; - var CLASS_NAME_SHOW = 'show'; - var SELECTOR_TITLE = '.popover-header'; - var SELECTOR_CONTENT = '.popover-body'; - var 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 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 * ------------------------------------------------------------------------ */ - var Popover = /*#__PURE__*/function (_Tooltip) { - _inheritsLoose(Popover, _Tooltip); + class Popover extends Tooltip__default['default'] { + // Getters + static get Default() { + return Default; + } - function Popover() { - return _Tooltip.apply(this, arguments) || this; + static get NAME() { + return NAME; } - var _proto = Popover.prototype; + static get Event() { + return Event; + } - // Overrides - _proto.isWithContent = function isWithContent() { + static get DefaultType() { + return DefaultType; + } // Overrides + + + isWithContent() { return this.getTitle() || this._getContent(); - }; + } - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); - }; + getTipElement() { + if (this.tip) { + return this.tip; + } + + this.tip = super.getTipElement(); + + if (!this.getTitle()) { + SelectorEngine__default['default'].findOne(SELECTOR_TITLE, this.tip).remove(); + } + + if (!this._getContent()) { + SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, this.tip).remove(); + } - _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; - }; + } - _proto.setContent = function setContent() { - var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events + setContent() { + const tip = this.getTipElement(); // we use append for html objects to maintain js events - this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); + this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle()); - var content = this._getContent(); + let content = this._getContent(); if (typeof content === 'function') { - content = content.call(this.element); + content = content.call(this._element); } - this.setElementContent($tip.find(SELECTOR_CONTENT), content); - $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); + this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content); + tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW); } // Private - ; - _proto._getContent = function _getContent() { - return this.element.getAttribute('data-content') || this.config.content; - }; - _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $__default['default'](this.getTipElement()); - var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); + _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) { - $tip.removeClass(tabClass.join('')); + tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); } } // Static - ; - - Popover._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $__default['default'](this).data(DATA_KEY); - var _config = typeof config === 'object' ? config : null; - if (!data && /dispose|hide/.test(config)) { - return; - } - - if (!data) { - data = new Popover(this, _config); - $__default['default'](this).data(DATA_KEY, data); - } + 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 + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } }); - }; - - _createClass(Popover, null, [{ - key: "VERSION", - // Getters - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }, { - key: "NAME", - get: function get() { - return NAME; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY; - } - }, { - key: "Event", - get: function get() { - return Event; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType; - } - }]); + } - return Popover; - }(Tooltip__default['default']); + } /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .Popover to jQuery only if jQuery is present */ - $__default['default'].fn[NAME] = Popover._jQueryInterface; - $__default['default'].fn[NAME].Constructor = Popover; - - $__default['default'].fn[NAME].noConflict = function () { - $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; - return Popover._jQueryInterface; - }; + defineJQueryPlugin(Popover); return Popover; |