From b5077a1a8170cf4e65d8e0e1b5b4b1da0ce5cd90 Mon Sep 17 00:00:00 2001
From: Johann-S <johann.servoire@gmail.com>
Date: Fri, 20 Oct 2017 21:11:16 +0200
Subject: [PATCH] fix one forgets of using jQuery in Carousel and Tooltip

---
 js/src/carousel.js | 61 +++++++++++++++++++++++++---------------------
 1 file changed, 33 insertions(+), 28 deletions(-)

diff --git a/js/src/carousel.js b/js/src/carousel.js
index f73edf9109..4519d566cf 100644
--- a/js/src/carousel.js
+++ b/js/src/carousel.js
@@ -7,6 +7,7 @@
 
 import Data from './dom/data'
 import EventHandler from './dom/eventHandler'
+import Manipulator from './dom/manipulator'
 import SelectorEngine from './dom/selectorEngine'
 import Util from './util'
 
@@ -322,6 +323,7 @@ class Carousel {
     [].slice.call(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach((itemImg) => {
       EventHandler.on(itemImg, Event.DRAG_START, (e) => e.preventDefault())
     })
+
     if (this._pointerEvent) {
       EventHandler.on(this._element, Event.POINTERDOWN, (event) => start(event))
       EventHandler.on(this._element, Event.POINTERUP, (event) => end(event))
@@ -507,39 +509,42 @@ class Carousel {
 
   // Static
 
-  static _jQueryInterface(config) {
-    return this.each(function () {
-      let data      = Data.getData(this, DATA_KEY)
-      let _config = {
-        ...Default,
-        ...Data.getData(this, DATA_KEY)
-      }
+  static _carouselInterface(element, config) {
+    let data    = Data.getData(element, DATA_KEY)
+    let _config = {
+      ...Default,
+      ...Manipulator.getDataAttributes(element)
+    }
 
-      if (typeof config === 'object') {
-        _config = {
-          ..._config,
-          ...config
-        }
+    if (typeof config === 'object') {
+      _config = {
+        ..._config,
+        ...config
       }
+    }
 
-      const action = typeof config === 'string' ? config : _config.slide
+    const action = typeof config === 'string' ? config : _config.slide
 
-      if (!data) {
-        data = new Carousel(this, _config)
-        Data.setData(this, DATA_KEY, data)
-      }
+    if (!data) {
+      data = new Carousel(element, _config)
+    }
 
-      if (typeof config === 'number') {
-        data.to(config)
-      } else if (typeof action === 'string') {
-        if (typeof data[action] === 'undefined') {
-          throw new TypeError(`No method named "${action}"`)
-        }
-        data[action]()
-      } else if (_config.interval && _config.ride) {
-        data.pause()
-        data.cycle()
+    if (typeof config === 'number') {
+      data.to(config)
+    } else if (typeof action === 'string') {
+      if (typeof data[action] === 'undefined') {
+        throw new Error(`No method named "${action}"`)
       }
+      data[action]()
+    } else if (_config.interval && _config.ride) {
+      data.pause()
+      data.cycle()
+    }
+  }
+
+  static _jQueryInterface(config) {
+    return this.each(function () {
+      Carousel._carouselInterface(this, config)
     })
   }
 
@@ -588,7 +593,7 @@ EventHandler
 EventHandler.on(window, Event.LOAD_DATA_API, () => {
   const carousels = Util.makeArray(SelectorEngine.find(Selector.DATA_RIDE))
   for (let i = 0, len = carousels.length; i < len; i++) {
-    Carousel._jQueryInterface.call($(carousels[i]), Data.getData(carousels[i], DATA_KEY))
+    Carousel._carouselInterface.call(carousels[i], Data.getData(carousels[i], DATA_KEY))
   }
 })
 
-- 
GitLab