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

8008
dist/eli-vue.es.js vendored

File diff suppressed because one or more lines are too long

124
dist/eli-vue.umd.js vendored

File diff suppressed because one or more lines are too long

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";

View file

@ -1,6 +1,6 @@
{
"name": "eli-vue",
"version": "0.1.191",
"version": "0.1.197",
"private": false,
"main": "./dist/eli-vue.umd.js",
"module": "./dist/eli-vue.es.js",
@ -29,6 +29,7 @@
"devDependencies": {
"@biomejs/biome": "2.4.12",
"@mdi/font": "^7.4.47",
"@types/leaflet": "^1.9.21",
"@vitejs/plugin-vue": "^5.0.0",
"sass": "^1.94.2",
"typescript": "^6.0.3",
@ -44,6 +45,7 @@
"alasql": "^4.17.3",
"cross-fetch": "^4.1.0",
"dayjs": "^1.11.19",
"leaflet": "^1.9.4",
"p-comuns": "git+https://git2.idz.one/publico/_comuns.git",
"p-respostas": "git+https://git2.idz.one/publico/_respostas.git",
"uuid": "^13.0.0",

399
pnpm-lock.yaml generated
View file

@ -13,19 +13,22 @@ importers:
version: 1.17.0(vue@3.5.35(typescript@6.0.3))
alasql:
specifier: ^4.17.3
version: 4.17.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6))
version: 4.17.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7))
cross-fetch:
specifier: ^4.1.0
version: 4.1.0
dayjs:
specifier: ^1.11.19
version: 1.11.21
leaflet:
specifier: ^1.9.4
version: 1.9.4
p-comuns:
specifier: git+https://git2.idz.one/publico/_comuns.git
version: git+https://git2.idz.one/publico/_comuns.git#48125b53699708bc3747015dfda380473c1298d8(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3)
version: git+https://git2.idz.one/publico/_comuns.git#1e219ad6570b314d7abd26bb725a03f8c8337be1(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3)
p-respostas:
specifier: git+https://git2.idz.one/publico/_respostas.git
version: git+https://git2.idz.one/publico/_respostas.git#9aa36bcba98de8efd9babec6ab84099da5d46234(p-comuns@git+https://git2.idz.one/publico/_comuns.git#48125b53699708bc3747015dfda380473c1298d8(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3))(zod@4.4.3)
version: git+https://git2.idz.one/publico/_respostas.git#9aa36bcba98de8efd9babec6ab84099da5d46234(p-comuns@git+https://git2.idz.one/publico/_comuns.git#1e219ad6570b314d7abd26bb725a03f8c8337be1(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3))(zod@4.4.3)
uuid:
specifier: ^13.0.0
version: 13.0.2
@ -39,9 +42,12 @@ importers:
'@mdi/font':
specifier: ^7.4.47
version: 7.4.47
'@types/leaflet':
specifier: ^1.9.21
version: 1.9.21
'@vitejs/plugin-vue':
specifier: ^5.0.0
version: 5.2.4(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
version: 5.2.4(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
sass:
specifier: ^1.94.2
version: 1.100.0
@ -50,13 +56,13 @@ importers:
version: 6.0.3
vite:
specifier: ^6.0.0
version: 6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
version: 6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vite-plugin-css-injected-by-js:
specifier: ^3.5.2
version: 3.5.2(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))
version: 3.5.2(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))
vite-plugin-vuetify:
specifier: ^2.1.2
version: 2.1.3(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.7)
version: 2.1.3(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.8)
vue:
specifier: ^3.5.34
version: 3.5.35(typescript@6.0.3)
@ -65,7 +71,7 @@ importers:
version: 3.3.3(typescript@6.0.3)
vuetify:
specifier: ^3.12.6
version: 3.12.7(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3))
version: 3.12.8(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3))
packages:
@ -526,136 +532,139 @@ packages:
'@types/react':
optional: true
'@rollup/rollup-android-arm-eabi@4.60.4':
resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==}
'@rollup/rollup-android-arm-eabi@4.61.1':
resolution: {integrity: sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.60.4':
resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==}
'@rollup/rollup-android-arm64@4.61.1':
resolution: {integrity: sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.60.4':
resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==}
'@rollup/rollup-darwin-arm64@4.61.1':
resolution: {integrity: sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.60.4':
resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==}
'@rollup/rollup-darwin-x64@4.61.1':
resolution: {integrity: sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-freebsd-arm64@4.60.4':
resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==}
'@rollup/rollup-freebsd-arm64@4.61.1':
resolution: {integrity: sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==}
cpu: [arm64]
os: [freebsd]
'@rollup/rollup-freebsd-x64@4.60.4':
resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==}
'@rollup/rollup-freebsd-x64@4.61.1':
resolution: {integrity: sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==}
cpu: [x64]
os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.60.4':
resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==}
'@rollup/rollup-linux-arm-gnueabihf@4.61.1':
resolution: {integrity: sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.60.4':
resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==}
'@rollup/rollup-linux-arm-musleabihf@4.61.1':
resolution: {integrity: sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.60.4':
resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==}
'@rollup/rollup-linux-arm64-gnu@4.61.1':
resolution: {integrity: sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.60.4':
resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==}
'@rollup/rollup-linux-arm64-musl@4.61.1':
resolution: {integrity: sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-loong64-gnu@4.60.4':
resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==}
'@rollup/rollup-linux-loong64-gnu@4.61.1':
resolution: {integrity: sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-loong64-musl@4.60.4':
resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==}
'@rollup/rollup-linux-loong64-musl@4.61.1':
resolution: {integrity: sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-ppc64-gnu@4.60.4':
resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==}
'@rollup/rollup-linux-ppc64-gnu@4.61.1':
resolution: {integrity: sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-ppc64-musl@4.60.4':
resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==}
'@rollup/rollup-linux-ppc64-musl@4.61.1':
resolution: {integrity: sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.60.4':
resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==}
'@rollup/rollup-linux-riscv64-gnu@4.61.1':
resolution: {integrity: sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-riscv64-musl@4.60.4':
resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==}
'@rollup/rollup-linux-riscv64-musl@4.61.1':
resolution: {integrity: sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.60.4':
resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==}
'@rollup/rollup-linux-s390x-gnu@4.61.1':
resolution: {integrity: sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.60.4':
resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==}
'@rollup/rollup-linux-x64-gnu@4.61.1':
resolution: {integrity: sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.60.4':
resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==}
'@rollup/rollup-linux-x64-musl@4.61.1':
resolution: {integrity: sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==}
cpu: [x64]
os: [linux]
'@rollup/rollup-openbsd-x64@4.60.4':
resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==}
'@rollup/rollup-openbsd-x64@4.61.1':
resolution: {integrity: sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==}
cpu: [x64]
os: [openbsd]
'@rollup/rollup-openharmony-arm64@4.60.4':
resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==}
'@rollup/rollup-openharmony-arm64@4.61.1':
resolution: {integrity: sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==}
cpu: [arm64]
os: [openharmony]
'@rollup/rollup-win32-arm64-msvc@4.60.4':
resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==}
'@rollup/rollup-win32-arm64-msvc@4.61.1':
resolution: {integrity: sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.60.4':
resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==}
'@rollup/rollup-win32-ia32-msvc@4.61.1':
resolution: {integrity: sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-gnu@4.60.4':
resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==}
'@rollup/rollup-win32-x64-gnu@4.61.1':
resolution: {integrity: sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==}
cpu: [x64]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.60.4':
resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==}
'@rollup/rollup-win32-x64-msvc@4.61.1':
resolution: {integrity: sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==}
cpu: [x64]
os: [win32]
'@sinclair/typebox@0.27.10':
resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==}
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
'@types/geojson@7946.0.16':
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
'@types/istanbul-lib-coverage@2.0.6':
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@ -666,8 +675,11 @@ packages:
'@types/istanbul-reports@3.0.4':
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
'@types/node@25.9.1':
resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==}
'@types/leaflet@1.9.21':
resolution: {integrity: sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==}
'@types/node@25.9.2':
resolution: {integrity: sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==}
'@types/yargs-parser@21.0.3':
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
@ -781,8 +793,8 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
baseline-browser-mapping@2.10.33:
resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==}
baseline-browser-mapping@2.10.34:
resolution: {integrity: sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==}
engines: {node: '>=6.0.0'}
hasBin: true
@ -805,8 +817,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
caniuse-lite@1.0.30001793:
resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==}
caniuse-lite@1.0.30001797:
resolution: {integrity: sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@ -904,8 +916,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
electron-to-chromium@1.5.364:
resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==}
electron-to-chromium@1.5.368:
resolution: {integrity: sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -1104,6 +1116,9 @@ packages:
engines: {node: '>=6'}
hasBin: true
leaflet@1.9.4:
resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==}
leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@ -1249,8 +1264,8 @@ packages:
node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
node-releases@2.0.46:
resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==}
node-releases@2.0.47:
resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
engines: {node: '>=18'}
nullthrows@1.1.1:
@ -1272,9 +1287,9 @@ packages:
resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
engines: {node: '>=8'}
p-comuns@git+https://git2.idz.one/publico/_comuns.git#48125b53699708bc3747015dfda380473c1298d8:
resolution: {commit: 48125b53699708bc3747015dfda380473c1298d8, repo: https://git2.idz.one/publico/_comuns.git, type: git}
version: 0.346.0
p-comuns@git+https://git2.idz.one/publico/_comuns.git#1e219ad6570b314d7abd26bb725a03f8c8337be1:
resolution: {commit: 1e219ad6570b314d7abd26bb725a03f8c8337be1, repo: https://git2.idz.one/publico/_comuns.git, type: git}
version: 0.347.0
peerDependencies:
dayjs: ^1.11.18
uuid: ^11.1.0
@ -1361,8 +1376,8 @@ packages:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
react@19.2.6:
resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==}
react@19.2.7:
resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==}
engines: {node: '>=0.10.0'}
readdirp@5.0.0:
@ -1376,8 +1391,8 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
rollup@4.60.4:
resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==}
rollup@4.61.1:
resolution: {integrity: sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@ -1393,8 +1408,8 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
semver@7.8.1:
resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==}
semver@7.8.2:
resolution: {integrity: sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==}
engines: {node: '>=10'}
hasBin: true
@ -1479,10 +1494,6 @@ packages:
throat@5.0.0:
resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
tinyglobby@0.2.16:
resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
engines: {node: '>=12.0.0'}
tinyglobby@0.2.17:
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
@ -1551,8 +1562,8 @@ packages:
vue: ^3.0.0
vuetify: '>=3'
vite@6.4.2:
resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==}
vite@6.4.3:
resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@ -1611,8 +1622,8 @@ packages:
typescript:
optional: true
vuetify@3.12.7:
resolution: {integrity: sha512-ve7pE3rPISpJY9wO6I71R6Nr3z/T0a5cW4hQkbaBT7CJGVf7ZD3Z7qgx3sX6GmuXOcv8rQVtyuGaHkRWhRQcqA==}
vuetify@3.12.8:
resolution: {integrity: sha512-gvmOWeLd6CG7LVh2Qonft5YrIb7MpbKZglRjg0ItEloSbu6hfUII2RZmRSVxGKYdiXTf7J1hI3BRSHr8J9LkxA==}
peerDependencies:
typescript: '>=4.7'
vite-plugin-vuetify: '>=2.1.0'
@ -1933,7 +1944,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
'@types/node': 25.9.1
'@types/node': 25.9.2
'@types/yargs': 17.0.35
chalk: 4.1.2
optional: true
@ -2056,7 +2067,7 @@ snapshots:
metro: 0.84.4
metro-config: 0.84.4
metro-core: 0.84.4
semver: 7.8.1
semver: 7.8.2
transitivePeerDependencies:
- bufferutil
- supports-color
@ -2104,93 +2115,95 @@ snapshots:
'@react-native/normalize-colors@0.85.3':
optional: true
'@react-native/virtualized-lists@0.85.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6))(react@19.2.6)':
'@react-native/virtualized-lists@0.85.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7))(react@19.2.7)':
dependencies:
invariant: 2.2.4
nullthrows: 1.1.1
react: 19.2.6
react-native: 0.85.3(@babel/core@7.29.7)(react@19.2.6)
react: 19.2.7
react-native: 0.85.3(@babel/core@7.29.7)(react@19.2.7)
optional: true
'@rollup/rollup-android-arm-eabi@4.60.4':
'@rollup/rollup-android-arm-eabi@4.61.1':
optional: true
'@rollup/rollup-android-arm64@4.60.4':
'@rollup/rollup-android-arm64@4.61.1':
optional: true
'@rollup/rollup-darwin-arm64@4.60.4':
'@rollup/rollup-darwin-arm64@4.61.1':
optional: true
'@rollup/rollup-darwin-x64@4.60.4':
'@rollup/rollup-darwin-x64@4.61.1':
optional: true
'@rollup/rollup-freebsd-arm64@4.60.4':
'@rollup/rollup-freebsd-arm64@4.61.1':
optional: true
'@rollup/rollup-freebsd-x64@4.60.4':
'@rollup/rollup-freebsd-x64@4.61.1':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.60.4':
'@rollup/rollup-linux-arm-gnueabihf@4.61.1':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.60.4':
'@rollup/rollup-linux-arm-musleabihf@4.61.1':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.60.4':
'@rollup/rollup-linux-arm64-gnu@4.61.1':
optional: true
'@rollup/rollup-linux-arm64-musl@4.60.4':
'@rollup/rollup-linux-arm64-musl@4.61.1':
optional: true
'@rollup/rollup-linux-loong64-gnu@4.60.4':
'@rollup/rollup-linux-loong64-gnu@4.61.1':
optional: true
'@rollup/rollup-linux-loong64-musl@4.60.4':
'@rollup/rollup-linux-loong64-musl@4.61.1':
optional: true
'@rollup/rollup-linux-ppc64-gnu@4.60.4':
'@rollup/rollup-linux-ppc64-gnu@4.61.1':
optional: true
'@rollup/rollup-linux-ppc64-musl@4.60.4':
'@rollup/rollup-linux-ppc64-musl@4.61.1':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.60.4':
'@rollup/rollup-linux-riscv64-gnu@4.61.1':
optional: true
'@rollup/rollup-linux-riscv64-musl@4.60.4':
'@rollup/rollup-linux-riscv64-musl@4.61.1':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.60.4':
'@rollup/rollup-linux-s390x-gnu@4.61.1':
optional: true
'@rollup/rollup-linux-x64-gnu@4.60.4':
'@rollup/rollup-linux-x64-gnu@4.61.1':
optional: true
'@rollup/rollup-linux-x64-musl@4.60.4':
'@rollup/rollup-linux-x64-musl@4.61.1':
optional: true
'@rollup/rollup-openbsd-x64@4.60.4':
'@rollup/rollup-openbsd-x64@4.61.1':
optional: true
'@rollup/rollup-openharmony-arm64@4.60.4':
'@rollup/rollup-openharmony-arm64@4.61.1':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.60.4':
'@rollup/rollup-win32-arm64-msvc@4.61.1':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.60.4':
'@rollup/rollup-win32-ia32-msvc@4.61.1':
optional: true
'@rollup/rollup-win32-x64-gnu@4.60.4':
'@rollup/rollup-win32-x64-gnu@4.61.1':
optional: true
'@rollup/rollup-win32-x64-msvc@4.60.4':
'@rollup/rollup-win32-x64-msvc@4.61.1':
optional: true
'@sinclair/typebox@0.27.10':
optional: true
'@types/estree@1.0.8': {}
'@types/estree@1.0.9': {}
'@types/geojson@7946.0.16': {}
'@types/istanbul-lib-coverage@2.0.6':
optional: true
@ -2205,7 +2218,11 @@ snapshots:
'@types/istanbul-lib-report': 3.0.3
optional: true
'@types/node@25.9.1':
'@types/leaflet@1.9.21':
dependencies:
'@types/geojson': 7946.0.16
'@types/node@25.9.2':
dependencies:
undici-types: 7.24.6
optional: true
@ -2218,9 +2235,9 @@ snapshots:
'@types/yargs-parser': 21.0.3
optional: true
'@vitejs/plugin-vue@5.2.4(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))':
'@vitejs/plugin-vue@5.2.4(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))':
dependencies:
vite: 6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vite: 6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vue: 3.5.35(typescript@6.0.3)
'@volar/language-core@2.4.28':
@ -2299,11 +2316,11 @@ snapshots:
'@vue/shared@3.5.35': {}
'@vuetify/loader-shared@2.1.2(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.7)':
'@vuetify/loader-shared@2.1.2(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.8)':
dependencies:
upath: 2.0.1
vue: 3.5.35(typescript@6.0.3)
vuetify: 3.12.7(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3))
vuetify: 3.12.8(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3))
abort-controller@3.0.0:
dependencies:
@ -2322,12 +2339,12 @@ snapshots:
agent-base@7.1.4:
optional: true
alasql@4.17.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6)):
alasql@4.17.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7)):
dependencies:
cross-fetch: 4.1.0
yargs: 16.2.0
optionalDependencies:
react-native-fs: 2.20.0(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6))
react-native-fs: 2.20.0(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7))
transitivePeerDependencies:
- encoding
- react-native
@ -2361,7 +2378,7 @@ snapshots:
base64-js@1.5.1:
optional: true
baseline-browser-mapping@2.10.33:
baseline-browser-mapping@2.10.34:
optional: true
braces@3.0.3:
@ -2371,10 +2388,10 @@ snapshots:
browserslist@4.28.2:
dependencies:
baseline-browser-mapping: 2.10.33
caniuse-lite: 1.0.30001793
electron-to-chromium: 1.5.364
node-releases: 2.0.46
baseline-browser-mapping: 2.10.34
caniuse-lite: 1.0.30001797
electron-to-chromium: 1.5.368
node-releases: 2.0.47
update-browserslist-db: 1.2.3(browserslist@4.28.2)
optional: true
@ -2389,7 +2406,7 @@ snapshots:
camelcase@6.3.0:
optional: true
caniuse-lite@1.0.30001793:
caniuse-lite@1.0.30001797:
optional: true
chalk@4.1.2:
@ -2404,7 +2421,7 @@ snapshots:
chrome-launcher@0.15.2:
dependencies:
'@types/node': 25.9.1
'@types/node': 25.9.2
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@ -2414,7 +2431,7 @@ snapshots:
chromium-edge-launcher@0.3.0:
dependencies:
'@types/node': 25.9.1
'@types/node': 25.9.2
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@ -2505,7 +2522,7 @@ snapshots:
ee-first@1.1.1:
optional: true
electron-to-chromium@1.5.364:
electron-to-chromium@1.5.368:
optional: true
emoji-regex@8.0.0: {}
@ -2702,7 +2719,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
'@types/node': 25.9.1
'@types/node': 25.9.2
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@ -2721,7 +2738,7 @@ snapshots:
jest-worker@29.7.0:
dependencies:
'@types/node': 25.9.1
'@types/node': 25.9.2
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
@ -2739,6 +2756,8 @@ snapshots:
json5@2.2.3:
optional: true
leaflet@1.9.4: {}
leven@3.1.0:
optional: true
@ -3011,7 +3030,7 @@ snapshots:
node-int64@0.4.0:
optional: true
node-releases@2.0.46:
node-releases@2.0.47:
optional: true
nullthrows@1.1.1:
@ -3038,15 +3057,15 @@ snapshots:
is-wsl: 2.2.0
optional: true
p-comuns@git+https://git2.idz.one/publico/_comuns.git#48125b53699708bc3747015dfda380473c1298d8(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3):
p-comuns@git+https://git2.idz.one/publico/_comuns.git#1e219ad6570b314d7abd26bb725a03f8c8337be1(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3):
dependencies:
dayjs: 1.11.21
uuid: 13.0.2
zod: 4.4.3
p-respostas@git+https://git2.idz.one/publico/_respostas.git#9aa36bcba98de8efd9babec6ab84099da5d46234(p-comuns@git+https://git2.idz.one/publico/_comuns.git#48125b53699708bc3747015dfda380473c1298d8(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3))(zod@4.4.3):
p-respostas@git+https://git2.idz.one/publico/_respostas.git#9aa36bcba98de8efd9babec6ab84099da5d46234(p-comuns@git+https://git2.idz.one/publico/_comuns.git#1e219ad6570b314d7abd26bb725a03f8c8337be1(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3))(zod@4.4.3):
dependencies:
p-comuns: git+https://git2.idz.one/publico/_comuns.git#48125b53699708bc3747015dfda380473c1298d8(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3)
p-comuns: git+https://git2.idz.one/publico/_comuns.git#1e219ad6570b314d7abd26bb725a03f8c8337be1(dayjs@1.11.21)(uuid@13.0.2)(zod@4.4.3)
zod: 4.4.3
parseurl@1.3.3:
@ -3102,14 +3121,14 @@ snapshots:
react-is@18.3.1:
optional: true
react-native-fs@2.20.0(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6)):
react-native-fs@2.20.0(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7)):
dependencies:
base-64: 0.1.0
react-native: 0.85.3(@babel/core@7.29.7)(react@19.2.6)
react-native: 0.85.3(@babel/core@7.29.7)(react@19.2.7)
utf8: 3.0.0
optional: true
react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6):
react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7):
dependencies:
'@react-native/assets-registry': 0.85.3
'@react-native/codegen': 0.85.3(@babel/core@7.29.7)
@ -3117,7 +3136,7 @@ snapshots:
'@react-native/gradle-plugin': 0.85.3
'@react-native/js-polyfills': 0.85.3
'@react-native/normalize-colors': 0.85.3
'@react-native/virtualized-lists': 0.85.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.6))(react@19.2.6)
'@react-native/virtualized-lists': 0.85.3(react-native@0.85.3(@babel/core@7.29.7)(react@19.2.7))(react@19.2.7)
abort-controller: 3.0.0
anser: 1.4.10
ansi-regex: 5.0.1
@ -3133,12 +3152,12 @@ snapshots:
nullthrows: 1.1.1
pretty-format: 29.7.0
promise: 8.3.0
react: 19.2.6
react: 19.2.7
react-devtools-core: 6.1.5
react-refresh: 0.14.2
regenerator-runtime: 0.13.11
scheduler: 0.27.0
semver: 7.8.1
semver: 7.8.2
stacktrace-parser: 0.1.11
tinyglobby: 0.2.17
whatwg-fetch: 3.6.20
@ -3156,7 +3175,7 @@ snapshots:
react-refresh@0.14.2:
optional: true
react@19.2.6:
react@19.2.7:
optional: true
readdirp@5.0.0: {}
@ -3166,35 +3185,35 @@ snapshots:
require-directory@2.1.1: {}
rollup@4.60.4:
rollup@4.61.1:
dependencies:
'@types/estree': 1.0.8
'@types/estree': 1.0.9
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.60.4
'@rollup/rollup-android-arm64': 4.60.4
'@rollup/rollup-darwin-arm64': 4.60.4
'@rollup/rollup-darwin-x64': 4.60.4
'@rollup/rollup-freebsd-arm64': 4.60.4
'@rollup/rollup-freebsd-x64': 4.60.4
'@rollup/rollup-linux-arm-gnueabihf': 4.60.4
'@rollup/rollup-linux-arm-musleabihf': 4.60.4
'@rollup/rollup-linux-arm64-gnu': 4.60.4
'@rollup/rollup-linux-arm64-musl': 4.60.4
'@rollup/rollup-linux-loong64-gnu': 4.60.4
'@rollup/rollup-linux-loong64-musl': 4.60.4
'@rollup/rollup-linux-ppc64-gnu': 4.60.4
'@rollup/rollup-linux-ppc64-musl': 4.60.4
'@rollup/rollup-linux-riscv64-gnu': 4.60.4
'@rollup/rollup-linux-riscv64-musl': 4.60.4
'@rollup/rollup-linux-s390x-gnu': 4.60.4
'@rollup/rollup-linux-x64-gnu': 4.60.4
'@rollup/rollup-linux-x64-musl': 4.60.4
'@rollup/rollup-openbsd-x64': 4.60.4
'@rollup/rollup-openharmony-arm64': 4.60.4
'@rollup/rollup-win32-arm64-msvc': 4.60.4
'@rollup/rollup-win32-ia32-msvc': 4.60.4
'@rollup/rollup-win32-x64-gnu': 4.60.4
'@rollup/rollup-win32-x64-msvc': 4.60.4
'@rollup/rollup-android-arm-eabi': 4.61.1
'@rollup/rollup-android-arm64': 4.61.1
'@rollup/rollup-darwin-arm64': 4.61.1
'@rollup/rollup-darwin-x64': 4.61.1
'@rollup/rollup-freebsd-arm64': 4.61.1
'@rollup/rollup-freebsd-x64': 4.61.1
'@rollup/rollup-linux-arm-gnueabihf': 4.61.1
'@rollup/rollup-linux-arm-musleabihf': 4.61.1
'@rollup/rollup-linux-arm64-gnu': 4.61.1
'@rollup/rollup-linux-arm64-musl': 4.61.1
'@rollup/rollup-linux-loong64-gnu': 4.61.1
'@rollup/rollup-linux-loong64-musl': 4.61.1
'@rollup/rollup-linux-ppc64-gnu': 4.61.1
'@rollup/rollup-linux-ppc64-musl': 4.61.1
'@rollup/rollup-linux-riscv64-gnu': 4.61.1
'@rollup/rollup-linux-riscv64-musl': 4.61.1
'@rollup/rollup-linux-s390x-gnu': 4.61.1
'@rollup/rollup-linux-x64-gnu': 4.61.1
'@rollup/rollup-linux-x64-musl': 4.61.1
'@rollup/rollup-openbsd-x64': 4.61.1
'@rollup/rollup-openharmony-arm64': 4.61.1
'@rollup/rollup-win32-arm64-msvc': 4.61.1
'@rollup/rollup-win32-ia32-msvc': 4.61.1
'@rollup/rollup-win32-x64-gnu': 4.61.1
'@rollup/rollup-win32-x64-msvc': 4.61.1
fsevents: 2.3.3
sass@1.100.0:
@ -3211,7 +3230,7 @@ snapshots:
semver@6.3.1:
optional: true
semver@7.8.1:
semver@7.8.2:
optional: true
send@0.19.2:
@ -3319,16 +3338,10 @@ snapshots:
throat@5.0.0:
optional: true
tinyglobby@0.2.16:
dependencies:
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
tinyglobby@0.2.17:
dependencies:
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
optional: true
tmpl@1.0.5:
optional: true
@ -3371,31 +3384,31 @@ snapshots:
uuid@13.0.2: {}
vite-plugin-css-injected-by-js@3.5.2(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)):
vite-plugin-css-injected-by-js@3.5.2(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)):
dependencies:
vite: 6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vite: 6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vite-plugin-vuetify@2.1.3(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.7):
vite-plugin-vuetify@2.1.3(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.8):
dependencies:
'@vuetify/loader-shared': 2.1.2(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.7)
'@vuetify/loader-shared': 2.1.2(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.8)
debug: 4.4.3
upath: 2.0.1
vite: 6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vite: 6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0)
vue: 3.5.35(typescript@6.0.3)
vuetify: 3.12.7(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3))
vuetify: 3.12.8(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3))
transitivePeerDependencies:
- supports-color
vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0):
vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
postcss: 8.5.15
rollup: 4.60.4
tinyglobby: 0.2.16
rollup: 4.61.1
tinyglobby: 0.2.17
optionalDependencies:
'@types/node': 25.9.1
'@types/node': 25.9.2
fsevents: 2.3.3
sass: 1.100.0
terser: 5.48.0
@ -3422,12 +3435,12 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
vuetify@3.12.7(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3)):
vuetify@3.12.8(typescript@6.0.3)(vite-plugin-vuetify@2.1.3)(vue@3.5.35(typescript@6.0.3)):
dependencies:
vue: 3.5.35(typescript@6.0.3)
optionalDependencies:
typescript: 6.0.3
vite-plugin-vuetify: 2.1.3(vite@6.4.2(@types/node@25.9.1)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.7)
vite-plugin-vuetify: 2.1.3(vite@6.4.3(@types/node@25.9.2)(sass@1.100.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))(vuetify@3.12.8)
walker@1.0.8:
dependencies:

