bootstrap 4.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (145) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.gitignore +19 -0
  4. data/.travis.yml +16 -0
  5. data/CHANGELOG.md +7 -0
  6. data/Gemfile +13 -0
  7. data/LICENSE +21 -0
  8. data/README.md +143 -0
  9. data/Rakefile +75 -0
  10. data/assets/javascripts/bootstrap-sprockets.js +11 -0
  11. data/assets/javascripts/bootstrap.js +3560 -0
  12. data/assets/javascripts/bootstrap.min.js +220 -0
  13. data/assets/javascripts/bootstrap/alert.js +192 -0
  14. data/assets/javascripts/bootstrap/button.js +172 -0
  15. data/assets/javascripts/bootstrap/carousel.js +478 -0
  16. data/assets/javascripts/bootstrap/collapse.js +364 -0
  17. data/assets/javascripts/bootstrap/dropdown.js +293 -0
  18. data/assets/javascripts/bootstrap/modal.js +536 -0
  19. data/assets/javascripts/bootstrap/popover.js +201 -0
  20. data/assets/javascripts/bootstrap/scrollspy.js +320 -0
  21. data/assets/javascripts/bootstrap/tab.js +263 -0
  22. data/assets/javascripts/bootstrap/tooltip.js +619 -0
  23. data/assets/javascripts/bootstrap/util.js +157 -0
  24. data/assets/stylesheets/_bootstrap-flex.scss +8 -0
  25. data/assets/stylesheets/_bootstrap-grid.scss +62 -0
  26. data/assets/stylesheets/_bootstrap-reboot.scss +10 -0
  27. data/assets/stylesheets/_bootstrap.scss +55 -0
  28. data/assets/stylesheets/bootstrap/_alert.scss +65 -0
  29. data/assets/stylesheets/bootstrap/_animation.scss +27 -0
  30. data/assets/stylesheets/bootstrap/_breadcrumb.scss +23 -0
  31. data/assets/stylesheets/bootstrap/_button-group.scss +224 -0
  32. data/assets/stylesheets/bootstrap/_buttons.scss +174 -0
  33. data/assets/stylesheets/bootstrap/_card.scss +293 -0
  34. data/assets/stylesheets/bootstrap/_carousel.scss +252 -0
  35. data/assets/stylesheets/bootstrap/_close.scss +28 -0
  36. data/assets/stylesheets/bootstrap/_code.scss +58 -0
  37. data/assets/stylesheets/bootstrap/_custom-forms.scss +225 -0
  38. data/assets/stylesheets/bootstrap/_dropdown.scss +191 -0
  39. data/assets/stylesheets/bootstrap/_forms.scss +454 -0
  40. data/assets/stylesheets/bootstrap/_grid.scss +76 -0
  41. data/assets/stylesheets/bootstrap/_images.scss +28 -0
  42. data/assets/stylesheets/bootstrap/_input-group.scss +181 -0
  43. data/assets/stylesheets/bootstrap/_jumbotron.scss +22 -0
  44. data/assets/stylesheets/bootstrap/_labels.scss +75 -0
  45. data/assets/stylesheets/bootstrap/_list-group.scss +128 -0
  46. data/assets/stylesheets/bootstrap/_media.scss +90 -0
  47. data/assets/stylesheets/bootstrap/_mixins.scss +54 -0
  48. data/assets/stylesheets/bootstrap/_modal.scss +146 -0
  49. data/assets/stylesheets/bootstrap/_nav.scss +155 -0
  50. data/assets/stylesheets/bootstrap/_navbar.scss +230 -0
  51. data/assets/stylesheets/bootstrap/_normalize.scss +428 -0
  52. data/assets/stylesheets/bootstrap/_pager.scss +57 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +82 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +140 -0
  55. data/assets/stylesheets/bootstrap/_print.scss +88 -0
  56. data/assets/stylesheets/bootstrap/_progress.scss +156 -0
  57. data/assets/stylesheets/bootstrap/_reboot.scss +298 -0
  58. data/assets/stylesheets/bootstrap/_responsive-embed.scss +38 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +193 -0
  60. data/assets/stylesheets/bootstrap/_tooltip.scss +85 -0
  61. data/assets/stylesheets/bootstrap/_type.scss +192 -0
  62. data/assets/stylesheets/bootstrap/_utilities-responsive.scss +49 -0
  63. data/assets/stylesheets/bootstrap/_utilities-spacing.scss +78 -0
  64. data/assets/stylesheets/bootstrap/_utilities.scss +117 -0
  65. data/assets/stylesheets/bootstrap/_variables.scss +632 -0
  66. data/assets/stylesheets/bootstrap/mixins/_alert.scss +14 -0
  67. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +13 -0
  68. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -0
  69. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +76 -0
  70. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +100 -0
  71. data/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  72. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
  73. data/assets/stylesheets/bootstrap/mixins/_forms.scss +89 -0
  74. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +43 -0
  75. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +44 -0
  76. data/assets/stylesheets/bootstrap/mixins/_grid.scss +75 -0
  77. data/assets/stylesheets/bootstrap/mixins/_hover.scss +59 -0
  78. data/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  79. data/assets/stylesheets/bootstrap/mixins/_label.scss +11 -0
  80. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +30 -0
  81. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  82. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  83. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +9 -0
  84. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  85. data/assets/stylesheets/bootstrap/mixins/_progress.scss +18 -0
  86. data/assets/stylesheets/bootstrap/mixins/_pulls.scss +6 -0
  87. data/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  88. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  89. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  90. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +32 -0
  91. data/assets/stylesheets/bootstrap/mixins/_size.scss +6 -0
  92. data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  93. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +30 -0
  94. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  95. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +8 -0
  96. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  97. data/bootstrap.gemspec +36 -0
  98. data/lib/bootstrap.rb +76 -0
  99. data/lib/bootstrap/engine.rb +11 -0
  100. data/lib/bootstrap/version.rb +4 -0
  101. data/tasks/updater.rb +67 -0
  102. data/tasks/updater/js.rb +37 -0
  103. data/tasks/updater/logger.rb +57 -0
  104. data/tasks/updater/network.rb +101 -0
  105. data/tasks/updater/scss.rb +34 -0
  106. data/templates/project/_bootstrap-variables.scss +633 -0
  107. data/templates/project/manifest.rb +18 -0
  108. data/templates/project/styles.scss +10 -0
  109. data/test/compass_test.rb +9 -0
  110. data/test/dummy_rails/README.rdoc +3 -0
  111. data/test/dummy_rails/Rakefile +6 -0
  112. data/test/dummy_rails/app/assets/images/.keep +0 -0
  113. data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
  114. data/test/dummy_rails/app/assets/stylesheets/application.sass +1 -0
  115. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  116. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  117. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  118. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  119. data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
  120. data/test/dummy_rails/config.ru +4 -0
  121. data/test/dummy_rails/config/application.rb +34 -0
  122. data/test/dummy_rails/config/boot.rb +5 -0
  123. data/test/dummy_rails/config/environment.rb +5 -0
  124. data/test/dummy_rails/config/environments/development.rb +23 -0
  125. data/test/dummy_rails/config/environments/production.rb +82 -0
  126. data/test/dummy_rails/config/environments/test.rb +38 -0
  127. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  128. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  129. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  130. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  131. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  132. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  133. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  134. data/test/dummy_rails/config/locales/en.yml +3 -0
  135. data/test/dummy_rails/config/locales/es.yml +3 -0
  136. data/test/dummy_rails/config/routes.rb +3 -0
  137. data/test/dummy_rails/log/.keep +0 -0
  138. data/test/gemfiles/rails_4_2.gemfile +11 -0
  139. data/test/gemfiles/rails_head.gemfile +19 -0
  140. data/test/rails_test.rb +19 -0
  141. data/test/support/dummy_rails_integration.rb +22 -0
  142. data/test/support/reporting.rb +27 -0
  143. data/test/test_helper.rb +35 -0
  144. data/test/test_helper_rails.rb +6 -0
  145. metadata +433 -0
