[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/media/vendor/bootstrap/js/ -> offcanvas.min.js (source)

   1  import{E as EventHandler,c as getElementFromSelector,j as isDisabled,i as isVisible,S as SelectorEngine,e as enableDismissTrigger,d as defineJQueryPlugin,B as BaseComponent,l as ScrollBarHelper,M as Manipulator,a as typeCheckConfig,m as Backdrop,F as FocusTrap}from"./dom.min.js?5.1.3";const NAME="offcanvas",DATA_KEY="bs.offcanvas",EVENT_KEY=`.$DATA_KEY}`,DATA_API_KEY=".data-api",EVENT_LOAD_DATA_API=`load$EVENT_KEY}.data-api`,ESCAPE_KEY="Escape",Default={backdrop:!0,keyboard:!0,scroll:!1},DefaultType={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},CLASS_NAME_SHOW="show",CLASS_NAME_BACKDROP="offcanvas-backdrop",OPEN_SELECTOR=".offcanvas.show",EVENT_SHOW=`show$EVENT_KEY}`,EVENT_SHOWN=`shown$EVENT_KEY}`,EVENT_HIDE=`hide$EVENT_KEY}`,EVENT_HIDDEN=`hidden$EVENT_KEY}`,EVENT_CLICK_DATA_API=`click$EVENT_KEY}.data-api`,EVENT_KEYDOWN_DISMISS=`keydown.dismiss$EVENT_KEY}`,SELECTOR_DATA_TOGGLE='[data-bs-toggle="offcanvas"]';class Offcanvas extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return NAME}static get Default(){return Default}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown)return;if(EventHandler.trigger(this._element,EVENT_SHOW,{relatedTarget:e}).defaultPrevented)return;this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new ScrollBarHelper).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show");this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),EventHandler.trigger(this._element,EVENT_SHOWN,{relatedTarget:e})}),this._element,!0)}hide(){if(!this._isShown)return;if(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide();this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new ScrollBarHelper).reset(),EventHandler.trigger(this._element,EVENT_HIDDEN)}),this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(e){return e={...Default,...Manipulator.getDataAttributes(this._element),..."object"==typeof e?e:{}},typeCheckConfig(NAME,e,DefaultType),e}_initializeBackDrop(){return new Backdrop({className:CLASS_NAME_BACKDROP,isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,(e=>{this._config.keyboard&&"Escape"===e.key&&this.hide()}))}static jQueryInterface(e){return this.each((function(){const t=Offcanvas.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "$e}"`);t[e](this)}}))}}if(EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,(function(e){const t=getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN,(()=>{isVisible(this)&&this.focus()}));const s=SelectorEngine.findOne(OPEN_SELECTOR);s&&s!==t&&Offcanvas.getInstance(s).hide();Offcanvas.getOrCreateInstance(t).toggle(this)})),EventHandler.on(window,EVENT_LOAD_DATA_API,(()=>SelectorEngine.find(OPEN_SELECTOR).forEach((e=>Offcanvas.getOrCreateInstance(e).show())))),enableDismissTrigger(Offcanvas),defineJQueryPlugin(Offcanvas),window.bootstrap=window.bootstrap||{},window.bootstrap.Offcanvas=Offcanvas,Joomla&&Joomla.getOptions){const e=Joomla.getOptions("bootstrap.offcanvas");"object"==typeof e&&null!==e&&Object.keys(e).forEach((t=>{const s=e[t],i={backdrop:!s.backdrop||s.backdrop,keyboard:!s.keyboard||s.keyboard,scroll:!s.scroll||s.scroll},a=Array.from(document.querySelectorAll(t));a.length&&a.map((e=>new window.bootstrap.Offcanvas(e,i)))}))}export{Offcanvas as O};


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer