Server IP : 15.235.198.142 / Your IP : 216.73.216.202 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/share/javascript/bootstrap5/js/util/ |
Upload File : |
/*! * Bootstrap focustrap.js v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler.js'), require('../dom/selector-engine.js'), require('./config.js')) : typeof define === 'function' && define.amd ? define(['../dom/event-handler', '../dom/selector-engine', './config'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Focustrap = factory(global.EventHandler, global.SelectorEngine, global.Config)); })(this, (function (EventHandler, SelectorEngine, Config) { 'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } /** * Constants */ var NAME = 'focustrap'; var DATA_KEY = 'bs.focustrap'; var EVENT_KEY = "." + DATA_KEY; var EVENT_FOCUSIN = "focusin" + EVENT_KEY; var EVENT_KEYDOWN_TAB = "keydown.tab" + EVENT_KEY; var TAB_KEY = 'Tab'; var TAB_NAV_FORWARD = 'forward'; var TAB_NAV_BACKWARD = 'backward'; var Default = { autofocus: true, trapElement: null // The element to trap focus inside of }; var DefaultType = { autofocus: 'boolean', trapElement: 'element' }; /** * Class definition */ var FocusTrap = /*#__PURE__*/function (_Config) { _inheritsLoose(FocusTrap, _Config); function FocusTrap(config) { var _this; _this = _Config.call(this) || this; _this._config = _this._getConfig(config); _this._isActive = false; _this._lastTabNavDirection = null; return _this; } // Getters var _proto = FocusTrap.prototype; // Public _proto.activate = function activate() { var _this2 = this; if (this._isActive) { return; } if (this._config.autofocus) { this._config.trapElement.focus(); } EventHandler.off(document, EVENT_KEY); // guard against infinite focus loop EventHandler.on(document, EVENT_FOCUSIN, function (event) { return _this2._handleFocusin(event); }); EventHandler.on(document, EVENT_KEYDOWN_TAB, function (event) { return _this2._handleKeydown(event); }); this._isActive = true; }; _proto.deactivate = function deactivate() { if (!this._isActive) { return; } this._isActive = false; EventHandler.off(document, EVENT_KEY); } // Private ; _proto._handleFocusin = function _handleFocusin(event) { var trapElement = this._config.trapElement; if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { return; } var elements = SelectorEngine.focusableChildren(trapElement); if (elements.length === 0) { trapElement.focus(); } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { elements[elements.length - 1].focus(); } else { elements[0].focus(); } }; _proto._handleKeydown = function _handleKeydown(event) { if (event.key !== TAB_KEY) { return; } this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; }; _createClass(FocusTrap, null, [{ key: "Default", get: function get() { return Default; } }, { key: "DefaultType", get: function get() { return DefaultType; } }, { key: "NAME", get: function get() { return NAME; } }]); return FocusTrap; }(Config); return FocusTrap; })); //# sourceMappingURL=focustrap.js.map