1var myjs = {}; 2 3 4 5myjs.getCookie = function(key) 6{ 7 return localStorage.getItem(key); 8} 9 10myjs.setCookie = function(key, value, days = 30) 11{ 12 localStorage.setItem(key, value); 13} 14 15myjs.hasCookie = function(key) 16{ 17 return myjs.getCookie(key) != null; 18} 19 20myjs.removeCookie = function(key) 21{ 22 localStorage.removeItem(key); 23} 24 25myjs.getQuery = function(key, url = null) 26{ 27 if (!url) url = window.location.href; 28 key = key.replace(/[\[\]]/g, '\\$&'); 29 30 var regex = new RegExp('[?&]' + key + '(=([^&#]*)|&|#|$)'), 31 32 results = regex.exec(url); 33 34 if (!results) return null; 35 if (!results[2]) return ''; 36 37 return decodeURIComponent(results[2].replace(/\+/g, ' ')); 38} 39 40myjs.isEmail = function(str) 41{ 42 const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 43 return re.test(String(str).toLowerCase()); 44} 45 46myjs.isUrl = function(str) 47{ 48 var pattern = new RegExp('^(https?:\\/\\/)?'+ 49 '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ 50 '((\\d{1,3}\\.){3}\\d{1,3}))'+ 51 '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ 52 '(\\?[;&a-z\\d%_.~+=-]*)?'+ 53 '(\\#[-a-z\\d_]*)?$','i'); 54 55 return !!pattern.test(str); 56} 57 58myjs.isNumber = function(str) 59{ 60 return !isNaN(str); 61} 62 63// SLUGIFY 64myjs.slug = function(str) 65{ 66 return str 67 .toLowerCase() 68 .replace(/ /g,'-') 69 .replace(/[^\w-]+/g,'') 70 ; 71} 72 73// RANDOM 74myjs.random = function(min, max = null) 75{ 76 if(max == null) 77 return myjs.random(0, min); 78 79 return min + Math.floor(Math.random() * (max - min)); 80} 81 82// REDIRECT 83myjs.redirect = function(url) 84{ 85 window.location.href = url; 86} 87 88// ELEMENT 89myjs.e = function(query) 90{ 91 var elements = document.querySelectorAll(query); 92 93 // if(elements.length == 1) 94 // return elements[0]; 95 96 if(elements.length == 0) 97 return null; 98 99 return elements; 100} 101 102myjs.addClass = function(query, new_class) 103{ 104 var elements = myjs.e(query); 105 106 for(var i = 0; i < elements.length; i++) 107 { 108 elements[i].classList.add(new_class); 109 } 110} 111 112myjs.removeClass = function(query, old_class) 113{ 114 var elements = myjs.e(query); 115 116 for(var i = 0; i < elements.length; i++) 117 { 118 elements[i].classList.remove(old_class); 119 } 120} 121 122myjs.setHtml = function(query, html) 123{ 124 var elements = myjs.e(query); 125 126 for(var i = 0; i < elements.length; i++) 127 { 128 elements[i].innerHTML = html; 129 } 130} 131 132myjs.getHtml = function(query) 133{ 134 var elements = myjs.e(query); 135 136 if(elements) 137 return elements[0].innerHTML; 138 139 return null; 140} 141 142myjs.setVal = function(query, value) 143{ 144 var elements = myjs.e(query); 145 146 for(var i = 0; i < elements.length; i++) 147 { 148 elements[i].value = value; 149 } 150} 151 152myjs.getVal = function(query) 153{ 154 var elements = myjs.e(query); 155 156 if(elements) 157 return elements[0].value; 158 159 return null; 160} 161 162myjs.hide = function(query) 163{ 164 var elements = myjs.e(query); 165 166 for(var i = 0; i < elements.length; i++) 167 { 168 elements[i].style.display = "none"; 169 } 170} 171 172myjs.show = function(query) 173{ 174 var elements = myjs.e(query); 175 176 for(var i = 0; i < elements.length; i++) 177 { 178 elements[i].style.display = "block"; 179 } 180} 181 182myjs.autoSelect = function() 183{ 184 var elements = myjs.e("[data-value]"); 185 186 for(var i = 0; i < elements.length; i++) 187 { 188 elements[i].value = elements[i].getAttribute("data-value"); 189 } 190} 191 192 193 194 195 196myjs.toUtc = function(datetime, timezone) 197{ 198 var x = datetime; 199 var y = moment.tz(x, timezone); 200 return y.utc(); 201} 202 203myjs.fromUtc = function(datetime, timezone) 204{ 205 var x = moment.utc(datetime); 206 var y = moment.tz(x, timezone); 207 return y; 208} 209 210myjs.swapArray = function(elements, position, direction = "right", callback = null) { 211 212 for(var i = 0; i < elements.length; i++) 213 { 214 if(i == position) 215 { 216 if(direction == 'left' && i > 0) 217 { 218 var aux = elements[i]; 219 elements[i] = elements[i-1]; 220 elements[i-1] = aux; 221 } 222 else if(direction == 'right' && i < elements.length - 1) 223 { 224 var aux = elements[i]; 225 elements[i] = elements[i+1]; 226 elements[i+1] = aux; 227 } 228 229 break; 230 } 231 } 232 233 if(callback) 234 callback(); 235 236 return elements; 237}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.