Sindbad~EG File Manager
{"version":3,"file":"scrollspy.min.js","sources":["../../src/bootstrap/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n"],"names":["NAME","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","Default","offset","method","target","DefaultType","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","ScrollSpy","element","config","_element","_scrollElement","tagName","window","_config","this","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_this","_process","refresh","each","data","_typeof","TypeError","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","slice","call","document","querySelectorAll","map","targetSelector","Util","getSelectorFromElement","querySelector","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","_this2","push","removeData","off","isElement","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","body","documentElement","innerHeight","maxScroll","_getOffsetHeight","length","_activate","_clear","i","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","children","trigger","relatedTarget","node","classList","contains","remove","scrollSpys","$spy","_jQueryInterface","Constructor","noConflict"],"mappings":"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"}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists