This commit is contained in:
Luiz Silva 2026-06-06 12:12:24 -03:00
parent 9b2651d5c7
commit 05f5f950cb
31 changed files with 4997 additions and 4176 deletions

View file

@ -0,0 +1,96 @@
import "leaflet/dist/leaflet.css";
import { type PropType } from "vue";
import "./EliEntradaCoordenadas.css";
import type { PadroesEntradas } from "./tiposEntradas";
type EntradaCoordenadas = PadroesEntradas["coordenadas"];
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
value: {
type: PropType<EntradaCoordenadas["value"]>;
default: () => {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
};
};
opcoes: {
type: PropType<EntradaCoordenadas["opcoes"]>;
required: true;
};
}>, {
attrs: import("vue").Attrs;
emit: ((event: "input", _v: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
}) => void) & ((event: "blur") => void) & ((event: "update:value", _v: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
}) => void) & ((event: "change", _v: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
}) => void) & ((event: "focus") => void);
mapaRef: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
alturaEfetiva: import("vue").ComputedRef<number>;
geolocalizando: import("vue").Ref<boolean, boolean>;
latDisplay: import("vue").ComputedRef<string>;
lngDisplay: import("vue").ComputedRef<string>;
onLatChange: (v: string | number) => void;
onLngChange: (v: string | number) => void;
usarMinhaLocalizacao: () => Promise<void>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
"update:value": (_v: EntradaCoordenadas["value"]) => true;
input: (_v: EntradaCoordenadas["value"]) => true;
change: (_v: EntradaCoordenadas["value"]) => true;
focus: () => true;
blur: () => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
value: {
type: PropType<EntradaCoordenadas["value"]>;
default: () => {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
};
};
opcoes: {
type: PropType<EntradaCoordenadas["opcoes"]>;
required: true;
};
}>> & Readonly<{
onInput?: ((_v: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
}) => any) | undefined;
onBlur?: (() => any) | undefined;
"onUpdate:value"?: ((_v: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
}) => any) | undefined;
onChange?: ((_v: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
}) => any) | undefined;
onFocus?: (() => any) | undefined;
}>, {
value: {
formato: "decimal";
datum: "EPSG:4326";
latitude: number;
longitude: number;
};
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

View file

@ -94,6 +94,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
opcoesEfetivas: import("vue").ComputedRef<{
rotulo: string;
placeholder?: string;
apenasLeitura?: boolean;
} & {
modo?: "data" | "dataHora";
limpavel?: boolean;
@ -210,6 +211,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
opcoes: {
rotulo: string;
placeholder?: string;
apenasLeitura?: boolean;
} & {
modo?: "data" | "dataHora";
limpavel?: boolean;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,5 @@
import EliEntradaConfirmacao from "./EliEntradaConfirmacao.vue";
import EliEntradaCoordenadas from "./EliEntradaCoordenadas.vue";
import EliEntradaDataHora from "./EliEntradaDataHora.vue";
import EliEntradaNumero from "./EliEntradaNumero.vue";
import EliEntradaParagrafo from "./EliEntradaParagrafo.vue";
@ -6,4 +7,4 @@ import EliEntradaSelecao from "./EliEntradaSelecao.vue";
import EliEntradaSelecaoMultipla from "./EliEntradaSelecaoMultipla.vue";
import EliEntradaTexto from "./EliEntradaTexto.vue";
export type { PadroesEntradas, TipoEntrada } from "./tiposEntradas";
export { EliEntradaConfirmacao, EliEntradaDataHora, EliEntradaNumero, EliEntradaParagrafo, EliEntradaSelecao, EliEntradaSelecaoMultipla, EliEntradaTexto, };
export { EliEntradaConfirmacao, EliEntradaCoordenadas, EliEntradaDataHora, EliEntradaNumero, EliEntradaParagrafo, EliEntradaSelecao, EliEntradaSelecaoMultipla, EliEntradaTexto, };

View file

@ -11,6 +11,8 @@
* - `PadroesEntradas[tipo]` retorna a tipagem completa (value + opcoes) daquele tipo.
* - `TipoEntrada` é a união com todos os tipos suportados (ex.: "texto" | "numero").
*/
import type { zCoordenadas } from "p-comuns";
import type z from "zod";
/**
* Contrato padrão de uma entrada.
*
@ -26,6 +28,8 @@ export type tipoPadraoEntrada<T, Mais extends Record<string, unknown> = {}> = {
rotulo: string;
/** Texto de ajuda dentro do input quando vazio */
placeholder?: string;
/** Se true, o campo será somente leitura (não editável) */
apenasLeitura?: boolean;
} & Mais;
};
/**
@ -170,6 +174,12 @@ export type PadroesEntradas = {
/** Densidade do campo (Vuetify). */
densidade?: import("../../tipos").CampoDensidade;
}>;
coordenadas: tipoPadraoEntrada<z.infer<typeof zCoordenadas>, {
/** Nível de zoom inicial do mapa Leaflet (default: 4) */
zoom?: number;
/** Altura do container do mapa em pixels (default: 300) */
alturaMapa?: number;
}>;
};
/**
* União dos tipos de entrada suportados.

View file

@ -0,0 +1,20 @@
import type { zCoordenadas } from "p-comuns";
import type z from "zod";
export type TipoCoordenadas = z.infer<typeof zCoordenadas>;
/** Centro padrão do Brasil (Brasília) */
export declare const COORDENADAS_PADRAO: TipoCoordenadas;
/** Zoom padrão do mapa */
export declare const ZOOM_PADRAO = 4;
/** Altura padrão do mapa em pixels */
export declare const ALTURA_MAPA_PADRAO = 300;
/** Limites válidos para latitude (-90 a 90) e longitude (-180 a 180) */
export declare function coordenadaValida(lat: number, lng: number): boolean;
/** Formata número de coordenada para exibição com vírgula (padrão BR) */
export declare function formatarCoordenada(valor: number): string;
/** Converte texto digitado (aceita vírgula ou ponto) em número. Retorna null se inválido. */
export declare function parseCoordenada(v: string | number): number | null;
/** Tenta geolocalização do navegador; se falhar, usa GeoIP como fallback */
export declare function obterLocalizacao(): Promise<{
latitude: number;
longitude: number;
}>;

View file

@ -982,11 +982,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
entrada: readonly ["texto", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
limiteCaracteres?: number | undefined;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep" | undefined;
}] | readonly ["dataHora", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
modo?: "data" | "dataHora" | undefined;
limpavel?: boolean | undefined;
erro?: boolean | undefined;
@ -1000,12 +1002,14 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["numero", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
sufixo?: string | undefined;
prefixo?: string | undefined;
precisao?: number | undefined;
}] | readonly ["paragrafo", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
linhas?: number | undefined;
limiteCaracteres?: number | undefined;
limpavel?: boolean | undefined;
@ -1018,6 +1022,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -1035,6 +1040,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecaoMultipla", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -1052,11 +1058,18 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["confirmacao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
cor?: string | undefined;
desabilitado?: boolean | undefined;
rotuloAtivo?: string | undefined;
rotuloInativo?: string | undefined;
densidade?: import("../..").CampoDensidade | undefined;
}] | readonly ["coordenadas", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
zoom?: number | undefined;
alturaMapa?: number | undefined;
}];
valor: unknown;
}[], import("./useFiltroAvancado").LinhaFiltro[] | {
@ -1064,11 +1077,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
entrada: readonly ["texto", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
limiteCaracteres?: number | undefined;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep" | undefined;
}] | readonly ["dataHora", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
modo?: "data" | "dataHora" | undefined;
limpavel?: boolean | undefined;
erro?: boolean | undefined;
@ -1082,12 +1097,14 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["numero", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
sufixo?: string | undefined;
prefixo?: string | undefined;
precisao?: number | undefined;
}] | readonly ["paragrafo", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
linhas?: number | undefined;
limiteCaracteres?: number | undefined;
limpavel?: boolean | undefined;
@ -1100,6 +1117,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -1117,6 +1135,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecaoMultipla", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -1134,11 +1153,18 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["confirmacao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
cor?: string | undefined;
desabilitado?: boolean | undefined;
rotuloAtivo?: string | undefined;
rotuloInativo?: string | undefined;
densidade?: import("../..").CampoDensidade | undefined;
}] | readonly ["coordenadas", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
zoom?: number | undefined;
alturaMapa?: number | undefined;
}];
valor: unknown;
}[]>;

View file

