2295
| <![CDATA[<script type="text/javascript">
var idioma = "pt-BR";
function parseiaPibAnual(data){
var dados = data[0].resultados[0].series[0].serie;
var periodos = Object.keys(dados);
var ultimoPeriodo = periodos[periodos['length']-1];
var anosSomados = {};
var ultimoAno = 1900; //valor dummy
var ultimoTrimestre = '';
var contaTrimestresAno = 1;
for(d in dados){
var ano = parseInt(d.substr(0,4));
/*
agregando anos
*/
if(anosSomados[ano] == undefined){
//cria indice
anosSomados[ano] = 0;
}
anosSomados[ano] += parseFloat(dados[d]);
if(ultimoAno == ano){
++contaTrimestresAno;
}else{
if(contaTrimestresAno < 4){
//se trocou de ano e nao tiver 4 trimestres daquele ano
delete anosSomados[ultimoAno];
}else{
anosSomados[ultimoAno] = (anosSomados[ultimoAno]/1000000);//.toLocaleString($language, { maximumFractionDigits:1,minimumSignificantDigits:2 });
//console.log( anosSomados[ultimoAno]);
}
ultimoAno = ano;
contaTrimestresAno = 1;
}
}
if(contaTrimestresAno < 4){
//se nao tiver 4 trimestres daquele ano
delete anosSomados[ultimoAno];
}
return anosSomados;
}
function abreIndicador(){
// console.log("#indicador-"+hash);
var hash = document.location.hash.substr(1);
if(hash){
if($("#indicador-"+hash).length > 0){
$('html,body').animate({scrollTop: $("#indicador-"+hash).offset().top}, 500);
$("#indicador-"+hash).next().find(".panel").show();
$("#indicador-"+hash).addClass("active");
loadIndicadorData(hash, false);
}
}
}
function gravaEventoAbertura(item){
window.dataLayer.push({
'event': 'detalheIndicador',
'rotulo':window.location.href,
'indicadorSelecionado':item
});
}
function gravaEventoImpressao(item){
window.dataLayer.push({
'event': 'imprimeIndicador',
'rotulo':window.location.href,
'indicadorSelecionado':item
});
}
window.indicadores = {};
function loadIndicadorData(item,isPrint) {
var asincro = $.Deferred();
if(typeof(isPrint) == undefined){
isPrint = false;
}
indicadores[item] = {};
indicadores[item].element = $("#indicador-" + item);
if(indicadores[item].element.hasClass('active') && !isPrint){
//está abrindo
gravaEventoAbertura(item);
}
if(indicadores[item].element.attr("data-loaded") == "true")
return false;
var sidra = indicadores[item].element.attr("data-sidra");
var divulgacao = indicadores[item].element.attr("data-divulgacao");
var tabela = indicadores[item].element.attr("data-tabela");
var categoria = indicadores[item].element.attr("data-categoria");
if (sidra != undefined) {
if(isPrint) {//window.todosGraficos is not undefined
//verifica se é indicador do cidades ou sidra
var dadosGrafico;
if (window.todosGraficos[tabela].length == undefined) {
dadosGrafico = window.todosGraficos[tabela].resultados;
} else {
for (var i = 0; i < window.todosGraficos[tabela].length; i++) {
if(window.todosGraficos[tabela][i].idCategoria == categoria){
dadosGrafico = window.todosGraficos[tabela][i].resultados;
}
}
if (dadosGrafico == undefined) {
dadosGrafico = window.todosGraficos[tabela][0].resultados;
}
}
$.when(drawChart(item, dadosGrafico,isPrint)).then(function(){
asincro.resolve();
});
} else {
$.ajax({
dataType:'json',
url:sidra
}).done(function(data){
if(data[0].res){
//se veio da api de indicadores
//ex: pib per capita
data = data[0].res[0].res;
// titulo = data[0].variavel;
}else{
unidade = data[0].unidade;
// titulo = data[0].variavel;
if(data[0].id == '585'){//PIB
data = parseiaPibAnual(data);
unidade = 'Trilhões de Reais';
}else if(data[0].id == '6784'){//PIB
}else{
data = data[0].resultados[0].series[0].serie;
}
}
$.when(drawChart(item, data,false)).then(function(){
asincro.resolve();
});
});
}
}
if (divulgacao != undefined) {
// var date = new Date();
// date = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
//$.getJSON( "https://servicodados.ibge.gov.br/api/v3/calendario/" + divulgacao + "?qtd=1&de=" + date + "&order=asc", function( data ) {
if(window.calendario[divulgacao]){
var data = window.calendario[divulgacao].data_divulgacao.split(" ")[0];
if(idioma == "en-GB"){
dataQuebrada = data.split("/");
data = dataQuebrada[1] + "/" + dataQuebrada[0] + "/" + dataQuebrada[2];
}
indicadores[item].element.next().find(".data-divulgacao").append($("<p>", {"class": "metadado-topico", "text": "Próxima Divulgação:"}));
indicadores[item].element.next().find(".data-divulgacao").append($("<p>", {"text": data}));
}
//});
}
indicadores[item].element.attr("data-loaded", "true");
return asincro;
}
function limpaTabelasVazias(){
$(".indicadores-agropecuarios").find('.dozemeses').each(function(){$(this).css('color','transparent')});
$(".indicadores-agropecuarios").find('.ano').each(function(){$(this).css('color','transparent')});
$(".indicadores-sociais").find('.dozemeses').each(function(){$(this).css('color','transparent')});
$(".indicadores-sociais").find('.ano').each(function(){$(this).css('color','transparent')});
$(".indicadores-agropecuarios").find('.dozemeses').each(function(){$(this).html(' ;')});
$(".indicadores-agropecuarios").find('.ano').each(function(){$(this).html(' ;')});
$(".indicadores-sociais").find('.dozemeses').each(function(){$(this).html(' ;')});
$(".indicadores-sociais").find('.ano').each(function(){$(this).html(' ;')});
}
function appendPrintButtons(){
$('.indicadores-tabela').each(function(i,e){
var g = e.getAttribute('data-group');
$(e).parents(".indicadores-table-container").find('.imprimir').prop("disabled", false);
})
}
$(document).ready(function(){
changeColspan();
});
$(window).on("load",function(){
abreIndicador();
limpaTabelasVazias();
if(Worker){
var calendarIndex = [];
window.calendario = [];
var date = new Date();
date = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
var calendarIndex = "9256|9258|9260|9282|9270|9300|9088|9294|9227|9229|9173|17270|9109|9107|9216|9117";
var w = new Worker("/templates/novo_portal_base/js/worker.js");
w.postMessage({'controller':'indicadores','url':'https://servicodados.ibge.gov.br/api/v1/portal/indicadores?periodo=-12'});
w.postMessage({'controller':'calendario','url':'https://servicodados.ibge.gov.br/api/v3/calendario/'+calendarIndex+'?qtd=1&de='+date+'&order=asc'});
w.addEventListener("message",function(event){
if(event.data.controller == 'indicadores'){
window.todosGraficos = JSON.parse(event.data.data);
}else if(event.data.controller == 'calendario'){
var calendario = JSON.parse(event.data.data);
//console.log(JSON.parse(event.data.data));
for(var i = 0; i < calendario.items.length; i++){
window.calendario[calendario.items[i].produto_id] = calendario.items[i];
}
}
appendPrintButtons();
});
}
});
$(window).on("resize",function(){
changeColspan();
});
function changeColspan(){
//muda o colspan pra tabela renderizar corretamente
if(!$('.desktop-tablet-only').first().is(":visible")) {
$('.table-accordion-panel td').attr('colspan', 2);
} else {
$('.table-accordion-panel td').attr('colspan', 5);
}
}
function printTable(section) {
gravaEventoImpressao(section);
$("#printLoad").show();
$("body").addClass("print");
$(".indicadores-tabela").not("." + section).addClass("not-printable");
var items = $(".indicadores-tabela." + section).find(".table-accordion:not(.active)");
var length = items.length;
if(length > 0 ) //ainda falta abrir algum
{
items.each(function(i, e){
$(e).next().find(".panel").show();
$(e).addClass("active");
$.when(loadIndicadorData($(e).attr("id").split("indicador-")[1],true)).then(function(){
if(i === (length-1)){//se for ultimo item
window.print();
$("body").removeClass("print");
}
});
});
}else{//todos os indicadores já estão abertos
window.print();
$("body").removeClass("print");
}
}
function drawChart(item, data,isPrint) {
var asincro = $.Deferred();
var unidade,titulo;
var periodicidade = (indicadores[item].element.next().find(".data-periodicidade").attr('data-periodicidade-grafico')).toLowerCase();
var titulo = indicadores[item].element.attr('data-grafico-titulo');
var fonte = indicadores[item].element.attr('data-fonte');
var textoExport = indicadores[item].element.find(".nonsprite").text();
var unidade = (indicadores[item].element.next().find(".indicador-metadado").attr('data-unidade'));
var chartData = [];
var decimais = "00";
var erros = ['99999999999999', '99999999999998', '99999999999997', '99999999999996', '99999999999995', '99999999999992', '99999999999991'];
for (var dado in data) {
var currentData = {"periodo": "", "valor": 0};
currentData.periodo = getPeriodo(dado, periodicidade, "pt-BR");
var valorAtual = data[dado];
if( erros.indexOf(data[dado]) == -1 && valorAtual != "..." ) {
//limitando valor maximo de decimais para 3
decimais = valorAtual.toString().split(".").length > 1 ? (valorAtual.toString().split(".")[1].length > 3 ? "000" : ("000").substr(0, valorAtual.toString().split(".")[1].length)) : "";
currentData.valor = parseFloat(valorAtual);
}
chartData.push(currentData);
}
if(chartData.length != 0) {
var container = indicadores[item].element.next().find(".indicador-grafico .container-grafico")[0];
var width = container.width;
if(!isPrint){
am4core.useTheme(am4themes_animated);
}
if(idioma == "pt-BR"){
var separadores = {
"_decimalSeparator": ",",
"_thousandSeparator": ".",
};
} else {
var separadores = {
"_decimalSeparator": ".",
"_thousandSeparator": ",",
};
}
var labelImprimir = idioma == "pt-BR" ? "Imprimir" : "Print";
// Create chart
indicadores[item].chart = am4core.createFromConfig({
"data": chartData,
"language": {
"locale": separadores
},
"logo":{
"align":"right"
},
"titles": [{
"text": titulo,
"originalText": titulo,
"fontSize": 13,
"marginBottom": 30,
"align": "left",
"fontWeight": "700",
"wrap": true,
"paddingRight": 50,
"exportable":true
}],
"numberFormatter": {
"numberFormat": "#,###."+decimais
},
"xAxes": [{
"type": "CategoryAxis",
"dataFields": {
"category": "periodo"
},
"renderer": {
"minGridDistance": 10,
"grid": {
"disabled": true
},
"ticks": {
"disabled": false,
"strokeOpacity": .3
},
"labels": {
"paddingTop": 10,
"paddingRight": 5,
"fontSize": 11,
"horizontalCenter": "right",
"rotation": -45
}
},
"cursorTooltipEnabled": false
}],
"yAxes": [{
"type": "ValueAxis",
"renderer": {
"grid": {
"stroke": "#000000"
}
},
"fontSize": 11,
"cursorTooltipEnabled": false
}],
"series": [{
"type": "LineSeries",
"dataFields": {
"valueY": "valor",
"categoryX": "periodo"
},
"bullets": [{
"children": [{
"type": "Circle",
"width": 6,
"height": 6,
"horizontalCenter": "middle",
"verticalCenter": "middle",
"fill": "#000000",
"strokeWidth": 0
}]
}],
"stroke": "#000000",
"strokeWidth": "2",
"tooltipText": "{categoryX}:\n [bold]{valueY}[/] "+unidade,
"tooltip": {
"pointerOrientation": "vertical",
"getFillFromObject": false,
"background": {
"cornerRadius": 3,
"strokeWidth": 1,
"stroke": "#000000",
"fillOpacity": 0.9,
"fill": "#f8f8f8"
},
"label": {
"paddingLeft": 7,
"paddingRight": 7,
"textAlign": "left",
"textValign": "middle",
"fontSize": 11,
"fill": "#000000"
}
},
}],
"responsive": {
"enabled": true,
"useDefault": false
},
"events":{
"ready":function(ev){
asincro.resolve();//terminou de carregar
}
},
"exporting":{
"filePrefix":slugify(textoExport),
"menu":{
"align":"right",
"verticalAlign":"top",
"items":[{
"label":"...",
"menu":[
{"type":"csv","label":"CSV"},
{"type":"print","label":labelImprimir}
]
}]
},
//altera titulo para exportacao
"events":{
"exportstarted": function(ev) {
var ch = ev.target.sprite;
ch.children.values[0].titles.values[0].text = textoExport+" | "+titulo;
},
"exportfinished": function(ev) {
var ch = ev.target.sprite;
ch.children.values[0].titles.values[0].text = ch.children.values[0].titles.values[0].originalText;
}
},
}
}, container, am4charts.XYChart);
//Fonte amcharts
window.label = indicadores[item].chart.createChild(am4core.Label);
label.text = fonte;
label.fontSize = 10;
label.align = "left";
label.fill = "#9e9e9e";
label.marginTop = 5;
label.marginBottom = 0;
label.wrap = true;
label.paddingRight = 50;
//Logo amcharts
indicadores[item].chart.logo.align = "right";
indicadores[item].chart.logo.dy = -15;
indicadores[item].chart.logo.scale = .8;
indicadores[item].chart.logo.align = 'right';
indicadores[item].chart.cursor = new am4charts.XYCursor();
} else {
indicadores[item].element.removeClass("has-chart");
}
return asincro;
}
window.onafterprint = function(){
$(".indicadores-tabela").removeClass("not-printable");
$(".table-accordion.active").next().find(".panel").hide();
$(".table-accordion.active").removeClass("active");
$("#printLoad").fadeOut();
}
</script>]]>
|