hurbis-comum-v1
Version:
Biblioteca para uso do AngularJS com TypeScript.
727 lines • 33.5 kB
JavaScript
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