cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
65 lines (64 loc) • 1.93 kB
JavaScript
/*
* vuensee
* @author Anders Evenrud <andersevenrud@gmail.com>
* @link https://github.com/andersevenrud/vuensee
* @license MIT
*/
const fullscreen = {
request: () => (document.documentElement.requestFullscreen || document.documentElement.mozRequestFullscreen || document.documentElement.webkitRequestFullscreen || document.documentElement.msRequestFullscreen).bind(document.documentElement)(),
exit: () => (document.exitFullscreen || document.mozExitFullscreen || document.webkitExitFullscreen || document.msExitFullscreen).bind(document)(),
element: () => document.fullscreenElement || document.mozFullscreenElement || document.webkitFullscreenElement || document.msFullscreenElement
};
const getTargetInputValue = (ev) => {
if (ev.target.type === "checkbox") {
return ev.target.checked;
} else if (ev.target.type === "number" || ev.target.type === "range") {
return parseInt(ev.target.value, 10);
}
return ev.target.value;
};
const createAudioElement = (sources) => {
const audio = new Audio();
sources.forEach(([type, src]) => {
const el = document.createElement("source");
el.type = type;
el.src = src;
audio.appendChild(el);
});
return audio;
};
const inputKeyListener = (send) => {
const sendkeys = {
8: "backspace",
9: "tab",
13: "enter"
};
let skipInput = false;
return {
down: (ev) => {
skipInput = false;
const found = sendkeys[ev.keyCode];
if (found) {
skipInput = true;
send(found);
}
},
up: () => {
skipInput = false;
},
press: (ev) => {
if (sendkeys[ev.keyCode]) {
skipInput = true;
}
},
input: (ev) => {
if (skipInput) {
return;
}
const chars = Array.from(ev.target.value);
chars.forEach(send);
ev.target.value = "";
}
};
};
export { createAudioElement, fullscreen, getTargetInputValue, inputKeyListener };