offcanvas.js.map 39.4 KB
{"version":3,"file":"offcanvas.js","sources":["../src/util/index.js","../src/util/scrollbar.js","../src/util/backdrop.js","../src/offcanvas.js"],"sourcesContent":["import SelectorEngine from '../dom/selector-engine'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n  if (obj === null || obj === undefined) {\n    return `${obj}`\n  }\n\n  return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n  do {\n    prefix += Math.floor(Math.random() * MAX_UID)\n  } while (document.getElementById(prefix))\n\n  return prefix\n}\n\nconst getSelector = element => {\n  let selector = element.getAttribute('data-bs-target')\n\n  if (!selector || selector === '#') {\n    let hrefAttr = element.getAttribute('href')\n\n    // The only valid content that could double as a selector are IDs or classes,\n    // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n    // `document.querySelector` will rightfully complain it is invalid.\n    // See https://github.com/twbs/bootstrap/issues/32273\n    if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n      return null\n    }\n\n    // Just in case some CMS puts out a full URL with the anchor appended\n    if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n      hrefAttr = `#${hrefAttr.split('#')[1]}`\n    }\n\n    selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n  }\n\n  return selector\n}\n\nconst getSelectorFromElement = element => {\n  const selector = getSelector(element)\n\n  if (selector) {\n    return document.querySelector(selector) ? selector : null\n  }\n\n  return null\n}\n\nconst getElementFromSelector = element => {\n  const selector = getSelector(element)\n\n  return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n  if (!element) {\n    return 0\n  }\n\n  // Get transition-duration of the element\n  let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n  const floatTransitionDuration = Number.parseFloat(transitionDuration)\n  const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n  // Return 0 if element or transition duration is not found\n  if (!floatTransitionDuration && !floatTransitionDelay) {\n    return 0\n  }\n\n  // If multiple durations are defined, take the first\n  transitionDuration = transitionDuration.split(',')[0]\n  transitionDelay = transitionDelay.split(',')[0]\n\n  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n  element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n  if (!obj || typeof obj !== 'object') {\n    return false\n  }\n\n  if (typeof obj.jquery !== 'undefined') {\n    obj = obj[0]\n  }\n\n  return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n  if (isElement(obj)) { // it's a jQuery object or a node element\n    return obj.jquery ? obj[0] : obj\n  }\n\n  if (typeof obj === 'string' && obj.length > 0) {\n    return SelectorEngine.findOne(obj)\n  }\n\n  return null\n}\n\nconst emulateTransitionEnd = (element, duration) => {\n  let called = false\n  const durationPadding = 5\n  const emulatedDuration = duration + durationPadding\n\n  function listener() {\n    called = true\n    element.removeEventListener(TRANSITION_END, listener)\n  }\n\n  element.addEventListener(TRANSITION_END, listener)\n  setTimeout(() => {\n    if (!called) {\n      triggerTransitionEnd(element)\n    }\n  }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n  Object.keys(configTypes).forEach(property => {\n    const expectedTypes = configTypes[property]\n    const value = config[property]\n    const valueType = value && isElement(value) ? 'element' : toType(value)\n\n    if (!new RegExp(expectedTypes).test(valueType)) {\n      throw new TypeError(\n        `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n      )\n    }\n  })\n}\n\nconst isVisible = element => {\n  if (!element) {\n    return false\n  }\n\n  if (element.style && element.parentNode && element.parentNode.style) {\n    const elementStyle = getComputedStyle(element)\n    const parentNodeStyle = getComputedStyle(element.parentNode)\n\n    return elementStyle.display !== 'none' &&\n      parentNodeStyle.display !== 'none' &&\n      elementStyle.visibility !== 'hidden'\n  }\n\n  return false\n}\n\nconst isDisabled = element => {\n  if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n    return true\n  }\n\n  if (element.classList.contains('disabled')) {\n    return true\n  }\n\n  if (typeof element.disabled !== 'undefined') {\n    return element.disabled\n  }\n\n  return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n  if (!document.documentElement.attachShadow) {\n    return null\n  }\n\n  // Can find the shadow root otherwise it'll return the document\n  if (typeof element.getRootNode === 'function') {\n    const root = element.getRootNode()\n    return root instanceof ShadowRoot ? root : null\n  }\n\n  if (element instanceof ShadowRoot) {\n    return element\n  }\n\n  // when we don't find a shadow root\n  if (!element.parentNode) {\n    return null\n  }\n\n  return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n  const { jQuery } = window\n\n  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n    return jQuery\n  }\n\n  return null\n}\n\nconst onDOMContentLoaded = callback => {\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', callback)\n  } else {\n    callback()\n  }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n  onDOMContentLoaded(() => {\n    const $ = getjQuery()\n    /* istanbul ignore if */\n    if ($) {\n      const name = plugin.NAME\n      const JQUERY_NO_CONFLICT = $.fn[name]\n      $.fn[name] = plugin.jQueryInterface\n      $.fn[name].Constructor = plugin\n      $.fn[name].noConflict = () => {\n        $.fn[name] = JQUERY_NO_CONFLICT\n        return plugin.jQueryInterface\n      }\n    }\n  })\n}\n\nconst execute = callback => {\n  if (typeof callback === 'function') {\n    callback()\n  }\n}\n\nexport {\n  getElement,\n  getUID,\n  getSelectorFromElement,\n  getElementFromSelector,\n  getTransitionDurationFromElement,\n  triggerTransitionEnd,\n  isElement,\n  emulateTransitionEnd,\n  typeCheckConfig,\n  isVisible,\n  isDisabled,\n  findShadowRoot,\n  noop,\n  reflow,\n  getjQuery,\n  onDOMContentLoaded,\n  isRTL,\n  defineJQueryPlugin,\n  execute\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst getWidth = () => {\n  // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n  const documentWidth = document.documentElement.clientWidth\n  return Math.abs(window.innerWidth - documentWidth)\n}\n\nconst hide = (width = getWidth()) => {\n  _disableOverFlow()\n  // give padding to element to balances the hidden scrollbar width\n  _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n  // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements, to keep shown fullwidth\n  _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n  _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n}\n\nconst _disableOverFlow = () => {\n  const actualValue = document.body.style.overflow\n  if (actualValue) {\n    Manipulator.setDataAttribute(document.body, 'overflow', actualValue)\n  }\n\n  document.body.style.overflow = 'hidden'\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n  const scrollbarWidth = getWidth()\n  SelectorEngine.find(selector)\n    .forEach(element => {\n      if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n        return\n      }\n\n      const actualValue = element.style[styleProp]\n      const calculatedValue = window.getComputedStyle(element)[styleProp]\n      Manipulator.setDataAttribute(element, styleProp, actualValue)\n      element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`\n    })\n}\n\nconst reset = () => {\n  _resetElementAttributes('body', 'overflow')\n  _resetElementAttributes('body', 'paddingRight')\n  _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n  _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n  SelectorEngine.find(selector).forEach(element => {\n    const value = Manipulator.getDataAttribute(element, styleProp)\n    if (typeof value === 'undefined') {\n      element.style.removeProperty(styleProp)\n    } else {\n      Manipulator.removeDataAttribute(element, styleProp)\n      element.style[styleProp] = value\n    }\n  })\n}\n\nconst isBodyOverflowing = () => {\n  return getWidth() > 0\n}\n\nexport {\n  getWidth,\n  hide,\n  isBodyOverflowing,\n  reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { emulateTransitionEnd, execute, getTransitionDurationFromElement, reflow, typeCheckConfig } from './index'\n\nconst Default = {\n  isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n  isAnimated: false,\n  rootElement: document.body, // give the choice to place backdrop under different elements\n  clickCallback: null\n}\n\nconst DefaultType = {\n  isVisible: 'boolean',\n  isAnimated: 'boolean',\n  rootElement: 'element',\n  clickCallback: '(function|null)'\n}\nconst NAME = 'backdrop'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nclass Backdrop {\n  constructor(config) {\n    this._config = this._getConfig(config)\n    this._isAppended = false\n    this._element = null\n  }\n\n  show(callback) {\n    if (!this._config.isVisible) {\n      execute(callback)\n      return\n    }\n\n    this._append()\n\n    if (this._config.isAnimated) {\n      reflow(this._getElement())\n    }\n\n    this._getElement().classList.add(CLASS_NAME_SHOW)\n\n    this._emulateAnimation(() => {\n      execute(callback)\n    })\n  }\n\n  hide(callback) {\n    if (!this._config.isVisible) {\n      execute(callback)\n      return\n    }\n\n    this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n    this._emulateAnimation(() => {\n      this.dispose()\n      execute(callback)\n    })\n  }\n\n  // Private\n\n  _getElement() {\n    if (!this._element) {\n      const backdrop = document.createElement('div')\n      backdrop.className = CLASS_NAME_BACKDROP\n      if (this._config.isAnimated) {\n        backdrop.classList.add(CLASS_NAME_FADE)\n      }\n\n      this._element = backdrop\n    }\n\n    return this._element\n  }\n\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...(typeof config === 'object' ? config : {})\n    }\n\n    config.rootElement = config.rootElement || document.body\n    typeCheckConfig(NAME, config, DefaultType)\n    return config\n  }\n\n  _append() {\n    if (this._isAppended) {\n      return\n    }\n\n    this._config.rootElement.appendChild(this._getElement())\n\n    EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n      execute(this._config.clickCallback)\n    })\n\n    this._isAppended = true\n  }\n\n  dispose() {\n    if (!this._isAppended) {\n      return\n    }\n\n    EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n    this._getElement().parentNode.removeChild(this._element)\n    this._isAppended = false\n  }\n\n  _emulateAnimation(callback) {\n    if (!this._config.isAnimated) {\n      execute(callback)\n      return\n    }\n\n    const backdropTransitionDuration = getTransitionDurationFromElement(this._getElement())\n    EventHandler.one(this._getElement(), 'transitionend', () => execute(callback))\n    emulateTransitionEnd(this._getElement(), backdropTransitionDuration)\n  }\n}\n\nexport default Backdrop\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.1): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  getElementFromSelector,\n  isDisabled,\n  isVisible,\n  typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport Backdrop from './util/backdrop'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n  backdrop: true,\n  keyboard: true,\n  scroll: false\n}\n\nconst DefaultType = {\n  backdrop: 'boolean',\n  keyboard: 'boolean',\n  scroll: 'boolean'\n}\n\nconst CLASS_NAME_SHOW = 'show'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n  constructor(element, config) {\n    super(element)\n\n    this._config = this._getConfig(config)\n    this._isShown = false\n    this._backdrop = this._initializeBackDrop()\n    this._addEventListeners()\n  }\n\n  // Getters\n\n  static get NAME() {\n    return NAME\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n\n  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown) {\n      return\n    }\n\n    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = true\n    this._element.style.visibility = 'visible'\n\n    this._backdrop.show()\n\n    if (!this._config.scroll) {\n      scrollBarHide()\n      this._enforceFocusOnElement(this._element)\n    }\n\n    this._element.removeAttribute('aria-hidden')\n    this._element.setAttribute('aria-modal', true)\n    this._element.setAttribute('role', 'dialog')\n    this._element.classList.add(CLASS_NAME_SHOW)\n\n    const completeCallBack = () => {\n      EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n    }\n\n    this._queueCallback(completeCallBack, this._element, true)\n  }\n\n  hide() {\n    if (!this._isShown) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    EventHandler.off(document, EVENT_FOCUSIN)\n    this._element.blur()\n    this._isShown = false\n    this._element.classList.remove(CLASS_NAME_SHOW)\n    this._backdrop.hide()\n\n    const completeCallback = () => {\n      this._element.setAttribute('aria-hidden', true)\n      this._element.removeAttribute('aria-modal')\n      this._element.removeAttribute('role')\n      this._element.style.visibility = 'hidden'\n\n      if (!this._config.scroll) {\n        scrollBarReset()\n      }\n\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    }\n\n    this._queueCallback(completeCallback, this._element, true)\n  }\n\n  dispose() {\n    this._backdrop.dispose()\n    super.dispose()\n    EventHandler.off(document, EVENT_FOCUSIN)\n  }\n\n  // Private\n\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...Manipulator.getDataAttributes(this._element),\n      ...(typeof config === 'object' ? config : {})\n    }\n    typeCheckConfig(NAME, config, DefaultType)\n    return config\n  }\n\n  _initializeBackDrop() {\n    return new Backdrop({\n      isVisible: this._config.backdrop,\n      isAnimated: true,\n      rootElement: this._element.parentNode,\n      clickCallback: () => this.hide()\n    })\n  }\n\n  _enforceFocusOnElement(element) {\n    EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n    EventHandler.on(document, EVENT_FOCUSIN, event => {\n      if (document !== event.target &&\n        element !== event.target &&\n        !element.contains(event.target)) {\n        element.focus()\n      }\n    })\n    element.focus()\n  }\n\n  _addEventListeners() {\n    EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n      if (this._config.keyboard && event.key === ESCAPE_KEY) {\n        this.hide()\n      }\n    })\n  }\n\n  // Static\n\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? config : {})\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config](this)\n    })\n  }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = getElementFromSelector(this)\n\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault()\n  }\n\n  if (isDisabled(this)) {\n    return\n  }\n\n  EventHandler.one(target, EVENT_HIDDEN, () => {\n    // focus on trigger when it is closed\n    if (isVisible(this)) {\n      this.focus()\n    }\n  })\n\n  // avoid conflict when clicking a toggler of an offcanvas, while another is open\n  const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n  if (allReadyOpen && allReadyOpen !== target) {\n    Offcanvas.getInstance(allReadyOpen).hide()\n  }\n\n  const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n  data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","reflow","offsetHeight","getjQuery","jQuery","body","onDOMContentLoaded","callback","readyState","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","execute","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","getWidth","documentWidth","documentElement","clientWidth","Math","abs","innerWidth","hide","width","_disableOverFlow","_setElementAttributes","calculatedValue","actualValue","overflow","Manipulator","setDataAttribute","styleProp","scrollbarWidth","SelectorEngine","find","reset","_resetElementAttributes","getDataAttribute","removeProperty","removeDataAttribute","Default","isAnimated","rootElement","clickCallback","DefaultType","CLASS_NAME_BACKDROP","CLASS_NAME_FADE","CLASS_NAME_SHOW","EVENT_MOUSEDOWN","Backdrop","constructor","_config","_getConfig","_isAppended","_element","show","_append","_getElement","add","_emulateAnimation","remove","dispose","backdrop","createElement","className","appendChild","EventHandler","on","off","removeChild","backdropTransitionDuration","one","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_LOAD_DATA_API","ESCAPE_KEY","keyboard","scroll","OPEN_SELECTOR","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_FOCUSIN","EVENT_CLICK_DATA_API","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_DISMISS","SELECTOR_DATA_TOGGLE","Offcanvas","BaseComponent","_isShown","_backdrop","_initializeBackDrop","_addEventListeners","toggle","relatedTarget","showEvent","trigger","defaultPrevented","scrollBarHide","_enforceFocusOnElement","removeAttribute","setAttribute","completeCallBack","_queueCallback","hideEvent","blur","completeCallback","scrollBarReset","getDataAttributes","event","target","focus","key","each","data","Data","get","tagName","preventDefault","allReadyOpen","findOne","getInstance","el"],"mappings":"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"}