PageSourceSearch

https://www.iconshock.com/editor/js/packer.js

js iconshock.com collected 2026-10-02 07:49:32 UTC 15,613 bytes, 558 lines download raw bytes

1//este js gestiona las descargas y transformaciones
2
3//se fija qué checkboxes están activados y en base a eso prepara un zip o no
4function AnalyzeDownload(esto)
5{
6	$('.formats input').removeAttr('checked');
7	var goSVG = false;
8	var goPNG = false;
9	var goPSD = false;
10	var goAI = false;
11	var goSRC = false;
12	var goFONT = false;
13	var comprar = false;
14
15	//Firefox fix
16	svgCanvas = document.getElementById("id_svgCanvas");
17	if(svgCanvas != null) {
18		svgCanvas.setAttribute('width', '38px');
19		svgCanvas.setAttribute('height','38px');
20	}
21
22	var pretext = $(esto).html();
23	$(esto).html('<i class="fa fa-spinner fa-pulse fa-fw"></i>');
24	$(esto).attr('disabled','disabled');
25
26	var etiqueta = $(esto).attr('for');
27	console.log(etiqueta);
28	var format_down = $(esto).attr('data-download');
29	console.log(format_down);
30	var px;
31	if(format_down == 'png')
32	{
33		goPNG = true;
34		px = $('#'+etiqueta).val();
35		px = px.replace(/px/g,'');
36		console.log(px);
37	}
38	else
39	{
40		px = "";
41	}
42	//var px = $('#png_size_menu').children('input:checked').val();
43
44	if(format_down == 'psd')
45	{
46		goPSD = true;
47		//$('#myModal').modal('show'); 
48	}
49
50	if(format_down == 'ai')
51	{
52		goAI = true;
53		//$('#myModal').modal('show'); 
54	}
55	//if(goSVG!=true){
56	if(format_down == 'svg')
57	{
58		goSVG = true;
59	}
60	
61	if(format_down == 'src')
62	{
63		goSRC = true;
64	}
65
66	if(format_down == 'font')
67	{
68		goFONT = true;
69	}
70	
71if(goPNG == false)
72{
73	//AJAX
74	var usua = $('#ValidaUSer').val();
75	var icn = $('#id_icon_ind').val();
76	var enl_validar = location.protocol+"//www.iconshock.com/sales/getIcon/"+icn+"/100";
77
78	//$('#id_downloadButton').text('Processing...');
79    //$('#id_downloadButton').attr('disabled','true');
80    $.ajax ({
81        url: enl_validar,
82    }).done(function(response) {
83    		//$('#id_downloadButton').removeAttr('disabled');
84    		//$('#id_downloadButton').text('Get Premium');
85           //alert(response);
86           $(esto).html(pretext);
87		   $(esto).removeAttr('disabled');
88           
89           console.log(response);
90           if (response[0] == false)
91           {
92           		$('#pack-includes-set').empty();
93	        	$('#pack-includes-cat').empty();
94	        	$('#pack-includes-ind').empty();
95	        	
96	        	var setDisplay = response[3].s_set;
97	        	var catDisplay = response[3].s_cat;
98	        	var indDisplay = response[3].s_ind;
99
100	        	for(s=0;s<=setDisplay.length-1;s++) {
101	        		var setName = setDisplay[s].cat_name.toLowerCase()+' - '+setDisplay[s].ind_name.toLowerCase();
102	        		$('#pack-includes-set').append('<li><a target="_blank" href="https://www.iconshock.com/'+setDisplay[s].cat_slug+'/'+setDisplay[s].ind_slug+'/">'+setName+'</a></li>');
103	        	}
104	        	for(s=0;s<=catDisplay.length-1;s++) {
105	        		var setName = catDisplay[s].cat_name.toLowerCase()+' - '+catDisplay[s].ind_name.toLowerCase();
106	        		$('#pack-includes-cat').append('<li><a target="_blank" href="https://www.iconshock.com/'+catDisplay[s].cat_slug+'/'+catDisplay[s].ind_slug+'/">'+setName+'</a></li>');
107	        	}
108	        	for(s=0;s<=indDisplay.length-1;s++) {
109	        		var setName = indDisplay[s].cat_name.toLowerCase()+' - '+indDisplay[s].ind_name.toLowerCase();
110	        		$('#pack-includes-ind').append('<li><a target="_blank" href="https://www.iconshock.com/'+indDisplay[s].cat_slug+'/'+indDisplay[s].ind_slug+'/">'+setName+'</a></li>');
111	        	}
112
113           		$('#ValidaCateg').val(response[1]);
114				$('#ValidaIndus').val(response[2]);
115           		goSVG = false;
116           		goPSD = false;
117           		goAI = false;
118           		goFONT = false;
119
120           		$('#myModal').modal('show');
121           }
122           else
123           {
124           		if(goSVG == true)
125				{
126					PrepareDownloadSVG();
127				}
128				if(goPSD == true)
129				{
130					var formato = 'psd';
131					var rut= location.protocol+"//www.iconshock.com/v2/do_icon_down.php";
132					PrepareDownloadPSD(icn,formato,rut);
133				}
134				if(goAI == true)
135				{
136					var formato = 'ai';
137					var rut= location.protocol+"//www.iconshock.com/v2/do_icon_down.php";
138					PrepareDownloadAI(icn,formato,rut);
139				}
140				if(goSRC == true)
141				{
142					var formato = 'src';
143					var rut= location.protocol+"//www.iconshock.com/v2/do_icon_down.php";
144					PrepareDownloadAI(icn,formato,rut);
145				}
146				if(goFONT == true)
147				{
148					var formato = 'font';
149					var rut = location.protocol+"//www.iconshock.com/v2/do_icon_down.php";
150					PrepareDownloadFONT(icn,formato,rut);
151				}
152           }
153    });
154}
155	if(goPNG == true)
156	{
157		var addon = false;
158		if( $('#addon_svgcanvas').is(":visible") ){
159			addon = true;
160		}
161
162		var icn = $('#id_icon_ind').val();
163
164		var gosvg = false;
165		var ruta = location.protocol+"//www.iconshock.com/v2/class/consulta_formatos.php";
166		var datos = {
167			'icono' : icn,
168			'valid_us' : true
169		}
170		$.ajax ({
171	        data: datos,
172	        url: ruta,
173	        type: 'get',
174	        beforeSend: function( xhr ) {
175
176	 		}
177	    	}).done(function(response) {
178				$(esto).html(pretext);
179		   		$(esto).removeAttr('disabled');	    			
180	    		for(i=0;i<=response.length;i++)
181	    		{
182	    			if(response[i] == 'svg')
183	    			{
184	    				gosvg = true;	
185	    			}
186	    		}
187	    		if(gosvg == true)
188	    		{
189	    			//ToPng(px,px);
190	    			PrepareDownloadPNG(px,addon,gosvg);
191	    		}
192	    		else
193	    		{
194	    			PrepareDownloadPNG(px,addon,gosvg);
195	    		}
196	    	});
197		
198	}
199	
200}
201
202function PrepareDownloadPSD(icon,formato,route) {
203	var rutafinal = location.protocol+'//www.iconshock.com/sales/getIconSrc/'+icon+'/src/'+formato;
204	window.location = rutafinal;
205}
206
207function PrepareDownloadAI(icon,formato,route) {
208	var rutafinal = location.protocol+'//www.iconshock.com/sales/getIconSrc/'+icon+'/src/'+formato;
209	window.location = rutafinal;
210}
211
212function PrepareDownloadSRC(icon,formato,route) {
213	var rutafinal = location.protocol+'//www.iconshock.com/sales/getIconSrc/'+icon+'/src/'+formato;
214	window.location = rutafinal;
215}
216
217function PrepareDownloadFONT(icon,formato,route) {
218	var rutafinal = location.protocol+'//www.iconshock.com/sales/getIconSrc/'+icon+'/src/'+formato;
219	window.location = rutafinal;
220}
221
222function PrepareDownloadPNG(px,addon,formato,returnData = false)
223{
224	var result="";
225	/*if(formato == true)
226	{
227		svgCanvas = document.getElementById("id_svgCanvas");
228
229		svgCanvas.setAttribute('width',px);
230		svgCanvas.setAttribute('height',px);
231		svgCanvas.setAttribute('viewbox',"0 0 "+px+" "+px);
232
233		var currentUrl = window.location;
234	    var urlParameters = currentUrl.pathname.replace("/v2/","");
235	    var urlParametersDiv = urlParameters.split("/");
236	    var urlCategory = urlParametersDiv[0];
237	    var urlIndustry = urlParametersDiv[1];
238
239		var verwidth=px;
240
241		var svgText = document.getElementById("id_svgCanvas").outerHTML;
242
243		var result = ToPng(svgText,px,px);
244		console.log(result);
245		
246		svgCanvas.setAttribute('width',64);
247		svgCanvas.setAttribute('height',64);
248		svgCanvas.setAttribute('viewbox',"0 0 64 64");
249	}*/
250	var verwidth=px;
251	//AJAX
252	var usua = $('#ValidaUSer').val();
253	var icn = $('#id_icon_ind').val();
254	var enl_validar = location.protocol+"//www.iconshock.com/sales/getIcon/"+icn+"/"+verwidth;
255	
256	//$('#id_downloadButton').text('Processing...');
257    //$('#id_downloadButton').attr('disabled','true');
258    $.ajax ({
259        url: enl_validar,
260    }).done(function(response) {
261    		//$('#id_downloadButton').removeAttr('disabled');
262    		//$('#id_downloadButton').text('Get Premium');
263           if (response[0] == true)
264           {
265           		if(formato == true)
266           		{
267           			ToPng(px,px);
268           		}
269           		else
270           		{
271           			ExecuteDownloadPNG(addon,verwidth,formato,result);
272           		}	
273           }
274           else
275           {
276           		$('#ValidaCateg').val(response[1]);
277				$('#ValidaIndus').val(response[2]);
278				$('#myModal').modal('show'); 
279           }
280    });
281
282		
283	$('#image-editor').show();
284	if(verwidth<128){
285	
286	}
287}
288
289function ExecuteDownloadPNG(addon,size,formato,url)
290{
291	var eladdon = $('#id_overlaySvg img').attr('data-addon');
292	if(eladdon != undefined)
293	{
294		var addon_size = $('#id_overlaySvg img').width();
295		var y = $('#id_overlaySvg img').css('top');
296		var x = $('#id_overlaySvg img').css('left');
297
298		x = x.replace(/px/g,'');
299		y = y.replace(/px/g,'');
300
301		var pos = x+'vs'+y+'vs'+addon_size;
302	}
303	else
304	{
305		var pos = "no";
306	}
307
308	if (formato == true)
309	{
310		var nameicon = $('.container-editor-icon-name').text();
311		nameicon = nameicon.replace(/ /g,'_');
312		$('#id_downloadLink').attr('download',nameicon+'.png')
313		$('#id_downloadLink').attr('href',url);
314		document.getElementById('id_downloadLink').click();
315	}
316	else
317	{
318		var icono = $('#id_icon_ind').val();
319		window.location = location.protocol+'//www.iconshock.com/sales/downloadIcon/'+icono+'/'+size+'/'+eladdon+'/'+pos;
320		//window.location = 'http://www.iconshock.com/v2/do_download_png.php?icono='+icono+'&size='+size+'&addon='+addon+'&addon_name='+eladdon;
321	}
322}
323
324function ToPng(width, height)
325{
326	var DOMURL = window.URL || window.webkitURL || window;
327	var canvas = document.getElementById("id_resultCanvas");
328
329	canvas.width = width;
330	canvas.height = height;
331
332	var ctx = canvas.getContext("2d");
333	var data = $('#id_firstSvg').html();
334	var icon = new Image();
335    var svg = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});
336    var url = DOMURL.createObjectURL(svg);
337    $(icon).attr('src',url);
338
339    icon.onload = function () {
340    	ctx.drawImage(icon, 0, 0,width ,height);
341      	DOMURL.revokeObjectURL(url);
342
343      	//icon.src = url;
344
345      	var dataURL = canvas.toDataURL("image/png");
346    	//dataURL = dataURL.replace(/^data:image\/[^;]/, 'data:application/octet-stream');
347    	downloadPNG(dataURL);
348    	//window.location = dataURL;
349
350    	//var nameicon = $('.container-editor-icon-name').text();
351    	//saveImageAsPng(nameicon, dataURL)
352
353    	//
354    	//saveAs(dataURL,nameicon);
355    }
356}
357
358function saveImageAsPng(name,address) {
359    var link = document.createElement('a');
360    link.style = 'position: fixed; left -10000px;'; // making it invisible
361    link.href = 'data:application/octet-stream,' + encodeURIComponent(address); // forcing content type
362    name = name.replace(/ /g,'_');
363    link.download = name.indexOf('.png') < 0 ? name + '.png' : name;
364    /* file extension is very important! */
365    document.body.appendChild(link);
366    link.click();
367    document.body.removeChild(link);
368}
369
370function downloadPNG(url)
371{
372	var nameicon = $('.container-editor-icon-name').text();
373	nameicon = nameicon.replace(/ /g,'_');
374	$('#id_downloadLink').attr('download',nameicon+'.png')
375	$('#id_downloadLink').attr('href',url);
376	document.getElementById('id_downloadLink').click();
377}
378
379
380
381function PrepareDownloadSVG(returnData = false)
382{
383	var icono = $('#id_firstSvg').html();
384	svgCanvas = $('#id_firstSvg').find('svg');
385
386	/*if($(icono + ' g').hasClass('svgmask'))
387	{
388		svgCanvas = document.getElementById("svg_con_addon");
389	}
390	else
391	{
392		svgCanvas = document.getElementById("id_svgCanvas");
393	}*/
394	//console.log(svgCanvas);
395	//var hola = $(svgCanvas).children('.addon_mask_plhld');
396	//var box = hola[0].getAttribute("viewBox");
397	//alert(box);
398
399	//console.log(valueSize[0]+' / '+valueSize[1]);
400	$('#image-editor').hide();
401	svgCanvas[0].setAttribute('width',valueSize[0]);
402	svgCanvas[0].setAttribute('height',valueSize[1]);
403	svgCanvas[0].setAttribute('viewbox',"0 0 "+valueSize[0]+" "+valueSize[1]);
404
405	/*svgCanvas.setAttribute('width','40px');
406	svgCanvas.setAttribute('height','40px');
407	svgCanvas.setAttribute('viewbox',"0 0 40 40");
408	svgCanvas.setAttribute('x',"0px");
409	svgCanvas.setAttribute('x',"0px");*/
410
411	//agrega al canvas, el overlay (si existe) y el whiteOverlay
412	overlaySvg = document.getElementById("id_overlaySvg");
413	//whiteOverlay = document.getElementById("id_whiteOverlay");
414
415	//if(overlaySvg.style.display == 'block')
416	//	return(GiveDownloadSVG(overlayUrl,whiteOverlay.innerHTML,returnData));
417	//else
418		return(GiveDownloadSVG('','',returnData));
419}
420
421function GiveDownloadSVG(overlay,whiteOverlay,returnData = false)
422{
423	var icono = $('#id_firstSvg').html();
424	svgCanvas = $('#id_firstSvg').find('svg');
425	/*if($(icono + ' g').hasClass('svgmask'))
426	{
427		svgCanvas = document.getElementById("svg_con_addon");
428	}
429	else
430	{
431		svgCanvas = document.getElementById("id_svgCanvas");
432	}*/
433	
434	//$('#id_overlayForExport').append(whiteOverlay);
435	$('#id_overlayForExport').append(overlay);
436	
437	$('#id_overlayForExport svg').attr('width',64);
438	$('#id_overlayForExport svg').attr('height',64);
439	$('#id_overlayForExport svg').attr('x',0);
440	$('#id_overlayForExport svg').attr('y',0);
441
442	$('#id_overlayForExport svg').addClass('RemoveMe');
443
444	/*if(overlayActivated)
445	{
446		//cambia el svg por g, porque sino sale mal en illustrator
447		var modifiedOverlay = $('#id_overlayForExport svg')[0].outerHTML;
448
449		modifiedOverlay = modifiedOverlay.replace("<svg","<g");
450		modifiedOverlay = modifiedOverlay.replace("</svg>","</g>");
451
452		//$('#id_svgCanvas').append(modifiedOverlay);
453		Pablo("#id_svgCanvas").append(modifiedOverlay); //hay que usar esto, porque al estar modificando SVG por G... ya deja de ser un SVG totalmente valido
454														//entonces en el append los atributos con mayúsculas pasan a minuscula... y deja de funcionar
455	}*/
456	// crea blob
457	var svgData = $("#id_firstSvg svg")[0].outerHTML;
458	svgData = svgData.replace(/id="id_svgCanvas"/g,'');
459	var svgBlob = new Blob([svgData], {type:"image/svg+xml;charset=utf-8"});
460	var svgUrl = URL.createObjectURL(svgBlob);
461	
462	$('.RemoveMe').remove();
463	
464	$('#image-editor').show();
465	svgCanvas[0].setAttribute('width',64);
466	svgCanvas[0].setAttribute('height',64);
467	svgCanvas[0].setAttribute('viewbox',"0 0 64 64");
468
469	svgCanvas[0].removeAttribute("id");
470	
471	if(returnData)
472		return(svgData);
473	else
474		ExecuteDownloadSVG(svgUrl);
475}
476
477function ExecuteDownloadSVG(svgUrl)
478{
479	var downloadLink = document.createElement("a");
480	downloadLink.href = svgUrl;
481
482	var svgname = $('.container-editor-icon-name').text();
483	svgname = svgname.replace(/ /g,'_');
484
485	downloadLink.download = svgname+".svg";
486	document.body.appendChild(downloadLink);
487	downloadLink.click();
488	document.body.removeChild(downloadLink);
489}
490
491//DESKTOP DOWNLOADS
492function VerifyDownloadDesktop(tipo,ruta) {
493
494    var px = tipo;
495    px = px.replace(/\D/g,'');
496
497    if (px <= 72)
498    {
499        //$('#load_svg_desk').load(ruta);
500
501        $.get(ruta, function(svg){
502            InsertSVG(svg);
503
504            $('#load_svg_desk').html('');
505            $('#load_svg_desk').html(svg);
506            $('#load_svg_desk svg').attr('id','id_svgDesk');
507             var elsvg = $('#id_svgDesk').html(); 
508             
509			 $('#image-editor').show();
510			 IdentSVG(px,px,elsvg);
511        }, 'text');   
512    }
513    //var elsvg = $('#id_svgDesk').attr('id'); 
514}
515
516
517function IdentSVG(w,h,svg,returnData = false) {
518	var svgCanvas = $('#id_resultCanvas');
519
520
521	//$(svgCanvas).css('width',w+'px');
522	//$(svgCanvas).css('height',w+'px');
523	//$(svgCanvas).css('viewbox',"0 0 "+valueSize[0]+" "+valueSize[1]);
524
525	//svgCanvas.scale(w+'px',w+'px');
526	
527	
528
529	//$('#id_resultCanvas').attr('width',64);
530	//$('#id_resultCanvas').attr('height',64);
531	//$('#id_resultCanvas').attr('viewbox',"0 0 64 64");
532	
533	//$('#load_svg_desk').css('width',w+'px');
534	//$('#load_svg_desk').css('height',h+'px');
535
536	//$('#load_svg_desk svg').css('width','100%');
537	//$('#load_svg_desk').attr('viewbox',"0 0 64 64");
538
539    //$('#load_svg_desk svg').attr('id','id_svgDesk');
540    var svgText = $('#load_svg_desk').html();
541	
542    //alert(svgText);
543    //var svgText = document.getElementById("id_svgDesk").outerHTML;
544    var result = ToPngDesk(svgText,w,h);
545
546    //alert(result);
547        if(w<128){
548	if(returnData)
549		return(result);
550	else
551		ExecuteDownloadPNG(result);
552		}
553		else
554		{
555			$('#myModal').modal('show'); 
556		}
557}
558

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.