varUtilidades=(function(utils){utils.datasSobrepostas=function(inicialPrimeiro,finalPrimeiro,inicialSegundo,finalSegundo){return(inicialPrimeiro<=finalSegundo)&&(finalPrimeiro>=inicialSegundo);};utils.incluiMarcoTemporal=function(dataInicial,dataFinal,marco){returnmarco>dataInicial&&marco<=dataFinal;};utils.ordenarPorDataInicial=function(linha1,linha2){returnlinha1[0]-linha2[0];};utils.compactarMatriz=function(linha){returnlinha!==null;};// https://toddmotto.com/understanding-javascript-types-and-reliable-type-checking/utils.isDate=function(elem){returnObject.prototype.toString.call(elem).slice(8,-1)==='Date';};utils.diaSeguinte=function(d){varnovaData=newDate(d.getTime());novaData.setDate(d.getDate()+1);returnnovaData;};utils.diaAnterior=function(d){varnovaData=newDate(d.getTime());novaData.setDate(d.getDate()-1);returnnovaData;};utils.ano=function(d){returnparseInt(Utilities.formatDate(d,'UTC','yyyy'),10);};utils.mes=function(d){returnparseInt(Utilities.formatDate(d,'UTC','MM'),10);};utils.copiarMatriz=function(arr){returnarr.map(function(item){returnitem;});};utils.validarPeriodos=function(periodos){if(!Array.isArray(periodos)){thrownewError('Dado de entrada "periodos" não é matriz.');}periodos=periodos.filter(function(periodo){returnperiodo[0]!==""&&periodo[1]!=="";});periodos.forEach(function(periodo,idx){if(!utils.isDate(periodo[0])||!utils.isDate(periodo[1])){thrownewError('A linha '+(idx+1)+' da matriz fornecida contém uma data inválida.');}if(periodo[0]>periodo[1]){thrownewError('Na linha '+(idx+1)+' da matriz fornecida a data inicial é maior que a final.');}});returnperiodos;};utils.validarMarcosTemporais=function(marcosTemporais){if(!Array.isArray(marcosTemporais)){thrownewError('Dado de entrada "marcosTemporais" não é matriz.');}marcosTemporais=marcosTemporais.map(function(linha){returnlinha[0];}).filter(function(marcoTemporal){returnutils.isDate(marcoTemporal);}).sort(function(data1,data2){returndata1-data2;});returnmarcosTemporais;};returnutils;})(Utilidades||Object.create(null));