let parent = false
if (selector) {
- parent = $(selector)[0]
+ parent = document.querySelector(selector)
}
if (!parent) {
)[0]
if (rootElement) {
- const input = $(this._element).find(Selector.INPUT)[0]
+ const input = this._element.querySelector(Selector.INPUT)
if (input) {
if (input.type === 'radio') {
if (input.checked &&
- $(this._element).hasClass(ClassName.ACTIVE)) {
+ this._element.classList.contains(ClassName.ACTIVE)) {
triggerChangeEvent = false
} else {
- const activeElement = $(rootElement).find(Selector.ACTIVE)[0]
+ const activeElement = rootElement.querySelector(Selector.ACTIVE)
if (activeElement) {
$(activeElement).removeClass(ClassName.ACTIVE)
rootElement.classList.contains('disabled')) {
return
}
- input.checked = !$(this._element).hasClass(ClassName.ACTIVE)
+ input.checked = !this._element.classList.contains(ClassName.ACTIVE)
$(input).trigger('change')
}
if (addAriaPressed) {
this._element.setAttribute('aria-pressed',
- !$(this._element).hasClass(ClassName.ACTIVE))
+ !this._element.classList.contains(ClassName.ACTIVE))
}
if (triggerChangeEvent) {
this._config = this._getConfig(config)
this._element = $(element)[0]
- this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]
+ this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)
this._addEventListeners()
}
this._isPaused = true
}
- if ($(this._element).find(Selector.NEXT_PREV)[0]) {
+ if (this._element.querySelector(Selector.NEXT_PREV)) {
Util.triggerTransitionEnd(this._element)
this.cycle(true)
}
}
to(index) {
- this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]
+ this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)
const activeIndex = this._getItemIndex(this._activeElement)
}
_getItemIndex(element) {
- this._items = $.makeArray($(element).parent().find(Selector.ITEM))
+ this._items = element && element.parentNode
+ ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))
+ : []
return this._items.indexOf(element)
}
_triggerSlideEvent(relatedTarget, eventDirectionName) {
const targetIndex = this._getItemIndex(relatedTarget)
- const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])
+ const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))
const slideEvent = $.Event(Event.SLIDE, {
relatedTarget,
direction: eventDirectionName,
_setActiveIndicatorElement(element) {
if (this._indicatorsElement) {
- $(this._indicatorsElement)
- .find(Selector.ACTIVE)
+ const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))
+ $(indicators)
.removeClass(ClassName.ACTIVE)
const nextIndicator = this._indicatorsElement.children[
}
_slide(direction, element) {
- const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]
+ const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)
const activeElementIndex = this._getItemIndex(activeElement)
const nextElement = element || activeElement &&
this._getItemByDirection(direction, activeElement)
this._isTransitioning = false
this._element = element
this._config = this._getConfig(config)
- this._triggerArray = $.makeArray($(
+ this._triggerArray = $.makeArray(document.querySelectorAll(
`[data-toggle="collapse"][href="#${element.id}"],` +
`[data-toggle="collapse"][data-target="#${element.id}"]`
))
this._element.style[dimension] = 0
- if (this._triggerArray.length > 0) {
+ if (this._triggerArray.length) {
$(this._triggerArray)
.removeClass(ClassName.COLLAPSED)
.attr('aria-expanded', true)
const selector =
`[data-toggle="collapse"][data-parent="${this._config.parent}"]`
- $(parent).find(selector).each((i, element) => {
+ const children = [].slice.call(parent.querySelectorAll(selector))
+ $(children).each((i, element) => {
this._addAriaAndCollapsedClass(
Collapse._getTargetFromElement(element),
[element]
if (element) {
const isOpen = $(element).hasClass(ClassName.SHOW)
- if (triggerArray.length > 0) {
+ if (triggerArray.length) {
$(triggerArray)
.toggleClass(ClassName.COLLAPSED, !isOpen)
.attr('aria-expanded', isOpen)
static _getTargetFromElement(element) {
const selector = Util.getSelectorFromElement(element)
- return selector ? $(selector)[0] : null
+ return selector ? document.querySelector(selector) : null
}
static _jQueryInterface(config) {
const $trigger = $(this)
const selector = Util.getSelectorFromElement(this)
- $(selector).each(function () {
+ const selectors = [].slice.call(document.querySelectorAll(selector))
+ $(selectors).each(function () {
const $target = $(this)
const data = $target.data(DATA_KEY)
const config = data ? 'toggle' : $trigger.data()
_getMenuElement() {
if (!this._menu) {
const parent = Dropdown._getParentFromElement(this._element)
- this._menu = $(parent).find(Selector.MENU)[0]
+ if (parent) {
+ this._menu = parent.querySelector(Selector.MENU)
+ }
}
return this._menu
}
_getPlacement() {
- const $parentDropdown = $(this._element).parent()
+ const $parentDropdown = $(this._element.parentNode)
let placement = AttachmentMap.BOTTOM
// Handle dropup
} else {
offsetConf.offset = this._config.offset
}
+
const popperConfig = {
placement: this._getPlacement(),
modifiers: {
const selector = Util.getSelectorFromElement(element)
if (selector) {
- parent = $(selector)[0]
+ parent = document.querySelector(selector)
}
return parent || element.parentNode
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||
isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
if (event.which === ESCAPE_KEYCODE) {
- const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]
+ const toggle = parent.querySelector(Selector.DATA_TOGGLE)
$(toggle).trigger('focus')
}
return
}
- const items = $(parent).find(Selector.VISIBLE_ITEMS).get()
+ const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))
if (items.length === 0) {
return
constructor(element, config) {
this._config = this._getConfig(config)
this._element = element
- this._dialog = $(element).find(Selector.DIALOG)[0]
+ this._dialog = element.querySelector(Selector.DIALOG)
this._backdrop = null
this._isShown = false
this._isBodyOverflowing = false
this._backdrop.className = ClassName.BACKDROP
if (animate) {
- $(this._backdrop).addClass(animate)
+ this._backdrop.classList.add(animate)
}
$(this._backdrop).appendTo(document.body)
// Adjust fixed content padding
$(fixedContent).each((index, element) => {
- const actualPadding = $(element)[0].style.paddingRight
+ const actualPadding = element.style.paddingRight
const calculatedPadding = $(element).css('padding-right')
- $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)
+ $(element)
+ .data('padding-right', actualPadding)
+ .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)
})
// Adjust sticky content margin
$(stickyContent).each((index, element) => {
- const actualMargin = $(element)[0].style.marginRight
+ const actualMargin = element.style.marginRight
const calculatedMargin = $(element).css('margin-right')
- $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)
+ $(element)
+ .data('margin-right', actualMargin)
+ .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)
})
// Adjust navbar-toggler margin
$(navbarToggler).each((index, element) => {
- const actualMargin = $(element)[0].style.marginRight
+ const actualMargin = element.style.marginRight
const calculatedMargin = $(element).css('margin-right')
- $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)
+ $(element)
+ .data('margin-right', actualMargin)
+ .css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)
})
// Adjust body padding
const actualPadding = document.body.style.paddingRight
const calculatedPadding = $(document.body).css('padding-right')
- $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)
+ $(document.body)
+ .data('padding-right', actualPadding)
+ .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)
}
}
$(fixedContent).each((index, element) => {
const padding = $(element).data('padding-right')
if (typeof padding !== 'undefined') {
- $(element).css('padding-right', padding).removeData('padding-right')
+ $(element)
+ .css('padding-right', padding)
+ .removeData('padding-right')
}
})
// Restore sticky content and navbar-toggler margin
- $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {
+ const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`))
+ $(elements).each((index, element) => {
const margin = $(element).data('margin-right')
if (typeof margin !== 'undefined') {
$(element).css('margin-right', margin).removeData('margin-right')
const selector = Util.getSelectorFromElement(this)
if (selector) {
- target = $(selector)[0]
+ target = document.querySelector(selector)
}
const config = $(target).data(DATA_KEY)
this._scrollHeight = this._getScrollHeight()
- const targets = $.makeArray(document.querySelectorAll(this._selector))
+ const targets = [].slice.call(document.querySelectorAll(this._selector))
targets
.map((element) => {
const targetSelector = Util.getSelectorFromElement(element)
if (targetSelector) {
- target = $(targetSelector)[0]
+ target = document.querySelector(targetSelector)
}
if (target) {
`${selector}[href="${target}"]`
})
- const $link = $(queries.join(','))
+ const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))
if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
}
_clear() {
- $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)
+ const nodes = [].slice.call(document.querySelectorAll(this._selector))
+ $(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)
}
// Static
}
if (selector) {
- target = $(selector)[0]
+ target = document.querySelector(selector)
}
this._activate(
$(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]
if (dropdownElement) {
- $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
+ const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE))
+ $(dropdownToggleList).addClass(ClassName.ACTIVE)
}
element.setAttribute('aria-expanded', true)
}
setContent() {
- const $tip = $(this.getTipElement())
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())
- $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)
+ const tip = this.getTipElement()
+ this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())
+ $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)
}
setElementContent($element, content) {
_cleanTipClass() {
const $tip = $(this.getTipElement())
const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)
- if (tabClass !== null && tabClass.length > 0) {
+ if (tabClass !== null && tabClass.length) {
$tip.removeClass(tabClass.join(''))
}
}