bootstrap 4.0.0.beta3 → 4.6.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 +5 -5
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -2
- data/README.md +2 -2
- data/Rakefile +4 -2
- data/assets/javascripts/bootstrap/alert.js +79 -68
- data/assets/javascripts/bootstrap/button.js +140 -78
- data/assets/javascripts/bootstrap/carousel.js +294 -158
- data/assets/javascripts/bootstrap/collapse.js +157 -133
- data/assets/javascripts/bootstrap/dropdown.js +257 -167
- data/assets/javascripts/bootstrap/modal.js +285 -204
- data/assets/javascripts/bootstrap/popover.js +101 -60
- data/assets/javascripts/bootstrap/scrollspy.js +127 -106
- data/assets/javascripts/bootstrap/tab.js +113 -101
- data/assets/javascripts/bootstrap/toast.js +267 -0
- data/assets/javascripts/bootstrap/tooltip.js +406 -188
- data/assets/javascripts/bootstrap/util.js +106 -55
- data/assets/javascripts/bootstrap-sprockets.js +1 -0
- data/assets/javascripts/bootstrap.js +1946 -1482
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/stylesheets/_bootstrap-grid.scss +7 -12
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +6 -4
- data/assets/stylesheets/bootstrap/_alert.scss +3 -2
- data/assets/stylesheets/bootstrap/_badge.scss +8 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +10 -6
- data/assets/stylesheets/bootstrap/_button-group.scss +17 -20
- data/assets/stylesheets/bootstrap/_buttons.scss +23 -28
- data/assets/stylesheets/bootstrap/_card.scss +77 -61
- data/assets/stylesheets/bootstrap/_carousel.scss +72 -63
- data/assets/stylesheets/bootstrap/_close.scss +15 -9
- data/assets/stylesheets/bootstrap/_code.scss +6 -14
- data/assets/stylesheets/bootstrap/_custom-forms.scss +287 -43
- data/assets/stylesheets/bootstrap/_dropdown.scss +70 -9
- data/assets/stylesheets/bootstrap/_forms.scss +56 -42
- data/assets/stylesheets/bootstrap/_functions.scss +117 -13
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +4 -4
- data/assets/stylesheets/bootstrap/_input-group.scss +80 -25
- data/assets/stylesheets/bootstrap/_jumbotron.scss +2 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +63 -24
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -4
- data/assets/stylesheets/bootstrap/_modal.scss +96 -24
- data/assets/stylesheets/bootstrap/_nav.scss +14 -7
- data/assets/stylesheets/bootstrap/_navbar.scss +66 -45
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -8
- data/assets/stylesheets/bootstrap/_popover.scss +56 -69
- data/assets/stylesheets/bootstrap/_print.scss +41 -19
- data/assets/stylesheets/bootstrap/_progress.scss +20 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +88 -109
- data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
- data/assets/stylesheets/bootstrap/_tables.scss +19 -14
- data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
- data/assets/stylesheets/bootstrap/_transitions.scss +10 -20
- data/assets/stylesheets/bootstrap/_type.scss +19 -19
- data/assets/stylesheets/bootstrap/_utilities.scss +4 -0
- data/assets/stylesheets/bootstrap/_variables.scss +492 -215
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +8 -3
- 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/_breakpoints.scss +11 -9
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +35 -26
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +13 -16
- 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 +102 -40
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +36 -25
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +34 -17
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +27 -51
- data/assets/stylesheets/bootstrap/mixins/_image.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +10 -13
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -6
- data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +11 -2
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +20 -3
- 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 +23 -2
- data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -36
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +28 -8
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
- data/bootstrap.gemspec +7 -4
- data/lib/bootstrap/engine.rb +3 -0
- data/lib/bootstrap/version.rb +4 -2
- data/lib/bootstrap.rb +10 -7
- data/tasks/updater/js.rb +18 -6
- data/tasks/updater/network.rb +8 -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 +21 -15
- metadata +29 -16
- data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
|
@@ -1,93 +1,130 @@
|
|
|
1
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap carousel.js v4.6.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.jQuery, global.Util));
|
|
10
|
+
})(this, (function ($, Util) { 'use strict';
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
|
15
|
+
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
|
|
16
|
+
|
|
17
|
+
function _defineProperties(target, props) {
|
|
18
|
+
for (var i = 0; i < props.length; i++) {
|
|
19
|
+
var descriptor = props[i];
|
|
20
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
+
descriptor.configurable = true;
|
|
22
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
28
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
29
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
|
+
Object.defineProperty(Constructor, "prototype", {
|
|
31
|
+
writable: false
|
|
32
|
+
});
|
|
33
|
+
return Constructor;
|
|
34
|
+
}
|
|
2
35
|
|
|
3
|
-
function
|
|
36
|
+
function _extends() {
|
|
37
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
38
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
39
|
+
var source = arguments[i];
|
|
4
40
|
|
|
5
|
-
|
|
41
|
+
for (var key in source) {
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
43
|
+
target[key] = source[key];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return target;
|
|
49
|
+
};
|
|
50
|
+
return _extends.apply(this, arguments);
|
|
51
|
+
}
|
|
6
52
|
|
|
7
|
-
/**
|
|
8
|
-
* --------------------------------------------------------------------------
|
|
9
|
-
* Bootstrap (v4.0.0-beta.3): carousel.js
|
|
10
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
11
|
-
* --------------------------------------------------------------------------
|
|
12
|
-
*/
|
|
13
|
-
var Carousel = function ($) {
|
|
14
53
|
/**
|
|
15
|
-
* ------------------------------------------------------------------------
|
|
16
54
|
* Constants
|
|
17
|
-
* ------------------------------------------------------------------------
|
|
18
55
|
*/
|
|
56
|
+
|
|
19
57
|
var NAME = 'carousel';
|
|
20
|
-
var VERSION = '4.
|
|
58
|
+
var VERSION = '4.6.2';
|
|
21
59
|
var DATA_KEY = 'bs.carousel';
|
|
22
60
|
var EVENT_KEY = "." + DATA_KEY;
|
|
23
61
|
var DATA_API_KEY = '.data-api';
|
|
24
|
-
var JQUERY_NO_CONFLICT =
|
|
25
|
-
var TRANSITION_DURATION = 600;
|
|
62
|
+
var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
|
|
26
63
|
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
|
|
27
64
|
|
|
28
65
|
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
|
|
29
66
|
|
|
30
67
|
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
|
|
31
68
|
|
|
69
|
+
var SWIPE_THRESHOLD = 40;
|
|
70
|
+
var CLASS_NAME_CAROUSEL = 'carousel';
|
|
71
|
+
var CLASS_NAME_ACTIVE = 'active';
|
|
72
|
+
var CLASS_NAME_SLIDE = 'slide';
|
|
73
|
+
var CLASS_NAME_RIGHT = 'carousel-item-right';
|
|
74
|
+
var CLASS_NAME_LEFT = 'carousel-item-left';
|
|
75
|
+
var CLASS_NAME_NEXT = 'carousel-item-next';
|
|
76
|
+
var CLASS_NAME_PREV = 'carousel-item-prev';
|
|
77
|
+
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
|
|
78
|
+
var DIRECTION_NEXT = 'next';
|
|
79
|
+
var DIRECTION_PREV = 'prev';
|
|
80
|
+
var DIRECTION_LEFT = 'left';
|
|
81
|
+
var DIRECTION_RIGHT = 'right';
|
|
82
|
+
var EVENT_SLIDE = "slide" + EVENT_KEY;
|
|
83
|
+
var EVENT_SLID = "slid" + EVENT_KEY;
|
|
84
|
+
var EVENT_KEYDOWN = "keydown" + EVENT_KEY;
|
|
85
|
+
var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY;
|
|
86
|
+
var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY;
|
|
87
|
+
var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY;
|
|
88
|
+
var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY;
|
|
89
|
+
var EVENT_TOUCHEND = "touchend" + EVENT_KEY;
|
|
90
|
+
var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY;
|
|
91
|
+
var EVENT_POINTERUP = "pointerup" + EVENT_KEY;
|
|
92
|
+
var EVENT_DRAG_START = "dragstart" + EVENT_KEY;
|
|
93
|
+
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
|
|
94
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
95
|
+
var SELECTOR_ACTIVE = '.active';
|
|
96
|
+
var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
|
|
97
|
+
var SELECTOR_ITEM = '.carousel-item';
|
|
98
|
+
var SELECTOR_ITEM_IMG = '.carousel-item img';
|
|
99
|
+
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
|
|
100
|
+
var SELECTOR_INDICATORS = '.carousel-indicators';
|
|
101
|
+
var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
|
|
102
|
+
var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
|
|
32
103
|
var Default = {
|
|
33
104
|
interval: 5000,
|
|
34
105
|
keyboard: true,
|
|
35
106
|
slide: false,
|
|
36
107
|
pause: 'hover',
|
|
37
|
-
wrap: true
|
|
108
|
+
wrap: true,
|
|
109
|
+
touch: true
|
|
38
110
|
};
|
|
39
111
|
var DefaultType = {
|
|
40
112
|
interval: '(number|boolean)',
|
|
41
113
|
keyboard: 'boolean',
|
|
42
114
|
slide: '(boolean|string)',
|
|
43
115
|
pause: '(string|boolean)',
|
|
44
|
-
wrap: 'boolean'
|
|
45
|
-
|
|
46
|
-
var Direction = {
|
|
47
|
-
NEXT: 'next',
|
|
48
|
-
PREV: 'prev',
|
|
49
|
-
LEFT: 'left',
|
|
50
|
-
RIGHT: 'right'
|
|
51
|
-
};
|
|
52
|
-
var Event = {
|
|
53
|
-
SLIDE: "slide" + EVENT_KEY,
|
|
54
|
-
SLID: "slid" + EVENT_KEY,
|
|
55
|
-
KEYDOWN: "keydown" + EVENT_KEY,
|
|
56
|
-
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
|
57
|
-
MOUSELEAVE: "mouseleave" + EVENT_KEY,
|
|
58
|
-
TOUCHEND: "touchend" + EVENT_KEY,
|
|
59
|
-
LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
|
|
60
|
-
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
|
116
|
+
wrap: 'boolean',
|
|
117
|
+
touch: 'boolean'
|
|
61
118
|
};
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
SLIDE: 'slide',
|
|
66
|
-
RIGHT: 'carousel-item-right',
|
|
67
|
-
LEFT: 'carousel-item-left',
|
|
68
|
-
NEXT: 'carousel-item-next',
|
|
69
|
-
PREV: 'carousel-item-prev',
|
|
70
|
-
ITEM: 'carousel-item'
|
|
71
|
-
};
|
|
72
|
-
var Selector = {
|
|
73
|
-
ACTIVE: '.active',
|
|
74
|
-
ACTIVE_ITEM: '.active.carousel-item',
|
|
75
|
-
ITEM: '.carousel-item',
|
|
76
|
-
NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
|
|
77
|
-
INDICATORS: '.carousel-indicators',
|
|
78
|
-
DATA_SLIDE: '[data-slide], [data-slide-to]',
|
|
79
|
-
DATA_RIDE: '[data-ride="carousel"]'
|
|
80
|
-
/**
|
|
81
|
-
* ------------------------------------------------------------------------
|
|
82
|
-
* Class Definition
|
|
83
|
-
* ------------------------------------------------------------------------
|
|
84
|
-
*/
|
|
85
|
-
|
|
119
|
+
var PointerType = {
|
|
120
|
+
TOUCH: 'touch',
|
|
121
|
+
PEN: 'pen'
|
|
86
122
|
};
|
|
123
|
+
/**
|
|
124
|
+
* Class definition
|
|
125
|
+
*/
|
|
87
126
|
|
|
88
|
-
var Carousel =
|
|
89
|
-
/*#__PURE__*/
|
|
90
|
-
function () {
|
|
127
|
+
var Carousel = /*#__PURE__*/function () {
|
|
91
128
|
function Carousel(element, config) {
|
|
92
129
|
this._items = null;
|
|
93
130
|
this._interval = null;
|
|
@@ -95,34 +132,39 @@ var Carousel = function ($) {
|
|
|
95
132
|
this._isPaused = false;
|
|
96
133
|
this._isSliding = false;
|
|
97
134
|
this.touchTimeout = null;
|
|
135
|
+
this.touchStartX = 0;
|
|
136
|
+
this.touchDeltaX = 0;
|
|
98
137
|
this._config = this._getConfig(config);
|
|
99
|
-
this._element =
|
|
100
|
-
this._indicatorsElement =
|
|
138
|
+
this._element = element;
|
|
139
|
+
this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);
|
|
140
|
+
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
|
|
141
|
+
this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
|
|
101
142
|
|
|
102
143
|
this._addEventListeners();
|
|
103
|
-
} //
|
|
144
|
+
} // Getters
|
|
104
145
|
|
|
105
146
|
|
|
106
147
|
var _proto = Carousel.prototype;
|
|
107
148
|
|
|
108
|
-
//
|
|
149
|
+
// Public
|
|
109
150
|
_proto.next = function next() {
|
|
110
151
|
if (!this._isSliding) {
|
|
111
|
-
this._slide(
|
|
152
|
+
this._slide(DIRECTION_NEXT);
|
|
112
153
|
}
|
|
113
154
|
};
|
|
114
155
|
|
|
115
156
|
_proto.nextWhenVisible = function nextWhenVisible() {
|
|
116
|
-
// Don't call next when the page isn't visible
|
|
157
|
+
var $element = $__default["default"](this._element); // Don't call next when the page isn't visible
|
|
117
158
|
// or the carousel or its parent isn't visible
|
|
118
|
-
|
|
159
|
+
|
|
160
|
+
if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {
|
|
119
161
|
this.next();
|
|
120
162
|
}
|
|
121
163
|
};
|
|
122
164
|
|
|
123
165
|
_proto.prev = function prev() {
|
|
124
166
|
if (!this._isSliding) {
|
|
125
|
-
this._slide(
|
|
167
|
+
this._slide(DIRECTION_PREV);
|
|
126
168
|
}
|
|
127
169
|
};
|
|
128
170
|
|
|
@@ -131,8 +173,8 @@ var Carousel = function ($) {
|
|
|
131
173
|
this._isPaused = true;
|
|
132
174
|
}
|
|
133
175
|
|
|
134
|
-
if (
|
|
135
|
-
|
|
176
|
+
if (this._element.querySelector(SELECTOR_NEXT_PREV)) {
|
|
177
|
+
Util__default["default"].triggerTransitionEnd(this._element);
|
|
136
178
|
this.cycle(true);
|
|
137
179
|
}
|
|
138
180
|
|
|
@@ -151,6 +193,8 @@ var Carousel = function ($) {
|
|
|
151
193
|
}
|
|
152
194
|
|
|
153
195
|
if (this._config.interval && !this._isPaused) {
|
|
196
|
+
this._updateInterval();
|
|
197
|
+
|
|
154
198
|
this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
|
|
155
199
|
}
|
|
156
200
|
};
|
|
@@ -158,7 +202,7 @@ var Carousel = function ($) {
|
|
|
158
202
|
_proto.to = function to(index) {
|
|
159
203
|
var _this = this;
|
|
160
204
|
|
|
161
|
-
this._activeElement =
|
|
205
|
+
this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
|
|
162
206
|
|
|
163
207
|
var activeIndex = this._getItemIndex(this._activeElement);
|
|
164
208
|
|
|
@@ -167,7 +211,7 @@ var Carousel = function ($) {
|
|
|
167
211
|
}
|
|
168
212
|
|
|
169
213
|
if (this._isSliding) {
|
|
170
|
-
$(this._element).one(
|
|
214
|
+
$__default["default"](this._element).one(EVENT_SLID, function () {
|
|
171
215
|
return _this.to(index);
|
|
172
216
|
});
|
|
173
217
|
return;
|
|
@@ -179,14 +223,14 @@ var Carousel = function ($) {
|
|
|
179
223
|
return;
|
|
180
224
|
}
|
|
181
225
|
|
|
182
|
-
var direction = index > activeIndex ?
|
|
226
|
+
var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
|
|
183
227
|
|
|
184
228
|
this._slide(direction, this._items[index]);
|
|
185
229
|
};
|
|
186
230
|
|
|
187
231
|
_proto.dispose = function dispose() {
|
|
188
|
-
$(this._element).off(EVENT_KEY);
|
|
189
|
-
|
|
232
|
+
$__default["default"](this._element).off(EVENT_KEY);
|
|
233
|
+
$__default["default"].removeData(this._element, DATA_KEY);
|
|
190
234
|
this._items = null;
|
|
191
235
|
this._config = null;
|
|
192
236
|
this._element = null;
|
|
@@ -195,51 +239,127 @@ var Carousel = function ($) {
|
|
|
195
239
|
this._isSliding = null;
|
|
196
240
|
this._activeElement = null;
|
|
197
241
|
this._indicatorsElement = null;
|
|
198
|
-
}
|
|
199
|
-
|
|
242
|
+
} // Private
|
|
243
|
+
;
|
|
200
244
|
|
|
201
245
|
_proto._getConfig = function _getConfig(config) {
|
|
202
246
|
config = _extends({}, Default, config);
|
|
203
|
-
|
|
247
|
+
Util__default["default"].typeCheckConfig(NAME, config, DefaultType);
|
|
204
248
|
return config;
|
|
205
249
|
};
|
|
206
250
|
|
|
251
|
+
_proto._handleSwipe = function _handleSwipe() {
|
|
252
|
+
var absDeltax = Math.abs(this.touchDeltaX);
|
|
253
|
+
|
|
254
|
+
if (absDeltax <= SWIPE_THRESHOLD) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
var direction = absDeltax / this.touchDeltaX;
|
|
259
|
+
this.touchDeltaX = 0; // swipe left
|
|
260
|
+
|
|
261
|
+
if (direction > 0) {
|
|
262
|
+
this.prev();
|
|
263
|
+
} // swipe right
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
if (direction < 0) {
|
|
267
|
+
this.next();
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
|
|
207
271
|
_proto._addEventListeners = function _addEventListeners() {
|
|
208
272
|
var _this2 = this;
|
|
209
273
|
|
|
210
274
|
if (this._config.keyboard) {
|
|
211
|
-
$(this._element).on(
|
|
275
|
+
$__default["default"](this._element).on(EVENT_KEYDOWN, function (event) {
|
|
212
276
|
return _this2._keydown(event);
|
|
213
277
|
});
|
|
214
278
|
}
|
|
215
279
|
|
|
216
280
|
if (this._config.pause === 'hover') {
|
|
217
|
-
$(this._element).on(
|
|
281
|
+
$__default["default"](this._element).on(EVENT_MOUSEENTER, function (event) {
|
|
218
282
|
return _this2.pause(event);
|
|
219
|
-
}).on(
|
|
283
|
+
}).on(EVENT_MOUSELEAVE, function (event) {
|
|
220
284
|
return _this2.cycle(event);
|
|
221
285
|
});
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
if (this._config.touch) {
|
|
289
|
+
this._addTouchEventListeners();
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
_proto._addTouchEventListeners = function _addTouchEventListeners() {
|
|
294
|
+
var _this3 = this;
|
|
295
|
+
|
|
296
|
+
if (!this._touchSupported) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
var start = function start(event) {
|
|
301
|
+
if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
|
|
302
|
+
_this3.touchStartX = event.originalEvent.clientX;
|
|
303
|
+
} else if (!_this3._pointerEvent) {
|
|
304
|
+
_this3.touchStartX = event.originalEvent.touches[0].clientX;
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
var move = function move(event) {
|
|
309
|
+
// ensure swiping with one touch and not pinching
|
|
310
|
+
_this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX;
|
|
311
|
+
};
|
|
222
312
|
|
|
223
|
-
|
|
224
|
-
|
|
313
|
+
var end = function end(event) {
|
|
314
|
+
if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
|
|
315
|
+
_this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
_this3._handleSwipe();
|
|
319
|
+
|
|
320
|
+
if (_this3._config.pause === 'hover') {
|
|
321
|
+
// If it's a touch-enabled device, mouseenter/leave are fired as
|
|
225
322
|
// part of the mouse compatibility events on first tap - the carousel
|
|
226
323
|
// would stop cycling until user tapped out of it;
|
|
227
324
|
// here, we listen for touchend, explicitly pause the carousel
|
|
228
325
|
// (as if it's the second time we tap on it, mouseenter compat event
|
|
229
326
|
// is NOT fired) and after a timeout (to allow for mouse compatibility
|
|
230
327
|
// events to fire) we explicitly restart cycling
|
|
231
|
-
|
|
232
|
-
_this2.pause();
|
|
328
|
+
_this3.pause();
|
|
233
329
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
330
|
+
if (_this3.touchTimeout) {
|
|
331
|
+
clearTimeout(_this3.touchTimeout);
|
|
332
|
+
}
|
|
237
333
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
});
|
|
334
|
+
_this3.touchTimeout = setTimeout(function (event) {
|
|
335
|
+
return _this3.cycle(event);
|
|
336
|
+
}, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
|
|
242
337
|
}
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
$__default["default"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {
|
|
341
|
+
return e.preventDefault();
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
if (this._pointerEvent) {
|
|
345
|
+
$__default["default"](this._element).on(EVENT_POINTERDOWN, function (event) {
|
|
346
|
+
return start(event);
|
|
347
|
+
});
|
|
348
|
+
$__default["default"](this._element).on(EVENT_POINTERUP, function (event) {
|
|
349
|
+
return end(event);
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
this._element.classList.add(CLASS_NAME_POINTER_EVENT);
|
|
353
|
+
} else {
|
|
354
|
+
$__default["default"](this._element).on(EVENT_TOUCHSTART, function (event) {
|
|
355
|
+
return start(event);
|
|
356
|
+
});
|
|
357
|
+
$__default["default"](this._element).on(EVENT_TOUCHMOVE, function (event) {
|
|
358
|
+
return move(event);
|
|
359
|
+
});
|
|
360
|
+
$__default["default"](this._element).on(EVENT_TOUCHEND, function (event) {
|
|
361
|
+
return end(event);
|
|
362
|
+
});
|
|
243
363
|
}
|
|
244
364
|
};
|
|
245
365
|
|
|
@@ -258,20 +378,17 @@ var Carousel = function ($) {
|
|
|
258
378
|
event.preventDefault();
|
|
259
379
|
this.next();
|
|
260
380
|
break;
|
|
261
|
-
|
|
262
|
-
default:
|
|
263
|
-
return;
|
|
264
381
|
}
|
|
265
382
|
};
|
|
266
383
|
|
|
267
384
|
_proto._getItemIndex = function _getItemIndex(element) {
|
|
268
|
-
this._items =
|
|
385
|
+
this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];
|
|
269
386
|
return this._items.indexOf(element);
|
|
270
387
|
};
|
|
271
388
|
|
|
272
389
|
_proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
|
|
273
|
-
var isNextDirection = direction ===
|
|
274
|
-
var isPrevDirection = direction ===
|
|
390
|
+
var isNextDirection = direction === DIRECTION_NEXT;
|
|
391
|
+
var isPrevDirection = direction === DIRECTION_PREV;
|
|
275
392
|
|
|
276
393
|
var activeIndex = this._getItemIndex(activeElement);
|
|
277
394
|
|
|
@@ -282,7 +399,7 @@ var Carousel = function ($) {
|
|
|
282
399
|
return activeElement;
|
|
283
400
|
}
|
|
284
401
|
|
|
285
|
-
var delta = direction ===
|
|
402
|
+
var delta = direction === DIRECTION_PREV ? -1 : 1;
|
|
286
403
|
var itemIndex = (activeIndex + delta) % this._items.length;
|
|
287
404
|
return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
|
|
288
405
|
};
|
|
@@ -290,34 +407,52 @@ var Carousel = function ($) {
|
|
|
290
407
|
_proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
|
|
291
408
|
var targetIndex = this._getItemIndex(relatedTarget);
|
|
292
409
|
|
|
293
|
-
var fromIndex = this._getItemIndex(
|
|
410
|
+
var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));
|
|
294
411
|
|
|
295
|
-
var slideEvent =
|
|
412
|
+
var slideEvent = $__default["default"].Event(EVENT_SLIDE, {
|
|
296
413
|
relatedTarget: relatedTarget,
|
|
297
414
|
direction: eventDirectionName,
|
|
298
415
|
from: fromIndex,
|
|
299
416
|
to: targetIndex
|
|
300
417
|
});
|
|
301
|
-
$(this._element).trigger(slideEvent);
|
|
418
|
+
$__default["default"](this._element).trigger(slideEvent);
|
|
302
419
|
return slideEvent;
|
|
303
420
|
};
|
|
304
421
|
|
|
305
422
|
_proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
|
|
306
423
|
if (this._indicatorsElement) {
|
|
307
|
-
|
|
424
|
+
var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE));
|
|
425
|
+
$__default["default"](indicators).removeClass(CLASS_NAME_ACTIVE);
|
|
308
426
|
|
|
309
427
|
var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
|
|
310
428
|
|
|
311
429
|
if (nextIndicator) {
|
|
312
|
-
$(nextIndicator).addClass(
|
|
430
|
+
$__default["default"](nextIndicator).addClass(CLASS_NAME_ACTIVE);
|
|
313
431
|
}
|
|
314
432
|
}
|
|
315
433
|
};
|
|
316
434
|
|
|
435
|
+
_proto._updateInterval = function _updateInterval() {
|
|
436
|
+
var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);
|
|
437
|
+
|
|
438
|
+
if (!element) {
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
|
|
443
|
+
|
|
444
|
+
if (elementInterval) {
|
|
445
|
+
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
|
|
446
|
+
this._config.interval = elementInterval;
|
|
447
|
+
} else {
|
|
448
|
+
this._config.interval = this._config.defaultInterval || this._config.interval;
|
|
449
|
+
}
|
|
450
|
+
};
|
|
451
|
+
|
|
317
452
|
_proto._slide = function _slide(direction, element) {
|
|
318
|
-
var
|
|
453
|
+
var _this4 = this;
|
|
319
454
|
|
|
320
|
-
var activeElement =
|
|
455
|
+
var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
|
|
321
456
|
|
|
322
457
|
var activeElementIndex = this._getItemIndex(activeElement);
|
|
323
458
|
|
|
@@ -330,17 +465,17 @@ var Carousel = function ($) {
|
|
|
330
465
|
var orderClassName;
|
|
331
466
|
var eventDirectionName;
|
|
332
467
|
|
|
333
|
-
if (direction ===
|
|
334
|
-
directionalClassName =
|
|
335
|
-
orderClassName =
|
|
336
|
-
eventDirectionName =
|
|
468
|
+
if (direction === DIRECTION_NEXT) {
|
|
469
|
+
directionalClassName = CLASS_NAME_LEFT;
|
|
470
|
+
orderClassName = CLASS_NAME_NEXT;
|
|
471
|
+
eventDirectionName = DIRECTION_LEFT;
|
|
337
472
|
} else {
|
|
338
|
-
directionalClassName =
|
|
339
|
-
orderClassName =
|
|
340
|
-
eventDirectionName =
|
|
473
|
+
directionalClassName = CLASS_NAME_RIGHT;
|
|
474
|
+
orderClassName = CLASS_NAME_PREV;
|
|
475
|
+
eventDirectionName = DIRECTION_RIGHT;
|
|
341
476
|
}
|
|
342
477
|
|
|
343
|
-
if (nextElement && $(nextElement).hasClass(
|
|
478
|
+
if (nextElement && $__default["default"](nextElement).hasClass(CLASS_NAME_ACTIVE)) {
|
|
344
479
|
this._isSliding = false;
|
|
345
480
|
return;
|
|
346
481
|
}
|
|
@@ -352,7 +487,7 @@ var Carousel = function ($) {
|
|
|
352
487
|
}
|
|
353
488
|
|
|
354
489
|
if (!activeElement || !nextElement) {
|
|
355
|
-
//
|
|
490
|
+
// Some weirdness is happening, so we bail
|
|
356
491
|
return;
|
|
357
492
|
}
|
|
358
493
|
|
|
@@ -364,44 +499,46 @@ var Carousel = function ($) {
|
|
|
364
499
|
|
|
365
500
|
this._setActiveIndicatorElement(nextElement);
|
|
366
501
|
|
|
367
|
-
|
|
502
|
+
this._activeElement = nextElement;
|
|
503
|
+
var slidEvent = $__default["default"].Event(EVENT_SLID, {
|
|
368
504
|
relatedTarget: nextElement,
|
|
369
505
|
direction: eventDirectionName,
|
|
370
506
|
from: activeElementIndex,
|
|
371
507
|
to: nextElementIndex
|
|
372
508
|
});
|
|
373
509
|
|
|
374
|
-
if (
|
|
375
|
-
$(nextElement).addClass(orderClassName);
|
|
376
|
-
|
|
377
|
-
$(activeElement).addClass(directionalClassName);
|
|
378
|
-
$(nextElement).addClass(directionalClassName);
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
$(
|
|
382
|
-
|
|
510
|
+
if ($__default["default"](this._element).hasClass(CLASS_NAME_SLIDE)) {
|
|
511
|
+
$__default["default"](nextElement).addClass(orderClassName);
|
|
512
|
+
Util__default["default"].reflow(nextElement);
|
|
513
|
+
$__default["default"](activeElement).addClass(directionalClassName);
|
|
514
|
+
$__default["default"](nextElement).addClass(directionalClassName);
|
|
515
|
+
var transitionDuration = Util__default["default"].getTransitionDurationFromElement(activeElement);
|
|
516
|
+
$__default["default"](activeElement).one(Util__default["default"].TRANSITION_END, function () {
|
|
517
|
+
$__default["default"](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE);
|
|
518
|
+
$__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE + " " + orderClassName + " " + directionalClassName);
|
|
519
|
+
_this4._isSliding = false;
|
|
383
520
|
setTimeout(function () {
|
|
384
|
-
return $(
|
|
521
|
+
return $__default["default"](_this4._element).trigger(slidEvent);
|
|
385
522
|
}, 0);
|
|
386
|
-
}).emulateTransitionEnd(
|
|
523
|
+
}).emulateTransitionEnd(transitionDuration);
|
|
387
524
|
} else {
|
|
388
|
-
$(activeElement).removeClass(
|
|
389
|
-
$(nextElement).addClass(
|
|
525
|
+
$__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE);
|
|
526
|
+
$__default["default"](nextElement).addClass(CLASS_NAME_ACTIVE);
|
|
390
527
|
this._isSliding = false;
|
|
391
|
-
$(this._element).trigger(slidEvent);
|
|
528
|
+
$__default["default"](this._element).trigger(slidEvent);
|
|
392
529
|
}
|
|
393
530
|
|
|
394
531
|
if (isCycling) {
|
|
395
532
|
this.cycle();
|
|
396
533
|
}
|
|
397
|
-
}
|
|
398
|
-
|
|
534
|
+
} // Static
|
|
535
|
+
;
|
|
399
536
|
|
|
400
537
|
Carousel._jQueryInterface = function _jQueryInterface(config) {
|
|
401
538
|
return this.each(function () {
|
|
402
|
-
var data = $(this).data(DATA_KEY);
|
|
539
|
+
var data = $__default["default"](this).data(DATA_KEY);
|
|
403
540
|
|
|
404
|
-
var _config = _extends({}, Default, $(this).data());
|
|
541
|
+
var _config = _extends({}, Default, $__default["default"](this).data());
|
|
405
542
|
|
|
406
543
|
if (typeof config === 'object') {
|
|
407
544
|
_config = _extends({}, _config, config);
|
|
@@ -411,18 +548,18 @@ var Carousel = function ($) {
|
|
|
411
548
|
|
|
412
549
|
if (!data) {
|
|
413
550
|
data = new Carousel(this, _config);
|
|
414
|
-
$(this).data(DATA_KEY, data);
|
|
551
|
+
$__default["default"](this).data(DATA_KEY, data);
|
|
415
552
|
}
|
|
416
553
|
|
|
417
554
|
if (typeof config === 'number') {
|
|
418
555
|
data.to(config);
|
|
419
556
|
} else if (typeof action === 'string') {
|
|
420
557
|
if (typeof data[action] === 'undefined') {
|
|
421
|
-
throw new
|
|
558
|
+
throw new TypeError("No method named \"" + action + "\"");
|
|
422
559
|
}
|
|
423
560
|
|
|
424
561
|
data[action]();
|
|
425
|
-
} else if (_config.interval) {
|
|
562
|
+
} else if (_config.interval && _config.ride) {
|
|
426
563
|
data.pause();
|
|
427
564
|
data.cycle();
|
|
428
565
|
}
|
|
@@ -430,19 +567,19 @@ var Carousel = function ($) {
|
|
|
430
567
|
};
|
|
431
568
|
|
|
432
569
|
Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
|
|
433
|
-
var selector =
|
|
570
|
+
var selector = Util__default["default"].getSelectorFromElement(this);
|
|
434
571
|
|
|
435
572
|
if (!selector) {
|
|
436
573
|
return;
|
|
437
574
|
}
|
|
438
575
|
|
|
439
|
-
var target = $(selector)[0];
|
|
576
|
+
var target = $__default["default"](selector)[0];
|
|
440
577
|
|
|
441
|
-
if (!target || !$(target).hasClass(
|
|
578
|
+
if (!target || !$__default["default"](target).hasClass(CLASS_NAME_CAROUSEL)) {
|
|
442
579
|
return;
|
|
443
580
|
}
|
|
444
581
|
|
|
445
|
-
var config = _extends({}, $(target).data(), $(this).data());
|
|
582
|
+
var config = _extends({}, $__default["default"](target).data(), $__default["default"](this).data());
|
|
446
583
|
|
|
447
584
|
var slideIndex = this.getAttribute('data-slide-to');
|
|
448
585
|
|
|
@@ -450,10 +587,10 @@ var Carousel = function ($) {
|
|
|
450
587
|
config.interval = false;
|
|
451
588
|
}
|
|
452
589
|
|
|
453
|
-
Carousel._jQueryInterface.call($(target), config);
|
|
590
|
+
Carousel._jQueryInterface.call($__default["default"](target), config);
|
|
454
591
|
|
|
455
592
|
if (slideIndex) {
|
|
456
|
-
$(target).data(DATA_KEY).to(slideIndex);
|
|
593
|
+
$__default["default"](target).data(DATA_KEY).to(slideIndex);
|
|
457
594
|
}
|
|
458
595
|
|
|
459
596
|
event.preventDefault();
|
|
@@ -474,33 +611,32 @@ var Carousel = function ($) {
|
|
|
474
611
|
return Carousel;
|
|
475
612
|
}();
|
|
476
613
|
/**
|
|
477
|
-
*
|
|
478
|
-
* Data Api implementation
|
|
479
|
-
* ------------------------------------------------------------------------
|
|
614
|
+
* Data API implementation
|
|
480
615
|
*/
|
|
481
616
|
|
|
482
617
|
|
|
483
|
-
$(document).on(
|
|
484
|
-
$(window).on(
|
|
485
|
-
|
|
486
|
-
|
|
618
|
+
$__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);
|
|
619
|
+
$__default["default"](window).on(EVENT_LOAD_DATA_API, function () {
|
|
620
|
+
var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));
|
|
621
|
+
|
|
622
|
+
for (var i = 0, len = carousels.length; i < len; i++) {
|
|
623
|
+
var $carousel = $__default["default"](carousels[i]);
|
|
487
624
|
|
|
488
625
|
Carousel._jQueryInterface.call($carousel, $carousel.data());
|
|
489
|
-
}
|
|
626
|
+
}
|
|
490
627
|
});
|
|
491
628
|
/**
|
|
492
|
-
* ------------------------------------------------------------------------
|
|
493
629
|
* jQuery
|
|
494
|
-
* ------------------------------------------------------------------------
|
|
495
630
|
*/
|
|
496
631
|
|
|
497
|
-
|
|
498
|
-
|
|
632
|
+
$__default["default"].fn[NAME] = Carousel._jQueryInterface;
|
|
633
|
+
$__default["default"].fn[NAME].Constructor = Carousel;
|
|
499
634
|
|
|
500
|
-
|
|
501
|
-
|
|
635
|
+
$__default["default"].fn[NAME].noConflict = function () {
|
|
636
|
+
$__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
502
637
|
return Carousel._jQueryInterface;
|
|
503
638
|
};
|
|
504
639
|
|
|
505
640
|
return Carousel;
|
|
506
|
-
|
|
641
|
+
|
|
642
|
+
}));
|