{"version":3,"sources":["webpack:///webpack/bootstrap 212316550c6d2bd4b92f","webpack:///./C:/Projetos_Git/qframework_client/src/gui_js/lib/index.js","webpack:///./C:/Projetos_Git/qframework_client/src/gui_js/lib/viewservices.js","webpack:///./C:/Projetos_Git/qframework_client/src/gui_js/lib/viewcontroller.js","webpack:///./C:/Projetos_Git/qframework_client/src/gui_js/~/eventemitter3/index.js"],"names":["window","QuickSoft","ns","Signer","signerNS","UI","ViewServices","require","ViewController","signer","certificateList","VersionCheckError","checkErrorType","errorInfo","msg","type","stacktrace","ERR_TYPE_QUERY_FAILURE","ERR_TYPE_HOST_NEEDS_UPDATE","ERR_TYPE_VERSION_MISMATCH","prototype","whenReady","core","SignerCore","getInstance","get_useWebExtension","Promise","resolve","reject","queryExtensionVersion","resp","error","result","hostUpdate","versionCheck","checkVersion","VersionBindings","hasOwnProperty","_mustBypassVersionCache","localStorage","console","bypassVersionCache","getItem","removeItem","_ensureJavaSession","has_activeSession","newJavaSession","hasActiveSession","_listCerts","listCertificates","coreResponse","reloadCertificateCache","p","then","bind","rebuildCertificateCache","cancelCurrentProcess","cancelSignature","startSignProcess","certificate","settings","closureContext","service","promisePair","onProgressChanged","onProcessFinished","lastError","remove_progressChanged","remove_signProcessFinished","add_progressChanged","add_signProcessFinished","catch","err","module","exports","dialogSelector","uiSettings","myDefaultLocalStorage","dialog","event","EE","_currentProcess","jQuery","extend","PROC_NONE","PROC_SIGN","PROC_CANCEL","initialize","$","resizable","autoOpen","width","dialogClass","buttons","text","class","click","refreshCertificates","_onSignButtonClick","_onCancelButtonClick","open","ui","find","attr","_enterInProcess","progressEl","hasClass","progressbar","close","getDialog","compareCertificates","a","b","subjectDN","certListSelector","jCertList","remove","append","val","response","certs","certificates","i","length","isValid","push","certID","notAfter","sort","dropdown","j","html","extractSubjectName","formatDate","emit","isPrototypeOf","onCertificatesRefreshed","handler","on","onUpdateRequired","onSignatureFinished","myRegexp","match","exec","substring","input","Date","toLocaleDateString","year","month","day","replace","setDefaultCertificate","valorCertId","Storage","setItem","onDisplayError","getSelectedCertificate","selectedCertId","filter","v","_enableButtons","parentWindow","parent","selector","join","removeAttr","_disableButtonsByClass","classNames","map","procType","Error","selectedCert","timer","jTimerElement","Stopwatch","delay","start","dialogCloseFunc","stop","setTimeout","log","progress","value","done","total","elem","options","createTimer","startTime","interval","appendChild","document","createElement","now","setInterval","update","clearInterval","innerHTML","padLeft","nr","n","str","Array","String","endTime","timeDiff","seconds","Math","round","floor","minutes","has","Object","prefix","Events","create","__proto__","fn","context","once","EventEmitter","_events","_eventsCount","eventNames","names","events","name","call","slice","getOwnPropertySymbols","concat","listeners","exists","evt","available","l","ee","a1","a2","a3","a4","a5","len","arguments","args","removeListener","undefined","apply","listener","removeAllListeners","off","addListener","setMaxListeners","prefixed"],"mappings":"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","file":"qs-signer-view-1.2.4.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 212316550c6d2bd4b92f","window.QuickSoft = (function(ns) \r\n{\r\n if (!ns.Signer) ns.Signer = { }; \r\n var signerNS = ns.Signer;\r\n\r\n signerNS.UI = {\r\n ViewServices: require(\"./viewservices\"),\r\n ViewController: require(\"./viewcontroller\")\r\n };\r\n\r\n return ns;\r\n})(window.QuickSoft || {});\n\n\n// WEBPACK FOOTER //\n// ./C:/Projetos_Git/qframework_client/src/gui_js/lib/index.js","/** Informações de erro\r\n * @typedef {Object} ErrorInfo\r\n * @prop {string} msg - Mensagem do erro\r\n * @prop {string} type - Tipo do erro\r\n * @prop {string} stacktrace - Stacktrace do erro \r\n */\r\n\r\n/** Classe mediadora para chamadas de serviço de assinatura\r\n * @param {SignerSession} signer - Script control para utilização da assinatura digital\r\n * @class\r\n */\r\nfunction ViewServices(signer) {\r\n this.certificateList = null;\r\n this.signer = signer;\r\n};\r\n\r\n/** Armazena informações do erro\r\n * @param {number} checkErrorType - Tipo do erro de versão\r\n * @param {ErrorInfo} errorInfo - Informações do erro\r\n * @class\r\n */\r\nViewServices.VersionCheckError = function(checkErrorType, errorInfo) {\r\n this.checkErrorType = checkErrorType;\r\n this.msg = errorInfo.msg;\r\n this.type = errorInfo.type || \"VersionCheckError\";\r\n this.stacktrace = errorInfo.stacktrace;\r\n}\r\n\r\n/** Falha ao consultar versão necessária da extensão\r\n * @const {number}\r\n * @default\r\n */\r\nViewServices.VersionCheckError.ERR_TYPE_QUERY_FAILURE = 1;\r\n/** Módulo nativo necessita atualização\r\n * @const {number}\r\n * @default\r\n */\r\nViewServices.VersionCheckError.ERR_TYPE_HOST_NEEDS_UPDATE = 2;\r\n/** Extensão do chrome necessita atualização\r\n * @const {number}\r\n * @default\r\n */\r\nViewServices.VersionCheckError.ERR_TYPE_VERSION_MISMATCH = 3;\r\n\r\n/** Realiza validação de versão, retornando promise resolved quando não tem problemas\r\n * @returns {Promise} Se não for rejected é porque as versões estão válidas\r\n * @instance\r\n */\r\nViewServices.prototype.whenReady = function () {\r\n const core = QuickSoft.Signer.SignerCore.getInstance();\r\n\r\n if (!core.get_useWebExtension()) {\r\n return new Promise((resolve, reject) => { resolve(); });\r\n }\r\n\r\n return new Promise((resolve, reject) =>\r\n {\r\n core.queryExtensionVersion(function(resp) \r\n {\r\n if (resp.error) {\r\n return reject(new ViewServices.VersionCheckError(ViewServices.VersionCheckError.ERR_TYPE_QUERY_FAILURE, resp.error));\r\n }\r\n\r\n if (resp.result.hostUpdate) {\r\n return reject(new ViewServices.VersionCheckError(ViewServices.VersionCheckError.ERR_TYPE_HOST_NEEDS_UPDATE, {\r\n msg: \"Assinador digital (Módulo Nativo) necessita de atualização\"\r\n }));\r\n }\r\n\r\n var versionCheck = QuickSoft.Signer.checkVersion(resp.result, QuickSoft.Signer.VersionBindings);\r\n if (versionCheck && versionCheck.hasOwnProperty(\"extension\")) {\r\n return reject(new ViewServices.VersionCheckError(ViewServices.VersionCheckError.ERR_TYPE_VERSION_MISMATCH, {\r\n msg: \"Extensão do Chrome necessita de atualização\"\r\n }));\r\n }\r\n\r\n return resolve();\r\n }, this._mustBypassVersionCache());\r\n });\r\n}\r\n\r\nViewServices.prototype._mustBypassVersionCache = function() {\r\n //se não tem API de session storage, é um problema\r\n if (!window.localStorage) {\r\n console.error(\"Não foi possível buscar API window.localStorage\");\r\n return false;\r\n }\r\n\r\n //tenta remover da session storage a chave que indica que tem que fazer bypass do cache de versão\r\n var bypassVersionCache = window.localStorage.getItem(\"QCERT_WEBEXT_BYPASS_VERSION_CACHE\");\r\n if (bypassVersionCache) window.localStorage.removeItem(\"QCERT_WEBEXT_BYPASS_VERSION_CACHE\");\r\n\r\n //converte para booleano e retorna\r\n return !!bypassVersionCache;\r\n}\r\n\r\nViewServices.prototype._ensureJavaSession = function() \r\n{\r\n return new Promise((resolve, reject) => {\r\n //se já tiver sessão criada, resolve promise aqui mesmo\r\n if (this.signer.has_activeSession())\r\n return resolve();\r\n //cria nova sessão\r\n this.signer.newJavaSession(resolve);\r\n });\r\n};\r\n\r\nViewServices.prototype.hasActiveSession = function() \r\n{\r\n return this.signer.has_activeSession();\r\n}\r\n\r\nViewServices.prototype._listCerts = function() \r\n{\r\n return new Promise((resolve, reject) => \r\n {\r\n this.signer.listCertificates(coreResponse => {\r\n if (coreResponse.error) reject(coreResponse.error);\r\n else resolve(coreResponse);\r\n });\r\n });\r\n};\r\n\r\n/** Lista certificados encontrados na máquina do cliente\r\n * @param {boolean} reloadCertificateCache - define se deve limpar cache antes da consulta\r\n * @returns {Promise} Retorna promise com {@link ListCertificateResult}\r\n * @instance\r\n */\r\nViewServices.prototype.listCertificates = function (reloadCertificateCache) \r\n{\r\n let p = this.whenReady()\r\n .then(this._ensureJavaSession.bind(this));\r\n\r\n if (reloadCertificateCache) {\r\n p = p.then(() => this.signer.rebuildCertificateCache());\r\n }\r\n\r\n return p.then(this._listCerts.bind(this));\r\n};\r\n\r\n/** Cancela processo de assinatura atual\r\n * @instance\r\n */\r\nViewServices.prototype.cancelCurrentProcess = function() {\r\n this.signer.cancelSignature();\r\n};\r\n\r\n/** Inicia processo de assinatura\r\n * @param {certificate} certificate - Certifica a ser utilizado para a assinatura\r\n * @param {Object} settings - Configurações do processo de assinatura\r\n * @param {function} settings.onProgressChanged - Handler para alteração no progresso de assinaturas do lote\r\n * @instance\r\n */\r\nViewServices.prototype.startSignProcess = function (certificate, settings) \r\n{\r\n //contexto da promise\r\n let closureContext = \r\n {\r\n service: this,\r\n signer: this.signer,\r\n promisePair: {\r\n resolve: null,\r\n reject: null\r\n },\r\n onProgressChanged : settings.onProgressChanged,\r\n onProcessFinished : null\r\n };\r\n\r\n //handler de finalização do processo de assinatura\r\n closureContext.onProcessFinished = function(lastError) {\r\n //desvincula eventos no signer\r\n if (closureContext.onProgressChanged) closureContext.signer.remove_progressChanged(closureContext.onProgressChanged);\r\n closureContext.signer.remove_signProcessFinished(closureContext.onProcessFinished);\r\n\r\n //se teve erro, rejeita a promise ou faz resolve nela\r\n if (lastError) { closureContext.promisePair.reject(lastError); }\r\n else { closureContext.promisePair.resolve(); }\r\n };\r\n\r\n //cria promise para o processo de assinatura\r\n return new Promise((resolve, reject) => \r\n {\r\n //joga no contexto os métodos de controle da promise\r\n closureContext.promisePair.resolve = resolve;\r\n closureContext.promisePair.reject = reject;\r\n\r\n //vincula eventos no signer\r\n if (closureContext.onProgressChanged) closureContext.signer.add_progressChanged(closureContext.onProgressChanged);\r\n closureContext.signer.add_signProcessFinished(closureContext.onProcessFinished);\r\n\r\n //inicia um processo de assinatura\r\n closureContext.service._ensureJavaSession()\r\n .then(function () {\r\n closureContext.signer.startSignProcess(certificate);\r\n })\r\n .catch(function(err) {\r\n closureContext.promisePair.reject(err);\r\n });\r\n });\r\n};\r\n\r\nmodule.exports = ViewServices;\n\n\n// WEBPACK FOOTER //\n// ./C:/Projetos_Git/qframework_client/src/gui_js/lib/viewservices.js","/** Configurações da UI\r\n * @typedef {Object} UISettings\r\n * @property {string} dialog-class - Nome da classe css da dialog\r\n * @property {string} refresh-button-text - Texto do botão de atualização de certificados\r\n * @property {string} refresh-button-class - Nome da classe css do botão de atualização de certificados\r\n * @property {string} sign-button-text - Texto do botão de assinatura\r\n * @property {string} sign-button-class - Nome da classe do botão de assinatura\r\n * @property {string} cancel-button-text - Texto do botão de cancelar\r\n * @property {string} cancel-button-class - Nome da classe do botão de cancelar\r\n * @property {string} sel-cert-list - Seletor para dropdown da lista de certificados\r\n * @property {string} sel-progress - Seletor da progressbar\r\n * @property {string} sel-progress-text - Seletor para texto da progressbar\r\n * @property {string} sel-timer - Seletor para contador de tempo\r\n * @property {number} dialog-close-delay=500 - Tempo em milisegundos para continuar mostrando a dialog depois de finalizar o processo\r\n */\r\n\r\n/** Informações de certificado\r\n * @typedef {Object} Certificate\r\n * @property {string} certID - Id do certificado\r\n * @property {string} subjectDN - DistinguishedName do requerente\r\n * @porperty {string} issuerDN - DistinguishedName do emissor do certificado\r\n * @property {string} serial - Serial do certificado\r\n * @property {string} notBefore - Válido a partir de\r\n * @property {string} notAfter - Válido até\r\n * @property {boolean} isValid - Indica se certificado está válido\r\n * @property {boolean} hasKey - Indica se certificado possui chave privada\r\n * @property {string} keyStoreType - Define tipo da KeyStore\r\n * @property {Certificate[]} certChain - Lista de certificados do caminho de certificação\r\n */\r\n\r\n/** Resultado de requisição para listar certificados\r\n * @typedef {Object} ListCertificateResult\r\n * @prop {Certificate[]} certs - Lista de certificados\r\n */\r\n\r\n/** Controle responsável por criar dialog com certificados para utilizar na assinatura\r\n * @param {ViewServices} service - Objeto para comunicação com webservice de assinatura\r\n * @param {string} dialogSelector - Seletor para localização da modal de assinatura\r\n * @param {UISettings} uiSettings - Objeto com parametrizações da UI\r\n * @class\r\n */\r\nfunction ViewController(service, dialogSelector, uiSettings) {\r\n this.service = service;\r\n this.certificateList = null;\r\n this.myDefaultLocalStorage = \"QCERT_Default_Certificate\";\r\n\r\n this.dialogSelector = dialogSelector;\r\n this.dialog = null;\r\n this.event = new EE();\r\n\r\n this._currentProcess = 0;\r\n\r\n //settings para user interface, aplicando os overrides passados\r\n this.uiSettings = {\r\n \"dialog-class\" : \"qs-cert-dialog\",\r\n \"refresh-button-text\" : \"Atualizar certificados\",\r\n \"refresh-button-class\" : \"qs-cert-refresh-button\",\r\n \"sign-button-text\" : \"Assinar\",\r\n \"sign-button-class\" : \"qs-cert-sign-button\",\r\n \"cancel-button-text\" : \"Cancelar\",\r\n \"cancel-button-class\" : \"qs-cert-cancel-button\",\r\n \"sel-cert-list\" : \".qs-cert-list\",\r\n \"sel-progress\" : \".qs-cert-progress\",\r\n \"sel-progress-text\" : \".qs-cert-progress-text\",\r\n \"sel-timer\" : \".qs-cert-timer\",\r\n \"dialog-close-delay\" : 500\r\n };\r\n jQuery.extend(this.uiSettings, uiSettings);\r\n}\r\n\r\nViewController.PROC_NONE = 0;\r\nViewController.PROC_SIGN = 1;\r\nViewController.PROC_CANCEL = 2;\r\n\r\n/** Inicializa objeto, setando configurações da UI e buscando lista de certificados\r\n * @instance\r\n */\r\nViewController.prototype.initialize = function () {\r\n this.dialog = $(this.dialogSelector).dialog({\r\n resizable: false,\r\n autoOpen: false,\r\n width: 430,\r\n dialogClass: this.uiSettings[\"dialog-class\"],\r\n buttons: [{\r\n text : this.uiSettings[\"refresh-button-text\"],\r\n class: this.uiSettings[\"refresh-button-class\"],\r\n click: () => {\r\n this.refreshCertificates(true);\r\n }\r\n }, {\r\n text : this.uiSettings[\"sign-button-text\"],\r\n class: this.uiSettings[\"sign-button-class\"],\r\n click: () => {\r\n this._onSignButtonClick();\r\n }\r\n }, {\r\n text : this.uiSettings[\"cancel-button-text\"],\r\n class: this.uiSettings[\"cancel-button-class\"],\r\n click: () => {\r\n this._onCancelButtonClick();\r\n }\r\n }],\r\n open: (event, ui) => {\r\n if (this.dialog) {\r\n this.dialog.find(this.uiSettings[\"sel-cert-list\"]).attr(\"disabled\", false);\r\n\r\n //habilita os botões de ação (se precisar)\r\n this._enterInProcess(ViewController.PROC_NONE);\r\n \r\n let progressEl = this.dialog.find(this.uiSettings[\"sel-progress\"]);\r\n if (progressEl.hasClass(\"ui-progressbar\")) {\r\n progressEl.progressbar(\"destroy\");\r\n }\r\n this.dialog.find(this.uiSettings[\"sel-progress-text\"]).text(\"\");\r\n }\r\n },\r\n close: (event, ui) => {\r\n if (this.service.hasActiveSession()) {\r\n this.service.cancelCurrentProcess();\r\n }\r\n }\r\n });\r\n this.refreshCertificates(false);\r\n};\r\n\r\n/** Retorna dialog\r\n * @instance\r\n */\r\nViewController.prototype.getDialog = function() {\r\n return this.dialog;\r\n};\r\n\r\n/** Compara DN de 2 certificados para efeitos de ordenação\r\n * @param {Certificate} a - Certificado para comparação\r\n * @param {Certificate} b - Certificado para comparação\r\n * @returns 0 se forem iguais, -1 se \"a\" for menor que \"b\", senão 1\r\n * @instance \r\n */\r\nViewController.prototype.compareCertificates = function (a, b) {\r\n if (a.subjectDN < b.subjectDN)\r\n return -1;\r\n if (a.subjectDN > b.subjectDN)\r\n return 1;\r\n return 0;\r\n};\r\n\r\n/** Atualiza lista de certificados\r\n * @param {boolean} reloadCertificateCache - Define se deve limpar cache de certificados\r\n * @fires EE#updateRequired\r\n * @fires EE#onDisplayError\r\n * @instance\r\n */\r\nViewController.prototype.refreshCertificates = function (reloadCertificateCache)\r\n{\r\n var certListSelector = this.uiSettings[\"sel-cert-list\"];\r\n var jCertList = this.dialog.find(certListSelector);\r\n \r\n jCertList.find(\"option\").remove();\r\n jCertList.append('').val(\"\");\r\n \r\n this.service.listCertificates(reloadCertificateCache).then(\r\n response => {\r\n if (response.error) throw response.error;\r\n\r\n var result = response.result;\r\n this.certificateList = result.certs;\r\n var certificates = [];\r\n for (var i = 0; i < result.certs.length; i++) {\r\n if (result.certs[i].isValid)\r\n certificates.push({\r\n certID: result.certs[i].certID,\r\n subjectDN: result.certs[i].subjectDN,\r\n notAfter: result.certs[i].notAfter\r\n });\r\n }\r\n\r\n certificates.sort(this.compareCertificates);\r\n\r\n var dropdown = this.dialog.find(certListSelector);\r\n dropdown.find(\"option\").remove();\r\n \r\n for (var j = 0; j < certificates.length; j++) {\r\n dropdown.append(\r\n $(\"\")\r\n .val(certificates[j].certID)\r\n .html(this.extractSubjectName(certificates[j].subjectDN) + \" válido até: \" + this.formatDate(certificates[j].notAfter))\r\n );\r\n }\r\n this.event.emit(\"certificatesRefreshed\", null);\r\n }\r\n )\r\n .catch((err) => {\r\n if (QuickSoft.Signer.UI.ViewServices.VersionCheckError.prototype.isPrototypeOf(err)) {\r\n return this.event.emit(\"updateRequired\", err);\r\n }\r\n \r\n this.event.emit(\"onDisplayError\", err);\r\n });\r\n};\r\n\r\n/** Define handler para refresh de certificados\r\n * @param {function} handler - Processo a ser executado \r\n * @instance\r\n */\r\nViewController.prototype.onCertificatesRefreshed = function (handler) {\r\n this.event.on(\"certificatesRefreshed\", handler);\r\n}\r\n\r\n/** Define handler para atualização\r\n * @param {function} handler - Processo a ser executado \r\n * @instance\r\n */\r\nViewController.prototype.onUpdateRequired = function (handler) {\r\n this.event.on(\"updateRequired\", handler);\r\n}\r\n\r\n/** Define handler para final do processo de assinatura\r\n * @param {function} handler - Processo a ser executado\r\n * @instance\r\n */\r\nViewController.prototype.onSignatureFinished = function (handler) {\r\n this.event.on(\"signatureFinished\", handler);\r\n}\r\n\r\n/** Extrai CN do certificado, com um limite de 35 caracteres\r\n * @param {string} subjectDN - Distinct name do certificado\r\n * @returns {string} Common name do certificado\r\n * @instance\r\n */\r\nViewController.prototype.extractSubjectName = function (subjectDN) {\r\n var myRegexp = /\\bCN=(.[^,]*)/g;\r\n var match = myRegexp.exec(subjectDN);\r\n if (match) {\r\n return match[1].substring(0, 35);\r\n } else {\r\n return subjectDN.substring(0, 35);\r\n }\r\n};\r\n\r\n/** Formata data do certificado em string\r\n * @param {string} input - data a ser formatada\r\n * @returns {string} Data formatada\r\n * @instance\r\n */\r\nViewController.prototype.formatDate = function (input) {\r\n return new Date(input).toLocaleDateString('pt-BR', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit'\r\n }).replace(/\\./g, '/');\r\n};\r\n\r\n/** Define certificado selecionado por padrão quando abrir a dialog\r\n * @param {string} valorCertId - Id do certificado padrão\r\n * @instance\r\n */\r\nViewController.prototype.setDefaultCertificate = function (valorCertId) {\r\n\r\n if (typeof (Storage) != \"undefined\") {\r\n if (valorCertId != null) {\r\n localStorage.setItem(this.myDefaultLocalStorage, valorCertId);\r\n }\r\n }\r\n}\r\n\r\n/** Define handler para exibição de erros\r\n * @param {function} handler - Processo a ser executado\r\n * @instance\r\n */\r\nViewController.prototype.onDisplayError = function (handler) {\r\n this.event.on(\"onDisplayError\", handler)\r\n}\r\n\r\n/** Busca certificado selecionado\r\n * @returns {HTMLElement} Elemento com informações do certificado selecionado, ou null se não tem certificado selecionado\r\n * @instance\r\n */\r\nViewController.prototype.getSelectedCertificate = function () {\r\n //verifica se tem lista de certificados carregada\r\n if (!this.certificateList || this.certificateList.length < 1) return null;\r\n\r\n //pega element