bootstrap 4.5.0 → 5.0.0.alpha3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/README.md +5 -2
- data/assets/javascripts/bootstrap-sprockets.js +12 -9
- data/assets/javascripts/bootstrap.js +1852 -1266
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/javascripts/bootstrap/alert.js +149 -69
- data/assets/javascripts/bootstrap/button.js +71 -141
- data/assets/javascripts/bootstrap/carousel.js +291 -192
- data/assets/javascripts/bootstrap/collapse.js +285 -161
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +307 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +85 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
- data/assets/javascripts/bootstrap/dropdown.js +240 -218
- data/assets/javascripts/bootstrap/modal.js +342 -234
- data/assets/javascripts/bootstrap/popover.js +82 -106
- data/assets/javascripts/bootstrap/scrollspy.js +154 -114
- data/assets/javascripts/bootstrap/tab.js +166 -80
- data/assets/javascripts/bootstrap/toast.js +171 -113
- data/assets/javascripts/bootstrap/tooltip.js +351 -219
- data/assets/stylesheets/_bootstrap-grid.scss +52 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +5 -2
- data/assets/stylesheets/_bootstrap.scss +16 -9
- data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -9
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -19
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -40
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
- data/assets/stylesheets/bootstrap/_card.scss +30 -97
- data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +52 -8
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +88 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -58
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +14 -5
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -47
- data/assets/stylesheets/bootstrap/_nav.scss +14 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +6 -6
- data/assets/stylesheets/bootstrap/_progress.scss +3 -5
- data/assets/stylesheets/bootstrap/_reboot.scss +310 -171
- data/assets/stylesheets/bootstrap/_root.scss +5 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +13 -4
- data/assets/stylesheets/bootstrap/_tables.scss +80 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +6 -2
- data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +545 -18
- data/assets/stylesheets/bootstrap/_variables.scss +653 -469
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +151 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +68 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +9 -9
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +17 -77
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -33
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +28 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +3 -3
- metadata +33 -41
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -522
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -81
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -71
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
|
@@ -1,124 +1,169 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap tooltip.js
|
|
2
|
+
* Bootstrap tooltip.js v5.0.0-alpha3 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global = global || self, global.Tooltip = factory(global.
|
|
10
|
-
}(this, (function (
|
|
11
|
-
|
|
12
|
-
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
|
13
|
-
Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper;
|
|
14
|
-
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
|
15
|
-
|
|
16
|
-
function _defineProperties(target, props) {
|
|
17
|
-
for (var i = 0; i < props.length; i++) {
|
|
18
|
-
var descriptor = props[i];
|
|
19
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
20
|
-
descriptor.configurable = true;
|
|
21
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
22
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('popper.js'), require('./dom/selector-engine.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', 'popper.js', './dom/selector-engine.js'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict';
|
|
25
11
|
|
|
26
|
-
function
|
|
27
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
31
13
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
|
+
var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
|
|
18
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* --------------------------------------------------------------------------
|
|
22
|
+
* Bootstrap (v5.0.0-alpha3): util/index.js
|
|
23
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
24
|
+
* --------------------------------------------------------------------------
|
|
25
|
+
*/
|
|
26
|
+
var MAX_UID = 1000000;
|
|
27
|
+
var MILLISECONDS_MULTIPLIER = 1000;
|
|
28
|
+
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
29
|
+
|
|
30
|
+
var toType = function toType(obj) {
|
|
31
|
+
if (obj === null || obj === undefined) {
|
|
32
|
+
return "" + obj;
|
|
42
33
|
}
|
|
43
34
|
|
|
44
|
-
return obj;
|
|
45
|
-
}
|
|
35
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* --------------------------------------------------------------------------
|
|
39
|
+
* Public Util Api
|
|
40
|
+
* --------------------------------------------------------------------------
|
|
41
|
+
*/
|
|
46
42
|
|
|
47
|
-
function ownKeys(object, enumerableOnly) {
|
|
48
|
-
var keys = Object.keys(object);
|
|
49
43
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
44
|
+
var getUID = function getUID(prefix) {
|
|
45
|
+
do {
|
|
46
|
+
prefix += Math.floor(Math.random() * MAX_UID);
|
|
47
|
+
} while (document.getElementById(prefix));
|
|
48
|
+
|
|
49
|
+
return prefix;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
|
|
53
|
+
if (!element) {
|
|
54
|
+
return 0;
|
|
55
|
+
} // Get transition-duration of the element
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
var _window$getComputedSt = window.getComputedStyle(element),
|
|
59
|
+
transitionDuration = _window$getComputedSt.transitionDuration,
|
|
60
|
+
transitionDelay = _window$getComputedSt.transitionDelay;
|
|
61
|
+
|
|
62
|
+
var floatTransitionDuration = parseFloat(transitionDuration);
|
|
63
|
+
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
|
64
|
+
|
|
65
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
66
|
+
return 0;
|
|
67
|
+
} // If multiple durations are defined, take the first
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
71
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
72
|
+
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var triggerTransitionEnd = function triggerTransitionEnd(element) {
|
|
76
|
+
element.dispatchEvent(new Event(TRANSITION_END));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var isElement = function isElement(obj) {
|
|
80
|
+
return (obj[0] || obj).nodeType;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
|
|
84
|
+
var called = false;
|
|
85
|
+
var durationPadding = 5;
|
|
86
|
+
var emulatedDuration = duration + durationPadding;
|
|
87
|
+
|
|
88
|
+
function listener() {
|
|
89
|
+
called = true;
|
|
90
|
+
element.removeEventListener(TRANSITION_END, listener);
|
|
56
91
|
}
|
|
57
92
|
|
|
58
|
-
|
|
59
|
-
|
|
93
|
+
element.addEventListener(TRANSITION_END, listener);
|
|
94
|
+
setTimeout(function () {
|
|
95
|
+
if (!called) {
|
|
96
|
+
triggerTransitionEnd(element);
|
|
97
|
+
}
|
|
98
|
+
}, emulatedDuration);
|
|
99
|
+
};
|
|
60
100
|
|
|
61
|
-
function
|
|
62
|
-
|
|
63
|
-
var
|
|
101
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
102
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
103
|
+
var expectedTypes = configTypes[property];
|
|
104
|
+
var value = config[property];
|
|
105
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
64
106
|
|
|
65
|
-
if (
|
|
66
|
-
|
|
67
|
-
_defineProperty(target, key, source[key]);
|
|
68
|
-
});
|
|
69
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
70
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
71
|
-
} else {
|
|
72
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
73
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
74
|
-
});
|
|
107
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
108
|
+
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
75
109
|
}
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var findShadowRoot = function findShadowRoot(element) {
|
|
114
|
+
if (!document.documentElement.attachShadow) {
|
|
115
|
+
return null;
|
|
116
|
+
} // Can find the shadow root otherwise it'll return the document
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
if (typeof element.getRootNode === 'function') {
|
|
120
|
+
var root = element.getRootNode();
|
|
121
|
+
return root instanceof ShadowRoot ? root : null;
|
|
76
122
|
}
|
|
77
123
|
|
|
78
|
-
|
|
79
|
-
|
|
124
|
+
if (element instanceof ShadowRoot) {
|
|
125
|
+
return element;
|
|
126
|
+
} // when we don't find a shadow root
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
if (!element.parentNode) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return findShadowRoot(element.parentNode);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var noop = function noop() {
|
|
137
|
+
return function () {};
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var getjQuery = function getjQuery() {
|
|
141
|
+
var _window = window,
|
|
142
|
+
jQuery = _window.jQuery;
|
|
143
|
+
|
|
144
|
+
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
|
|
145
|
+
return jQuery;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return null;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
152
|
+
if (document.readyState === 'loading') {
|
|
153
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
154
|
+
} else {
|
|
155
|
+
callback();
|
|
156
|
+
}
|
|
157
|
+
};
|
|
80
158
|
|
|
81
159
|
/**
|
|
82
160
|
* --------------------------------------------------------------------------
|
|
83
|
-
* Bootstrap (
|
|
84
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
161
|
+
* Bootstrap (v5.0.0-alpha3): util/sanitizer.js
|
|
162
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
85
163
|
* --------------------------------------------------------------------------
|
|
86
164
|
*/
|
|
87
165
|
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
|
|
88
166
|
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
|
|
89
|
-
var DefaultWhitelist = {
|
|
90
|
-
// Global attributes allowed on any supplied element below.
|
|
91
|
-
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
|
92
|
-
a: ['target', 'href', 'title', 'rel'],
|
|
93
|
-
area: [],
|
|
94
|
-
b: [],
|
|
95
|
-
br: [],
|
|
96
|
-
col: [],
|
|
97
|
-
code: [],
|
|
98
|
-
div: [],
|
|
99
|
-
em: [],
|
|
100
|
-
hr: [],
|
|
101
|
-
h1: [],
|
|
102
|
-
h2: [],
|
|
103
|
-
h3: [],
|
|
104
|
-
h4: [],
|
|
105
|
-
h5: [],
|
|
106
|
-
h6: [],
|
|
107
|
-
i: [],
|
|
108
|
-
img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
|
|
109
|
-
li: [],
|
|
110
|
-
ol: [],
|
|
111
|
-
p: [],
|
|
112
|
-
pre: [],
|
|
113
|
-
s: [],
|
|
114
|
-
small: [],
|
|
115
|
-
span: [],
|
|
116
|
-
sub: [],
|
|
117
|
-
sup: [],
|
|
118
|
-
strong: [],
|
|
119
|
-
u: [],
|
|
120
|
-
ul: []
|
|
121
|
-
};
|
|
122
167
|
/**
|
|
123
168
|
* A pattern that recognizes a commonly useful subset of URLs that are safe.
|
|
124
169
|
*
|
|
@@ -134,7 +179,7 @@
|
|
|
134
179
|
|
|
135
180
|
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
|
|
136
181
|
|
|
137
|
-
function allowedAttribute(attr, allowedAttributeList) {
|
|
182
|
+
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
|
|
138
183
|
var attrName = attr.nodeName.toLowerCase();
|
|
139
184
|
|
|
140
185
|
if (allowedAttributeList.indexOf(attrName) !== -1) {
|
|
@@ -156,10 +201,45 @@
|
|
|
156
201
|
}
|
|
157
202
|
|
|
158
203
|
return false;
|
|
159
|
-
}
|
|
204
|
+
};
|
|
160
205
|
|
|
161
|
-
|
|
162
|
-
|
|
206
|
+
var DefaultAllowlist = {
|
|
207
|
+
// Global attributes allowed on any supplied element below.
|
|
208
|
+
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
|
209
|
+
a: ['target', 'href', 'title', 'rel'],
|
|
210
|
+
area: [],
|
|
211
|
+
b: [],
|
|
212
|
+
br: [],
|
|
213
|
+
col: [],
|
|
214
|
+
code: [],
|
|
215
|
+
div: [],
|
|
216
|
+
em: [],
|
|
217
|
+
hr: [],
|
|
218
|
+
h1: [],
|
|
219
|
+
h2: [],
|
|
220
|
+
h3: [],
|
|
221
|
+
h4: [],
|
|
222
|
+
h5: [],
|
|
223
|
+
h6: [],
|
|
224
|
+
i: [],
|
|
225
|
+
img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
|
|
226
|
+
li: [],
|
|
227
|
+
ol: [],
|
|
228
|
+
p: [],
|
|
229
|
+
pre: [],
|
|
230
|
+
s: [],
|
|
231
|
+
small: [],
|
|
232
|
+
span: [],
|
|
233
|
+
sub: [],
|
|
234
|
+
sup: [],
|
|
235
|
+
strong: [],
|
|
236
|
+
u: [],
|
|
237
|
+
ul: []
|
|
238
|
+
};
|
|
239
|
+
function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {
|
|
240
|
+
var _ref;
|
|
241
|
+
|
|
242
|
+
if (!unsafeHtml.length) {
|
|
163
243
|
return unsafeHtml;
|
|
164
244
|
}
|
|
165
245
|
|
|
@@ -169,22 +249,26 @@
|
|
|
169
249
|
|
|
170
250
|
var domParser = new window.DOMParser();
|
|
171
251
|
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
|
|
172
|
-
var
|
|
173
|
-
|
|
252
|
+
var allowlistKeys = Object.keys(allowList);
|
|
253
|
+
|
|
254
|
+
var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));
|
|
174
255
|
|
|
175
256
|
var _loop = function _loop(i, len) {
|
|
257
|
+
var _ref2;
|
|
258
|
+
|
|
176
259
|
var el = elements[i];
|
|
177
260
|
var elName = el.nodeName.toLowerCase();
|
|
178
261
|
|
|
179
|
-
if (
|
|
262
|
+
if (allowlistKeys.indexOf(elName) === -1) {
|
|
180
263
|
el.parentNode.removeChild(el);
|
|
181
264
|
return "continue";
|
|
182
265
|
}
|
|
183
266
|
|
|
184
|
-
var attributeList = [].
|
|
185
|
-
|
|
267
|
+
var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);
|
|
268
|
+
|
|
269
|
+
var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);
|
|
186
270
|
attributeList.forEach(function (attr) {
|
|
187
|
-
if (!allowedAttribute(attr,
|
|
271
|
+
if (!allowedAttribute(attr, allowedAttributes)) {
|
|
188
272
|
el.removeAttribute(attr.nodeName);
|
|
189
273
|
}
|
|
190
274
|
});
|
|
@@ -199,6 +283,11 @@
|
|
|
199
283
|
return createdDocument.body.innerHTML;
|
|
200
284
|
}
|
|
201
285
|
|
|
286
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
287
|
+
|
|
288
|
+
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); } }
|
|
289
|
+
|
|
290
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
202
291
|
/**
|
|
203
292
|
* ------------------------------------------------------------------------
|
|
204
293
|
* Constants
|
|
@@ -206,13 +295,12 @@
|
|
|
206
295
|
*/
|
|
207
296
|
|
|
208
297
|
var NAME = 'tooltip';
|
|
209
|
-
var VERSION = '
|
|
298
|
+
var VERSION = '5.0.0-alpha3';
|
|
210
299
|
var DATA_KEY = 'bs.tooltip';
|
|
211
300
|
var EVENT_KEY = "." + DATA_KEY;
|
|
212
|
-
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
213
301
|
var CLASS_PREFIX = 'bs-tooltip';
|
|
214
302
|
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
|
215
|
-
var DISALLOWED_ATTRIBUTES = ['sanitize', '
|
|
303
|
+
var DISALLOWED_ATTRIBUTES = ['sanitize', 'allowList', 'sanitizeFn'];
|
|
216
304
|
var DefaultType = {
|
|
217
305
|
animation: 'boolean',
|
|
218
306
|
template: 'string',
|
|
@@ -228,7 +316,7 @@
|
|
|
228
316
|
boundary: '(string|element)',
|
|
229
317
|
sanitize: 'boolean',
|
|
230
318
|
sanitizeFn: '(null|function)',
|
|
231
|
-
|
|
319
|
+
allowList: 'object',
|
|
232
320
|
popperConfig: '(null|object)'
|
|
233
321
|
};
|
|
234
322
|
var AttachmentMap = {
|
|
@@ -240,7 +328,7 @@
|
|
|
240
328
|
};
|
|
241
329
|
var Default = {
|
|
242
330
|
animation: true,
|
|
243
|
-
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
|
|
331
|
+
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
|
|
244
332
|
trigger: 'hover focus',
|
|
245
333
|
title: '',
|
|
246
334
|
delay: 0,
|
|
@@ -253,12 +341,10 @@
|
|
|
253
341
|
boundary: 'scrollParent',
|
|
254
342
|
sanitize: true,
|
|
255
343
|
sanitizeFn: null,
|
|
256
|
-
|
|
344
|
+
allowList: DefaultAllowlist,
|
|
257
345
|
popperConfig: null
|
|
258
346
|
};
|
|
259
|
-
var
|
|
260
|
-
var HOVER_STATE_OUT = 'out';
|
|
261
|
-
var Event = {
|
|
347
|
+
var Event$1 = {
|
|
262
348
|
HIDE: "hide" + EVENT_KEY,
|
|
263
349
|
HIDDEN: "hidden" + EVENT_KEY,
|
|
264
350
|
SHOW: "show" + EVENT_KEY,
|
|
@@ -271,9 +357,11 @@
|
|
|
271
357
|
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
|
272
358
|
};
|
|
273
359
|
var CLASS_NAME_FADE = 'fade';
|
|
360
|
+
var CLASS_NAME_MODAL = 'modal';
|
|
274
361
|
var CLASS_NAME_SHOW = 'show';
|
|
362
|
+
var HOVER_STATE_SHOW = 'show';
|
|
363
|
+
var HOVER_STATE_OUT = 'out';
|
|
275
364
|
var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
|
|
276
|
-
var SELECTOR_ARROW = '.arrow';
|
|
277
365
|
var TRIGGER_HOVER = 'hover';
|
|
278
366
|
var TRIGGER_FOCUS = 'focus';
|
|
279
367
|
var TRIGGER_CLICK = 'click';
|
|
@@ -286,8 +374,8 @@
|
|
|
286
374
|
|
|
287
375
|
var Tooltip = /*#__PURE__*/function () {
|
|
288
376
|
function Tooltip(element, config) {
|
|
289
|
-
if (typeof
|
|
290
|
-
throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org
|
|
377
|
+
if (typeof Popper__default['default'] === 'undefined') {
|
|
378
|
+
throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
|
|
291
379
|
} // private
|
|
292
380
|
|
|
293
381
|
|
|
@@ -302,6 +390,8 @@
|
|
|
302
390
|
this.tip = null;
|
|
303
391
|
|
|
304
392
|
this._setListeners();
|
|
393
|
+
|
|
394
|
+
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
|
|
305
395
|
} // Getters
|
|
306
396
|
|
|
307
397
|
|
|
@@ -327,11 +417,11 @@
|
|
|
327
417
|
|
|
328
418
|
if (event) {
|
|
329
419
|
var dataKey = this.constructor.DATA_KEY;
|
|
330
|
-
var context =
|
|
420
|
+
var context = Data__default['default'].getData(event.delegateTarget, dataKey);
|
|
331
421
|
|
|
332
422
|
if (!context) {
|
|
333
|
-
context = new this.constructor(event.
|
|
334
|
-
|
|
423
|
+
context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
|
|
424
|
+
Data__default['default'].setData(event.delegateTarget, dataKey, context);
|
|
335
425
|
}
|
|
336
426
|
|
|
337
427
|
context._activeTrigger.click = !context._activeTrigger.click;
|
|
@@ -342,7 +432,7 @@
|
|
|
342
432
|
context._leave(null, context);
|
|
343
433
|
}
|
|
344
434
|
} else {
|
|
345
|
-
if (
|
|
435
|
+
if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {
|
|
346
436
|
this._leave(null, this);
|
|
347
437
|
|
|
348
438
|
return;
|
|
@@ -354,12 +444,12 @@
|
|
|
354
444
|
|
|
355
445
|
_proto.dispose = function dispose() {
|
|
356
446
|
clearTimeout(this._timeout);
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
447
|
+
Data__default['default'].removeData(this.element, this.constructor.DATA_KEY);
|
|
448
|
+
EventHandler__default['default'].off(this.element, this.constructor.EVENT_KEY);
|
|
449
|
+
EventHandler__default['default'].off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
|
|
360
450
|
|
|
361
451
|
if (this.tip) {
|
|
362
|
-
|
|
452
|
+
this.tip.parentNode.removeChild(this.tip);
|
|
363
453
|
}
|
|
364
454
|
|
|
365
455
|
this._isEnabled = null;
|
|
@@ -380,54 +470,56 @@
|
|
|
380
470
|
_proto.show = function show() {
|
|
381
471
|
var _this = this;
|
|
382
472
|
|
|
383
|
-
if (
|
|
473
|
+
if (this.element.style.display === 'none') {
|
|
384
474
|
throw new Error('Please use show on visible elements');
|
|
385
475
|
}
|
|
386
476
|
|
|
387
|
-
var showEvent = $.Event(this.constructor.Event.SHOW);
|
|
388
|
-
|
|
389
477
|
if (this.isWithContent() && this._isEnabled) {
|
|
390
|
-
|
|
391
|
-
var shadowRoot =
|
|
392
|
-
var isInTheDom =
|
|
478
|
+
var showEvent = EventHandler__default['default'].trigger(this.element, this.constructor.Event.SHOW);
|
|
479
|
+
var shadowRoot = findShadowRoot(this.element);
|
|
480
|
+
var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
|
|
393
481
|
|
|
394
|
-
if (showEvent.
|
|
482
|
+
if (showEvent.defaultPrevented || !isInTheDom) {
|
|
395
483
|
return;
|
|
396
484
|
}
|
|
397
485
|
|
|
398
486
|
var tip = this.getTipElement();
|
|
399
|
-
var tipId =
|
|
487
|
+
var tipId = getUID(this.constructor.NAME);
|
|
400
488
|
tip.setAttribute('id', tipId);
|
|
401
489
|
this.element.setAttribute('aria-describedby', tipId);
|
|
402
490
|
this.setContent();
|
|
403
491
|
|
|
404
492
|
if (this.config.animation) {
|
|
405
|
-
|
|
493
|
+
tip.classList.add(CLASS_NAME_FADE);
|
|
406
494
|
}
|
|
407
495
|
|
|
408
496
|
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
|
|
409
497
|
|
|
410
498
|
var attachment = this._getAttachment(placement);
|
|
411
499
|
|
|
412
|
-
this.
|
|
500
|
+
this._addAttachmentClass(attachment);
|
|
413
501
|
|
|
414
502
|
var container = this._getContainer();
|
|
415
503
|
|
|
416
|
-
|
|
504
|
+
Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);
|
|
417
505
|
|
|
418
|
-
if (
|
|
419
|
-
|
|
506
|
+
if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
|
|
507
|
+
container.appendChild(tip);
|
|
420
508
|
}
|
|
421
509
|
|
|
422
|
-
|
|
423
|
-
this._popper = new
|
|
424
|
-
|
|
510
|
+
EventHandler__default['default'].trigger(this.element, this.constructor.Event.INSERTED);
|
|
511
|
+
this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));
|
|
512
|
+
tip.classList.add(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra
|
|
425
513
|
// empty mouseover listeners to the body's immediate children;
|
|
426
514
|
// only needed because of broken event delegation on iOS
|
|
427
515
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
|
428
516
|
|
|
429
517
|
if ('ontouchstart' in document.documentElement) {
|
|
430
|
-
|
|
518
|
+
var _ref;
|
|
519
|
+
|
|
520
|
+
(_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
|
|
521
|
+
EventHandler__default['default'].on(element, 'mouseover', noop());
|
|
522
|
+
});
|
|
431
523
|
}
|
|
432
524
|
|
|
433
525
|
var complete = function complete() {
|
|
@@ -437,27 +529,31 @@
|
|
|
437
529
|
|
|
438
530
|
var prevHoverState = _this._hoverState;
|
|
439
531
|
_this._hoverState = null;
|
|
440
|
-
|
|
532
|
+
EventHandler__default['default'].trigger(_this.element, _this.constructor.Event.SHOWN);
|
|
441
533
|
|
|
442
534
|
if (prevHoverState === HOVER_STATE_OUT) {
|
|
443
535
|
_this._leave(null, _this);
|
|
444
536
|
}
|
|
445
537
|
};
|
|
446
538
|
|
|
447
|
-
if (
|
|
448
|
-
var transitionDuration =
|
|
449
|
-
|
|
539
|
+
if (this.tip.classList.contains(CLASS_NAME_FADE)) {
|
|
540
|
+
var transitionDuration = getTransitionDurationFromElement(this.tip);
|
|
541
|
+
EventHandler__default['default'].one(this.tip, TRANSITION_END, complete);
|
|
542
|
+
emulateTransitionEnd(this.tip, transitionDuration);
|
|
450
543
|
} else {
|
|
451
544
|
complete();
|
|
452
545
|
}
|
|
453
546
|
}
|
|
454
547
|
};
|
|
455
548
|
|
|
456
|
-
_proto.hide = function hide(
|
|
549
|
+
_proto.hide = function hide() {
|
|
457
550
|
var _this2 = this;
|
|
458
551
|
|
|
552
|
+
if (!this._popper) {
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
|
|
459
556
|
var tip = this.getTipElement();
|
|
460
|
-
var hideEvent = $.Event(this.constructor.Event.HIDE);
|
|
461
557
|
|
|
462
558
|
var complete = function complete() {
|
|
463
559
|
if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
|
|
@@ -468,37 +564,36 @@
|
|
|
468
564
|
|
|
469
565
|
_this2.element.removeAttribute('aria-describedby');
|
|
470
566
|
|
|
471
|
-
|
|
567
|
+
EventHandler__default['default'].trigger(_this2.element, _this2.constructor.Event.HIDDEN);
|
|
472
568
|
|
|
473
|
-
|
|
474
|
-
_this2._popper.destroy();
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
if (callback) {
|
|
478
|
-
callback();
|
|
479
|
-
}
|
|
569
|
+
_this2._popper.destroy();
|
|
480
570
|
};
|
|
481
571
|
|
|
482
|
-
|
|
572
|
+
var hideEvent = EventHandler__default['default'].trigger(this.element, this.constructor.Event.HIDE);
|
|
483
573
|
|
|
484
|
-
if (hideEvent.
|
|
574
|
+
if (hideEvent.defaultPrevented) {
|
|
485
575
|
return;
|
|
486
576
|
}
|
|
487
577
|
|
|
488
|
-
|
|
578
|
+
tip.classList.remove(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra
|
|
489
579
|
// empty mouseover listeners we added for iOS support
|
|
490
580
|
|
|
491
581
|
if ('ontouchstart' in document.documentElement) {
|
|
492
|
-
|
|
582
|
+
var _ref2;
|
|
583
|
+
|
|
584
|
+
(_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
|
|
585
|
+
return EventHandler__default['default'].off(element, 'mouseover', noop);
|
|
586
|
+
});
|
|
493
587
|
}
|
|
494
588
|
|
|
495
589
|
this._activeTrigger[TRIGGER_CLICK] = false;
|
|
496
590
|
this._activeTrigger[TRIGGER_FOCUS] = false;
|
|
497
591
|
this._activeTrigger[TRIGGER_HOVER] = false;
|
|
498
592
|
|
|
499
|
-
if (
|
|
500
|
-
var transitionDuration =
|
|
501
|
-
|
|
593
|
+
if (this.tip.classList.contains(CLASS_NAME_FADE)) {
|
|
594
|
+
var transitionDuration = getTransitionDurationFromElement(tip);
|
|
595
|
+
EventHandler__default['default'].one(tip, TRANSITION_END, complete);
|
|
596
|
+
emulateTransitionEnd(tip, transitionDuration);
|
|
502
597
|
} else {
|
|
503
598
|
complete();
|
|
504
599
|
}
|
|
@@ -517,30 +612,41 @@
|
|
|
517
612
|
return Boolean(this.getTitle());
|
|
518
613
|
};
|
|
519
614
|
|
|
520
|
-
_proto.addAttachmentClass = function addAttachmentClass(attachment) {
|
|
521
|
-
$(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
|
|
522
|
-
};
|
|
523
|
-
|
|
524
615
|
_proto.getTipElement = function getTipElement() {
|
|
525
|
-
|
|
616
|
+
if (this.tip) {
|
|
617
|
+
return this.tip;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
var element = document.createElement('div');
|
|
621
|
+
element.innerHTML = this.config.template;
|
|
622
|
+
this.tip = element.children[0];
|
|
526
623
|
return this.tip;
|
|
527
624
|
};
|
|
528
625
|
|
|
529
626
|
_proto.setContent = function setContent() {
|
|
530
627
|
var tip = this.getTipElement();
|
|
531
|
-
this.setElementContent(
|
|
532
|
-
|
|
628
|
+
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
|
|
629
|
+
tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
|
|
533
630
|
};
|
|
534
631
|
|
|
535
|
-
_proto.setElementContent = function setElementContent(
|
|
536
|
-
if (
|
|
537
|
-
|
|
632
|
+
_proto.setElementContent = function setElementContent(element, content) {
|
|
633
|
+
if (element === null) {
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
if (typeof content === 'object' && isElement(content)) {
|
|
638
|
+
if (content.jquery) {
|
|
639
|
+
content = content[0];
|
|
640
|
+
} // content is a DOM node or a jQuery
|
|
641
|
+
|
|
642
|
+
|
|
538
643
|
if (this.config.html) {
|
|
539
|
-
if (
|
|
540
|
-
|
|
644
|
+
if (content.parentNode !== element) {
|
|
645
|
+
element.innerHTML = '';
|
|
646
|
+
element.appendChild(content);
|
|
541
647
|
}
|
|
542
648
|
} else {
|
|
543
|
-
|
|
649
|
+
element.textContent = content.textContent;
|
|
544
650
|
}
|
|
545
651
|
|
|
546
652
|
return;
|
|
@@ -548,12 +654,12 @@
|
|
|
548
654
|
|
|
549
655
|
if (this.config.html) {
|
|
550
656
|
if (this.config.sanitize) {
|
|
551
|
-
content = sanitizeHtml(content, this.config.
|
|
657
|
+
content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);
|
|
552
658
|
}
|
|
553
659
|
|
|
554
|
-
|
|
660
|
+
element.innerHTML = content;
|
|
555
661
|
} else {
|
|
556
|
-
|
|
662
|
+
element.textContent = content;
|
|
557
663
|
}
|
|
558
664
|
};
|
|
559
665
|
|
|
@@ -579,7 +685,7 @@
|
|
|
579
685
|
behavior: this.config.fallbackPlacement
|
|
580
686
|
},
|
|
581
687
|
arrow: {
|
|
582
|
-
element:
|
|
688
|
+
element: "." + this.constructor.NAME + "-arrow"
|
|
583
689
|
},
|
|
584
690
|
preventOverflow: {
|
|
585
691
|
boundariesElement: this.config.boundary
|
|
@@ -594,7 +700,11 @@
|
|
|
594
700
|
return _this3._handlePopperPlacementChange(data);
|
|
595
701
|
}
|
|
596
702
|
};
|
|
597
|
-
return
|
|
703
|
+
return _extends({}, defaultBsConfig, this.config.popperConfig);
|
|
704
|
+
};
|
|
705
|
+
|
|
706
|
+
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
|
|
707
|
+
this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
|
|
598
708
|
};
|
|
599
709
|
|
|
600
710
|
_proto._getOffset = function _getOffset() {
|
|
@@ -604,7 +714,7 @@
|
|
|
604
714
|
|
|
605
715
|
if (typeof this.config.offset === 'function') {
|
|
606
716
|
offset.fn = function (data) {
|
|
607
|
-
data.offsets =
|
|
717
|
+
data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
|
|
608
718
|
return data;
|
|
609
719
|
};
|
|
610
720
|
} else {
|
|
@@ -619,11 +729,11 @@
|
|
|
619
729
|
return document.body;
|
|
620
730
|
}
|
|
621
731
|
|
|
622
|
-
if (
|
|
623
|
-
return
|
|
732
|
+
if (isElement(this.config.container)) {
|
|
733
|
+
return this.config.container;
|
|
624
734
|
}
|
|
625
735
|
|
|
626
|
-
return
|
|
736
|
+
return SelectorEngine__default['default'].findOne(this.config.container);
|
|
627
737
|
};
|
|
628
738
|
|
|
629
739
|
_proto._getAttachment = function _getAttachment(placement) {
|
|
@@ -636,15 +746,16 @@
|
|
|
636
746
|
var triggers = this.config.trigger.split(' ');
|
|
637
747
|
triggers.forEach(function (trigger) {
|
|
638
748
|
if (trigger === 'click') {
|
|
639
|
-
|
|
749
|
+
EventHandler__default['default'].on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
|
|
640
750
|
return _this5.toggle(event);
|
|
641
751
|
});
|
|
642
752
|
} else if (trigger !== TRIGGER_MANUAL) {
|
|
643
753
|
var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
|
|
644
754
|
var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
|
|
645
|
-
|
|
755
|
+
EventHandler__default['default'].on(_this5.element, eventIn, _this5.config.selector, function (event) {
|
|
646
756
|
return _this5._enter(event);
|
|
647
|
-
})
|
|
757
|
+
});
|
|
758
|
+
EventHandler__default['default'].on(_this5.element, eventOut, _this5.config.selector, function (event) {
|
|
648
759
|
return _this5._leave(event);
|
|
649
760
|
});
|
|
650
761
|
}
|
|
@@ -656,10 +767,10 @@
|
|
|
656
767
|
}
|
|
657
768
|
};
|
|
658
769
|
|
|
659
|
-
|
|
770
|
+
EventHandler__default['default'].on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
|
|
660
771
|
|
|
661
772
|
if (this.config.selector) {
|
|
662
|
-
this.config =
|
|
773
|
+
this.config = _extends({}, this.config, {
|
|
663
774
|
trigger: 'manual',
|
|
664
775
|
selector: ''
|
|
665
776
|
});
|
|
@@ -679,18 +790,18 @@
|
|
|
679
790
|
|
|
680
791
|
_proto._enter = function _enter(event, context) {
|
|
681
792
|
var dataKey = this.constructor.DATA_KEY;
|
|
682
|
-
context = context ||
|
|
793
|
+
context = context || Data__default['default'].getData(event.delegateTarget, dataKey);
|
|
683
794
|
|
|
684
795
|
if (!context) {
|
|
685
|
-
context = new this.constructor(event.
|
|
686
|
-
|
|
796
|
+
context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
|
|
797
|
+
Data__default['default'].setData(event.delegateTarget, dataKey, context);
|
|
687
798
|
}
|
|
688
799
|
|
|
689
800
|
if (event) {
|
|
690
801
|
context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
|
|
691
802
|
}
|
|
692
803
|
|
|
693
|
-
if (
|
|
804
|
+
if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {
|
|
694
805
|
context._hoverState = HOVER_STATE_SHOW;
|
|
695
806
|
return;
|
|
696
807
|
}
|
|
@@ -712,11 +823,11 @@
|
|
|
712
823
|
|
|
713
824
|
_proto._leave = function _leave(event, context) {
|
|
714
825
|
var dataKey = this.constructor.DATA_KEY;
|
|
715
|
-
context = context ||
|
|
826
|
+
context = context || Data__default['default'].getData(event.delegateTarget, dataKey);
|
|
716
827
|
|
|
717
828
|
if (!context) {
|
|
718
|
-
context = new this.constructor(event.
|
|
719
|
-
|
|
829
|
+
context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
|
|
830
|
+
Data__default['default'].setData(event.delegateTarget, dataKey, context);
|
|
720
831
|
}
|
|
721
832
|
|
|
722
833
|
if (event) {
|
|
@@ -753,13 +864,18 @@
|
|
|
753
864
|
};
|
|
754
865
|
|
|
755
866
|
_proto._getConfig = function _getConfig(config) {
|
|
756
|
-
var dataAttributes =
|
|
867
|
+
var dataAttributes = Manipulator__default['default'].getDataAttributes(this.element);
|
|
757
868
|
Object.keys(dataAttributes).forEach(function (dataAttr) {
|
|
758
869
|
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
|
|
759
870
|
delete dataAttributes[dataAttr];
|
|
760
871
|
}
|
|
761
872
|
});
|
|
762
|
-
|
|
873
|
+
|
|
874
|
+
if (config && typeof config.container === 'object' && config.container.jquery) {
|
|
875
|
+
config.container = config.container[0];
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
|
|
763
879
|
|
|
764
880
|
if (typeof config.delay === 'number') {
|
|
765
881
|
config.delay = {
|
|
@@ -776,10 +892,10 @@
|
|
|
776
892
|
config.content = config.content.toString();
|
|
777
893
|
}
|
|
778
894
|
|
|
779
|
-
|
|
895
|
+
typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
780
896
|
|
|
781
897
|
if (config.sanitize) {
|
|
782
|
-
config.template = sanitizeHtml(config.template, config.
|
|
898
|
+
config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);
|
|
783
899
|
}
|
|
784
900
|
|
|
785
901
|
return config;
|
|
@@ -800,11 +916,15 @@
|
|
|
800
916
|
};
|
|
801
917
|
|
|
802
918
|
_proto._cleanTipClass = function _cleanTipClass() {
|
|
803
|
-
var
|
|
804
|
-
var tabClass =
|
|
919
|
+
var tip = this.getTipElement();
|
|
920
|
+
var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
|
|
805
921
|
|
|
806
|
-
if (tabClass !== null && tabClass.length) {
|
|
807
|
-
|
|
922
|
+
if (tabClass !== null && tabClass.length > 0) {
|
|
923
|
+
tabClass.map(function (token) {
|
|
924
|
+
return token.trim();
|
|
925
|
+
}).forEach(function (tClass) {
|
|
926
|
+
return tip.classList.remove(tClass);
|
|
927
|
+
});
|
|
808
928
|
}
|
|
809
929
|
};
|
|
810
930
|
|
|
@@ -813,7 +933,7 @@
|
|
|
813
933
|
|
|
814
934
|
this._cleanTipClass();
|
|
815
935
|
|
|
816
|
-
this.
|
|
936
|
+
this._addAttachmentClass(this._getAttachment(popperData.placement));
|
|
817
937
|
};
|
|
818
938
|
|
|
819
939
|
_proto._fixTransition = function _fixTransition() {
|
|
@@ -824,7 +944,7 @@
|
|
|
824
944
|
return;
|
|
825
945
|
}
|
|
826
946
|
|
|
827
|
-
|
|
947
|
+
tip.classList.remove(CLASS_NAME_FADE);
|
|
828
948
|
this.config.animation = false;
|
|
829
949
|
this.hide();
|
|
830
950
|
this.show();
|
|
@@ -832,9 +952,9 @@
|
|
|
832
952
|
} // Static
|
|
833
953
|
;
|
|
834
954
|
|
|
835
|
-
Tooltip.
|
|
955
|
+
Tooltip.jQueryInterface = function jQueryInterface(config) {
|
|
836
956
|
return this.each(function () {
|
|
837
|
-
var data =
|
|
957
|
+
var data = Data__default['default'].getData(this, DATA_KEY);
|
|
838
958
|
|
|
839
959
|
var _config = typeof config === 'object' && config;
|
|
840
960
|
|
|
@@ -844,7 +964,6 @@
|
|
|
844
964
|
|
|
845
965
|
if (!data) {
|
|
846
966
|
data = new Tooltip(this, _config);
|
|
847
|
-
$(this).data(DATA_KEY, data);
|
|
848
967
|
}
|
|
849
968
|
|
|
850
969
|
if (typeof config === 'string') {
|
|
@@ -857,6 +976,10 @@
|
|
|
857
976
|
});
|
|
858
977
|
};
|
|
859
978
|
|
|
979
|
+
Tooltip.getInstance = function getInstance(element) {
|
|
980
|
+
return Data__default['default'].getData(element, DATA_KEY);
|
|
981
|
+
};
|
|
982
|
+
|
|
860
983
|
_createClass(Tooltip, null, [{
|
|
861
984
|
key: "VERSION",
|
|
862
985
|
get: function get() {
|
|
@@ -880,7 +1003,7 @@
|
|
|
880
1003
|
}, {
|
|
881
1004
|
key: "Event",
|
|
882
1005
|
get: function get() {
|
|
883
|
-
return Event;
|
|
1006
|
+
return Event$1;
|
|
884
1007
|
}
|
|
885
1008
|
}, {
|
|
886
1009
|
key: "EVENT_KEY",
|
|
@@ -900,16 +1023,25 @@
|
|
|
900
1023
|
* ------------------------------------------------------------------------
|
|
901
1024
|
* jQuery
|
|
902
1025
|
* ------------------------------------------------------------------------
|
|
1026
|
+
* add .Tooltip to jQuery only if jQuery is present
|
|
903
1027
|
*/
|
|
904
1028
|
|
|
905
1029
|
|
|
906
|
-
|
|
907
|
-
|
|
1030
|
+
onDOMContentLoaded(function () {
|
|
1031
|
+
var $ = getjQuery();
|
|
1032
|
+
/* istanbul ignore if */
|
|
908
1033
|
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
1034
|
+
if ($) {
|
|
1035
|
+
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
1036
|
+
$.fn[NAME] = Tooltip.jQueryInterface;
|
|
1037
|
+
$.fn[NAME].Constructor = Tooltip;
|
|
1038
|
+
|
|
1039
|
+
$.fn[NAME].noConflict = function () {
|
|
1040
|
+
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
1041
|
+
return Tooltip.jQueryInterface;
|
|
1042
|
+
};
|
|
1043
|
+
}
|
|
1044
|
+
});
|
|
913
1045
|
|
|
914
1046
|
return Tooltip;
|
|
915
1047
|
|