-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinput-transform.min.umd.js
1 lines (1 loc) · 4.79 KB
/
input-transform.min.umd.js
1
window.InputTransform={messages:{maxImageSize:e=>`The maximum image size is ${e} bytes`,fileType:e=>`Only files with the following extensions are allowed: ${e}`},methods:{regex:(e,{regex:t,replace:r=""})=>e.replace(t,r),regexs:(e,t)=>(t.forEach(({regex:t,replace:r=""})=>e=e.replaceAll({regex:t},r)),e),minNumber:(e,t)=>e?Math.max(t,parseFloat(e.replaceAll(/\D+/g,""))):"",maxNumber:(e,t)=>e?Math.min(t,parseFloat(e.replaceAll(/\D+/g,""))):"",uppercase:e=>e.toUpperCase(),lowercase:e=>e.toLowerCase(),capitalize:e=>e.charAt(0).toUpperCase()+e.slice(1),trim:e=>e.trim(),clearSpaces:e=>e.replaceAll(" ",""),clearNumbers:e=>e.replaceAll(/\d+/g,""),onlyNumbers:e=>e.replaceAll(/\D+/g,""),clearSymbols:e=>e.replaceAll(/[^a-zA-Z0-9]/g,""),onlySymbols:e=>e.replaceAll(/[a-zA-Z0-9]/g,""),clearLetters:e=>e.replaceAll(/[a-zA-Z]/g,""),onlyLetters:e=>e.replaceAll(/[^a-zA-Z]/g,""),maxLength:(e,t)=>e.slice(0,t),clear:(e,t)=>e.replaceAll(t,""),clears:(e,t)=>(t.split(",").forEach(t=>e=e.replaceAll(t,"")),e),fileType(e,t,r){if(!r.files||0===r.files.length)return;let a=t.replaceAll(" ","").split(",");for(let n of r.files)if(!a.some(e=>n.name.endsWith(e))){window.dispatchEvent(new CustomEvent("input-transform.error",{detail:{input:r,file:n,message:InputTransform.messages.fileType(t)}})),r.dispatchEvent(new CustomEvent("input-transform.error",{detail:{file:n,message:InputTransform.messages.fileType(t)}})),r.value=null,r.type="text",r.type="file";return}},maxImageWidth(e,t,r){if(!r.files||0===r.files.length)return},maxImageHeight(e,t,r){if(!r.files||0===r.files.length)return},maxImageSize(e,t,r){if(r.files&&0!==r.files.length)for(let a of r.files){let n=a.size;if(n>t){window.dispatchEvent(new CustomEvent("input-transform.error",{detail:{input:r,file:a,imageSize:n,message:InputTransform.messages.maxImageSize(t)}})),r.dispatchEvent(new CustomEvent("input-transform.error",{detail:{file:a,imageSize:n,message:InputTransform.messages.maxImageSize(t)}})),r.value=null,r.type="text",r.type="file";return}}},getOrCreateHiddenInput(e){if(e.hasAttribute("name")){let t=document.createElement("input");return t.type="hidden",t.name=e.name,e.dataset.inputTransformName=t.name,e.name=null,e.removeAttribute("name"),e.after(t),t}return e.parentElement.querySelector(`[name="${e.dataset.inputTransformName}"]`)},imageBase64(e,t,r){if(!r.files||0===r.files.length)return;let a=[],n=InputTransform.getOrCreateHiddenInput(r);for(let s of r.files){let l=new FileReader;l.readAsDataURL(s),l.onload=()=>{a.push(l.result),n.value=a.join(",")},l.onerror=e=>{console.log("Error: ",e),window.dispatchEvent(new CustomEvent("input-transform.error",{detail:{input:r,file:s,message:e}}))}}},imageBase64Webp(e,t,r){if(!r.files||0===r.files.length)return;let a=[],n=InputTransform.getOrCreateHiddenInput(r);for(let s of r.files){let l=s.name.split(".").slice(0,-1).join("."),i=new Image;i.onload=()=>{let e=document.createElement("canvas");e.width=i.naturalWidth,e.height=i.naturalHeight,e.getContext("2d").drawImage(i,0,0),e.toBlob(e=>{let t=new File([e],`${l}.webp`,{type:e.type}),i=new FileReader;i.readAsDataURL(t),i.onload=()=>{a.push(i.result),n.value=a.join(",")},i.onerror=e=>{console.log("Error: ",e),window.dispatchEvent(new CustomEvent("input-transform.error",{detail:{input:r,file:s,message:e}})),r.dispatchEvent(new CustomEvent("input-transform.error",{detail:{file:s,message:e}}))}},"image/webp")},i.src=URL.createObjectURL(s)}}},methodToAttribute:e=>`data-input-transform-${e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}`,init(e,t){e&&t&&"object"==typeof t&&!e.InputTransformInit&&("string"==typeof e&&(e=document.querySelector(e)),e.InputTransformInit=!0,e.InputTransformOptions=t,window.dispatchEvent(new CustomEvent("input-transform.init",{detail:{input:e,options:t}})),e.dispatchEvent(new CustomEvent("input-transform.init",{detail:t})),e.addEventListener("input",()=>{let t=e.value;Object.keys(e.InputTransformOptions).forEach(r=>{let a=InputTransform.methods[r](t,e.InputTransformOptions[r],e);null!=a&&(t=a)}),e.value=t,window.dispatchEvent(new CustomEvent("input-transform.change"),{detail:e}),e.dispatchEvent(new CustomEvent("input-transform.change"))}))},initOne(e){"string"==typeof e&&(e=document.querySelector(e));let t={};Object.keys(InputTransform.methods).forEach(r=>{let a=`inputTransform${r[0].toUpperCase()+r.substring(1)}`;"string"==typeof e.dataset[a]&&(InputTransform.methods[r].length>1||"false"!==e.dataset[a])&&(t[r]=e.dataset[a])}),InputTransform.init(e,t)},initAll(){let e=Object.keys(InputTransform.methods).map(InputTransform.methodToAttribute),t=`input${e.map(e=>`[${e}]`).join(",")}`;document.querySelectorAll(t).forEach(e=>{let t={};Object.keys(InputTransform.methods).forEach(r=>{let a=`inputTransform${r[0].toUpperCase()+r.substring(1)}`;"string"==typeof e.dataset[a]&&(InputTransform.methods[r].length>1||"false"!==e.dataset[a])&&(t[r]=e.dataset[a])}),InputTransform.init(e,t)})}};