View file

@ -3,7 +3,7 @@
v-model="localValue"
:label="rotuloExibido"
:color="opcoes?.cor ?? 'primary'"
:disabled="Boolean(opcoes?.desabilitado)"
:disabled="Boolean(opcoes?.desabilitado) || Boolean(opcoes?.apenasLeitura)"
:density="opcoes?.densidade ?? 'comfortable'"
hide-details
v-bind="attrs"

View file

@ -0,0 +1,30 @@
.eli-coordenadas {
width: 100%;
display: flex;
flex-direction: column;
gap: 8px;
}
.eli-coordenadas__mapa-container {
width: 100%;
border-radius: 8px;
overflow: hidden;
border: 1px solid rgba(var(--v-border-color), var(--v-border-opacity));
position: relative;
}
.eli-coordenadas__mapa-container .leaflet-container {
width: 100%;
height: 100%;
z-index: 0;
}
.eli-coordenadas__campos {
display: flex;
gap: 12px;
align-items: center;
}
.eli-coordenadas__campo {
flex: 1;
}

View file

@ -0,0 +1,229 @@
<template>
<div class="eli-coordenadas">
<div v-if="opcoes?.rotulo" class="v-label" style="margin-bottom: 4px">
{{ opcoes.rotulo }}
</div>
<div
class="eli-coordenadas__mapa-container"
:style="{ height: `${alturaEfetiva}px` }"
>
<div ref="mapaRef" style="width: 100%; height: 100%" />
</div>
<div class="eli-coordenadas__campos">
<v-text-field
:model-value="latDisplay"
label="Latitude"
type="text"
inputmode="decimal"
:readonly="Boolean(opcoes?.apenasLeitura)"
density="comfortable"
variant="outlined"
class="eli-coordenadas__campo"
hide-details
v-bind="attrs"
@update:model-value="onLatChange"
/>
<v-text-field
:model-value="lngDisplay"
label="Longitude"
type="text"
inputmode="decimal"
:readonly="Boolean(opcoes?.apenasLeitura)"
density="comfortable"
variant="outlined"
class="eli-coordenadas__campo"
hide-details
v-bind="attrs"
@update:model-value="onLngChange"
/>
<v-btn
icon
variant="tonal"
color="primary"
size="small"
title="Usar minha localização"
:loading="geolocalizando"
:disabled="Boolean(opcoes?.apenasLeitura)"
@click="usarMinhaLocalizacao"
>
<v-icon>mdi-crosshairs-gps</v-icon>
</v-btn>
</div>
</div>
</template>
<script lang="ts">
import L from "leaflet"
import "leaflet/dist/leaflet.css"
import {
computed,
defineComponent,
onBeforeUnmount,
onMounted,
type PropType,
ref,
watch,
} from "vue"
import "./EliEntradaCoordenadas.css"
import type { PadroesEntradas } from "./tiposEntradas"
import {
ALTURA_MAPA_PADRAO,
COORDENADAS_PADRAO,
coordenadaValida,
formatarCoordenada,
obterLocalizacao,
parseCoordenada,
ZOOM_PADRAO,
} from "./utils/coordenadas"
type EntradaCoordenadas = PadroesEntradas["coordenadas"]
export default defineComponent({
name: "EliEntradaCoordenadas",
inheritAttrs: false,
props: {
value: {
type: Object as PropType<EntradaCoordenadas["value"]>,
default: () => ({ ...COORDENADAS_PADRAO }),
},
opcoes: {
type: Object as PropType<EntradaCoordenadas["opcoes"]>,
required: true,
},
},
emits: {
"update:value": (_v: EntradaCoordenadas["value"]) => true,
input: (_v: EntradaCoordenadas["value"]) => true,
change: (_v: EntradaCoordenadas["value"]) => true,
focus: () => true,
blur: () => true,
},
setup(props, { attrs, emit }) {
const mapaRef = ref<HTMLElement | null>(null)
const geolocalizando = ref(false)
let mapa: L.Map | null = null
let marcador: L.Marker | null = null
const alturaEfetiva = computed(() => props.opcoes?.alturaMapa ?? ALTURA_MAPA_PADRAO)
const zoomEfetivo = computed(() => props.opcoes?.zoom ?? ZOOM_PADRAO)
const somenteLeitura = computed(() => Boolean(props.opcoes?.apenasLeitura))
const latDisplay = computed(() =>
formatarCoordenada(props.value?.latitude ?? COORDENADAS_PADRAO.latitude),
)
const lngDisplay = computed(() =>
formatarCoordenada(props.value?.longitude ?? COORDENADAS_PADRAO.longitude),
)
function emitirValor(lat: number, lng: number) {
if (!coordenadaValida(lat, lng)) return
const novoValor: EntradaCoordenadas["value"] = {
formato: "decimal",
datum: "EPSG:4326",
latitude: Number.parseFloat(lat.toFixed(6)),
longitude: Number.parseFloat(lng.toFixed(6)),
}
emit("update:value", novoValor)
emit("input", novoValor)
emit("change", novoValor)
}
function onLatChange(v: string | number) {
const lat = parseCoordenada(v)
if (lat === null) return
emitirValor(lat, props.value?.longitude ?? COORDENADAS_PADRAO.longitude)
}
function onLngChange(v: string | number) {
const lng = parseCoordenada(v)
if (lng === null) return
emitirValor(props.value?.latitude ?? COORDENADAS_PADRAO.latitude, lng)
}
function atualizarMarcador(lat: number, lng: number) {
if (!marcador || !mapa) return
const posAtual = marcador.getLatLng()
if (posAtual.lat === lat && posAtual.lng === lng) return
marcador.setLatLng([lat, lng])
mapa.setView([lat, lng], mapa.getZoom())
}
async function usarMinhaLocalizacao() {
geolocalizando.value = true
try {
const pos = await obterLocalizacao()
emitirValor(pos.latitude, pos.longitude)
} finally {
geolocalizando.value = false
}
}
function inicializarMapa() {
if (!mapaRef.value) return
const lat = props.value?.latitude ?? COORDENADAS_PADRAO.latitude
const lng = props.value?.longitude ?? COORDENADAS_PADRAO.longitude
mapa = L.map(mapaRef.value).setView([lat, lng], zoomEfetivo.value)
const camadaMapa = L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: "© OpenStreetMap",
maxZoom: 19,
})
const camadaSatelite = L.tileLayer(
"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
{ attribution: "© Esri", maxZoom: 19 },
)
camadaMapa.addTo(mapa)
L.control.layers({ Mapa: camadaMapa, Satélite: camadaSatelite }).addTo(mapa)
const arrastavel = !somenteLeitura.value
marcador = L.marker([lat, lng], { draggable: arrastavel }).addTo(mapa)
marcador.on("dragend", () => {
if (!marcador) return
const pos = marcador.getLatLng()
emitirValor(pos.lat, pos.lng)
})
mapa.on("click", (e: L.LeafletMouseEvent) => {
if (somenteLeitura.value) return
emitirValor(e.latlng.lat, e.latlng.lng)
})
}
watch(
() => props.value,
(v) => {
if (!v) return
atualizarMarcador(v.latitude, v.longitude)
},
{ deep: true },
)
onMounted(() => inicializarMapa())
onBeforeUnmount(() => {
if (mapa) {
mapa.remove()
mapa = null
marcador = null
}
})
return {
attrs,
emit,
mapaRef,
alturaEfetiva,
geolocalizando,
latDisplay,
lngDisplay,
onLatChange,
onLngChange,
usarMinhaLocalizacao,
}
},
})
</script>

