1let wpaicgInit = { 2 wpaicgImageForm: null, 3 wpaicgImageGenerated: null, 4 wpaicgImageGrid: null, 5 wpaicgImageLoading: null, 6 wpaicgImageSaveBtn: null, 7 wpaicgImageMessage: null, 8 wpaicgImageConvertBar: null, 9 wpaicg_image_modal_close: null, 10 wpaicgNumberImages: null, 11 wpaicgImageGenerateBtn: null, 12 wpaicgImageSelectAll: null, 13 wpaicgStartTime: null, 14 init: function (){ 15 this.search(); 16 this.image(); 17 return this; 18 }, 19 search: function(){ 20 let that = this; 21 let wpaicgSearchs = document.getElementsByClassName('wpaicg-search'); 22 if(wpaicgSearchs && wpaicgSearchs.length){ 23 for(let i=0;i<wpaicgSearchs.length;i++){ 24 let wpaicgSearch = wpaicgSearchs[i]; 25 let wpaicgSearchForm = wpaicgSearch.getElementsByClassName('wpaicg-search-form')[0]; 26 let wpaicgSearchField = wpaicgSearch.getElementsByClassName('wpaicg-search-field')[0]; 27 let wpaicgSearchResult = wpaicgSearch.getElementsByClassName('wpaicg-search-result')[0]; 28 let wpaicgSearchSource = wpaicgSearch.getElementsByClassName('wpaicg-search-source')[0]; 29 let wpaicgSearchBtn = wpaicgSearch.getElementsByClassName('wpaicg-search-submit')[0]; 30 wpaicgSearchBtn.addEventListener('click', function (){ 31 that.searchData(wpaicgSearchResult,wpaicgSearchSource,wpaicgSearchField); 32 }); 33 wpaicgSearchForm.addEventListener('submit', function (e){ 34 that.searchData(wpaicgSearchResult,wpaicgSearchSource,wpaicgSearchField); 35 e.preventDefault(); 36 return false; 37 }) 38 } 39 } 40 }, 41 searchExpand: function(element){ 42 let item = element.closest('.wpaicg-search-item'); 43 item.getElementsByClassName('wpaicg-search-item-excerpt')[0].style.display = 'none'; 44 item.getElementsByClassName('wpaicg-search-item-full')[0].style.display = 'block'; 45 }, 46 searchData: function (wpaicgSearchResult,wpaicgSearchSource,wpaicgSearchField){ 47 let search = wpaicgSearchField.value; 48 if(search !== '') { 49 wpaicgSearchResult.innerHTML = '<div class="wpaicg-search-loading"><div class="wpaicg-lds-dual-ring"></div></div>'; 50 wpaicgSearchSource.innerHTML = ''; 51 wpaicgSearchResult.classList.remove('wpaicg-has-item'); 52 const xhttp = new XMLHttpRequest(); 53 xhttp.open('POST', wpaicgParams.ajax_url); 54 xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 55 xhttp.send('action=wpaicg_search_data&_wpnonce='+wpaicgParams.search_nonce+'&search='+encodeURIComponent(search)); 56 xhttp.onreadystatechange = function(oEvent) { 57 if (xhttp.readyState === 4) { 58 if (xhttp.status === 200) { 59 wpaicgSearchResult.classList.add('wpaicg-has-item'); 60 var wpaicg_response = this.responseText; 61 if (wpaicg_response !== '') { 62 wpaicg_response = JSON.parse(wpaicg_response); 63 wpaicgSearchResult.innerHTML = ''; 64 if (wpaicg_response.status === 'success') { 65 if(wpaicg_response.data.length){ 66 for(let i = 0; i < wpaicg_response.data.length; i++){ 67 let item = wpaicg_response.data[i]; 68 wpaicgSearchResult.innerHTML += item; 69 } 70 if(wpaicg_response.source.length){ 71 wpaicgSearchSource.innerHTML = '<h3>'+wpaicgParams.languages.source+'</h3>'; 72 for(let i = 0; i < wpaicg_response.source.length; i++){ 73 let item = wpaicg_response.source[i]; 74 wpaicgSearchSource.innerHTML +=
74item; 75 } 76 } 77 } 78 else{ 79 wpaicgSearchResult.innerHTML = '<p>'+wpaicgParams.languages.no_result+'</p>'; 80 } 81 } 82 else{ 83 wpaicgSearchResult.innerHTML = '<p class="wpaicg-search-error">'+wpaicg_response.msg+'</p>'; 84 } 85 } 86 else{ 87 wpaicgSearchResult.innerHTML = '<p class="wpaicg-search-error">'+wpaicgParams.languages.wrong+'</p>'; 88 } 89 } 90 else{ 91 wpaicgSearchResult.innerHTML = '<p class="wpaicg-search-error">'+wpaicgParams.languages.wrong+'</p>'; 92 } 93 } 94 } 95 } 96 }, 97 imageModal: function (id){ 98 var item = document.getElementById('wpaicg-image-item-'+id); 99 var alt = item.querySelectorAll('.wpaicg-image-item-alt')[0].value; 100 var title = item.querySelectorAll('.wpaicg-image-item-title')[0].value; 101 var caption = item.querySelectorAll('.wpaicg-image-item-caption')[0].value; 102 var description = item.querySelectorAll('.wpaicg-image-item-description')[0].value; 103 var url = item.querySelectorAll('input[type=checkbox]')[0].value; 104 document.querySelectorAll('.wpaicg_modal_content')[0].innerHTML = ''; 105 document.querySelectorAll('.wpaicg-overlay')[0].style.display = 'block'; 106 document.querySelectorAll('.wpaicg_modal')[0].style.display = 'block'; 107 document.querySelectorAll('.wpaicg_modal_title')[0].innerHTML = wpaicgParams.languages.edit_image; 108 var html = '<div class="wpaicg_grid_form">'; 109 html += '<div class="wpaicg_grid_form_2"><img src="'+url+'" style="width: 100%"></div>'; 110 html += '<div class="wpaicg_grid_form_1">'; 111 html += '<p><label>'+wpaicgParams.languages.alternative+'</label><input type="text" class="wpaicg_edit_item_alt" style="width: 100%" value="'+alt+'"></p>'; 112 html += '<p><label>'+wpaicgParams.languages.title+'</label><input type="text" class="wpaicg_edit_item_title" style="width: 100%" value="'+title+'"></p>'; 113 html += '<p><label>'+wpaicgParams.languages.caption+'</label><input type="text" class="wpaicg_edit_item_caption" style="width: 100%" value="'+caption+'"></p>'; 114 html += '<p><label>'+wpaicgParams.languages.description+'</label><textarea class="wpaicg_edit_item_description" style="width: 100%">'+description+'</textarea></p>'; 115 html += '<button onclick="wpaicgSaveImageData('+id+')" data-id="'+id+'" class="button button-primary wpaicg_edit_image_save" type="button">'+wpaicgParams.languages.save+'</button>'; 116 html += '</div>'; 117 html += '</div>'; 118 document.querySelectorAll('.wpaicg_modal_content')[0].innerHTML = html; 119 wpaicgImageCloseModal(); 120 }, 121 image_generator: function(data, start, max, multi_steps,form_action){ 122 let that = this; 123 const xhttp = new XMLHttpRequest(); 124 xhttp.open('POST', wpaicgParams.ajax_url); 125 xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 126 xhttp.send(data); 127 xhttp.onreadystatechange = function(oEvent) { 128 if (xhttp.readyState === 4) { 129 if (xhttp.status === 200) { 130 var wpaicg_response = this.responseText; 131 res = JSON.parse(wpaicg_response); 132 if(res.status === 'success'){ 133 for(var idx = 0; idx < res.imgs.length; idx++){ 134 let idImageBox = idx; 135 if(multi_steps){ 136 idImageBox = start -1; 137 } 138 var img = res.imgs[idx]; 139 var html = '<div id="wpaicg-image-item-'+idImageBox+'" class="wpaicg-image-item wpaicg-image-item-'+idx+'" data-id="'+idImageBox+'">'; 140 if(wpaicgParams.logged_in === '1') { 141 html += '<label><input data-id="' + idImageBox + '" class="wpaicg-image-item-select" type="checkbox" name="image_url" value="' + img + '"></label>'; 142 } 143 html += '<input value="'+res.title+'" class="wpaicg-image-item-alt" type="hidden" name="image_alt">'; 144 html += '<input value="'+res.title+'" class="wpaicg-image-item-title" type="hidden" name="image_title">'; 145 html += '<input value="'+res.title+'" class="wpaicg-image-item-caption" type="hidden" name="image_caption">'; 146 html += '<input value="'+res.title+'" class="wpaicg-image-item-description" type="hidden" name="image_description">'; 147 if(wpaicgParams.logged_in === '1') { 148 html += '<img onclick="wpaicgInit.imageModal(' + idImageBox + ')" src="' + img + '">'; 149 } 150 else { 151 html += '<img onclick="wpaicgViewModalImage(this)" src="' + img + '">'; 152 } 153 html += '</div>'; 154 that.wpaicgImageGrid.innerHTML += html; 155 } 156 if(multi_steps){ 157 if(start === max){ 158 wpaicgImageRmLoading(that.wpaicgImageGenerateBtn); 159 that.wpaicgImageSelectAll.classList.remove('selectall') 160 that.wpaicgImageSelectAll.innerHTML = wpaicgSelectAllText; 161 that.wpaicgImageSelectAll.style.display = 'block'; 162 that.wpaicgImageLoading.style.display = 'none'; 163 that.wpaicgImageSaveBtn.style.display = 'block'; 164 } 165 else{ 166 that.image_generator(data, start+1, max, multi_steps,form_action) 167 } 168 } 169 else{ 170 if(form_action === 'wpaicg_image_generator'){ 171 let endTime = new Date(); 172 let timeDiff = endTime - that.wpaicgStartTime; 173 timeDiff = timeDiff/1000; 174 data += '&action=wpaicg_image_log&duration='+timeDiff+'&_wpnonce_image_log='+wpaicgImageNonce+'&shortcode=['+wpaicgImageShortcode+']&source_id='+wpaicgImageSourceID; 175 const xhttp = new XMLHttpRequest(); 176 xhttp.open('POST', wpaicgParams.ajax_url); 177 xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 178 xhttp.send(data); 179 xhttp.onreadystatechange = function (oEvent) { 180 if (xhttp.readyState === 4) { 181 182 } 183 } 184 } 185 wpaicgImageRmLoading(that.wpaicgImageGenerateBtn); 186 that.wpaicgImageSelectAll.classList.remove('selectall') 187 that.wpaicgImageSelectAll.innerHTML = '<?php echo esc_html($wpaicg_image_select_all_text)?>'; 188 that.wpaicgImageSelectAll.style.display = 'block'; 189 that.wpaicgImageLoading.style.display = 'none'; 190 that.wpaicgImageSaveBtn.style.display = 'block'; 191 } 192 } 193 else{ 194 wpaicgImageRmLoading(that.wpaicgImageGenerateBtn); 195 that.wpaicgImageLoading.style.display = 'none'; 196 let errorMessage = document.createElement('div'); 197 errorMessage.style.color = '#f00'; 198 errorMessage.classList.add('wpaicg-image-error'); 199 errorMessage.innerHTML = res.msg; 200 that.wpaicgImageGenerated.prepend(errorMessage); 201 setTimeout(function (){ 202 errorMessage.remove(); 203 },3000); 204 } 205 } 206 else{ 207 that.wpaicgImageLoading.style.display = 'none'; 208 wpaicgImageRmLoading(that.wpaicgImageGenerateBtn); 209 alert('Something went wrong'); 210 } 211 } 212 } 213 214 }, 215 save_image: function (items,start){ 216 let that = this; 217 if(start >= items.length){ 218 that.wpaicgImageConvertBar.getElementsByTagName('small')[0].innerHTML = items.length+'/'+items.length; 219 that.wpaicgImageConvertBar.getElementsByTagName('span')[0].style.width = '100%'; 220 that.wpaicgImageMessage.innerHTML = wpaicgParams.languages.save_image_success; 221 wpaicgImageRmLoading(that.wpaicgImageSaveBtn); 222 setTimeout(function (){ 223 that.wpaicgImageMessage.innerHTML = ''; 224 },2000) 225 } 226 else{ 227 var id = items[start]; 228 var item = document.getElementById('wpaicg-image-item-'+id); 229 var data = 'action=wpaicg_save_image_media'; 230 data += '&image_alt='+item.querySelectorAll('.wpaicg-image-item-alt')[0].value; 231 data += '&image_title='+item.querySelectorAll('.wpaicg-image-item-title')[0].value; 232 data += '&image_caption='+item.querySelectorAll('.wpaicg-image-item-caption')[0].value; 233 data += '&image_description='+item.querySelectorAll('.wpaicg-image-item-description')[0].value; 234 data += '&image_url='+encodeURIComponent(item.querySelectorAll('.wpaicg-image-item-select')[0].value); 235 data +='&nonce='+wpaicgImageSaveNonce; 236 const xhttp = new XMLHttpRequest(); 237 xhttp.open('POST', wpaicgParams.ajax_url); 238 xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 239 xhttp.send(data); 240 xhttp.onreadystatechange = function(oEvent) { 241 if (xhttp.readyState === 4) { 242 if (xhttp.status === 200) { 243 var wpaicg_response = this.responseText; 244 res = JSON.parse(wpaicg_response); 245 if(res.status === 'success'){ 246 var currentPos = start+1;
247 var percent = Math.ceil(currentPos*100/items.length); 248 that.wpaicgImageConvertBar.getElementsByTagName('small')[0].innerHTML = currentPos+'/'+items.length; 249 that.wpaicgImageConvertBar.getElementsByTagName('span')[0].style.width = percent+'%'; 250 that.save_image(items, start+1); 251 } 252 else{ 253 that.wpaicgImageConvertBar.classList.add('wpaicg_error'); 254 wpaicgImageRmLoading(that.wpaicgImageSaveBtn); 255 alert(res.msg); 256 } 257 } else { 258 alert(wpaicgParams.languages.wrong); 259 that.wpaicgImageConvertBar.classList.add('wpaicg_error'); 260 wpaicgImageRmLoading(that.wpaicgImageSaveBtn); 261 } 262 } 263 } 264 } 265 }, 266 image: function (){ 267 let that = this; 268 let wpaicgImageForm = document.getElementById('wpaicg-image-generator-form'); 269 if(wpaicgImageForm){ 270 this.wpaicgImageForm = wpaicgImageForm; 271 this.wpaicgImageGenerated = wpaicgImageForm.getElementsByClassName('image-generated')[0]; 272 this.wpaicgImageGrid = wpaicgImageForm.getElementsByClassName('image-grid')[0]; 273 this.wpaicgImageLoading = wpaicgImageForm.getElementsByClassName('image-generate-loading')[0]; 274 this.wpaicgImageSaveBtn = wpaicgImageForm.getElementsByClassName('image-generator-save')[0]; 275 this.wpaicgImageMessage = wpaicgImageForm.getElementsByClassName('wpaicg_message')[0]; 276 this.wpaicgImageConvertBar = wpaicgImageForm.getElementsByClassName('wpaicg-convert-bar')[0]; 277 this.wpaicg_image_modal_close = wpaicgImageForm.getElementsByClassName('wpaicg_image_modal_close'); 278 this.wpaicgNumberImages = wpaicgImageForm.querySelector('select[name=num_images]'); 279 this.wpaicgImageGenerateBtn = wpaicgImageForm.getElementsByClassName('wpaicg_button_generate')[0]; 280 this.wpaicgImageSelectAll = wpaicgImageForm.getElementsByClassName('wpaicg_image_select_all')[0]; 281 this.wpaicgImageSaveBtn.addEventListener('click', function (e) { 282 var items = []; 283 document.querySelectorAll('.wpaicg-image-item input[type=checkbox]').forEach(function (item) { 284 if (item.checked) { 285 items.push(item.getAttribute('data-id')); 286 } 287 }); 288 if (items.length) { 289 that.wpaicgImageConvertBar.style.display = 'block'; 290 that.wpaicgImageConvertBar.classList.remove('wpaicg_error'); 291 that.wpaicgImageConvertBar.getElementsByTagName('small')[0].innerHTML = '0/' + items.length; 292 that.wpaicgImageConvertBar.getElementsByTagName('span')[0].style.width = 0; 293 that.wpaicgImageMessage.innerHTML = ''; 294 wpaicgImageLoadingEffect(that.wpaicgImageSaveBtn); 295 that.save_image(items, 0); 296 } else { 297 alert(wpaicgParams.languages.select_save_error); 298 } 299 }) 300 this.wpaicgImageSelectAll.addEventListener('click', function (e) { 301 if (that.wpaicgImageSelectAll.classList.contains('selectall')) { 302 that.wpaicgImageSelectAll.classList.remove('selectall'); 303 that.wpaicgImageSelectAll.innerHTML = wpaicgSelectAllText; 304 document.querySelectorAll('.wpaicg-image-item input[type=checkbox]').forEach(function (item) { 305 item.checked = false; 306 }) 307 } else { 308 that.wpaicgImageSelectAll.classList.add('selectall'); 309 that.wpaicgImageSelectAll.innerHTML = wpaicgParams.languages.unselect; 310 document.querySelectorAll('.wpaicg-image-item input[type=checkbox]').forEach(function (item) { 311 item.checked = true; 312 }) 313 } 314 }); 315 wpaicgImageForm.addEventListener('submit', function (e) { 316 e.preventDefault(); 317 var form_action = wpaicgImageForm.querySelectorAll('input[name=action]')[0].value; 318 if (form_action === 'wpaicg_image_stable_diffusion') { 319 that.wpaicgNumberImages = wpaicgImageForm.querySelector('select[name=num_outputs]'); 320 } 321 var num_images = parseInt(that.wpaicgNumberImages.value); 322 if (num_images > 0) { 323 var wpaicg_error = false;
324 if (form_action === 'wpaicg_image_stable_diffusion') { 325 var prompt_strength = parseFloat(document.getElementById('prompt_strength').value); 326 var num_inference_steps = parseFloat(document.getElementById('num_inference_steps').value); 327 var guidance_scale = parseFloat(document.getElementById('guidance_scale').value); 328 if (prompt_strength < 0 || prompt_strength > 1) { 329 wpaicg_error = wpaicgParams.languages.prompt_strength 330 } else if (num_inference_steps < 1 || num_inference_steps > 500) { 331 wpaicg_error = wpaicgParams.languages.num_inference_steps 332 } else if (guidance_scale < 1 || guidance_scale > 20) { 333 wpaicg_error = wpaicgParams.languages.guidance_scale 334 } 335 } 336 if (wpaicg_error) { 337 alert(wpaicg_error); 338 } else { 339 const queryString = new URLSearchParams(new FormData(wpaicgImageForm)).toString(); 340 that.wpaicgImageSaveBtn.style.display = 'none'; 341 wpaicgImageLoadingEffect(that.wpaicgImageGenerateBtn); 342 that.wpaicgImageConvertBar.style.display = 'none'; 343 that.wpaicgImageLoading.style.display = 'flex'; 344 that.wpaicgImageGrid.innerHTML = ''; 345 that.wpaicgImageSelectAll.style.display = 'none'; 346 let wpaicgImageError = document.getElementsByClassName('wpaicg-image-error'); 347 if (wpaicgImageError.length) { 348 wpaicgImageError[0].remove(); 349 } 350 if (form_action === 'wpaicg_image_stable_diffusion') { 351 that.image_generator(queryString, 1, num_images, true, form_action); 352 } else { 353 that.wpaicgStartTime = new Date(); 354 that.image_generator(queryString, 1, num_images, false, form_action); 355 } 356 } 357 } else { 358 alert(wpaicgParams.languages.error_image) 359 } 360 return false; 361 }); 362 } 363 } 364} 365window['wpaicgInit'] = wpaicgInit.init(); 366
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.