@@ -0,0 +1,478 @@
1
+ 'use strict';
2
+
3
+ var _createClass = (function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
4
+
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
6
+
7
+ /**
8
+ * --------------------------------------------------------------------------
9
+ * Bootstrap (v4.0.0): carousel.js
10
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11
+ * --------------------------------------------------------------------------
12
+ */
13
+
14
+ var Carousel = (function ($) {
15
+
16
+ /**
17
+ * ------------------------------------------------------------------------
18
+ * Constants
19
+ * ------------------------------------------------------------------------
20
+ */
21
+
22
+ var NAME = 'carousel';
23
+ var VERSION = '4.0.0';
24
+ var DATA_KEY = 'bs.carousel';
25
+ var EVENT_KEY = '.' + DATA_KEY;
26
+ var DATA_API_KEY = '.data-api';
27
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
28
+ var TRANSITION_DURATION = 600;
29
+
30
+ var Default = {
31
+ interval: 5000,
32
+ keyboard: true,
33
+ slide: false,
34
+ pause: 'hover',
35
+ wrap: true
36
+ };
37
+
38
+ var DefaultType = {
39
+ interval: '(number|boolean)',
40
+ keyboard: 'boolean',
41
+ slide: '(boolean|string)',
42
+ pause: '(string|boolean)',
43
+ wrap: 'boolean'
44
+ };
45
+
46
+ var Direction = {
47
+ NEXT: 'next',
48
+ PREVIOUS: 'prev'
49
+ };
50
+
51
+ var Event = {
52
+ SLIDE: 'slide' + EVENT_KEY,
53
+ SLID: 'slid' + EVENT_KEY,
54
+ KEYDOWN: 'keydown' + EVENT_KEY,
55
+ MOUSEENTER: 'mouseenter' + EVENT_KEY,
56
+ MOUSELEAVE: 'mouseleave' + EVENT_KEY,
57
+ LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY,
58
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
59
+ };
60
+
61
+ var ClassName = {
62
+ CAROUSEL: 'carousel',
63
+ ACTIVE: 'active',
64
+ SLIDE: 'slide',
65
+ RIGHT: 'right',
66
+ LEFT: 'left',
67
+ ITEM: 'carousel-item'
68
+ };
69
+
70
+ var Selector = {
71
+ ACTIVE: '.active',
72
+ ACTIVE_ITEM: '.active.carousel-item',
73
+ ITEM: '.carousel-item',
74
+ NEXT_PREV: '.next, .prev',
75
+ INDICATORS: '.carousel-indicators',
76
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
77
+ DATA_RIDE: '[data-ride="carousel"]'
78
+ };
79
+
80
+ /**
81
+ * ------------------------------------------------------------------------
82
+ * Class Definition
83
+ * ------------------------------------------------------------------------
84
+ */
85
+
86
+ var Carousel = (function () {
87
+ function Carousel(element, config) {
88
+ _classCallCheck(this, Carousel);
89
+
90
+ this._items = null;
91
+ this._interval = null;
92
+ this._activeElement = null;
93
+
94
+ this._isPaused = false;
95
+ this._isSliding = false;
96
+
97
+ this._config = this._getConfig(config);
98
+ this._element = $(element)[0];
99
+ this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
100
+
101
+ this._addEventListeners();
102
+ }
103
+
104
+ /**
105
+ * ------------------------------------------------------------------------
106
+ * Data Api implementation
107
+ * ------------------------------------------------------------------------
108
+ */
109
+
110
+ // getters
111
+
112
+ _createClass(Carousel, [{
113
+ key: 'next',
114
+
115
+ // public
116
+
117
+ value: function next() {
118
+ if (!this._isSliding) {
119
+ this._slide(Direction.NEXT);
120
+ }
121
+ }
122
+ }, {
123
+ key: 'nextWhenVisible',
124
+ value: function nextWhenVisible() {
125
+ // Don't call next when the page isn't visible
126
+ if (!document.hidden) {
127
+ this.next();
128
+ }
129
+ }
130
+ }, {
131
+ key: 'prev',
132
+ value: function prev() {
133
+ if (!this._isSliding) {
134
+ this._slide(Direction.PREVIOUS);
135
+ }
136
+ }
137
+ }, {
138
+ key: 'pause',
139
+ value: function pause(event) {
140
+ if (!event) {
141
+ this._isPaused = true;
142
+ }
143
+
144
+ if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
145
+ Util.triggerTransitionEnd(this._element);
146
+ this.cycle(true);
147
+ }
148
+
149
+ clearInterval(this._interval);
150
+ this._interval = null;
151
+ }
152
+ }, {
153
+ key: 'cycle',
154
+ value: function cycle(event) {
155
+ if (!event) {
156
+ this._isPaused = false;
157
+ }
158
+
159
+ if (this._interval) {
160
+ clearInterval(this._interval);
161
+ this._interval = null;
162
+ }
163
+
164
+ if (this._config.interval && !this._isPaused) {
165
+ this._interval = setInterval($.proxy(document.visibilityState ? this.nextWhenVisible : this.next, this), this._config.interval);
166
+ }
167
+ }
168
+ }, {
169
+ key: 'to',
170
+ value: function to(index) {
171
+ var _this = this;
172
+
173
+ this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
174
+
175
+ var activeIndex = this._getItemIndex(this._activeElement);
176
+
177
+ if (index > this._items.length - 1 || index < 0) {
178
+ return;
179
+ }
180
+
181
+ if (this._isSliding) {
182
+ $(this._element).one(Event.SLID, function () {
183
+ return _this.to(index);
184
+ });
185
+ return;
186
+ }
187
+
188
+ if (activeIndex === index) {
189
+ this.pause();
190
+ this.cycle();
191
+ return;
192
+ }
193
+
194
+ var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS;
195
+
196
+ this._slide(direction, this._items[index]);
197
+ }
198
+ }, {
199
+ key: 'dispose',
200
+ value: function dispose() {
201
+ $(this._element).off(EVENT_KEY);
202
+ $.removeData(this._element, DATA_KEY);
203
+
204
+ this._items = null;
205
+ this._config = null;
206
+ this._element = null;
207
+ this._interval = null;
208
+ this._isPaused = null;
209
+ this._isSliding = null;
210
+ this._activeElement = null;
211
+ this._indicatorsElement = null;
212
+ }
213
+
214
+ // private
215
+
216
+ }, {
217
+ key: '_getConfig',
218
+ value: function _getConfig(config) {
219
+ config = $.extend({}, Default, config);
220
+ Util.typeCheckConfig(NAME, config, DefaultType);
221
+ return config;
222
+ }
223
+ }, {
224
+ key: '_addEventListeners',
225
+ value: function _addEventListeners() {
226
+ if (this._config.keyboard) {
227
+ $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this));
228
+ }
229
+
230
+ if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) {
231
+ $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this));
232
+ }
233
+ }
234
+ }, {
235
+ key: '_keydown',
236
+ value: function _keydown(event) {
237
+ event.preventDefault();
238
+
239
+ if (/input|textarea/i.test(event.target.tagName)) {
240
+ return;
241
+ }
242
+
243
+ switch (event.which) {
244
+ case 37:
245
+ this.prev();break;
246
+ case 39:
247
+ this.next();break;
248
+ default:
249
+ return;
250
+ }
251
+ }
252
+ }, {
253
+ key: '_getItemIndex',
254
+ value: function _getItemIndex(element) {
255
+ this._items = $.makeArray($(element).parent().find(Selector.ITEM));
256
+ return this._items.indexOf(element);
257
+ }
258
+ }, {
259
+ key: '_getItemByDirection',
260
+ value: function _getItemByDirection(direction, activeElement) {
261
+ var isNextDirection = direction === Direction.NEXT;
262
+ var isPrevDirection = direction === Direction.PREVIOUS;
263
+ var activeIndex = this._getItemIndex(activeElement);
264
+ var lastItemIndex = this._items.length - 1;
265
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
266
+
267
+ if (isGoingToWrap && !this._config.wrap) {
268
+ return activeElement;
269
+ }
270
+
271
+ var delta = direction === Direction.PREVIOUS ? -1 : 1;
272
+ var itemIndex = (activeIndex + delta) % this._items.length;
273
+
274
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
275
+ }
276
+ }, {
277
+ key: '_triggerSlideEvent',
278
+ value: function _triggerSlideEvent(relatedTarget, directionalClassname) {
279
+ var slideEvent = $.Event(Event.SLIDE, {
280
+ relatedTarget: relatedTarget,
281
+ direction: directionalClassname
282
+ });
283
+
284
+ $(this._element).trigger(slideEvent);
285
+
286
+ return slideEvent;
287
+ }
288
+ }, {
289
+ key: '_setActiveIndicatorElement',
290
+ value: function _setActiveIndicatorElement(element) {
291
+ if (this._indicatorsElement) {
292
+ $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
293
+
294
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
295
+
296
+ if (nextIndicator) {
297
+ $(nextIndicator).addClass(ClassName.ACTIVE);
298
+ }
299
+ }
300
+ }
301
+ }, {
302
+ key: '_slide',
303
+ value: function _slide(direction, element) {
304
+ var _this2 = this;
305
+
306
+ var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
307
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
308
+
309
+ var isCycling = Boolean(this._interval);
310
+
311
+ var directionalClassName = direction === Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT;
312
+
313
+ if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
314
+ this._isSliding = false;
315
+ return;
316
+ }
317
+
318
+ var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName);
319
+ if (slideEvent.isDefaultPrevented()) {
320
+ return;
321
+ }
322
+
323
+ if (!activeElement || !nextElement) {
324
+ // some weirdness is happening, so we bail
325
+ return;
326
+ }
327
+
328
+ this._isSliding = true;
329
+
330
+ if (isCycling) {
331
+ this.pause();
332
+ }
333
+
334
+ this._setActiveIndicatorElement(nextElement);
335
+
336
+ var slidEvent = $.Event(Event.SLID, {
337
+ relatedTarget: nextElement,
338
+ direction: directionalClassName
339
+ });
340
+
341
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
342
+
343
+ $(nextElement).addClass(direction);
344
+
345
+ Util.reflow(nextElement);
346
+
347
+ $(activeElement).addClass(directionalClassName);
348
+ $(nextElement).addClass(directionalClassName);
349
+
350
+ $(activeElement).one(Util.TRANSITION_END, function () {
351
+ $(nextElement).removeClass(directionalClassName).removeClass(direction);
352
+
353
+ $(nextElement).addClass(ClassName.ACTIVE);
354
+
355
+ $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName);
356
+
357
+ _this2._isSliding = false;
358
+
359
+ setTimeout(function () {
360
+ return $(_this2._element).trigger(slidEvent);
361
+ }, 0);
362
+ }).emulateTransitionEnd(TRANSITION_DURATION);
363
+ } else {
364
+ $(activeElement).removeClass(ClassName.ACTIVE);
365
+ $(nextElement).addClass(ClassName.ACTIVE);
366
+
367
+ this._isSliding = false;
368
+ $(this._element).trigger(slidEvent);
369
+ }
370
+
371
+ if (isCycling) {
372
+ this.cycle();
373
+ }
374
+ }
375
+
376
+ // static
377
+
378
+ }], [{
379
+ key: '_jQueryInterface',
380
+ value: function _jQueryInterface(config) {
381
+ return this.each(function () {
382
+ var data = $(this).data(DATA_KEY);
383
+ var _config = $.extend({}, Default, $(this).data());
384
+
385
+ if (typeof config === 'object') {
386
+ $.extend(_config, config);
387
+ }
388
+
389
+ var action = typeof config === 'string' ? config : _config.slide;
390
+
391
+ if (!data) {
392
+ data = new Carousel(this, _config);
393
+ $(this).data(DATA_KEY, data);
394
+ }
395
+
396
+ if (typeof config === 'number') {
397
+ data.to(config);
398
+ } else if (typeof action === 'string') {
399
+ if (data[action] === undefined) {
400
+ throw new Error('No method named "' + action + '"');
401
+ }
402
+ data[action]();
403
+ } else if (_config.interval) {
404
+ data.pause();
405
+ data.cycle();
406
+ }
407
+ });
408
+ }
409
+ }, {
410
+ key: '_dataApiClickHandler',
411
+ value: function _dataApiClickHandler(event) {
412
+ var selector = Util.getSelectorFromElement(this);
413
+
414
+ if (!selector) {
415
+ return;
416
+ }
417
+
418
+ var target = $(selector)[0];
419
+
420
+ if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
421
+ return;
422
+ }
423
+
424
+ var config = $.extend({}, $(target).data(), $(this).data());
425
+ var slideIndex = this.getAttribute('data-slide-to');
426
+
427
+ if (slideIndex) {
428
+ config.interval = false;
429
+ }
430
+
431
+ Carousel._jQueryInterface.call($(target), config);
432
+
433
+ if (slideIndex) {
434
+ $(target).data(DATA_KEY).to(slideIndex);
435
+ }
436
+
437
+ event.preventDefault();
438
+ }
439
+ }, {
440
+ key: 'VERSION',
441
+ get: function get() {
442
+ return VERSION;
443
+ }
444
+ }, {
445
+ key: 'Default',
446
+ get: function get() {
447
+ return Default;
448
+ }
449
+ }]);
450
+
451
+ return Carousel;
452
+ })();
453
+
454
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
455
+
456
+ $(window).on(Event.LOAD_DATA_API, function () {
457
+ $(Selector.DATA_RIDE).each(function () {
458
+ var $carousel = $(this);
459
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
460
+ });
461
+ });
462
+
463
+ /**
464
+ * ------------------------------------------------------------------------
465
+ * jQuery
466
+ * ------------------------------------------------------------------------
467
+ */
468
+
469
+ $.fn[NAME] = Carousel._jQueryInterface;
470
+ $.fn[NAME].Constructor = Carousel;
471
+ $.fn[NAME].noConflict = function () {
472
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
473
+ return Carousel._jQueryInterface;
474
+ };
475
+
476
+ return Carousel;
477
+ })(jQuery);
478
+ //# sourceMappingURL=carousel.js.map