Inisital Asset Commit
This commit is contained in:
74
assets/plugins/bs-stepper/js/polyfill.js
Normal file
74
assets/plugins/bs-stepper/js/polyfill.js
Normal file
@@ -0,0 +1,74 @@
|
||||
let matches = window.Element.prototype.matches
|
||||
let closest = (element, selector) => element.closest(selector)
|
||||
let WinEvent = (inType, params) => new window.Event(inType, params)
|
||||
let createCustomEvent = (eventName, params) => {
|
||||
const cEvent = new window.CustomEvent(eventName, params)
|
||||
|
||||
return cEvent
|
||||
}
|
||||
|
||||
/* istanbul ignore next */
|
||||
function polyfill () {
|
||||
if (!window.Element.prototype.matches) {
|
||||
matches = window.Element.prototype.msMatchesSelector ||
|
||||
window.Element.prototype.webkitMatchesSelector
|
||||
}
|
||||
|
||||
if (!window.Element.prototype.closest) {
|
||||
closest = (element, selector) => {
|
||||
if (!document.documentElement.contains(element)) {
|
||||
return null
|
||||
}
|
||||
|
||||
do {
|
||||
if (matches.call(element, selector)) {
|
||||
return element
|
||||
}
|
||||
|
||||
element = element.parentElement || element.parentNode
|
||||
} while (element !== null && element.nodeType === 1)
|
||||
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
if (!window.Event || typeof window.Event !== 'function') {
|
||||
WinEvent = (inType, params) => {
|
||||
params = params || {}
|
||||
const e = document.createEvent('Event')
|
||||
e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable))
|
||||
return e
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof window.CustomEvent !== 'function') {
|
||||
const originPreventDefault = window.Event.prototype.preventDefault
|
||||
|
||||
createCustomEvent = (eventName, params) => {
|
||||
const evt = document.createEvent('CustomEvent')
|
||||
|
||||
params = params || { bubbles: false, cancelable: false, detail: null }
|
||||
evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)
|
||||
evt.preventDefault = function () {
|
||||
if (!this.cancelable) {
|
||||
return
|
||||
}
|
||||
|
||||
originPreventDefault.call(this)
|
||||
Object.defineProperty(this, 'defaultPrevented', {
|
||||
get: function () { return true }
|
||||
})
|
||||
}
|
||||
|
||||
return evt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
polyfill()
|
||||
|
||||
export {
|
||||
closest,
|
||||
WinEvent,
|
||||
createCustomEvent
|
||||
}
|
||||
Reference in New Issue
Block a user