@ -31,11 +31,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
entrada: readonly ["texto", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
limiteCaracteres?: number | undefined;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep" | undefined;
}] | readonly ["dataHora", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
modo?: "data" | "dataHora" | undefined;
limpavel?: boolean | undefined;
erro?: boolean | undefined;
@ -49,12 +51,14 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["numero", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
sufixo?: string | undefined;
prefixo?: string | undefined;
precisao?: number | undefined;
}] | readonly ["paragrafo", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
linhas?: number | undefined;
limiteCaracteres?: number | undefined;
limpavel?: boolean | undefined;
@ -67,6 +71,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -84,6 +89,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecaoMultipla", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -101,11 +107,18 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["confirmacao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
cor?: string | undefined;
desabilitado?: boolean | undefined;
rotuloAtivo?: string | undefined;
rotuloInativo?: string | undefined;
densidade?: import("../..").CampoDensidade | undefined;
}] | readonly ["coordenadas", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
zoom?: number | undefined;
alturaMapa?: number | undefined;
}];
valor: unknown;
}[], import("./useFiltroAvancado").LinhaFiltro[] | {
@ -113,11 +126,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
entrada: readonly ["texto", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
limiteCaracteres?: number | undefined;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep" | undefined;
}] | readonly ["dataHora", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
modo?: "data" | "dataHora" | undefined;
limpavel?: boolean | undefined;
erro?: boolean | undefined;
@ -131,12 +146,14 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["numero", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
sufixo?: string | undefined;
prefixo?: string | undefined;
precisao?: number | undefined;
}] | readonly ["paragrafo", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
linhas?: number | undefined;
limiteCaracteres?: number | undefined;
limpavel?: boolean | undefined;
@ -149,6 +166,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -166,6 +184,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["selecaoMultipla", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -183,11 +202,18 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
}] | readonly ["confirmacao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
cor?: string | undefined;
desabilitado?: boolean | undefined;
rotuloAtivo?: string | undefined;
rotuloInativo?: string | undefined;
densidade?: import("../..").CampoDensidade | undefined;
}] | readonly ["coordenadas", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
zoom?: number | undefined;
alturaMapa?: number | undefined;
}];
valor: unknown;
}[]>;

View file

@ -62,11 +62,13 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
entrada: readonly ["texto", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
limiteCaracteres?: number | undefined;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep" | undefined;
}] | readonly ["dataHora", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
modo?: "data" | "dataHora" | undefined;
limpavel?: boolean | undefined;
erro?: boolean | undefined;
@ -80,12 +82,14 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["numero", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
sufixo?: string | undefined;
prefixo?: string | undefined;
precisao?: number | undefined;
}] | readonly ["paragrafo", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
linhas?: number | undefined;
limiteCaracteres?: number | undefined;
limpavel?: boolean | undefined;
@ -98,6 +102,7 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["selecao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -115,6 +120,7 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["selecaoMultipla", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -132,11 +138,18 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["confirmacao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
cor?: string | undefined;
desabilitado?: boolean | undefined;
rotuloAtivo?: string | undefined;
rotuloInativo?: string | undefined;
densidade?: import("../..").CampoDensidade | undefined;
}] | readonly ["coordenadas", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
zoom?: number | undefined;
alturaMapa?: number | undefined;
}];
valor: unknown;
}[], LinhaFiltro[] | {
@ -144,11 +157,13 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
entrada: readonly ["texto", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
limiteCaracteres?: number | undefined;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep" | undefined;
}] | readonly ["dataHora", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
modo?: "data" | "dataHora" | undefined;
limpavel?: boolean | undefined;
erro?: boolean | undefined;
@ -162,12 +177,14 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["numero", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
sufixo?: string | undefined;
prefixo?: string | undefined;
precisao?: number | undefined;
}] | readonly ["paragrafo", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
linhas?: number | undefined;
limiteCaracteres?: number | undefined;
limpavel?: boolean | undefined;
@ -180,6 +197,7 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["selecao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -197,6 +215,7 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["selecaoMultipla", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
itens: () => {
chave: string;
rotulo: string;
@ -214,11 +233,18 @@ export declare function useFiltroAvancado({ aberto, filtrosBase, modelo, modeloF
}] | readonly ["confirmacao", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
cor?: string | undefined;
desabilitado?: boolean | undefined;
rotuloAtivo?: string | undefined;
rotuloInativo?: string | undefined;
densidade?: import("../..").CampoDensidade | undefined;
}] | readonly ["coordenadas", {
rotulo: string;
placeholder?: string | undefined;
apenasLeitura?: boolean | undefined;
zoom?: number | undefined;
alturaMapa?: number | undefined;
}];
valor: unknown;
}[]>;

View file

@ -146,6 +146,7 @@ declare const __VLS_export: import("vue").DefineComponent<{}, {
type: import("vue").PropType<{
rotulo: string;
placeholder?: string;
apenasLeitura?: boolean;
} & {
limiteCaracteres?: number;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep";
@ -174,6 +175,7 @@ declare const __VLS_export: import("vue").DefineComponent<{}, {
type: import("vue").PropType<{
rotulo: string;
placeholder?: string;
apenasLeitura?: boolean;
} & {
limiteCaracteres?: number;
formato?: "texto" | "email" | "url" | "telefone" | "cpfCnpj" | "cep";