package.js.dist.util.swipe.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bootstrap Show documentation
Show all versions of bootstrap Show documentation
The most popular front-end framework for developing responsive, mobile first projects on the web.
The newest version!
{"version":3,"file":"swipe.js","sources":["../../src/util/swipe.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\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 dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n"],"names":["NAME","EVENT_KEY","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","Default","endCallback","leftCallback","rightCallback","DefaultType","Swipe","Config","constructor","element","config","_element","isSupported","_config","_getConfig","_deltaX","_supportPointerEvents","Boolean","window","PointerEvent","_initEvents","dispose","EventHandler","off","_start","event","touches","clientX","_eventIsPointerPenTouch","_end","_handleSwipe","execute","_move","length","absDeltaX","Math","abs","direction","on","classList","add","pointerType","document","documentElement","navigator","maxTouchPoints"],"mappings":"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"}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy