// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
})
}
- static _handleDismiss(alertInstance) {
+ static handleDismiss(alertInstance) {
return function (event) {
if (event) {
event.preventDefault()
}
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
* ------------------------------------------------------------------------
*/
EventHandler
- .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))
+ .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert.handleDismiss(new Alert()))
/**
* ------------------------------------------------------------------------
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Alert._jQueryInterface
+ $.fn[NAME] = Alert.jQueryInterface
$.fn[NAME].Constructor = Alert
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Alert._jQueryInterface
+ return Alert.jQueryInterface
}
}
const alertEl = document.querySelector('.alert')
const alert = new Alert(alertEl)
- expect(Alert._getInstance(alertEl)).toBeDefined()
+ expect(Alert.getInstance(alertEl)).toBeDefined()
alert.dispose()
- expect(Alert._getInstance(alertEl)).toBeNull()
+ expect(Alert.getInstance(alertEl)).toBeNull()
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should handle config passed and toggle existing alert', () => {
fixtureEl.innerHTML = '<div class="alert"></div>'
spyOn(alert, 'close')
- jQueryMock.fn.alert = Alert._jQueryInterface
+ jQueryMock.fn.alert = Alert.jQueryInterface
jQueryMock.elements = [alertEl]
jQueryMock.fn.alert.call(jQueryMock, 'close')
const alertEl = fixtureEl.querySelector('.alert')
- jQueryMock.fn.alert = Alert._jQueryInterface
+ jQueryMock.fn.alert = Alert.jQueryInterface
jQueryMock.elements = [alertEl]
jQueryMock.fn.alert.call(jQueryMock, 'close')
- expect(Alert._getInstance(alertEl)).toBeDefined()
+ expect(Alert.getInstance(alertEl)).toBeDefined()
expect(fixtureEl.querySelector('.alert')).toBeNull()
})
const alertEl = fixtureEl.querySelector('.alert')
- jQueryMock.fn.alert = Alert._jQueryInterface
+ jQueryMock.fn.alert = Alert.jQueryInterface
jQueryMock.elements = [alertEl]
jQueryMock.fn.alert.call(jQueryMock)
- expect(Alert._getInstance(alertEl)).toBeDefined()
+ expect(Alert.getInstance(alertEl)).toBeDefined()
expect(fixtureEl.querySelector('.alert')).not.toBeNull()
})
})
// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Button._jQueryInterface
+ $.fn[NAME] = Button.jQueryInterface
$.fn[NAME].Constructor = Button
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Button._jQueryInterface
+ return Button.jQueryInterface
}
}
const btnEl = fixtureEl.querySelector('.btn')
const button = new Button(btnEl)
- expect(Button._getInstance(btnEl)).toBeDefined()
+ expect(Button.getInstance(btnEl)).toBeDefined()
button.dispose()
- expect(Button._getInstance(btnEl)).toBeNull()
+ expect(Button.getInstance(btnEl)).toBeNull()
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should handle config passed and toggle existing button', () => {
fixtureEl.innerHTML = '<button class="btn" data-toggle="button"></button>'
spyOn(button, 'toggle')
- jQueryMock.fn.button = Button._jQueryInterface
+ jQueryMock.fn.button = Button.jQueryInterface
jQueryMock.elements = [btnEl]
jQueryMock.fn.button.call(jQueryMock, 'toggle')
const btnEl = fixtureEl.querySelector('.btn')
- jQueryMock.fn.button = Button._jQueryInterface
+ jQueryMock.fn.button = Button.jQueryInterface
jQueryMock.elements = [btnEl]
jQueryMock.fn.button.call(jQueryMock, 'toggle')
- expect(Button._getInstance(btnEl)).toBeDefined()
+ expect(Button.getInstance(btnEl)).toBeDefined()
expect(btnEl.classList.contains('active')).toEqual(true)
})
const btnEl = fixtureEl.querySelector('.btn')
- jQueryMock.fn.button = Button._jQueryInterface
+ jQueryMock.fn.button = Button.jQueryInterface
jQueryMock.elements = [btnEl]
jQueryMock.fn.button.call(jQueryMock)
- expect(Button._getInstance(btnEl)).toBeDefined()
+ expect(Button.getInstance(btnEl)).toBeDefined()
expect(btnEl.classList.contains('active')).toEqual(false)
})
})
// Static
- static _carouselInterface(element, config) {
+ static carouselInterface(element, config) {
let data = Data.getData(element, DATA_KEY)
let _config = {
...Default,
}
}
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
- Carousel._carouselInterface(this, config)
+ Carousel.carouselInterface(this, config)
})
}
- static _dataApiClickHandler(event) {
+ static dataApiClickHandler(event) {
const target = getElementFromSelector(this)
if (!target || !target.classList.contains(ClassName.CAROUSEL)) {
config.interval = false
}
- Carousel._carouselInterface(target, config)
+ Carousel.carouselInterface(target, config)
if (slideIndex) {
Data.getData(target, DATA_KEY).to(slideIndex)
event.preventDefault()
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
*/
EventHandler
- .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)
+ .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel.dataApiClickHandler)
EventHandler.on(window, Event.LOAD_DATA_API, () => {
const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))
for (let i = 0, len = carousels.length; i < len; i++) {
- Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))
+ Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))
}
})
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Carousel._jQueryInterface
+ $.fn[NAME] = Carousel.jQueryInterface
$.fn[NAME].Constructor = Carousel
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Carousel._jQueryInterface
+ return Carousel.jQueryInterface
}
}
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a carousel', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.carousel = Carousel._jQueryInterface
+ jQueryMock.fn.carousel = Carousel.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.carousel.call(jQueryMock)
- expect(Carousel._getInstance(div)).toBeDefined()
+ expect(Carousel.getInstance(div)).toBeDefined()
})
it('should not re create a carousel', () => {
const div = fixtureEl.querySelector('div')
const carousel = new Carousel(div)
- jQueryMock.fn.carousel = Carousel._jQueryInterface
+ jQueryMock.fn.carousel = Carousel.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.carousel.call(jQueryMock)
- expect(Carousel._getInstance(div)).toEqual(carousel)
+ expect(Carousel.getInstance(div)).toEqual(carousel)
})
it('should call to if the config is a number', () => {
spyOn(carousel, 'to')
- jQueryMock.fn.carousel = Carousel._jQueryInterface
+ jQueryMock.fn.carousel = Carousel.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.carousel.call(jQueryMock, slideTo)
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.carousel = Carousel._jQueryInterface
+ jQueryMock.fn.carousel = Carousel.jQueryInterface
jQueryMock.elements = [div]
try {
window.dispatchEvent(loadEvent)
- expect(Carousel._getInstance(carouselEl)).toBeDefined()
+ expect(Carousel.getInstance(carouselEl)).toBeDefined()
})
it('should create carousel and go to the next slide on click', done => {
if (actives) {
actives.forEach(elemActive => {
if (container !== elemActive) {
- Collapse._collapseInterface(elemActive, 'hide')
+ Collapse.collapseInterface(elemActive, 'hide')
}
if (!activesData) {
// Static
- static _collapseInterface(element, config) {
+ static collapseInterface(element, config) {
let data = Data.getData(element, DATA_KEY)
const _config = {
...Default,
}
}
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
- Collapse._collapseInterface(this, config)
+ Collapse.collapseInterface(this, config)
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
config = triggerData
}
- Collapse._collapseInterface(element, config)
+ Collapse.collapseInterface(element, config)
})
})
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Collapse._jQueryInterface
+ $.fn[NAME] = Collapse.jQueryInterface
$.fn[NAME].Constructor = Collapse
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Collapse._jQueryInterface
+ return Collapse.jQueryInterface
}
}
toggle: false
})
- expect(Collapse._getInstance(collapseEl)).toEqual(collapse)
+ expect(Collapse.getInstance(collapseEl)).toEqual(collapse)
collapse.dispose()
- expect(Collapse._getInstance(collapseEl)).toEqual(null)
+ expect(Collapse.getInstance(collapseEl)).toEqual(null)
})
})
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a collapse', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.collapse = Collapse._jQueryInterface
+ jQueryMock.fn.collapse = Collapse.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.collapse.call(jQueryMock)
- expect(Collapse._getInstance(div)).toBeDefined()
+ expect(Collapse.getInstance(div)).toBeDefined()
})
it('should not re create a collapse', () => {
const div = fixtureEl.querySelector('div')
const collapse = new Collapse(div)
- jQueryMock.fn.collapse = Collapse._jQueryInterface
+ jQueryMock.fn.collapse = Collapse.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.collapse.call(jQueryMock)
- expect(Collapse._getInstance(div)).toEqual(collapse)
+ expect(Collapse.getInstance(div)).toEqual(collapse)
})
it('should throw error on undefined method', () => {
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.collapse = Collapse._jQueryInterface
+ jQueryMock.fn.collapse = Collapse.jQueryInterface
jQueryMock.elements = [div]
try {
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return collapse instance', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
const collapse = new Collapse(div)
- expect(Collapse._getInstance(div)).toEqual(collapse)
+ expect(Collapse.getInstance(div)).toEqual(collapse)
})
it('should return null when there is no collapse instance', () => {
const div = fixtureEl.querySelector('div')
- expect(Collapse._getInstance(div)).toEqual(null)
+ expect(Collapse.getInstance(div)).toEqual(null)
})
})
})
return
}
- const parent = Dropdown._getParentFromElement(this._element)
+ const parent = Dropdown.getParentFromElement(this._element)
const isActive = this._menu.classList.contains(ClassName.SHOW)
- Dropdown._clearMenus()
+ Dropdown.clearMenus()
if (isActive) {
return
return
}
- const parent = Dropdown._getParentFromElement(this._element)
+ const parent = Dropdown.getParentFromElement(this._element)
const relatedTarget = {
relatedTarget: this._element
}
return
}
- const parent = Dropdown._getParentFromElement(this._element)
+ const parent = Dropdown.getParentFromElement(this._element)
const relatedTarget = {
relatedTarget: this._element
}
}
_getMenuElement() {
- const parent = Dropdown._getParentFromElement(this._element)
+ const parent = Dropdown.getParentFromElement(this._element)
return SelectorEngine.findOne(Selector.MENU, parent)
}
// Static
- static _dropdownInterface(element, config) {
+ static dropdownInterface(element, config) {
let data = Data.getData(element, DATA_KEY)
const _config = typeof config === 'object' ? config : null
}
}
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
- Dropdown._dropdownInterface(this, config)
+ Dropdown.dropdownInterface(this, config)
})
}
- static _clearMenus(event) {
+ static clearMenus(event) {
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||
event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
return
const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))
for (let i = 0, len = toggles.length; i < len; i++) {
- const parent = Dropdown._getParentFromElement(toggles[i])
+ const parent = Dropdown.getParentFromElement(toggles[i])
const context = Data.getData(toggles[i], DATA_KEY)
const relatedTarget = {
relatedTarget: toggles[i]
}
}
- static _getParentFromElement(element) {
+ static getParentFromElement(element) {
return getElementFromSelector(element) || element.parentNode
}
- static _dataApiKeydownHandler(event) {
+ static dataApiKeydownHandler(event) {
// If not input/textarea:
// - And not a key in REGEXP_KEYDOWN => not a dropdown command
// If input/textarea:
return
}
- const parent = Dropdown._getParentFromElement(this)
+ const parent = Dropdown.getParentFromElement(this)
const isActive = parent.classList.contains(ClassName.SHOW)
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()
}
- Dropdown._clearMenus()
+ Dropdown.clearMenus()
return
}
items[index].focus()
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
* ------------------------------------------------------------------------
*/
-EventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)
-EventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)
-EventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)
-EventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)
+EventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown.dataApiKeydownHandler)
+EventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown.dataApiKeydownHandler)
+EventHandler.on(document, Event.CLICK_DATA_API, Dropdown.clearMenus)
+EventHandler.on(document, Event.KEYUP_DATA_API, Dropdown.clearMenus)
EventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault()
event.stopPropagation()
- Dropdown._dropdownInterface(this, 'toggle')
+ Dropdown.dropdownInterface(this, 'toggle')
})
EventHandler
.on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Dropdown._jQueryInterface
+ $.fn[NAME] = Dropdown.jQueryInterface
$.fn[NAME].Constructor = Dropdown
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Dropdown._jQueryInterface
+ return Dropdown.jQueryInterface
}
}
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a dropdown', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.dropdown = Dropdown._jQueryInterface
+ jQueryMock.fn.dropdown = Dropdown.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.dropdown.call(jQueryMock)
- expect(Dropdown._getInstance(div)).toBeDefined()
+ expect(Dropdown.getInstance(div)).toBeDefined()
})
it('should not re create a dropdown', () => {
const div = fixtureEl.querySelector('div')
const dropdown = new Dropdown(div)
- jQueryMock.fn.dropdown = Dropdown._jQueryInterface
+ jQueryMock.fn.dropdown = Dropdown.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.dropdown.call(jQueryMock)
- expect(Dropdown._getInstance(div)).toEqual(dropdown)
+ expect(Dropdown.getInstance(div)).toEqual(dropdown)
})
it('should throw error on undefined method', () => {
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.dropdown = Dropdown._jQueryInterface
+ jQueryMock.fn.dropdown = Dropdown.jQueryInterface
jQueryMock.elements = [div]
try {
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return dropdown instance', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
const dropdown = new Dropdown(div)
- expect(Dropdown._getInstance(div)).toEqual(dropdown)
+ expect(Dropdown.getInstance(div)).toEqual(dropdown)
})
it('should return null when there is no dropdown instance', () => {
const div = fixtureEl.querySelector('div')
- expect(Dropdown._getInstance(div)).toEqual(null)
+ expect(Dropdown.getInstance(div)).toEqual(null)
})
})
})
// Static
- static _jQueryInterface(config, relatedTarget) {
+ static jQueryInterface(config, relatedTarget) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
const _config = {
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Modal._jQueryInterface
+ $.fn[NAME] = Modal.jQueryInterface
$.fn[NAME].Constructor = Modal
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Modal._jQueryInterface
+ return Modal.jQueryInterface
}
}
const modalEl = fixtureEl.querySelector('.modal')
const modal = new Modal(modalEl)
- expect(Modal._getInstance(modalEl)).toEqual(modal)
+ expect(Modal.getInstance(modalEl)).toEqual(modal)
spyOn(EventHandler, 'off')
modal.dispose()
- expect(Modal._getInstance(modalEl)).toEqual(null)
+ expect(Modal.getInstance(modalEl)).toEqual(null)
expect(EventHandler.off).toHaveBeenCalledTimes(4)
})
})
spyOn(trigger, 'focus')
modalEl.addEventListener('shown.bs.modal', () => {
- const modal = Modal._getInstance(modalEl)
+ const modal = Modal.getInstance(modalEl)
modal.hide()
})
spyOn(trigger, 'focus')
modalEl.addEventListener('shown.bs.modal', () => {
- const modal = Modal._getInstance(modalEl)
+ const modal = Modal.getInstance(modalEl)
modal.hide()
})
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a modal', () => {
fixtureEl.innerHTML = '<div class="modal"><div class="modal-dialog" /></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.modal = Modal._jQueryInterface
+ jQueryMock.fn.modal = Modal.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.modal.call(jQueryMock)
- expect(Modal._getInstance(div)).toBeDefined()
+ expect(Modal.getInstance(div)).toBeDefined()
})
it('should not re create a modal', () => {
const div = fixtureEl.querySelector('div')
const modal = new Modal(div)
- jQueryMock.fn.modal = Modal._jQueryInterface
+ jQueryMock.fn.modal = Modal.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.modal.call(jQueryMock)
- expect(Modal._getInstance(div)).toEqual(modal)
+ expect(Modal.getInstance(div)).toEqual(modal)
})
it('should throw error on undefined method', () => {
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.modal = Modal._jQueryInterface
+ jQueryMock.fn.modal = Modal.jQueryInterface
jQueryMock.elements = [div]
try {
const div = fixtureEl.querySelector('div')
const modal = new Modal(div)
- jQueryMock.fn.modal = Modal._jQueryInterface
+ jQueryMock.fn.modal = Modal.jQueryInterface
jQueryMock.elements = [div]
spyOn(modal, 'show')
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.modal = Modal._jQueryInterface
+ jQueryMock.fn.modal = Modal.jQueryInterface
jQueryMock.elements = [div]
spyOn(Modal.prototype, 'show')
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return modal instance', () => {
fixtureEl.innerHTML = '<div class="modal"><div class="modal-dialog" /></div>'
const div = fixtureEl.querySelector('div')
const modal = new Modal(div)
- expect(Modal._getInstance(div)).toEqual(modal)
+ expect(Modal.getInstance(div)).toEqual(modal)
})
it('should return null when there is no modal instance', () => {
const div = fixtureEl.querySelector('div')
- expect(Modal._getInstance(div)).toEqual(null)
+ expect(Modal.getInstance(div)).toEqual(null)
})
})
})
// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
const _config = typeof config === 'object' ? config : null
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Popover._jQueryInterface
+ $.fn[NAME] = Popover.jQueryInterface
$.fn[NAME].Constructor = Popover
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Popover._jQueryInterface
+ return Popover.jQueryInterface
}
}
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a popover', () => {
fixtureEl.innerHTML = '<a href="#" title="Popover" data-content="https://twitter.com/getbootstrap">BS twitter</a>'
const popoverEl = fixtureEl.querySelector('a')
- jQueryMock.fn.popover = Popover._jQueryInterface
+ jQueryMock.fn.popover = Popover.jQueryInterface
jQueryMock.elements = [popoverEl]
jQueryMock.fn.popover.call(jQueryMock)
- expect(Popover._getInstance(popoverEl)).toBeDefined()
+ expect(Popover.getInstance(popoverEl)).toBeDefined()
})
it('should create a popover with a config object', () => {
const popoverEl = fixtureEl.querySelector('a')
- jQueryMock.fn.popover = Popover._jQueryInterface
+ jQueryMock.fn.popover = Popover.jQueryInterface
jQueryMock.elements = [popoverEl]
jQueryMock.fn.popover.call(jQueryMock, {
content: 'Popover content'
})
- expect(Popover._getInstance(popoverEl)).toBeDefined()
+ expect(Popover.getInstance(popoverEl)).toBeDefined()
})
it('should not re create a popover', () => {
const popoverEl = fixtureEl.querySelector('a')
const popover = new Popover(popoverEl)
- jQueryMock.fn.popover = Popover._jQueryInterface
+ jQueryMock.fn.popover = Popover.jQueryInterface
jQueryMock.elements = [popoverEl]
jQueryMock.fn.popover.call(jQueryMock)
- expect(Popover._getInstance(popoverEl)).toEqual(popover)
+ expect(Popover.getInstance(popoverEl)).toEqual(popover)
})
it('should throw error on undefined method', () => {
const popoverEl = fixtureEl.querySelector('a')
const action = 'undefinedMethod'
- jQueryMock.fn.popover = Popover._jQueryInterface
+ jQueryMock.fn.popover = Popover.jQueryInterface
jQueryMock.elements = [popoverEl]
try {
const popoverEl = fixtureEl.querySelector('a')
const popover = new Popover(popoverEl)
- jQueryMock.fn.popover = Popover._jQueryInterface
+ jQueryMock.fn.popover = Popover.jQueryInterface
jQueryMock.elements = [popoverEl]
spyOn(popover, 'show')
const popoverEl = fixtureEl.querySelector('a')
- jQueryMock.fn.popover = Popover._jQueryInterface
+ jQueryMock.fn.popover = Popover.jQueryInterface
jQueryMock.elements = [popoverEl]
spyOn(Popover.prototype, 'dispose')
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return popover instance', () => {
fixtureEl.innerHTML = '<a href="#" title="Popover" data-content="https://twitter.com/getbootstrap">BS twitter</a>'
const popoverEl = fixtureEl.querySelector('a')
const popover = new Popover(popoverEl)
- expect(Popover._getInstance(popoverEl)).toEqual(popover)
+ expect(Popover.getInstance(popoverEl)).toEqual(popover)
})
it('should return null when there is no popover instance', () => {
const popoverEl = fixtureEl.querySelector('a')
- expect(Popover._getInstance(popoverEl)).toEqual(null)
+ expect(Popover.getInstance(popoverEl)).toEqual(null)
})
})
})
// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
const _config = typeof config === 'object' && config
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = ScrollSpy._jQueryInterface
+ $.fn[NAME] = ScrollSpy.jQueryInterface
$.fn[NAME].Constructor = ScrollSpy
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return ScrollSpy._jQueryInterface
+ return ScrollSpy.jQueryInterface
}
}
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a scrollspy', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.scrollspy = ScrollSpy._jQueryInterface
+ jQueryMock.fn.scrollspy = ScrollSpy.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.scrollspy.call(jQueryMock)
- expect(ScrollSpy._getInstance(div)).toBeDefined()
+ expect(ScrollSpy.getInstance(div)).toBeDefined()
})
it('should not re create a scrollspy', () => {
const div = fixtureEl.querySelector('div')
const scrollSpy = new ScrollSpy(div)
- jQueryMock.fn.scrollspy = ScrollSpy._jQueryInterface
+ jQueryMock.fn.scrollspy = ScrollSpy.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.scrollspy.call(jQueryMock)
- expect(ScrollSpy._getInstance(div)).toEqual(scrollSpy)
+ expect(ScrollSpy.getInstance(div)).toEqual(scrollSpy)
})
it('should call a scrollspy method', () => {
spyOn(scrollSpy, 'refresh')
- jQueryMock.fn.scrollspy = ScrollSpy._jQueryInterface
+ jQueryMock.fn.scrollspy = ScrollSpy.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.scrollspy.call(jQueryMock, 'refresh')
- expect(ScrollSpy._getInstance(div)).toEqual(scrollSpy)
+ expect(ScrollSpy.getInstance(div)).toEqual(scrollSpy)
expect(scrollSpy.refresh).toHaveBeenCalled()
})
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.scrollspy = ScrollSpy._jQueryInterface
+ jQueryMock.fn.scrollspy = ScrollSpy.jQueryInterface
jQueryMock.elements = [div]
try {
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return null if there is no instance', () => {
- expect(ScrollSpy._getInstance(fixtureEl)).toEqual(null)
+ expect(ScrollSpy.getInstance(fixtureEl)).toEqual(null)
})
})
window.dispatchEvent(createEvent('load'))
- expect(ScrollSpy._getInstance(scrollSpyEl)).not.toBeNull()
+ expect(ScrollSpy.getInstance(scrollSpyEl)).not.toBeNull()
})
})
})
// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
const data = Data.getData(this, DATA_KEY) || new Tab(this)
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Tab._jQueryInterface
+ $.fn[NAME] = Tab.jQueryInterface
$.fn[NAME].Constructor = Tab
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Tab._jQueryInterface
+ return Tab.jQueryInterface
}
}
const el = fixtureEl.querySelector('div')
const tab = new Tab(fixtureEl.querySelector('div'))
- expect(Tab._getInstance(el)).not.toBeNull()
+ expect(Tab.getInstance(el)).not.toBeNull()
tab.dispose()
- expect(Tab._getInstance(el)).toBeNull()
+ expect(Tab.getInstance(el)).toBeNull()
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a tab', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.tab = Tab._jQueryInterface
+ jQueryMock.fn.tab = Tab.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tab.call(jQueryMock)
- expect(Tab._getInstance(div)).toBeDefined()
+ expect(Tab.getInstance(div)).toBeDefined()
})
it('should not re create a tab', () => {
const div = fixtureEl.querySelector('div')
const tab = new Tab(div)
- jQueryMock.fn.tab = Tab._jQueryInterface
+ jQueryMock.fn.tab = Tab.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tab.call(jQueryMock)
- expect(Tab._getInstance(div)).toEqual(tab)
+ expect(Tab.getInstance(div)).toEqual(tab)
})
it('should call a tab method', () => {
spyOn(tab, 'show')
- jQueryMock.fn.tab = Tab._jQueryInterface
+ jQueryMock.fn.tab = Tab.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tab.call(jQueryMock, 'show')
- expect(Tab._getInstance(div)).toEqual(tab)
+ expect(Tab.getInstance(div)).toEqual(tab)
expect(tab.show).toHaveBeenCalled()
})
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.tab = Tab._jQueryInterface
+ jQueryMock.fn.tab = Tab.jQueryInterface
jQueryMock.elements = [div]
try {
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return null if there is no instance', () => {
- expect(Tab._getInstance(fixtureEl)).toEqual(null)
+ expect(Tab.getInstance(fixtureEl)).toEqual(null)
})
it('should return this instance', () => {
const divEl = fixtureEl.querySelector('div')
const tab = new Tab(divEl)
- expect(Tab._getInstance(divEl)).toEqual(tab)
+ expect(Tab.getInstance(divEl)).toEqual(tab)
})
})
// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
const _config = typeof config === 'object' && config
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Toast._jQueryInterface
+ $.fn[NAME] = Toast.jQueryInterface
$.fn[NAME].Constructor = Toast
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Toast._jQueryInterface
+ return Toast.jQueryInterface
}
}
const toastEl = fixtureEl.querySelector('div')
const toast = new Toast(toastEl)
- expect(Toast._getInstance(toastEl)).toBeDefined()
+ expect(Toast.getInstance(toastEl)).toBeDefined()
toast.dispose()
- expect(Toast._getInstance(toastEl)).toBeNull()
+ expect(Toast.getInstance(toastEl)).toBeNull()
})
it('should allow to destroy toast and hide it before that', done => {
const toast = new Toast(toastEl)
const expected = () => {
expect(toastEl.classList.contains('show')).toEqual(true)
- expect(Toast._getInstance(toastEl)).toBeDefined()
+ expect(Toast.getInstance(toastEl)).toBeDefined()
toast.dispose()
- expect(Toast._getInstance(toastEl)).toBeNull()
+ expect(Toast.getInstance(toastEl)).toBeNull()
expect(toastEl.classList.contains('show')).toEqual(false)
done()
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a toast', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.toast = Toast._jQueryInterface
+ jQueryMock.fn.toast = Toast.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.toast.call(jQueryMock)
- expect(Toast._getInstance(div)).toBeDefined()
+ expect(Toast.getInstance(div)).toBeDefined()
})
it('should not re create a toast', () => {
const div = fixtureEl.querySelector('div')
const toast = new Toast(div)
- jQueryMock.fn.toast = Toast._jQueryInterface
+ jQueryMock.fn.toast = Toast.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.toast.call(jQueryMock)
- expect(Toast._getInstance(div)).toEqual(toast)
+ expect(Toast.getInstance(div)).toEqual(toast)
})
it('should call a toast method', () => {
spyOn(toast, 'show')
- jQueryMock.fn.toast = Toast._jQueryInterface
+ jQueryMock.fn.toast = Toast.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.toast.call(jQueryMock, 'show')
- expect(Toast._getInstance(div)).toEqual(toast)
+ expect(Toast.getInstance(div)).toEqual(toast)
expect(toast.show).toHaveBeenCalled()
})
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.toast = Toast._jQueryInterface
+ jQueryMock.fn.toast = Toast.jQueryInterface
jQueryMock.elements = [div]
try {
})
})
- describe('_getInstance', () => {
+ describe('getInstance', () => {
it('should return collapse instance', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
const toast = new Toast(div)
- expect(Toast._getInstance(div)).toEqual(toast)
+ expect(Toast.getInstance(div)).toEqual(toast)
})
it('should return null when there is no collapse instance', () => {
const div = fixtureEl.querySelector('div')
- expect(Toast._getInstance(div)).toEqual(null)
+ expect(Toast.getInstance(div)).toEqual(null)
})
})
})
// Static
- static _jQueryInterface(config) {
+ static jQueryInterface(config) {
return this.each(function () {
let data = Data.getData(this, DATA_KEY)
const _config = typeof config === 'object' && config
})
}
- static _getInstance(element) {
+ static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/* istanbul ignore if */
if (typeof $ !== 'undefined') {
const JQUERY_NO_CONFLICT = $.fn[NAME]
- $.fn[NAME] = Tooltip._jQueryInterface
+ $.fn[NAME] = Tooltip.jQueryInterface
$.fn[NAME].Constructor = Tooltip
$.fn[NAME].noConflict = () => {
$.fn[NAME] = JQUERY_NO_CONFLICT
- return Tooltip._jQueryInterface
+ return Tooltip.jQueryInterface
}
}
const tooltipEl = fixtureEl.querySelector('a')
const tooltip = new Tooltip(tooltipEl)
- expect(Tooltip._getInstance(tooltipEl)).toEqual(tooltip)
+ expect(Tooltip.getInstance(tooltipEl)).toEqual(tooltip)
tooltip.dispose()
- expect(Tooltip._getInstance(tooltipEl)).toEqual(null)
+ expect(Tooltip.getInstance(tooltipEl)).toEqual(null)
})
it('should destroy a tooltip and remove it from the dom', done => {
})
})
- describe('_jQueryInterface', () => {
+ describe('jQueryInterface', () => {
it('should create a tooltip', () => {
fixtureEl.innerHTML = '<div></div>'
const div = fixtureEl.querySelector('div')
- jQueryMock.fn.tooltip = Tooltip._jQueryInterface
+ jQueryMock.fn.tooltip = Tooltip.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tooltip.call(jQueryMock)
- expect(Tooltip._getInstance(div)).toBeDefined()
+ expect(Tooltip.getInstance(div)).toBeDefined()
})
it('should not re create a tooltip', () => {
const div = fixtureEl.querySelector('div')
const tooltip = new Tooltip(div)
- jQueryMock.fn.tooltip = Tooltip._jQueryInterface
+ jQueryMock.fn.tooltip = Tooltip.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tooltip.call(jQueryMock)
- expect(Tooltip._getInstance(div)).toEqual(tooltip)
+ expect(Tooltip.getInstance(div)).toEqual(tooltip)
})
it('should call a tooltip method', () => {
spyOn(tooltip, 'show')
- jQueryMock.fn.tooltip = Tooltip._jQueryInterface
+ jQueryMock.fn.tooltip = Tooltip.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tooltip.call(jQueryMock, 'show')
- expect(Tooltip._getInstance(div)).toEqual(tooltip)
+ expect(Tooltip.getInstance(div)).toEqual(tooltip)
expect(tooltip.show).toHaveBeenCalled()
})
spyOn(Tooltip.prototype, 'dispose')
- jQueryMock.fn.tooltip = Tooltip._jQueryInterface
+ jQueryMock.fn.tooltip = Tooltip.jQueryInterface
jQueryMock.elements = [div]
jQueryMock.fn.tooltip.call(jQueryMock, 'dispose')
const div = fixtureEl.querySelector('div')
const action = 'undefinedMethod'
- jQueryMock.fn.tooltip = Tooltip._jQueryInterface
+ jQueryMock.fn.tooltip = Tooltip.jQueryInterface
jQueryMock.elements = [div]
try {
```js
// Synchronous test
-describe('_getInstance', () => {
+describe('getInstance', () => {
it('should return null if there is no instance', () => {
// Make assertion
- expect(Tab._getInstance(fixtureEl)).toEqual(null)
+ expect(Tab.getInstance(fixtureEl)).toEqual(null)
})
it('should return this instance', () => {
const tab = new Tab(divEl)
// Make assertion
- expect(Tab._getInstance(divEl)).toEqual(tab)
+ expect(Tab.getInstance(divEl)).toEqual(tab)
})
})
document.getElementById('btnShowToast').addEventListener('click', function () {
Array.from(document.querySelectorAll('.toast'))
.forEach(function (toastNode) {
- var toast = Toast._getInstance(toastNode)
+ var toast = Toast.getInstance(toastNode)
toast.show()
})
})
document.getElementById('btnHideToast').addEventListener('click', function () {
Array.from(document.querySelectorAll('.toast'))
.forEach(function (toastNode) {
- var toast = Toast._getInstance(toastNode)
+ var toast = Toast.getInstance(toastNode)
toast.hide()
})
})
</tr>
<tr>
<td>
- <code>_getInstance</code>
+ <code>getInstance</code>
</td>
<td>
- Static method which allows you to get the alert instance associated to a DOM element, you can use it like this: <code>bootstrap.Alert._getInstance(alert)</code>
+ Static method which allows you to get the alert instance associated to a DOM element, you can use it like this: <code>bootstrap.Alert.getInstance(alert)</code>
</td>
</tr>
</tbody>
{{< highlight js >}}
var alertNode = document.querySelector('.alert')
-var alert = bootstrap.Alert._getInstance(alertNode)
+var alert = bootstrap.Alert.getInstance(alertNode)
alert.close()
{{< /highlight >}}
<td>Destroys an element's carousel.</td>
</tr>
<tr>
- <td><code>_getInstance</code></td>
+ <td><code>getInstance</code></td>
<td>Static method which allows you to get the carousel instance associated with a DOM element.</td>
</tr>
</tbody>
<td>Destroys an element's collapse.</td>
</tr>
<tr>
- <td><code>_getInstance</code></td>
+ <td><code>getInstance</code></td>
<td>Static method which allows you to get the collapse instance associated with a DOM element.</td>
</tr>
</tbody>
</td>
</tr>
<tr>
- <td><code>_getInstance</code></td>
+ <td><code>getInstance</code></td>
<td>
Static method which allows you to get the dropdown instance associated with a DOM element.
</td>
{{< highlight js >}}myModal.dispose(){{< /highlight >}}
-#### _getInstance
+#### getInstance
*Static* method which allows you to get the modal instance associated with a DOM element
{{< highlight js >}}
var myModalEl = document.getElementById('myModal')
-var modal = bootstrap.Modal._getInstance(myModalEl) // Returns a Bootstrap modal instance
+var modal = bootstrap.Modal.getInstance(myModalEl) // Returns a Bootstrap modal instance
{{< /highlight >}}
### Events
{{< highlight js >}}myPopover.update(){{< /highlight >}}
-#### _getInstance
+#### getInstance
*Static* method which allows you to get the popover instance associated with a DOM element
{{< highlight js >}}
var exampleTriggerEl = document.getElementById('example')
-var popover = bootstrap.Popover._getInstance(exampleTriggerEl) // Returns a Bootstrap popover instance
+var popover = bootstrap.Popover.getInstance(exampleTriggerEl) // Returns a Bootstrap popover instance
{{< /highlight >}}
### Events
var modal = new bootstrap.Modal(myModalEl, { keyboard: false }) // initialized with no keyboard
{{< /highlight >}}
-If you'd like to get a particular plugin instance, each plugin exposes a `_getInstance` method. In order to retrieve it directly from an element, do this: `bootstrap.Popover._getInstance(myPopoverEl)`.
+If you'd like to get a particular plugin instance, each plugin exposes a `getInstance` method. In order to retrieve it directly from an element, do this: `bootstrap.Popover.getInstance(myPopoverEl)`.
### Asynchronous functions and transitions
{{< highlight js >}}
var myCarouselEl = document.getElementById('myCarousel')
-var carousel = bootstrap.Carousel._getInstance(myCarouselEl) // Retrieve a Carousel instance
+var carousel = bootstrap.Carousel.getInstance(myCarouselEl) // Retrieve a Carousel instance
myCarouselEl.addEventListener('slid.bs.carousel', function (e) {
carousel.to('2') // Will slide to the slide 2 as soon as the transition to slide 1 is finished
})
clipboard.on('success', function (e) {
- var tooltipBtn = bootstrap.Tooltip._getInstance(e.trigger)
+ var tooltipBtn = bootstrap.Tooltip.getInstance(e.trigger)
e.trigger.setAttribute('data-original-title', 'Copied!')
tooltipBtn.show()
clipboard.on('error', function (e) {
var modifierKey = /Mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-'
var fallbackMsg = 'Press ' + modifierKey + 'C to copy'
- var tooltipBtn = bootstrap.Tooltip._getInstance(e.trigger)
+ var tooltipBtn = bootstrap.Tooltip.getInstance(e.trigger)
e.trigger.setAttribute('title', fallbackMsg)
tooltipBtn._fixTitle()