1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-15 01:55:46 +02:00

remove useless iife

This commit is contained in:
Johann-S
2018-09-26 10:39:01 +02:00
parent 02c4444f6c
commit 7c7a1706c3
12 changed files with 3433 additions and 3475 deletions

View File

@@ -8,43 +8,42 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Alert = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'alert' const NAME = 'alert'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.alert' const DATA_KEY = 'bs.alert'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const Selector = { const Selector = {
DISMISS : '[data-dismiss="alert"]' DISMISS : '[data-dismiss="alert"]'
} }
const Event = { const Event = {
CLOSE : `close${EVENT_KEY}`, CLOSE : `close${EVENT_KEY}`,
CLOSED : `closed${EVENT_KEY}`, CLOSED : `closed${EVENT_KEY}`,
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
ALERT : 'alert', ALERT : 'alert',
FADE : 'fade', FADE : 'fade',
SHOW : 'show' SHOW : 'show'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Alert { class Alert {
constructor(element) { constructor(element) {
this._element = element this._element = element
} }
@@ -150,34 +149,31 @@ const Alert = (($) => {
alertInstance.close(this) alertInstance.close(this)
} }
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on( $(document).on(
Event.CLICK_DATA_API, Event.CLICK_DATA_API,
Selector.DISMISS, Selector.DISMISS,
Alert._handleDismiss(new Alert()) Alert._handleDismiss(new Alert())
) )
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Alert._jQueryInterface $.fn[NAME] = Alert._jQueryInterface
$.fn[NAME].Constructor = Alert $.fn[NAME].Constructor = Alert
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Alert._jQueryInterface return Alert._jQueryInterface
} }
return Alert
})($)
export default Alert export default Alert

View File

