1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-04 10:19:24 +02:00
Oinktube/node_modules/inputmask/micromasks/mm.js

31 lines
889 B
JavaScript

(() => {
window.mm = (i, mask) => {
const d = { 9: "[0-9]", a: "[a-z]" },
msk = mask.split("");
i.addEventListener("input", handler);
i.addEventListener("focus", handler);
function handler(e) {
if (e.type == "focus" && i.value !== "") return;
const mskd = [];
let s = i.selectionStart - 1;
msk.forEach((el, n) => {
if (d[el]) {
const t = new RegExp(d[el], "i").test(i.value.charAt(n));
mskd.push(t ? i.value.charAt(n) : "_");
if (t && s === n && i.value.charAt(n) !== "_") {
s++;
}
} else {
mskd.push(el);
if (s === n) s++;
}
});
i.value = mskd.join("");
i.selectionStart = i.selectionEnd = s < 0 ? 0 : s;
setTimeout(function () {
i.selectionStart = i.selectionEnd = s < 0 ? 0 : s;
}, 0);
}
};
})();