__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
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.js?5.1.3';
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.1.3): offcanvas.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
const NAME = 'offcanvas';
const DATA_KEY = 'bs.offcanvas';
const EVENT_KEY = `.${DATA_KEY}`;
const DATA_API_KEY = '.data-api';
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
const ESCAPE_KEY = 'Escape';
const Default = {
backdrop: true,
keyboard: true,
scroll: false
};
const DefaultType = {
backdrop: 'boolean',
keyboard: 'boolean',
scroll: 'boolean'
};
const CLASS_NAME_SHOW = 'show';
const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';
const OPEN_SELECTOR = '.offcanvas.show';
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 EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
class Offcanvas extends BaseComponent {
constructor(element, config) {
super(element);
this._config = this._getConfig(config);
this._isShown = false;
this._backdrop = this._initializeBackDrop();
this._focustrap = this._initializeFocusTrap();
this._addEventListeners();
} // Getters
static get NAME() {
return NAME;
}
static get Default() {
return Default;
} // Public
toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget);
}
show(relatedTarget) {
if (this._isShown) {
return;
}
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
relatedTarget
});
if (showEvent.defaultPrevented) {
return;
}
this._isShown = true;
this._element.style.visibility = 'visible';
this._backdrop.show();
if (!this._config.scroll) {
new ScrollBarHelper().hide();
}
this._element.removeAttribute('aria-hidden');
this._element.setAttribute('aria-modal', true);
this._element.setAttribute('role', 'dialog');
this._element.classList.add(CLASS_NAME_SHOW);
const completeCallBack = () => {
if (!this._config.scroll) {
this._focustrap.activate();
}
EventHandler.trigger(this._element, EVENT_SHOWN, {
relatedTarget
});
};
this._queueCallback(completeCallBack, this._element, true);
}
hide() {
if (!this._isShown) {
return;
}
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
if (hideEvent.defaultPrevented) {
return;
}
this._focustrap.deactivate();
this._element.blur();
this._isShown = false;
this._element.classList.remove(CLASS_NAME_SHOW);
this._backdrop.hide();
const completeCallback = () => {
this._element.setAttribute('aria-hidden', true);
this._element.removeAttribute('aria-modal');
this._element.removeAttribute('role');
this._element.style.visibility = 'hidden';
if (!this._config.scroll) {
new ScrollBarHelper().reset();
}
EventHandler.trigger(this._element, EVENT_HIDDEN);
};
this._queueCallback(completeCallback, this._element, true);
}
dispose() {
this._backdrop.dispose();
this._focustrap.deactivate();
super.dispose();
} // Private
_getConfig(config) {
config = { ...Default,
...Manipulator.getDataAttributes(this._element),
...(typeof config === 'object' ? config : {})
};
typeCheckConfig(NAME, config, DefaultType);
return config;
}
_initializeBackDrop() {
return new Backdrop({
className: CLASS_NAME_BACKDROP,
isVisible: this._config.backdrop,
isAnimated: true,
rootElement: this._element.parentNode,
clickCallback: () => this.hide()
});
}
_initializeFocusTrap() {
return new FocusTrap({
trapElement: this._element
});
}
_addEventListeners() {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
if (this._config.keyboard && event.key === ESCAPE_KEY) {
this.hide();
}
});
} // Static
static jQueryInterface(config) {
return this.each(function () {
const data = Offcanvas.getOrCreateInstance(this, config);
if (typeof config !== 'string') {
return;
}
if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
});
}
}
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
const target = getElementFromSelector(this);
if (['A', 'AREA'].includes(this.tagName)) {
event.preventDefault();
}
if (isDisabled(this)) {
return;
}
EventHandler.one(target, EVENT_HIDDEN, () => {
// focus on trigger when it is closed
if (isVisible(this)) {
this.focus();
}
}); // avoid conflict when clicking a toggler of an offcanvas, while another is open
const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
if (allReadyOpen && allReadyOpen !== target) {
Offcanvas.getInstance(allReadyOpen).hide();
}
const data = Offcanvas.getOrCreateInstance(target);
data.toggle(this);
});
EventHandler.on(window, EVENT_LOAD_DATA_API, () => SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show()));
enableDismissTrigger(Offcanvas);
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
defineJQueryPlugin(Offcanvas);
window.bootstrap = window.bootstrap || {};
window.bootstrap.Offcanvas = Offcanvas;
if (Joomla && Joomla.getOptions) {
// Get the elements/configurations from the PHP
const offcanvases = Joomla.getOptions('bootstrap.offcanvas'); // Initialise the elements
if (typeof offcanvases === 'object' && offcanvases !== null) {
Object.keys(offcanvases).forEach(offcanvas => {
const opt = offcanvases[offcanvas];
const options = {
backdrop: opt.backdrop ? opt.backdrop : true,
keyboard: opt.keyboard ? opt.keyboard : true,
scroll: opt.scroll ? opt.scroll : true
};
const elements = Array.from(document.querySelectorAll(offcanvas));
if (elements.length) {
elements.map(el => new window.bootstrap.Offcanvas(el, options));
}
});
}
}
export { Offcanvas as O };
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| alert.js | File | 2.85 KB | 0664 |
|
| alert.min.js | File | 1.23 KB | 0664 |
|
| alert.min.js.gz | File | 652 B | 0664 |
|
| bootstrap-es5.js | File | 402.99 KB | 0664 |
|
| bootstrap-es5.min.js | File | 139.87 KB | 0664 |
|
| bootstrap-es5.min.js.gz | File | 46.51 KB | 0664 |
|
| button.js | File | 2.62 KB | 0664 |
|
| button.min.js | File | 1.04 KB | 0664 |
|
| button.min.js.gz | File | 566 B | 0664 |
|
| carousel.js | File | 16.92 KB | 0664 |
|
| carousel.min.js | File | 9.52 KB | 0664 |
|
| carousel.min.js.gz | File | 3.03 KB | 0664 |
|
| collapse.js | File | 9.65 KB | 0664 |
|
| collapse.min.js | File | 5.3 KB | 0664 |
|
| collapse.min.js.gz | File | 1.81 KB | 0664 |
|
| dom.js | File | 37.09 KB | 0664 |
|
| dom.min.js | File | 17.02 KB | 0664 |
|
| dom.min.js.gz | File | 6.11 KB | 0664 |
|
| dropdown.js | File | 14.72 KB | 0664 |
|
| dropdown.min.js | File | 8.23 KB | 0664 |
|
| dropdown.min.js.gz | File | 2.86 KB | 0664 |
|
| modal.js | File | 16.61 KB | 0664 |
|
| modal.min.js | File | 8.9 KB | 0664 |
|
| modal.min.js.gz | File | 2.89 KB | 0664 |
|
| offcanvas.js | File | 7.3 KB | 0664 |
|
| offcanvas.min.js | File | 4.24 KB | 0664 |
|
| offcanvas.min.js.gz | File | 1.58 KB | 0664 |
|
| popover.js | File | 24.74 KB | 0664 |
|
| popover.min.js | File | 14.24 KB | 0664 |
|
| popover.min.js.gz | File | 4.18 KB | 0664 |
|
| popper.js | File | 58.55 KB | 0664 |
|
| popper.min.js | File | 24.17 KB | 0664 |
|
| popper.min.js.gz | File | 7.64 KB | 0664 |
|
| scrollspy.js | File | 8.43 KB | 0664 |
|
| scrollspy.min.js | File | 4.79 KB | 0664 |
|
| scrollspy.min.js.gz | File | 1.76 KB | 0664 |
|
| tab.js | File | 8.07 KB | 0664 |
|
| tab.min.js | File | 4.11 KB | 0664 |
|
| tab.min.js.gz | File | 1.6 KB | 0664 |
|
| toast.js | File | 6.45 KB | 0664 |
|
| toast.min.js | File | 3.63 KB | 0664 |
|
| toast.min.js.gz | File | 1.25 KB | 0664 |
|