@@ -7,47 +7,46 @@ import $ from 'jquery'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Button = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'button' const NAME = 'button'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.button' const DATA_KEY = 'bs.button'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const ClassName = { const ClassName = {
ACTIVE : 'active', ACTIVE : 'active',
BUTTON : 'btn', BUTTON : 'btn',
FOCUS : 'focus' FOCUS : 'focus'
} }
const Selector = { const Selector = {
DATA_TOGGLE_CARROT : '[data-toggle^="button"]', DATA_TOGGLE_CARROT : '[data-toggle^="button"]',
DATA_TOGGLE : '[data-toggle="buttons"]', DATA_TOGGLE : '[data-toggle="buttons"]',
INPUT : 'input', INPUT : 'input',
ACTIVE : '.active', ACTIVE : '.active',
BUTTON : '.btn' BUTTON : '.btn'
} }
const Event = { const Event = {
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,
FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` + FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +
`blur${EVENT_KEY}${DATA_API_KEY}` `blur${EVENT_KEY}${DATA_API_KEY}`
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Button { class Button {
constructor(element) { constructor(element) {
this._element = element this._element = element
} }
@@ -131,15 +130,15 @@ const Button = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document) $(document)
.on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => { .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {
event.preventDefault() event.preventDefault()
@@ -156,20 +155,17 @@ const Button = (($) => {
$(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)) $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Button._jQueryInterface $.fn[NAME] = Button._jQueryInterface
$.fn[NAME].Constructor = Button $.fn[NAME].Constructor = Button
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Button._jQueryInterface return Button._jQueryInterface
} }
return Button
})($)
export default Button export default Button

View File

@@ -8,47 +8,46 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Carousel = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'carousel' const NAME = 'carousel'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.carousel' const DATA_KEY = 'bs.carousel'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key
const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key
const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch
const Default = { const Default = {
interval : 5000, interval : 5000,
keyboard : true, keyboard : true,
slide : false, slide : false,
pause : 'hover', pause : 'hover',
wrap : true wrap : true
} }
const DefaultType = { const DefaultType = {
interval : '(number|boolean)', interval : '(number|boolean)',
keyboard : 'boolean', keyboard : 'boolean',
slide : '(boolean|string)', slide : '(boolean|string)',
pause : '(string|boolean)', pause : '(string|boolean)',
wrap : 'boolean' wrap : 'boolean'
} }
const Direction = { const Direction = {
NEXT : 'next', NEXT : 'next',
PREV : 'prev', PREV : 'prev',
LEFT : 'left', LEFT : 'left',
RIGHT : 'right' RIGHT : 'right'
} }
const Event = { const Event = {
SLIDE : `slide${EVENT_KEY}`, SLIDE : `slide${EVENT_KEY}`,
SLID : `slid${EVENT_KEY}`, SLID : `slid${EVENT_KEY}`,
KEYDOWN : `keydown${EVENT_KEY}`, KEYDOWN : `keydown${EVENT_KEY}`,
@@ -57,9 +56,9 @@ const Carousel = (($) => {
TOUCHEND : `touchend${EVENT_KEY}`, TOUCHEND : `touchend${EVENT_KEY}`,
LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`, LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
CAROUSEL : 'carousel', CAROUSEL : 'carousel',
ACTIVE : 'active', ACTIVE : 'active',
SLIDE : 'slide', SLIDE : 'slide',
@@ -68,9 +67,9 @@ const Carousel = (($) => {
NEXT : 'carousel-item-next', NEXT : 'carousel-item-next',
PREV : 'carousel-item-prev', PREV : 'carousel-item-prev',
ITEM : 'carousel-item' ITEM : 'carousel-item'
} }
const Selector = { const Selector = {
ACTIVE : '.active', ACTIVE : '.active',
ACTIVE_ITEM : '.active.carousel-item', ACTIVE_ITEM : '.active.carousel-item',
ITEM : '.carousel-item', ITEM : '.carousel-item',
@@ -78,15 +77,15 @@ const Carousel = (($) => {
INDICATORS : '.carousel-indicators', INDICATORS : '.carousel-indicators',
DATA_SLIDE : '[data-slide], [data-slide-to]', DATA_SLIDE : '[data-slide], [data-slide-to]',
DATA_RIDE : '[data-ride="carousel"]' DATA_RIDE : '[data-ride="carousel"]'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Carousel { class Carousel {
constructor(element, config) { constructor(element, config) {
this._items = null this._items = null
this._interval = null this._interval = null
@@ -490,39 +489,36 @@ const Carousel = (($) => {
event.preventDefault() event.preventDefault()
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document) $(document)
.on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler) .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)
$(window).on(Event.LOAD_DATA_API, () => { $(window).on(Event.LOAD_DATA_API, () => {
const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE)) const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))
for (let i = 0, len = carousels.length; i < len; i++) { for (let i = 0, len = carousels.length; i < len; i++) {
const $carousel = $(carousels[i]) const $carousel = $(carousels[i])
Carousel._jQueryInterface.call($carousel, $carousel.data()) Carousel._jQueryInterface.call($carousel, $carousel.data())
} }
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Carousel._jQueryInterface $.fn[NAME] = Carousel._jQueryInterface
$.fn[NAME].Constructor = Carousel $.fn[NAME].Constructor = Carousel
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Carousel._jQueryInterface return Carousel._jQueryInterface
} }
return Carousel
})($)
export default Carousel export default Carousel

View File

@@ -8,62 +8,61 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Collapse = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'collapse' const NAME = 'collapse'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.collapse' const DATA_KEY = 'bs.collapse'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const Default = { const Default = {
toggle : true, toggle : true,
parent : '' parent : ''
} }
const DefaultType = { const DefaultType = {
toggle : 'boolean', toggle : 'boolean',
parent : '(string|element)' parent : '(string|element)'
} }
const Event = { const Event = {
SHOW : `show${EVENT_KEY}`, SHOW : `show${EVENT_KEY}`,
SHOWN : `shown${EVENT_KEY}`, SHOWN : `shown${EVENT_KEY}`,
HIDE : `hide${EVENT_KEY}`, HIDE : `hide${EVENT_KEY}`,
HIDDEN : `hidden${EVENT_KEY}`, HIDDEN : `hidden${EVENT_KEY}`,
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
SHOW : 'show', SHOW : 'show',
COLLAPSE : 'collapse', COLLAPSE : 'collapse',
COLLAPSING : 'collapsing', COLLAPSING : 'collapsing',
COLLAPSED : 'collapsed' COLLAPSED : 'collapsed'
} }
const Dimension = { const Dimension = {
WIDTH : 'width', WIDTH : 'width',
HEIGHT : 'height' HEIGHT : 'height'
} }
const Selector = { const Selector = {
ACTIVES : '.show, .collapsing', ACTIVES : '.show, .collapsing',
DATA_TOGGLE : '[data-toggle="collapse"]' DATA_TOGGLE : '[data-toggle="collapse"]'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Collapse { class Collapse {
constructor(element, config) { constructor(element, config) {
this._isTransitioning = false this._isTransitioning = false
this._element = element this._element = element
@@ -359,15 +358,15 @@ const Collapse = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
if (event.currentTarget.tagName === 'A') { if (event.currentTarget.tagName === 'A') {
event.preventDefault() event.preventDefault()
@@ -382,22 +381,19 @@ const Collapse = (($) => {
const config = data ? 'toggle' : $trigger.data() const config = data ? 'toggle' : $trigger.data()
Collapse._jQueryInterface.call($target, config) Collapse._jQueryInterface.call($target, config)
}) })
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Collapse._jQueryInterface $.fn[NAME] = Collapse._jQueryInterface
$.fn[NAME].Constructor = Collapse $.fn[NAME].Constructor = Collapse
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Collapse._jQueryInterface return Collapse._jQueryInterface
} }
return Collapse
})($)
export default Collapse export default Collapse

View File

@@ -9,28 +9,27 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Dropdown = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'dropdown' const NAME = 'dropdown'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.dropdown' const DATA_KEY = 'bs.dropdown'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key
const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key
const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key
const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key
const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key
const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse) const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)
const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`) const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)
const Event = { const Event = {
HIDE : `hide${EVENT_KEY}`, HIDE : `hide${EVENT_KEY}`,
HIDDEN : `hidden${EVENT_KEY}`, HIDDEN : `hidden${EVENT_KEY}`,
SHOW : `show${EVENT_KEY}`, SHOW : `show${EVENT_KEY}`,
@@ -39,9 +38,9 @@ const Dropdown = (($) => {
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,
KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`, KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,
KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}` KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
DISABLED : 'disabled', DISABLED : 'disabled',
SHOW : 'show', SHOW : 'show',
DROPUP : 'dropup', DROPUP : 'dropup',
@@ -50,17 +49,17 @@ const Dropdown = (($) => {
MENURIGHT : 'dropdown-menu-right', MENURIGHT : 'dropdown-menu-right',
MENULEFT : 'dropdown-menu-left', MENULEFT : 'dropdown-menu-left',
POSITION_STATIC : 'position-static' POSITION_STATIC : 'position-static'
} }
const Selector = { const Selector = {
DATA_TOGGLE : '[data-toggle="dropdown"]', DATA_TOGGLE : '[data-toggle="dropdown"]',
FORM_CHILD : '.dropdown form', FORM_CHILD : '.dropdown form',
MENU : '.dropdown-menu', MENU : '.dropdown-menu',
NAVBAR_NAV : '.navbar-nav', NAVBAR_NAV : '.navbar-nav',
VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
} }
const AttachmentMap = { const AttachmentMap = {
TOP : 'top-start', TOP : 'top-start',
TOPEND : 'top-end', TOPEND : 'top-end',
BOTTOM : 'bottom-start', BOTTOM : 'bottom-start',
@@ -69,31 +68,31 @@ const Dropdown = (($) => {
RIGHTEND : 'right-end', RIGHTEND : 'right-end',
LEFT : 'left-start', LEFT : 'left-start',
LEFTEND : 'left-end' LEFTEND : 'left-end'
} }
const Default = { const Default = {
offset : 0, offset : 0,
flip : true, flip : true,
boundary : 'scrollParent', boundary : 'scrollParent',
reference : 'toggle', reference : 'toggle',
display : 'dynamic' display : 'dynamic'
} }
const DefaultType = { const DefaultType = {
offset : '(number|string|function)', offset : '(number|string|function)',
flip : 'boolean', flip : 'boolean',
boundary : '(string|element)', boundary : '(string|element)',
reference : '(string|element)', reference : '(string|element)',
display : 'string' display : 'string'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Dropdown { class Dropdown {
constructor(element, config) { constructor(element, config) {
this._element = element this._element = element
this._popper = null this._popper = null
@@ -454,15 +453,15 @@ const Dropdown = (($) => {
items[index].focus() items[index].focus()
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document) $(document)
.on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler) .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)
.on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler) .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)
.on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus) .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)
@@ -475,20 +474,18 @@ const Dropdown = (($) => {
e.stopPropagation() e.stopPropagation()
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Dropdown._jQueryInterface $.fn[NAME] = Dropdown._jQueryInterface
$.fn[NAME].Constructor = Dropdown $.fn[NAME].Constructor = Dropdown
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Dropdown._jQueryInterface return Dropdown._jQueryInterface
} }
return Dropdown
})($, Popper)
export default Dropdown export default Dropdown

View File

@@ -18,7 +18,7 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
(($) => { (() => {
if (typeof $ === 'undefined') { if (typeof $ === 'undefined') {
throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.') throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
} }
@@ -33,7 +33,7 @@ import Util from './util'
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0') throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
} }
})($) })()
export { export {
Util, Util,

View File

@@ -8,36 +8,35 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Modal = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'modal' const NAME = 'modal'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.modal' const DATA_KEY = 'bs.modal'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key
const Default = { const Default = {
backdrop : true, backdrop : true,
keyboard : true, keyboard : true,
focus : true, focus : true,
show : true show : true
} }
const DefaultType = { const DefaultType = {
backdrop : '(boolean|string)', backdrop : '(boolean|string)',
keyboard : 'boolean', keyboard : 'boolean',
focus : 'boolean', focus : 'boolean',
show : 'boolean' show : 'boolean'
} }
const Event = { const Event = {
HIDE : `hide${EVENT_KEY}`, HIDE : `hide${EVENT_KEY}`,
HIDDEN : `hidden${EVENT_KEY}`, HIDDEN : `hidden${EVENT_KEY}`,
SHOW : `show${EVENT_KEY}`, SHOW : `show${EVENT_KEY}`,
@@ -49,31 +48,31 @@ const Modal = (($) => {
MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`, MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,
MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`, MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
SCROLLBAR_MEASURER : 'modal-scrollbar-measure', SCROLLBAR_MEASURER : 'modal-scrollbar-measure',
BACKDROP : 'modal-backdrop', BACKDROP : 'modal-backdrop',
OPEN : 'modal-open', OPEN : 'modal-open',
FADE : 'fade', FADE : 'fade',
SHOW : 'show' SHOW : 'show'
} }
const Selector = { const Selector = {
DIALOG : '.modal-dialog', DIALOG : '.modal-dialog',
DATA_TOGGLE : '[data-toggle="modal"]', DATA_TOGGLE : '[data-toggle="modal"]',
DATA_DISMISS : '[data-dismiss="modal"]', DATA_DISMISS : '[data-dismiss="modal"]',
FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
STICKY_CONTENT : '.sticky-top' STICKY_CONTENT : '.sticky-top'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Modal { class Modal {
constructor(element, config) { constructor(element, config) {
this._config = this._getConfig(config) this._config = this._getConfig(config)
this._element = element this._element = element
@@ -518,15 +517,15 @@ const Modal = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
let target let target
const selector = Util.getSelectorFromElement(this) const selector = Util.getSelectorFromElement(this)
@@ -558,22 +557,19 @@ const Modal = (($) => {
}) })
Modal._jQueryInterface.call($(target), config, this) Modal._jQueryInterface.call($(target), config, this)
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Modal._jQueryInterface $.fn[NAME] = Modal._jQueryInterface
$.fn[NAME].Constructor = Modal $.fn[NAME].Constructor = Modal
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Modal._jQueryInterface return Modal._jQueryInterface
} }
return Modal
})($)
export default Modal export default Modal

View File

@@ -8,22 +8,21 @@ import Tooltip from './tooltip'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Popover = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'popover' const NAME = 'popover'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.popover' const DATA_KEY = 'bs.popover'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const CLASS_PREFIX = 'bs-popover' const CLASS_PREFIX = 'bs-popover'
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
const Default = { const Default = {
...Tooltip.Default, ...Tooltip.Default,
placement : 'right', placement : 'right',
trigger : 'click', trigger : 'click',
@@ -32,24 +31,24 @@ const Popover = (($) => {
'<div class="arrow"></div>' + '<div class="arrow"></div>' +
'<h3 class="popover-header"></h3>' + '<h3 class="popover-header"></h3>' +
'<div class="popover-body"></div></div>' '<div class="popover-body"></div></div>'
} }
const DefaultType = { const DefaultType = {
...Tooltip.DefaultType, ...Tooltip.DefaultType,
content : '(string|element|function)' content : '(string|element|function)'
} }
const ClassName = { const ClassName = {
FADE : 'fade', FADE : 'fade',
SHOW : 'show' SHOW : 'show'
} }
const Selector = { const Selector = {
TITLE : '.popover-header', TITLE : '.popover-header',
CONTENT : '.popover-body' CONTENT : '.popover-body'
} }
const Event = { const Event = {
HIDE : `hide${EVENT_KEY}`, HIDE : `hide${EVENT_KEY}`,
HIDDEN : `hidden${EVENT_KEY}`, HIDDEN : `hidden${EVENT_KEY}`,
SHOW : `show${EVENT_KEY}`, SHOW : `show${EVENT_KEY}`,
@@ -60,15 +59,15 @@ const Popover = (($) => {
FOCUSOUT : `focusout${EVENT_KEY}`, FOCUSOUT : `focusout${EVENT_KEY}`,
MOUSEENTER : `mouseenter${EVENT_KEY}`, MOUSEENTER : `mouseenter${EVENT_KEY}`,
MOUSELEAVE : `mouseleave${EVENT_KEY}` MOUSELEAVE : `mouseleave${EVENT_KEY}`
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Popover extends Tooltip { class Popover extends Tooltip {
// Getters // Getters
static get VERSION() { static get VERSION() {
@@ -167,22 +166,19 @@ const Popover = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Popover._jQueryInterface $.fn[NAME] = Popover._jQueryInterface
$.fn[NAME].Constructor = Popover $.fn[NAME].Constructor = Popover
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Popover._jQueryInterface return Popover._jQueryInterface
} }
return Popover
})($)
export default Popover export default Popover

View File

@@ -8,45 +8,44 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const ScrollSpy = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'scrollspy' const NAME = 'scrollspy'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.scrollspy' const DATA_KEY = 'bs.scrollspy'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const Default = { const Default = {
offset : 10, offset : 10,
method : 'auto', method : 'auto',
target : '' target : ''
} }
const DefaultType = { const DefaultType = {
offset : 'number', offset : 'number',
method : 'string', method : 'string',
target : '(string|element)' target : '(string|element)'
} }
const Event = { const Event = {
ACTIVATE : `activate${EVENT_KEY}`, ACTIVATE : `activate${EVENT_KEY}`,
SCROLL : `scroll${EVENT_KEY}`, SCROLL : `scroll${EVENT_KEY}`,
LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}` LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
DROPDOWN_ITEM : 'dropdown-item', DROPDOWN_ITEM : 'dropdown-item',
DROPDOWN_MENU : 'dropdown-menu', DROPDOWN_MENU : 'dropdown-menu',
ACTIVE : 'active' ACTIVE : 'active'
} }
const Selector = { const Selector = {
DATA_SPY : '[data-spy="scroll"]', DATA_SPY : '[data-spy="scroll"]',
ACTIVE : '.active', ACTIVE : '.active',
NAV_LIST_GROUP : '.nav, .list-group', NAV_LIST_GROUP : '.nav, .list-group',
@@ -56,20 +55,20 @@ const ScrollSpy = (($) => {
DROPDOWN : '.dropdown', DROPDOWN : '.dropdown',
DROPDOWN_ITEMS : '.dropdown-item', DROPDOWN_ITEMS : '.dropdown-item',
DROPDOWN_TOGGLE : '.dropdown-toggle' DROPDOWN_TOGGLE : '.dropdown-toggle'
} }
const OffsetMethod = { const OffsetMethod = {
OFFSET : 'offset', OFFSET : 'offset',
POSITION : 'position' POSITION : 'position'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class ScrollSpy { class ScrollSpy {
constructor(element, config) { constructor(element, config) {
this._element = element this._element = element
this._scrollElement = element.tagName === 'BODY' ? window : element this._scrollElement = element.tagName === 'BODY' ? window : element
@@ -295,15 +294,15 @@ const ScrollSpy = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(window).on(Event.LOAD_DATA_API, () => { $(window).on(Event.LOAD_DATA_API, () => {
const scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY)) const scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY))
const scrollSpysLength = scrollSpys.length const scrollSpysLength = scrollSpys.length
@@ -311,22 +310,19 @@ const ScrollSpy = (($) => {
const $spy = $(scrollSpys[i]) const $spy = $(scrollSpys[i])
ScrollSpy._jQueryInterface.call($spy, $spy.data()) ScrollSpy._jQueryInterface.call($spy, $spy.data())
} }
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = ScrollSpy._jQueryInterface $.fn[NAME] = ScrollSpy._jQueryInterface
$.fn[NAME].Constructor = ScrollSpy $.fn[NAME].Constructor = ScrollSpy
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return ScrollSpy._jQueryInterface return ScrollSpy._jQueryInterface
} }
return ScrollSpy
})($)
export default ScrollSpy export default ScrollSpy

View File

@@ -8,37 +8,36 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Tab = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'tab' const NAME = 'tab'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.tab' const DATA_KEY = 'bs.tab'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const Event = { const Event = {
HIDE : `hide${EVENT_KEY}`, HIDE : `hide${EVENT_KEY}`,
HIDDEN : `hidden${EVENT_KEY}`, HIDDEN : `hidden${EVENT_KEY}`,
SHOW : `show${EVENT_KEY}`, SHOW : `show${EVENT_KEY}`,
SHOWN : `shown${EVENT_KEY}`, SHOWN : `shown${EVENT_KEY}`,
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
} }
const ClassName = { const ClassName = {
DROPDOWN_MENU : 'dropdown-menu', DROPDOWN_MENU : 'dropdown-menu',
ACTIVE : 'active', ACTIVE : 'active',
DISABLED : 'disabled', DISABLED : 'disabled',
FADE : 'fade', FADE : 'fade',
SHOW : 'show' SHOW : 'show'
} }
const Selector = { const Selector = {
DROPDOWN : '.dropdown', DROPDOWN : '.dropdown',
NAV_LIST_GROUP : '.nav, .list-group', NAV_LIST_GROUP : '.nav, .list-group',
ACTIVE : '.active', ACTIVE : '.active',
@@ -46,15 +45,15 @@ const Tab = (($) => {
DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE : '.dropdown-toggle', DROPDOWN_TOGGLE : '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active' DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Tab { class Tab {
constructor(element) { constructor(element) {
this._element = element this._element = element
} }
@@ -231,34 +230,31 @@ const Tab = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document) $(document)
.on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault() event.preventDefault()
Tab._jQueryInterface.call($(this), 'show') Tab._jQueryInterface.call($(this), 'show')
}) })
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Tab._jQueryInterface $.fn[NAME] = Tab._jQueryInterface
$.fn[NAME].Constructor = Tab $.fn[NAME].Constructor = Tab
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Tab._jQueryInterface return Tab._jQueryInterface
} }
return Tab
})($)
export default Tab export default Tab

