feat: add minify config that works

This commit is contained in:
Nikolaj Fabricius-Bjerre 2024-03-05 14:14:25 +01:00
parent fecf789f58
commit dd093244e5
2 changed files with 10 additions and 1 deletions

9
.minify.json Normal file
View File

@ -0,0 +1,9 @@
{
"js": {
"mangle": false,
"mangleClassNames": false,
"removeUnusedVariables": false,
"removeConsole": true,
"removeUselessSpread": true
}
}

2
public/js.min.js vendored
View File

@ -1 +1 @@
var A=a=>typeof a=='string',{keys:b}=Object,$=_=>{const B=document.querySelectorAll(_);if(!B)throw Error(`DOM elem '${_}' not found`);return (B.length==1)?B[0]:B};window.pdfgen={data:{},conf:{disabled:[]}};function d(c,C){if(!c)return C;for(const k of b(C))typeof C[k]!=='object'?c[k]=C[k]:c[k]=d(c[k],C[k]);return c}window.addEventListener('DOMContentLoaded',()=>{var _a=[...document.querySelectorAll('input.var[type="file"]')];_a.filter(D=>D.dataset.is=='image').forEach(_A=>_A.addEventListener('change',async ()=>{!window.pdfgen.data.files&&(window.pdfgen.data.files={});let e;var _b=new FormData();if(!_A.files[0])throw {el:_A,name:'Client-side input validering',message:'Du mangler at vælge en fil til upload'};_b.append('file',_A.files[0]);var _c=await fetch('/pdf/upload/image',{method:'POST',body:_b});try {e=await _c.json()} catch {throw {el:_A,name:'Kunne ikke parse respons body til JSON',message:'Serveren svarede ikke korrekt, skriv gerne en fejlrapport.'}}if(!_c.ok){if(!e.error)return reject(e);throw {el:_A,name:'Kunne ikke uploade fil',message:e.error}}window.file_reset_timer&&setTimeout(()=>{delete window.pdfgen.data.files[_A.dataset.var];if(_A.dataset.preview)$(`#${_A.dataset.preview}`).innerHTML=''},window.file_reset_timer);if(_A.dataset.preview){var _d=$(`#${_A.dataset.preview}`),E=document.createElement('img');_d.innerHTML='';E.className='image_preview';E.src=`file/${e.fileid}`;_d.appendChild(E)}window.pdfgen.data.files[_A.dataset.var]=e.fileid}))});
var isBool=a=>typeof a=='boolean',isString=a=>typeof a=='string',{keys}=Object,$=str=>{const elems=document.querySelectorAll(str);if(!elems)throw Error(`DOM elem '${str}' not found`);return (elems.length==1)?elems[0]:elems};window.pdfgen={data:{},conf:{disabled:[]}};function merge_obj(obj1,obj2){if(!obj1)return obj2;for(const k of keys(obj2))typeof obj2[k]!=='object'?obj1[k]=obj2[k]:obj1[k]=merge_obj(obj1[k],obj2[k]);return obj1}function error(err){err.name&&err.message?alert(`${err.name}\n${err.message}`):isString((err))&&alert(err);err.el&&typeof err.el=='object'&&document.body.contains(err.el)&&setTimeout(()=>{err.el.focus();err.el.select()},100)}async function cvrapi(el){var cvr=el.value;let resjson=null;if(!/\d{8}/g.test(cvr))return error({el:el,name:'Forkert CVR format',message:' '});var resobj=await fetch(`/api/cvr/${cvr}`);try {resjson=await resobj.json()} catch (e) {return error({el:el,name:'Kunne ikke parse respons body til JSON',message:'Serveren svarede ikke korrekt, skriv gerne en fejlrapport.'})}if(resobj.status==404)return error({el:el,name:'Kunne ikke finde et firma',message:`med CVR-nummer ${cvr}`});if(!resobj.ok)return error({el:el,name:'Server error',message:el.error});return resjson}function format_date(d=new Date()){var is_date=Object.prototype.toString.call(d)=='[object Date]';if(!is_date&&isString(d))try {d=new Date(d)} catch (e) {throw e} else if(!is_date)throw Error('Invalid date!');return`${d.getDate()}/${d.getMonth()+1}/${d.getFullYear()}`}function populate(){return new Promise(async (resolve,reject)=>{let elems=[...document.getElementsByClassName('var')];elems=elems.filter(el=>!window.pdfgen.conf.disabled.includes(el.id));var addValue=(key,val)=>{if(key.includes('.')){const all_keys=[].concat(key.split('.')),keys=key.split('.').reverse();let obj={};obj[keys.shift()]=val;for(const[,k] of keys.entries()){const deep={};deep[k]=obj;obj=deep}window.pdfgen.data=merge_obj(window.pdfgen.data,obj)}else window.pdfgen.data[key]=val};await Promise.all(elems.map(async el=>{if(el.dataset.is=='number')try {var number=parseInt(el.value);addValue(el.dataset.var,number)} catch (e) {throw {el:el,name:'Client-side input validering',message:'Værdien kunne ikke konverteres til et tal'}} else if(el.dataset.is=='boolean'){if(!isBool(el.checked))throw {el:el,name:'Client-side input validering',message:'Checkboxens værdi er ikke gyldig :S'};addValue(el.dataset.var,el.checked)} else if(el.dataset.is=='string'){if(!isString(el.value)||el.value=='')throw {el:el,name:'Client-side input validering',message:'Teksten kunne ikke valideres'};addValue(el.dataset.var,el.value)}})).then(()=>resolve()).catch(e=>{e.el&&(e.el.className+=' vali_err',setTimeout(()=>e.el.className=e.el.className.replaceAll('\ vali_err',''),3800));return reject(e)})})}function modal_toggle(name){var modal=document.querySelector(`#modal-${name}`);modal.className.includes('show')?modal.className=modal.className.replaceAll('\ show',''):modal.className+=' show'}window.addEventListener('DOMContentLoaded',e=>{var inputs=[...document.querySelectorAll('input.var[type="file"]')];inputs.filter(el=>el.dataset.is=='image').forEach(el=>el.addEventListener('change',async evt=>{!window.pdfgen.data.files&&(window.pdfgen.data.files={});let resjson;var data=new FormData();if(!el.files[0])throw {el:el,name:'Client-side input validering',message:'Du mangler at vælge en fil til upload'};data.append('file',el.files[0]);var resobj=await fetch('/pdf/upload/image',{method:'POST',body:data});try {resjson=await resobj.json()} catch (e) {throw {el:el,name:'Kunne ikke parse respons body til JSON',message:'Serveren svarede ikke korrekt, skriv gerne en fejlrapport.'}}if(!resobj.ok){if(!resjson.error)return reject(resjson);throw {el:el,name:'Kunne ikke uploade fil',message:resjson.error}}window.file_reset_timer&&setTimeout(()=>{delete window.pdfgen.data.files[el.dataset.var];if(el.dataset.preview)$(`#${el.dataset.preview}`).innerHTML=''},window.file_reset_timer);if(el.dataset.preview){var preview_container=$(`#${el.dataset.preview}`),preview_img=document.createElement('img');preview_container.innerHTML='';preview_img.className='image_preview';preview_img.src=`file/${resjson.fileid}`;preview_container.appendChild(preview_img)}window.pdfgen.data.files[el.dataset.var]=resjson.fileid}))});