export function makeid(length: number) {
let result = ''
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
const charactersLength = characters.length
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength))
}
return result
}
export function lockKeyboard() {
if (navigator && navigator.keyboard) {
navigator.keyboard.lock()
}
}
export function unlockKeyboard() {
if (navigator && navigator.keyboard) {
navigator.keyboard.unlock()
}
}
export function elementRequestFullscreen(el: HTMLElement) {
if (typeof el.requestFullscreen === 'function') {
el.requestFullscreen()
} else if (typeof el.webkitRequestFullscreen === 'function') {
el.webkitRequestFullscreen()
} else if (typeof el.webkitEnterFullscreen === 'function') {
el.webkitEnterFullscreen()
} else if (typeof el.mozRequestFullScreen === 'function') {
el.mozRequestFullScreen()
} else if (typeof el.msRequestFullScreen === 'function') {
el.msRequestFullScreen()
} else {
return false
}
return true
}
export function isFullscreen(): boolean {
return (
document.fullscreenElement ||
document.msFullscreenElement ||
document.mozFullScreenElement ||
document.webkitFullscreenElement
)
}
export function onFullscreenChange(el: HTMLElement, fn: () => void) {
if (el.onfullscreenchange === null) {
el.onfullscreenchange = fn
} else if (el.onmsfullscreenchange === null) {
el.onmsfullscreenchange = fn
} else if (el.onmozfullscreenchange === null) {
el.onmozfullscreenchange = fn
} else if (el.onwebkitfullscreenchange === null) {
el.onwebkitfullscreenchange = fn
}
}