View file

@ -15,6 +15,7 @@
:variant="opcoesEfetivas.variante ?? 'outlined'"
:min="minLocal"
:max="maxLocal"
:readonly="Boolean(opcoesEfetivas.apenasLeitura)"
v-bind="attrs"
@focus="emitCompatFocus"
@blur="emitCompatBlur"

View file

@ -6,6 +6,7 @@
:type="isInteiro ? 'number' : 'text'"
:inputmode="isInteiro ? 'numeric' : 'decimal'"
:pattern="isInteiro ? '[0-9]*' : '[0-9.,]*'"
:readonly="Boolean(opcoes?.apenasLeitura)"
v-bind="attrs"
@update:model-value="onUpdateModelValue"
@focus="() => emit('focus')"

View file

@ -13,6 +13,7 @@
:persistent-hint="Boolean(opcoes?.dicaPersistente)"
:density="opcoes?.densidade ?? 'comfortable'"
:variant="opcoes?.variante ?? 'outlined'"
:readonly="Boolean(opcoes?.apenasLeitura)"
auto-grow
v-bind="attrs"
@focus="() => emit('focus')"

View file

@ -16,6 +16,7 @@
:persistent-hint="Boolean(opcoes?.dicaPersistente)"
:density="opcoes?.densidade ?? 'comfortable'"
:variant="opcoes?.variante ?? 'outlined'"
:readonly="Boolean(opcoes?.apenasLeitura)"
v-bind="attrs"
@focus="() => emit('focus')"
@blur="() => emit('blur')"