View File

@@ -9,22 +9,21 @@ import Util from './util'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Tooltip = (($) => { /**
/**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const NAME = 'tooltip' const NAME = 'tooltip'
const VERSION = '4.1.3' const VERSION = '4.1.3'
const DATA_KEY = 'bs.tooltip' const DATA_KEY = 'bs.tooltip'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const CLASS_PREFIX = 'bs-tooltip' const CLASS_PREFIX = 'bs-tooltip'
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
const DefaultType = { const DefaultType = {
animation : 'boolean', animation : 'boolean',
template : 'string', template : 'string',
title : '(string|element|function)', title : '(string|element|function)',
@@ -37,17 +36,17 @@ const Tooltip = (($) => {
container : '(string|element|boolean)', container : '(string|element|boolean)',
fallbackPlacement : '(string|array)', fallbackPlacement : '(string|array)',
boundary : '(string|element)' boundary : '(string|element)'
} }
const AttachmentMap = { const AttachmentMap = {
AUTO : 'auto', AUTO : 'auto',
TOP : 'top', TOP : 'top',
RIGHT : 'right', RIGHT : 'right',
BOTTOM : 'bottom', BOTTOM : 'bottom',
LEFT : 'left' LEFT : 'left'
} }
const Default = { const Default = {
animation : true, animation : true,
template : '<div class="tooltip" role="tooltip">' + template : '<div class="tooltip" role="tooltip">' +
'<div class="arrow"></div>' + '<div class="arrow"></div>' +
@@ -62,14 +61,14 @@ const Tooltip = (($) => {
container : false, container : false,
fallbackPlacement : 'flip', fallbackPlacement : 'flip',
boundary : 'scrollParent' boundary : 'scrollParent'
} }
const HoverState = { const HoverState = {
SHOW : 'show', SHOW : 'show',
OUT : 'out' OUT : 'out'
} }
const Event = { const Event = {
HIDE : `hide${EVENT_KEY}`, HIDE : `hide${EVENT_KEY}`,
HIDDEN : `hidden${EVENT_KEY}`, HIDDEN : `hidden${EVENT_KEY}`,
SHOW : `show${EVENT_KEY}`, SHOW : `show${EVENT_KEY}`,
@@ -80,34 +79,34 @@ const Tooltip = (($) => {
FOCUSOUT : `focusout${EVENT_KEY}`, FOCUSOUT : `focusout${EVENT_KEY}`,
MOUSEENTER : `mouseenter${EVENT_KEY}`, MOUSEENTER : `mouseenter${EVENT_KEY}`,
MOUSELEAVE : `mouseleave${EVENT_KEY}` MOUSELEAVE : `mouseleave${EVENT_KEY}`
} }
const ClassName = { const ClassName = {
FADE : 'fade', FADE : 'fade',
SHOW : 'show' SHOW : 'show'
} }
const Selector = { const Selector = {
TOOLTIP : '.tooltip', TOOLTIP : '.tooltip',
TOOLTIP_INNER : '.tooltip-inner', TOOLTIP_INNER : '.tooltip-inner',
ARROW : '.arrow' ARROW : '.arrow'
} }
const Trigger = { const Trigger = {
HOVER : 'hover', HOVER : 'hover',
FOCUS : 'focus', FOCUS : 'focus',
CLICK : 'click', CLICK : 'click',
MANUAL : 'manual' MANUAL : 'manual'
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
class Tooltip { class Tooltip {
constructor(element, config) { constructor(element, config) {
/** /**
* Check for Popper dependency * Check for Popper dependency
@@ -704,22 +703,19 @@ const Tooltip = (($) => {
} }
}) })
} }
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Tooltip._jQueryInterface $.fn[NAME] = Tooltip._jQueryInterface
$.fn[NAME].Constructor = Tooltip $.fn[NAME].Constructor = Tooltip
$.fn[NAME].noConflict = () => { $.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Tooltip._jQueryInterface return Tooltip._jQueryInterface
} }
return Tooltip
})($, Popper)
export default Tooltip export default Tooltip

View File

@@ -7,23 +7,23 @@ import $ from 'jquery'
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Util = (($) => {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Private TransitionEnd Helpers * Private TransitionEnd Helpers
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
const TRANSITION_END = 'transitionend' const TRANSITION_END = 'transitionend'
const MAX_UID = 1000000 const MAX_UID = 1000000
const MILLISECONDS_MULTIPLIER = 1000 const MILLISECONDS_MULTIPLIER = 1000
// Shoutout AngusCroll (https://goo.gl/pxwQGp) // Shoutout AngusCroll (https://goo.gl/pxwQGp)
function toType(obj) { function toType(obj) {
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase() return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase()
} }
function getSpecialTransitionEndEvent() { function getSpecialTransitionEndEvent() {
return { return {
bindType: TRANSITION_END, bindType: TRANSITION_END,
delegateType: TRANSITION_END, delegateType: TRANSITION_END,
@@ -34,9 +34,9 @@ const Util = (($) => {
return undefined // eslint-disable-line no-undefined return undefined // eslint-disable-line no-undefined
} }
} }
} }
function transitionEndEmulator(duration) { function transitionEndEmulator(duration) {
let called = false let called = false
$(this).one(Util.TRANSITION_END, () => { $(this).one(Util.TRANSITION_END, () => {
@@ -50,20 +50,20 @@ const Util = (($) => {
}, duration) }, duration)
return this return this
} }
function setTransitionEndSupport() { function setTransitionEndSupport() {
$.fn.emulateTransitionEnd = transitionEndEmulator $.fn.emulateTransitionEnd = transitionEndEmulator
$.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent() $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()
} }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Public Util Api * Public Util Api
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const Util = { const Util = {
TRANSITION_END: 'bsTransitionEnd', TRANSITION_END: 'bsTransitionEnd',
@@ -140,11 +140,8 @@ const Util = (($) => {
} }
} }
} }
} }
setTransitionEndSupport() setTransitionEndSupport()
return Util
})($)
export default Util export default Util