bootstrap 4.2.1 → 4.5.2
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 +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +1054 -893
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +35 -57
- data/assets/javascripts/bootstrap/button.js +95 -69
- data/assets/javascripts/bootstrap/carousel.js +109 -165
- data/assets/javascripts/bootstrap/collapse.js +58 -114
- data/assets/javascripts/bootstrap/dropdown.js +138 -191
- data/assets/javascripts/bootstrap/modal.js +170 -176
- data/assets/javascripts/bootstrap/popover.js +31 -87
- data/assets/javascripts/bootstrap/scrollspy.js +54 -114
- data/assets/javascripts/bootstrap/tab.js +62 -81
- data/assets/javascripts/bootstrap/toast.js +80 -117
- data/assets/javascripts/bootstrap/tooltip.js +269 -157
- data/assets/javascripts/bootstrap/util.js +34 -9
- data/assets/stylesheets/_bootstrap-grid.scss +4 -4
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +4 -4
- data/assets/stylesheets/bootstrap/_badge.scss +3 -2
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -11
- data/assets/stylesheets/bootstrap/_card.scss +49 -73
- data/assets/stylesheets/bootstrap/_carousel.scss +7 -8
- data/assets/stylesheets/bootstrap/_close.scss +3 -7
- data/assets/stylesheets/bootstrap/_code.scss +6 -6
- data/assets/stylesheets/bootstrap/_custom-forms.scss +40 -24
- data/assets/stylesheets/bootstrap/_dropdown.scss +24 -23
- data/assets/stylesheets/bootstrap/_forms.scss +38 -25
- data/assets/stylesheets/bootstrap/_functions.scss +62 -7
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +3 -3
- data/assets/stylesheets/bootstrap/_input-group.scss +4 -5
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +62 -29
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -3
- data/assets/stylesheets/bootstrap/_modal.scss +65 -11
- data/assets/stylesheets/bootstrap/_nav.scss +6 -3
- data/assets/stylesheets/bootstrap/_navbar.scss +48 -23
- data/assets/stylesheets/bootstrap/_pagination.scss +3 -7
- data/assets/stylesheets/bootstrap/_popover.scss +54 -67
- data/assets/stylesheets/bootstrap/_print.scss +3 -3
- data/assets/stylesheets/bootstrap/_progress.scss +19 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +51 -33
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +3 -0
- data/assets/stylesheets/bootstrap/_tables.scss +6 -8
- data/assets/stylesheets/bootstrap/_toasts.scss +7 -4
- data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -2
- data/assets/stylesheets/bootstrap/_type.scss +17 -17
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -0
- data/assets/stylesheets/bootstrap/_variables.scss +168 -119
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +7 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +51 -10
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +14 -15
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +12 -12
- data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_float.scss +6 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +40 -60
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +29 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +25 -7
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -3
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +13 -1
- data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
- data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +8 -3
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +204 -0
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +14 -5
|
@@ -1,67 +1,22 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap toast.js v4.2
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap toast.js v4.5.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
|
9
|
-
(global.Toast = factory(global.jQuery,global.Util));
|
|
10
|
-
}(this, (function ($,Util) { 'use strict';
|
|
11
|
-
|
|
12
|
-
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
-
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
14
|
-
|
|
15
|
-
function _defineProperties(target, props) {
|
|
16
|
-
for (var i = 0; i < props.length; i++) {
|
|
17
|
-
var descriptor = props[i];
|
|
18
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
19
|
-
descriptor.configurable = true;
|
|
20
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
21
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
26
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
27
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
-
return Constructor;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function _defineProperty(obj, key, value) {
|
|
32
|
-
if (key in obj) {
|
|
33
|
-
Object.defineProperty(obj, key, {
|
|
34
|
-
value: value,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true
|
|
38
|
-
});
|
|
39
|
-
} else {
|
|
40
|
-
obj[key] = value;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return obj;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function _objectSpread(target) {
|
|
47
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
48
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
49
|
-
var ownKeys = Object.keys(source);
|
|
50
|
-
|
|
51
|
-
if (typeof Object.getOwnPropertySymbols === 'function') {
|
|
52
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
53
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.jQuery, global.Util));
|
|
10
|
+
}(this, (function ($, Util) { 'use strict';
|
|
56
11
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
});
|
|
60
|
-
}
|
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
|
13
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
|
61
14
|
|
|
62
|
-
|
|
63
|
-
}
|
|
15
|
+
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); }
|
|
64
16
|
|
|
17
|
+
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); } }
|
|
18
|
+
|
|
19
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
65
20
|
/**
|
|
66
21
|
* ------------------------------------------------------------------------
|
|
67
22
|
* Constants
|
|
@@ -69,23 +24,19 @@
|
|
|
69
24
|
*/
|
|
70
25
|
|
|
71
26
|
var NAME = 'toast';
|
|
72
|
-
var VERSION = '4.2
|
|
27
|
+
var VERSION = '4.5.2';
|
|
73
28
|
var DATA_KEY = 'bs.toast';
|
|
74
29
|
var EVENT_KEY = "." + DATA_KEY;
|
|
75
30
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var
|
|
84
|
-
|
|
85
|
-
HIDE: 'hide',
|
|
86
|
-
SHOW: 'show',
|
|
87
|
-
SHOWING: 'showing'
|
|
88
|
-
};
|
|
31
|
+
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
|
|
32
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
33
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
34
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
|
35
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
36
|
+
var CLASS_NAME_FADE = 'fade';
|
|
37
|
+
var CLASS_NAME_HIDE = 'hide';
|
|
38
|
+
var CLASS_NAME_SHOW = 'show';
|
|
39
|
+
var CLASS_NAME_SHOWING = 'showing';
|
|
89
40
|
var DefaultType = {
|
|
90
41
|
animation: 'boolean',
|
|
91
42
|
autohide: 'boolean',
|
|
@@ -96,19 +47,14 @@
|
|
|
96
47
|
autohide: true,
|
|
97
48
|
delay: 500
|
|
98
49
|
};
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
*/
|
|
106
|
-
|
|
107
|
-
};
|
|
50
|
+
var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]';
|
|
51
|
+
/**
|
|
52
|
+
* ------------------------------------------------------------------------
|
|
53
|
+
* Class Definition
|
|
54
|
+
* ------------------------------------------------------------------------
|
|
55
|
+
*/
|
|
108
56
|
|
|
109
|
-
var Toast =
|
|
110
|
-
/*#__PURE__*/
|
|
111
|
-
function () {
|
|
57
|
+
var Toast = /*#__PURE__*/function () {
|
|
112
58
|
function Toast(element, config) {
|
|
113
59
|
this._element = element;
|
|
114
60
|
this._config = this._getConfig(config);
|
|
@@ -124,27 +70,38 @@
|
|
|
124
70
|
_proto.show = function show() {
|
|
125
71
|
var _this = this;
|
|
126
72
|
|
|
127
|
-
|
|
73
|
+
var showEvent = $.Event(EVENT_SHOW);
|
|
74
|
+
$(this._element).trigger(showEvent);
|
|
75
|
+
|
|
76
|
+
if (showEvent.isDefaultPrevented()) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this._clearTimeout();
|
|
128
81
|
|
|
129
82
|
if (this._config.animation) {
|
|
130
|
-
this._element.classList.add(
|
|
83
|
+
this._element.classList.add(CLASS_NAME_FADE);
|
|
131
84
|
}
|
|
132
85
|
|
|
133
86
|
var complete = function complete() {
|
|
134
|
-
_this._element.classList.remove(
|
|
87
|
+
_this._element.classList.remove(CLASS_NAME_SHOWING);
|
|
135
88
|
|
|
136
|
-
_this._element.classList.add(
|
|
89
|
+
_this._element.classList.add(CLASS_NAME_SHOW);
|
|
137
90
|
|
|
138
|
-
$(_this._element).trigger(
|
|
91
|
+
$(_this._element).trigger(EVENT_SHOWN);
|
|
139
92
|
|
|
140
93
|
if (_this._config.autohide) {
|
|
141
|
-
_this.
|
|
94
|
+
_this._timeout = setTimeout(function () {
|
|
95
|
+
_this.hide();
|
|
96
|
+
}, _this._config.delay);
|
|
142
97
|
}
|
|
143
98
|
};
|
|
144
99
|
|
|
145
|
-
this._element.classList.remove(
|
|
100
|
+
this._element.classList.remove(CLASS_NAME_HIDE);
|
|
101
|
+
|
|
102
|
+
Util.reflow(this._element);
|
|
146
103
|
|
|
147
|
-
this._element.classList.add(
|
|
104
|
+
this._element.classList.add(CLASS_NAME_SHOWING);
|
|
148
105
|
|
|
149
106
|
if (this._config.animation) {
|
|
150
107
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
@@ -154,63 +111,59 @@
|
|
|
154
111
|
}
|
|
155
112
|
};
|
|
156
113
|
|
|
157
|
-
_proto.hide = function hide(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
if (!this._element.classList.contains(ClassName.SHOW)) {
|
|
114
|
+
_proto.hide = function hide() {
|
|
115
|
+
if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
161
116
|
return;
|
|
162
117
|
}
|
|
163
118
|
|
|
164
|
-
|
|
119
|
+
var hideEvent = $.Event(EVENT_HIDE);
|
|
120
|
+
$(this._element).trigger(hideEvent);
|
|
165
121
|
|
|
166
|
-
if (
|
|
167
|
-
|
|
168
|
-
} else {
|
|
169
|
-
this._timeout = setTimeout(function () {
|
|
170
|
-
_this2._close();
|
|
171
|
-
}, this._config.delay);
|
|
122
|
+
if (hideEvent.isDefaultPrevented()) {
|
|
123
|
+
return;
|
|
172
124
|
}
|
|
125
|
+
|
|
126
|
+
this._close();
|
|
173
127
|
};
|
|
174
128
|
|
|
175
129
|
_proto.dispose = function dispose() {
|
|
176
|
-
|
|
177
|
-
this._timeout = null;
|
|
130
|
+
this._clearTimeout();
|
|
178
131
|
|
|
179
|
-
if (this._element.classList.contains(
|
|
180
|
-
this._element.classList.remove(
|
|
132
|
+
if (this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
133
|
+
this._element.classList.remove(CLASS_NAME_SHOW);
|
|
181
134
|
}
|
|
182
135
|
|
|
183
|
-
$(this._element).off(
|
|
136
|
+
$(this._element).off(EVENT_CLICK_DISMISS);
|
|
184
137
|
$.removeData(this._element, DATA_KEY);
|
|
185
138
|
this._element = null;
|
|
186
139
|
this._config = null;
|
|
187
|
-
}
|
|
188
|
-
|
|
140
|
+
} // Private
|
|
141
|
+
;
|
|
189
142
|
|
|
190
143
|
_proto._getConfig = function _getConfig(config) {
|
|
191
|
-
config =
|
|
144
|
+
config = _extends({}, Default, $(this._element).data(), typeof config === 'object' && config ? config : {});
|
|
192
145
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
193
146
|
return config;
|
|
194
147
|
};
|
|
195
148
|
|
|
196
149
|
_proto._setListeners = function _setListeners() {
|
|
197
|
-
var
|
|
150
|
+
var _this2 = this;
|
|
198
151
|
|
|
199
|
-
$(this._element).on(
|
|
200
|
-
return
|
|
152
|
+
$(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
|
|
153
|
+
return _this2.hide();
|
|
201
154
|
});
|
|
202
155
|
};
|
|
203
156
|
|
|
204
157
|
_proto._close = function _close() {
|
|
205
|
-
var
|
|
158
|
+
var _this3 = this;
|
|
206
159
|
|
|
207
160
|
var complete = function complete() {
|
|
208
|
-
|
|
161
|
+
_this3._element.classList.add(CLASS_NAME_HIDE);
|
|
209
162
|
|
|
210
|
-
$(
|
|
163
|
+
$(_this3._element).trigger(EVENT_HIDDEN);
|
|
211
164
|
};
|
|
212
165
|
|
|
213
|
-
this._element.classList.remove(
|
|
166
|
+
this._element.classList.remove(CLASS_NAME_SHOW);
|
|
214
167
|
|
|
215
168
|
if (this._config.animation) {
|
|
216
169
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
@@ -218,8 +171,13 @@
|
|
|
218
171
|
} else {
|
|
219
172
|
complete();
|
|
220
173
|
}
|
|
221
|
-
};
|
|
174
|
+
};
|
|
222
175
|
|
|
176
|
+
_proto._clearTimeout = function _clearTimeout() {
|
|
177
|
+
clearTimeout(this._timeout);
|
|
178
|
+
this._timeout = null;
|
|
179
|
+
} // Static
|
|
180
|
+
;
|
|
223
181
|
|
|
224
182
|
Toast._jQueryInterface = function _jQueryInterface(config) {
|
|
225
183
|
return this.each(function () {
|
|
@@ -253,6 +211,11 @@
|
|
|
253
211
|
get: function get() {
|
|
254
212
|
return DefaultType;
|
|
255
213
|
}
|
|
214
|
+
}, {
|
|
215
|
+
key: "Default",
|
|
216
|
+
get: function get() {
|
|
217
|
+
return Default;
|
|
218
|
+
}
|
|
256
219
|
}]);
|
|
257
220
|
|
|
258
221
|
return Toast;
|
|
@@ -1,68 +1,144 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap tooltip.js v4.2
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap tooltip.js v4.5.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
|
|
9
|
-
(global.Tooltip = factory(global.jQuery,global.Popper,global.Util));
|
|
10
|
-
}(this, (function ($,Popper,Util) { 'use strict';
|
|
11
|
-
|
|
12
|
-
$ = $ &&
|
|
13
|
-
Popper = Popper &&
|
|
14
|
-
Util = Util &&
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.jQuery, global.Popper, global.Util));
|
|
10
|
+
}(this, (function ($, Popper, Util) { 'use strict';
|
|
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
|
+
/**
|
|
17
|
+
* --------------------------------------------------------------------------
|
|
18
|
+
* Bootstrap (v4.5.2): tools/sanitizer.js
|
|
19
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
20
|
+
* --------------------------------------------------------------------------
|
|
21
|
+
*/
|
|
22
|
+
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
|
|
23
|
+
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
|
|
24
|
+
var DefaultWhitelist = {
|
|
25
|
+
// Global attributes allowed on any supplied element below.
|
|
26
|
+
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
|
27
|
+
a: ['target', 'href', 'title', 'rel'],
|
|
28
|
+
area: [],
|
|
29
|
+
b: [],
|
|
30
|
+
br: [],
|
|
31
|
+
col: [],
|
|
32
|
+
code: [],
|
|
33
|
+
div: [],
|
|
34
|
+
em: [],
|
|
35
|
+
hr: [],
|
|
36
|
+
h1: [],
|
|
37
|
+
h2: [],
|
|
38
|
+
h3: [],
|
|
39
|
+
h4: [],
|
|
40
|
+
h5: [],
|
|
41
|
+
h6: [],
|
|
42
|
+
i: [],
|
|
43
|
+
img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
|
|
44
|
+
li: [],
|
|
45
|
+
ol: [],
|
|
46
|
+
p: [],
|
|
47
|
+
pre: [],
|
|
48
|
+
s: [],
|
|
49
|
+
small: [],
|
|
50
|
+
span: [],
|
|
51
|
+
sub: [],
|
|
52
|
+
sup: [],
|
|
53
|
+
strong: [],
|
|
54
|
+
u: [],
|
|
55
|
+
ul: []
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* A pattern that recognizes a commonly useful subset of URLs that are safe.
|
|
59
|
+
*
|
|
60
|
+
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
|
|
64
|
+
/**
|
|
65
|
+
* A pattern that matches safe data URLs. Only matches image, video and audio types.
|
|
66
|
+
*
|
|
67
|
+
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
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;
|
|
71
|
+
|
|
72
|
+
function allowedAttribute(attr, allowedAttributeList) {
|
|
73
|
+
var attrName = attr.nodeName.toLowerCase();
|
|
74
|
+
|
|
75
|
+
if (allowedAttributeList.indexOf(attrName) !== -1) {
|
|
76
|
+
if (uriAttrs.indexOf(attrName) !== -1) {
|
|
77
|
+
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return true;
|
|
23
81
|
}
|
|
24
|
-
}
|
|
25
82
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
83
|
+
var regExp = allowedAttributeList.filter(function (attrRegex) {
|
|
84
|
+
return attrRegex instanceof RegExp;
|
|
85
|
+
}); // Check if a regular expression validates the attribute.
|
|
31
86
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true
|
|
39
|
-
});
|
|
40
|
-
} else {
|
|
41
|
-
obj[key] = value;
|
|
87
|
+
for (var i = 0, len = regExp.length; i < len; i++) {
|
|
88
|
+
if (attrName.match(regExp[i])) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
42
91
|
}
|
|
43
92
|
|
|
44
|
-
return
|
|
93
|
+
return false;
|
|
45
94
|
}
|
|
46
95
|
|
|
47
|
-
function
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
96
|
+
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
|
|
97
|
+
if (unsafeHtml.length === 0) {
|
|
98
|
+
return unsafeHtml;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (sanitizeFn && typeof sanitizeFn === 'function') {
|
|
102
|
+
return sanitizeFn(unsafeHtml);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
var domParser = new window.DOMParser();
|
|
106
|
+
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
|
|
107
|
+
var whitelistKeys = Object.keys(whiteList);
|
|
108
|
+
var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
|
|
51
109
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
110
|
+
var _loop = function _loop(i, len) {
|
|
111
|
+
var el = elements[i];
|
|
112
|
+
var elName = el.nodeName.toLowerCase();
|
|
113
|
+
|
|
114
|
+
if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
|
|
115
|
+
el.parentNode.removeChild(el);
|
|
116
|
+
return "continue";
|
|
56
117
|
}
|
|
57
118
|
|
|
58
|
-
|
|
59
|
-
|
|
119
|
+
var attributeList = [].slice.call(el.attributes);
|
|
120
|
+
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
|
|
121
|
+
attributeList.forEach(function (attr) {
|
|
122
|
+
if (!allowedAttribute(attr, whitelistedAttributes)) {
|
|
123
|
+
el.removeAttribute(attr.nodeName);
|
|
124
|
+
}
|
|
60
125
|
});
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
for (var i = 0, len = elements.length; i < len; i++) {
|
|
129
|
+
var _ret = _loop(i);
|
|
130
|
+
|
|
131
|
+
if (_ret === "continue") continue;
|
|
61
132
|
}
|
|
62
133
|
|
|
63
|
-
return
|
|
134
|
+
return createdDocument.body.innerHTML;
|
|
64
135
|
}
|
|
65
136
|
|
|
137
|
+
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); }
|
|
138
|
+
|
|
139
|
+
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); } }
|
|
140
|
+
|
|
141
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
66
142
|
/**
|
|
67
143
|
* ------------------------------------------------------------------------
|
|
68
144
|
* Constants
|
|
@@ -70,12 +146,13 @@
|
|
|
70
146
|
*/
|
|
71
147
|
|
|
72
148
|
var NAME = 'tooltip';
|
|
73
|
-
var VERSION = '4.2
|
|
149
|
+
var VERSION = '4.5.2';
|
|
74
150
|
var DATA_KEY = 'bs.tooltip';
|
|
75
151
|
var EVENT_KEY = "." + DATA_KEY;
|
|
76
152
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
77
153
|
var CLASS_PREFIX = 'bs-tooltip';
|
|
78
154
|
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
|
155
|
+
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
|
|
79
156
|
var DefaultType = {
|
|
80
157
|
animation: 'boolean',
|
|
81
158
|
template: 'string',
|
|
@@ -85,10 +162,14 @@
|
|
|
85
162
|
html: 'boolean',
|
|
86
163
|
selector: '(string|boolean)',
|
|
87
164
|
placement: '(string|function)',
|
|
88
|
-
offset: '(number|string)',
|
|
165
|
+
offset: '(number|string|function)',
|
|
89
166
|
container: '(string|element|boolean)',
|
|
90
167
|
fallbackPlacement: '(string|array)',
|
|
91
|
-
boundary: '(string|element)'
|
|
168
|
+
boundary: '(string|element)',
|
|
169
|
+
sanitize: 'boolean',
|
|
170
|
+
sanitizeFn: '(null|function)',
|
|
171
|
+
whiteList: 'object',
|
|
172
|
+
popperConfig: '(null|object)'
|
|
92
173
|
};
|
|
93
174
|
var AttachmentMap = {
|
|
94
175
|
AUTO: 'auto',
|
|
@@ -109,12 +190,14 @@
|
|
|
109
190
|
offset: 0,
|
|
110
191
|
container: false,
|
|
111
192
|
fallbackPlacement: 'flip',
|
|
112
|
-
boundary: 'scrollParent'
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
193
|
+
boundary: 'scrollParent',
|
|
194
|
+
sanitize: true,
|
|
195
|
+
sanitizeFn: null,
|
|
196
|
+
whiteList: DefaultWhitelist,
|
|
197
|
+
popperConfig: null
|
|
117
198
|
};
|
|
199
|
+
var HOVER_STATE_SHOW = 'show';
|
|
200
|
+
var HOVER_STATE_OUT = 'out';
|
|
118
201
|
var Event = {
|
|
119
202
|
HIDE: "hide" + EVENT_KEY,
|
|
120
203
|
HIDDEN: "hidden" + EVENT_KEY,
|
|
@@ -127,36 +210,22 @@
|
|
|
127
210
|
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
|
128
211
|
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
|
129
212
|
};
|
|
130
|
-
var
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
var
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
MANUAL: 'manual'
|
|
144
|
-
/**
|
|
145
|
-
* ------------------------------------------------------------------------
|
|
146
|
-
* Class Definition
|
|
147
|
-
* ------------------------------------------------------------------------
|
|
148
|
-
*/
|
|
149
|
-
|
|
150
|
-
};
|
|
213
|
+
var CLASS_NAME_FADE = 'fade';
|
|
214
|
+
var CLASS_NAME_SHOW = 'show';
|
|
215
|
+
var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
|
|
216
|
+
var SELECTOR_ARROW = '.arrow';
|
|
217
|
+
var TRIGGER_HOVER = 'hover';
|
|
218
|
+
var TRIGGER_FOCUS = 'focus';
|
|
219
|
+
var TRIGGER_CLICK = 'click';
|
|
220
|
+
var TRIGGER_MANUAL = 'manual';
|
|
221
|
+
/**
|
|
222
|
+
* ------------------------------------------------------------------------
|
|
223
|
+
* Class Definition
|
|
224
|
+
* ------------------------------------------------------------------------
|
|
225
|
+
*/
|
|
151
226
|
|
|
152
|
-
var Tooltip =
|
|
153
|
-
/*#__PURE__*/
|
|
154
|
-
function () {
|
|
227
|
+
var Tooltip = /*#__PURE__*/function () {
|
|
155
228
|
function Tooltip(element, config) {
|
|
156
|
-
/**
|
|
157
|
-
* Check for Popper dependency
|
|
158
|
-
* Popper - https://popper.js.org
|
|
159
|
-
*/
|
|
160
229
|
if (typeof Popper === 'undefined') {
|
|
161
230
|
throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
|
|
162
231
|
} // private
|
|
@@ -213,7 +282,7 @@
|
|
|
213
282
|
context._leave(null, context);
|
|
214
283
|
}
|
|
215
284
|
} else {
|
|
216
|
-
if ($(this.getTipElement()).hasClass(
|
|
285
|
+
if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {
|
|
217
286
|
this._leave(null, this);
|
|
218
287
|
|
|
219
288
|
return;
|
|
@@ -227,7 +296,7 @@
|
|
|
227
296
|
clearTimeout(this._timeout);
|
|
228
297
|
$.removeData(this.element, this.constructor.DATA_KEY);
|
|
229
298
|
$(this.element).off(this.constructor.EVENT_KEY);
|
|
230
|
-
$(this.element).closest('.modal').off('hide.bs.modal');
|
|
299
|
+
$(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);
|
|
231
300
|
|
|
232
301
|
if (this.tip) {
|
|
233
302
|
$(this.tip).remove();
|
|
@@ -238,7 +307,7 @@
|
|
|
238
307
|
this._hoverState = null;
|
|
239
308
|
this._activeTrigger = null;
|
|
240
309
|
|
|
241
|
-
if (this._popper
|
|
310
|
+
if (this._popper) {
|
|
242
311
|
this._popper.destroy();
|
|
243
312
|
}
|
|
244
313
|
|
|
@@ -273,7 +342,7 @@
|
|
|
273
342
|
this.setContent();
|
|
274
343
|
|
|
275
344
|
if (this.config.animation) {
|
|
276
|
-
$(tip).addClass(
|
|
345
|
+
$(tip).addClass(CLASS_NAME_FADE);
|
|
277
346
|
}
|
|
278
347
|
|
|
279
348
|
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
|
|
@@ -291,32 +360,8 @@
|
|
|
291
360
|
}
|
|
292
361
|
|
|
293
362
|
$(this.element).trigger(this.constructor.Event.INSERTED);
|
|
294
|
-
this._popper = new Popper(this.element, tip,
|
|
295
|
-
|
|
296
|
-
modifiers: {
|
|
297
|
-
offset: {
|
|
298
|
-
offset: this.config.offset
|
|
299
|
-
},
|
|
300
|
-
flip: {
|
|
301
|
-
behavior: this.config.fallbackPlacement
|
|
302
|
-
},
|
|
303
|
-
arrow: {
|
|
304
|
-
element: Selector.ARROW
|
|
305
|
-
},
|
|
306
|
-
preventOverflow: {
|
|
307
|
-
boundariesElement: this.config.boundary
|
|
308
|
-
}
|
|
309
|
-
},
|
|
310
|
-
onCreate: function onCreate(data) {
|
|
311
|
-
if (data.originalPlacement !== data.placement) {
|
|
312
|
-
_this._handlePopperPlacementChange(data);
|
|
313
|
-
}
|
|
314
|
-
},
|
|
315
|
-
onUpdate: function onUpdate(data) {
|
|
316
|
-
return _this._handlePopperPlacementChange(data);
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
$(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
|
|
363
|
+
this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
|
|
364
|
+
$(tip).addClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra
|
|
320
365
|
// empty mouseover listeners to the body's immediate children;
|
|
321
366
|
// only needed because of broken event delegation on iOS
|
|
322
367
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
|
@@ -334,12 +379,12 @@
|
|
|
334
379
|
_this._hoverState = null;
|
|
335
380
|
$(_this.element).trigger(_this.constructor.Event.SHOWN);
|
|
336
381
|
|
|
337
|
-
if (prevHoverState ===
|
|
382
|
+
if (prevHoverState === HOVER_STATE_OUT) {
|
|
338
383
|
_this._leave(null, _this);
|
|
339
384
|
}
|
|
340
385
|
};
|
|
341
386
|
|
|
342
|
-
if ($(this.tip).hasClass(
|
|
387
|
+
if ($(this.tip).hasClass(CLASS_NAME_FADE)) {
|
|
343
388
|
var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
|
|
344
389
|
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
345
390
|
} else {
|
|
@@ -355,7 +400,7 @@
|
|
|
355
400
|
var hideEvent = $.Event(this.constructor.Event.HIDE);
|
|
356
401
|
|
|
357
402
|
var complete = function complete() {
|
|
358
|
-
if (_this2._hoverState !==
|
|
403
|
+
if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
|
|
359
404
|
tip.parentNode.removeChild(tip);
|
|
360
405
|
}
|
|
361
406
|
|
|
@@ -380,18 +425,18 @@
|
|
|
380
425
|
return;
|
|
381
426
|
}
|
|
382
427
|
|
|
383
|
-
$(tip).removeClass(
|
|
428
|
+
$(tip).removeClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra
|
|
384
429
|
// empty mouseover listeners we added for iOS support
|
|
385
430
|
|
|
386
431
|
if ('ontouchstart' in document.documentElement) {
|
|
387
432
|
$(document.body).children().off('mouseover', null, $.noop);
|
|
388
433
|
}
|
|
389
434
|
|
|
390
|
-
this._activeTrigger[
|
|
391
|
-
this._activeTrigger[
|
|
392
|
-
this._activeTrigger[
|
|
435
|
+
this._activeTrigger[TRIGGER_CLICK] = false;
|
|
436
|
+
this._activeTrigger[TRIGGER_FOCUS] = false;
|
|
437
|
+
this._activeTrigger[TRIGGER_HOVER] = false;
|
|
393
438
|
|
|
394
|
-
if ($(this.tip).hasClass(
|
|
439
|
+
if ($(this.tip).hasClass(CLASS_NAME_FADE)) {
|
|
395
440
|
var transitionDuration = Util.getTransitionDurationFromElement(tip);
|
|
396
441
|
$(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
397
442
|
} else {
|
|
@@ -405,8 +450,8 @@
|
|
|
405
450
|
if (this._popper !== null) {
|
|
406
451
|
this._popper.scheduleUpdate();
|
|
407
452
|
}
|
|
408
|
-
}
|
|
409
|
-
|
|
453
|
+
} // Protected
|
|
454
|
+
;
|
|
410
455
|
|
|
411
456
|
_proto.isWithContent = function isWithContent() {
|
|
412
457
|
return Boolean(this.getTitle());
|
|
@@ -423,24 +468,32 @@
|
|
|
423
468
|
|
|
424
469
|
_proto.setContent = function setContent() {
|
|
425
470
|
var tip = this.getTipElement();
|
|
426
|
-
this.setElementContent($(tip.querySelectorAll(
|
|
427
|
-
$(tip).removeClass(
|
|
471
|
+
this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());
|
|
472
|
+
$(tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
|
|
428
473
|
};
|
|
429
474
|
|
|
430
475
|
_proto.setElementContent = function setElementContent($element, content) {
|
|
431
|
-
var html = this.config.html;
|
|
432
|
-
|
|
433
476
|
if (typeof content === 'object' && (content.nodeType || content.jquery)) {
|
|
434
477
|
// Content is a DOM node or a jQuery
|
|
435
|
-
if (html) {
|
|
478
|
+
if (this.config.html) {
|
|
436
479
|
if (!$(content).parent().is($element)) {
|
|
437
480
|
$element.empty().append(content);
|
|
438
481
|
}
|
|
439
482
|
} else {
|
|
440
483
|
$element.text($(content).text());
|
|
441
484
|
}
|
|
485
|
+
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
if (this.config.html) {
|
|
490
|
+
if (this.config.sanitize) {
|
|
491
|
+
content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
$element.html(content);
|
|
442
495
|
} else {
|
|
443
|
-
$element
|
|
496
|
+
$element.text(content);
|
|
444
497
|
}
|
|
445
498
|
};
|
|
446
499
|
|
|
@@ -452,8 +505,54 @@
|
|
|
452
505
|
}
|
|
453
506
|
|
|
454
507
|
return title;
|
|
455
|
-
}
|
|
508
|
+
} // Private
|
|
509
|
+
;
|
|
510
|
+
|
|
511
|
+
_proto._getPopperConfig = function _getPopperConfig(attachment) {
|
|
512
|
+
var _this3 = this;
|
|
513
|
+
|
|
514
|
+
var defaultBsConfig = {
|
|
515
|
+
placement: attachment,
|
|
516
|
+
modifiers: {
|
|
517
|
+
offset: this._getOffset(),
|
|
518
|
+
flip: {
|
|
519
|
+
behavior: this.config.fallbackPlacement
|
|
520
|
+
},
|
|
521
|
+
arrow: {
|
|
522
|
+
element: SELECTOR_ARROW
|
|
523
|
+
},
|
|
524
|
+
preventOverflow: {
|
|
525
|
+
boundariesElement: this.config.boundary
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
onCreate: function onCreate(data) {
|
|
529
|
+
if (data.originalPlacement !== data.placement) {
|
|
530
|
+
_this3._handlePopperPlacementChange(data);
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
onUpdate: function onUpdate(data) {
|
|
534
|
+
return _this3._handlePopperPlacementChange(data);
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
return _extends({}, defaultBsConfig, this.config.popperConfig);
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
_proto._getOffset = function _getOffset() {
|
|
541
|
+
var _this4 = this;
|
|
542
|
+
|
|
543
|
+
var offset = {};
|
|
544
|
+
|
|
545
|
+
if (typeof this.config.offset === 'function') {
|
|
546
|
+
offset.fn = function (data) {
|
|
547
|
+
data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
|
|
548
|
+
return data;
|
|
549
|
+
};
|
|
550
|
+
} else {
|
|
551
|
+
offset.offset = this.config.offset;
|
|
552
|
+
}
|
|
456
553
|
|
|
554
|
+
return offset;
|
|
555
|
+
};
|
|
457
556
|
|
|
458
557
|
_proto._getContainer = function _getContainer() {
|
|
459
558
|
if (this.config.container === false) {
|
|
@@ -472,32 +571,35 @@
|
|
|
472
571
|
};
|
|
473
572
|
|
|
474
573
|
_proto._setListeners = function _setListeners() {
|
|
475
|
-
var
|
|
574
|
+
var _this5 = this;
|
|
476
575
|
|
|
477
576
|
var triggers = this.config.trigger.split(' ');
|
|
478
577
|
triggers.forEach(function (trigger) {
|
|
479
578
|
if (trigger === 'click') {
|
|
480
|
-
$(
|
|
481
|
-
return
|
|
579
|
+
$(_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
|
|
580
|
+
return _this5.toggle(event);
|
|
482
581
|
});
|
|
483
|
-
} else if (trigger !==
|
|
484
|
-
var eventIn = trigger ===
|
|
485
|
-
var eventOut = trigger ===
|
|
486
|
-
$(
|
|
487
|
-
return
|
|
488
|
-
}).on(eventOut,
|
|
489
|
-
return
|
|
582
|
+
} else if (trigger !== TRIGGER_MANUAL) {
|
|
583
|
+
var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
|
|
584
|
+
var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
|
|
585
|
+
$(_this5.element).on(eventIn, _this5.config.selector, function (event) {
|
|
586
|
+
return _this5._enter(event);
|
|
587
|
+
}).on(eventOut, _this5.config.selector, function (event) {
|
|
588
|
+
return _this5._leave(event);
|
|
490
589
|
});
|
|
491
590
|
}
|
|
492
591
|
});
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
592
|
+
|
|
593
|
+
this._hideModalHandler = function () {
|
|
594
|
+
if (_this5.element) {
|
|
595
|
+
_this5.hide();
|
|
496
596
|
}
|
|
497
|
-
}
|
|
597
|
+
};
|
|
598
|
+
|
|
599
|
+
$(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);
|
|
498
600
|
|
|
499
601
|
if (this.config.selector) {
|
|
500
|
-
this.config =
|
|
602
|
+
this.config = _extends({}, this.config, {
|
|
501
603
|
trigger: 'manual',
|
|
502
604
|
selector: ''
|
|
503
605
|
});
|
|
@@ -525,16 +627,16 @@
|
|
|
525
627
|
}
|
|
526
628
|
|
|
527
629
|
if (event) {
|
|
528
|
-
context._activeTrigger[event.type === 'focusin' ?
|
|
630
|
+
context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
|
|
529
631
|
}
|
|
530
632
|
|
|
531
|
-
if ($(context.getTipElement()).hasClass(
|
|
532
|
-
context._hoverState =
|
|
633
|
+
if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {
|
|
634
|
+
context._hoverState = HOVER_STATE_SHOW;
|
|
533
635
|
return;
|
|
534
636
|
}
|
|
535
637
|
|
|
536
638
|
clearTimeout(context._timeout);
|
|
537
|
-
context._hoverState =
|
|
639
|
+
context._hoverState = HOVER_STATE_SHOW;
|
|
538
640
|
|
|
539
641
|
if (!context.config.delay || !context.config.delay.show) {
|
|
540
642
|
context.show();
|
|
@@ -542,7 +644,7 @@
|
|
|
542
644
|
}
|
|
543
645
|
|
|
544
646
|
context._timeout = setTimeout(function () {
|
|
545
|
-
if (context._hoverState ===
|
|
647
|
+
if (context._hoverState === HOVER_STATE_SHOW) {
|
|
546
648
|
context.show();
|
|
547
649
|
}
|
|
548
650
|
}, context.config.delay.show);
|
|
@@ -558,7 +660,7 @@
|
|
|
558
660
|
}
|
|
559
661
|
|
|
560
662
|
if (event) {
|
|
561
|
-
context._activeTrigger[event.type === 'focusout' ?
|
|
663
|
+
context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
|
|
562
664
|
}
|
|
563
665
|
|
|
564
666
|
if (context._isWithActiveTrigger()) {
|
|
@@ -566,7 +668,7 @@
|
|
|
566
668
|
}
|
|
567
669
|
|
|
568
670
|
clearTimeout(context._timeout);
|
|
569
|
-
context._hoverState =
|
|
671
|
+
context._hoverState = HOVER_STATE_OUT;
|
|
570
672
|
|
|
571
673
|
if (!context.config.delay || !context.config.delay.hide) {
|
|
572
674
|
context.hide();
|
|
@@ -574,7 +676,7 @@
|
|
|
574
676
|
}
|
|
575
677
|
|
|
576
678
|
context._timeout = setTimeout(function () {
|
|
577
|
-
if (context._hoverState ===
|
|
679
|
+
if (context._hoverState === HOVER_STATE_OUT) {
|
|
578
680
|
context.hide();
|
|
579
681
|
}
|
|
580
682
|
}, context.config.delay.hide);
|
|
@@ -591,7 +693,13 @@
|
|
|
591
693
|
};
|
|
592
694
|
|
|
593
695
|
_proto._getConfig = function _getConfig(config) {
|
|
594
|
-
|
|
696
|
+
var dataAttributes = $(this.element).data();
|
|
697
|
+
Object.keys(dataAttributes).forEach(function (dataAttr) {
|
|
698
|
+
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
|
|
699
|
+
delete dataAttributes[dataAttr];
|
|
700
|
+
}
|
|
701
|
+
});
|
|
702
|
+
config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
|
|
595
703
|
|
|
596
704
|
if (typeof config.delay === 'number') {
|
|
597
705
|
config.delay = {
|
|
@@ -609,6 +717,11 @@
|
|
|
609
717
|
}
|
|
610
718
|
|
|
611
719
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
720
|
+
|
|
721
|
+
if (config.sanitize) {
|
|
722
|
+
config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
|
|
723
|
+
}
|
|
724
|
+
|
|
612
725
|
return config;
|
|
613
726
|
};
|
|
614
727
|
|
|
@@ -636,8 +749,7 @@
|
|
|
636
749
|
};
|
|
637
750
|
|
|
638
751
|
_proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
|
|
639
|
-
|
|
640
|
-
this.tip = popperInstance.popper;
|
|
752
|
+
this.tip = popperData.instance.popper;
|
|
641
753
|
|
|
642
754
|
this._cleanTipClass();
|
|
643
755
|
|
|
@@ -652,13 +764,13 @@
|
|
|
652
764
|
return;
|
|
653
765
|
}
|
|
654
766
|
|
|
655
|
-
$(tip).removeClass(
|
|
767
|
+
$(tip).removeClass(CLASS_NAME_FADE);
|
|
656
768
|
this.config.animation = false;
|
|
657
769
|
this.hide();
|
|
658
770
|
this.show();
|
|
659
771
|
this.config.animation = initConfigAnimation;
|
|
660
|
-
}
|
|
661
|
-
|
|
772
|
+
} // Static
|
|
773
|
+
;
|
|
662
774
|
|
|
663
775
|
Tooltip._jQueryInterface = function _jQueryInterface(config) {
|
|
664
776
|
return this.each(function () {
|