UNPKG

hurbis-comum-v1

Version:

Biblioteca para uso do AngularJS com TypeScript.

727 lines 33.5 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); /** * @license hurbis-comum-v1 v1.3.0 * (c) 2018 Hurbis Tecnologia da Informação Ltda. https://www.hurbis.com.br * License: MIT */ var hurbis; (function (hurbis) { var comum; (function (comum) { "use strict"; var FuncionalidadeTipo; (function (FuncionalidadeTipo) { FuncionalidadeTipo[FuncionalidadeTipo["Fabrica"] = 0] = "Fabrica"; FuncionalidadeTipo[FuncionalidadeTipo["Provedor"] = 1] = "Provedor"; FuncionalidadeTipo[FuncionalidadeTipo["Controladora"] = 2] = "Controladora"; FuncionalidadeTipo[FuncionalidadeTipo["Servico"] = 3] = "Servico"; FuncionalidadeTipo[FuncionalidadeTipo["Diretiva"] = 4] = "Diretiva"; FuncionalidadeTipo[FuncionalidadeTipo["Componente"] = 5] = "Componente"; FuncionalidadeTipo[FuncionalidadeTipo["Filtro"] = 6] = "Filtro"; FuncionalidadeTipo[FuncionalidadeTipo["Notacao"] = 7] = "Notacao"; })(FuncionalidadeTipo = comum.FuncionalidadeTipo || (comum.FuncionalidadeTipo = {})); var GestorModulo = /** @class */ (function () { function GestorModulo() { } GestorModulo.registrarModulo = function (moduloDefinicao) { GestorModulo.modulo(moduloDefinicao); }; /** * Recupera/cria o módulo do Angular. * @param moduloDefinicao Módulo a ser recuperado. O módulo padrão é: "hurbis.comum" */ GestorModulo.modulo = function (moduloDefinicao) { if (moduloDefinicao == null) { moduloDefinicao = this.MODULO_PADRAO; } try { return angular.module(moduloDefinicao.nome); } catch (erro) { return angular.module(moduloDefinicao.nome, moduloDefinicao.requisitos); } }; /** * Delega funcionalidade para executar no comando "config" do Angular. * @param funcionalidade Implementação a ser executada. * @returns {} */ GestorModulo.configurarModulo = function (funcionalidade) { GestorModulo.modulo(funcionalidade.moduloDefinicao).config(funcionalidade.objeto); }; /** * Delega funcionalidade para executar no comando "run" do Angular. * @param funcionalidade Implementação a ser executada. * @returns {} */ GestorModulo.inicializarModulo = function (funcionalidade) { GestorModulo.modulo(funcionalidade.moduloDefinicao).run(funcionalidade.objeto); }; GestorModulo.registrarValor = function (nome, valor, moduloDefinicao) { var modulo = GestorModulo.modulo(moduloDefinicao); modulo.value(nome, valor); }; GestorModulo.registrarConstante = function (nome, valor, moduloDefinicao) { var modulo = GestorModulo.modulo(moduloDefinicao); modulo.constant(nome, valor); }; GestorModulo.registrarFuncionalidade = function (funcionalidade) { var modulo = GestorModulo.modulo(funcionalidade.moduloDefinicao); switch (funcionalidade.tipo) { case FuncionalidadeTipo.Fabrica: modulo.factory(funcionalidade.nome, funcionalidade.objeto); break; case FuncionalidadeTipo.Provedor: modulo.provider(funcionalidade.nome, funcionalidade.objeto); break; case FuncionalidadeTipo.Servico: modulo.service(funcionalidade.nome, funcionalidade.objeto); break; case FuncionalidadeTipo.Diretiva: modulo.directive(funcionalidade.nome, funcionalidade.objeto); break; case FuncionalidadeTipo.Componente: modulo.component(funcionalidade.nome, funcionalidade.objeto); break; case FuncionalidadeTipo.Filtro: modulo.filter(funcionalidade.nome, funcionalidade.objeto); break; case FuncionalidadeTipo.Notacao: modulo.decorator(funcionalidade.nome, funcionalidade.objeto); break; default: modulo.controller(funcionalidade.nome, funcionalidade.objeto); } }; GestorModulo.inicializar = function () { this.modulo(); }; GestorModulo.MODULO_PADRAO = { nome: "hurbis.comum", requisitos: [ "ngCookies", "ngResource", "ngSanitize", "pascalprecht.translate", "oc.lazyLoad" ] }; return GestorModulo; }()); comum.GestorModulo = GestorModulo; GestorModulo.inicializar(); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { "use strict"; var GestorScriptBase = /** @class */ (function () { function GestorScriptBase() { } GestorScriptBase.prototype.desconverter = function (itens) { var modulos = []; if (itens != null) { angular.forEach(itens, function (item) { modulos.push({ nome: item.name, arquivos: item.files }); }); } return modulos; }; GestorScriptBase.prototype.converter = function (itens) { var modulos = []; if (itens != null) { angular.forEach(itens, function (item) { modulos.push({ name: item.nome, files: item.arquivos }); }); } return modulos; }; return GestorScriptBase; }()); comum.GestorScriptBase = GestorScriptBase; })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { "use strict"; var GestorScriptProvider = /** @class */ (function (_super) { __extends(GestorScriptProvider, _super); function GestorScriptProvider($ocLazyLoadProvider) { var _this = _super.call(this) || this; _this.$ocLazyLoadProvider = $ocLazyLoadProvider; //#region Instância do serviço _this.$get = ["$ocLazyLoad", "$q", function (leitor, $q) { var servico = new comum.GestorScriptService(leitor, $q); return servico; }]; return _this; } GestorScriptProvider.prototype.configurar = function (itens) { this.$ocLazyLoadProvider.config({ debug: false, events: false, modules: this.converter(itens) }); }; GestorScriptProvider.prototype.criarMetodoCarregar = function () { var tipos = []; for (var _i = 0; _i < arguments.length; _i++) { tipos[_i] = arguments[_i]; } return { retorno: [ "$hbsGestorScript", function ($hbsGestorScript) { return $hbsGestorScript.carregar(tipos).catch(function (excecao) { console.log(excecao); }); } ] }; }; //#endregion GestorScriptProvider.inicializar = function () { comum.GestorModulo.registrarFuncionalidade({ nome: "$hbsGestorScript", tipo: comum.FuncionalidadeTipo.Provedor, objeto: ["$ocLazyLoadProvider", GestorScriptProvider] }); }; return GestorScriptProvider; }(comum.GestorScriptBase)); comum.GestorScriptProvider = GestorScriptProvider; GestorScriptProvider.inicializar(); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { "use strict"; var GestorScriptService = /** @class */ (function (_super) { __extends(GestorScriptService, _super); function GestorScriptService(leitor, $q) { var _this = _super.call(this) || this; _this.leitor = leitor; _this.$q = $q; return _this; } Object.defineProperty(GestorScriptService.prototype, "scripts", { get: function () { return this.leitor.getModules(); }, enumerable: true, configurable: true }); GestorScriptService.prototype.getScriptDefinicao = function (nome) { return this.desconverter([this.leitor.getModuleConfig(nome)])[0]; }; GestorScriptService.prototype.configurar = function (itens) { var _this = this; var itensConvertidos = this.converter(itens); itensConvertidos.forEach(function (item) { _this.leitor.setModuleConfig(item); }); }; GestorScriptService.prototype.carregar = function (tipos) { var _this = this; var fabricaTarefa = this.$q.defer(); var tarefa = fabricaTarefa.promise; angular.forEach(tipos, function (tipo) { tarefa = tarefa.then(function () { if (_this.leitor.getModuleConfig(tipo).files.length === 0) { return _this.leitor.inject(tipo); } return _this.leitor.load(tipo); }); }); fabricaTarefa.resolve(); // lembrando que esta tarefa está encadeada a outras, conforme loop executado. return tarefa; }; return GestorScriptService; }(comum.GestorScriptBase)); comum.GestorScriptService = GestorScriptService; })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { "use strict"; var Localizacao = /** @class */ (function () { function Localizacao($translate) { this.$translate = $translate; } Localizacao.configurar = function ($translateProvider) { $translateProvider.useStaticFilesLoader({ prefix: "i18n/", suffix: ".json" }); $translateProvider.preferredLanguage("pt-br"); $translateProvider.useLocalStorage(); $translateProvider.useSanitizeValueStrategy("escape"); }; Localizacao.prototype.traduzir = function (linguagem) { this.$translate.use((linguagem) ? linguagem : this.sugerida()); }; Localizacao.prototype.traducao = function (palavras) { return this.$translate(palavras); }; Localizacao.prototype.selecionada = function () { return this.$translate.use(); }; Localizacao.prototype.sugerida = function () { return this.$translate.proposedLanguage() || this.$translate.preferredLanguage(); }; Localizacao.inicializar = function () { comum.GestorModulo.configurarModulo({ objeto: ["$translateProvider", Localizacao.configurar] }); comum.GestorModulo.registrarFuncionalidade({ tipo: comum.FuncionalidadeTipo.Servico, nome: "$hbsLocalizacao", objeto: ["$translate", Localizacao] }); }; return Localizacao; }()); util.Localizacao = Localizacao; Localizacao.inicializar(); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { var mapa; (function (mapa) { "use strict"; /** * Serviço para auxiliar em funcionalidades que utilizem mapas. Padrão: Google Maps. */ var MapaService = /** @class */ (function () { function MapaService($resource) { this.enderecoServico = MapaService.ENDERECO_BASE_MAPA_POR_IP + "/:id"; this.dado = $resource(this.enderecoServico, { id: "@id" }, {}, { stripTrailingSlashes: false }); } /** * Calcula a distância entre 2 pontos informados. * @param pontoA * @param pontoB */ MapaService.calcularDistancia = function (pontoA, pontoB, exibirUnidade) { if (exibirUnidade === void 0) { exibirUnidade = true; } var distancia = google.maps.geometry.spherical.computeDistanceBetween(pontoA, pontoB); if (distancia >= 1000) { return (distancia / 1000).toFixed(2) + (exibirUnidade ? " Km" : ""); } else { return distancia.toFixed(0) + (exibirUnidade ? " m" : ""); } }; MapaService.inicializar = function () { hurbis.comum.GestorModulo.registrarFuncionalidade({ nome: "$hbsMapa", tipo: hurbis.comum.FuncionalidadeTipo.Servico, objeto: ["$resource", MapaService] }); }; MapaService.ENDERECO_BASE_MAPA_POR_IP = "https://freegeoip.net/json"; return MapaService; }()); mapa.MapaService = MapaService; MapaService.inicializar(); })(mapa = util.mapa || (util.mapa = {})); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { "use strict"; var Objeto = /** @class */ (function () { function Objeto() { } Objeto.copiar = function (origem, destino) { return angular.copy(origem, destino); }; Objeto.estender = function (destino) { var fontes = []; for (var _i = 1; _i < arguments.length; _i++) { fontes[_i - 1] = arguments[_i]; } angular.extend(destino, fontes); }; /** * Recupera a instância do serviço. * @param nomeServico Nome do serviço a ser recuperado. * @param modulos Lista dos módulos onde o serviço deverá ser procurado para ser recuperado. * @param elemento Nome do elemento raiz da árvore o qual o serviço será recuperado. Valor padrão: "document.body". */ Objeto.recuperarServico = function (nomeServico, modulos, elemento) { if (elemento === void 0) { elemento = document.body; } var $injector; if (modulos) { $injector = angular.injector(modulos); } else { // caso o angular já tenha sido carregado, tenta recuperar o serviço do contexto "document.body" ou do elemento informado. $injector = angular.element(elemento).injector(); // caso tenha sido carregado. Ex.: Quando o método for utilizado em um Provider. if (!$injector) { $injector = angular.injector(["hurbis.comum"]); } } if (!$injector.has(nomeServico)) { this.excecaoObjetoNaoCarregado(nomeServico); } return $injector.get(nomeServico); }; Objeto.excecaoObjetoNaoCarregado = function (objeto) { throw objeto + " não carregado."; }; return Objeto; }()); util.Objeto = Objeto; })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { "use strict"; var Gerador = /** @class */ (function () { function Gerador() { } /** * Gera um código aleatório. * @param tamanho Tamanho do código desejado. */ Gerador.gerarCodigoAleatorio = function (tamanho) { var texto = ""; var possibilidades = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < tamanho; i++) texto += possibilidades.charAt(Math.floor(Math.random() * possibilidades.length)); return texto; }; /** Gera código utilizando lógica e formato GUID. */ Gerador.gerarGUID = function () { var s4 = function () { return Math.floor((1 + Math.random()) * 0x10000) .toString(16) .substring(1); }; return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); }; return Gerador; }()); util.Gerador = Gerador; })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { "use strict"; var Arquivo = /** @class */ (function () { function Arquivo() { } Arquivo.fromBase64ToByteArray = function (conteudo, sliceSize) { if (sliceSize === void 0) { sliceSize = 512; } var byteString = window.atob(conteudo); var byteArrays = []; for (var offset = 0; offset < byteString.length; offset += sliceSize) { var slice = byteString.slice(offset, offset + sliceSize); var byteNumbers = new Array(slice.length); for (var i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } var byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } return byteArrays; }; Arquivo.fromByteArrayToBlob = function (conteudo, tipo) { return new Blob(conteudo, { type: tipo }); }; Arquivo.fromBase64ToBlob = function (conteudo, tipo, sliceSize) { if (tipo === void 0) { tipo = ""; } if (sliceSize === void 0) { sliceSize = 512; } var bytes = Arquivo.fromBase64ToByteArray(conteudo); return Arquivo.fromByteArrayToBlob(bytes, tipo); }; Arquivo.toBlob = function (arquivo) { return Arquivo.fromBase64ToBlob(arquivo.conteudo, arquivo.tipo); }; return Arquivo; }()); util.Arquivo = Arquivo; })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { var email; (function (email_1) { "use strict"; })(email = util.email || (util.email = {})); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { var email; (function (email_2) { "use strict"; var EmailService = /** @class */ (function () { function EmailService($http, configuracao) { this.$http = $http; this.configuracao = configuracao; } EmailService.prototype.enviar = function (email) { return this.$http({ method: "POST", headers: { "Authorization": "Bearer " + this.configuracao.apiKey }, url: this.configuracao.url, data: email }); }; return EmailService; }()); email_2.EmailService = EmailService; })(email = util.email || (util.email = {})); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { var email; (function (email) { "use strict"; var EmailProvider = /** @class */ (function () { function EmailProvider() { var _this = this; //#region Serviço this.$get = ["$http", function ($http) { return new email.EmailService($http, _this._configuracao); }]; } EmailProvider.prototype.configurar = function (configuracao) { this._configuracao = configuracao; }; EmailProvider.inicializar = function () { hurbis.comum.GestorModulo.registrarFuncionalidade({ nome: "$hbsEmail", tipo: hurbis.comum.FuncionalidadeTipo.Provedor, objeto: EmailProvider }); }; return EmailProvider; }()); email.EmailProvider = EmailProvider; EmailProvider.inicializar(); })(email = util.email || (util.email = {})); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { var validador; (function (validador) { "use strict"; var CPF = /** @class */ (function () { function CPF() { } CPF.retornarDigito = function (numeros) { var listaNumero = numeros .split("") .map(function (numero) { return parseInt(numero, 10); }); var modulo = listaNumero.length + 1; var multiplificador = listaNumero.map(function (numero, indice) { return numero * (modulo - indice); }); var resto = multiplificador.reduce(function (buffer, numero) { return buffer + numero; }) % 11; return (resto < 2 ? 0 : 11 - resto); }; CPF.formatar = function (numero) { return this.limpar(numero).replace(/^(\d{3})(\d{3})(\d{3})(\d{2})$/, "$1.$2.$3-$4"); }; CPF.limpar = function (numero, strict) { var regex = strict ? this.STRICT_STRIP_REGEX : this.LOOSE_STRIP_REGEX; return (numero || "").toString().replace(regex, ""); }; CPF.atualizarComDV = function (numeroSemDV) { numeroSemDV += this.retornarDigito(numeroSemDV); // 10 numeroSemDV += this.retornarDigito(numeroSemDV); // 11 return numeroSemDV; }; CPF.validar = function (numero, strict) { var numeroLimpo = this.limpar(numero, strict); if (!numeroLimpo) { return false; } if (numeroLimpo.length !== 11) { return false; } if (this.LISTA_IGNORADA.indexOf(numeroLimpo) >= 0) { return false; } var numeroComDV = this.atualizarComDV(numeroLimpo.substr(0, 9)); return numeroComDV.substr(-2) === numeroLimpo.substr(-2); }; CPF.gerar = function (formatado) { var numeroSemDV = ""; for (var i = 0; i < 9; i++) { numeroSemDV += Math.floor(Math.random() * 9); } var numeroComDV = this.atualizarComDV(numeroSemDV); return (formatado ? this.formatar(numeroComDV) : numeroComDV); }; CPF.LISTA_IGNORADA = [ "00000000000", "11111111111", "22222222222", "33333333333", "44444444444", "55555555555", "66666666666", "77777777777", "88888888888", "99999999999", "12345678909" ]; CPF.STRICT_STRIP_REGEX = /[.-]/g; CPF.LOOSE_STRIP_REGEX = /[^\d]/g; return CPF; }()); validador.CPF = CPF; })(validador = util.validador || (util.validador = {})); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var comum; (function (comum) { var util; (function (util) { var validador; (function (validador) { "use strict"; var CNPJ = /** @class */ (function () { function CNPJ() { } CNPJ.retornarDigito = function (numeros) { var invertido = numeros.split("").reduce(function (buffer, number) { return [parseInt(number, 10)].concat(buffer); }, []); var indice = 2; var soma = invertido.reduce(function (buffer, numero) { buffer += numero * indice; indice = (indice === 9 ? 2 : indice + 1); return buffer; }, 0); var mod = soma % 11; return (mod < 2 ? 0 : 11 - mod); }; CNPJ.formatar = function (numero) { return this.limpar(numero).replace(/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/, "$1.$2.$3/$4-$5"); }; CNPJ.limpar = function (numero, strict) { var regex = strict ? this.STRICT_STRIP_REGEX : this.LOOSE_STRIP_REGEX; return (numero || "").toString().replace(regex, ""); }; CNPJ.atualizarComDV = function (numeroSemDV) { numeroSemDV += this.retornarDigito(numeroSemDV); // 13 numeroSemDV += this.retornarDigito(numeroSemDV); // 14 return numeroSemDV; }; CNPJ.validar = function (numero, strict) { var numeroLimpo = this.limpar(numero, strict); if (!numeroLimpo) { return false; } if (numeroLimpo.length !== 14) { return false; } if (this.LISTA_IGNORADA.indexOf(numeroLimpo) >= 0) { return false; } var numeroComDV = this.atualizarComDV(numeroLimpo.substr(0, 12)); return numeroComDV.substr(-2) === numeroLimpo.substr(-2); }; CNPJ.gerar = function (formatado) { var numeroSemDV = ""; for (var i = 0; i < 12; i++) { numeroSemDV += Math.floor(Math.random() * 9); } var numeroComDV = this.atualizarComDV(numeroSemDV); return (formatado ? this.formatar(numeroComDV) : numeroComDV); }; CNPJ.LISTA_IGNORADA = [ "00000000000000", "11111111111111", "22222222222222", "33333333333333", "44444444444444", "55555555555555", "66666666666666", "77777777777777", "88888888888888", "99999999999999" ]; CNPJ.STRICT_STRIP_REGEX = /[-\/.]/g; CNPJ.LOOSE_STRIP_REGEX = /[^\d]/g; return CNPJ; }()); validador.CNPJ = CNPJ; })(validador = util.validador || (util.validador = {})); })(util = comum.util || (comum.util = {})); })(comum = hurbis.comum || (hurbis.comum = {})); })(hurbis || (hurbis = {})); //# sourceMappingURL=hurbis-comum-v1.js.map