-
Notifications
You must be signed in to change notification settings - Fork 0
/
Adjust.min.js
1 lines (1 loc) · 5.56 KB
/
Adjust.min.js
1
class Adjust{constructor(){this.version="1.0.0",this.name=`${this.constructor.name}.js`,console.info(`This site is running version ${this.version} of ${this.name}!`)}warn(e,t){let s="";switch(e){case"classNotFound":s=`${this.name}: The DOM doesn't seem to have elements with a class name of "${t}"!`;break;case"noClassSet":s=`${this.name}: The selector parameters are required when calling the "${t}" method!`;break;case"noParameters":s=`${this.name}: No parameters were set when calling the "${t}" method!`;break;case"notNumber":s=`${this.name}: The "${t}" parameter is not a number!`;break;case"typeNotFound":s=`${this.name}: The "type" parameter has to be ${t}!`;break;case"sizeNotFound":s=`${this.name}: The "size" parameter has to be a number when calling the "${t}" method!`;break;case"notBool":s=`${this.name}: The ${t} parameter has to be true or false (boolean)!`;break;case"idNotFound":s=`${this.name}: The DOM doesn't seem to have an element with an ID of "${t}"`;break;case"percentageNotFound":s=`${this.name}: The "percentage" parameter has to be a number when calling the "${t}" method!`}console.warn(s)}equalizer(e){if(e)if(e.className)if(document.getElementsByClassName(e.className))if(!e.type||"height"!=e.type.toLowerCase()&&"width"!=e.type.toLowerCase())this.warn("typeNotFound",'"width" or "height"');else{const t=Array.from(document.getElementsByClassName(e.className));let s=0;const n=e.minWidth?e.minWidth:0,i=e.maxWidth?e.maxWidth:Number.MAX_VALUE,a=()=>{s=0,window.innerWidth>=n&&window.innerWidth<=i?("height"==e.type&&(t.forEach(e=>{e.style.height="auto",e.clientHeight>s&&(s=e.clientHeight)}),t.forEach(e=>{e.style.height=`${s}px`})),"width"==e.type&&(t.forEach(e=>{e.style.width="auto",e.clientWidth>s&&(s=e.clientWidth)}),t.forEach(e=>{e.style.width=`${s}px`}))):("height"==e.type&&t.forEach(e=>{e.style.height="auto"}),"width"==e.type&&t.forEach(e=>{e.style.width="auto"}))};"number"!=typeof n?this.warn("notNumber","minWidth"):"number"!=typeof i?this.warn("notNumber","maxWidth"):(window.addEventListener("load",a),window.addEventListener("resize",a))}else this.warn("classNotFound",e.className);else this.warn("noClassSet","equalizeHeights");else this.warn("noParameters","equalizeHeights")}fontSizer(e){if(e)if(e.containerClass)if(document.getElementsByClassName(e.containerClass)[0])if(!e.type||"height"!=e.type.toLowerCase()&&"width"!=e.type.toLowerCase())this.warn("typeNotFound",'"width" or "height"');else if(e.size&&"number"==typeof e.size){const t=Array.from(document.getElementsByClassName(e.containerClass));let s=!1,n=!1,i=e.size/1e3;const a=e.minWidth?e.minWidth:0,o=e.maxWidth?e.maxWidth:Number.MAX_VALUE;e.rounded&&("boolean"==typeof e.rounded?n=!0:(n=!1,this.warn("notBool","rounded"))),e.childClass?document.getElementsByClassName(e.childClass)[0]?s=!0:this.warn("classNotFound",e.childClass):s=!1;const h=()=>{window.innerWidth>=a&&window.innerWidth<=o?t.forEach(t=>{let a=0;a="height"==e.type?t.clientHeight:t.clientWidth;const o=n?Math.floor(a*i):a*i;if(s){Array.from(t.getElementsByClassName(e.childClass)).forEach(e=>{e.style.fontSize=`${o}px`})}else t.style.fontSize=`${o}px`}):t.forEach(t=>{if(s){Array.from(t.getElementsByClassName(e.childClass)).forEach(e=>{e.style.fontSize=""})}else t.style.fontSize=""})};"number"!=typeof a?this.warn("notNumber","minWidth"):"number"!=typeof o?this.warn("notNumber","maxWidth"):(window.addEventListener("load",h),window.addEventListener("resize",h))}else this.warn("sizeNotFound","fontSizer");else this.warn("classNotFound",e.containerClass);else this.warn("noClassSet","fontSizer");else this.warn("noParameters","fontSizer")}cloner(e){if(e)if(e.modelID&&e.targetClass)if(document.getElementById(e.modelID))if(document.getElementsByClassName(e.targetClass)[0])if(!e.type||"height"!=e.type.toLowerCase()&&"width"!=e.type.toLowerCase())this.warn("typeNotFound",'"width" or "height"');else{const t=document.getElementById(e.modelID),s=Array.from(document.getElementsByClassName(e.targetClass)),n=e.minWidth?e.minWidth:0,i=e.maxWidth?e.maxWidth:Number.MAX_VALUE,a=()=>{if(window.innerWidth>=n&&window.innerWidth<=i)if("height"==e.type){const e=t.clientHeight;s.forEach(t=>{t.style.height=`${e}px`})}else{const e=t.clientWidth;s.forEach(t=>{t.style.width=`${e}px`})}else"height"==e.type?s.forEach(e=>{e.style.height="auto"}):s.forEach(e=>{e.style.width="auto"})};"number"!=typeof n?this.warn("notNumber","minWidth"):"number"!=typeof i?this.warn("notNumber","maxWidth"):(window.addEventListener("load",a),window.addEventListener("resize",a))}else this.warn("classNotFound",e.targetClass);else this.warn("idNotFound",e.modelID);else this.warn("noClassSet","cloner");else this.warn("noParameters","cloner")}stretcher(e){if(e)if(e.className)if(document.getElementsByClassName(e.className)[0])if(e.percentage&&"number"==typeof e.percentage)if(!e.type||"height"!=e.type.toLowerCase()&&"width"!=e.type.toLowerCase())this.warn("typeNotFound",'"width" or "height"');else{const t=Array.from(document.getElementsByClassName(e.className)),s=e.minWidth?e.minWidth:0,n=e.maxWidth?e.maxWidth:Number.MAX_VALUE,i=()=>{window.innerWidth>=s&&window.innerWidth<=n?t.forEach(t=>{if("width"==e.type){const s=t.clientHeight*(e.percentage/100);t.style.width=`${s}px`}else{const s=t.clientWidth*(e.percentage/100);t.style.height=`${s}px`}}):t.forEach(t=>{"width"==e.type?t.style.width="auto":t.style.height="auto"})};"number"!=typeof s?this.warn("notNumber","minWidth"):"number"!=typeof n?this.warn("notNumber","maxWidth"):(window.addEventListener("load",i),window.addEventListener("resize",i))}else this.warn("percentageNotFound","stretcher");else this.warn("classNotFound",e.className);else this.warn("noClassSet","stretcher")}}