Server IP : 15.235.198.142 / Your IP : 216.73.216.78 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/bootstrap-html/js/ |
Upload File : |
{"version":3,"file":"scrollspy.js","sources":["../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${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-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\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_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\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 for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, 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]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","Default","offset","rootMargin","smoothScroll","target","threshold","DefaultType","ScrollSpy","element","config","_targetLinks","Map","_observableSections","_rootElement","getComputedStyle","_element","overflowY","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","values","section","observe","dispose","_configAfterMerge","getElement","document","body","split","map","value","Number","parseFloat","_config","EventHandler","off","on","event","observableSection","get","hash","preventDefault","root","window","height","offsetTop","scrollTo","top","behavior","scrollTop","options","IntersectionObserver","entries","_observerCallback","targetElement","entry","id","activate","_process","documentElement","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","SelectorEngine","find","anchor","isDisabled","findOne","decodeURI","isVisible","set","classList","add","_activateParents","trigger","relatedTarget","contains","closest","parents","listGroup","prev","item","parent","remove","activeNodes","node","jQueryInterface","each","data","getOrCreateInstance","undefined","startsWith","TypeError","BaseComponent","spy","defineJQueryPlugin"],"mappings":"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"}