{"version":3,"sources":["compability.js","app.module.js","components/components.module.js","core/core.module.js","layout/layout.module.js","login/login.module.js","matricula/matricula.module.js","recadastramento/recadastramento.module.js","senha/senha.module.js","components/file-input/file-input.module.js","components/mps-alert/mps-alert.module.js","components/mps-auditoria/mps-auditoria.module.js","components/mps-auto-focus/mps-auto-focus.module.js","components/mps-check/mps-check.module.js","components/mps-confirm/mps-confirm.module.js","components/mps-email/mps-email.module.js","components/mps-error-alert/mps-error-alert.module.js","components/mps-ferramentas/mps-ferramentas.module.js","components/mps-hover/mps-hover.module.js","components/mps-inicializando/mps-inicializando.module.js","components/mps-isolate-form/mps-isolate-form.module.js","components/mps-ordenacao/mps-ordenacao.module.js","components/mps-paginacao/mps-paginacao.module.js","components/mps-popover/mps-popover.module.js","components/seguranca/seguranca.module.js","components/blocks/exception/exception.module.js","components/blocks/logger/logger.module.js","components/blocks/editor/editor.module.js","components/blocks/router/router.module.js","components/blocks/storage/storage.module.js","components/blocks/toast-interceptor/toast-interceptor.module.js","app.config.js","core/core.config.js","core/core.constants.js","layout/layout.route.js","layout/master-page.controller.js","layout/menu.controller.js","layout/pagina-inicial.controller.js","login/login-listener.service.js","login/login.controller.js","login/login.route.js","matricula/matricula.service.js","recadastramento/recadastramento-editar.controller.js","recadastramento/recadastramento-listar.controller.js","recadastramento/recadastramento.route.js","recadastramento/recadastramento.service.js","senha/senha-listener.service.js","senha/senha.controller.js","senha/senha.route.js","components/database/database.service.js","components/file-input/file-input.directive.js","components/mps-alert/mps-alert.controller.js","components/mps-alert/mps-alert.directive.js","components/mps-auto-focus/mps-auto-focus.directive.js","components/mps-calendario/datepicker.custom.js","components/mps-check/mps-check.controller.js","components/mps-check/mps-check.directive.js","components/mps-confirm/mps-confirm-modal.controller.js","components/mps-confirm/mps-confirm.directive.js","components/mps-email/mps-lista-email.controller.js","components/mps-email/mps-lista-email.directive.js","components/mps-error-alert/mps-error-alert.controller.js","components/mps-error-alert/mps-error-alert.directive.js","components/mps-ferramentas/mps-ferramentas.service.js","components/mps-hover/mps-hover-control.directive.js","components/mps-hover/mps-hover.directive.js","components/mps-inicializando/mps-inicializando.directive.js","components/mps-isolate-form/mps-isolate-form.directive.js","components/mps-ordenacao/mps-ordenacao-coluna.controller.js","components/mps-ordenacao/mps-ordenacao-coluna.directive.js","components/mps-ordenacao/mps-ordenacao.controller.js","components/mps-ordenacao/mps-ordenacao.directive.js","components/mps-paginacao/mps-paginacao.config.js","components/mps-paginacao/mps-paginacao.service.js","components/mps-popover/mps-popover-close-others.directive.js","components/mps-typeahead-popup/typeahead-trigger.directive.js","components/permissao-perfil/permissao-perfil.directive.js","components/seguranca/seguranca-auth-events-listener.service.js","components/seguranca/seguranca-auth.service.js","components/seguranca/seguranca-http-interceptor.service.js","components/seguranca/seguranca.config.js","components/seguranca/seguranca.constants.js","components/seguranca/seguranca.service.js","login/modal/perfis-modal.controller.js","matricula/components/matricula.selecao.controller.js","matricula/components/matricula.selecao.directive.js","recadastramento/formulario/recadastramento-formulario-editar.controller.js","recadastramento/formulario/recadastramento-formulario.service.js","recadastramento/modal/recadastramento-stats-modal.controller.js","components/blocks/exception/exception-handler.provider.js","components/blocks/exception/exception.js","components/blocks/logger/logger.js","components/blocks/editor/config.js","components/blocks/router/router-helper.provider.js","components/blocks/storage/storage.js","components/blocks/toast-interceptor/toast-auth-events-interceptor.service.js","components/blocks/toast-interceptor/toastinterceptor.config.js","components/mps-auditoria/icon/mps-auditoria-icon.directive.js","components/mps-auditoria/button/mps-auditoria-button.directive.js","components/mps-paginacao/mps-paginacao-info/mps-paginacao-info.directive.js","recadastramento/formulario/impressao/recadastramento-formulario-impressao.js","recadastramento/formulario/pdf-modals/anexo-pdf-modal.controller.js","recadastramento/formulario/pdf-modals/visualizar-pdf-modal.controller.js"],"names":["Array","prototype","indexOf","searchElement","this","TypeError","t","Object","len","length","n","arguments","Number","Infinity","Math","floor","abs","k","max","window","saveAs","navigator","msSaveBlob","b","webkitSaveAs","mozSaveAs","msSaveAs","URL","webkitURL","blob","name","url","createObjectURL","document","createElement","a","setAttribute","clickEvent","createEvent","initMouseEvent","event","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","dispatchEvent","open","angular","module","initLogin","loginListener","inicializar","run","$inject","appRun","routerHelper","$rootScope","$state","AUTH_EVENTS","notFound","go","notAuthorized","getStates","state","config","templateUrl","title","otherwise","configureStates","$on","configure","$httpProvider","$logProvider","routerHelperProvider","exceptionHandlerProvider","$uibModalProvider","$uibTooltipProvider","uibPaginationConfig","$breadcrumbProvider","blockUIConfig","toastrConfig","debugEnabled","appErrorPrefix","docTitle","appTitle","extend","toastrOptions","options","animation","autoBlock","nextText","previousText","setOptions","includeAbstract","prefixStateName","defaults","headers","get","core","timeOut","positionClass","preventDuplicates","preventOpenDuplicates","closeButton","progressBar","extendedTimeOut","value","constant","number","versionDescriprion","controller","controllerAs","ncyBreadcrumb","label","abstract","template","data","requireAuthorization","MasterPageController","vm","navline","MenuController","seguranca","$scope","adicionarItemMenuGerencia","jaAdicionado","itens","find","i","autenticado","verificarPermissaoPerfil","push","text","textClass","class","filter","item","autorizado","visible","authenticated","entrar","sair","logout","usuario","username","esqueciSenha","isNavCollapsed","$watch","PaginaInicialController","version","descriptionType","versionType","escutar","notAuthenticated","loginSuccess","args","direcionarPara","direcionarParametros","params","service","factory","LoginCtrl","$uibModal","segurancaAuthService","confirmar","busy","verificarAcesso","senha","then","response","temporaryUser","token","grupoPerfis","gruposPerfis","realizarLogin","matricula","perfil","nome","login","abrirModalPerfis","d","$broadcast","loginFailed","podeConfirmar","modalInstance","backdrop","size","resolve","result","$value","clearTemporaryUser","matriculaService","$http","$q","buscarItem","id","req","method","api","deferred","defer","success","status","promise","buscarAutoComplete","recadastramentoID","codigoOuDescricao","skip","take","order","$skip","$take","$order","RecadastramentoEditarController","recadastramentoService","toastr","mpsFerramentasService","activate","undefined","periodoReciboDataInicial","Date","periodoReciboDataFinal","backup","copy","salvar","form","$valid","temFases","atualizar","cadastrar","salvarFase","validarFases","fasesSubmitted","faseID","fases","dataInicial","faseDataInicial","toISOString","dataFinal","faseDataFinal","motivo","motivoFase","adicionarFase","limparCamposFase","isCollapsed","fase","getRandomNumber","editarFase","excluirFase","spliceObject","error","periodoValido","temIntersticio","menorData","maiorData","x","dataInicialX","dataFinalX","setDate","getDate","validarDataFinal","dataFormatada","dataSemHorario","getFullYear","getMonth","houveAlteracao","equals","naoPodeSalvar","$submitted","cancelar","toggleFormFases","corrigirDiaReciboDataFinal","naoPodeAbrirFormularioExcecao","abrirFormularioExcecao","ehExcecao","podeMostrarBotaoCriarExcecao","isDefined","alertaDiasRegularizacao","valorDias","warning","RecadastramentoListarController","mpsPaginacaoService","recadastramentoFormularioService","buscar","podeAuditar","todosItens","registros","listaItens","totalItens","total","filtroRecadastramento","parseInt","obterListaFormularios","inicializado","editarItem","editarFormulario","formularioID","paginaAtual","recadastramentoSomenteLeitura","situacaoID","visualizarFormulario","recadastramento","ehConsulta","matriculaConsulta","auditarFormulario","ehAuditoria","excluirItem","excluir","podeEditar","podeEditarRecadastramento","recadastramentoEmAndamento","validarPrazoRecadastramentoRecusado","prazoFinal","formularioUltimaAtualizacao","addDays","diasRegularizacao","moment","isSameOrAfter","podePaginar","temItens","temPaginacao","mostrarItem","index","array","getSkip","page","aplicarFiltrosAvancados","filtrarAvancadoSubmitted","obterFormulariosFiltroStatus","filtroStatus","funcionario","filtarAvancado","filtroPeriodoReciboDataInicial","filtroPeriodoReciboDataFinal","filtroPeriodoDataInicial","menorDataInicialFases","filtroPeriodoDataFinal","maiorDataFinalFases","perfilGerencia","situacao","statusDescricao","corrigirHoraDataFinal","enviarEmails","msg","join","filtro","getOrder","listarFormulariosRecadastramento","listaFormularios","obterMatriculaBeneficiarioFormulario","formularios","forEach","formulario","beneficiario","detalhes","terceiro","obterRecadastramentoStats","stats","camposOrdenacao","itensAuditoria","listaStatus","listaSituacoes","maximoPaginasMostradas","getMaxSizePagination","getTake","days","date","valueOf","parent","declaroMudancaPlano","declaroDespesas","declaroBeneficiarios","exibeItem","previousParams","buscarAuditoria","post","put","senhaListener","SenhaCtrl","databaseService","gerarBase","criarTabelas","drop","create","execute","fileInput","$timeout","link","scope","element","attrs","ngModel","getModelValue","$modelValue","modelValueChanged","getElementById","bind","changeEvent","$apply","file","target","files","valido","maxSize","accept","aceito","replace","type","startsWith","fileName","fileType","lastModifiedDate","reader","FileReader","readAsDataURL","onload","loadEvent","$setViewValue","fetch","res","loadBlob","blobUrl","directive","restrict","require","MPSAlertController","validarTipoAviso","tipo","validarTipoIcone","icone","tipoAviso","tipoIcone","mpsAlert","transclude","bindToController","mensagem","mensagemHtml","dismissible","mpsAutoFocus","$element","$attrs","$eval","newValue","focus","formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","datepickerCustomMode","minMode","maxMode","showWeeks","startingDay","yearRange","minDate","maxDate","shortcutPropagation","showAdicionalWeek","firstDisplayedDate","lastDisplayedDate","monthSelected","minWeekExcess","allowMoveDisabledDate","messageMoveDisabledMin","messageMoveDisabledMax","multipleSelect","selectedDatesList","$parse","$interpolate","$log","dateFilter","datepickerCustomConfig","$datepickerCustomSuppressError","self","ngModelCtrl","noop","extensions","refreshView","activeDate","setSeconds","getSeconds","removeSelectedDate","move","direction","modes","key","$parent","uniqueId","$id","random","initDate","$isEmpty","$invalid","isActive","dateObject","compare","activeDateId","uid","init","ngModelCtrl_","$render","render","$viewValue","isValid","isNaN","_refreshView","$setValidity","isDisabled","activeDay","createDateObject","format","model","validSelect","allowDesselectDay","isSelectedDate","selected","disabled","current","customClass","dateDisabled","mode","split","arr","arrays","splice","select","dt","selectDate","setFullYear","allowMove","year","step","years","month","months","allow","toggleMode","keys","13","32","33","34","35","36","37","38","39","40","focusElement","keydown","evt","which","preventDefault","stopPropagation","handleKeyDown","indexSelected","onChangedList","getDaysInMonth","DAYS_IN_MONTH","getISO8601WeekNumber","checkDate","getDay","time","getTime","setMonth","round","ctrl","getDates","startDate","dates","getLastDayDisplayed","lastDayDisplayed","setHours","setMinutes","firstDayOfMonth","today","numeroDias","difference","numDisplayedFromPreviousMonth","firstDate","numeroSemanas","primeiraData","secondary","labels","j","abbr","full","rows","weekNumbers","thursdayIndex","numWeeks","curWeek","date1","date2","min","getStartingYear","range","yearpickerCustomInit","start","ctrls","datepickerCustomCtrl","daypickerCustomCtrl","monthpickerCustomCtrl","datepickerCustomPopup","datepickerCustomPopupTemplateUrl","datepickerCustomTemplateUrl","html5Types","datetime-local","currentText","clearText","closeText","closeOnDateSelection","appendToBody","showButtonBar","onOpenFocus","$compile","$document","$position","dateParser","datepickerCustomPopupConfig","cameltoDash","string","$1","toLowerCase","parseDate","viewValue","isNumber","isDate","isString","parse","dateFormat","validator","modelValue","ngRequired","documentClickBind","popup","$popup","dpContainsTarget","contains","popupContainsTarget","isOpen","inputKeydownBind","popupEl","datepickerCustomEl","cache","isHtml5DateInput","watchData","_ngModel_","datepickerCustomAppendToBody","uibDatepickerCustomPopup","$observe","oldValue","newDateFormat","Error","attr","ng-model","ng-change","template-url","children","datepickerCustomOptions","option","getAttribute","assign","oldvalue","isFunction","$formatters","$$parserName","$validators","$parsers","unshift","$viewChangeListeners","remove","append","after","$$phase","unbind","getText","dateSelection","val","close","position","offset","top","prop","MPSCheckCtrl","click","updateModel","estilo","marcado","desmarcado","tipoCheck","extraClasse","extraClass","checked","mpsCheck","idCheck","ngChange","MPSConfirmController","$uibModalInstance","dismiss","mpsConfirm","priority","e","message","mpsConfirmValidation","valid","stopImmediatePropagation","ngClick","MPSListaEmailController","novoEmail","email","mostrarFormulario","adicionarEmail","removerEmail","temEmail","mpsListaEmail","MPSErrorAlertController","mpsErrorAlert","getColumn","matrix","columnName","column","timeRegex","obj","mpsHoverControl","replice","hoverAdicional","mpsHover","mpsHoverEnabled","on","mpsInicializando","isolateForm","elm","ctrlCopy","$removeControl","isolatedFormCtrl","validationToken","control","$setDirty","removeClass","addClass","$dirty","$pristine","MPSOrdenacaoColunaController","ordem","parentCtrl","camposConcatenados","orderBy","mpsOrdenacaoColuna","ordemInicial","compile","tElement","tAttrs","pre","addColuna","MPSOrdenacaoController","coluna","tipoRetorno","campos","metodoAtualizacao","modoRetorno","filtros","trim","mpsOrdenacao","getTakeAutoComplete","takeAutoComplete","getMinLengthAutoComplete","minLengthAutoComplete","getMinLengthAutoCompleteBigTable","minLengthAutoCompleteBigTable","getMinLengthAutoCompleteSmallTable","minLengthAutoCompleteSmallTable","maxSizePagination","getSkipAutoComplete","mpsPopoverCloseOthers","mpsPopoverCloseOthersParent","$emit","ev","typeaheadTrigger","triggerFlag","typeaheadText","permissaoPerfil","segurancaAuthEventsListener","onStateChangeStart","toState","toParams","recurso","permission","String","resource","dataservice","$window","perfilAcesso","password","credenciais","btoa","Authorization","X-Requested-With","segurancaHttpInterceptorService","$injector","apiRegExp","request","test","security","when","responseError","eventoConhecido","401","403","404","419","sessionTimeout","500","serverError","otherError","reject","httpConfig","interceptors","initRoutes","SELECIONAR","INSERIR","MODIFICAR","EXCLUIR","perfilGeral","logoutSuccess","storage","getUser","user","stored","getItem","isObject","permissionToken","decodeJWT","conteudo","unique_name","setUser","setItem","codedToken","expr","parts","exec","decodedToken","cabecalho","fromJson","atob","assinatura","exp","[object Object]","userMatricula","callback","getPermission","tokenPermissoes","resourcePermissions","hasPermission","level","permissao","PerfisModalController","obterGrupos","grupos","perfis","map","substring","lastIndexOf","fechar","MatriculaSelecaoController","trigger","itemSelecionado","triggerText","recadastramentoId","criarComboAutoComplete","registro","comboText","autoCompleteSelecionado","updateValue","onBlur","flagBlur","naoEncontrado","pesquisando","matriculaSelecao","isUndefined","autoFocus","RecadastramentoFormularioEditarController","promises","buscarFormularioParaAuditoria","anexos","buscarMatriculasAssociadas","all","calcularDiferenca","calcularTotais","buscarFormularioExcecao","matriculaPrincipal","matriculasAssociadas","funcionarios","m","removerValoresDuplicados","totaisBeneficiarios","setValorInicialDeclaracoes","buscarDadosRecadastramento","prontoParaHomologacao","temAnexo","seguradora","instituicao","mesAno","valorContrato","valorInformado","command","retornarEstadoAnterior","modelState","itemAnterior","abrirModalAnexoPdf","permissaoAuditoria","podeMarcarHomologacao","verificarDeclaracoesMarcadas","validacaoEmAndamento","validacao","aprovadoRecusado","podeConfirmarValidacao","motivoRecusa","existeMotivosRecusa","motivosRecusa","foiRecusado","confirmarValidacao","novoStatus","complementacao","salvarValidacao","replicate","diferenca","excedente","deficit","totalInformado","totalContrato","totalDeficit","totalExcedente","informado","contrato","mostrarValorDivergente","input","style","backgroundColor","podeMarcarDeclaracoes","podeImprimir","abrirModalParaImpressao","displayName","arquivo","formatarDatasFormulario","ultimaAtualizacao","formatarData","downloadAnexo","anexo","idArquivo","responseType","formatarMesAno","dataTime","dataRecusa","RecadastramentoStatsController","$get","$provide","decorator","extendExceptionHandler","$delegate","exceptionHandler","logger","exception","cause","errorData","provider","catcher","thrownDescription","newMessage","description","info","warn","showToasts","log","ConfigEditor","DecorateCustomCommandsEditor","DecorateCustomClasses","taRegisterTool","taOptions","display","action","$editor","wrapSelection","listener","toolbar","taTools","p","iconclass","buttontext","$locationProvider","$stateProvider","$urlRouterProvider","RouterHelper","$location","states","otherwisePath","sameStateUrl","resolveAlways","isArray","sameAs","urls","slice","hasOtherwise","$match","handleRoutingErrors","fromState","fromParams","handlingStateChangeError","stateCounts","errors","destination","loadedTemplateUrl","statusText","updateDocTitle","changes","routeTitle","html5Mode","hashPrefix","cfg","SessionStorage","localStorage","clear","removeItem","hasKey","toJson","defineProperty","enumerable","toastAuthEventsInterceptor","iniciarService","extractMessage","rejection","ExceptionMessage","Message","mpsAuditoriaIcon","dados","mpsAuditoriaButton","placement","ngDisabled","mpsPaginacaoInfo","totalPaginas","RecadastramentoFormularioImpressaoController","ready","print","onafterprint","AnexoPdfModalController","$sce","downloadArquivo","obterBlob","nomeArquivo","download","href","visualizarArquivo","fileURL","content","pdf","trustAsResourceUrl","abrirModalPdf","adicionarArquivo","temArquivoSelecionado","limparArquivo","excluirArquivo","obterClasse","VisualizarPdfModalController"],"mappings":"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","file":"app-bundle.min.js","sourcesContent":["// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf\r\nif (!Array.prototype.indexOf) {\r\n Array.prototype.indexOf = function (searchElement /*, fromIndex */) {\r\n \"use strict\";\r\n if (this === null) {\r\n throw new TypeError();\r\n }\r\n var t = Object(this);\r\n var len = t.length >>> 0;\r\n if (len === 0) {\r\n return -1;\r\n }\r\n var n = 0;\r\n if (arguments.length > 1) {\r\n n = Number(arguments[1]);\r\n if (n != n) { // shortcut for verifying if it's NaN\r\n n = 0;\r\n } else if (n !== 0 && n != Infinity && n != -Infinity) {\r\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\r\n }\r\n }\r\n if (n >= len) {\r\n return -1;\r\n }\r\n var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);\r\n for (; k < len; k++) {\r\n if (k in t && t[k] === searchElement) {\r\n return k;\r\n }\r\n }\r\n return -1;\r\n };\r\n}\r\n// https://gist.github.com/MrSwitch/3552985\r\nwindow.saveAs = (window.saveAs || ((window.navigator.msSaveBlob ? function (b, n) { return window.navigator.msSaveBlob(b, n); } : false) || window.webkitSaveAs || window.mozSaveAs || window.msSaveAs || (function () {\r\n // URL's\r\n window.URL = (window.URL || window.webkitURL);\r\n if (!window.URL)\r\n return false;\r\n\r\n return function (blob, name) {\r\n var url = URL.createObjectURL(blob);\r\n // Test for download link support\r\n if (\"download\" in document.createElement('a')) {\r\n var a = document.createElement('a');\r\n a.setAttribute('href', url);\r\n a.setAttribute('download', name);\r\n // Create Click event\r\n var clickEvent = document.createEvent(\"MouseEvent\");\r\n clickEvent.initMouseEvent(\"click\", true, true, window, 0,\r\n\t\t\t\tevent.screenX, event.screenY, event.clientX, event.clientY,\r\n\t\t\t\tevent.ctrlKey, event.altKey, event.shiftKey, event.metaKey,\r\n\t\t\t\t0, null);\r\n // dispatch click event to simulate download\r\n a.dispatchEvent(clickEvent);\r\n }\r\n else {\r\n // fallover, open resource in new tab.\r\n window.open(url, '_blank', '');\r\n }\r\n };\r\n})()));","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app', [\r\n 'app.layout',\r\n 'app.login',\r\n 'app.senha',\r\n 'app.components',\r\n 'app.recadastramento',\r\n 'app.matricula'\r\n ]);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.components', [\r\n 'app.seguranca',\r\n 'blocks.editor',\r\n 'blocks.exception',\r\n 'blocks.logger',\r\n 'blocks.router',\r\n 'blocks.toastInterceptor',\r\n 'mps.alert',\r\n 'mps.auditoria',\r\n 'mps.autoFocus',\r\n 'mps.check',\r\n 'mps.datepickerCustom',\r\n 'mps.errorAlert',\r\n 'mps.ferramentas',\r\n 'mps.hover',\r\n 'mps.inicializando',\r\n 'mps.ordenacao',\r\n 'mps.popover',\r\n 'mps.confirm',\r\n 'mps.paginacao',\r\n 'mps.fileInput',\r\n 'mps.isolateForm'\r\n ]);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.core', [ \r\n 'angular-loading-bar',\r\n 'angular.filter',\r\n 'angular-clipboard',\r\n 'app.components',\r\n 'blockUI',\r\n 'ncy-angular-breadcrumb',\r\n 'ngAnimate', \r\n 'toastr',\r\n 'ngMessages',\r\n 'ui.bootstrap',\r\n 'ui.router',\r\n 'ui.mask',\r\n 'ui.utils.masks',\r\n 'ngFileSaver',\r\n 'infinite-scroll',\r\n 'ngMask'\r\n ]);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('app.layout', ['app.core']);\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('app.login', ['app.core']);\r\n})();\r\n","(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('app.matricula', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('app.recadastramento', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('app.senha', ['app.core']);\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.fileInput', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.alert', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.auditoria', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.autoFocus', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.check', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.confirm', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('app.email', []);\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.errorAlert', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ferramentas', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.hover', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.inicializando', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.isolateForm', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ordenacao', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.paginacao', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.popover', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca', ['blocks.storage']);\r\n})();","(function() {\r\n 'use strict';\r\n\r\n angular.module('blocks.exception', ['blocks.logger']);\r\n})();\r\n","(function() {\r\n 'use strict';\r\n\r\n angular.module('blocks.logger', []);\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('blocks.editor', ['colorpicker.module', 'textAngular']);\r\n\r\n})();\r\n","(function() {\r\n 'use strict';\r\n\r\n angular.module('blocks.router', [\r\n 'ui.router',\r\n 'blocks.logger'\r\n ]);\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('blocks.storage', []);\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('blocks.toastInterceptor', []);\r\n\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('app')\r\n .run(initLogin);\r\n\r\n initLogin.$inject = ['loginListener'];\r\n /* @ngInject */\r\n function initLogin(loginListener) {\r\n loginListener.inicializar();\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n var core = angular.module('app.core')\r\n .config(configure)\r\n .run(appRun);\r\n\r\n var config = {\r\n appTitle: '',\r\n toastrOptions: {\r\n timeOut: 4000,\r\n positionClass: 'toast-bottom-full-width',\r\n preventDuplicates: false,\r\n preventOpenDuplicates: false,\r\n closeButton: true,\r\n progressBar: false,\r\n extendedTimeOut: 3000\r\n }\r\n };\r\n\r\n appRun.$inject = ['routerHelper', '$rootScope', '$state', 'AUTH_EVENTS'];\r\n /* @ngInject */\r\n function appRun(routerHelper, $rootScope, $state, AUTH_EVENTS) {\r\n var otherwise = '/404';\r\n routerHelper.configureStates(getStates(), otherwise);\r\n\r\n $rootScope.$on(AUTH_EVENTS.notFound, notFound);\r\n $rootScope.$on(AUTH_EVENTS.notAuthorized, notAuthorized);\r\n\r\n\r\n function notFound() {\r\n $state.go('404');\r\n }\r\n\r\n function notAuthorized() {\r\n $state.go('403');\r\n }\r\n\r\n function getStates() {\r\n return [\r\n {\r\n state: '403',\r\n config: {\r\n url: '/403',\r\n templateUrl: 'app/core/403.html',\r\n title: '403'\r\n }\r\n },\r\n {\r\n state: '404',\r\n config: {\r\n url: '/404',\r\n templateUrl: 'app/core/404.html',\r\n title: '404'\r\n }\r\n }\r\n ];\r\n }\r\n }\r\n core.value('config', config);\r\n\r\n configure.$inject = ['$httpProvider', '$logProvider', 'routerHelperProvider', 'exceptionHandlerProvider', '$uibModalProvider', '$uibTooltipProvider', 'uibPaginationConfig', '$breadcrumbProvider', 'blockUIConfig', 'toastrConfig'];\r\n /* @ngInject */\r\n function configure($httpProvider, $logProvider, routerHelperProvider, exceptionHandlerProvider, $uibModalProvider, $uibTooltipProvider, uibPaginationConfig, $breadcrumbProvider, blockUIConfig, toastrConfig) {\r\n if ($logProvider.debugEnabled) {\r\n $logProvider.debugEnabled(true);\r\n }\r\n\r\n exceptionHandlerProvider.configure(config.appErrorPrefix);\r\n routerHelperProvider.configure({ docTitle: config.appTitle + '' });\r\n\r\n angular.extend(toastrConfig, config.toastrOptions);\r\n\r\n $uibModalProvider.options.animation = false;\r\n $uibTooltipProvider.options({ animation: true });\r\n\r\n blockUIConfig.autoBlock = false;\r\n\r\n uibPaginationConfig.nextText = \"Próximo\";\r\n uibPaginationConfig.previousText = \"Anterior\";\r\n\r\n $breadcrumbProvider.setOptions({\r\n includeAbstract: false,\r\n prefixStateName: 'inicio'\r\n });\r\n\r\n // Disable cache on Ajax request\r\n if (!$httpProvider.defaults.headers.get) {\r\n $httpProvider.defaults.headers.get = {};\r\n }\r\n\r\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\r\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\r\n }\r\n\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.core') \r\n .constant('version', { number: '...', versionDescriprion: '...' });\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.layout')\r\n .run(appRun);\r\n\r\n appRun.$inject = ['routerHelper'];\r\n /* @ngInject */\r\n function appRun(routerHelper) {\r\n routerHelper.configureStates(getStates());\r\n }\r\n\r\n function getStates() {\r\n return [\r\n {\r\n state: 'inicio',\r\n config: {\r\n url: ['', '/', '/index', '/home'],\r\n templateUrl: 'app/layout/pagina-inicial.html',\r\n controller: 'PaginaInicialController',\r\n controllerAs: 'pagina',\r\n ncyBreadcrumb: {\r\n label: 'Início'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app',\r\n config: {\r\n abstract: true,\r\n template: '',\r\n data: {\r\n requireAuthorization: true\r\n }\r\n }\r\n }\r\n ];\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.layout')\r\n .controller('MasterPageController', MasterPageController);\r\n\r\n MasterPageController.$inject = ['config'];\r\n /* @ngInject */\r\n function MasterPageController(config) {\r\n var vm = this;\r\n vm.navline = {\r\n title: config.appTitle\r\n };\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.layout')\r\n .controller('MenuController', MenuController);\r\n\r\n MenuController.$inject = ['$state', '$rootScope', 'routerHelper', 'seguranca', 'AUTH_EVENTS', '$scope'];\r\n /* @ngInject */\r\n function MenuController($state, $rootScope, routerHelper, seguranca, AUTH_EVENTS, $scope) {\r\n var vm = this;\r\n vm.itens = [\r\n {\r\n text: 'Recadastramento',\r\n textClass: \"['texto-destaque']\",\r\n 'class': \"['fa fa-fw fa-id-card-o']\",\r\n state: 'app.recadastramento.listar'\r\n }\r\n\r\n //{\r\n // text: 'Dados Gerais', 'class': \"['fa fa-fw fa-cubes']\", itens: [\r\n // { text: 'Dados Cadastrais', 'class': \"['fa fa-fw']\", state: 'app.dadosBasicos.buscar' },\r\n // { text: 'Endereços', 'class': \"['fa fa-fw']\", state: 'app.endereco.listar' },\r\n // { text: 'Telefones', 'class': \"['fa fa-fw']\", state: 'app.telefone.listar' },\r\n // { divider: true },\r\n // { text: 'Acionistas Pessoa Física', 'class': \"['fa fa-fw']\", state: 'app.acionistaPF.listar' }\r\n // ]\r\n //}\r\n ];\r\n\r\n vm.isNavCollapsed = true;\r\n\r\n vm.autenticado = autenticado;\r\n vm.entrar = entrar;\r\n vm.sair = sair;\r\n vm.autorizado = autorizado;\r\n vm.usuario = usuario;\r\n vm.esqueciSenha = esqueciSenha; \r\n\r\n $scope.$watch(autenticado, adicionarItemMenuGerencia);\r\n\r\n function adicionarItemMenuGerencia() {\r\n var jaAdicionado = vm.itens.find(function (i) { return i.state === 'app.recadastramento.listar-gerencia'; });\r\n if (vm.autenticado() && seguranca.verificarPermissaoPerfil(\"gerencia\") && !jaAdicionado) {\r\n vm.itens.push({\r\n text: 'Consulta / Avaliação',\r\n textClass: \"['texto-destaque']\",\r\n 'class': \"['fa fa-fw fa-superpowers']\",\r\n state: 'app.recadastramento.listar-gerencia',\r\n });\r\n }\r\n else if (!vm.autenticado() && jaAdicionado) {\r\n vm.itens = vm.itens.filter(function (item) { return item.state !== 'app.recadastramento.listar-gerencia'; });\r\n }\r\n }\r\n\r\n function autorizado(item) {\r\n var visible = true;\r\n return visible;\r\n }\r\n\r\n function autenticado() {\r\n return seguranca.authenticated;\r\n }\r\n\r\n function entrar() {\r\n $state.go('login');\r\n }\r\n\r\n function sair() {\r\n seguranca.logout();\r\n $state.go('inicio');\r\n }\r\n\r\n function usuario() {\r\n return seguranca.username;\r\n }\r\n\r\n function esqueciSenha() {\r\n $state.go('senha');\r\n } \r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.layout')\r\n .controller('PaginaInicialController', PaginaInicialController);\r\n\r\n PaginaInicialController.$inject = ['version', 'seguranca'];\r\n\r\n function PaginaInicialController(version, seguranca) {\r\n /* jshint validthis:true */\r\n var vm = this;\r\n vm.version = version.number;\r\n vm.versionType = descriptionType(version);\r\n vm.autenticado = autenticado;\r\n\r\n function autenticado() {\r\n return seguranca.authenticated;\r\n }\r\n\r\n function descriptionType(version) {\r\n if (version.versionType === \"Develop\")\r\n return \"Desenvolvimento\";\r\n if (version.versionType === \"Homolog\")\r\n return \"Homologação\";\r\n return \"\";\r\n }\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.login')\r\n .factory('loginListener', loginListener);\r\n\r\n loginListener.$inject = ['$rootScope', 'seguranca', 'AUTH_EVENTS', '$state'];\r\n function loginListener($rootScope, seguranca, AUTH_EVENTS, $state) {\r\n\r\n var direcionarPara = 'inicio';\r\n var direcionarParametros = {};\r\n\r\n var service = {\r\n inicializar: inicializar\r\n };\r\n\r\n return service;\r\n\r\n function inicializar() {\r\n escutar();\r\n }\r\n\r\n function escutar() {\r\n $rootScope.$on(AUTH_EVENTS.notAuthenticated, notAuthenticated);\r\n $rootScope.$on(AUTH_EVENTS.loginSuccess, loginSuccess);\r\n }\r\n\r\n function notAuthenticated(event, args) {\r\n direcionarPara = args.state;\r\n direcionarParametros = args.params;\r\n $state.go('login');\r\n }\r\n\r\n function loginSuccess() {\r\n $state.go(direcionarPara, direcionarParametros);\r\n direcionarPara = 'inicio';\r\n }\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.login')\r\n .controller('LoginCtrl', LoginCtrl);\r\n\r\n LoginCtrl.$inject = ['$uibModal', '$rootScope', 'seguranca', 'segurancaAuthService', 'AUTH_EVENTS'];\r\n function LoginCtrl($uibModal, $rootScope, seguranca, segurancaAuthService, AUTH_EVENTS) {\r\n var vm = this;\r\n vm.usuario = '';\r\n vm.senha = '';\r\n vm.confirmar = confirmar;\r\n vm.podeConfirmar = podeConfirmar;\r\n vm.busy = false;\r\n\r\n function confirmar() {\r\n vm.busy = true;\r\n segurancaAuthService.verificarAcesso(vm.usuario, vm.senha)\r\n .then(function (response) {\r\n seguranca.temporaryUser(vm.usuario, response.data.token);\r\n var grupoPerfis = response.data.gruposPerfis;\r\n if (grupoPerfis.length === 1) {\r\n segurancaAuthService.realizarLogin(vm.usuario, {\r\n matricula: vm.usuario,\r\n perfil: grupoPerfis[0].nome\r\n }).then(function (response) { seguranca.login(vm.usuario, response); });\r\n } else {\r\n abrirModalPerfis(vm.usuario, grupoPerfis);\r\n }\r\n }).catch(function (d) {\r\n $rootScope.$broadcast(AUTH_EVENTS.loginFailed);\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n\r\n function podeConfirmar() {\r\n return !seguranca.authenticated && !vm.busy;\r\n }\r\n\r\n function abrirModalPerfis(matricula, grupoPerfis) {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app/login/modal/perfis-modal.html',\r\n controller: 'PerfisModalController',\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n size: 'sm',\r\n resolve: {\r\n params: function () {\r\n return { matricula: matricula, grupoPerfis: grupoPerfis };\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (result) {\r\n if (!!result) {\r\n segurancaAuthService.realizarLogin(vm.usuario, result.$value)\r\n .then(function (response) { seguranca.login(vm.usuario, response); })\r\n } else {\r\n seguranca.clearTemporaryUser();\r\n }\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.login')\r\n .run(appRun);\r\n\r\n appRun.$inject = ['routerHelper']; \r\n function appRun(routerHelper) {\r\n routerHelper.configureStates(getStates());\r\n }\r\n\r\n function getStates() {\r\n return [\r\n {\r\n state: 'login',\r\n config: {\r\n url: '/login',\r\n templateUrl: 'app/login/login.html',\r\n controller: 'LoginCtrl',\r\n controllerAs: 'login',\r\n ncyBreadcrumb: {\r\n label: 'Login'\r\n }\r\n\r\n }\r\n }\r\n ];\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.matricula')\r\n .factory('matriculaService', matriculaService);\r\n\r\n matriculaService.$inject = ['$http', '$q'];\r\n\r\n function matriculaService($http, $q) {\r\n var api = '/RecadastroAuxSaude-API/formulario/';\r\n\r\n var service = {\r\n // buscar: buscar,\r\n buscarItem: buscarItem,\r\n // atualizar: atualizar,\r\n // listarEnums: listarEnums,\r\n // excluir: excluir,\r\n buscarAutoComplete: buscarAutoComplete\r\n };\r\n\r\n return service;\r\n\r\n // function buscar() {\r\n // var url = api;\r\n // var req = {\r\n // method: 'GET',\r\n // url: url\r\n // };\r\n // var deferred = $q.defer();\r\n\r\n // $http(req).success(function (data, status, headers, config) {\r\n // deferred.resolve(data);\r\n // });\r\n // return deferred.promise;\r\n // }\r\n\r\n function buscarItem(id) {\r\n var req = {\r\n method: 'GET',\r\n url: api + 'funcionario/selecionar/' + id\r\n };\r\n var deferred = $q.defer();\r\n\r\n $http(req).success(function (data, status, headers, config) {\r\n deferred.resolve(data);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n // function atualizar(item) {\r\n // var url = api + 'editar';\r\n\r\n // var deferred = $q.defer();\r\n\r\n // $http.put(url, item).success(function (data, status, headers, config) {\r\n // deferred.resolve(data);\r\n // });\r\n // return deferred.promise;\r\n // }\r\n\r\n // function excluir(id) {\r\n // var url = api + id;\r\n\r\n // var deferred = $q.defer();\r\n\r\n // $http.delete(url).success(function (data, status, headers, config) {\r\n // deferred.resolve(data);\r\n // });\r\n // return deferred.promise;\r\n // }\r\n\r\n // function listarEnums() {\r\n // var url = api + 'enums';\r\n // var req = {\r\n // method: 'GET',\r\n // url: url\r\n // };\r\n // var deferred = $q.defer();\r\n\r\n // $http(req).success(function (data, status, headers, config) {\r\n // deferred.resolve(data);\r\n // });\r\n // return deferred.promise;\r\n // }\r\n \r\n function buscarAutoComplete(recadastramentoID, codigoOuDescricao, skip, take, order) {\r\n var params = {\r\n $skip: skip,\r\n $take: take,\r\n $order: order\r\n };\r\n\r\n if (codigoOuDescricao)\r\n params.codigoOuDescricao = codigoOuDescricao;\r\n\r\n var req = {\r\n method: 'GET',\r\n url: api + 'funcionario/autoComplete/' + recadastramentoID,\r\n params: params\r\n };\r\n var deferred = $q.defer();\r\n\r\n $http(req).success(function (data, status, headers, config) {\r\n deferred.resolve(data);\r\n });\r\n return deferred.promise;\r\n }\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('RecadastramentoEditarController', RecadastramentoEditarController);\r\n\r\n RecadastramentoEditarController.$inject = ['$state', 'recadastramentoService', 'toastr', 'mpsFerramentasService'];\r\n function RecadastramentoEditarController($state, recadastramentoService, toastr, mpsFerramentasService) {\r\n var vm = this;\r\n\r\n // Binds\r\n // --- Variáveis\r\n vm.busy = false;\r\n vm.fasesSubmitted = false;\r\n vm.faseID = null;\r\n vm.id = $state.params.id;\r\n vm.isCollapsed = true;\r\n\r\n vm.item = {};\r\n vm.item.fases = [];\r\n vm.backup = angular.copy(vm.item);\r\n\r\n // --- Funções\r\n vm.cancelar = cancelar;\r\n vm.corrigirDiaReciboDataFinal = corrigirDiaReciboDataFinal;\r\n vm.editarFase = editarFase;\r\n vm.excluirFase = excluirFase;\r\n vm.houveAlteracao = houveAlteracao;\r\n vm.naoPodeSalvar = naoPodeSalvar;\r\n vm.salvar = salvar;\r\n vm.salvarFase = salvarFase;\r\n vm.temFases = temFases;\r\n vm.toggleFormFases = toggleFormFases;\r\n vm.validarDataFinal = validarDataFinal;\r\n vm.naoPodeAbrirFormularioExcecao = naoPodeAbrirFormularioExcecao;\r\n vm.abrirFormularioExcecao = abrirFormularioExcecao;\r\n vm.podeMostrarBotaoCriarExcecao = podeMostrarBotaoCriarExcecao;\r\n vm.alertaDiasRegularizacao = alertaDiasRegularizacao;\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (vm.id !== undefined) {\r\n recadastramentoService.buscarItem(vm.id).then(function (response) {\r\n vm.item = response.data;\r\n vm.item.periodoReciboDataInicial = new Date(vm.item.periodoReciboDataInicial);\r\n vm.item.periodoReciboDataFinal = new Date(vm.item.periodoReciboDataFinal);\r\n vm.backup = angular.copy(vm.item);\r\n });\r\n }\r\n }\r\n\r\n function salvar(form) {\r\n if (!form.$valid)\r\n return;\r\n if (!temFases())\r\n return;\r\n\r\n vm.busy = true;\r\n if (!vm.id) {\r\n recadastramentoService.cadastrar(vm.item).then(function () {\r\n toastr.success('Item cadastrado com sucesso.');\r\n $state.go('^.listar');\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n } else {\r\n recadastramentoService.atualizar(vm.id, vm.item).then(function () {\r\n toastr.success('Item atualizado com sucesso.');\r\n $state.go('^.listar');\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n }\r\n\r\n function salvarFase(form) {\r\n if (!validarFases())\r\n return;\r\n\r\n vm.fasesSubmitted = true;\r\n\r\n if (!form.$valid)\r\n return;\r\n\r\n if (!vm.faseID)\r\n adicionarFase();\r\n else\r\n for (var i in vm.item.fases)\r\n if (vm.item.fases[i].id == vm.faseID) {\r\n vm.item.fases[i].dataInicial = vm.faseDataInicial.toISOString();\r\n vm.item.fases[i].dataFinal = vm.faseDataFinal.toISOString();\r\n vm.item.fases[i].motivo = vm.motivoFase;\r\n break;\r\n }\r\n\r\n limparCamposFase();\r\n\r\n vm.fasesSubmitted = false;\r\n vm.isCollapsed = true;\r\n }\r\n\r\n function adicionarFase() {\r\n var fase = {\r\n id: mpsFerramentasService.getRandomNumber(),\r\n dataInicial: vm.faseDataInicial.toISOString(),\r\n dataFinal: vm.faseDataFinal.toISOString(),\r\n motivo: vm.motivoFase\r\n }\r\n\r\n vm.item.fases.push(angular.copy(fase));\r\n }\r\n\r\n function editarFase(fase) {\r\n if (!fase)\r\n return;\r\n\r\n vm.faseID = fase.id;\r\n vm.faseDataInicial = new Date(fase.dataInicial);\r\n vm.faseDataFinal = new Date(fase.dataFinal);\r\n vm.motivoFase = fase.motivo;\r\n vm.isCollapsed = false;\r\n }\r\n\r\n function excluirFase(fase) {\r\n mpsFerramentasService.spliceObject(fase, vm.item.fases);\r\n }\r\n\r\n function validarFases() {\r\n if (vm.faseDataInicial > vm.faseDataFinal) {\r\n toastr.error('Data inicial da fase deve ser menor ou igual à data final da fase.');\r\n return false;\r\n }\r\n\r\n if (!temFases())\r\n return true;\r\n // Se está editando a única fase do recadastramento, não é necessário validar\r\n if (vm.faseID && vm.item.fases.length == 1)\r\n return true;\r\n\r\n var periodoValido = false;\r\n var temIntersticio = false;\r\n\r\n var menorData = null;\r\n var maiorData = null;\r\n\r\n for (var x in vm.item.fases) {\r\n if (vm.item.fases[x].id == vm.faseID)\r\n continue;\r\n\r\n // Verifica se existem períodos em que as datas coincidem\r\n var dataInicialX = new Date(vm.item.fases[x].dataInicial);\r\n var dataFinalX = new Date(vm.item.fases[x].dataFinal);\r\n\r\n periodoValido = vm.faseDataInicial > dataFinalX || vm.faseDataFinal < dataInicialX;\r\n\r\n if (!periodoValido) {\r\n toastr.error('Não deve haver dias coincidentes nos diferentes períodos das fases.');\r\n return false;\r\n }\r\n\r\n if (!menorData || dataInicialX < menorData)\r\n menorData = angular.copy(dataInicialX);\r\n if (!maiorData || dataFinalX > maiorData)\r\n maiorData = angular.copy(dataFinalX);\r\n }\r\n\r\n // Obtém o dia anterior da menor data e o dia posterior da maior data\r\n menorData = menorData.setDate(menorData.getDate() - 1);\r\n maiorData = maiorData.setDate(maiorData.getDate() + 1);\r\n\r\n var temIntersticio = vm.faseDataFinal < menorData || vm.faseDataInicial > maiorData;\r\n\r\n if (temIntersticio) {\r\n toastr.error('Não deve haver interstício entre os períodos das diferentes fases.');\r\n return false;\r\n }\r\n \r\n return true;\r\n }\r\n\r\n function limparCamposFase() {\r\n vm.faseID = null;\r\n vm.faseDataInicial = null;\r\n vm.faseDataFinal = null;\r\n vm.motivoFase = null;\r\n }\r\n\r\n function temFases() {\r\n return vm.item.fases.length > 0;\r\n }\r\n\r\n function validarDataFinal(form) {\r\n if (vm.item.periodoReciboDataInicial && vm.item.periodoReciboDataFinal) {\r\n if (dataFormatada(vm.item.periodoReciboDataInicial) > dataFormatada(vm.item.periodoReciboDataFinal)) {\r\n form.$valid = false;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function dataFormatada(data) {\r\n if (data) {\r\n var dataSemHorario = new Date(data);\r\n return new Date(dataSemHorario.getFullYear(), dataSemHorario.getMonth(), dataSemHorario.getDate(), 0, 0, 0);\r\n }\r\n }\r\n\r\n function houveAlteracao() {\r\n return !angular.equals(vm.item, vm.backup);\r\n }\r\n\r\n function naoPodeSalvar(form) {\r\n return !vm.houveAlteracao() || (form.$submitted && (!vm.temFases() || vm.busy || !form.$valid));\r\n }\r\n\r\n function cancelar() {\r\n $state.go('^.listar');\r\n }\r\n\r\n function toggleFormFases() {\r\n limparCamposFase();\r\n vm.isCollapsed = !vm.isCollapsed;\r\n }\r\n\r\n function corrigirDiaReciboDataFinal() {\r\n vm.item.periodoReciboDataFinal = new Date(vm.item.periodoReciboDataFinal.getFullYear(), vm.item.periodoReciboDataFinal.getMonth() + 1, 0);\r\n }\r\n\r\n function naoPodeAbrirFormularioExcecao(form) {\r\n return !vm.temFases() || vm.busy || !form.$valid;\r\n }\r\n\r\n function abrirFormularioExcecao() {\r\n $state.go('^.editar-formulario', { recadastramentoID: vm.id, ehExcecao: true });\r\n }\r\n\r\n function podeMostrarBotaoCriarExcecao() {\r\n return angular.isDefined(vm.id);\r\n }\r\n\r\n function alertaDiasRegularizacao(valorDias) {\r\n if(valorDias > 100)\r\n toastr.warning('Tem certeza deste valor?', 'Alerta');\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('RecadastramentoListarController', RecadastramentoListarController);\r\n\r\n RecadastramentoListarController.$inject = ['$state', 'recadastramentoService', 'mpsPaginacaoService', 'seguranca',\r\n 'toastr', 'recadastramentoFormularioService', '$uibModal'];\r\n function RecadastramentoListarController($state, recadastramentoService, mpsPaginacaoService, seguranca,\r\n toastr, recadastramentoFormularioService, $uibModal) {\r\n var vm = this;\r\n\r\n // Binds\r\n // --- Variáveis\r\n vm.busy = false;\r\n vm.camposOrdenacao = '';\r\n vm.filtrarAvancadoSubmitted = false;\r\n vm.inicializado = false;\r\n vm.isCollapsed = true;\r\n vm.listaItens = [];\r\n vm.todosItens = [];\r\n vm.itensAuditoria = [];\r\n // vm.listarParaAuditoria = false;\r\n vm.ehConsulta = $state.params.ehConsulta;\r\n vm.listaStatus = ['Pendente', 'Em andamento', 'Pronto para Homologação pela SEBEN', 'Aprovado', 'Recusado',\r\n 'Aprovado automaticamente', 'Registrado pela SEBEN', 'Recusado (em andamento)'];\r\n vm.listaSituacoes = ['Recadastramento Futuro', 'Em Andamento', 'Finalizado'];\r\n vm.perfilGerencia = seguranca.verificarPermissaoPerfil('gerencia');\r\n\r\n // --- Variáveis --- Paginação\r\n vm.maximoPaginasMostradas = mpsPaginacaoService.getMaxSizePagination();\r\n vm.paginaAtual = $state.params.paginaAtual || 1; // não funciona por causa de bug no componente de paginação\r\n vm.take = mpsPaginacaoService.getTake();\r\n vm.totalItens = 0;\r\n\r\n // --- Funções\r\n vm.aplicarFiltrosAvancados = aplicarFiltrosAvancados;\r\n vm.buscar = buscar;\r\n vm.cadastrar = cadastrar;\r\n vm.corrigirDiaReciboDataFinal = corrigirDiaReciboDataFinal;\r\n vm.corrigirHoraDataFinal = corrigirHoraDataFinal;\r\n vm.editarItem = editarItem;\r\n vm.editarFormulario = editarFormulario;\r\n vm.visualizarFormulario = visualizarFormulario;\r\n vm.auditarFormulario = auditarFormulario;\r\n vm.excluirItem = excluirItem;\r\n vm.filtarAvancado = filtarAvancado;\r\n vm.podeEditar = podeEditar;\r\n vm.recadastramentoEmAndamento = recadastramentoEmAndamento;\r\n vm.recadastramentoSomenteLeitura = recadastramentoSomenteLeitura;\r\n vm.validarDataFinal = validarDataFinal;\r\n vm.podeAuditar = podeAuditar;\r\n vm.enviarEmails = enviarEmails;\r\n vm.obterListaFormularios = obterListaFormularios;\r\n vm.obterFormulariosFiltroStatus = obterFormulariosFiltroStatus;\r\n vm.obterRecadastramentoStats = obterRecadastramentoStats;\r\n vm.podeEditarRecadastramento = podeEditarRecadastramento;\r\n\r\n // --- Funções --- Paginação\r\n vm.mostrarItem = mostrarItem;\r\n vm.podePaginar = podePaginar;\r\n vm.temItens = temItens;\r\n vm.temPaginacao = temPaginacao;\r\n\r\n activate();\r\n\r\n function activate() {\r\n buscar();\r\n }\r\n\r\n Date.prototype.addDays = function (days) {\r\n var date = new Date(this.valueOf());\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n function podeAuditar(item) {\r\n return item.status === 3;\r\n }\r\n\r\n function buscar() {\r\n vm.busy = true;\r\n recadastramentoService.buscar().then(function (result) {\r\n if (!result)\r\n return;\r\n vm.todosItens = result.data.registros;\r\n vm.listaItens = vm.todosItens;\r\n vm.totalItens = result.data.total;\r\n }).finally(function () {\r\n if ($state.params.recadastramentoID !== 0) {\r\n vm.filtroRecadastramento = vm.listaItens.find(function (item) { return item.id === parseInt($state.params.recadastramentoID); });\r\n obterListaFormularios(vm.filtroRecadastramento);\r\n }\r\n vm.busy = false;\r\n vm.inicializado = true;\r\n });\r\n }\r\n\r\n function cadastrar() {\r\n $state.go('^.cadastrar');\r\n }\r\n\r\n function editarItem(id) {\r\n $state.go('^.editar', { id: id });\r\n }\r\n\r\n function editarFormulario(item) {\r\n $state.go('^.editar-formulario', { recadastramentoID: item.id, id: item.formularioID, paginaAtual: vm.paginaAtual, recadastramentoSomenteLeitura: recadastramentoSomenteLeitura(item), situacaoID: item.situacaoID });\r\n }\r\n\r\n function visualizarFormulario(item) {\r\n $state.go('^.visualizar-formulario', { recadastramentoID: item.recadastramento.id, id: item.id, ehConsulta: true, matriculaConsulta: item.matricula, paginaAtual: vm.paginaAtual });\r\n }\r\n\r\n function auditarFormulario(item) {\r\n $state.go('^.editar-formulario', { recadastramentoID: item.recadastramento.id, id: item.id, ehAuditoria: true, paginaAtual: vm.paginaAtual, situacaoID: item.recadastramento.situacaoID });\r\n }\r\n\r\n function excluirItem(id) {\r\n vm.busy = true;\r\n recadastramentoService.excluir(id).then(function () {\r\n toastr.success('Item excluído com sucesso.');\r\n }).finally(function () {\r\n vm.paginaAtual = 1;\r\n vm.busy = false;\r\n buscar();\r\n });\r\n }\r\n\r\n function podeEditar(item) {\r\n // Pendente, Em Andamento, Recusado ou Recusado em andamento\r\n return item.status === 1 || item.status === 2 || item.status === 5 || item.status === 8;\r\n }\r\n\r\n function podeEditarRecadastramento(item) {\r\n return (recadastramentoEmAndamento(item) && podeEditar(item)) || validarPrazoRecadastramentoRecusado(item);\r\n }\r\n\r\n function validarPrazoRecadastramentoRecusado(item) {\r\n // Recadastramento 'Finalizado' e status 'Recusado ou Recusado (em andamento)'\r\n if (item.situacaoID === 3 && (item.status === 5 || item.status === 8)) {\r\n var prazoFinal = (new Date(item.formularioUltimaAtualizacao)).addDays(item.diasRegularizacao);\r\n if (moment(prazoFinal).isSameOrAfter(new Date(), 'day')) {\r\n return true;\r\n }\r\n }\r\n // Recadastramento 'Em Andamento' e status ' Recusado (em andamento)'\r\n if (item.situacaoID === 2 && item.status === 8) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function recadastramentoEmAndamento(item) {\r\n return item.situacaoID === 2;\r\n }\r\n\r\n function recadastramentoSomenteLeitura(item) {\r\n return !podeEditarRecadastramento(item);\r\n }\r\n\r\n function podePaginar() {\r\n return !vm.busy;\r\n }\r\n\r\n function temItens() {\r\n return vm.listaItens.length > 0;\r\n }\r\n\r\n function temPaginacao() {\r\n return vm.totalItens > vm.take;\r\n }\r\n\r\n function mostrarItem(value, index, array) {\r\n var skip = mpsPaginacaoService.getSkip(vm.paginaAtual);\r\n var page = vm.take + skip;\r\n\r\n if (index >= skip && index < page)\r\n return true;\r\n return false;\r\n }\r\n\r\n function aplicarFiltrosAvancados() {\r\n vm.filtrarAvancadoSubmitted = true;\r\n }\r\n\r\n function obterFormulariosFiltroStatus() {\r\n if (vm.ehConsulta) {\r\n if (vm.filtroStatus || vm.funcionario)\r\n obterListaFormularios(vm.filtroRecadastramento, vm.filtroStatus, vm.funcionario);\r\n else\r\n obterListaFormularios(vm.filtroRecadastramento);\r\n }\r\n }\r\n\r\n function filtarAvancado(value, index, array) {\r\n if (!vm.filtrarAvancadoSubmitted)\r\n return true;\r\n\r\n var valido = false;\r\n\r\n // Filtro 'Período dos Recibos'\r\n if (vm.filtroPeriodoReciboDataInicial && value.periodoReciboDataInicial)\r\n if (!(new Date(value.periodoReciboDataInicial) >= vm.filtroPeriodoReciboDataInicial))\r\n return false;\r\n if (vm.filtroPeriodoReciboDataFinal && value.periodoReciboDataFinal)\r\n if (!(new Date(value.periodoReciboDataFinal) <= vm.filtroPeriodoReciboDataFinal))\r\n return false;\r\n\r\n // Filtro 'Período do Recadastramento'\r\n if (vm.filtroPeriodoDataInicial && value.menorDataInicialFases)\r\n if (!(new Date(value.menorDataInicialFases) >= vm.filtroPeriodoDataInicial))\r\n return false\r\n if (vm.filtroPeriodoDataFinal && value.maiorDataFinalFases)\r\n if (!(new Date(value.maiorDataFinalFases) <= vm.filtroPeriodoDataFinal))\r\n return false;\r\n\r\n // Filtro 'Status'\r\n var status = vm.perfilGerencia ? value.situacao : value.statusDescricao;\r\n if (vm.filtroStatus && status)\r\n return vm.filtroStatus == status;\r\n\r\n return true;\r\n }\r\n\r\n function dataFormatada(data) {\r\n if (data) {\r\n var dataSemHorario = new Date(data);\r\n return new Date(dataSemHorario.getFullYear(), dataSemHorario.getMonth(), dataSemHorario.getDate(), 0, 0, 0);\r\n }\r\n }\r\n\r\n function validarDataFinal(form) {\r\n if (vm.filtroPeriodoReciboDataInicial && vm.filtroPeriodoReciboDataFinal) {\r\n if (dataFormatada(vm.filtroPeriodoReciboDataInicial) > dataFormatada(vm.filtroPeriodoReciboDataFinal)) {\r\n form.$valid = false;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function corrigirDiaReciboDataFinal() {\r\n vm.filtroPeriodoReciboDataFinal = new Date(vm.filtroPeriodoReciboDataFinal.getFullYear(), vm.filtroPeriodoReciboDataFinal.getMonth() + 1, 0);\r\n }\r\n\r\n function corrigirHoraDataFinal() {\r\n vm.filtroPeriodoDataFinal = new Date(vm.filtroPeriodoDataFinal.getFullYear(), vm.filtroPeriodoDataFinal.getMonth(), vm.filtroPeriodoDataFinal.getDate(), 23, 59, 59);\r\n }\r\n\r\n function enviarEmails() {\r\n vm.busy = true;\r\n recadastramentoService.enviarEmails().then(function (result) {\r\n if (result && result.data.total > 0) {\r\n var msg = result.data.total > 1 ? 'E-mails enviados, porém as seguintes matrículas não possuem e-mails registrados no sistema: ' :\r\n 'E-mails enviados, porém a seguinte matrícula não possui e-mail registrado no sistema: ';\r\n msg += result.data.registros.join();\r\n toastr.warning(msg);\r\n }\r\n else\r\n toastr.success('E-mails enviados com sucesso.');\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n\r\n function obterListaFormularios(item, filtro, funcionario) {\r\n if (item) {\r\n vm.busy = true;\r\n var skip = mpsPaginacaoService.getSkip(vm.paginaAtual);\r\n var order = getOrder();\r\n recadastramentoFormularioService.listarFormulariosRecadastramento(item.id, vm.order || '', skip, vm.take, filtro, funcionario).then(function (response) {\r\n vm.listaFormularios = response;\r\n obterMatriculaBeneficiarioFormulario(vm.listaFormularios.registros);\r\n vm.totalItens = vm.listaFormularios.total;\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n }\r\n\r\n function obterMatriculaBeneficiarioFormulario(formularios) {\r\n if (formularios) {\r\n angular.forEach(formularios, function (formulario) {\r\n var beneficiario = formulario.detalhes.find(function (d) { return d.terceiro === 0; });\r\n formulario.matricula = beneficiario.matricula;\r\n formulario.beneficiario = beneficiario.beneficiario;\r\n });\r\n }\r\n }\r\n\r\n function obterRecadastramentoStats() {\r\n recadastramentoService.obterRecadastramentoStats(vm.filtroRecadastramento.id).then(function (result) {\r\n $uibModal.open({\r\n templateUrl: 'app/recadastramento/modal/recadastramento-stats-modal.html',\r\n controller: 'RecadastramentoStatsController',\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n size: 'md',\r\n resolve: {\r\n params: function () {\r\n return { stats: result.data };\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n function getOrder() {\r\n // return vm.camposOrdenacao.join(',');\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .run(appRun);\r\n\r\n appRun.$inject = ['routerHelper'];\r\n /* @ngInject */\r\n function appRun(routerHelper) {\r\n routerHelper.configureStates(getStates());\r\n }\r\n\r\n function getStates() {\r\n return [\r\n {\r\n state: 'app.recadastramento',\r\n config: {\r\n abstract: true,\r\n templateUrl: 'app/recadastramento/recadastramento.html',\r\n ncyBreadcrumb: {\r\n label: 'Recadastramento'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.listar',\r\n config: {\r\n url: '/recadastramento',\r\n templateUrl: 'app/recadastramento/recadastramento-listar.html',\r\n controller: 'RecadastramentoListarController',\r\n controllerAs: 'vm',\r\n title: 'Recadastramento',\r\n ncyBreadcrumb: {\r\n label: 'Recadastramento'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.listar-gerencia',\r\n config: {\r\n url: '/recadastramento/consulta-avaliacao',\r\n templateUrl: 'app/recadastramento/recadastramento-listar-gerencia.html',\r\n controller: 'RecadastramentoListarController',\r\n controllerAs: 'vm',\r\n params: {\r\n ehAuditoria: false,\r\n ehExcecao: false,\r\n ehConsulta: true,\r\n recadastramentoID: 0,\r\n paginaAtual: null\r\n },\r\n title: 'Recadastramento',\r\n ncyBreadcrumb: {\r\n label: 'Recadastramento'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.cadastrar',\r\n config: {\r\n url: '/recadastramento/cadastrar',\r\n templateUrl: 'app/recadastramento/recadastramento-detalhes.html',\r\n controller: 'RecadastramentoEditarController',\r\n controllerAs: 'vm',\r\n title: 'Recadastramento - Cadastrar',\r\n ncyBreadcrumb: {\r\n label: 'Cadastrar',\r\n parent: 'app.recadastramento.listar'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.editar',\r\n config: {\r\n url: '/recadastramento/editar/{id:int}',\r\n templateUrl: 'app/recadastramento/recadastramento-detalhes.html',\r\n controller: 'RecadastramentoEditarController',\r\n controllerAs: 'vm',\r\n title: 'Recadastramento - Editar',\r\n ncyBreadcrumb: {\r\n label: 'Editar',\r\n parent: 'app.recadastramento.listar'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.editar-formulario',\r\n config: {\r\n url: '/recadastramento/:recadastramentoID/formulario/:id?',\r\n templateUrl: 'app/recadastramento/formulario/recadastramento-formulario-detalhes.html',\r\n controller: 'RecadastramentoFormularioEditarController',\r\n controllerAs: 'vm',\r\n params: {\r\n ehAuditoria: false,\r\n ehExcecao: false,\r\n recadastramentoSomenteLeitura: false,\r\n paginaAtual: 1\r\n },\r\n title: 'Recadastramento - Formulário',\r\n ncyBreadcrumb: {\r\n label: 'Formulário',\r\n parent: 'app.recadastramento.listar'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.visualizar-formulario',\r\n config: {\r\n url: '/recadastramento/:recadastramentoID/visualizar-formulario/:id?',\r\n templateUrl: 'app/recadastramento/formulario/recadastramento-formulario-detalhes.html',\r\n controller: 'RecadastramentoFormularioEditarController',\r\n controllerAs: 'vm',\r\n params: {\r\n ehAuditoria: false,\r\n ehExcecao: false,\r\n ehConsulta: false,\r\n matriculaConsulta: 0,\r\n paginaAtual: 1\r\n },\r\n title: 'Recadastramento - Formulário',\r\n ncyBreadcrumb: {\r\n label: 'Formulário',\r\n parent: 'app.recadastramento.listar-gerencia'\r\n }\r\n }\r\n },\r\n {\r\n state: 'app.recadastramento.impressao-formulario',\r\n config: {\r\n url: '/recadastramento/impressao-formulario',\r\n templateUrl: 'app/recadastramento/formulario/impressao/recadastramento-formulario-impressao.html',\r\n controller: 'RecadastramentoFormularioImpressaoController',\r\n controllerAs: 'vm',\r\n params: {\r\n formulario: null,\r\n matricula: 0,\r\n declaroMudancaPlano: false,\r\n declaroDespesas: false,\r\n declaroBeneficiarios: false,\r\n exibeItem: null,\r\n previousParams: null\r\n },\r\n title: 'Recadastramento - Formulário',\r\n ncyBreadcrumb: {\r\n label: 'Formulário',\r\n parent: 'app.recadastramento.listar-gerencia'\r\n }\r\n }\r\n }\r\n ];\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .factory('recadastramentoService', recadastramentoService);\r\n\r\n recadastramentoService.$inject = ['$http', '$q'];\r\n function recadastramentoService($http, $q) {\r\n var api = '/RecadastroAuxSaude-API/recadastramento/';\r\n\r\n var service = {\r\n buscar: buscar,\r\n buscarItem: buscarItem,\r\n buscarAuditoria: buscarAuditoria,\r\n atualizar: atualizar,\r\n cadastrar: cadastrar,\r\n excluir: excluir,\r\n enviarEmails: enviarEmails,\r\n obterRecadastramentoStats: obterRecadastramentoStats\r\n };\r\n return service;\r\n\r\n function buscar() {\r\n var req = {\r\n method: 'GET',\r\n url: api + 'listar'\r\n };\r\n\r\n return $http(req);\r\n }\r\n\r\n function buscarAuditoria() {\r\n var req = {\r\n method: 'GET',\r\n url: api + 'listar-auditoria'\r\n };\r\n\r\n return $http(req);\r\n }\r\n\r\n function buscarItem(id) {\r\n var req = {\r\n method: 'GET',\r\n url: api + id\r\n };\r\n\r\n return $http(req);\r\n }\r\n\r\n function cadastrar(item) {\r\n var url = api;\r\n \r\n return $http.post(url, item);\r\n }\r\n\r\n function atualizar(id, item) {\r\n var url = api + id;\r\n\r\n return $http.put(url, item);\r\n }\r\n\r\n function excluir(id) {\r\n var url = api + id;\r\n\r\n return $http.delete(url);\r\n }\r\n\r\n function enviarEmails() {\r\n var req = {\r\n method: 'GET',\r\n url: api + 'email/aviso-prazo'\r\n };\r\n\r\n return $http(req);\r\n }\r\n\r\n function obterRecadastramentoStats(id) {\r\n var req = {\r\n method: 'GET',\r\n url: api + 'stats/' + id\r\n };\r\n return $http(req);\r\n }\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.senha')\r\n .factory('senhaListener', senhaListener);\r\n\r\n senhaListener.$inject = ['$rootScope', 'seguranca', 'AUTH_EVENTS', '$state'];\r\n function senhaListener($rootScope, seguranca, AUTH_EVENTS, $state) {\r\n\r\n var direcionarPara = 'inicio';\r\n var direcionarParametros = {};\r\n\r\n var service = {\r\n inicializar: inicializar\r\n };\r\n\r\n return service;\r\n\r\n function inicializar() {\r\n escutar();\r\n }\r\n\r\n function escutar() {\r\n $rootScope.$on(AUTH_EVENTS.notAuthenticated, notAuthenticated);\r\n $rootScope.$on(AUTH_EVENTS.loginSuccess, loginSuccess);\r\n }\r\n\r\n function notAuthenticated(event, args) {\r\n direcionarPara = args.state;\r\n direcionarParametros = args.params;\r\n $state.go('login');\r\n }\r\n\r\n function loginSuccess() {\r\n $state.go(direcionarPara, direcionarParametros);\r\n direcionarPara = 'inicio';\r\n }\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.senha')\r\n .controller('SenhaCtrl', SenhaCtrl);\r\n\r\n SenhaCtrl.$inject = ['$uibModal', '$rootScope', 'seguranca', 'toastr', 'segurancaAuthService', 'AUTH_EVENTS'];\r\n function SenhaCtrl($uibModal, $rootScope, seguranca, toastr, segurancaAuthService, AUTH_EVENTS) {\r\n var vm = this;\r\n vm.usuario = '';\r\n vm.senha = '';\r\n vm.confirmar = confirmar;\r\n vm.podeConfirmar = podeConfirmar;\r\n vm.busy = false;\r\n\r\n function confirmar() {\r\n vm.busy = true;\r\n segurancaAuthService.esqueciSenha(vm.usuario).then(function (result) {\r\n toastr.success('E-mail enviado com sucesso. Aguarde a seção responsável reiniciar a sua senha.');\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n\r\n function podeConfirmar() {\r\n return !seguranca.authenticated && !vm.busy;\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.senha')\r\n .run(appRun);\r\n\r\n appRun.$inject = ['routerHelper']; \r\n function appRun(routerHelper) {\r\n routerHelper.configureStates(getStates());\r\n }\r\n\r\n function getStates() {\r\n return [\r\n {\r\n state: 'senha',\r\n config: {\r\n url: '/senha',\r\n templateUrl: 'app/senha/senha.html',\r\n controller: 'SenhaCtrl',\r\n controllerAs: 'senha',\r\n ncyBreadcrumb: {\r\n label: 'Esqueci a Senha'\r\n }\r\n\r\n }\r\n }\r\n ];\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .factory('databaseService', databaseService);\r\n\r\n databaseService.$inject = ['$http', '$q'];\r\n function databaseService($http, $q) {\r\n var api = '/RecadastroAuxSaude-API/setup/';\r\n\r\n var service = {\r\n criarTabelas: criarTabelas\r\n };\r\n return service;\r\n\r\n function gerarBase() {\r\n var url = api + 'base';\r\n var item = {};\r\n\r\n var deferred = $q.defer();\r\n\r\n $http.post(url, item).success(function (data, status, headers, config) {\r\n deferred.resolve(data);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n function criarTabelas(drop, create, execute) {\r\n var params = {};\r\n\r\n if (drop)\r\n params.drop = drop;\r\n if (create)\r\n params.create = create;\r\n if (execute)\r\n params.execute = execute;\r\n\r\n var url = api + 'base/tabelas';\r\n\r\n var deferred = $q.defer();\r\n\r\n $http.post(url, params).success(function (data, status, headers, config) {\r\n gerarBase();\r\n });\r\n return deferred.promise;\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.fileInput')\r\n .directive('fileInput', fileInput);\r\n\r\n fileInput.$inject = ['$timeout', 'toastr'];\r\n function fileInput($timeout, toastr) {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n templateUrl: 'app/components/file-input/file-input.html',\r\n restrict: 'EA',\r\n replace: true,\r\n require: 'ngModel',\r\n scope: {\r\n accept: '@?',\r\n maxSize: '@?',\r\n fileName: '=?',\r\n fileType: '=?',\r\n lastModifiedDate: '=?',\r\n size: '=?',\r\n blob: '=?',\r\n blobUrl: '=?'\r\n },\r\n link: link\r\n };\r\n\r\n return directive;\r\n\r\n function link(scope, element, attrs, ngModel) {\r\n element.bind(\"change\", function (changeEvent) {\r\n scope.$apply(function () {\r\n var file = changeEvent.target.files[0];\r\n if (file) {\r\n var valido = true;\r\n\r\n if (scope.maxSize)\r\n if (file.size > parseInt(scope.maxSize, 0)) {\r\n toastr.error('Arquivo informado é maior que o limite permitido. (5MB)');\r\n valido = false;\r\n }\r\n\r\n if (valido && scope.accept) {\r\n var aceito = scope.accept.replace('*', '');\r\n\r\n if (!file.type.startsWith(aceito)) {\r\n toastr.error('Tipo de arquivo inválido.');\r\n valido = false;\r\n }\r\n }\r\n\r\n if (valido) {\r\n scope.fileName = file.name;\r\n scope.fileType = file.type;\r\n scope.lastModifiedDate = file.lastModifiedDate;\r\n scope.size = file.size;\r\n\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n scope.busy = true;\r\n\r\n reader.onload = function (loadEvent) {\r\n $timeout(function () {\r\n ngModel.$setViewValue(loadEvent.target.result);\r\n\r\n // Se tem o atributo 'blob', carrega informações\r\n if (attrs.blob)\r\n fetch(loadEvent.target.result)\r\n .then(function(res) {\r\n if(res)\r\n return res.blob();\r\n })\r\n .then(function(blob) {\r\n if(blob)\r\n loadBlob(scope, blob);\r\n });\r\n scope.busy = false;\r\n }, 0);\r\n };\r\n }\r\n }\r\n });\r\n });\r\n\r\n //#region ngModel\r\n\r\n function getModelValue() {\r\n return ngModel.$modelValue;\r\n }\r\n\r\n function modelValueChanged() {\r\n if (ngModel.$modelValue == null)\r\n document.getElementById(\"my-file-selector\").value = \"\";\r\n }\r\n\r\n scope.$watch(getModelValue, modelValueChanged);\r\n\r\n //#endregion \r\n }\r\n\r\n function loadBlob(scope, blob) {\r\n scope.$apply(function () {\r\n scope.blob = blob;\r\n scope.blobUrl = window.URL.createObjectURL(blob);\r\n });\r\n }\r\n\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.alert')\r\n .controller('MPSAlertController', MPSAlertController);\r\n\r\n MPSAlertController.$inject = [];\r\n function MPSAlertController() {\r\n var vm = this;\r\n\r\n vm.tipoAviso = '';\r\n vm.tipoIcone = '';\r\n vm.validarTipoAviso = validarTipoAviso;\r\n vm.validarTipoIcone = validarTipoIcone;\r\n\r\n function validarTipoAviso() {\r\n switch (vm.tipo) {\r\n case \"success\":\r\n return \"alert alert-success\";\r\n case \"info\":\r\n return \"alert alert-info\";\r\n case \"warning\":\r\n return \"alert alert-warning\";\r\n case \"danger\":\r\n return \"alert alert-danger\";\r\n default:\r\n return \"alert alert-warning\";\r\n }\r\n }\r\n\r\n function validarTipoIcone() {\r\n switch (vm.icone) {\r\n case \"exclamation\":\r\n return \"fa fa-exclamation-circle\";\r\n case \"asterisk\":\r\n return \"fa fa-asterisk\";\r\n case \"bell\":\r\n return \"fa fa-bell\";\r\n case \"bomb\":\r\n return \"fa fa-bomb\";\r\n case \"check\":\r\n return \"fa fa-check\";\r\n case \"envelope\":\r\n return \"fa fa-envelope\";\r\n case \"envelope-o\":\r\n return \"fa fa-envelope-o\";\r\n case \"exclamation-triangle\":\r\n return \"fa fa-exclamation-triangle\";\r\n case \"flag\":\r\n return \"fa fa-flag\";\r\n case \"none\":\r\n return \"\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.alert')\r\n .directive('mpsAlert', mpsAlert);\r\n\r\n function mpsAlert() {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n transclude: true,\r\n replace: true,\r\n controller: 'MPSAlertController',\r\n controllerAs: 'vm',\r\n bindToController: true,\r\n templateUrl: 'app/components/mps-alert/mps-alert.html',\r\n scope: {\r\n mensagem: '@',\r\n mensagemHtml: '=',\r\n tipo: '@',\r\n icone: '@',\r\n dismissible: \"=\"\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.autoFocus')\r\n .directive('mpsAutoFocus', mpsAutoFocus);\r\n\r\n mpsAutoFocus.$inject = ['$timeout'];\r\n function mpsAutoFocus($timeout) {\r\n // Usage:\r\n // \r\n var directive = {\r\n restrict: 'A',\r\n link: function ($scope, $element, $attrs) {\r\n $scope.$watch(function () {\r\n return $scope.$eval($attrs.mpsAutoFocus);\r\n }, function (newValue) {\r\n if ($scope.$eval($attrs.mpsAutoFocus) || $attrs.mpsAutoFocus == '')\r\n $timeout(function () { $element[0].focus(); });\r\n });\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","angular.module('mps.datepickerCustom', ['ui.bootstrap.dateparser', 'ui.bootstrap.position'])\r\n\r\n.value('$datepickerCustomSuppressError', false)\r\n\r\n.constant('uibDatepickerCustomConfig', {\r\n formatDay: 'dd',\r\n formatMonth: 'MMMM',\r\n formatYear: 'yyyy',\r\n formatDayHeader: 'EEE',\r\n formatDayTitle: 'MMMM yyyy',\r\n formatMonthTitle: 'yyyy',\r\n datepickerCustomMode: 'day',\r\n minMode: 'day',\r\n maxMode: 'year',\r\n showWeeks: true,\r\n startingDay: 0,\r\n yearRange: 20,\r\n minDate: null,\r\n maxDate: null,\r\n shortcutPropagation: false,\r\n showAdicionalWeek: false,\r\n firstDisplayedDate: new Date(),\r\n lastDisplayedDate: new Date(),\r\n monthSelected: 0,\r\n minWeekExcess: 0,\r\n allowMoveDisabledDate: true,\r\n messageMoveDisabledMin: 'Datas bloqueadas',\r\n messageMoveDisabledMax: 'Datas bloqueadas',\r\n multipleSelect: false,\r\n selectedDatesList: []\r\n})\r\n\r\n.controller('UibDatepickerCustomController', ['$scope', '$attrs', '$parse', '$interpolate', '$log', '$q', 'dateFilter', 'uibDatepickerCustomConfig', '$datepickerCustomSuppressError', '$timeout',\r\n function ($scope, $attrs, $parse, $interpolate, $log, $q, dateFilter, datepickerCustomConfig, $datepickerCustomSuppressError, $timeout) {\r\n var self = this,\r\n ngModelCtrl = { $setViewValue: angular.noop }; // nullModelCtrl;\r\n\r\n // Extensions\r\n $scope.extensions = {};\r\n $scope.extensions.refreshView = function refresh() {\r\n self.activeDate.setSeconds(self.activeDate.getSeconds() + 1);\r\n self.refreshView();\r\n };\r\n $scope.extensions.removeSelectedDate = function remove(date) {\r\n $scope.removeSelectedDate(date);\r\n self.refreshView();\r\n };\r\n $scope.extensions.move = function remove(direction) {\r\n $scope.move(direction);\r\n };\r\n\r\n // Modes chain\r\n this.modes = ['day', 'month', 'year'];\r\n\r\n // Configuration attributes\r\n angular.forEach(['formatDay', 'formatMonth', 'formatYear', 'formatDayHeader', 'formatDayTitle', 'formatMonthTitle',\r\n 'showWeeks', 'startingDay', 'yearRange', 'shortcutPropagation', 'showAdicionalWeek', 'firstDisplayedDate',\r\n 'lastDisplayedDate', 'monthSelected', 'activeDay', 'allowDesselectDay', 'minWeekExcess', 'allowMoveDisabledDate',\r\n 'messageMoveDisabledMin', 'messageMoveDisabledMax', 'multipleSelect', 'selectedDatesList'], function (key, index) {\r\n self[key] = angular.isDefined($attrs[key]) ? (index < 6 ? $interpolate($attrs[key])($scope.$parent) : $scope.$parent.$eval($attrs[key])) : datepickerCustomConfig[key];\r\n });\r\n\r\n // Watchable date attributes\r\n angular.forEach(['minDate', 'maxDate'], function (key) {\r\n if ($attrs[key]) {\r\n $scope.$parent.$watch($parse($attrs[key]), function (value) {\r\n self[key] = value ? new Date(value) : null;\r\n self.refreshView();\r\n });\r\n } else {\r\n self[key] = datepickerCustomConfig[key] ? new Date(datepickerCustomConfig[key]) : null;\r\n }\r\n });\r\n\r\n angular.forEach(['minMode', 'maxMode'], function (key) {\r\n if ($attrs[key]) {\r\n $scope.$parent.$watch($parse($attrs[key]), function (value) {\r\n self[key] = angular.isDefined(value) ? value : $attrs[key];\r\n $scope[key] = self[key];\r\n if ((key == 'minMode' && self.modes.indexOf($scope.datepickerCustomMode) < self.modes.indexOf(self[key])) || (key == 'maxMode' && self.modes.indexOf($scope.datepickerCustomMode) > self.modes.indexOf(self[key]))) {\r\n $scope.datepickerCustomMode = self[key];\r\n }\r\n });\r\n } else {\r\n self[key] = datepickerCustomConfig[key] || null;\r\n $scope[key] = self[key];\r\n }\r\n });\r\n\r\n $scope.firstDisplayedDate = $scope.firstDisplayedDate || datepickerCustomConfig.firstDisplayedDate;\r\n $scope.lastDisplayedDate = $scope.lastDisplayedDate || datepickerCustomConfig.lastDisplayedDate;\r\n $scope.minWeekExcess = $scope.minWeekExcess || datepickerCustomConfig.minWeekExcess;\r\n $scope.allowMoveDisabledDate = $scope.allowMoveDisabledDate || datepickerCustomConfig.allowMoveDisabledDate;\r\n $scope.messageMoveDisabledMin = $scope.messageMoveDisabledMin || datepickerCustomConfig.messageMoveDisabledMin;\r\n $scope.messageMoveDisabledMax = $scope.messageMoveDisabledMax || datepickerCustomConfig.messageMoveDisabledMax;\r\n $scope.multipleSelect = $scope.multipleSelect || datepickerCustomConfig.multipleSelect;\r\n $scope.selectedDatesList = $scope.selectedDatesList || datepickerCustomConfig.selectedDatesList;\r\n $scope.datepickerCustomMode = $scope.datepickerCustomMode || datepickerCustomConfig.datepickerCustomMode;\r\n $scope.uniqueId = 'datepickerCustom-' + $scope.$id + '-' + Math.floor(Math.random() * 10000);\r\n\r\n if (angular.isDefined($attrs.initDate)) {\r\n this.activeDate = $scope.$parent.$eval($attrs.initDate) || new Date();\r\n $scope.$parent.$watch($attrs.initDate, function (initDate) {\r\n if (initDate && (ngModelCtrl.$isEmpty(ngModelCtrl.$modelValue) || ngModelCtrl.$invalid)) {\r\n self.activeDate = initDate;\r\n self.refreshView();\r\n }\r\n });\r\n } else {\r\n this.activeDate = new Date();\r\n }\r\n\r\n $scope.isActive = function (dateObject) {\r\n if (self.compare(dateObject.date, self.activeDate) === 0) {\r\n $scope.activeDateId = dateObject.uid;\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n this.init = function (ngModelCtrl_) {\r\n ngModelCtrl = ngModelCtrl_;\r\n\r\n ngModelCtrl.$render = function () {\r\n self.render();\r\n };\r\n };\r\n\r\n this.render = function () {\r\n if (ngModelCtrl.$viewValue) {\r\n var date = new Date(ngModelCtrl.$viewValue),\r\n isValid = !isNaN(date);\r\n\r\n if (isValid) {\r\n this.activeDate = date;\r\n } else if (!$datepickerCustomSuppressError) {\r\n $log.error('DatepickerCustom directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');\r\n }\r\n }\r\n this.refreshView();\r\n };\r\n\r\n this.refreshView = function () {\r\n if (this.element) {\r\n this._refreshView();\r\n var date = ngModelCtrl.$viewValue ? new Date(ngModelCtrl.$viewValue) : null;\r\n ngModelCtrl.$setValidity('dateDisabled', !date || (this.element && !this.isDisabled(date)));\r\n\r\n $scope.firstDisplayedDate = angular.copy(this.firstDisplayedDate);\r\n $scope.lastDisplayedDate = angular.copy(this.lastDisplayedDate);\r\n $scope.monthSelected = angular.copy(this.activeDate.getMonth());\r\n $scope.activeDay = angular.copy(this.activeDate);\r\n }\r\n };\r\n\r\n this.createDateObject = function (date, format) {\r\n var model = ngModelCtrl.$viewValue ? new Date(ngModelCtrl.$viewValue) : null;\r\n var validSelect = model && this.compare(date, model) === 0;\r\n\r\n if (angular.isDefined($scope.allowDesselectDay) && $scope.allowDesselectDay !== null)\r\n validSelect = validSelect && $scope.allowDesselectDay;\r\n if (angular.isDefined($scope.multipleSelect) || $scope.multipleSelect !== null)\r\n if ($scope.multipleSelect)\r\n validSelect = $scope.isSelectedDate(date) != -1;\r\n\r\n return {\r\n date: date,\r\n label: dateFilter(date, format),\r\n selected: validSelect,\r\n disabled: this.isDisabled(date),\r\n current: this.compare(date, new Date()) === 0,\r\n customClass: this.customClass(date)\r\n };\r\n };\r\n\r\n this.isDisabled = function (date) {\r\n return ((this.minDate && this.compare(date, this.minDate) < 0) || (this.maxDate && this.compare(date, this.maxDate) > 0) || ($attrs.dateDisabled && $scope.dateDisabled({ date: date, mode: $scope.datepickerCustomMode })));\r\n };\r\n\r\n this.customClass = function (date) {\r\n return $scope.customClass({ date: date, mode: $scope.datepickerCustomMode });\r\n };\r\n\r\n // Split array into smaller arrays\r\n this.split = function (arr, size) {\r\n var arrays = [];\r\n while (arr.length > 0) {\r\n arrays.push(arr.splice(0, size));\r\n }\r\n return arrays;\r\n };\r\n\r\n $scope.select = function (date) {\r\n if ($scope.datepickerCustomMode === self.minMode) {\r\n var dt = ngModelCtrl.$viewValue ? new Date(ngModelCtrl.$viewValue) : new Date(0, 0, 0, 0, 0, 0, 0);\r\n\r\n if (angular.isDefined($scope.allowDesselectDay) && $scope.allowDesselectDay !== null)\r\n if (dt.getFullYear() == date.getFullYear() && dt.getMonth() == date.getMonth() && dt.getDate() == date.getDate())\r\n $scope.allowDesselectDay = !$scope.allowDesselectDay;\r\n else\r\n $scope.allowDesselectDay = true;\r\n\r\n if ($scope.multipleSelect) {\r\n if ($scope.isSelectedDate(date) != -1) {\r\n $scope.removeSelectedDate(date);\r\n } else {\r\n $scope.selectDate(date);\r\n }\r\n }\r\n\r\n dt.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\r\n ngModelCtrl.$setViewValue(dt);\r\n ngModelCtrl.$render();\r\n } else {\r\n self.activeDate = date;\r\n $scope.datepickerCustomMode = self.modes[self.modes.indexOf($scope.datepickerCustomMode) - 1];\r\n }\r\n };\r\n\r\n $scope.move = function (direction) {\r\n if ($scope.allowMove(direction)) {\r\n var year = self.activeDate.getFullYear() + direction * (self.step.years || 0),\r\n month = self.activeDate.getMonth() + direction * (self.step.months || 0);\r\n self.activeDate.setFullYear(year, month, 1);\r\n self.refreshView();\r\n }\r\n };\r\n\r\n $scope.allowMove = function (direction) {\r\n var allow = true;\r\n\r\n if (direction == -1 && self.minDate !== null) {\r\n if ((self.activeDate.getMonth() <= self.minDate.getMonth() && self.activeDate.getFullYear() <= self.minDate.getFullYear()) && !self.allowMoveDisabledDate)\r\n allow = false;\r\n }\r\n if (direction == 1 && self.maxDate !== null) {\r\n if ((self.activeDate.getMonth() >= self.maxDate.getMonth() && self.activeDate.getFullYear() >= self.maxDate.getFullYear()) && !self.allowMoveDisabledDate)\r\n allow = false;\r\n }\r\n\r\n return allow;\r\n };\r\n\r\n $scope.toggleMode = function (direction) {\r\n direction = direction || 1;\r\n\r\n if (($scope.datepickerCustomMode === self.maxMode && direction === 1) || ($scope.datepickerCustomMode === self.minMode && direction === -1)) {\r\n return;\r\n }\r\n\r\n $scope.datepickerCustomMode = self.modes[self.modes.indexOf($scope.datepickerCustomMode) + direction];\r\n };\r\n\r\n // Key event mapper\r\n $scope.keys = { 13: 'enter', 32: 'space', 33: 'pageup', 34: 'pagedown', 35: 'end', 36: 'home', 37: 'left', 38: 'up', 39: 'right', 40: 'down' };\r\n\r\n var focusElement = function () {\r\n self.element[0].focus();\r\n };\r\n\r\n // Listen for focus requests from popup directive\r\n $scope.$on('uib:datepickerCustom.focus', focusElement);\r\n\r\n $scope.keydown = function (evt) {\r\n var key = $scope.keys[evt.which];\r\n\r\n if (!key || evt.shiftKey || evt.altKey) {\r\n return;\r\n }\r\n\r\n evt.preventDefault();\r\n if (!self.shortcutPropagation) {\r\n evt.stopPropagation();\r\n }\r\n\r\n if (key === 'enter' || key === 'space') {\r\n if (self.isDisabled(self.activeDate)) {\r\n return; // do nothing\r\n }\r\n $scope.select(self.activeDate);\r\n } else if (evt.ctrlKey && (key === 'up' || key === 'down')) {\r\n $scope.toggleMode(key === 'up' ? 1 : -1);\r\n } else {\r\n self.handleKeyDown(key, evt);\r\n self.refreshView();\r\n }\r\n };\r\n\r\n $scope.isSelectedDate = function (date) {\r\n var indexSelected = -1;\r\n\r\n for (var i = 0; i < $scope.selectedDatesList.length; i++) {\r\n if (date.getFullYear() == $scope.selectedDatesList[i].getFullYear() &&\r\n date.getMonth() == $scope.selectedDatesList[i].getMonth() &&\r\n date.getDate() == $scope.selectedDatesList[i].getDate())\r\n indexSelected = i;\r\n }\r\n\r\n return indexSelected;\r\n };\r\n\r\n $scope.selectDate = function (date) {\r\n if ($scope.isSelectedDate(date) == -1) {\r\n $scope.selectedDatesList.push(date);\r\n\r\n $timeout(function () {\r\n $scope.onChangedList();\r\n }, 0, false);\r\n }\r\n };\r\n\r\n $scope.removeSelectedDate = function (date) {\r\n var indexSelected = $scope.isSelectedDate(date);\r\n if (indexSelected != -1) {\r\n $scope.selectedDatesList.splice(indexSelected, 1);\r\n\r\n $timeout(function () {\r\n $scope.onChangedList();\r\n }, 0, false);\r\n }\r\n };\r\n\r\n }])\r\n\r\n.controller('UibDaypickerCustomController', ['$scope', '$element', 'dateFilter', function (scope, $element, dateFilter) {\r\n var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n\r\n this.step = { months: 1 };\r\n this.element = $element;\r\n function getDaysInMonth(year, month) {\r\n return ((month === 1) && (year % 4 === 0) && ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];\r\n }\r\n\r\n this.init = function (ctrl) {\r\n angular.extend(ctrl, this);\r\n scope.showWeeks = ctrl.showWeeks;\r\n scope.minWeekExcess = ctrl.minWeekExcess;\r\n ctrl.refreshView();\r\n };\r\n\r\n this.getDates = function (startDate, n) {\r\n var dates = new Array(n), current = new Date(startDate), i = 0, date;\r\n while (i < n) {\r\n date = new Date(current);\r\n dates[i++] = date;\r\n current.setDate(current.getDate() + 1);\r\n }\r\n return dates;\r\n };\r\n\r\n this.getLastDayDisplayed = function (startDate, n) {\r\n var dataInicial = angular.copy(startDate);\r\n var lastDayDisplayed = new Date(dataInicial);\r\n\r\n lastDayDisplayed.setDate(startDate.getDate() + n - 1);\r\n lastDayDisplayed.setHours(0);\r\n lastDayDisplayed.setMinutes(0);\r\n lastDayDisplayed.setSeconds(0);\r\n\r\n return lastDayDisplayed;\r\n };\r\n\r\n this._refreshView = function () {\r\n var year = this.activeDate.getFullYear(),\r\n month = this.activeDate.getMonth(),\r\n firstDayOfMonth = new Date(this.activeDate),\r\n today = new Date();\r\n\r\n firstDayOfMonth.setFullYear(year, month, 1);\r\n\r\n // 42? is the number of days on a six-month calendar\r\n var numeroDias = 42;\r\n var difference = this.startingDay - firstDayOfMonth.getDay(),\r\n numDisplayedFromPreviousMonth = (difference > 0) ? 7 - difference : -difference,\r\n firstDate = new Date(firstDayOfMonth);\r\n\r\n if (numDisplayedFromPreviousMonth > 0) {\r\n firstDate.setDate(-numDisplayedFromPreviousMonth + 1);\r\n }\r\n\r\n var lastDayDisplayed = this.getLastDayDisplayed(firstDate, numeroDias);\r\n\r\n if (this.minWeekExcess > 0) {\r\n if (this.activeDate.getMonth() == today.getMonth() && this.activeDate.getFullYear() == today.getFullYear()) {\r\n var numeroSemanas = Math.floor(((getDaysInMonth(today.getFullYear(), today.getMonth()) - today.getDate()) + lastDayDisplayed.getDate()) / 7);\r\n\r\n if (numeroSemanas < this.minWeekExcess) {\r\n numeroDias = 42 + ((this.minWeekExcess - numeroSemanas) * 7);\r\n }\r\n }\r\n }\r\n\r\n if (this.showAdicionalWeek) {\r\n if (this.activeDate.getMonth() == today.getMonth() && this.activeDate.getFullYear() == today.getFullYear()) {\r\n if ((-difference + today.getDate()) <= 7) {\r\n //Mostra a semana anterior\r\n firstDate.setDate(firstDate.getDate() - 7);\r\n\r\n lastDayDisplayed = this.getLastDayDisplayed(firstDate, numeroDias);\r\n if ((lastDayDisplayed.getDate() < getDaysInMonth(today.getFullYear(), today.getMonth())) && lastDayDisplayed.getMonth() == today.getMonth()) {\r\n // Mostrar uma semana a mais quando dias do mês atual ficaram ocultos\r\n numeroDias += 7;\r\n }\r\n } else if ((getDaysInMonth(today.getFullYear(), today.getMonth()) - today.getDate()) + lastDayDisplayed.getDate() < 7) {\r\n // Mostrar uma semana a mais\r\n numeroDias += 7;\r\n }\r\n lastDayDisplayed = this.getLastDayDisplayed(firstDate, numeroDias);\r\n }\r\n }\r\n\r\n var primeiraData = angular.copy(firstDate);\r\n primeiraData.setHours(0);\r\n primeiraData.setMinutes(0);\r\n primeiraData.setSeconds(0);\r\n this.firstDisplayedDate = primeiraData;\r\n this.lastDisplayedDate = lastDayDisplayed;\r\n\r\n var days = this.getDates(firstDate, numeroDias);\r\n for (var i = 0; i < numeroDias; i++) {\r\n days[i] = angular.extend(this.createDateObject(days[i], this.formatDay), {\r\n secondary: days[i].getMonth() !== month,\r\n uid: scope.uniqueId + '-' + i\r\n });\r\n }\r\n\r\n scope.labels = new Array(7);\r\n for (var j = 0; j < 7; j++) {\r\n scope.labels[j] = {\r\n abbr: dateFilter(days[j].date, this.formatDayHeader),\r\n full: dateFilter(days[j].date, 'EEEE')\r\n };\r\n }\r\n\r\n scope.title = dateFilter(this.activeDate, this.formatDayTitle);\r\n scope.rows = this.split(days, 7);\r\n\r\n if (scope.showWeeks) {\r\n scope.weekNumbers = [];\r\n var thursdayIndex = (4 + 7 - this.startingDay) % 7,\r\n numWeeks = scope.rows.length;\r\n for (var curWeek = 0; curWeek < numWeeks; curWeek++) {\r\n scope.weekNumbers.push(\r\n getISO8601WeekNumber(scope.rows[curWeek][thursdayIndex].date));\r\n }\r\n }\r\n };\r\n\r\n this.compare = function (date1, date2) {\r\n return (new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()) - new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()));\r\n };\r\n\r\n function getISO8601WeekNumber(date) {\r\n var checkDate = new Date(date);\r\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); // Thursday\r\n var time = checkDate.getTime();\r\n checkDate.setMonth(0); // Compare with Jan 1\r\n checkDate.setDate(1);\r\n return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;\r\n }\r\n\r\n this.handleKeyDown = function (key, evt) {\r\n var date = this.activeDate.getDate();\r\n\r\n if (key === 'left') {\r\n date = date - 1; // up\r\n } else if (key === 'up') {\r\n date = date - 7; // down\r\n } else if (key === 'right') {\r\n date = date + 1; // down\r\n } else if (key === 'down') {\r\n date = date + 7;\r\n } else if (key === 'pageup' || key === 'pagedown') {\r\n var month = this.activeDate.getMonth() + (key === 'pageup' ? -1 : 1);\r\n this.activeDate.setMonth(month, 1);\r\n date = Math.min(getDaysInMonth(this.activeDate.getFullYear(), this.activeDate.getMonth()), date);\r\n } else if (key === 'home') {\r\n date = 1;\r\n } else if (key === 'end') {\r\n date = getDaysInMonth(this.activeDate.getFullYear(), this.activeDate.getMonth());\r\n }\r\n this.activeDate.setDate(date);\r\n };\r\n\r\n}])\r\n\r\n.controller('UibMonthpickerCustomController', ['$scope', '$element', 'dateFilter', function (scope, $element, dateFilter) {\r\n this.step = { years: 1 };\r\n this.element = $element;\r\n\r\n this.init = function (ctrl) {\r\n angular.extend(ctrl, this);\r\n ctrl.refreshView();\r\n };\r\n\r\n this._refreshView = function () {\r\n var months = new Array(12),\r\n year = this.activeDate.getFullYear(),\r\n date;\r\n\r\n for (var i = 0; i < 12; i++) {\r\n date = new Date(this.activeDate);\r\n date.setFullYear(year, i, 1);\r\n months[i] = angular.extend(this.createDateObject(date, this.formatMonth), {\r\n uid: scope.uniqueId + '-' + i\r\n });\r\n }\r\n\r\n scope.title = dateFilter(this.activeDate, this.formatMonthTitle);\r\n scope.rows = this.split(months, 3);\r\n };\r\n\r\n this.compare = function (date1, date2) {\r\n return new Date(date1.getFullYear(), date1.getMonth()) - new Date(date2.getFullYear(), date2.getMonth());\r\n };\r\n\r\n this.handleKeyDown = function (key, evt) {\r\n var date = this.activeDate.getMonth();\r\n\r\n if (key === 'left') {\r\n date = date - 1; // up\r\n } else if (key === 'up') {\r\n date = date - 3; // down\r\n } else if (key === 'right') {\r\n date = date + 1; // down\r\n } else if (key === 'down') {\r\n date = date + 3;\r\n } else if (key === 'pageup' || key === 'pagedown') {\r\n var year = this.activeDate.getFullYear() + (key === 'pageup' ? -1 : 1);\r\n this.activeDate.setFullYear(year);\r\n } else if (key === 'home') {\r\n date = 0;\r\n } else if (key === 'end') {\r\n date = 11;\r\n }\r\n this.activeDate.setMonth(date);\r\n };\r\n}])\r\n\r\n.controller('UibYearpickerCustomController', ['$scope', '$element', 'dateFilter', function (scope, $element, dateFilter) {\r\n var range;\r\n this.element = $element;\r\n\r\n function getStartingYear(year) {\r\n return parseInt((year - 1) / range, 10) * range + 1;\r\n }\r\n\r\n this.yearpickerCustomInit = function () {\r\n range = this.yearRange;\r\n this.step = { years: range };\r\n };\r\n\r\n this._refreshView = function () {\r\n var years = new Array(range), date;\r\n\r\n for (var i = 0, start = getStartingYear(this.activeDate.getFullYear()) ; i < range; i++) {\r\n date = new Date(this.activeDate);\r\n date.setFullYear(start + i, 0, 1);\r\n years[i] = angular.extend(this.createDateObject(date, this.formatYear), {\r\n uid: scope.uniqueId + '-' + i\r\n });\r\n }\r\n\r\n scope.title = [years[0].label, years[range - 1].label].join(' - ');\r\n scope.rows = this.split(years, 5);\r\n };\r\n\r\n this.compare = function (date1, date2) {\r\n return date1.getFullYear() - date2.getFullYear();\r\n };\r\n\r\n this.handleKeyDown = function (key, evt) {\r\n var date = this.activeDate.getFullYear();\r\n\r\n if (key === 'left') {\r\n date = date - 1; // up\r\n } else if (key === 'up') {\r\n date = date - 5; // down\r\n } else if (key === 'right') {\r\n date = date + 1; // down\r\n } else if (key === 'down') {\r\n date = date + 5;\r\n } else if (key === 'pageup' || key === 'pagedown') {\r\n date += (key === 'pageup' ? -1 : 1) * this.step.years;\r\n } else if (key === 'home') {\r\n date = getStartingYear(this.activeDate.getFullYear());\r\n } else if (key === 'end') {\r\n date = getStartingYear(this.activeDate.getFullYear()) + range - 1;\r\n }\r\n this.activeDate.setFullYear(date);\r\n };\r\n}])\r\n\r\n.directive('uibDatepickerCustom', function () {\r\n return {\r\n replace: true,\r\n templateUrl: function (element, attrs) {\r\n return attrs.templateUrl || 'app/components/mps-calendario/datepicker.custom.html';\r\n },\r\n scope: {\r\n firstDisplayedDate: '=?',\r\n lastDisplayedDate: '=?',\r\n monthSelected: '=?',\r\n activeDay: '=?',\r\n allowDesselectDay: '=?',\r\n minWeekExcess: '=?',\r\n datepickerCustomMode: '=?',\r\n dateDisabled: '&',\r\n customClass: '&',\r\n shortcutPropagation: '&?',\r\n allowMoveDisabledDate: '=?',\r\n messageMoveDisabledMin: '=?',\r\n messageMoveDisabledMax: '=?',\r\n multipleSelect: '=?',\r\n selectedDatesList: '=?',\r\n onChangedList: '&',\r\n extensions: '=?',\r\n },\r\n require: ['uibDatepickerCustom', '^ngModel'],\r\n controller: 'UibDatepickerCustomController',\r\n controllerAs: 'datepickerCustom',\r\n link: function (scope, element, attrs, ctrls) {\r\n var datepickerCustomCtrl = ctrls[0], ngModelCtrl = ctrls[1];\r\n\r\n datepickerCustomCtrl.init(ngModelCtrl);\r\n }\r\n };\r\n})\r\n\r\n.directive('uibDaypickerCustom', function () {\r\n return {\r\n replace: true,\r\n templateUrl: function (element, attrs) {\r\n return attrs.templateUrl || 'app/components/mps-calendario/day.custom.html';\r\n },\r\n require: ['^?uibDatepickerCustom', 'uibDaypickerCustom', '^?datepickerCustom'],\r\n controller: 'UibDaypickerCustomController',\r\n link: function (scope, element, attrs, ctrls) {\r\n var datepickerCustomCtrl = ctrls[0] || ctrls[2],\r\n daypickerCustomCtrl = ctrls[1];\r\n\r\n daypickerCustomCtrl.init(datepickerCustomCtrl);\r\n }\r\n };\r\n})\r\n\r\n.directive('uibMonthpickerCustom', function () {\r\n return {\r\n replace: true,\r\n templateUrl: function (element, attrs) {\r\n return attrs.templateUrl || 'app/components/mps-calendario/month.custom.html';\r\n },\r\n require: ['^?uibDatepickerCustom', 'uibMonthpickerCustom', '^?datepickerCustom'],\r\n controller: 'UibMonthpickerCustomController',\r\n link: function (scope, element, attrs, ctrls) {\r\n var datepickerCustomCtrl = ctrls[0] || ctrls[2],\r\n monthpickerCustomCtrl = ctrls[1];\r\n\r\n monthpickerCustomCtrl.init(datepickerCustomCtrl);\r\n }\r\n };\r\n})\r\n\r\n.directive('uibYearpickerCustom', function () {\r\n return {\r\n replace: true,\r\n templateUrl: function (element, attrs) {\r\n return attrs.templateUrl || 'app/components/mps-calendario/year.custom.html';\r\n },\r\n require: ['^?uibDatepickerCustom', 'uibYearpickerCustom', '^?datepickerCustom'],\r\n controller: 'UibYearpickerCustomController',\r\n link: function (scope, element, attrs, ctrls) {\r\n var ctrl = ctrls[0] || ctrls[2];\r\n angular.extend(ctrl, ctrls[1]);\r\n ctrl.yearpickerCustomInit();\r\n\r\n ctrl.refreshView();\r\n }\r\n };\r\n})\r\n\r\n.constant('uibDatepickerCustomPopupConfig', {\r\n datepickerCustomPopup: 'yyyy-MM-dd',\r\n datepickerCustomPopupTemplateUrl: 'template/datepickerCustom/popup.html',\r\n datepickerCustomTemplateUrl: 'template/datepickerCustom/datepickerCustom.html',\r\n html5Types: {\r\n date: 'yyyy-MM-dd',\r\n 'datetime-local': 'yyyy-MM-ddTHH:mm:ss.sss',\r\n 'month': 'yyyy-MM'\r\n },\r\n currentText: 'Today',\r\n clearText: 'Clear',\r\n closeText: 'Done',\r\n closeOnDateSelection: true,\r\n appendToBody: false,\r\n showButtonBar: true,\r\n onOpenFocus: true\r\n})\r\n\r\n.controller('UibDatepickerCustomPopupController', ['$scope', '$element', '$attrs', '$compile', '$parse', '$document', '$rootScope', '$uibPosition', 'dateFilter', 'uibDateParser', 'uibDatepickerCustomPopupConfig', '$timeout',\r\nfunction (scope, element, attrs, $compile, $parse, $document, $rootScope, $position, dateFilter, dateParser, datepickerCustomPopupConfig, $timeout) {\r\n var self = this;\r\n var cache = {},\r\n isHtml5DateInput = false;\r\n var dateFormat, closeOnDateSelection, appendToBody, onOpenFocus,\r\n datepickerCustomPopupTemplateUrl, datepickerCustomTemplateUrl, popupEl, datepickerCustomEl,\r\n ngModel, $popup;\r\n\r\n scope.watchData = {};\r\n\r\n this.init = function (_ngModel_) {\r\n ngModel = _ngModel_;\r\n closeOnDateSelection = angular.isDefined(attrs.closeOnDateSelection) ? scope.$parent.$eval(attrs.closeOnDateSelection) : datepickerCustomPopupConfig.closeOnDateSelection;\r\n appendToBody = angular.isDefined(attrs.datepickerCustomAppendToBody) ? scope.$parent.$eval(attrs.datepickerCustomAppendToBody) : datepickerCustomPopupConfig.appendToBody;\r\n onOpenFocus = angular.isDefined(attrs.onOpenFocus) ? scope.$parent.$eval(attrs.onOpenFocus) : datepickerCustomPopupConfig.onOpenFocus;\r\n datepickerCustomPopupTemplateUrl = angular.isDefined(attrs.datepickerCustomPopupTemplateUrl) ? attrs.datepickerCustomPopupTemplateUrl : datepickerCustomPopupConfig.datepickerCustomPopupTemplateUrl;\r\n datepickerCustomTemplateUrl = angular.isDefined(attrs.datepickerCustomTemplateUrl) ? attrs.datepickerCustomTemplateUrl : datepickerCustomPopupConfig.datepickerCustomTemplateUrl;\r\n\r\n scope.showButtonBar = angular.isDefined(attrs.showButtonBar) ? scope.$parent.$eval(attrs.showButtonBar) : datepickerCustomPopupConfig.showButtonBar;\r\n\r\n if (datepickerCustomPopupConfig.html5Types[attrs.type]) {\r\n dateFormat = datepickerCustomPopupConfig.html5Types[attrs.type];\r\n isHtml5DateInput = true;\r\n } else {\r\n dateFormat = attrs.uibDatepickerCustomPopup || datepickerCustomPopupConfig.datepickerCustomPopup;\r\n attrs.$observe('uibDatepickerCustomPopup', function (value, oldValue) {\r\n var newDateFormat = value || datepickerCustomPopupConfig.datepickerCustomPopup;\r\n // Invalidate the $modelValue to ensure that formatters re-run\r\n // FIXME: Refactor when PR is merged: https://github.com/angular/angular.js/pull/10764\r\n if (newDateFormat !== dateFormat) {\r\n dateFormat = newDateFormat;\r\n ngModel.$modelValue = null;\r\n\r\n if (!dateFormat) {\r\n throw new Error('uibDatepickerCustomPopup must have a date format specified.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (!dateFormat) {\r\n throw new Error('uibDatepickerCustomPopup must have a date format specified.');\r\n }\r\n\r\n if (isHtml5DateInput && attrs.datepickerCustomPopup) {\r\n throw new Error('HTML5 date input types do not support custom formats.');\r\n }\r\n\r\n // popup element used to display calendar\r\n popupEl = angular.element('
');\r\n popupEl.attr({\r\n 'ng-model': 'date',\r\n 'ng-change': 'dateSelection(date)',\r\n 'template-url': datepickerCustomPopupTemplateUrl\r\n });\r\n\r\n // datepickerCustom element\r\n datepickerCustomEl = angular.element(popupEl.children()[0]);\r\n datepickerCustomEl.attr('template-url', datepickerCustomTemplateUrl);\r\n\r\n if (isHtml5DateInput) {\r\n if (attrs.type === 'month') {\r\n datepickerCustomEl.attr('datepickerCustom-mode', '\"month\"');\r\n datepickerCustomEl.attr('min-mode', 'month');\r\n }\r\n }\r\n\r\n if (attrs.datepickerCustomOptions) {\r\n var options = scope.$parent.$eval(attrs.datepickerCustomOptions);\r\n if (options && options.initDate) {\r\n scope.initDate = options.initDate;\r\n datepickerCustomEl.attr('init-date', 'initDate');\r\n delete options.initDate;\r\n }\r\n angular.forEach(options, function (value, option) {\r\n datepickerCustomEl.attr(cameltoDash(option), value);\r\n });\r\n }\r\n\r\n angular.forEach(['minMode', 'maxMode', 'minDate', 'maxDate', 'datepickerCustomMode', 'initDate', 'shortcutPropagation'], function (key) {\r\n if (attrs[key]) {\r\n var getAttribute = $parse(attrs[key]);\r\n scope.$parent.$watch(getAttribute, function (value) {\r\n scope.watchData[key] = value;\r\n if (key === 'minDate' || key === 'maxDate') {\r\n cache[key] = new Date(value);\r\n }\r\n });\r\n datepickerCustomEl.attr(cameltoDash(key), 'watchData.' + key);\r\n\r\n // Propagate changes from datepickerCustom to outside\r\n if (key === 'datepickerCustomMode') {\r\n var setAttribute = getAttribute.assign;\r\n scope.$watch('watchData.' + key, function (value, oldvalue) {\r\n if (angular.isFunction(setAttribute) && value !== oldvalue) {\r\n setAttribute(scope.$parent, value);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n if (attrs.dateDisabled) {\r\n datepickerCustomEl.attr('date-disabled', 'dateDisabled({ date: date, mode: mode })');\r\n }\r\n\r\n if (attrs.showWeeks) {\r\n datepickerCustomEl.attr('show-weeks', attrs.showWeeks);\r\n }\r\n\r\n if (attrs.customClass) {\r\n datepickerCustomEl.attr('custom-class', 'customClass({ date: date, mode: mode })');\r\n }\r\n\r\n if (!isHtml5DateInput) {\r\n // Internal API to maintain the correct ng-invalid-[key] class\r\n ngModel.$$parserName = 'date';\r\n ngModel.$validators.date = validator;\r\n ngModel.$parsers.unshift(parseDate);\r\n ngModel.$formatters.push(function (value) {\r\n scope.date = value;\r\n return ngModel.$isEmpty(value) ? value : dateFilter(value, dateFormat);\r\n });\r\n } else {\r\n ngModel.$formatters.push(function (value) {\r\n scope.date = value;\r\n return value;\r\n });\r\n }\r\n\r\n // Detect changes in the view from the text box\r\n ngModel.$viewChangeListeners.push(function () {\r\n scope.date = dateParser.parse(ngModel.$viewValue, dateFormat, scope.date);\r\n });\r\n\r\n element.bind('keydown', inputKeydownBind);\r\n\r\n $popup = $compile(popupEl)(scope);\r\n // Prevent jQuery cache memory leak (template is now redundant after linking)\r\n popupEl.remove();\r\n\r\n if (appendToBody) {\r\n $document.find('body').append($popup);\r\n } else {\r\n element.after($popup);\r\n }\r\n\r\n scope.$on('$destroy', function () {\r\n if (scope.isOpen === true) {\r\n if (!$rootScope.$$phase) {\r\n scope.$apply(function () {\r\n scope.isOpen = false;\r\n });\r\n }\r\n }\r\n\r\n $popup.remove();\r\n element.unbind('keydown', inputKeydownBind);\r\n $document.unbind('click', documentClickBind);\r\n });\r\n };\r\n\r\n scope.getText = function (key) {\r\n return scope[key + 'Text'] || datepickerCustomPopupConfig[key + 'Text'];\r\n };\r\n\r\n scope.isDisabled = function (date) {\r\n if (date === 'today') {\r\n date = new Date();\r\n }\r\n\r\n return ((scope.watchData.minDate && scope.compare(date, cache.minDate) < 0) ||\r\n (scope.watchData.maxDate && scope.compare(date, cache.maxDate) > 0));\r\n };\r\n\r\n scope.compare = function (date1, date2) {\r\n return (new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()) - new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()));\r\n };\r\n\r\n // Inner change\r\n scope.dateSelection = function (dt) {\r\n if (angular.isDefined(dt)) {\r\n scope.date = dt;\r\n }\r\n var date = scope.date ? dateFilter(scope.date, dateFormat) : null; // Setting to NULL is necessary for form validators to function\r\n element.val(date);\r\n ngModel.$setViewValue(date);\r\n\r\n if (closeOnDateSelection) {\r\n scope.isOpen = false;\r\n element[0].focus();\r\n }\r\n };\r\n\r\n scope.keydown = function (evt) {\r\n if (evt.which === 27) {\r\n scope.isOpen = false;\r\n element[0].focus();\r\n }\r\n };\r\n\r\n scope.select = function (date) {\r\n if (date === 'today') {\r\n var today = new Date();\r\n if (angular.isDate(scope.date)) {\r\n date = new Date(scope.date);\r\n date.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());\r\n } else {\r\n date = new Date(today.setHours(0, 0, 0, 0));\r\n }\r\n }\r\n scope.dateSelection(date);\r\n };\r\n\r\n scope.close = function () {\r\n scope.isOpen = false;\r\n element[0].focus();\r\n };\r\n\r\n scope.$watch('isOpen', function (value) {\r\n if (value) {\r\n scope.position = appendToBody ? $position.offset(element) : $position.position(element);\r\n scope.position.top = scope.position.top + element.prop('offsetHeight');\r\n\r\n $timeout(function () {\r\n if (onOpenFocus) {\r\n scope.$broadcast('uib:datepickerCustom.focus');\r\n }\r\n $document.bind('click', documentClickBind);\r\n }, 0, false);\r\n } else {\r\n $document.unbind('click', documentClickBind);\r\n }\r\n });\r\n\r\n function cameltoDash(string) {\r\n return string.replace(/([A-Z])/g, function ($1) { return '-' + $1.toLowerCase(); });\r\n }\r\n\r\n function parseDate(viewValue) {\r\n if (angular.isNumber(viewValue)) {\r\n // presumably timestamp to date object\r\n viewValue = new Date(viewValue);\r\n }\r\n\r\n if (!viewValue) {\r\n return null;\r\n } else if (angular.isDate(viewValue) && !isNaN(viewValue)) {\r\n return viewValue;\r\n } else if (angular.isString(viewValue)) {\r\n var date = dateParser.parse(viewValue, dateFormat, scope.date);\r\n if (isNaN(date)) {\r\n return undefined;\r\n } else {\r\n return date;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n function validator(modelValue, viewValue) {\r\n var value = modelValue || viewValue;\r\n\r\n if (!attrs.ngRequired && !value) {\r\n return true;\r\n }\r\n\r\n if (angular.isNumber(value)) {\r\n value = new Date(value);\r\n }\r\n if (!value) {\r\n return true;\r\n } else if (angular.isDate(value) && !isNaN(value)) {\r\n return true;\r\n } else if (angular.isString(value)) {\r\n var date = dateParser.parse(value, dateFormat);\r\n return !isNaN(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n function documentClickBind(event) {\r\n var popup = $popup[0];\r\n var dpContainsTarget = element[0].contains(event.target);\r\n // The popup node may not be an element node\r\n // In some browsers (IE) only element nodes have the 'contains' function\r\n var popupContainsTarget = popup.contains !== undefined && popup.contains(event.target);\r\n if (scope.isOpen && !(dpContainsTarget || popupContainsTarget)) {\r\n scope.$apply(function () {\r\n scope.isOpen = false;\r\n });\r\n }\r\n }\r\n\r\n function inputKeydownBind(evt) {\r\n if (evt.which === 27 && scope.isOpen) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n scope.$apply(function () {\r\n scope.isOpen = false;\r\n });\r\n element[0].focus();\r\n } else if (evt.which === 40 && !scope.isOpen) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n scope.$apply(function () {\r\n scope.isOpen = true;\r\n });\r\n }\r\n }\r\n}])\r\n\r\n.directive('uibDatepickerCustomPopup', function () {\r\n return {\r\n require: ['ngModel', 'uibDatepickerCustomPopup'],\r\n controller: 'UibDatepickerCustomPopupController',\r\n scope: {\r\n isOpen: '=?',\r\n currentText: '@',\r\n clearText: '@',\r\n closeText: '@',\r\n dateDisabled: '&',\r\n customClass: '&'\r\n },\r\n link: function (scope, element, attrs, ctrls) {\r\n var ngModel = ctrls[0],\r\n ctrl = ctrls[1];\r\n\r\n ctrl.init(ngModel);\r\n }\r\n };\r\n})\r\n\r\n.directive('uibDatepickerCustomPopupWrap', function () {\r\n return {\r\n replace: true,\r\n transclude: true,\r\n templateUrl: function (element, attrs) {\r\n return attrs.templateUrl || 'app/components/mps-calendario/popup.custom.html';\r\n }\r\n };\r\n});","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.check')\r\n .controller('MPSCheckCtrl', MPSCheckCtrl);\r\n\r\n MPSCheckCtrl.$inject = ['$http', '$scope'];\r\n function MPSCheckCtrl($http, $scope) {\r\n var vm = this;\r\n\r\n vm.extraClasse = vm.extraClass;\r\n vm.tipoCheck = vm.tipoCheck;\r\n\r\n vm.click = click;\r\n vm.marcado = marcado;\r\n vm.desmarcado = desmarcado;\r\n\r\n $scope.$watch('$viewContentLoaded', function () {\r\n vm.checked = $scope.modelValue;\r\n vm.estilo = $scope.modelValue() ? vm.marcado() : vm.desmarcado();\r\n });\r\n\r\n function click() {\r\n $scope.updateModel(!$scope.modelValue());\r\n vm.estilo = $scope.modelValue() ? vm.marcado() : vm.desmarcado();\r\n }\r\n\r\n function marcado() {\r\n switch (vm.tipoCheck) {\r\n case \"toggle\":\r\n return \"fa-toggle-on\";\r\n case \"thumbs\":\r\n return \"fa-thumbs-o-up\";\r\n case \"plus\":\r\n return \"fa-plus-square\";\r\n case \"heart\":\r\n return \"fa-heart\";\r\n case \"envelope\":\r\n return \"fa-envelope\";\r\n case \"comment\":\r\n return \"fa-comment\";\r\n case \"smile\":\r\n return \"fa-smile-o\";\r\n case \"gender\":\r\n return \"fa-male\";\r\n case \"bell\":\r\n return \"fa-bell\";\r\n default:\r\n return \"fa-check-square\";\r\n }\r\n }\r\n\r\n function desmarcado() {\r\n switch (vm.tipoCheck) {\r\n case \"toggle\":\r\n return \"fa-toggle-off\";\r\n case \"thumbs\":\r\n return \"fa-thumbs-o-down\";\r\n case \"plus\":\r\n return \"fa-square-o\";\r\n case \"heart\":\r\n return \"fa-heart-o\";\r\n case \"envelope\":\r\n return \"fa-envelope-o\";\r\n case \"comment\":\r\n return \"fa-comment-o\";\r\n case \"smile\":\r\n return \"fa-frown-o\";\r\n case \"gender\":\r\n return \"fa-female\";\r\n case \"bell\":\r\n return \"fa-bell-o\";\r\n default:\r\n return \"fa-square-o\";\r\n }\r\n }\r\n\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.check')\r\n .directive('mpsCheck', mpsCheck);\r\n\r\n function mpsCheck() {\r\n // Usages:\r\n // \r\n // \r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n require: 'ngModel',\r\n transclude: true,\r\n templateUrl: 'app/components/mps-check/mps-check.html',\r\n controller: 'MPSCheckCtrl',\r\n controllerAs: 'mpsCheck',\r\n bindToController: true,\r\n scope: {\r\n idCheck: '=',\r\n extraClass: '@',\r\n tipoCheck: '@'\r\n },\r\n link: function (scope, element, attrs, ctrl) {\r\n scope.updateModel = function (item) {\r\n ctrl.$setViewValue(item);\r\n };\r\n scope.modelValue = function () {\r\n return ctrl.$modelValue;\r\n };\r\n ctrl.$viewChangeListeners.push(function () {\r\n scope.$eval(attrs.ngChange);\r\n });\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n \r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.confirm')\r\n .controller('MPSConfirmController', MPSConfirmController);\r\n\r\n MPSConfirmController.$inject = ['$uibModalInstance', 'mensagem'];\r\n function MPSConfirmController($uibModalInstance, mensagem) {\r\n var vm = this;\r\n\r\n vm.mensagem = mensagem;\r\n vm.confirmar = confirmar;\r\n vm.cancelar = cancelar;\r\n\r\n function confirmar() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancelar() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.confirm')\r\n .directive('mpsConfirm', mpsConfirm);\r\n\r\n mpsConfirm.$inject = ['$uibModal'];\r\n function mpsConfirm($uibModal) {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n priority: -1,\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n element.bind('click', function (e) {\r\n var message = attrs.mpsConfirm || 'Tem certeza que deseja excluir este item?';\r\n\r\n if (attrs.mpsConfirmValidation) {\r\n var valid = scope.$eval(attrs.mpsConfirmValidation);\r\n if (!valid)\r\n return;\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app/components/mps-confirm/mps-confirm-modal.html',\r\n controller: 'MPSConfirmController',\r\n controllerAs: 'vm',\r\n resolve: {\r\n mensagem: function () {\r\n return message;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function () {\r\n scope.$eval(attrs.ngClick);\r\n });\r\n });\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.email')\r\n .controller('MPSListaEmailController', MPSListaEmailController);\r\n\r\n MPSListaEmailController.$inject = ['$scope', 'toastr'];\r\n function MPSListaEmailController($scope, toastr) {\r\n /* jshint validthis:true */\r\n var vm = this;\r\n\r\n // Binds\r\n // --- Váriáveis\r\n vm.email = '';\r\n vm.mostrarFormulario = false;\r\n\r\n // --- Funções\r\n vm.adicionarEmail = adicionarEmail;\r\n vm.novoEmail = novoEmail;\r\n vm.removerEmail = removerEmail;\r\n vm.temEmail = temEmail;\r\n\r\n function novoEmail() {\r\n vm.email = '';\r\n vm.mostrarFormulario = true;\r\n }\r\n\r\n function adicionarEmail(form) {\r\n if (form.$valid) {\r\n for (var i = 0; i < $scope.model.$viewValue.length; i++)\r\n if ($scope.model.$viewValue[i] === vm.email) {\r\n toastr.warning('E-mail já inserido.');\r\n return;\r\n }\r\n\r\n $scope.model.$viewValue.push(vm.email);\r\n form.$submitted = false;\r\n vm.email = '';\r\n vm.mostrarFormulario = false;\r\n }\r\n }\r\n \r\n function removerEmail(index) {\r\n $scope.model.$viewValue.splice(index, 1);\r\n }\r\n\r\n function temEmail() {\r\n return $scope.model.$viewValue && $scope.model.$viewValue.length > 0;\r\n }\r\n\r\n }\r\n\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.email')\r\n .directive('mpsListaEmail', mpsListaEmail);\r\n\r\n mpsListaEmail.$inject = [];\r\n function mpsListaEmail() {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'E',\r\n require: '^ngModel',\r\n templateUrl: 'app/components/mps-email/mps-lista-email.html',\r\n controller: 'MPSListaEmailController',\r\n controllerAs: 'vm',\r\n bindToController: true,\r\n scope: {},\r\n link: link\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs, model) {\r\n scope.model = model;\r\n }\r\n }\r\n\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.errorAlert')\r\n .controller('MPSErrorAlertController', MPSErrorAlertController);\r\n\r\n MPSErrorAlertController.$inject = [];\r\n function MPSErrorAlertController() {\r\n var vm = this; \r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.errorAlert')\r\n .directive('mpsErrorAlert', mpsErrorAlert);\r\n\r\n function mpsErrorAlert() {\r\n // Usage:\r\n // \r\n // \r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n transclude: true,\r\n replace: true,\r\n controller: 'MPSErrorAlertController',\r\n controllerAs: 'vm',\r\n bindToController: true,\r\n templateUrl: 'app/components/mps-error-alert/mps-error-alert.html',\r\n scope: {\r\n error: '='\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ferramentas')\r\n .factory('mpsFerramentasService', mpsFerramentasService);\r\n\r\n mpsFerramentasService.$inject = [];\r\n function mpsFerramentasService() {\r\n\r\n var service = {\r\n getColumn: getColumn,\r\n getRandomNumber: getRandomNumber,\r\n timeRegex: timeRegex,\r\n spliceObject: spliceObject\r\n };\r\n return service;\r\n\r\n //Obter uma coluna específica de uma matriz\r\n function getColumn(matrix, columnName) {\r\n var column = [];\r\n for (var i = 0; i < matrix.length; i++) {\r\n column.push(matrix[i][columnName]);\r\n }\r\n return column;\r\n }\r\n \r\n function getRandomNumber() {\r\n return Math.floor((1 + Math.random()) * 0x100000);\r\n }\r\n\r\n function timeRegex() {\r\n return '([0-1]?[0-9]|2[0-3]):[0-5][0-9]';\r\n }\r\n\r\n function spliceObject(obj, array) {\r\n if (!obj)\r\n return;\r\n if (!array || !array.length)\r\n return;\r\n\r\n for (var x in array)\r\n if (angular.equals(array[x], obj))\r\n array.splice(x, 1);\r\n }\r\n \r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.hover')\r\n .directive('mpsHoverControl', mpsHoverControl);\r\n\r\n function mpsHoverControl() {\r\n // Usage:\r\n // \r\n // \r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n transclude: true,\r\n replice: true,\r\n templateUrl: 'app/components/mps-hover/mps-hover-control.html',\r\n scope: {\r\n mpsHoverControl: '=',\r\n hoverAdicional: '=?'\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.hover')\r\n .directive('mpsHover', mpsHover);\r\n\r\n function mpsHover() {\r\n // Usage:\r\n // \r\n // \r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n scope: {\r\n mpsHover: '='\r\n },\r\n link: function (scope, element, attrs) {\r\n if (!attrs.mpsHoverEnabled) {\r\n scope.mpsHover = true;\r\n return;\r\n }\r\n\r\n scope.mpsHover = scope.mpsHover || false;\r\n\r\n element.on(\"mouseover\", function () {\r\n scope.mpsHover = true;\r\n scope.$apply();\r\n });\r\n element.on(\"mouseleave\", function () {\r\n scope.mpsHover = false;\r\n scope.$apply();\r\n });\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.inicializando')\r\n .directive('mpsInicializando', mpsInicializando);\r\n\r\n function mpsInicializando() {\r\n // Usage:\r\n // \r\n var directive = {\r\n restrict: 'E',\r\n replace: true,\r\n templateUrl: 'app/components/mps-inicializando/mps-inicializando.html',\r\n link: link\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n \r\n function link(scope, element, attrs, model) {\r\n scope.mensagem = attrs.mensagem;\r\n }\r\n\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.isolateForm', [])\r\n .directive('isolateForm', isolateForm);\r\n\r\n function isolateForm() {\r\n var directive = {\r\n restrict: 'A',\r\n require: '?form',\r\n link: link\r\n };\r\n\r\n return directive;\r\n\r\n function link(scope, elm, attrs, ctrl) {\r\n if (!ctrl) {\r\n return;\r\n }\r\n\r\n // Do a copy of the controller\r\n var ctrlCopy = {};\r\n angular.copy(ctrl, ctrlCopy);\r\n\r\n // Get the parent of the form\r\n var parent = elm.parent().controller('form');\r\n // Remove parent link to the controller\r\n parent.$removeControl(ctrl);\r\n\r\n // Replace form controller with a \"isolated form\"\r\n var isolatedFormCtrl = {\r\n $setValidity: function (validationToken, isValid, control) {\r\n ctrlCopy.$setValidity(validationToken, isValid, control);\r\n parent.$setValidity(validationToken, true, ctrl);\r\n },\r\n $setDirty: function () {\r\n elm.removeClass('ng-pristine').addClass('ng-dirty');\r\n ctrl.$dirty = true;\r\n ctrl.$pristine = false;\r\n },\r\n };\r\n angular.extend(ctrl, isolatedFormCtrl);\r\n }\r\n }\r\n\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ordenacao')\r\n .controller('MPSOrdenacaoColunaController', MPSOrdenacaoColunaController);\r\n\r\n MPSOrdenacaoColunaController.$inject = ['$scope'];\r\n function MPSOrdenacaoColunaController($scope) {\r\n var vm = this;\r\n\r\n vm.click = click;\r\n\r\n function click() {\r\n vm.ordem = (vm.ordem != 'asc' ? 'asc' : 'desc');\r\n vm.parentCtrl.camposConcatenados(vm.orderBy, vm.ordem);\r\n }\r\n\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ordenacao')\r\n .directive('mpsOrdenacaoColuna', mpsOrdenacaoColuna);\r\n\r\n function mpsOrdenacaoColuna() {\r\n // Usage:\r\n // \r\n // \r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n require: '^mpsOrdenacao',\r\n transclude: true,\r\n templateUrl: 'app/components/mps-ordenacao/mps-ordenacao-coluna.html',\r\n controller: 'MPSOrdenacaoColunaController',\r\n controllerAs: 'vm',\r\n bindToController: true,\r\n scope: {\r\n orderBy: '@',\r\n ordemInicial: '@'\r\n },\r\n compile: function compile(tElement, tAttrs, transclude) {\r\n return {\r\n pre: function preLink(scope, element, attrs, ctrl) {\r\n scope.vm.orderBy = attrs.orderBy;\r\n scope.vm.ordem = attrs.ordemInicial || 'none';\r\n scope.vm.parentCtrl = ctrl;\r\n\r\n ctrl.addColuna(scope.vm);\r\n },\r\n post: angular.noop\r\n };\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ordenacao')\r\n .controller('MPSOrdenacaoController', MPSOrdenacaoController);\r\n\r\n MPSOrdenacaoController.$inject = ['$scope'];\r\n function MPSOrdenacaoController($scope) {\r\n var vm = this;\r\n\r\n /* Variaveis */\r\n vm.camposOrdenacao = [];\r\n\r\n /* Funções */\r\n vm.addColuna = addColuna;\r\n vm.camposConcatenados = camposConcatenados;\r\n vm.tipoRetorno = tipoRetorno;\r\n\r\n /**\r\n * Adiciona uma coluna na lista de colunas que terão ordenação, caso ela tenha uma ordem inicial configurada\r\n *\r\n * @param {OrdenacaoColunaCtrl} coluna: A coluna que será adicionada.\r\n */\r\n function addColuna(coluna) {\r\n if (coluna.ordem != 'none')\r\n vm.camposOrdenacao.push({ orderBy: coluna.orderBy, ordem: coluna.ordem });\r\n $scope.updateModel(vm.tipoRetorno());\r\n }\r\n\r\n function camposConcatenados(orderBy, ordem) {\r\n var campos = [];\r\n\r\n if (orderBy !== null && orderBy !== '') {\r\n if (ordem != 'none')\r\n campos.push({ orderBy: orderBy, ordem: ordem });\r\n\r\n for (var i = 0; i < vm.camposOrdenacao.length; i++)\r\n if (vm.camposOrdenacao[i].orderBy != orderBy)\r\n campos.push({ orderBy: vm.camposOrdenacao[i].orderBy, ordem: vm.camposOrdenacao[i].ordem });\r\n\r\n vm.camposOrdenacao = campos;\r\n $scope.updateModel(vm.tipoRetorno());\r\n vm.metodoAtualizacao();\r\n }\r\n }\r\n\r\n function tipoRetorno() {\r\n switch (vm.modoRetorno) {\r\n case \"array\":\r\n return vm.camposOrdenacao;\r\n case \"filter\":\r\n var filtros = [];\r\n for (var i = 0; i < vm.camposOrdenacao.length; i++)\r\n filtros.push((vm.camposOrdenacao[i].ordem == 'desc' ? '-' : '') + vm.camposOrdenacao[i].orderBy);\r\n return filtros;\r\n default:\r\n var campos = '';\r\n\r\n for (var j = 0; j < vm.camposOrdenacao.length; j++) {\r\n campos += (j !== 0 ? ', ' : '');\r\n\r\n if (vm.camposOrdenacao[j].orderBy.split(',').length)\r\n for (var x = 0; x < vm.camposOrdenacao[j].orderBy.split(',').length; x++)\r\n campos += (x !== 0 ? ', ' : '') + vm.camposOrdenacao[j].orderBy.split(',')[x].trim() + ' ' + vm.camposOrdenacao[j].ordem;\r\n else\r\n campos += vm.camposOrdenacao[j].orderBy + ' ' + vm.camposOrdenacao[j].ordem;\r\n }\r\n\r\n return campos;\r\n }\r\n }\r\n\r\n }\r\n\r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.ordenacao')\r\n .directive('mpsOrdenacao', mpsOrdenacao);\r\n\r\n function mpsOrdenacao() {\r\n // Usage:\r\n // \r\n // \r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n require: 'ngModel',\r\n controller: 'MPSOrdenacaoController',\r\n controllerAs: 'vm',\r\n bindToController: true,\r\n scope: {\r\n modoRetorno: '@',\r\n metodoAtualizacao: '&'\r\n },\r\n compile: function compile(tElement, tAttrs, transclude) {\r\n return {\r\n pre: function preLink(scope, element, attrs, ctrl) {\r\n scope.updateModel = function (item) {\r\n ctrl.$setViewValue(item);\r\n };\r\n },\r\n post: angular.noop\r\n };\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n var app = angular.module('mps.paginacao')\r\n .run(init);\r\n\r\n init.$inject = ['mpsPaginacaoService'];\r\n /* @ngInject */\r\n function init(mpsPaginacaoService) {\r\n mpsPaginacaoService.inicializar();\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.paginacao')\r\n .factory('mpsPaginacaoService', mpsPaginacaoService);\r\n\r\n mpsPaginacaoService.$inject = ['$http', '$q'];\r\n function mpsPaginacaoService($http, $q) {\r\n var api = '';\r\n var take = 10;\r\n var takeAutoComplete = 10;\r\n var minLengthAutoCompleteBigTable = 10;\r\n var minLengthAutoCompleteSmallTable = 10;\r\n var maxSizePagination = 5;\r\n var minLengthAutoComplete = 0;\r\n\r\n var service = {\r\n getSkip: getSkip,\r\n getSkipAutoComplete: getSkipAutoComplete,\r\n getTake: getTake,\r\n getTakeAutoComplete: getTakeAutoComplete,\r\n getMinLengthAutoComplete: getMinLengthAutoComplete,\r\n getMinLengthAutoCompleteBigTable: getMinLengthAutoCompleteBigTable,\r\n getMinLengthAutoCompleteSmallTable: getMinLengthAutoCompleteSmallTable,\r\n getMaxSizePagination: getMaxSizePagination,\r\n inicializar: activate\r\n };\r\n\r\n return service;\r\n\r\n function activate() {\r\n //paginacao().then(function (response) {\r\n //take = response.take;\r\n // takeAutoComplete = response.takeAutoComplete;\r\n //minLengthAutoCompleteBigTable = response.minLengthAutoCompleteBigTable;\r\n //minLengthAutoCompleteSmallTable = response.minLengthAutoCompleteSmallTable;\r\n // maxSizePagination = response.maxSizePagination;\r\n //});\r\n }\r\n function getTake() {\r\n return take;\r\n }\r\n\r\n function getTakeAutoComplete() {\r\n return takeAutoComplete;\r\n }\r\n\r\n \r\n function getMinLengthAutoComplete() {\r\n return minLengthAutoComplete;\r\n }\r\n\r\n function getMinLengthAutoCompleteBigTable() {\r\n return minLengthAutoCompleteBigTable;\r\n }\r\n\r\n function getMinLengthAutoCompleteSmallTable() {\r\n return minLengthAutoCompleteSmallTable;\r\n }\r\n\r\n function getMaxSizePagination() {\r\n return maxSizePagination;\r\n }\r\n\r\n function getSkipAutoComplete(paginaAtual) {\r\n return (paginaAtual - 1) * takeAutoComplete;\r\n }\r\n\r\n function getSkip(paginaAtual) {\r\n return (paginaAtual - 1) * take;\r\n }\r\n\r\n function paginacao() {\r\n var req = {\r\n method: 'GET',\r\n url: api\r\n };\r\n var deferred = $q.defer();\r\n\r\n $http(req).success(function (data, status, headers, config) {\r\n deferred.resolve(data);\r\n });\r\n return deferred.promise;\r\n }\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.popover')\r\n .directive('mpsPopoverCloseOthers', mpsPopoverCloseOthers);\r\n\r\n mpsPopoverCloseOthers.$inject = ['$rootScope'];\r\n function mpsPopoverCloseOthers($rootScope) {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'A',\r\n link: link,\r\n scope: {\r\n mpsPopoverCloseOthers: '=',\r\n mpsPopoverCloseOthersParent: '=?'\r\n }\r\n };\r\n\r\n return directive;\r\n\r\n function link(scope, element, attrs, ctrl) {\r\n scope.mpsPopoverCloseOthersParent = scope.mpsPopoverCloseOthersParent || '';\r\n\r\n element.bind('click', function (e) {\r\n $rootScope.$emit('popoverClicked', { id: scope.$id, parent: attrs.mpsPopoverCloseOthersParent });\r\n });\r\n $rootScope.$on('popoverClicked', function (ev, args) {\r\n if (attrs.mpsPopoverCloseOthers != args.parent && scope.$id != args.id) {\r\n scope.mpsPopoverCloseOthers = false;\r\n }\r\n });\r\n $rootScope.$on('popoverCloseAll', function (ev, args) {\r\n scope.mpsPopoverCloseOthers = false;\r\n });\r\n }\r\n }\r\n\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.paginacao')\r\n .directive('typeaheadTrigger', typeaheadTrigger);\r\n\r\n typeaheadTrigger.$inject = ['$timeout'];\r\n function typeaheadTrigger($timeout) {\r\n // Usage:\r\n // \r\n var directive = {\r\n require: 'ngModel',\r\n scope: {\r\n typeaheadText: '=',\r\n triggerFlag: '='\r\n },\r\n link: link\r\n };\r\n\r\n return directive;\r\n\r\n function link(scope, element, attrs, ctrl) {\r\n\r\n scope.$watch('triggerFlag', function (value) {\r\n if (scope.triggerFlag) {\r\n ctrl.$setViewValue('_clear_typeahead_');\r\n ctrl.$setViewValue(scope.typeaheadText);\r\n }\r\n });\r\n }\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .directive('permissaoPerfil', permissaoPerfil);\r\n\r\n permissaoPerfil.$inject = ['seguranca'];\r\n function permissaoPerfil(seguranca) {\r\n var directive = {\r\n restrict: 'A',\r\n link: link\r\n };\r\n\r\n return directive;\r\n\r\n function link(scope, element, attrs, model) {\r\n if (!seguranca.verificarPermissaoPerfil(attrs.permissaoPerfil)) {\r\n element.remove();\r\n }\r\n }\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .factory('segurancaAuthEventsListener', segurancaAuthEventsListener);\r\n\r\n segurancaAuthEventsListener.$inject = ['$rootScope', '$timeout', 'seguranca', 'AUTH_EVENTS'];\r\n /* @ngInject */\r\n function segurancaAuthEventsListener($rootScope, $timeout, seguranca, AUTH_EVENTS) {\r\n var service = {\r\n inicializar: inicializar\r\n };\r\n\r\n return service;\r\n\r\n function inicializar() {\r\n $rootScope.$on('$stateChangeStart', onStateChangeStart);\r\n }\r\n\r\n function onStateChangeStart(event, toState, toParams) {\r\n if (toState.data && toState.data.requireAuthorization) {\r\n if (seguranca.authenticated) {\r\n var autorizado = true;\r\n var recurso = '';\r\n if (toState.data.permission) {\r\n recurso = String(toState.data.permission.resource || '').trim();\r\n if (recurso.length > 0) {\r\n //var permissions = seguranca.getPermission(recurso);\r\n //autorizado = permissions.hasPermission(toState.data.permission.level || 15);\r\n //autorizado = true;\r\n }\r\n }\r\n\r\n if (!autorizado) {\r\n event.preventDefault();\r\n $timeout(function () {\r\n $rootScope.$broadcast(AUTH_EVENTS.notAuthorized, { state: toState });\r\n });\r\n }\r\n }\r\n else {\r\n event.preventDefault();\r\n $timeout(function () {\r\n $rootScope.$broadcast(AUTH_EVENTS.notAuthenticated, { state: toState });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .factory('segurancaAuthService', dataservice);\r\n\r\n dataservice.$inject = ['$http', '$window'];\r\n /* @ngInject */\r\n function dataservice($http, $window) {\r\n var service = {\r\n realizarLogin: realizarLogin,\r\n verificarAcesso: verificarAcesso,\r\n esqueciSenha: esqueciSenha\r\n };\r\n\r\n return service;\r\n\r\n function realizarLogin(username, perfilAcesso) {\r\n var params = { usuario: username, matricula: perfilAcesso.matricula, perfil: perfilAcesso.perfil };\r\n var url = '/RecadastroAuxSaude-API/seguranca/autenticacao';\r\n return $http.post(url, params);\r\n }\r\n\r\n function verificarAcesso(username, password) {\r\n var credenciais = $window.btoa(username + ':' + password);\r\n var config = { headers: { Authorization: 'Basic ' + credenciais, 'X-Requested-With': 'XMLHttpRequest' } };\r\n var url = '/RecadastroAuxSaude-API/seguranca/verificar-acesso';\r\n\r\n return $http.get(url, config);\r\n }\r\n\r\n function esqueciSenha(matricula) {\r\n var req = {\r\n method: 'GET',\r\n url: '/RecadastroAuxSaude-API/seguranca/email/esqueci-senha/' + matricula\r\n };\r\n return $http(req);\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .factory('segurancaHttpInterceptorService', segurancaHttpInterceptorService);\r\n\r\n segurancaHttpInterceptorService.$inject = ['$q', '$injector'];\r\n /* @ngInject */\r\n function segurancaHttpInterceptorService($q, $injector) {\r\n var apiRegExp = /api\\//i;\r\n return {\r\n request: function (config) {\r\n if (apiRegExp.test(config.url)) {\r\n config.headers['X-Requested-With'] = 'XMLHttpRequest';\r\n if (!('Authorization' in config.headers)) {\r\n var security = $injector.get('seguranca');\r\n if (security && security.token)\r\n config.headers.Authorization = 'Bearer ' + security.token;\r\n }\r\n }\r\n return config || $q.when(config);\r\n },\r\n responseError: function (response) {\r\n var AUTH_EVENTS = $injector.get('AUTH_EVENTS');\r\n var $rootScope = $injector.get('$rootScope');\r\n var $state = $injector.get('$state');\r\n var eventoConhecido = {\r\n 401: AUTH_EVENTS.notAuthenticated,\r\n 403: AUTH_EVENTS.notAuthorized,\r\n 404: AUTH_EVENTS.notFound,\r\n 419: AUTH_EVENTS.sessionTimeout,\r\n 500: AUTH_EVENTS.serverError\r\n }[response.status];\r\n if (eventoConhecido)\r\n $rootScope.$broadcast(eventoConhecido, { state: $state.current, response: response });\r\n else\r\n $rootScope.$broadcast(AUTH_EVENTS.otherError, { state: $state.current, response: response });\r\n return $q.reject(response);\r\n }\r\n };\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .config(httpConfig)\r\n .run(initRoutes);\r\n\r\n httpConfig.$inject = ['$httpProvider'];\r\n /* @ngInject */\r\n function httpConfig($httpProvider) {\r\n $httpProvider.interceptors.push('segurancaHttpInterceptorService');\r\n }\r\n\r\n initRoutes.$inject = ['segurancaAuthEventsListener'];\r\n /* @ngInject */\r\n function initRoutes(segurancaAuthEventsListener) {\r\n segurancaAuthEventsListener.inicializar();\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .constant('nivelAcesso', { SELECIONAR: 1, INSERIR: 2, MODIFICAR: 4, EXCLUIR: 8 })\r\n .constant('recursos', {\r\n perfilGeral: 'perfil-geral',\r\n perfilGerencia: 'perfil-gerencia'\r\n })\r\n .constant('AUTH_EVENTS', {\r\n loginSuccess: 'auth-login-success',\r\n loginFailed: 'auth-login-failed',\r\n logoutSuccess: 'auth-logout-success',\r\n sessionTimeout: 'auth-session-timeout',\r\n notAuthenticated: 'auth-not-authenticated',\r\n notAuthorized: 'auth-not-authorized',\r\n notFound: 'auth-not-found',\r\n serverError: 'auth-internal-server-error',\r\n otherError: 'auth-response-error'\r\n });\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.seguranca')\r\n .factory('seguranca', seguranca);\r\n\r\n seguranca.$inject = ['$http', '$timeout', '$window', '$rootScope', 'storage', 'segurancaAuthService', 'AUTH_EVENTS'];\r\n /* @ngInject */\r\n function seguranca($http, $timeout, $window, $rootScope, storage, segurancaAuthService, AUTH_EVENTS) {\r\n var user = null;\r\n var matricula = null;\r\n function getUser() {\r\n if (user === null) {\r\n var stored = storage.getItem('security');\r\n if (angular.isObject(stored) && angular.isString(stored.name) && angular.isString(stored.token))\r\n user = stored;\r\n }\r\n if (user !== null) {\r\n var permissionToken = decodeJWT(user.token);\r\n if (permissionToken === null)\r\n return null;\r\n if (!matricula && permissionToken.conteudo)\r\n matricula = permissionToken.conteudo.unique_name;\r\n }\r\n return user;\r\n }\r\n function setUser(value) {\r\n storage.setItem('security', value);\r\n user = value;\r\n if (value === null)\r\n matricula = null;\r\n }\r\n function decodeJWT(codedToken) {\r\n var expr = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var parts = expr.exec(codedToken);\r\n if (!parts || parts.length != 4)\r\n return null;\r\n var decodedToken = {\r\n cabecalho: angular.fromJson($window.atob(parts[1])),\r\n conteudo: angular.fromJson($window.atob(parts[2])),\r\n assinatura: parts[3]\r\n };\r\n if (Math.round(new Date().getTime() / 1000) > decodedToken.conteudo.exp)\r\n return null;\r\n return decodedToken;\r\n }\r\n\r\n var api = {\r\n get authenticated() {\r\n return getUser() !== null;\r\n },\r\n get username() {\r\n var user = getUser();\r\n return user !== null ? user.name : '';\r\n },\r\n get userMatricula() {\r\n var user = getUser();\r\n return user !== null ? matricula : '';\r\n },\r\n get token() {\r\n var user = getUser();\r\n return user !== null ? user.token : '';\r\n },\r\n temporaryUser: function (username, token) {\r\n setUser({\r\n name: username,\r\n token: token\r\n });\r\n },\r\n login: function (username, response) {\r\n setUser(null);\r\n $timeout(function () {\r\n setUser({\r\n name: username,\r\n token: response.data.token\r\n });\r\n $rootScope.$broadcast(AUTH_EVENTS.loginSuccess);\r\n });\r\n },\r\n logout: function (callback) {\r\n setUser(null);\r\n if (angular.isFunction(callback))\r\n $timeout(function () { callback(true); });\r\n $rootScope.$broadcast(AUTH_EVENTS.logoutSuccess);\r\n },\r\n clearTemporaryUser: function () {\r\n setUser(null);\r\n },\r\n getPermission: function (resource) {\r\n /*jslint bitwise: true*/\r\n var user = getUser();\r\n var authenticated = user !== null;\r\n var permission = 1;\r\n if (authenticated) {\r\n var tokenPermissoes = decodeJWT(user.token);\r\n var resourcePermissions = tokenPermissoes.conteudo['permissao:' + resource];\r\n if (angular.isDefined(resourcePermissions))\r\n permission = resourcePermissions;\r\n }\r\n var result = {\r\n get authenticated() { return authenticated; },\r\n get resource() { return resource; },\r\n get value() { return permission; },\r\n hasPermission: function (level) { return authenticated && (permission & level) == level; }\r\n };\r\n return result;\r\n },\r\n verificarPermissaoPerfil: function (perfil) {\r\n var user = getUser();\r\n var authenticated = user !== null;\r\n if (authenticated) {\r\n var tokenPermissoes = decodeJWT(user.token);\r\n var permissao = tokenPermissoes.conteudo['permissao:perfil-' + perfil];\r\n return angular.isDefined(permissao);\r\n }\r\n }\r\n };\r\n\r\n return api;\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.login')\r\n .controller('PerfisModalController', PerfisModalController);\r\n\r\n PerfisModalController.$inject = ['$uibModalInstance', 'params'];\r\n function PerfisModalController($uibModalInstance, params) {\r\n var vm = this;\r\n\r\n // Binds\r\n // --- Variáveis\r\n vm.matricula = params.matricula;\r\n vm.grupoPerfis = params.grupoPerfis;\r\n\r\n // --- Funções\r\n vm.fechar = fechar;\r\n vm.confirmar = confirmar;\r\n\r\n inicializar();\r\n\r\n function inicializar() {\r\n obterGrupos(vm.grupoPerfis);\r\n }\r\n\r\n function obterGrupos(grupos) {\r\n vm.perfis = grupos.map(function (t) {\r\n return {\r\n nome: t.nome.substring(t.nome.lastIndexOf(' ') + 1),\r\n key: t.nome\r\n }\r\n });\r\n }\r\n\r\n function fechar() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function confirmar() {\r\n $uibModalInstance.close({ $value: { matricula: vm.matricula, perfil: vm.perfil.key } });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.matricula')\r\n .controller('MatriculaSelecaoController', MatriculaSelecaoController);\r\n\r\n MatriculaSelecaoController.$inject = ['$uibModal', 'matriculaService', 'mpsPaginacaoService', '$state'];\r\n function MatriculaSelecaoController($uibModal, matriculaService, mpsPaginacaoService, $state) {\r\n /* jshint validthis:true */\r\n var vm = this;\r\n\r\n //#region Binds\r\n\r\n //#region Váriáveis\r\n\r\n vm.flagBlur = false;\r\n vm.itemSelecionado = vm.itemSelecionado || null;\r\n vm.minLengthAutoComplete = mpsPaginacaoService.getMinLengthAutoComplete();\r\n vm.naoEncontrado = false;\r\n vm.pesquisando = false;\r\n vm.total = 0;\r\n vm.trigger = false;\r\n vm.triggerText = '';\r\n vm.viewValue = null;\r\n\r\n //#region Paginação\r\n\r\n vm.maximoPaginasMostradas = mpsPaginacaoService.getMaxSizePagination();\r\n vm.paginaAtual = 1;\r\n vm.takeAutoComplete = mpsPaginacaoService.getTakeAutoComplete();\r\n\r\n //#endregion\r\n\r\n //#endregion\r\n\r\n //#region Funções\r\n\r\n vm.autoCompleteSelecionado = autoCompleteSelecionado;\r\n vm.buscarAutoComplete = buscarAutoComplete;\r\n vm.modelValueChanged = modelValueChanged;\r\n vm.onBlur = onBlur;\r\n vm.criarComboAutoComplete = criarComboAutoComplete;\r\n\r\n //#endregion\r\n\r\n //#endregion\r\n\r\n //#region Declaração de funções\r\n\r\n function buscarAutoComplete(codigoOuDescricao) {\r\n if (!vm.trigger)\r\n vm.paginaAtual = 1;\r\n\r\n var skip = mpsPaginacaoService.getSkipAutoComplete(vm.paginaAtual);\r\n vm.itemSelecionado = null;\r\n vm.triggerText = codigoOuDescricao;\r\n\r\n return matriculaService.buscarAutoComplete(vm.recadastramentoId, codigoOuDescricao, skip, vm.takeAutoComplete, \"Nome\").then(function (response) {\r\n vm.total = response.total;\r\n vm.trigger = false;\r\n criarComboAutoComplete(response.registros);\r\n return response.registros;\r\n });\r\n }\r\n\r\n function criarComboAutoComplete(registros) {\r\n angular.forEach(registros, function(registro) {\r\n registro.comboText = registro.matricula + ' - ' + registro.nome;\r\n });\r\n }\r\n\r\n function autoCompleteSelecionado(item, model, label) {\r\n if (model && model.matricula) {\r\n vm.itemSelecionado = model;\r\n vm.updateValue(model);\r\n } else {\r\n vm.itemSelecionado = null;\r\n vm.updateValue(null);\r\n }\r\n }\r\n\r\n function onBlur(valid) {\r\n if (!valid || !vm.itemSelecionado || !angular.isObject(vm.viewValue)) {\r\n vm.flagBlur = true;\r\n vm.itemSelecionado = null;\r\n vm.updateValue(null);\r\n vm.naoEncontrado = false;\r\n }\r\n }\r\n\r\n function modelValueChanged(registro) {\r\n if (!registro) {\r\n vm.itemSelecionado = null;\r\n if (!vm.flagBlur)\r\n vm.viewValue = null;\r\n\r\n vm.flagBlur = false;\r\n\r\n return;\r\n }\r\n\r\n vm.flagBlur = false;\r\n\r\n if (vm.itemSelecionado && vm.itemSelecionado.matricula === registro.matricula) {\r\n if (!vm.viewValue)\r\n vm.viewValue = vm.itemSelecionado;\r\n return;\r\n }\r\n\r\n matriculaService.buscarItem(registro.matricula).then(function (response) {\r\n vm.itemSelecionado = response;\r\n vm.viewValue = response;\r\n });\r\n }\r\n\r\n //#endregion\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.matricula')\r\n .directive('matriculaSelecao', matriculaSelecao);\r\n\r\n matriculaSelecao.$inject = ['$timeout'];\r\n function matriculaSelecao($timeout) {\r\n // Usage:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n require: '^ngModel',\r\n templateUrl: 'app/matricula/components/matricula.selecao.html',\r\n controller: 'MatriculaSelecaoController',\r\n controllerAs: 'vm',\r\n bindToController: true,\r\n scope: {\r\n itemSelecionado: '=?',\r\n autoFocus: '=?',\r\n recadastramentoId: '=?'\r\n },\r\n link: link\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs, model) {\r\n //Método de acesso ao 'viewValue'\r\n scope.vm.updateValue = function (value) {\r\n $timeout(function () {\r\n model.$setViewValue(value);\r\n });\r\n };\r\n\r\n //#region Watch\r\n\r\n function getModelValue() {\r\n return model.$modelValue;\r\n }\r\n\r\n function modelValueChanged() {\r\n scope.vm.modelValueChanged(model.$modelValue);\r\n }\r\n\r\n //Responsável por identificar alterações ngModel\r\n scope.$watch(getModelValue, modelValueChanged);\r\n\r\n //#endregion\r\n\r\n //#region Auto Focus\r\n\r\n //Inicia propriedade 'autoFocus'\r\n if (angular.isUndefined(attrs.autoFocus))\r\n scope.vm.autoFocus = false;\r\n else\r\n scope.vm.autoFocus = angular.isUndefined(scope.vm.autoFocus) ? true : scope.vm.autoFocus;\r\n\r\n //#endregion\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('RecadastramentoFormularioEditarController', RecadastramentoFormularioEditarController);\r\n\r\n RecadastramentoFormularioEditarController.$inject = ['$rootScope', '$state', '$uibModal', 'seguranca', '$q',\r\n 'recadastramentoFormularioService', 'toastr', 'recadastramentoService'];\r\n function RecadastramentoFormularioEditarController($rootScope, $state, $uibModal, seguranca, $q,\r\n recadastramentoFormularioService, toastr, recadastramentoService) {\r\n var vm = this;\r\n\r\n // Binds\r\n // --- Variáveis\r\n vm.arquivo = null;\r\n vm.busy = false;\r\n vm.id = $state.params.id;\r\n vm.ehAuditoria = $state.params.ehAuditoria;\r\n vm.ehExcecao = $state.params.ehExcecao;\r\n vm.recadastramentoSomenteLeitura = $state.params.recadastramentoSomenteLeitura;\r\n vm.situacaoID = $state.params.situacaoID;\r\n vm.perfilGerencia = seguranca.verificarPermissaoPerfil('gerencia');\r\n vm.ehConsulta = $state.params.ehConsulta;\r\n vm.paginaAtual = $state.params.paginaAtual;\r\n vm.recadastramentoID = $state.params.recadastramentoID;\r\n vm.matriculaConsulta = $state.params.matriculaConsulta;\r\n vm.matriculasAssociadas = null;\r\n vm.matriculaPrincipal = seguranca.userMatricula;\r\n vm.motivosRecusa = ['Documento ilegível', 'Valores divergentes em relação ao da declaração',\r\n 'Sem declaração comprobatória', 'Retornado a pedido do juiz/servidor'];\r\n\r\n vm.item = {};\r\n vm.backup = angular.copy(vm.item);\r\n vm.totaisBeneficiarios = {};\r\n\r\n // --- Funções\r\n vm.abrirModalAnexoPdf = abrirModalAnexoPdf;\r\n vm.buscarDadosRecadastramento = buscarDadosRecadastramento;\r\n vm.cancelar = cancelar;\r\n vm.exibeItem = exibeItem;\r\n vm.houveAlteracao = houveAlteracao;\r\n vm.naoPodeSalvar = naoPodeSalvar;\r\n vm.podeEditar = podeEditar;\r\n vm.podeMarcarHomologacao = podeMarcarHomologacao;\r\n vm.salvar = salvar;\r\n vm.verificarDeclaracoesMarcadas = verificarDeclaracoesMarcadas;\r\n vm.podeConfirmarValidacao = podeConfirmarValidacao;\r\n vm.confirmarValidacao = confirmarValidacao;\r\n vm.existeMotivosRecusa = existeMotivosRecusa;\r\n vm.foiRecusado = foiRecusado;\r\n vm.buscarFormularioExcecao = buscarFormularioExcecao;\r\n vm.onBlur = onBlur;\r\n vm.mostrarValorDivergente = mostrarValorDivergente;\r\n vm.podeMarcarDeclaracoes = podeMarcarDeclaracoes;\r\n vm.podeImprimir = podeImprimir;\r\n vm.abrirModalParaImpressao = abrirModalParaImpressao;\r\n vm.validacaoEmAndamento = validacaoEmAndamento;\r\n vm.permissaoAuditoria = permissaoAuditoria;\r\n\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n if (vm.ehAuditoria || vm.ehConsulta) {\r\n promises.push(buscarFormularioParaAuditoria());\r\n }\r\n else if (vm.ehExcecao || vm.perfilGerencia) {\r\n promises.push(recadastramentoService.buscarItem(vm.recadastramentoID).then(function (response) {\r\n vm.item.recadastramento = response.data;\r\n vm.item.recadastramento.periodoReciboDataInicial = new Date(vm.item.recadastramento.periodoReciboDataInicial);\r\n vm.item.recadastramento.periodoReciboDataFinal = new Date(vm.item.recadastramento.periodoReciboDataFinal);\r\n // É necessário inicializar a propriedade 'anexos' caso o formulário ainda não possua nenhum\r\n if (!vm.item.anexos)\r\n vm.item.anexos = [];\r\n }));\r\n }\r\n else {\r\n // Obtém a lista de matrículas associadas ao usuário logado, e retorna os dados de recadastramento dessas matrículas\r\n promises.push(buscarMatriculasAssociadas());\r\n }\r\n $q.all(promises).then(function () {\r\n angular.forEach(vm.item.detalhes, function (item, index) {\r\n calcularDiferenca(index);\r\n });\r\n calcularTotais()\r\n vm.backup = angular.copy(vm.item);\r\n });\r\n }\r\n\r\n function buscarFormularioExcecao() {\r\n if (!vm.matricula)\r\n return;\r\n recadastramentoFormularioService.buscarFormularioExcecao(vm.matricula.matricula, vm.recadastramentoID).then(function (response) {\r\n vm.item = response.data;\r\n vm.matriculaPrincipal = vm.item.detalhes.length > 0 ? vm.item.detalhes[0].matricula : vm.matriculaPrincipal;\r\n vm.matriculasAssociadas = vm.item.funcionarios;\r\n vm.matricula = vm.matriculasAssociadas.find(function (m) { return m.matricula === vm.matriculaPrincipal; });\r\n\r\n // Remove valores duplicados das linhas\r\n removerValoresDuplicados();\r\n\r\n // É necessário inicializar a propriedade 'anexos' caso o formulário ainda não possua nenhum\r\n if (!vm.item.anexos)\r\n vm.item.anexos = [];\r\n vm.totaisBeneficiarios = {};\r\n angular.forEach(vm.item.detalhes, function (item, index) {\r\n calcularDiferenca(index);\r\n });\r\n calcularTotais();\r\n vm.id = vm.item.id;\r\n vm.backup = angular.copy(vm.item);\r\n });\r\n }\r\n\r\n function buscarFormularioParaAuditoria() {\r\n return recadastramentoFormularioService.buscarFormularioParaAuditoria(vm.id, vm.recadastramentoID, vm.matriculaConsulta).then(function (response) {\r\n vm.item = response.data;\r\n vm.matriculaPrincipal = vm.item.detalhes.length > 0 ? vm.item.detalhes[0].matricula : vm.matriculaPrincipal;\r\n vm.matriculasAssociadas = vm.item.funcionarios;\r\n vm.matricula = vm.matriculasAssociadas.find(function (m) { return m.matricula === vm.matriculaPrincipal; });\r\n\r\n // Remove valores duplicados das linhas\r\n removerValoresDuplicados();\r\n // Marca os checkbox das Declarações se o formulário estiver marcado como \"Pronto para Homologação pela SEBEN\"\r\n setValorInicialDeclaracoes();\r\n\r\n // É necessário inicializar a propriedade 'anexos' caso o formulário ainda não possua nenhum\r\n if (!vm.item.anexos)\r\n vm.item.anexos = [];\r\n });\r\n }\r\n\r\n function buscarMatriculasAssociadas() {\r\n // Preenche a combo de matrículas\r\n return recadastramentoFormularioService.buscarMatriculasAssociadas(vm.recadastramentoID).then(function (response) {\r\n vm.matriculasAssociadas = response.data.registros;\r\n\r\n // Seleciona por padrão a matrícula do usuário logado\r\n for (var i in vm.matriculasAssociadas)\r\n if (vm.matriculasAssociadas[i].matricula == vm.matriculaPrincipal) {\r\n vm.matricula = vm.matriculasAssociadas[i];\r\n break;\r\n }\r\n\r\n // Obtém os dados de recadastramento da matrícula selecionada\r\n return buscarDadosRecadastramento(vm.matricula.matricula);\r\n });\r\n }\r\n\r\n function buscarDadosRecadastramento(matriculaConsulta) {\r\n if (!vm.matricula)\r\n return;\r\n\r\n // Retorna os dados básicos do recadastramento (descrição, período, e observação) apenas se eles ainda não foram carregados\r\n return recadastramentoFormularioService.buscarDadosRecadastramento(vm.id, vm.recadastramentoID, matriculaConsulta).then(function (response) {\r\n vm.item = response.data;\r\n\r\n // Remove valores duplicados das linhas\r\n removerValoresDuplicados();\r\n // Marca os checkbox das Declarações se o formulário estiver marcado como \"Pronto para Homologação pela SEBEN\"\r\n setValorInicialDeclaracoes();\r\n\r\n // É necessário inicializar a propriedade 'anexos' caso o formulário ainda não possua nenhum\r\n if (!vm.item.anexos)\r\n vm.item.anexos = [];\r\n });\r\n }\r\n\r\n function salvar(form) {\r\n if (!form.$valid)\r\n return;\r\n if (vm.item.prontoParaHomologacao && !temAnexo()) {\r\n toastr.error('É obrigatório o anexo de pelo menos um documento pdf');\r\n return;\r\n }\r\n if (!vm.matricula) {\r\n toastr.error('É obrigatório selecionar uma matrícula');\r\n return;\r\n }\r\n\r\n // Detalhes\r\n var detalhes = [];\r\n for (var i in vm.item.detalhes) {\r\n var item = {\r\n matricula: vm.item.detalhes[i].matricula,\r\n seguradora: vm.item.detalhes[i].seguradora,\r\n instituicao: vm.item.detalhes[i].instituicao,\r\n beneficiario: vm.item.detalhes[i].beneficiario,\r\n terceiro: vm.item.detalhes[i].terceiro,\r\n mesAno: vm.item.detalhes[i].mesAno,\r\n valorContrato: vm.item.detalhes[i].valorContrato,\r\n valorInformado: vm.item.detalhes[i].valorInformado\r\n };\r\n\r\n detalhes.push(item);\r\n }\r\n\r\n var command = {\r\n recadastramentoID: vm.recadastramentoID,\r\n prontoParaHomologacao: vm.item.prontoParaHomologacao,\r\n anexos: vm.item.anexos,\r\n detalhes: detalhes,\r\n ehExcecao: vm.ehExcecao || vm.perfilGerencia\r\n };\r\n\r\n vm.busy = true;\r\n var matricula = vm.ehExcecao || vm.perfilGerencia ? vm.matricula.matricula : undefined;\r\n var promise, msg;\r\n if (!vm.id || vm.id === '0') {\r\n msg = 'Item cadastrado com sucesso.';\r\n promise = recadastramentoFormularioService.cadastrar(command, matricula);\r\n } else {\r\n msg = 'Item atualizado com sucesso.';\r\n promise = recadastramentoFormularioService.atualizar(vm.id, command, matricula);\r\n }\r\n promise.then(function () {\r\n toastr.success(msg);\r\n retornarEstadoAnterior();\r\n }, function (error) {\r\n if (error.data && error.data.modelState && error.data.modelState.command && error.data.modelState.command[0]) {\r\n toastr.error('Tamanho total de anexos excedido. (10MB)');\r\n }\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n\r\n function retornarEstadoAnterior() {\r\n if (vm.ehExcecao || vm.perfilGerencia) {\r\n $state.go('^.listar-gerencia', { recadastramentoID: vm.recadastramentoID });\r\n } else {\r\n $state.go('^.listar');\r\n }\r\n }\r\n\r\n function removerValoresDuplicados() {\r\n if (vm.item.detalhes.length) {\r\n var itemAnterior = vm.item.detalhes[0];\r\n for (var i = 1; i < vm.item.detalhes.length; i++) {\r\n if (vm.item.detalhes[i].seguradora == itemAnterior.seguradora &&\r\n vm.item.detalhes[i].instituicao == itemAnterior.instituicao &&\r\n vm.item.detalhes[i].beneficiario == itemAnterior.beneficiario) {\r\n vm.item.detalhes[i].seguradora = '';\r\n vm.item.detalhes[i].instituicao = '';\r\n vm.item.detalhes[i].beneficiario = '';\r\n } else\r\n itemAnterior = vm.item.detalhes[i];\r\n }\r\n }\r\n }\r\n\r\n function setValorInicialDeclaracoes() {\r\n if (!vm.item)\r\n return;\r\n\r\n vm.declaroMudancaPlano = vm.declaroDespesas = vm.declaroBeneficiarios = vm.item.prontoParaHomologacao;\r\n }\r\n\r\n function houveAlteracao() {\r\n return !angular.equals(vm.item, vm.backup);\r\n }\r\n\r\n function abrirModalAnexoPdf() {\r\n $uibModal.open({\r\n templateUrl: 'app/recadastramento/formulario/pdf-modals/anexo-pdf-modal.html',\r\n controller: 'AnexoPdfModalController',\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n size: 'md',\r\n resolve: {\r\n params: function () {\r\n return { anexos: vm.item.anexos, formularioID: vm.id, podeEditar: vm.podeEditar() };\r\n }\r\n }\r\n });\r\n }\r\n\r\n function temAnexo() {\r\n return vm.item.anexos && vm.item.anexos.length > 0;\r\n }\r\n\r\n function podeEditar() {\r\n if (!vm.item)\r\n return;\r\n\r\n // if ((vm.situacaoID === 2) && (vm.ehExcecao || vm.perfilGerencia))\r\n if ((vm.ehExcecao || vm.perfilGerencia))\r\n return true;\r\n\r\n // Pendente, Em Andamento ou Recusado\r\n return (vm.item.status == 1 || vm.item.status == 2 || vm.item.status == 5 || vm.item.status == 8) && !vm.recadastramentoSomenteLeitura;\r\n }\r\n\r\n function permissaoAuditoria() {\r\n if (vm.ehAuditoria || vm.perfilGerencia)\r\n return true;\r\n else\r\n return false;\r\n }\r\n \r\n\r\n function naoPodeSalvar(form) {\r\n return !vm.houveAlteracao() || (form.$submitted && (vm.busy || !form.$valid));\r\n }\r\n\r\n function exibeItem(item) {\r\n if (!vm.matricula)\r\n return false;\r\n return item.matricula === vm.matricula.matricula;\r\n }\r\n\r\n function podeMarcarHomologacao() {\r\n return podeEditar() && !vm.perfilGerencia && vm.declaroMudancaPlano && vm.declaroDespesas && vm.declaroBeneficiarios;\r\n }\r\n\r\n function verificarDeclaracoesMarcadas() {\r\n if (!vm.declaroMudancaPlano || !vm.declaroDespesas || !vm.declaroBeneficiarios)\r\n vm.item.prontoParaHomologacao = false;\r\n }\r\n\r\n function cancelar() {\r\n if (vm.ehAuditoria || vm.ehConsulta)\r\n $state.go('^.listar-gerencia', { recadastramentoID: vm.recadastramentoID, paginaAtual: vm.paginaAtual });\r\n else\r\n $state.go($state.current.ncyBreadcrumb.parent, { recadastramentoID: vm.recadastramentoID });\r\n }\r\n\r\n function validacaoEmAndamento() {\r\n return vm.validacao && vm.validacao.aprovadoRecusado;\r\n }\r\n\r\n function podeConfirmarValidacao() {\r\n if (validacaoEmAndamento()) {\r\n if (vm.validacao.aprovadoRecusado === 'Recusado') {\r\n if (vm.validacao.motivoRecusa)\r\n return true;\r\n else\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function existeMotivosRecusa() {\r\n if (vm.item.motivosRecusa && vm.item.motivosRecusa.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function foiRecusado() {\r\n if (validacaoEmAndamento()) {\r\n return vm.validacao.aprovadoRecusado === 'Recusado';\r\n }\r\n return false;\r\n }\r\n\r\n function confirmarValidacao() {\r\n if (validacaoEmAndamento()) {\r\n var item = {\r\n formularioID: vm.item.id,\r\n novoStatus: vm.validacao.aprovadoRecusado === 'Aprovado' ? 4 : 5,\r\n motivo: vm.validacao.motivoRecusa,\r\n complementacao: vm.validacao.complementacao\r\n };\r\n vm.busy = true;\r\n recadastramentoFormularioService.salvarValidacao(item).then(function () {\r\n toastr.success('Validação salva com sucesso.');\r\n $state.go('^.visualizar-formulario', {\r\n recadastramentoID: vm.recadastramentoID,\r\n id: vm.item.id,\r\n ehConsulta: true,\r\n matriculaConsulta: vm.matricula.matricula,\r\n paginaAtual: vm.paginaAtual\r\n });\r\n }).finally(function () {\r\n vm.busy = false;\r\n });\r\n }\r\n }\r\n\r\n function onBlur(index) {\r\n if (vm.item.detalhes[index].beneficiario) {\r\n var valorInformado = vm.item.detalhes[index].valorInformado;\r\n var replicate = true;\r\n while (replicate) {\r\n if (!vm.item.detalhes[index].valorInformado || vm.item.detalhes[index].valorInformado === 0) {\r\n vm.item.detalhes[index].valorInformado = valorInformado;\r\n calcularDiferenca(index);\r\n }\r\n index = index + 1;\r\n replicate = index < vm.item.detalhes.length && !vm.item.detalhes[index].beneficiario;\r\n }\r\n } else {\r\n calcularDiferenca(index);\r\n }\r\n calcularTotais();\r\n }\r\n\r\n function calcularDiferenca(index) {\r\n if (!vm.item.detalhes[index].valorInformado) {\r\n vm.item.detalhes[index].valorInformado = 0;\r\n }\r\n var diferenca = vm.item.detalhes[index].valorInformado - vm.item.detalhes[index].valorContrato;\r\n if (diferenca > 0) {\r\n vm.item.detalhes[index].excedente = diferenca;\r\n vm.item.detalhes[index].deficit = 0;\r\n } else {\r\n vm.item.detalhes[index].excedente = 0;\r\n vm.item.detalhes[index].deficit = diferenca;\r\n }\r\n }\r\n\r\n function calcularTotais() {\r\n vm.totalInformado = vm.totalContrato = vm.totalDeficit = vm.totalExcedente = 0;\r\n var beneficiario = '';\r\n angular.forEach(vm.item.detalhes, function (item, index) {\r\n if (!!item.valorInformado) {\r\n vm.totalInformado += item.valorInformado;\r\n }\r\n vm.totalContrato += item.valorContrato;\r\n vm.totalDeficit += item.deficit;\r\n vm.totalExcedente += item.excedente;\r\n\r\n if (beneficiario !== item.beneficiario && item.beneficiario !== '') {\r\n beneficiario = item.beneficiario;\r\n }\r\n if (!vm.totaisBeneficiarios[beneficiario] || index === 0) {\r\n vm.totaisBeneficiarios[beneficiario] = {};\r\n vm.totaisBeneficiarios[beneficiario].informado = 0;\r\n vm.totaisBeneficiarios[beneficiario].contrato = 0;\r\n vm.totaisBeneficiarios[beneficiario].deficit = 0;\r\n vm.totaisBeneficiarios[beneficiario].excedente = 0;\r\n }\r\n vm.totaisBeneficiarios[beneficiario].informado += item.valorInformado;\r\n vm.totaisBeneficiarios[beneficiario].contrato += item.valorContrato;\r\n vm.totaisBeneficiarios[beneficiario].deficit += item.deficit;\r\n vm.totaisBeneficiarios[beneficiario].excedente += item.excedente;\r\n });\r\n }\r\n\r\n function mostrarValorDivergente(index, diferenca) {\r\n if (vm.perfilGerencia && diferenca !== 0) {\r\n var id = (diferenca > 0 ? 'excedente' : 'deficit') + index;\r\n var input = document.getElementById(id);\r\n input.style.backgroundColor = '#ff000038';\r\n }\r\n }\r\n\r\n function podeMarcarDeclaracoes() {\r\n return vm.podeEditar() && !vm.perfilGerencia;\r\n }\r\n\r\n function podeImprimir() {\r\n return vm.podeEditar() && vm.perfilGerencia;\r\n }\r\n\r\n function abrirModalParaImpressao() {\r\n var previousParams = {\r\n id: vm.id,\r\n ehAuditoria: vm.ehAuditoria,\r\n ehExcecao: vm.ehExcecao,\r\n recadastramentoSomenteLeitura: vm.recadastramentoSomenteLeitura,\r\n ehConsulta: vm.ehConsulta,\r\n paginaAtual: vm.paginaAtual,\r\n recadastramentoID: vm.recadastramentoID,\r\n matriculaConsulta: vm.matriculaConsulta\r\n }\r\n $state.go('^.impressao-formulario', {\r\n formulario: vm.item,\r\n matricula: vm.matricula.displayName,\r\n declaroMudancaPlano: vm.declaroMudancaPlano,\r\n declaroDespesas: vm.declaroDespesas,\r\n declaroBeneficiarios: vm.declaroBeneficiarios,\r\n exibeItem: vm.exibeItem,\r\n previousParams: previousParams\r\n });\r\n }\r\n\r\n $rootScope.$on('$locationChangeStart', function (event) {\r\n event.preventDefault();\r\n });\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .factory('recadastramentoFormularioService', recadastramentoFormularioService);\r\n\r\n recadastramentoFormularioService.$inject = ['$http', '$q'];\r\n function recadastramentoFormularioService($http, $q) {\r\n var api = '/RecadastroAuxSaude-API/formulario/';\r\n\r\n var service = {\r\n buscarDadosRecadastramento: buscarDadosRecadastramento,\r\n buscarMatriculasAssociadas: buscarMatriculasAssociadas,\r\n buscarFormularioParaAuditoria: buscarFormularioParaAuditoria,\r\n downloadAnexo: downloadAnexo,\r\n atualizar: atualizar,\r\n cadastrar: cadastrar,\r\n salvarValidacao: salvarValidacao,\r\n buscarFormularioExcecao: buscarFormularioExcecao,\r\n listarFormulariosRecadastramento: listarFormulariosRecadastramento\r\n };\r\n return service;\r\n\r\n function buscarDadosRecadastramento(formularioID, recadastramentoID, matriculaConsulta) {\r\n var params = {};\r\n\r\n if (formularioID)\r\n params.formularioID = formularioID;\r\n if (recadastramentoID)\r\n params.recadastramentoID = recadastramentoID;\r\n if (recadastramentoID)\r\n params.matriculaConsulta = matriculaConsulta;\r\n\r\n var req = {\r\n method: 'GET',\r\n url: api,\r\n params: params\r\n };\r\n\r\n return $http(req).then(function (response) {\r\n formatarDatasFormulario(response.data);\r\n return response;\r\n });\r\n }\r\n\r\n function listarFormulariosRecadastramento(recadastramentoID, order, skip, take, filtro, funcionario) {\r\n var params = {\r\n $skip: skip,\r\n $take: take,\r\n $order: order\r\n };\r\n if (angular.isDefined(filtro)) {\r\n params.filtro = filtro;\r\n }\r\n if (!!funcionario) {\r\n params.codigoOuDescricao = funcionario.matricula;\r\n }\r\n var req = {\r\n method: 'GET',\r\n url: api + 'listar-gerencia/' + recadastramentoID,\r\n params: params\r\n };\r\n var deferred = $q.defer();\r\n $http(req).success(function (data, status, headers, config) {\r\n angular.forEach(data.registros, function (item) {\r\n if (!!item.ultimaAtualizacao) {\r\n item.ultimaAtualizacao = formatarData(item.ultimaAtualizacao);\r\n }\r\n });\r\n deferred.resolve(data);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n function buscarMatriculasAssociadas(recadastramentoID) {\r\n var req = {\r\n method: 'GET',\r\n url: api + 'matriculas-associadas/' + recadastramentoID\r\n };\r\n\r\n return $http(req);\r\n }\r\n\r\n function buscarFormularioExcecao(matricula, recadastramentoID) {\r\n var params = {};\r\n\r\n if (recadastramentoID)\r\n params.recadastramentoID = recadastramentoID;\r\n\r\n var req = {\r\n method: 'GET',\r\n url: api + 'excecao/' + matricula,\r\n params: params\r\n };\r\n\r\n return $http(req).then(function (response) {\r\n formatarDatasFormulario(response.data);\r\n return response;\r\n });\r\n }\r\n\r\n function buscarFormularioParaAuditoria(formularioID, recadastramentoID, matriculaConsulta) {\r\n var params = {};\r\n\r\n if (formularioID)\r\n params.formularioID = formularioID;\r\n if (recadastramentoID)\r\n params.recadastramentoID = recadastramentoID;\r\n if (matriculaConsulta)\r\n params.matriculaConsulta = matriculaConsulta;\r\n\r\n var req = {\r\n method: 'GET',\r\n url: api + 'auditoria',\r\n params: params\r\n };\r\n\r\n return $http(req).then(function (response) {\r\n formatarDatasFormulario(response.data);\r\n return response;\r\n });\r\n }\r\n\r\n function downloadAnexo(anexo, formularioID) {\r\n var params = {};\r\n\r\n if (anexo.idArquivo)\r\n params.idArquivo = anexo.idArquivo;\r\n if (formularioID)\r\n params.formularioID = formularioID;\r\n\r\n var req = {\r\n method: 'GET',\r\n url: api + 'download',\r\n params: params,\r\n responseType: 'blob',\r\n cache: false\r\n };\r\n return $http(req);\r\n }\r\n\r\n function cadastrar(itens, matricula) {\r\n var url = itens.ehExcecao && matricula ? api + 'excecao/' + matricula : api;\r\n\r\n return $http.post(url, itens);\r\n }\r\n\r\n function atualizar(id, itens, matricula) {\r\n var url = itens.ehExcecao && matricula ? api + 'excecao/' + matricula + '/' + id : api + id;\r\n\r\n return $http.put(url, itens);\r\n }\r\n\r\n function salvarValidacao(item) {\r\n var url = api + 'novo-status-auditoria';\r\n\r\n return $http.put(url, item);\r\n }\r\n\r\n function formatarMesAno(dataTime) {\r\n var data = dataTime.substring(0, dataTime.indexOf(\"T\"));\r\n return moment(data).format(\"MM/YYYY\");\r\n }\r\n\r\n function formatarData(dataTime) {\r\n var data = dataTime.substring(0, dataTime.indexOf(\"T\"));\r\n return moment(data).format(\"DD/MM/YYYY\");\r\n }\r\n\r\n function formatarDatasFormulario(formulario) { \r\n angular.forEach(formulario.detalhes, function (item) {\r\n item.mesAno = formatarMesAno(item.mesAno);\r\n });\r\n angular.forEach(formulario.motivosRecusa, function (item) {\r\n item.dataRecusa = formatarData(item.dataRecusa);\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('RecadastramentoStatsController', RecadastramentoStatsController);\r\n\r\n RecadastramentoStatsController.$inject = ['$uibModalInstance', 'params'];\r\n function RecadastramentoStatsController($uibModalInstance, params) {\r\n var vm = this;\r\n\r\n vm.stats = params.stats;\r\n \r\n vm.fechar = fechar;\r\n\r\n function fechar() {\r\n $uibModalInstance.close();\r\n }\r\n }\r\n})();","// Include in index.html so that app level exceptions are handled.\r\n// Exclude from testRunner.html which should run exactly what it wants to run\r\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.exception')\r\n .provider('exceptionHandler', exceptionHandlerProvider)\r\n .config(config);\r\n\r\n /**\r\n * Must configure the exception handling\r\n */\r\n function exceptionHandlerProvider() {\r\n /* jshint validthis:true */\r\n this.config = {\r\n appErrorPrefix: undefined\r\n };\r\n\r\n this.configure = function (appErrorPrefix) {\r\n this.config.appErrorPrefix = appErrorPrefix;\r\n };\r\n\r\n this.$get = function() {\r\n return {config: this.config};\r\n };\r\n }\r\n\r\n config.$inject = ['$provide'];\r\n\r\n /**\r\n * Configure by setting an optional string value for appErrorPrefix.\r\n * Accessible via config.appErrorPrefix (via config value).\r\n * @param {Object} $provide\r\n */\r\n /* @ngInject */\r\n function config($provide) {\r\n $provide.decorator('$exceptionHandler', extendExceptionHandler);\r\n }\r\n\r\n extendExceptionHandler.$inject = ['$delegate', 'exceptionHandler', 'logger'];\r\n\r\n /**\r\n * Extend the $exceptionHandler service to also display a toast.\r\n * @param {Object} $delegate\r\n * @param {Object} exceptionHandler\r\n * @param {Object} logger\r\n * @return {Function} the decorated $exceptionHandler service\r\n */\r\n function extendExceptionHandler($delegate, exceptionHandler, logger) {\r\n return function(exception, cause) {\r\n var appErrorPrefix = exceptionHandler.config.appErrorPrefix || '';\r\n var errorData = {exception: exception, cause: cause};\r\n exception.message = appErrorPrefix + exception.message;\r\n $delegate(exception, cause);\r\n /**\r\n * Could add the error to a service's collection,\r\n * add errors to $rootScope, log errors to remote web server,\r\n * or log locally. Or throw hard. It is entirely up to you.\r\n * throw exception;\r\n *\r\n * @example\r\n * throw { message: 'error message we added' };\r\n */\r\n logger.error(exception.message, errorData);\r\n };\r\n }\r\n})();\r\n","(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.exception')\r\n .factory('exception', exception);\r\n\r\n /* @ngInject */\r\n function exception($q, logger) {\r\n var service = {\r\n catcher: catcher\r\n };\r\n return service;\r\n\r\n function catcher(message) {\r\n return function(e) {\r\n var thrownDescription;\r\n var newMessage;\r\n if (e.data && e.data.description) {\r\n thrownDescription = '\\n' + e.data.description;\r\n newMessage = message + thrownDescription;\r\n }\r\n e.data.description = newMessage;\r\n logger.error(newMessage);\r\n return $q.reject(e);\r\n };\r\n }\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.logger')\r\n .factory('logger', logger);\r\n\r\n logger.$inject = ['$log'];\r\n\r\n /* @ngInject */\r\n function logger($log) {\r\n var service = {\r\n showToasts: true,\r\n\r\n error: error,\r\n info: info,\r\n success: success,\r\n warning: warning,\r\n\r\n // straight to console; bypass toastr\r\n log: $log.log\r\n };\r\n\r\n return service;\r\n /////////////////////\r\n\r\n function error(message, data, title) {\r\n //toastr.error('A seguinte mensagem foi retornada pelo sistema: ' + message, \"Erro\");\r\n $log.error('Error: Recadastro: ' + message, data);\r\n }\r\n\r\n function info(message, data, title) {\r\n //toastr.info(message, title);\r\n $log.info('Info: Recadastro: ' + message, data);\r\n }\r\n\r\n function success(message, data, title) {\r\n //toastr.success(message, title);\r\n $log.success('Success: Recadastro: ' + message, data);\r\n }\r\n\r\n function warning(message, data, title) {\r\n //toastr.warning(message, title);\r\n $log.warn('Warning: Recadastro: ' + message, data);\r\n }\r\n }\r\n}());\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.editor')\r\n .config(ConfigEditor);\r\n\r\n ConfigEditor.$inject = ['$provide'];\r\n function ConfigEditor($provide) {\r\n $provide.decorator('taOptions', DecorateCustomCommandsEditor);\r\n $provide.decorator('taTools', DecorateCustomClasses);\r\n }\r\n\r\n DecorateCustomCommandsEditor.$inject = ['taRegisterTool', '$delegate'];\r\n function DecorateCustomCommandsEditor(taRegisterTool, taOptions) {\r\n\r\n taRegisterTool('backgroundColor', {\r\n display: \"\",\r\n action: function (deferred) {\r\n var self = this;\r\n this.$editor().wrapSelection('backgroundColor', this.backgroundColor);\r\n if (typeof self.listener == 'undefined') {\r\n self.listener = self.$watch('backgroundColor', function (newValue) {\r\n self.$editor().wrapSelection('backColor', newValue);\r\n });\r\n }\r\n self.$on('colorpicker-selected', function () {\r\n deferred.resolve();\r\n });\r\n self.$on('colorpicker-closed', function () {\r\n deferred.resolve();\r\n });\r\n return;\r\n }\r\n });\r\n\r\n taRegisterTool('fontColor', {\r\n display: \"\",\r\n action: function (deferred) {\r\n var self = this;\r\n if (typeof self.listener == 'undefined') {\r\n self.listener = self.$watch('fontColor', function (newValue) {\r\n self.$editor().wrapSelection('foreColor', newValue);\r\n });\r\n }\r\n self.$on('colorpicker-selected', function () {\r\n deferred.resolve();\r\n });\r\n self.$on('colorpicker-closed', function () {\r\n deferred.resolve();\r\n });\r\n return false;\r\n }\r\n });\r\n\r\n taOptions.toolbar = [\r\n ['h1', 'h2', 'h3','h4', 'p'],\r\n ['bold', 'italics', 'underline'], ['backgroundColor', 'fontColor'],\r\n ['ul', 'ol', 'indent', 'outdent'], ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],\r\n ['undo', 'redo', 'charcount']\r\n ];\r\n\r\n return taOptions;\r\n }\r\n\r\n DecorateCustomClasses.$inject = ['$delegate'];\r\n function DecorateCustomClasses(taTools) {\r\n taTools.p.iconclass = 'fa fa-paragraph';\r\n taTools.p.buttontext = '';\r\n taTools.p.title = 'Parágrafo';\r\n return taTools;\r\n }\r\n\r\n})();","/* Help configure the state-base ui.router */\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.router')\r\n .provider('routerHelper', routerHelperProvider);\r\n\r\n routerHelperProvider.$inject = ['$locationProvider', '$stateProvider', '$urlRouterProvider'];\r\n /* @ngInject */\r\n function routerHelperProvider($locationProvider, $stateProvider, $urlRouterProvider) {\r\n /* jshint validthis:true */\r\n var config = {\r\n docTitle: undefined,\r\n resolveAlways: {}\r\n };\r\n\r\n $locationProvider.html5Mode(false).hashPrefix('!');\r\n\r\n this.configure = function (cfg) {\r\n angular.extend(config, cfg);\r\n };\r\n\r\n this.$get = RouterHelper;\r\n RouterHelper.$inject = ['$location', '$rootScope', '$state', 'logger'];\r\n /* @ngInject */\r\n function RouterHelper($location, $rootScope, $state, logger) {\r\n var handlingStateChangeError = false;\r\n var hasOtherwise = false;\r\n var stateCounts = {\r\n errors: 0,\r\n changes: 0\r\n };\r\n\r\n var service = {\r\n configureStates: configureStates,\r\n getStates: getStates,\r\n stateCounts: stateCounts\r\n };\r\n\r\n init();\r\n\r\n return service;\r\n\r\n ///////////////\r\n\r\n function configureStates(states, otherwisePath) {\r\n /*jshint loopfunc: true */\r\n var sameStateUrl = [];\r\n states.forEach(function (state) {\r\n state.config.resolve = angular.extend(state.config.resolve || {}, config.resolveAlways);\r\n if (state.config && state.config.url && angular.isArray(state.config.url)) {\r\n sameStateUrl.push({\r\n sameAs: state.state,\r\n urls: state.config.url.slice(1)\r\n });\r\n state.config.url = state.config.url[0];\r\n }\r\n $stateProvider.state(state.state, state.config);\r\n });\r\n if (otherwisePath && !hasOtherwise) {\r\n hasOtherwise = true;\r\n $urlRouterProvider.otherwise(otherwisePath);\r\n }\r\n if (sameStateUrl.length > 0) {\r\n var tmp;\r\n for (var i in sameStateUrl) {\r\n for (var j in sameStateUrl[i].urls) {\r\n $urlRouterProvider.when(sameStateUrl[i].urls[j], ['$state', '$match', function ($state, $match) {\r\n $state.go(sameStateUrl[i].sameAs);\r\n }]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n function handleRoutingErrors() {\r\n // Route cancellation:\r\n // On routing error, go to the dashboard.\r\n // Provide an exit clause if it tries to do it twice.\r\n $rootScope.$on('$stateChangeError',\r\n function (event, toState, toParams, fromState, fromParams, error) {\r\n if (handlingStateChangeError) {\r\n return;\r\n }\r\n stateCounts.errors++;\r\n handlingStateChangeError = true;\r\n var destination = (toState &&\r\n (toState.title || toState.name || toState.loadedTemplateUrl)) ||\r\n 'desconhecida';\r\n var msg = 'Erro ao obter a funcionalidade ' + destination + '. ' +\r\n (error.data || '') + '.
' + (error.statusText || '') +\r\n ': ' + (error.status || '');\r\n logger.warning(\"Não foi possível obter o caminho requistiado.\");\r\n logger.log(msg, [toState]);\r\n //$location.path('/');\r\n }\r\n );\r\n }\r\n\r\n function init() {\r\n handleRoutingErrors();\r\n updateDocTitle();\r\n }\r\n\r\n function getStates() { return $state.get(); }\r\n\r\n function updateDocTitle() {\r\n $rootScope.$on('$stateChangeSuccess',\r\n function (event, toState, toParams, fromState, fromParams) {\r\n stateCounts.changes++;\r\n handlingStateChangeError = false;\r\n var routeTitle = toState.title || toState.ncyBreadcrumb.label || '';\r\n var title = config.docTitle + ' ' + routeTitle;\r\n $rootScope.title = title; // data bind to \r\n }\r\n );\r\n }\r\n }\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.storage')\r\n .factory('storage', SessionStorage);\r\n\r\n SessionStorage.$inject = ['$window'];\r\n /* @ngInject */\r\n function SessionStorage($window) {\r\n var storage = $window.localStorage;\r\n this.clear = function () {\r\n for (var i = storage.length - 1; i > 0; i--) {\r\n if (storage.key(i).indexOf('recadastro:') === 0)\r\n storage.removeItem(storage.key(i));\r\n }\r\n };\r\n this.hasKey = function (key) {\r\n return key in storage;\r\n };\r\n this.getItem = function (key) {\r\n return angular.fromJson(storage.getItem('recadastro:' + key));\r\n };\r\n this.setItem = function (key, value) {\r\n if (value === null)\r\n storage.removeItem('recadastro:' + key);\r\n else\r\n storage.setItem('recadastro:' + key, angular.toJson(value));\r\n };\r\n this.removeItem = function (key) {\r\n storage.removeItem('recadastro:' + key);\r\n };\r\n Object.defineProperty(this, 'length', { enumerable: true, get: function () { return storage.length; } });\r\n return this;\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.toastInterceptor')\r\n .factory('toastAuthEventsInterceptor', toastAuthEventsInterceptor);\r\n\r\n toastAuthEventsInterceptor.$inject = ['$rootScope', '$state', 'AUTH_EVENTS', 'toastr'];\r\n\r\n function toastAuthEventsInterceptor($rootScope, $state, AUTH_EVENTS, toastr) {\r\n\r\n return {\r\n iniciarService: iniciarService\r\n };\r\n\r\n function iniciarService() {\r\n $rootScope.$on(AUTH_EVENTS.loginSuccess, loginSuccess);\r\n $rootScope.$on(AUTH_EVENTS.logoutSuccess, logoutSuccess);\r\n $rootScope.$on(AUTH_EVENTS.notAuthorized, notAuthorized);\r\n $rootScope.$on(AUTH_EVENTS.notAuthenticated, notAuthenticated);\r\n $rootScope.$on(AUTH_EVENTS.serverError, serverError);\r\n $rootScope.$on(AUTH_EVENTS.otherError, otherError);\r\n }\r\n\r\n function loginSuccess() {\r\n toastr.info('Login realizado com sucesso.', 'Login');\r\n }\r\n\r\n function logoutSuccess() {\r\n toastr.info('Logout realizado com sucesso.', 'Logout');\r\n }\r\n\r\n function notAuthorized() {\r\n toastr.warning('Você não tem permissão para acessar este recurso.', 'Segurança');\r\n }\r\n\r\n function notAuthenticated() {\r\n toastr.warning('Você precisa estar autenticado para acessar este recurso.', 'Segurança');\r\n }\r\n\r\n function serverError(event, args) {\r\n toastr.error(extractMessage(args.response) || 'Ocorreu um erro ao processar a requisição no servidor.', 'Erro');\r\n }\r\n\r\n function otherError(event, args) {\r\n toastr.error(extractMessage(args.response) || 'Ocorreu um erro de comunicação com o servidor.', 'Erro');\r\n }\r\n\r\n function extractMessage(rejection) {\r\n if (angular.isObject(rejection.data))\r\n return rejection.data.ExceptionMessage || rejection.data.Message || rejection.data.message;\r\n return null;\r\n }\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('blocks.toastInterceptor')\r\n .run(config);\r\n\r\n config.$inject = ['toastAuthEventsInterceptor'];\r\n /* @ngInject */\r\n function config(toastAuthEventsInterceptor) {\r\n toastAuthEventsInterceptor.iniciarService();\r\n }\r\n})();","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.auditoria')\r\n .directive('mpsAuditoriaIcon', mpsAuditoriaIcon);\r\n\r\n function mpsAuditoriaIcon() {\r\n // Usages:\r\n // <mps-auditoria-icon></mps-auditoria-icon>\r\n // \r\n // <TAG mps-auditoria-icon></TAG>\r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n templateUrl: 'app/components/mps-auditoria/icon/mps-auditoria-icon.html',\r\n scope: {\r\n dados: '='\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n \r\n})();\r\n","; (function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.auditoria')\r\n .directive('mpsAuditoriaButton', mpsAuditoriaButton);\r\n\r\n function mpsAuditoriaButton() {\r\n // Usages:\r\n // <mps-auditoria-button></mps-auditoria-button>\r\n // \r\n // <TAG mps-auditoria-button></TAG>\r\n // Creates:\r\n // \r\n var directive = {\r\n restrict: 'EA',\r\n templateUrl: 'app/components/mps-auditoria/button/mps-auditoria-button.html',\r\n scope: {\r\n dados: '=',\r\n ngDisabled: '=',\r\n placement: '@'\r\n },\r\n link: link\r\n };\r\n \r\n return directive;\r\n\r\n function link(scope, element, attrs, model) {\r\n scope.model = model;\r\n scope.placement = attrs.placement ? attrs.placement : 'auto bottom-left';\r\n }\r\n }\r\n \r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('mps.paginacao')\r\n .directive('mpsPaginacaoInfo', mpsPaginacaoInfo);\r\n\r\n function mpsPaginacaoInfo() {\r\n // Usage:\r\n // <mps-paginacao-info></mps-paginacao-info>\r\n // Creates:\r\n // \r\n var directive = {\r\n templateUrl: 'app/components/mps-paginacao/mps-paginacao-info/mps-paginacao-info.html',\r\n restrict: 'E',\r\n replace: true,\r\n scope: {\r\n totalItens: '=',\r\n totalPaginas: '='\r\n }\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('RecadastramentoFormularioImpressaoController', RecadastramentoFormularioImpressaoController);\r\n\r\n RecadastramentoFormularioImpressaoController.$inject = ['$state'];\r\n function RecadastramentoFormularioImpressaoController($state) {\r\n var vm = this;\r\n\r\n vm.formulario = $state.params.formulario;\r\n vm.matricula = $state.params.matricula;\r\n vm.declaroMudancaPlano = $state.params.declaroMudancaPlano;\r\n vm.declaroDespesas = $state.params.declaroDespesas;\r\n vm.declaroBeneficiarios = $state.params.declaroBeneficiarios;\r\n\r\n // --- Funções\r\n vm.exibeItem = $state.params.exibeItem;\r\n\r\n angular.element(document).ready(function () {\r\n window.print();\r\n });\r\n\r\n window.onafterprint = function () {\r\n $state.go('^.visualizar-formulario', {\r\n recadastramentoID: vm.formulario.recadastramento.id,\r\n id: vm.formulario.id,\r\n ehConsulta: true,\r\n matriculaConsulta: vm.formulario.matricula\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('AnexoPdfModalController', AnexoPdfModalController);\r\n\r\n AnexoPdfModalController.$inject = ['$uibModal', '$uibModalInstance', '$timeout', '$q', '$window', '$sce',\r\n 'recadastramentoFormularioService', 'toastr', 'params'];\r\n function AnexoPdfModalController($uibModal, $uibModalInstance, $timeout, $q, $window, $sce,\r\n recadastramentoFormularioService, toastr, params) {\r\n var vm = this;\r\n // Binds\r\n // --- Variáveis\r\n vm.busy = false;\r\n\r\n vm.arquivo = null;\r\n vm.anexos = params.anexos;\r\n vm.formularioID = params.formularioID;\r\n vm.podeEditar = params.podeEditar;\r\n\r\n // --- Funções\r\n vm.adicionarArquivo = adicionarArquivo;\r\n vm.downloadArquivo = downloadArquivo;\r\n vm.excluirArquivo = excluirArquivo;\r\n vm.fechar = fechar;\r\n vm.obterClasse = obterClasse;\r\n vm.temArquivoSelecionado = temArquivoSelecionado;\r\n vm.temItens = temItens;\r\n vm.visualizarArquivo = visualizarArquivo;\r\n\r\n function downloadArquivo(index) {\r\n if (!vm.anexos[index])\r\n return;\r\n\r\n // Se o arquivo não tem id, ele ainda está sendo cadastrado\r\n if (!vm.anexos[index].idArquivo) {\r\n var link = document.createElement(\"a\");\r\n link.download = vm.anexos[index].nomeArquivo;\r\n link.href = vm.anexos[index].arquivo;\r\n link.click();\r\n }\r\n else {\r\n obterBlob(vm.anexos[index], vm.formularioID).then(function () {\r\n $window.saveAs(vm.anexos[index].blob, vm.anexos[index].nomeArquivo, true);\r\n });\r\n }\r\n }\r\n\r\n function visualizarArquivo(index) {\r\n obterBlob(vm.anexos[index], vm.formularioID).then(function () {\r\n var fileURL = ($window['URL'] || $window['webkitURL']).createObjectURL(vm.anexos[index].blob);\r\n vm.content = { pdf: $sce.trustAsResourceUrl(fileURL), blob: vm.anexos[index].blob, nome: vm.anexos[index].nomeArquivo };\r\n abrirModalPdf();\r\n });\r\n }\r\n\r\n function obterBlob(anexo, formularioID) {\r\n var deferred = $q.defer();\r\n if (!anexo.blob) {\r\n deferred.promise = recadastramentoFormularioService.downloadAnexo(anexo, formularioID).then(function (response) {\r\n anexo.blob = response.data;\r\n });\r\n } else {\r\n deferred.resolve();\r\n }\r\n return deferred.promise;\r\n }\r\n\r\n function adicionarArquivo() {\r\n if (!temArquivoSelecionado())\r\n return;\r\n\r\n // Verifica se já existe arquivo com mesmo nome\r\n for (var i in vm.anexos)\r\n if (vm.nomeArquivo == vm.anexos[i].nomeArquivo) {\r\n toastr.error('Não é possível inserir arquivos com mesmo nome.');\r\n limparArquivo();\r\n return;\r\n }\r\n\r\n fetch(vm.arquivo)\r\n .then(function (res) {\r\n if (res)\r\n return res.blob();\r\n })\r\n .then(function (blob) {\r\n var anexo = {\r\n nomeArquivo: vm.nomeArquivo,\r\n arquivo: vm.arquivo\r\n };\r\n if (blob)\r\n anexo.blob = blob;\r\n vm.anexos.push(anexo);\r\n limparArquivo();\r\n });\r\n }\r\n\r\n function excluirArquivo(index) {\r\n vm.anexos.splice(index, 1);\r\n }\r\n\r\n function obterClasse(index) {\r\n // Se não tem ID, é porque acabou de ser inserido, então deixa a linha na cor verde\r\n if (!vm.anexos[index].idArquivo)\r\n return 'success';\r\n }\r\n\r\n function limparArquivo() {\r\n $timeout(function () {\r\n vm.arquivo = null;\r\n });\r\n }\r\n\r\n function temItens() {\r\n return vm.anexos != null && vm.anexos.length;\r\n }\r\n\r\n function temArquivoSelecionado() {\r\n return vm.arquivo != null;\r\n }\r\n\r\n function fechar() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function abrirModalPdf() {\r\n $uibModal.open({\r\n templateUrl: 'app/recadastramento/formulario/pdf-modals/visualizar-pdf-modal.html',\r\n controller: 'VisualizarPdfModalController',\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n params: function () {\r\n return { content: vm.content };\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.recadastramento')\r\n .controller('VisualizarPdfModalController', VisualizarPdfModalController);\r\n\r\n VisualizarPdfModalController.$inject = ['$uibModalInstance', 'params'];\r\n\r\n function VisualizarPdfModalController($uibModalInstance, params) {\r\n var vm = this;\r\n vm.content = params.content;\r\n vm.fechar = fechar;\r\n\r\n function fechar() {\r\n $uibModalInstance.dismiss();\r\n }\r\n }\r\n})();"],"sourceRoot":"/source/"}