View file

@ -19,6 +19,7 @@
multiple
chips
closable-chips
:readonly="Boolean(opcoes?.apenasLeitura)"
v-bind="attrs"
@focus="() => emit('focus')"
@blur="() => emit('blur')"

View file

@ -7,6 +7,7 @@
:placeholder="opcoes?.placeholder"
:counter="opcoes?.limiteCaracteres"
:maxlength="opcoes?.limiteCaracteres"
:readonly="Boolean(opcoes?.apenasLeitura)"
v-bind="attrs"
@focus="() => emit('focus')"
@blur="() => emit('blur')"

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"
@ -9,6 +10,7 @@ import EliEntradaTexto from "./EliEntradaTexto.vue"
export type { PadroesEntradas, TipoEntrada } from "./tiposEntradas"
export {
EliEntradaConfirmacao,
EliEntradaCoordenadas,
EliEntradaDataHora,
EliEntradaNumero,
EliEntradaParagrafo,

View file

@ -1,5 +1,6 @@
import type { Component } from "vue"
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"
@ -21,6 +22,7 @@ import type { TipoEntrada } from "./tiposEntradas"
*/
export const registryTabelaCelulas: Record<TipoEntrada, Component> = {
texto: EliEntradaTexto,
coordenadas: EliEntradaCoordenadas,
numero: EliEntradaNumero,
dataHora: EliEntradaDataHora,
paragrafo: EliEntradaParagrafo,

View file

@ -12,6 +12,9 @@
* - `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,9 +29,11 @@ export type tipoPadraoEntrada<T, Mais extends Record<string, unknown> = {}> = {
opcoes: {
/** Rótulo exibido ao usuário */
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
}
@ -82,31 +87,22 @@ export type PadroesEntradas = {
{
/** Define o tipo de entrada. - `dataHora`: datetime-local - `data`: date */
modo?: "data" | "dataHora"
/** Se true, mostra ícone para limpar o valor (Vuetify clearable). */
limpavel?: boolean
/** Estado de erro (visual). */
erro?: boolean
/** Mensagens de erro. */
mensagensErro?: string | string[]
/** Texto de apoio. */
dica?: string
/** Mantém a dica sempre visível. */
dicaPersistente?: boolean
/** Valor mínimo permitido (ISO 8601 - offset ou Z). */
min?: string
/** Valor máximo permitido (ISO 8601 - offset ou Z). */
max?: string
/** Densidade do campo (Vuetify). */
densidade?: import("../../tipos").CampoDensidade
/** Variante do v-text-field (Vuetify). */
variante?: import("../../tipos").CampoVariante
}
@ -117,28 +113,20 @@ export type PadroesEntradas = {
{
/** Quantidade de linhas visíveis no textarea (Vuetify `rows`). */
linhas?: number
/** Limite máximo de caracteres permitidos (se definido). */
limiteCaracteres?: number
/** Se true, mostra ícone para limpar o valor (Vuetify clearable). */
limpavel?: boolean
/** Estado de erro (visual). */
erro?: boolean
/** Mensagens de erro. */
mensagensErro?: string | string[]
/** Texto de apoio. */
dica?: string
/** Mantém a dica sempre visível. */
dicaPersistente?: boolean
/** Densidade do campo (Vuetify). */
densidade?: import("../../tipos").CampoDensidade
/** Variante do v-text-field (Vuetify). */
variante?: import("../../tipos").CampoVariante
}
@ -231,6 +219,17 @@ export type PadroesEntradas = {
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
}
>
}
/**

View file

@ -0,0 +1,62 @@
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 const COORDENADAS_PADRAO: TipoCoordenadas = {
formato: "decimal",
datum: "EPSG:4326",
latitude: -15.7801,
longitude: -47.9292,
}
/** Zoom padrão do mapa */
export const ZOOM_PADRAO = 4
/** Altura padrão do mapa em pixels */
export const ALTURA_MAPA_PADRAO = 300
/** Limites válidos para latitude (-90 a 90) e longitude (-180 a 180) */
export function coordenadaValida(lat: number, lng: number): boolean {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180
}
/** Formata número de coordenada para exibição com vírgula (padrão BR) */
export function formatarCoordenada(valor: number): string {
return valor.toFixed(6).replace(".", ",")
}
/** Converte texto digitado (aceita vírgula ou ponto) em número. Retorna null se inválido. */
export function parseCoordenada(v: string | number): number | null {
if (typeof v === "number") return Number.isNaN(v) ? null : v
const normalizado = v.replace(",", ".")
const n = Number.parseFloat(normalizado)
return Number.isNaN(n) ? null : n
}
/** Tenta geolocalização do navegador; se falhar, usa GeoIP como fallback */
export async function obterLocalizacao(): Promise<{ latitude: number; longitude: number }> {
try {
return await obterViaBrowser()
} catch {
return await obterViaGeoIp()
}
}
function obterViaBrowser(): Promise<{ latitude: number; longitude: number }> {
return new Promise((resolve, reject) => {
if (!navigator.geolocation) return reject(new Error("Geolocation indisponível"))
navigator.geolocation.getCurrentPosition(
(pos) => resolve({ latitude: pos.coords.latitude, longitude: pos.coords.longitude }),
(err) => reject(err),
{ enableHighAccuracy: true, timeout: 10000 },
)
})
}
async function obterViaGeoIp(): Promise<{ latitude: number; longitude: number }> {
const resp = await fetch("http://ip-api.com/json/?fields=lat,lon")
const dados: { lat: number; lon: number } = await resp.json()
return { latitude: dados.lat, longitude: dados.lon }
}

View file

@ -4,6 +4,7 @@ import "./design-tokens.css"
import { EliBotao } from "./componentes/botao"
import { EliCartao } from "./componentes/cartao"
import {
EliEntradaCoordenadas,
EliEntradaDataHora,
EliEntradaNumero,
EliEntradaParagrafo,
@ -34,6 +35,7 @@ const EliVue: Plugin = {
app.component("EliEntradaDataHora", EliEntradaDataHora)
app.component("EliEntradaParagrafo", EliEntradaParagrafo)
app.component("EliEntradaSelecao", EliEntradaSelecao)
app.component("EliEntradaCoordenadas", EliEntradaCoordenadas)
},
}

View file

@ -3,7 +3,8 @@
<section>
<h2 class="text-h6 mb-2">EliEntradas</h2>
<p class="text-body-2 mb-0">
Exemplos para <code>EliEntradaTexto</code> e <code>EliEntradaNumero</code>.
Exemplos para <code>EliEntradaTexto</code>, <code>EliEntradaNumero</code> e
<code>EliEntradaCoordenadas</code>.
</p>
</section>
@ -120,12 +121,39 @@
<strong>v-model:value</strong>: {{ selecao ?? "(null)" }}
</div>
</section>
<v-divider />
<section class="d-flex flex-column ga-3">
<h3 class="text-subtitle-1">Coordenadas</h3>
<EliEntradaCoordenadas
v-model:value="coordenadas"
:opcoes="{
rotulo: 'Localização',
zoom: 5,
alturaMapa: 350,
}"
/>
<div class="text-caption">
<strong>v-model:value</strong>:
{{ coordenadas ? `${coordenadas.latitude}, ${coordenadas.longitude}` : '(null)' }}
</div>
</section>
</div>
</template>
<script lang="ts">
import { defineComponent } from "vue"
import { EliEntradaNumero, EliEntradaParagrafo, EliEntradaSelecao, EliEntradaTexto } from "../index"
import type { PadroesEntradas } from "../componentes/EliEntrada/tiposEntradas"
import {
EliEntradaCoordenadas,
EliEntradaNumero,
EliEntradaParagrafo,
EliEntradaSelecao,
EliEntradaTexto,
} from "../index"
export default defineComponent({
name: "EntradasPlayground",
@ -134,6 +162,7 @@ export default defineComponent({
EliEntradaNumero,
EliEntradaParagrafo,
EliEntradaSelecao,
EliEntradaCoordenadas,
},
methods: {
async itensCategorias() {
@ -154,6 +183,12 @@ export default defineComponent({
numero: null as number | null,
numeroDecimal: null as number | null,
numeroLivre: null as number | null,
coordenadas: {
formato: "decimal",
datum: "EPSG:4326",
latitude: -15.7801,
longitude: -47.9292,
} as PadroesEntradas["coordenadas"]["value"],
}
},
})

View file

@ -1,11 +1,8 @@
import path from "node:path"
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import vuetify from "vite-plugin-vuetify"
import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js"
import path from "node:path"
export default defineConfig({
plugins: [
@ -29,12 +26,17 @@ export default defineConfig({
fileName: (format) => `eli-vue.${format}.js`,
},
rollupOptions: {
// não bundle o Vue
external: ["vue", /^vuetify(\/.*)?$/],
// não bundle o Vue, Vuetify nem Leaflet
external: (id) => {
if (id === "vue" || id === "leaflet") return true
if (id === "vuetify" || id.startsWith("vuetify/")) return true
return false
},
output: {
globals: {
vue: "Vue",
vuetify: "Vuetify",
leaflet: "L",
},
exports: "named",
},