UNPKG

hurbis-comum-v1

Version:

Biblioteca para uso do AngularJS com TypeScript.

253 lines (252 loc) 9.61 kB
/// <reference types="angular" /> /// <reference types="angular-translate" /> /// <reference types="angular-resource" /> /// <reference types="googlemaps" /> declare namespace hurbis.comum { interface IModuloDefinicao { nome: string; requisitos: string[]; } enum FuncionalidadeTipo { Fabrica = 0, Provedor = 1, Controladora = 2, Servico = 3, Diretiva = 4, Componente = 5, Filtro = 6, Notacao = 7, } interface IFuncionalidadeDefinicao { /** * Módulo o qual a funcionalidade será registrada. */ moduloDefinicao?: IModuloDefinicao; /** * Tipo de funcionalidade. * Obs.: Caso seja apenas uma configuração do módulo não é necessário informar. */ tipo?: FuncionalidadeTipo; /** * Nome da funcionalidade. * Obs.: Caso seja apenas uma configuração do módulo não é necessário informar. */ nome?: string; /** * Implementação da funcionalidade ou objeto (caso seja um componente). * Permite informar função com notação para injeção de independência. Ex.: ["teste", (teste)=>{ ... }]. * Caso esteja registrando um componente, passar o objeto (IComponentOptions) com as devidas definições. */ objeto: angular.Injectable<Function> | angular.Injectable<angular.FilterFactory> | angular.Injectable<angular.IDirectiveFactory> | angular.IComponentOptions | angular.IServiceProviderFactory | angular.IServiceProviderClass; } class GestorModulo { private static MODULO_PADRAO; static registrarModulo(moduloDefinicao: IModuloDefinicao): void; /** * Recupera/cria o módulo do Angular. * @param moduloDefinicao Módulo a ser recuperado. O módulo padrão é: "hurbis.comum" */ private static modulo(moduloDefinicao?); /** * Delega funcionalidade para executar no comando "config" do Angular. * @param funcionalidade Implementação a ser executada. * @returns {} */ static configurarModulo(funcionalidade: IFuncionalidadeDefinicao): void; /** * Delega funcionalidade para executar no comando "run" do Angular. * @param funcionalidade Implementação a ser executada. * @returns {} */ static inicializarModulo(funcionalidade: IFuncionalidadeDefinicao): void; static registrarValor(nome: string, valor: any, moduloDefinicao?: IModuloDefinicao): void; static registrarConstante(nome: string, valor: any, moduloDefinicao?: IModuloDefinicao): void; static registrarFuncionalidade(funcionalidade: IFuncionalidadeDefinicao): void; static inicializar(): void; } } declare namespace hurbis.comum { interface IScriptDefinicao { nome: string; arquivos: string[]; } abstract class GestorScriptBase { desconverter(itens: oc.IModuleConfig[]): IScriptDefinicao[]; converter(itens: IScriptDefinicao[]): oc.IModuleConfig[]; } } declare namespace hurbis.comum { class GestorScriptProvider extends GestorScriptBase implements angular.IServiceProvider { private $ocLazyLoadProvider; constructor($ocLazyLoadProvider: oc.ILazyLoadProvider); configurar(itens: IScriptDefinicao[]): void; criarMetodoCarregar(...tipos: string[]): any; $get: (string | ((leitor: oc.ILazyLoad, $q: angular.IQService) => GestorScriptService))[]; static inicializar(): void; } } declare namespace hurbis.comum { class GestorScriptService extends GestorScriptBase { private leitor; private $q; constructor(leitor: oc.ILazyLoad, $q: angular.IQService); readonly scripts: string[]; getScriptDefinicao(nome: string): IScriptDefinicao; configurar(itens: IScriptDefinicao[]): void; carregar(tipos: string[]): angular.IPromise<any>; } } declare namespace hurbis.comum.util { class Localizacao { private $translate; constructor($translate: angular.translate.ITranslateService); private static configurar($translateProvider); traduzir(linguagem?: string): void; traducao(palavras: string[]): ng.IPromise<{ [key: string]: string; }>; selecionada(): string; sugerida(): string; static inicializar(): void; } } declare namespace hurbis.comum.util.mapa { interface IIP { ip: string; country_code: string; country_name: string; region_code: string; region_name: string; city: string; zip_code: string; time_zone: string; latitude: number; longitude: number; metro_code: string; } /** * Serviço para auxiliar em funcionalidades que utilizem mapas. Padrão: Google Maps. */ class MapaService { private static ENDERECO_BASE_MAPA_POR_IP; private enderecoServico; dado: angular.resource.IResourceClass<any>; constructor($resource: angular.resource.IResourceService); /** * Calcula a distância entre 2 pontos informados. * @param pontoA * @param pontoB */ static calcularDistancia(pontoA: google.maps.LatLng, pontoB: google.maps.LatLng, exibirUnidade?: boolean): string; static inicializar(): void; } } declare namespace hurbis.comum.util { class Objeto { static copiar<T>(origem: T, destino?: T): T; static estender(destino: any, ...fontes: any[]): void; /** * 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". */ static recuperarServico<T>(nomeServico: string, modulos?: string[], elemento?: HTMLElement): T; private static excecaoObjetoNaoCarregado(objeto); } } declare namespace hurbis.comum.util { class Gerador { /** * Gera um código aleatório. * @param tamanho Tamanho do código desejado. */ static gerarCodigoAleatorio(tamanho: number): string; /** Gera código utilizando lógica e formato GUID. */ static gerarGUID(): string; } } declare namespace hurbis.comum.util { interface IArquivo { nome: string; tipo: string; conteudo: string; } class Arquivo { static fromBase64ToByteArray(conteudo: string, sliceSize?: number): Uint8Array[]; static fromByteArrayToBlob(conteudo: Uint8Array[], tipo: string): Blob; static fromBase64ToBlob(conteudo: string, tipo?: string, sliceSize?: number): Blob; static toBlob(arquivo: IArquivo): Blob; } } declare namespace hurbis.comum.util.email { interface IConfiguracao { apiKey: string; url: string; } interface IEndereco { email: string; name?: string; } interface IPersonalization { to: IEndereco[]; cc?: IEndereco[]; bco?: IEndereco[]; subject?: string; } interface IConteudo { type: string; value: string; } interface IEmail { from: IEndereco; personalizations: IPersonalization[]; content: IConteudo[]; subject: string; } interface IEmailService { enviar(email: IEmail): angular.IHttpPromise<{}>; } } declare namespace hurbis.comum.util.email { class EmailService implements IEmailService { private $http; private configuracao; constructor($http: angular.IHttpService, configuracao: IConfiguracao); enviar(email: IEmail): angular.IHttpPromise<{}>; } } declare namespace hurbis.comum.util.email { class EmailProvider implements angular.IServiceProvider { $get: (string | (($http: angular.IHttpService) => IEmailService))[]; private _configuracao; configurar(configuracao: IConfiguracao): void; static inicializar(): void; } } declare namespace hurbis.comum.util.validador { class CPF { private static LISTA_IGNORADA; private static STRICT_STRIP_REGEX; private static LOOSE_STRIP_REGEX; private static retornarDigito(numeros); static formatar(numero: string): string; static limpar(numero: string, strict?: boolean): string; private static atualizarComDV(numeroSemDV); static validar(numero: string, strict?: boolean): boolean; static gerar(formatado: boolean): string; } } declare namespace hurbis.comum.util.validador { class CNPJ { private static LISTA_IGNORADA; private static STRICT_STRIP_REGEX; private static LOOSE_STRIP_REGEX; private static retornarDigito(numeros); static formatar(numero: string): string; static limpar(numero: string, strict?: boolean): string; private static atualizarComDV(numeroSemDV); static validar(numero: string, strict?: boolean): boolean; static gerar(formatado: boolean): string; } }