Commit fe73da98 authored by XhmikosR's avatar XhmikosR
Browse files

JS: minor refactoring

* shorten block comments
* reorder constants
Showing with 174 additions and 309 deletions
+174 -309
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'alert' const NAME = 'alert'
...@@ -21,20 +19,18 @@ const EVENT_KEY = `.${DATA_KEY}` ...@@ -21,20 +19,18 @@ 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_DISMISS = '[data-dismiss="alert"]' const CLASS_NAME_ALERT = 'alert'
const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show'
const EVENT_CLOSE = `close${EVENT_KEY}` const EVENT_CLOSE = `close${EVENT_KEY}`
const EVENT_CLOSED = `closed${EVENT_KEY}` const EVENT_CLOSED = `closed${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_ALERT = 'alert' const SELECTOR_DISMISS = '[data-dismiss="alert"]'
const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show'
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Alert { class Alert {
...@@ -43,13 +39,11 @@ class Alert { ...@@ -43,13 +39,11 @@ class Alert {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
// Public // Public
close(element) { close(element) {
let rootElement = this._element let rootElement = this._element
if (element) { if (element) {
...@@ -71,7 +65,6 @@ class Alert { ...@@ -71,7 +65,6 @@ class Alert {
} }
// Private // Private
_getRootElement(element) { _getRootElement(element) {
const selector = Util.getSelectorFromElement(element) const selector = Util.getSelectorFromElement(element)
let parent = false let parent = false
...@@ -117,7 +110,6 @@ class Alert { ...@@ -117,7 +110,6 @@ class Alert {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
const $element = $(this) const $element = $(this)
...@@ -146,9 +138,7 @@ class Alert { ...@@ -146,9 +138,7 @@ class Alert {
} }
/** /**
* ------------------------------------------------------------------------ * Data API implementation
* Data Api implementation
* ------------------------------------------------------------------------
*/ */
$(document).on( $(document).on(
...@@ -158,9 +148,7 @@ $(document).on( ...@@ -158,9 +148,7 @@ $(document).on(
) )
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Alert._jQueryInterface $.fn[NAME] = Alert._jQueryInterface
......
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
import $ from 'jquery' import $ from 'jquery'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'button' const NAME = 'button'
...@@ -24,6 +22,11 @@ const CLASS_NAME_ACTIVE = 'active' ...@@ -24,6 +22,11 @@ const CLASS_NAME_ACTIVE = 'active'
const CLASS_NAME_BUTTON = 'btn' const CLASS_NAME_BUTTON = 'btn'
const CLASS_NAME_FOCUS = 'focus' const CLASS_NAME_FOCUS = 'focus'
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +
`blur${EVENT_KEY}${DATA_API_KEY}`
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`
const SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]' const SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]'
const SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]' const SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]'
const SELECTOR_DATA_TOGGLE = '[data-toggle="button"]' const SELECTOR_DATA_TOGGLE = '[data-toggle="button"]'
...@@ -32,15 +35,8 @@ const SELECTOR_INPUT = 'input:not([type="hidden"])' ...@@ -32,15 +35,8 @@ const SELECTOR_INPUT = 'input:not([type="hidden"])'
const SELECTOR_ACTIVE = '.active' const SELECTOR_ACTIVE = '.active'
const SELECTOR_BUTTON = '.btn' const SELECTOR_BUTTON = '.btn'
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +
`blur${EVENT_KEY}${DATA_API_KEY}`
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Button { class Button {
...@@ -50,13 +46,11 @@ class Button { ...@@ -50,13 +46,11 @@ class Button {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
// Public // Public
toggle() { toggle() {
let triggerChangeEvent = true let triggerChangeEvent = true
let addAriaPressed = true let addAriaPressed = true
...@@ -111,7 +105,6 @@ class Button { ...@@ -111,7 +105,6 @@ class Button {
} }
// Static // Static
static _jQueryInterface(config, avoidTriggerChange) { static _jQueryInterface(config, avoidTriggerChange) {
return this.each(function () { return this.each(function () {
const $element = $(this) const $element = $(this)
...@@ -132,9 +125,7 @@ class Button { ...@@ -132,9 +125,7 @@ class Button {
} }
/** /**
* ------------------------------------------------------------------------ * Data API implementation
* Data Api implementation
* ------------------------------------------------------------------------
*/ */
$(document) $(document)
...@@ -194,9 +185,7 @@ $(window).on(EVENT_LOAD_DATA_API, () => { ...@@ -194,9 +185,7 @@ $(window).on(EVENT_LOAD_DATA_API, () => {
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Button._jQueryInterface $.fn[NAME] = Button._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'carousel' const NAME = 'carousel'
...@@ -25,23 +23,14 @@ const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key ...@@ -25,23 +23,14 @@ 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 SWIPE_THRESHOLD = 40 const SWIPE_THRESHOLD = 40
const Default = { const CLASS_NAME_CAROUSEL = 'carousel'
interval: 5000, const CLASS_NAME_ACTIVE = 'active'
keyboard: true, const CLASS_NAME_SLIDE = 'slide'
slide: false, const CLASS_NAME_RIGHT = 'carousel-item-right'
pause: 'hover', const CLASS_NAME_LEFT = 'carousel-item-left'
wrap: true, const CLASS_NAME_NEXT = 'carousel-item-next'
touch: true const CLASS_NAME_PREV = 'carousel-item-prev'
} const CLASS_NAME_POINTER_EVENT = 'pointer-event'
const DefaultType = {
interval: '(number|boolean)',
keyboard: 'boolean',
slide: '(boolean|string)',
pause: '(string|boolean)',
wrap: 'boolean',
touch: 'boolean'
}
const DIRECTION_NEXT = 'next' const DIRECTION_NEXT = 'next'
const DIRECTION_PREV = 'prev' const DIRECTION_PREV = 'prev'
...@@ -62,15 +51,6 @@ const EVENT_DRAG_START = `dragstart${EVENT_KEY}` ...@@ -62,15 +51,6 @@ const EVENT_DRAG_START = `dragstart${EVENT_KEY}`
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_CAROUSEL = 'carousel'
const CLASS_NAME_ACTIVE = 'active'
const CLASS_NAME_SLIDE = 'slide'
const CLASS_NAME_RIGHT = 'carousel-item-right'
const CLASS_NAME_LEFT = 'carousel-item-left'
const CLASS_NAME_NEXT = 'carousel-item-next'
const CLASS_NAME_PREV = 'carousel-item-prev'
const CLASS_NAME_POINTER_EVENT = 'pointer-event'
const SELECTOR_ACTIVE = '.active' const SELECTOR_ACTIVE = '.active'
const SELECTOR_ACTIVE_ITEM = '.active.carousel-item' const SELECTOR_ACTIVE_ITEM = '.active.carousel-item'
const SELECTOR_ITEM = '.carousel-item' const SELECTOR_ITEM = '.carousel-item'
...@@ -80,16 +60,33 @@ const SELECTOR_INDICATORS = '.carousel-indicators' ...@@ -80,16 +60,33 @@ const SELECTOR_INDICATORS = '.carousel-indicators'
const SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]' const SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'
const SELECTOR_DATA_RIDE = '[data-ride="carousel"]' const SELECTOR_DATA_RIDE = '[data-ride="carousel"]'
const Default = {
interval: 5000,
keyboard: true,
slide: false,
pause: 'hover',
wrap: true,
touch: true
}
const DefaultType = {
interval: '(number|boolean)',
keyboard: 'boolean',
slide: '(boolean|string)',
pause: '(string|boolean)',
wrap: 'boolean',
touch: 'boolean'
}
const PointerType = { const PointerType = {
TOUCH: 'touch', TOUCH: 'touch',
PEN: 'pen' PEN: 'pen'
} }
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Carousel { class Carousel {
constructor(element, config) { constructor(element, config) {
this._items = null this._items = null
...@@ -111,7 +108,6 @@ class Carousel { ...@@ -111,7 +108,6 @@ class Carousel {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -121,7 +117,6 @@ class Carousel { ...@@ -121,7 +117,6 @@ class Carousel {
} }
// Public // Public
next() { next() {
if (!this._isSliding) { if (!this._isSliding) {
this._slide(DIRECTION_NEXT) this._slide(DIRECTION_NEXT)
...@@ -220,7 +215,6 @@ class Carousel { ...@@ -220,7 +215,6 @@ class Carousel {
} }
// Private // Private
_getConfig(config) { _getConfig(config) {
config = { config = {
...Default, ...Default,
...@@ -508,7 +502,6 @@ class Carousel { ...@@ -508,7 +502,6 @@ class Carousel {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
...@@ -580,9 +573,7 @@ class Carousel { ...@@ -580,9 +573,7 @@ class Carousel {
} }
/** /**
* ------------------------------------------------------------------------ * Data API implementation
* Data Api implementation
* ------------------------------------------------------------------------
*/ */
$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler) $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)
...@@ -596,9 +587,7 @@ $(window).on(EVENT_LOAD_DATA_API, () => { ...@@ -596,9 +587,7 @@ $(window).on(EVENT_LOAD_DATA_API, () => {
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Carousel._jQueryInterface $.fn[NAME] = Carousel._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'collapse' const NAME = 'collapse'
...@@ -21,22 +19,6 @@ const EVENT_KEY = `.${DATA_KEY}` ...@@ -21,22 +19,6 @@ 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 = {
toggle: true,
parent: ''
}
const DefaultType = {
toggle: 'boolean',
parent: '(string|element)'
}
const EVENT_SHOW = `show${EVENT_KEY}`
const EVENT_SHOWN = `shown${EVENT_KEY}`
const EVENT_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_SHOW = 'show' const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_COLLAPSE = 'collapse' const CLASS_NAME_COLLAPSE = 'collapse'
const CLASS_NAME_COLLAPSING = 'collapsing' const CLASS_NAME_COLLAPSING = 'collapsing'
...@@ -45,13 +27,27 @@ const CLASS_NAME_COLLAPSED = 'collapsed' ...@@ -45,13 +27,27 @@ const CLASS_NAME_COLLAPSED = 'collapsed'
const DIMENSION_WIDTH = 'width' const DIMENSION_WIDTH = 'width'
const DIMENSION_HEIGHT = 'height' const DIMENSION_HEIGHT = 'height'
const EVENT_SHOW = `show${EVENT_KEY}`
const EVENT_SHOWN = `shown${EVENT_KEY}`
const EVENT_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const SELECTOR_ACTIVES = '.show, .collapsing' const SELECTOR_ACTIVES = '.show, .collapsing'
const SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]' const SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]'
const Default = {
toggle: true,
parent: ''
}
const DefaultType = {
toggle: 'boolean',
parent: '(string|element)'
}
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Collapse { class Collapse {
...@@ -89,7 +85,6 @@ class Collapse { ...@@ -89,7 +85,6 @@ class Collapse {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -99,7 +94,6 @@ class Collapse { ...@@ -99,7 +94,6 @@ class Collapse {
} }
// Public // Public
toggle() { toggle() {
if ($(this._element).hasClass(CLASS_NAME_SHOW)) { if ($(this._element).hasClass(CLASS_NAME_SHOW)) {
this.hide() this.hide()
...@@ -262,7 +256,6 @@ class Collapse { ...@@ -262,7 +256,6 @@ class Collapse {
} }
// Private // Private
_getConfig(config) { _getConfig(config) {
config = { config = {
...Default, ...Default,
...@@ -316,7 +309,6 @@ class Collapse { ...@@ -316,7 +309,6 @@ class Collapse {
} }
// Static // Static
static _getTargetFromElement(element) { static _getTargetFromElement(element) {
const selector = Util.getSelectorFromElement(element) const selector = Util.getSelectorFromElement(element)
return selector ? document.querySelector(selector) : null return selector ? document.querySelector(selector) : null
...@@ -353,9 +345,7 @@ class Collapse { ...@@ -353,9 +345,7 @@ class 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) {
...@@ -377,9 +367,7 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { ...@@ -377,9 +367,7 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Collapse._jQueryInterface $.fn[NAME] = Collapse._jQueryInterface
......
...@@ -10,9 +10,7 @@ import Popper from 'popper.js' ...@@ -10,9 +10,7 @@ import Popper from 'popper.js'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'dropdown' const NAME = 'dropdown'
...@@ -29,6 +27,14 @@ const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key ...@@ -29,6 +27,14 @@ 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 CLASS_NAME_DISABLED = 'disabled'
const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_DROPUP = 'dropup'
const CLASS_NAME_DROPRIGHT = 'dropright'
const CLASS_NAME_DROPLEFT = 'dropleft'
const CLASS_NAME_MENURIGHT = 'dropdown-menu-right'
const CLASS_NAME_POSITION_STATIC = 'position-static'
const EVENT_HIDE = `hide${EVENT_KEY}` const EVENT_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDDEN = `hidden${EVENT_KEY}` const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_SHOW = `show${EVENT_KEY}` const EVENT_SHOW = `show${EVENT_KEY}`
...@@ -38,14 +44,6 @@ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` ...@@ -38,14 +44,6 @@ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}` const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`
const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}` const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_DISABLED = 'disabled'
const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_DROPUP = 'dropup'
const CLASS_NAME_DROPRIGHT = 'dropright'
const CLASS_NAME_DROPLEFT = 'dropleft'
const CLASS_NAME_MENURIGHT = 'dropdown-menu-right'
const CLASS_NAME_POSITION_STATIC = 'position-static'
const SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]' const SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]'
const SELECTOR_FORM_CHILD = '.dropdown form' const SELECTOR_FORM_CHILD = '.dropdown form'
const SELECTOR_MENU = '.dropdown-menu' const SELECTOR_MENU = '.dropdown-menu'
...@@ -78,9 +76,7 @@ const DefaultType = { ...@@ -78,9 +76,7 @@ const DefaultType = {
} }
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Dropdown { class Dropdown {
...@@ -95,7 +91,6 @@ class Dropdown { ...@@ -95,7 +91,6 @@ class Dropdown {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -109,7 +104,6 @@ class Dropdown { ...@@ -109,7 +104,6 @@ class Dropdown {
} }
// Public // Public
toggle() { toggle() {
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) { if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
return return
...@@ -145,10 +139,7 @@ class Dropdown { ...@@ -145,10 +139,7 @@ class Dropdown {
// Totally disable Popper for Dropdowns in Navbar // Totally disable Popper for Dropdowns in Navbar
if (!this._inNavbar && usePopper) { if (!this._inNavbar && usePopper) {
/** // Check for Popper dependency
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)') throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)')
} }
...@@ -240,7 +231,6 @@ class Dropdown { ...@@ -240,7 +231,6 @@ class Dropdown {
} }
// Private // Private
_addEventListeners() { _addEventListeners() {
$(this._element).on(EVENT_CLICK, event => { $(this._element).on(EVENT_CLICK, event => {
event.preventDefault() event.preventDefault()
...@@ -348,7 +338,6 @@ class Dropdown { ...@@ -348,7 +338,6 @@ class Dropdown {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
...@@ -504,9 +493,7 @@ class Dropdown { ...@@ -504,9 +493,7 @@ class Dropdown {
} }
/** /**
* ------------------------------------------------------------------------ * Data API implementation
* Data Api implementation
* ------------------------------------------------------------------------
*/ */
$(document) $(document)
...@@ -523,9 +510,7 @@ $(document) ...@@ -523,9 +510,7 @@ $(document)
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Dropdown._jQueryInterface $.fn[NAME] = Dropdown._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'modal' const NAME = 'modal'
...@@ -22,19 +20,13 @@ const DATA_API_KEY = '.data-api' ...@@ -22,19 +20,13 @@ 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 CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'
backdrop: true, const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'
keyboard: true, const CLASS_NAME_BACKDROP = 'modal-backdrop'
focus: true, const CLASS_NAME_OPEN = 'modal-open'
show: true const CLASS_NAME_FADE = 'fade'
} const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_STATIC = 'modal-static'
const DefaultType = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean',
show: 'boolean'
}
const EVENT_HIDE = `hide${EVENT_KEY}` const EVENT_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}` const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`
...@@ -49,14 +41,6 @@ const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}` ...@@ -49,14 +41,6 @@ const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}` const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'
const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'
const CLASS_NAME_BACKDROP = 'modal-backdrop'
const CLASS_NAME_OPEN = 'modal-open'
const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_STATIC = 'modal-static'
const SELECTOR_DIALOG = '.modal-dialog' const SELECTOR_DIALOG = '.modal-dialog'
const SELECTOR_MODAL_BODY = '.modal-body' const SELECTOR_MODAL_BODY = '.modal-body'
const SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]' const SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]'
...@@ -64,10 +48,22 @@ const SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]' ...@@ -64,10 +48,22 @@ const SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]'
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
const SELECTOR_STICKY_CONTENT = '.sticky-top' const SELECTOR_STICKY_CONTENT = '.sticky-top'
const Default = {
backdrop: true,
keyboard: true,
focus: true,
show: true
}
const DefaultType = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean',
show: 'boolean'
}
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Modal { class Modal {
...@@ -84,7 +80,6 @@ class Modal { ...@@ -84,7 +80,6 @@ class Modal {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -94,7 +89,6 @@ class Modal { ...@@ -94,7 +89,6 @@ class Modal {
} }
// Public // Public
toggle(relatedTarget) { toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget) return this._isShown ? this.hide() : this.show(relatedTarget)
} }
...@@ -219,7 +213,6 @@ class Modal { ...@@ -219,7 +213,6 @@ class Modal {
} }
// Private // Private
_getConfig(config) { _getConfig(config) {
config = { config = {
...Default, ...Default,
...@@ -545,7 +538,6 @@ class Modal { ...@@ -545,7 +538,6 @@ class Modal {
} }
// Static // Static
static _jQueryInterface(config, relatedTarget) { static _jQueryInterface(config, relatedTarget) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
...@@ -574,9 +566,7 @@ class Modal { ...@@ -574,9 +566,7 @@ class 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) {
...@@ -614,9 +604,7 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { ...@@ -614,9 +604,7 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Modal._jQueryInterface $.fn[NAME] = Modal._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Tooltip from './tooltip' import Tooltip from './tooltip'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'popover' const NAME = 'popover'
...@@ -22,6 +20,12 @@ const JQUERY_NO_CONFLICT = $.fn[NAME] ...@@ -22,6 +20,12 @@ 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 CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show'
const SELECTOR_TITLE = '.popover-header'
const SELECTOR_CONTENT = '.popover-body'
const Default = { const Default = {
...Tooltip.Default, ...Tooltip.Default,
placement: 'right', placement: 'right',
...@@ -38,12 +42,6 @@ const DefaultType = { ...@@ -38,12 +42,6 @@ const DefaultType = {
content: '(string|element|function)' content: '(string|element|function)'
} }
const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show'
const SELECTOR_TITLE = '.popover-header'
const SELECTOR_CONTENT = '.popover-body'
const Event = { const Event = {
HIDE: `hide${EVENT_KEY}`, HIDE: `hide${EVENT_KEY}`,
HIDDEN: `hidden${EVENT_KEY}`, HIDDEN: `hidden${EVENT_KEY}`,
...@@ -58,14 +56,11 @@ const Event = { ...@@ -58,14 +56,11 @@ const Event = {
} }
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Popover extends Tooltip { class Popover extends Tooltip {
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -95,7 +90,6 @@ class Popover extends Tooltip { ...@@ -95,7 +90,6 @@ class Popover extends Tooltip {
} }
// Overrides // Overrides
isWithContent() { isWithContent() {
return this.getTitle() || this._getContent() return this.getTitle() || this._getContent()
} }
...@@ -125,7 +119,6 @@ class Popover extends Tooltip { ...@@ -125,7 +119,6 @@ class Popover extends Tooltip {
} }
// Private // Private
_getContent() { _getContent() {
return this.element.getAttribute('data-content') || return this.element.getAttribute('data-content') ||
this.config.content this.config.content
...@@ -140,7 +133,6 @@ class Popover extends Tooltip { ...@@ -140,7 +133,6 @@ class Popover extends Tooltip {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
...@@ -167,9 +159,7 @@ class Popover extends Tooltip { ...@@ -167,9 +159,7 @@ class Popover extends Tooltip {
} }
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Popover._jQueryInterface $.fn[NAME] = Popover._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'scrollspy' const NAME = 'scrollspy'
...@@ -21,24 +19,15 @@ const EVENT_KEY = `.${DATA_KEY}` ...@@ -21,24 +19,15 @@ 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 CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'
offset: 10, const CLASS_NAME_ACTIVE = 'active'
method: 'auto',
target: ''
}
const DefaultType = {
offset: 'number',
method: 'string',
target: '(string|element)'
}
const EVENT_ACTIVATE = `activate${EVENT_KEY}` const EVENT_ACTIVATE = `activate${EVENT_KEY}`
const EVENT_SCROLL = `scroll${EVENT_KEY}` const EVENT_SCROLL = `scroll${EVENT_KEY}`
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item' const METHOD_OFFSET = 'offset'
const CLASS_NAME_ACTIVE = 'active' const METHOD_POSITION = 'position'
const SELECTOR_DATA_SPY = '[data-spy="scroll"]' const SELECTOR_DATA_SPY = '[data-spy="scroll"]'
const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group' const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'
...@@ -49,13 +38,20 @@ const SELECTOR_DROPDOWN = '.dropdown' ...@@ -49,13 +38,20 @@ const SELECTOR_DROPDOWN = '.dropdown'
const SELECTOR_DROPDOWN_ITEMS = '.dropdown-item' const SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle' const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'
const METHOD_OFFSET = 'offset' const Default = {
const METHOD_POSITION = 'position' offset: 10,
method: 'auto',
target: ''
}
const DefaultType = {
offset: 'number',
method: 'string',
target: '(string|element)'
}
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class ScrollSpy { class ScrollSpy {
...@@ -78,7 +74,6 @@ class ScrollSpy { ...@@ -78,7 +74,6 @@ class ScrollSpy {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -88,7 +83,6 @@ class ScrollSpy { ...@@ -88,7 +83,6 @@ class ScrollSpy {
} }
// Public // Public
refresh() { refresh() {
const autoMethod = this._scrollElement === this._scrollElement.window ? const autoMethod = this._scrollElement === this._scrollElement.window ?
METHOD_OFFSET : METHOD_POSITION METHOD_OFFSET : METHOD_POSITION
...@@ -151,7 +145,6 @@ class ScrollSpy { ...@@ -151,7 +145,6 @@ class ScrollSpy {
} }
// Private // Private
_getConfig(config) { _getConfig(config) {
config = { config = {
...Default, ...Default,
...@@ -270,7 +263,6 @@ class ScrollSpy { ...@@ -270,7 +263,6 @@ class ScrollSpy {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
...@@ -293,9 +285,7 @@ class ScrollSpy { ...@@ -293,9 +285,7 @@ class ScrollSpy {
} }
/** /**
* ------------------------------------------------------------------------ * Data API implementation
* Data Api implementation
* ------------------------------------------------------------------------
*/ */
$(window).on(EVENT_LOAD_DATA_API, () => { $(window).on(EVENT_LOAD_DATA_API, () => {
...@@ -309,9 +299,7 @@ $(window).on(EVENT_LOAD_DATA_API, () => { ...@@ -309,9 +299,7 @@ $(window).on(EVENT_LOAD_DATA_API, () => {
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = ScrollSpy._jQueryInterface $.fn[NAME] = ScrollSpy._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'tab' const NAME = 'tab'
...@@ -21,18 +19,18 @@ const EVENT_KEY = `.${DATA_KEY}` ...@@ -21,18 +19,18 @@ 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_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_SHOW = `show${EVENT_KEY}`
const EVENT_SHOWN = `shown${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu' const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'
const CLASS_NAME_ACTIVE = 'active' const CLASS_NAME_ACTIVE = 'active'
const CLASS_NAME_DISABLED = 'disabled' const CLASS_NAME_DISABLED = 'disabled'
const CLASS_NAME_FADE = 'fade' const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show' const CLASS_NAME_SHOW = 'show'
const EVENT_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_SHOW = `show${EVENT_KEY}`
const EVENT_SHOWN = `shown${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const SELECTOR_DROPDOWN = '.dropdown' const SELECTOR_DROPDOWN = '.dropdown'
const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group' const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'
const SELECTOR_ACTIVE = '.active' const SELECTOR_ACTIVE = '.active'
...@@ -42,9 +40,7 @@ const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle' ...@@ -42,9 +40,7 @@ const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'
const SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active' const SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Tab { class Tab {
...@@ -53,13 +49,11 @@ class Tab { ...@@ -53,13 +49,11 @@ class Tab {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
// Public // Public
show() { show() {
if (this._element.parentNode && if (this._element.parentNode &&
this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
...@@ -133,7 +127,6 @@ class Tab { ...@@ -133,7 +127,6 @@ class Tab {
} }
// Private // Private
_activate(element, container, callback) { _activate(element, container, callback) {
const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?
$(container).find(SELECTOR_ACTIVE_UL) : $(container).find(SELECTOR_ACTIVE_UL) :
...@@ -210,7 +203,6 @@ class Tab { ...@@ -210,7 +203,6 @@ class Tab {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
const $this = $(this) const $this = $(this)
...@@ -233,9 +225,7 @@ class Tab { ...@@ -233,9 +225,7 @@ class Tab {
} }
/** /**
* ------------------------------------------------------------------------ * Data API implementation
* Data Api implementation
* ------------------------------------------------------------------------
*/ */
$(document) $(document)
...@@ -245,9 +235,7 @@ $(document) ...@@ -245,9 +235,7 @@ $(document)
}) })
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Tab._jQueryInterface $.fn[NAME] = Tab._jQueryInterface
......
...@@ -9,9 +9,7 @@ import $ from 'jquery' ...@@ -9,9 +9,7 @@ import $ from 'jquery'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'toast' const NAME = 'toast'
...@@ -20,22 +18,18 @@ const DATA_KEY = 'bs.toast' ...@@ -20,22 +18,18 @@ const DATA_KEY = 'bs.toast'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_HIDE = 'hide'
const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_SHOWING = 'showing'
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}` const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`
const EVENT_HIDE = `hide${EVENT_KEY}` const EVENT_HIDE = `hide${EVENT_KEY}`
const EVENT_HIDDEN = `hidden${EVENT_KEY}` const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_SHOW = `show${EVENT_KEY}` const EVENT_SHOW = `show${EVENT_KEY}`
const EVENT_SHOWN = `shown${EVENT_KEY}` const EVENT_SHOWN = `shown${EVENT_KEY}`
const CLASS_NAME_FADE = 'fade' const SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]'
const CLASS_NAME_HIDE = 'hide'
const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_SHOWING = 'showing'
const DefaultType = {
animation: 'boolean',
autohide: 'boolean',
delay: 'number'
}
const Default = { const Default = {
animation: true, animation: true,
...@@ -43,12 +37,14 @@ const Default = { ...@@ -43,12 +37,14 @@ const Default = {
delay: 500 delay: 500
} }
const SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]' const DefaultType = {
animation: 'boolean',
autohide: 'boolean',
delay: 'number'
}
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Toast { class Toast {
...@@ -60,7 +56,6 @@ class Toast { ...@@ -60,7 +56,6 @@ class Toast {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -74,7 +69,6 @@ class Toast { ...@@ -74,7 +69,6 @@ class Toast {
} }
// Public // Public
show() { show() {
const showEvent = $.Event(EVENT_SHOW) const showEvent = $.Event(EVENT_SHOW)
...@@ -146,7 +140,6 @@ class Toast { ...@@ -146,7 +140,6 @@ class Toast {
} }
// Private // Private
_getConfig(config) { _getConfig(config) {
config = { config = {
...Default, ...Default,
...@@ -191,7 +184,6 @@ class Toast { ...@@ -191,7 +184,6 @@ class Toast {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
const $element = $(this) const $element = $(this)
...@@ -215,9 +207,7 @@ class Toast { ...@@ -215,9 +207,7 @@ class Toast {
} }
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Toast._jQueryInterface $.fn[NAME] = Toast._jQueryInterface
......
...@@ -5,18 +5,13 @@ ...@@ -5,18 +5,13 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
import { import { DefaultWhitelist, sanitizeHtml } from './tools/sanitizer'
DefaultWhitelist,
sanitizeHtml
} from './tools/sanitizer'
import $ from 'jquery' import $ from 'jquery'
import Popper from 'popper.js' import Popper from 'popper.js'
import Util from './util' import Util from './util'
/** /**
* ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------
*/ */
const NAME = 'tooltip' const NAME = 'tooltip'
...@@ -28,25 +23,19 @@ const CLASS_PREFIX = 'bs-tooltip' ...@@ -28,25 +23,19 @@ 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 DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'] const DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']
const DefaultType = { const CLASS_NAME_FADE = 'fade'
animation: 'boolean', const CLASS_NAME_SHOW = 'show'
template: 'string',
title: '(string|element|function)', const HOVER_STATE_SHOW = 'show'
trigger: 'string', const HOVER_STATE_OUT = 'out'
delay: '(number|object)',
html: 'boolean', const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'
selector: '(string|boolean)', const SELECTOR_ARROW = '.arrow'
placement: '(string|function)',
offset: '(number|string|function)', const TRIGGER_HOVER = 'hover'
container: '(string|element|boolean)', const TRIGGER_FOCUS = 'focus'
fallbackPlacement: '(string|array)', const TRIGGER_CLICK = 'click'
boundary: '(string|element)', const TRIGGER_MANUAL = 'manual'
customClass: '(string|function)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
whiteList: 'object',
popperConfig: '(null|object)'
}
const AttachmentMap = { const AttachmentMap = {
AUTO: 'auto', AUTO: 'auto',
...@@ -78,8 +67,25 @@ const Default = { ...@@ -78,8 +67,25 @@ const Default = {
popperConfig: null popperConfig: null
} }
const HOVER_STATE_SHOW = 'show' const DefaultType = {
const HOVER_STATE_OUT = 'out' animation: 'boolean',
template: 'string',
title: '(string|element|function)',
trigger: 'string',
delay: '(number|object)',
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: '(number|string|function)',
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)',
boundary: '(string|element)',
customClass: '(string|function)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
whiteList: 'object',
popperConfig: '(null|object)'
}
const Event = { const Event = {
HIDE: `hide${EVENT_KEY}`, HIDE: `hide${EVENT_KEY}`,
...@@ -94,21 +100,8 @@ const Event = { ...@@ -94,21 +100,8 @@ const Event = {
MOUSELEAVE: `mouseleave${EVENT_KEY}` MOUSELEAVE: `mouseleave${EVENT_KEY}`
} }
const CLASS_NAME_FADE = 'fade'
const CLASS_NAME_SHOW = 'show'
const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'
const SELECTOR_ARROW = '.arrow'
const TRIGGER_HOVER = 'hover'
const TRIGGER_FOCUS = 'focus'
const TRIGGER_CLICK = 'click'
const TRIGGER_MANUAL = 'manual'
/** /**
* ------------------------------------------------------------------------ * Class definition
* Class Definition
* ------------------------------------------------------------------------
*/ */
class Tooltip { class Tooltip {
...@@ -117,7 +110,7 @@ class Tooltip { ...@@ -117,7 +110,7 @@ class Tooltip {
throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)') throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)')
} }
// private // Private
this._isEnabled = true this._isEnabled = true
this._timeout = 0 this._timeout = 0
this._hoverState = '' this._hoverState = ''
...@@ -133,7 +126,6 @@ class Tooltip { ...@@ -133,7 +126,6 @@ class Tooltip {
} }
// Getters // Getters
static get VERSION() { static get VERSION() {
return VERSION return VERSION
} }
...@@ -163,7 +155,6 @@ class Tooltip { ...@@ -163,7 +155,6 @@ class Tooltip {
} }
// Public // Public
enable() { enable() {
this._isEnabled = true this._isEnabled = true
} }
...@@ -381,7 +372,6 @@ class Tooltip { ...@@ -381,7 +372,6 @@ class Tooltip {
} }
// Protected // Protected
isWithContent() { isWithContent() {
return Boolean(this.getTitle()) return Boolean(this.getTitle())
} }
...@@ -439,7 +429,6 @@ class Tooltip { ...@@ -439,7 +429,6 @@ class Tooltip {
} }
// Private // Private
_getPopperConfig(attachment) { _getPopperConfig(attachment) {
const defaultBsConfig = { const defaultBsConfig = {
placement: attachment, placement: attachment,
...@@ -735,7 +724,6 @@ class Tooltip { ...@@ -735,7 +724,6 @@ class Tooltip {
} }
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
const $element = $(this) const $element = $(this)
...@@ -763,9 +751,7 @@ class Tooltip { ...@@ -763,9 +751,7 @@ class Tooltip {
} }
/** /**
* ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Tooltip._jQueryInterface $.fn[NAME] = Tooltip._jQueryInterface
......
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
import $ from 'jquery' import $ from 'jquery'
/** /**
* ------------------------------------------------------------------------
* Private TransitionEnd Helpers * Private TransitionEnd Helpers
* ------------------------------------------------------------------------
*/ */
const TRANSITION_END = 'transitionend' const TRANSITION_END = 'transitionend'
...@@ -62,9 +60,7 @@ function setTransitionEndSupport() { ...@@ -62,9 +60,7 @@ function setTransitionEndSupport() {
} }
/** /**
* -------------------------------------------------------------------------- * Public Util API
* Public Util Api
* --------------------------------------------------------------------------
*/ */
const Util = { const Util = {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment