Server IP : 15.235.198.142 / Your IP : 216.73.216.30 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/util/ |
Upload File : |
{"version":3,"file":"scrollbar.js","sources":["../../src/util/scrollbar.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\nconst PROPERTY_PADDING = 'padding-right'\nconst PROPERTY_MARGIN = 'margin-right'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n }\n\n hide() {\n const width = this.getWidth()\n this._disableOverFlow()\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow')\n this._resetElementAttributes(this._element, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n }\n\n isOverflowing() {\n return this.getWidth() > 0\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow')\n this._element.style.overflow = 'hidden'\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth()\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n this._saveInitialAttribute(element, styleProperty)\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty)\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue)\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty)\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty)\n return\n }\n\n Manipulator.removeDataAttribute(element, styleProperty)\n element.style.setProperty(styleProperty, value)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector)\n return\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel)\n }\n }\n}\n\nexport default ScrollBarHelper\n"],"names":["SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","_element","document","body","getWidth","documentWidth","documentElement","clientWidth","Math","abs","window","innerWidth","hide","width","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","style","overflow","selector","styleProperty","callback","scrollbarWidth","manipulationCallBack","element","getComputedStyle","getPropertyValue","setProperty","Number","parseFloat","_applyManipulationCallback","actualValue","Manipulator","setDataAttribute","value","getDataAttribute","removeProperty","removeDataAttribute","callBack","isElement","SelectorEngine","find","sel"],"mappings":"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"}