mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-08 22:56:46 +02:00
Prepare v5.1.0. (#34674)
This commit is contained in:
104
js/dist/tooltip.js
vendored
104
js/dist/tooltip.js
vendored
@@ -1,13 +1,13 @@
|
||||
/*!
|
||||
* Bootstrap tooltip.js v5.0.2 (https://getbootstrap.com/)
|
||||
* Bootstrap tooltip.js v5.1.0 (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('@popperjs/core'), require('./dom/selector-engine.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
|
||||
typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/selector-engine', './dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.SelectorEngine, global.Data, global.EventHandler, global.Manipulator, global.Base));
|
||||
}(this, (function (Popper, SelectorEngine, Data, EventHandler, Manipulator, BaseComponent) { 'use strict';
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
|
||||
typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
|
||||
}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
|
||||
|
||||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
||||
|
||||
@@ -32,19 +32,18 @@
|
||||
}
|
||||
|
||||
var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
|
||||
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
||||
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
||||
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
||||
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
||||
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
||||
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v5.0.2): util/index.js
|
||||
* Bootstrap (v5.1.0): util/index.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
const MAX_UID = 1000000;
|
||||
|
||||
const toType = obj => {
|
||||
@@ -88,7 +87,7 @@
|
||||
}
|
||||
|
||||
if (typeof obj === 'string' && obj.length > 0) {
|
||||
return SelectorEngine__default['default'].findOne(obj);
|
||||
return document.querySelector(obj);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -183,7 +182,7 @@
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v5.0.2): util/sanitizer.js
|
||||
* Bootstrap (v5.1.0): util/sanitizer.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -296,7 +295,7 @@
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v5.0.2): tooltip.js
|
||||
* Bootstrap (v5.1.0): tooltip.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -310,7 +309,6 @@
|
||||
const DATA_KEY = 'bs.tooltip';
|
||||
const EVENT_KEY = `.${DATA_KEY}`;
|
||||
const CLASS_PREFIX = 'bs-tooltip';
|
||||
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
|
||||
const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
|
||||
const DefaultType = {
|
||||
animation: 'boolean',
|
||||
@@ -375,6 +373,8 @@
|
||||
const HOVER_STATE_SHOW = 'show';
|
||||
const HOVER_STATE_OUT = 'out';
|
||||
const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
|
||||
const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
|
||||
const EVENT_MODAL_HIDE = 'hide.bs.modal';
|
||||
const TRIGGER_HOVER = 'hover';
|
||||
const TRIGGER_FOCUS = 'focus';
|
||||
const TRIGGER_CLICK = 'click';
|
||||
@@ -463,7 +463,7 @@
|
||||
|
||||
dispose() {
|
||||
clearTimeout(this._timeout);
|
||||
EventHandler__default['default'].off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
|
||||
EventHandler__default['default'].off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
|
||||
|
||||
if (this.tip) {
|
||||
this.tip.remove();
|
||||
@@ -499,8 +499,6 @@
|
||||
|
||||
this._element.setAttribute('aria-describedby', tipId);
|
||||
|
||||
this.setContent();
|
||||
|
||||
if (this._config.animation) {
|
||||
tip.classList.add(CLASS_NAME_FADE);
|
||||
}
|
||||
@@ -517,7 +515,7 @@
|
||||
Data__default['default'].set(tip, this.constructor.DATA_KEY, this);
|
||||
|
||||
if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
|
||||
container.appendChild(tip);
|
||||
container.append(tip);
|
||||
EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);
|
||||
}
|
||||
|
||||
@@ -528,7 +526,8 @@
|
||||
}
|
||||
|
||||
tip.classList.add(CLASS_NAME_SHOW);
|
||||
const customClass = typeof this._config.customClass === 'function' ? this._config.customClass() : this._config.customClass;
|
||||
|
||||
const customClass = this._resolvePossibleFunction(this._config.customClass);
|
||||
|
||||
if (customClass) {
|
||||
tip.classList.add(...customClass.split(' '));
|
||||
@@ -629,14 +628,27 @@
|
||||
|
||||
const element = document.createElement('div');
|
||||
element.innerHTML = this._config.template;
|
||||
this.tip = element.children[0];
|
||||
const tip = element.children[0];
|
||||
this.setContent(tip);
|
||||
tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
|
||||
this.tip = tip;
|
||||
return this.tip;
|
||||
}
|
||||
|
||||
setContent() {
|
||||
const tip = this.getTipElement();
|
||||
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
|
||||
tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
|
||||
setContent(tip) {
|
||||
this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);
|
||||
}
|
||||
|
||||
_sanitizeAndSetContent(template, content, selector) {
|
||||
const templateElement = SelectorEngine__default['default'].findOne(selector, template);
|
||||
|
||||
if (!content && templateElement) {
|
||||
templateElement.remove();
|
||||
return;
|
||||
} // we use append for html objects to maintain js events
|
||||
|
||||
|
||||
this.setElementContent(templateElement, content);
|
||||
}
|
||||
|
||||
setElementContent(element, content) {
|
||||
@@ -650,7 +662,7 @@
|
||||
if (this._config.html) {
|
||||
if (content.parentNode !== element) {
|
||||
element.innerHTML = '';
|
||||
element.appendChild(content);
|
||||
element.append(content);
|
||||
}
|
||||
} else {
|
||||
element.textContent = content.textContent;
|
||||
@@ -671,13 +683,9 @@
|
||||
}
|
||||
|
||||
getTitle() {
|
||||
let title = this._element.getAttribute('data-bs-original-title');
|
||||
const title = this._element.getAttribute('data-bs-original-title') || this._config.title;
|
||||
|
||||
if (!title) {
|
||||
title = typeof this._config.title === 'function' ? this._config.title.call(this._element) : this._config.title;
|
||||
}
|
||||
|
||||
return title;
|
||||
return this._resolvePossibleFunction(title);
|
||||
}
|
||||
|
||||
updateAttachment(attachment) {
|
||||
@@ -694,15 +702,7 @@
|
||||
|
||||
|
||||
_initializeOnDelegatedTarget(event, context) {
|
||||
const dataKey = this.constructor.DATA_KEY;
|
||||
context = context || Data__default['default'].get(event.delegateTarget, dataKey);
|
||||
|
||||
if (!context) {
|
||||
context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
|
||||
Data__default['default'].set(event.delegateTarget, dataKey, context);
|
||||
}
|
||||
|
||||
return context;
|
||||
return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
|
||||
}
|
||||
|
||||
_getOffset() {
|
||||
@@ -721,6 +721,10 @@
|
||||
return offset;
|
||||
}
|
||||
|
||||
_resolvePossibleFunction(content) {
|
||||
return typeof content === 'function' ? content.call(this._element) : content;
|
||||
}
|
||||
|
||||
_getPopperConfig(attachment) {
|
||||
const defaultBsPopperConfig = {
|
||||
placement: attachment,
|
||||
@@ -762,7 +766,7 @@
|
||||
}
|
||||
|
||||
_addAttachmentClass(attachment) {
|
||||
this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`);
|
||||
this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`);
|
||||
}
|
||||
|
||||
_getAttachment(placement) {
|
||||
@@ -789,7 +793,7 @@
|
||||
}
|
||||
};
|
||||
|
||||
EventHandler__default['default'].on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
|
||||
EventHandler__default['default'].on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
|
||||
|
||||
if (this._config.selector) {
|
||||
this._config = { ...this._config,
|
||||
@@ -920,26 +924,32 @@
|
||||
_getDelegateConfig() {
|
||||
const config = {};
|
||||
|
||||
if (this._config) {
|
||||
for (const key in this._config) {
|
||||
if (this.constructor.Default[key] !== this._config[key]) {
|
||||
config[key] = this._config[key];
|
||||
}
|
||||
for (const key in this._config) {
|
||||
if (this.constructor.Default[key] !== this._config[key]) {
|
||||
config[key] = this._config[key];
|
||||
}
|
||||
}
|
||||
} // In the future can be replaced with:
|
||||
// const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
|
||||
// `Object.fromEntries(keysWithDifferentValues)`
|
||||
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
_cleanTipClass() {
|
||||
const tip = this.getTipElement();
|
||||
const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
|
||||
const basicClassPrefixRegex = new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, 'g');
|
||||
const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex);
|
||||
|
||||
if (tabClass !== null && tabClass.length > 0) {
|
||||
tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
|
||||
}
|
||||
}
|
||||
|
||||
_getBasicClassPrefix() {
|
||||
return CLASS_PREFIX;
|
||||
}
|
||||
|
||||
_handlePopperPlacementChange(popperData) {
|
||||
const {
|
||||
state
|
||||
|
Reference in New Issue
Block a user