@thibezer/ui-components-kit 2.6.1 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
- package/dist/acessibilidade-CUlSXc2X.js +38 -0
- package/dist/camadas.cjs +94 -94
- package/dist/camadas.js +1218 -1124
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +66 -65
- package/dist/canvas.js +3769 -3389
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-alerta/ui-toast.d.ts +4 -15
- package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
- package/dist/components/ui-badge/ui-badge.d.ts +2 -0
- package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +16 -0
- package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +14 -0
- package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +17 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +1 -7
- package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
- package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
- package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
- package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
- package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
- package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
- package/dist/components/ui-camadas/camadas-render.d.ts +14 -0
- package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
- package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +3 -5
- package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +15 -0
- package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
- package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
- package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
- package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +24 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +26 -106
- package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
- package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
- package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
- package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +4 -1
- package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
- package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
- package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
- package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
- package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
- package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
- package/dist/components/ui-mapa/tipos.d.ts +13 -0
- package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
- package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
- package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
- package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
- package/dist/components/ui-modal/modal-foco.d.ts +28 -0
- package/dist/components/ui-modal/ui-modal.d.ts +1 -11
- package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
- package/dist/components/ui-radio/ui-radio.d.ts +9 -2
- package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
- package/dist/components/ui-switch/ui-switch.d.ts +3 -1
- package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
- package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
- package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
- package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
- package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
- package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
- package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
- package/dist/core/opcoes.d.ts +9 -0
- package/dist/core/rotulo-controle.d.ts +13 -0
- package/dist/core/tipos-toast.d.ts +16 -0
- package/dist/core/ui-bus.d.ts +9 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +12 -11
- package/dist/custom-elements.json +19484 -14657
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +21 -21
- package/dist/form-validacao-BlQFxUVj.js +104 -0
- package/dist/form-validacao-DIeyQVH5.cjs +1 -0
- package/dist/forms.cjs +1 -1
- package/dist/forms.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +46 -46
- package/dist/mapa.cjs +11 -16
- package/dist/mapa.js +242 -170
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/opcoes-CJYLi6kd.js +12 -0
- package/dist/opcoes-CkyDxBuQ.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +12 -13
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +8 -3
- package/dist/tipos-vue.d.ts +8 -3
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-ChiiiO1r.js +197 -0
- package/dist/ui-badge-DUCxyAG6.cjs +28 -0
- package/dist/{zero-js-triggers-C_KrvFOQ.js → ui-bus-CUd99VJi.js} +36 -103
- package/dist/ui-bus-XqBLlTYQ.cjs +1 -0
- package/dist/ui-campo-texto-CHTfMO-H.cjs +16 -0
- package/dist/ui-campo-texto-gum_jDdI.js +380 -0
- package/dist/ui-card-BNYCQ7g-.js +119 -0
- package/dist/ui-card-BrjBL-yo.cjs +20 -0
- package/dist/ui-controle-cores-BS0WYPdi.js +572 -0
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +111 -0
- package/dist/ui-modal-BkYvNP0G.js +214 -0
- package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
- package/dist/ui-paleta-ferramentas-Ksh6gMW3.js +890 -0
- package/dist/ui-paleta-ferramentas-bDLPbiGA.cjs +21 -0
- package/dist/ui-segmented-BOaGRQw4.cjs +19 -0
- package/dist/ui-segmented-kbO1BLVs.js +439 -0
- package/dist/ui-skeleton-B2Rgrv8o.js +648 -0
- package/dist/ui-skeleton-BilwGdOm.js +634 -0
- package/dist/ui-skeleton-DiOxTBZK.cjs +52 -0
- package/dist/ui-skeleton-SPYqku8P.cjs +52 -0
- package/dist/ui-skeleton-W9uwIceA.js +585 -0
- package/dist/ui-skeleton-gZrJipCC.cjs +52 -0
- package/dist/ui-switch-BX6U5Ykm.cjs +53 -0
- package/dist/ui-switch-DO5jR0hy.js +915 -0
- package/dist/ui-tabela-propriedades-D9Echt2X.js +2667 -0
- package/dist/ui-tabela-propriedades-DzZlyNZ_.cjs +141 -0
- package/dist/zero-js-triggers-CJT988bR.js +83 -0
- package/dist/zero-js-triggers-CgM9IIQB.cjs +1 -0
- package/package.json +10 -3
- package/dist/ui-skeleton-DI4_9WOX.js +0 -428
- package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
- package/dist/ui-toast-Bp_NlM5G.js +0 -156
- package/dist/ui-toast-DGTZKne5.cjs +0 -20
- package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { default as L } from 'leaflet';
|
|
2
|
+
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
3
|
+
import { Feicao, EstiloFeicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
|
|
4
|
+
import { ControleDesenho } from '../../gerencigeo-canvas/feature_desenho_controle';
|
|
5
|
+
import { Ferramenta } from '../../gerencigeo-canvas/feature_desenho';
|
|
6
|
+
import { buscarSnap } from '../../gerencigeo-canvas/feature_snap';
|
|
7
|
+
import { ResultadoFerramenta } from './cad-feicoes-tipos';
|
|
8
|
+
export interface PortasDesenho {
|
|
9
|
+
obterMapa: () => L.Map | null;
|
|
10
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
11
|
+
emitir: (evento: string, detalhe: unknown, cancelavel?: boolean) => unknown;
|
|
12
|
+
/** A ferramenta ativa mudou (`null` = nenhuma). */
|
|
13
|
+
aoFerramenta?: (ferramenta: Ferramenta | null) => void;
|
|
14
|
+
lista: (camadaId: string) => Feicao[];
|
|
15
|
+
adicionarFeicao: (camadaId: string, bruta: unknown) => Feicao | null;
|
|
16
|
+
buscarSnapEm: (coord: [number, number]) => ReturnType<typeof buscarSnap>;
|
|
17
|
+
snapAtivo: () => boolean;
|
|
18
|
+
/** Antes de ativar uma ferramenta: encerra a edição de vértices, fecha o popup e ajusta as margens do HUD. */
|
|
19
|
+
prepararDesenho: () => void;
|
|
20
|
+
normalizarCoordenada: (bruta: unknown) => LatLonPar | null;
|
|
21
|
+
dividirComLinha: (linha: LatLonPar[]) => boolean;
|
|
22
|
+
selecionarNoLaco: (laco: LatLonPar[]) => void;
|
|
23
|
+
candidatasEm: (coord: LatLonPar, tolPx: number) => Feicao[];
|
|
24
|
+
}
|
|
25
|
+
export declare class FerramentasDesenho {
|
|
26
|
+
private p;
|
|
27
|
+
private desenho;
|
|
28
|
+
private camadaDesenho;
|
|
29
|
+
private estiloDesenho;
|
|
30
|
+
private sequenciaId;
|
|
31
|
+
constructor(p: PortasDesenho);
|
|
32
|
+
/** Controle de desenho da camada L2 (nasce na primeira ativação; `null` antes ou após `destruir`). */
|
|
33
|
+
get controle(): ControleDesenho | null;
|
|
34
|
+
/** Há uma ferramenta ativa? (o clique e o botão direito são dela) */
|
|
35
|
+
get ativo(): boolean;
|
|
36
|
+
/** Botão direito com ferramenta ativa: conclui, desfaz o último vértice ou sai. */
|
|
37
|
+
botaoDireito(): void;
|
|
38
|
+
/** Encerra a ferramenta e solta o controle (que guarda o mapa; após reconectar o mapa é outro). */
|
|
39
|
+
destruir(): void;
|
|
40
|
+
get ferramentaAtiva(): Ferramenta | null;
|
|
41
|
+
/** Camada que recebe o que for desenhado. Não existe camada padrão: o consumidor escolhe. */
|
|
42
|
+
definirCamadaDesenho(camadaId: string | null): void;
|
|
43
|
+
get camadaDeDesenho(): string | null;
|
|
44
|
+
/** Estilo aplicado às feições desenhadas daqui para frente (o conta-gotas também o altera). */
|
|
45
|
+
definirEstiloDesenho(estilo: EstiloFeicao): void;
|
|
46
|
+
obterEstiloDesenho(): EstiloFeicao;
|
|
47
|
+
alternarFerramenta(nome: string): ResultadoFerramenta;
|
|
48
|
+
ativarFerramenta(nome: string, opcoes?: {
|
|
49
|
+
fechar?: boolean;
|
|
50
|
+
iniciarEm?: LatLonPar;
|
|
51
|
+
}): ResultadoFerramenta;
|
|
52
|
+
desativarFerramenta(): void;
|
|
53
|
+
limparMedicao(): void;
|
|
54
|
+
/** Vértices já colocados na figura em andamento (0 sem ferramenta ou sem figura). */
|
|
55
|
+
get nosDesenho(): number;
|
|
56
|
+
desfazerVerticeDesenho(): boolean;
|
|
57
|
+
private motivoCamadaDesenhoInvalida;
|
|
58
|
+
private novoId;
|
|
59
|
+
/**
|
|
60
|
+
* Clique da ferramenta texto: emite `cad-texto-solicitado` (cancelável). Com `preventDefault()` o consumidor assume a
|
|
61
|
+
* entrada do texto e depois chama `detalhe.concluir(texto)` (cria na camada de desenho, com o estilo de desenho) ou
|
|
62
|
+
* simplesmente não faz nada para cancelar. Sem `preventDefault()`, aparece o campo inline.
|
|
63
|
+
*/
|
|
64
|
+
private solicitarTexto;
|
|
65
|
+
private concluirFerramenta;
|
|
66
|
+
/** Conta-gotas: copia o estilo da feição sob o clique para o estilo de desenho. */
|
|
67
|
+
amostrarEstilo(coord: LatLonPar): void;
|
|
68
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { default as L } from 'leaflet';
|
|
2
|
+
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
3
|
+
import { Feicao } from '../../gerencigeo-canvas/feature_types';
|
|
4
|
+
import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
|
|
5
|
+
import { EditorVertices } from '../../gerencigeo-canvas/feature_editor_vertices';
|
|
6
|
+
import { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
|
|
7
|
+
import { ResultadoEdicao } from './cad-feicoes-tipos';
|
|
8
|
+
export interface PortasEdicao {
|
|
9
|
+
obterMapa: () => L.Map | null;
|
|
10
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
11
|
+
emitir: (evento: string, detalhe: unknown) => unknown;
|
|
12
|
+
buscar: (camadaId: string, id: string) => Feicao | undefined;
|
|
13
|
+
substituir: (camadaId: string, feicao: Feicao) => void;
|
|
14
|
+
desativarFerramenta: () => void;
|
|
15
|
+
aplicarMargensHud: () => void;
|
|
16
|
+
selecionarUma: (ref: RefFeicao) => void;
|
|
17
|
+
fecharPopup: () => void;
|
|
18
|
+
/** Depois da edição: o popup volta se a seleção tem exatamente uma feição. */
|
|
19
|
+
reabrirPopupDaSelecao: () => void;
|
|
20
|
+
snapAtivo: () => boolean;
|
|
21
|
+
alternarSnap: () => void;
|
|
22
|
+
buscarSnapEm: (coord: [number, number], excluir?: ExcluirSnap) => ReturnType<typeof import('../../gerencigeo-canvas/feature_snap').buscarSnap>;
|
|
23
|
+
}
|
|
24
|
+
export declare class EdicaoFeicoes {
|
|
25
|
+
private p;
|
|
26
|
+
private editor;
|
|
27
|
+
constructor(p: PortasEdicao);
|
|
28
|
+
get editando(): boolean;
|
|
29
|
+
/** @internal Editor de vértices da camada L2 (`null` fora da edição). */
|
|
30
|
+
get editorAtual(): EditorVertices | null;
|
|
31
|
+
/** Feição em edição (`null` fora da edição). */
|
|
32
|
+
get feicao(): Feicao | null;
|
|
33
|
+
sincronizar(feicao: Feicao): void;
|
|
34
|
+
atualizarSnapNoHud(): void;
|
|
35
|
+
iniciarEdicao(camadaId: string, id: string): ResultadoEdicao;
|
|
36
|
+
parar(): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
2
|
+
import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
|
|
3
|
+
import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
|
|
4
|
+
export interface PortasOperacoes {
|
|
5
|
+
emitir: (evento: string, detalhe: unknown) => unknown;
|
|
6
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
7
|
+
buscar: (camadaId: string, id: string) => Feicao | undefined;
|
|
8
|
+
lista: (camadaId: string) => Feicao[];
|
|
9
|
+
desenhada: (f: Feicao) => boolean;
|
|
10
|
+
idLivre: (camadaId: string, base: string) => string;
|
|
11
|
+
adicionarFeicao: (camadaId: string, bruta: unknown) => Feicao | null;
|
|
12
|
+
removerFeicao: (camadaId: string, id: string) => boolean;
|
|
13
|
+
selecionadas: () => Feicao[];
|
|
14
|
+
estaSelecionada: (ref: RefFeicao) => boolean;
|
|
15
|
+
/** `true` enquanto a ferramenta "dividir" está ativa. */
|
|
16
|
+
divisaoAtiva: () => boolean;
|
|
17
|
+
encerrarDesenho: () => void;
|
|
18
|
+
}
|
|
19
|
+
export declare class OperacoesFeicoes {
|
|
20
|
+
private p;
|
|
21
|
+
constructor(p: PortasOperacoes);
|
|
22
|
+
/**
|
|
23
|
+
* Divide polígonos pela linha de corte. Alvos: os polígonos selecionados; sem seleção, o primeiro
|
|
24
|
+
* polígono (de camada visível, interativa e desbloqueada) que a linha corta.
|
|
25
|
+
*/
|
|
26
|
+
dividirComLinha(linha: LatLonPar[]): boolean;
|
|
27
|
+
/** Cria um polígono de buffer ao redor da feição (na camada dela, ou em `camadaDestino`). */
|
|
28
|
+
gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
|
|
29
|
+
camadaDestino?: string;
|
|
30
|
+
id?: string;
|
|
31
|
+
}): Feicao | null;
|
|
32
|
+
/** Copia a feição deslocada (em metros para leste/norte). */
|
|
33
|
+
duplicarFeicao(camadaId: string, id: string, deslocamento?: {
|
|
34
|
+
lesteM?: number;
|
|
35
|
+
norteM?: number;
|
|
36
|
+
}, opcoes?: {
|
|
37
|
+
id?: string;
|
|
38
|
+
}): Feicao | null;
|
|
39
|
+
/**
|
|
40
|
+
* Junta linhas (encadeando pontas) ou dois polígonos (por uma ponte) numa feição só; as originais saem.
|
|
41
|
+
* Linhas com pontas a até `toleranciaM` se ligam; polígonos precisam estar a até `toleranciaM` e
|
|
42
|
+
* não podem ter bordas que se cruzam.
|
|
43
|
+
*/
|
|
44
|
+
juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
|
|
45
|
+
toleranciaM?: number;
|
|
46
|
+
id?: string;
|
|
47
|
+
}): Feicao | null;
|
|
48
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
|
|
2
|
+
export interface PortasPonteiro {
|
|
3
|
+
emitir: (evento: string, detalhe: unknown) => unknown;
|
|
4
|
+
feicaoSob: (clientX: number, clientY: number) => {
|
|
5
|
+
feicao: Feicao | null;
|
|
6
|
+
coordenada: LatLonPar;
|
|
7
|
+
} | null;
|
|
8
|
+
/** Mouse parado para o hover: uma ferramenta de desenho ou a edição de vértices está ativa. */
|
|
9
|
+
interacaoAtiva: () => boolean;
|
|
10
|
+
/** Se há ferramenta ativa, entrega a ela o botão direito e devolve `true` (não abre menu). */
|
|
11
|
+
botaoDireitoDaFerramenta: () => boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class PonteiroFeicoes {
|
|
14
|
+
private p;
|
|
15
|
+
private hoverId;
|
|
16
|
+
private hoverAgendado;
|
|
17
|
+
constructor(p: PortasPonteiro);
|
|
18
|
+
/** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
|
|
19
|
+
aoMoverMouse(e: MouseEvent): void;
|
|
20
|
+
/** Botão direito: emite `cad-feicao-menu` com a feição sob o cursor (ou `null`), para o consumidor abrir o próprio menu. */
|
|
21
|
+
menuContexto(e: MouseEvent): void;
|
|
22
|
+
/** Esquece a feição sob o cursor (ao destruir o componente). */
|
|
23
|
+
limpar(): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { default as L } from 'leaflet';
|
|
2
|
+
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
3
|
+
import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
|
|
4
|
+
import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
|
|
5
|
+
import { CaixaPx, ModoCaixa } from '../../gerencigeo-canvas/feature_caixa';
|
|
6
|
+
export interface PortasSelecaoRegiao {
|
|
7
|
+
obterMapa: () => L.Map | null;
|
|
8
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
9
|
+
lista: (camadaId: string) => Feicao[];
|
|
10
|
+
desenhada: (f: Feicao) => boolean;
|
|
11
|
+
desativarFerramenta: () => void;
|
|
12
|
+
selecionar: (refs: RefFeicao[]) => void;
|
|
13
|
+
alternarVarias: (refs: RefFeicao[]) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare class SelecaoPorRegiao {
|
|
16
|
+
private p;
|
|
17
|
+
constructor(p: PortasSelecaoRegiao);
|
|
18
|
+
/** Laço: seleciona (substituindo) as feições de camadas selecionáveis tocadas pelo polígono; a ferramenta encerra. */
|
|
19
|
+
selecionarNoLaco(laco: LatLonPar[]): void;
|
|
20
|
+
/** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
|
|
21
|
+
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, aditivo: boolean): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { LayerStyleDef } from '../../gerencigeo-canvas/types';
|
|
2
|
+
import { MotivoRecusaEdicao } from '../../gerencigeo-canvas/feature_edicao_ops';
|
|
3
|
+
export declare const TIPO_CAMADA_FEICOES = "feicoes";
|
|
4
|
+
export interface OpcoesCamadaFeicoes {
|
|
5
|
+
nome?: string;
|
|
6
|
+
zIndex?: number;
|
|
7
|
+
opacidade?: number;
|
|
8
|
+
interativo?: boolean;
|
|
9
|
+
estilo?: Partial<LayerStyleDef>;
|
|
10
|
+
}
|
|
11
|
+
/** Opções de `aplicarLote` / `atualizarFeicao`. */
|
|
12
|
+
export interface OpcoesLote extends OpcoesCamadaFeicoes {
|
|
13
|
+
/**
|
|
14
|
+
* Em atualizações, `propriedades` informadas SUBSTITUEM as atuais (o padrão é mesclar, e chaves apagadas
|
|
15
|
+
* pelo consumidor ficam para trás). Sem `propriedades` no item, nada muda.
|
|
16
|
+
*/
|
|
17
|
+
substituirPropriedades?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** Itens de atualização: `id` aponta a feição; o resto é mesclado como em `atualizarFeicao`. */
|
|
20
|
+
export type AtualizacaoFeicao = Record<string, any> & {
|
|
21
|
+
id: string;
|
|
22
|
+
};
|
|
23
|
+
export interface LoteFeicoes {
|
|
24
|
+
adicionar?: unknown[];
|
|
25
|
+
atualizar?: AtualizacaoFeicao[];
|
|
26
|
+
remover?: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface ResultadoLote {
|
|
29
|
+
adicionadas: number;
|
|
30
|
+
atualizadas: number;
|
|
31
|
+
removidas: number;
|
|
32
|
+
/** Ids (ou posições, quando não há id) recusados: geometria inválida, feição inexistente numa atualização, camada que não é de feições. */
|
|
33
|
+
recusadas: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface ResultadoFeicoes {
|
|
36
|
+
/** Quantas feições entraram na camada. */
|
|
37
|
+
aceitas: number;
|
|
38
|
+
/** Ids (ou posições, quando não há id) das feições recusadas por geometria inválida. */
|
|
39
|
+
recusadas: string[];
|
|
40
|
+
}
|
|
41
|
+
/** Opções do popup da feição. */
|
|
42
|
+
export interface OpcoesPopup {
|
|
43
|
+
/** A ação "copiar" grava as coordenadas na área de transferência (padrão `true`); `cad-feicao-acao` sai de qualquer jeito. */
|
|
44
|
+
copiarParaAreaDeTransferencia?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface ResultadoFerramenta {
|
|
47
|
+
ok: boolean;
|
|
48
|
+
motivo?: 'ferramenta-invalida' | 'sem-mapa' | 'sem-camada' | 'camada-invalida' | 'camada-bloqueada';
|
|
49
|
+
}
|
|
50
|
+
export interface ResultadoEdicao {
|
|
51
|
+
ok: boolean;
|
|
52
|
+
motivo?: MotivoRecusaEdicao | 'inexistente' | 'sem-mapa';
|
|
53
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
2
|
+
import { Feicao } from '../../gerencigeo-canvas/feature_types';
|
|
3
|
+
import { RegraVersoes } from '../../gerencigeo-canvas/feature_versoes';
|
|
4
|
+
export interface PortasVersoes {
|
|
5
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
6
|
+
emitir: (evento: string, detalhe: unknown) => unknown;
|
|
7
|
+
buscar: (camadaId: string, id: string) => Feicao | undefined;
|
|
8
|
+
lista: (camadaId: string) => Feicao[];
|
|
9
|
+
/** Chamado depois que a regra muda, para reconciliar seleção, edição e popup. */
|
|
10
|
+
aposDados: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare class VersoesFeicoes {
|
|
13
|
+
private p;
|
|
14
|
+
readonly regra: RegraVersoes;
|
|
15
|
+
private cacheOficiais;
|
|
16
|
+
constructor(p: PortasVersoes, regra: RegraVersoes);
|
|
17
|
+
private oficiaisDe;
|
|
18
|
+
/** Aparece segundo a regra de oficial × prévia? */
|
|
19
|
+
visivelPorVersao(f: Feicao): boolean;
|
|
20
|
+
/** Vai para a tela e responde a clique, caixa, laço, snap e hover: não excluída, não oculta e visível pela regra de versões. */
|
|
21
|
+
desenhada(f: Feicao): boolean;
|
|
22
|
+
aplicarVersoes(): void;
|
|
23
|
+
get previasGlobais(): boolean;
|
|
24
|
+
/** Mostra (ou esconde) as prévias de todas as entidades. Prévias de entidades sem oficial aparecem sempre. */
|
|
25
|
+
definirPreviasGlobais(ligado: boolean): void;
|
|
26
|
+
alternarPreviasGlobais(): void;
|
|
27
|
+
/** Liga/desliga a prévia da entidade a que a feição pertence. Devolve o novo estado, ou `null` se a feição não existe. */
|
|
28
|
+
alternarPrevia(camadaId: string, id: string): boolean | null;
|
|
29
|
+
/** A prévia da feição está sendo mostrada por pedido (global ou individual)? */
|
|
30
|
+
previaSolicitada(camadaId: string, id: string): boolean;
|
|
31
|
+
/** Mostra o que estava escondido (camada oculta, prévia não solicitada) para a feição poder ser vista. */
|
|
32
|
+
garantirVisivel(f: Feicao): void;
|
|
33
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
2
|
-
import { LayerStyleDef } from '../../gerencigeo-canvas/types';
|
|
3
2
|
import { Feicao, EstiloFeicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
|
|
4
3
|
import { RegraVersoes } from '../../gerencigeo-canvas/feature_versoes';
|
|
5
4
|
import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
|
|
@@ -7,48 +6,14 @@ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
|
|
|
7
6
|
import { CaixaPx, ModoCaixa } from '../../gerencigeo-canvas/feature_caixa';
|
|
8
7
|
import { MargensPopup } from '../../gerencigeo-canvas/feature_popup';
|
|
9
8
|
import { default as L } from 'leaflet';
|
|
10
|
-
import { MotivoRecusaEdicao } from '../../gerencigeo-canvas/feature_edicao_ops';
|
|
11
9
|
import { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
|
|
10
|
+
import { EditorVertices } from '../../gerencigeo-canvas/feature_editor_vertices';
|
|
11
|
+
import { ControleDesenho } from '../../gerencigeo-canvas/feature_desenho_controle';
|
|
12
12
|
import { Ferramenta } from '../../gerencigeo-canvas/feature_desenho';
|
|
13
13
|
import { MargensHud } from '../../gerencigeo-canvas/feature_hud';
|
|
14
|
-
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
zIndex?: number;
|
|
18
|
-
opacidade?: number;
|
|
19
|
-
interativo?: boolean;
|
|
20
|
-
estilo?: Partial<LayerStyleDef>;
|
|
21
|
-
}
|
|
22
|
-
/** Opções de `aplicarLote` / `atualizarFeicao`. */
|
|
23
|
-
export interface OpcoesLote extends OpcoesCamadaFeicoes {
|
|
24
|
-
/**
|
|
25
|
-
* Em atualizações, `propriedades` informadas SUBSTITUEM as atuais (o padrão é mesclar, e chaves apagadas
|
|
26
|
-
* pelo consumidor ficam para trás). Sem `propriedades` no item, nada muda.
|
|
27
|
-
*/
|
|
28
|
-
substituirPropriedades?: boolean;
|
|
29
|
-
}
|
|
30
|
-
/** Itens de atualização: `id` aponta a feição; o resto é mesclado como em `atualizarFeicao`. */
|
|
31
|
-
export type AtualizacaoFeicao = Record<string, any> & {
|
|
32
|
-
id: string;
|
|
33
|
-
};
|
|
34
|
-
export interface LoteFeicoes {
|
|
35
|
-
adicionar?: unknown[];
|
|
36
|
-
atualizar?: AtualizacaoFeicao[];
|
|
37
|
-
remover?: string[];
|
|
38
|
-
}
|
|
39
|
-
export interface ResultadoLote {
|
|
40
|
-
adicionadas: number;
|
|
41
|
-
atualizadas: number;
|
|
42
|
-
removidas: number;
|
|
43
|
-
/** Ids (ou posições, quando não há id) recusados: geometria inválida, feição inexistente numa atualização, camada que não é de feições. */
|
|
44
|
-
recusadas: string[];
|
|
45
|
-
}
|
|
46
|
-
export interface ResultadoFeicoes {
|
|
47
|
-
/** Quantas feições entraram na camada. */
|
|
48
|
-
aceitas: number;
|
|
49
|
-
/** Ids (ou posições, quando não há id) das feições recusadas por geometria inválida. */
|
|
50
|
-
recusadas: string[];
|
|
51
|
-
}
|
|
14
|
+
import { TIPO_CAMADA_FEICOES, OpcoesCamadaFeicoes, OpcoesLote, AtualizacaoFeicao, LoteFeicoes, ResultadoLote, ResultadoFeicoes, OpcoesPopup, ResultadoFerramenta, ResultadoEdicao } from './cad-feicoes-tipos';
|
|
15
|
+
export { TIPO_CAMADA_FEICOES };
|
|
16
|
+
export type { OpcoesCamadaFeicoes, OpcoesLote, AtualizacaoFeicao, LoteFeicoes, ResultadoLote, ResultadoFeicoes, OpcoesPopup, ResultadoFerramenta, ResultadoEdicao };
|
|
52
17
|
interface Contexto {
|
|
53
18
|
obterLayerManager: () => CanvasLayerManager;
|
|
54
19
|
obterMapa: () => L.Map | null;
|
|
@@ -61,36 +26,21 @@ interface Contexto {
|
|
|
61
26
|
/** Regra de oficial × prévia compartilhada com o renderizador (o componente a põe no contexto de renderização). */
|
|
62
27
|
regra?: RegraVersoes;
|
|
63
28
|
}
|
|
64
|
-
/** Opções do popup da feição. */
|
|
65
|
-
export interface OpcoesPopup {
|
|
66
|
-
/** A ação "copiar" grava as coordenadas na área de transferência (padrão `true`); `cad-feicao-acao` sai de qualquer jeito. */
|
|
67
|
-
copiarParaAreaDeTransferencia?: boolean;
|
|
68
|
-
}
|
|
69
|
-
export interface ResultadoFerramenta {
|
|
70
|
-
ok: boolean;
|
|
71
|
-
motivo?: 'ferramenta-invalida' | 'sem-mapa' | 'sem-camada' | 'camada-invalida' | 'camada-bloqueada';
|
|
72
|
-
}
|
|
73
|
-
export interface ResultadoEdicao {
|
|
74
|
-
ok: boolean;
|
|
75
|
-
motivo?: MotivoRecusaEdicao | 'inexistente' | 'sem-mapa';
|
|
76
|
-
}
|
|
77
29
|
export declare class GerenciadorFeicoes {
|
|
78
30
|
private contexto;
|
|
31
|
+
private operacoes;
|
|
79
32
|
private selecao;
|
|
80
33
|
private popup;
|
|
81
|
-
private
|
|
34
|
+
private edicao;
|
|
35
|
+
private consulta;
|
|
36
|
+
private ponteiro;
|
|
37
|
+
private regiao;
|
|
82
38
|
private snap;
|
|
83
|
-
private
|
|
84
|
-
private
|
|
85
|
-
private
|
|
86
|
-
private
|
|
87
|
-
private regra;
|
|
88
|
-
private cacheOficiais;
|
|
89
|
-
/** id -> posição na lista da camada (válido enquanto `lista` for a lista atual); evita varrer a camada a cada consulta. */
|
|
90
|
-
private posicoes;
|
|
39
|
+
private ferramentas;
|
|
40
|
+
private versoes;
|
|
41
|
+
private camera;
|
|
42
|
+
private repositorio;
|
|
91
43
|
private cursores;
|
|
92
|
-
private hoverId;
|
|
93
|
-
private hoverAgendado;
|
|
94
44
|
private margensHud;
|
|
95
45
|
/** Aceita a coordenada (0, 0) exata nas feições de entrada (atributo `aceitar-origem`). */
|
|
96
46
|
aceitarOrigem: boolean;
|
|
@@ -99,28 +49,18 @@ export declare class GerenciadorFeicoes {
|
|
|
99
49
|
/** Depois de qualquer mudança nos dados: descarta seleção órfã e atualiza/fecha o popup aberto. */
|
|
100
50
|
private aposDados;
|
|
101
51
|
private lista;
|
|
102
|
-
private posicaoDe;
|
|
103
52
|
/** Feição da camada pelo id (O(1)); `undefined` se não existe. */
|
|
104
53
|
buscar(camadaId: string, id: string): Feicao | undefined;
|
|
105
|
-
private garantirCamada;
|
|
106
54
|
private opcoesNormalizacao;
|
|
107
55
|
definirFeicoes(camadaId: string, brutas: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
|
|
108
56
|
adicionarFeicao(camadaId: string, bruta: unknown, opcoes?: OpcoesCamadaFeicoes): Feicao | null;
|
|
109
|
-
/**
|
|
110
|
-
* Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Com `substituirPropriedades`,
|
|
111
|
-
* `propriedades` informadas trocam as atuais por inteiro (atributos ausentes somem).
|
|
112
|
-
*/
|
|
57
|
+
/** Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Ver `RepositorioFeicoes`. */
|
|
113
58
|
atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: Pick<OpcoesLote, 'substituirPropriedades'>): Feicao | null;
|
|
114
59
|
/** Grava uma feição já normalizada (usado quando o próprio mapa a altera, como ao arrastar um texto). */
|
|
115
60
|
substituir(camadaId: string, feicao: Feicao): void;
|
|
116
61
|
removerFeicao(camadaId: string, id: string): boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona.
|
|
119
|
-
* Adicionar um id que já existe substitui a feição mantendo a posição (a ordem de empilhamento não muda).
|
|
120
|
-
*/
|
|
62
|
+
/** Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona. */
|
|
121
63
|
aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
|
|
122
|
-
private mesclar;
|
|
123
|
-
private aplicar;
|
|
124
64
|
obterFeicoes(camadaId: string): Feicao[];
|
|
125
65
|
/** Traduz as ações vindas do renderizador no evento a disparar pelo componente. */
|
|
126
66
|
tratarAcaoCamada(acao: string, detalhe: {
|
|
@@ -134,7 +74,7 @@ export declare class GerenciadorFeicoes {
|
|
|
134
74
|
/** Esc ou clique no vazio: durante a edição só encerra a edição; fora dela, limpa a seleção. */
|
|
135
75
|
aoPedirLimpeza(): void;
|
|
136
76
|
obterFeicoesSelecionadas(): Feicao[];
|
|
137
|
-
/** Laço: seleciona (substituindo) as feições
|
|
77
|
+
/** Laço: seleciona (substituindo) as feições tocadas pelo polígono; a ferramenta encerra. */
|
|
138
78
|
private selecionarNoLaco;
|
|
139
79
|
/** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
|
|
140
80
|
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, aditivo: boolean): void;
|
|
@@ -150,14 +90,12 @@ export declare class GerenciadorFeicoes {
|
|
|
150
90
|
definirMargensHud(m: Partial<MargensHud>): void;
|
|
151
91
|
private aplicarMargensHud;
|
|
152
92
|
get regraVersoes(): RegraVersoes;
|
|
153
|
-
private oficiaisDe;
|
|
154
93
|
/** Aparece segundo a regra de oficial × prévia? */
|
|
155
94
|
visivelPorVersao(f: Feicao): boolean;
|
|
156
95
|
/** Vai para a tela e responde a clique, caixa, laço, snap e hover: não excluída, não oculta e visível pela regra de versões. */
|
|
157
96
|
desenhada(f: Feicao): boolean;
|
|
158
97
|
/** Regra da seleção: a feição em edição continua selecionada mesmo se for ocultada no meio da edição. */
|
|
159
98
|
private selecionavelAgora;
|
|
160
|
-
private aplicarVersoes;
|
|
161
99
|
get previasGlobais(): boolean;
|
|
162
100
|
/** Mostra (ou esconde) as prévias de todas as entidades. Prévias de entidades sem oficial aparecem sempre. */
|
|
163
101
|
definirPreviasGlobais(ligado: boolean): void;
|
|
@@ -170,10 +108,6 @@ export declare class GerenciadorFeicoes {
|
|
|
170
108
|
removerCursorRemoto(id: string): boolean;
|
|
171
109
|
limparCursoresRemotos(): void;
|
|
172
110
|
get cursoresRemotos(): number;
|
|
173
|
-
/** Mostra o que estava escondido (camada oculta, prévia não solicitada) para a feição poder ser vista. */
|
|
174
|
-
private garantirVisivel;
|
|
175
|
-
private limitesDe;
|
|
176
|
-
private enquadrar;
|
|
177
111
|
/** Aproxima da feição; liga a camada e a prévia, se estiverem escondidas. Ponto: voa até z ≥ 17. */
|
|
178
112
|
zoomParaFeicao(camadaId: string, id: string): boolean;
|
|
179
113
|
zoomParaFeicoes(refs: RefFeicao[]): boolean;
|
|
@@ -181,7 +115,6 @@ export declare class GerenciadorFeicoes {
|
|
|
181
115
|
ajustarTudo(): boolean;
|
|
182
116
|
/** Enquadra a camada inteira; se estava oculta, torna-a visível. */
|
|
183
117
|
ajustarCamada(camadaId: string): boolean;
|
|
184
|
-
private feicaoSob;
|
|
185
118
|
/** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
|
|
186
119
|
aoMoverMouse(e: MouseEvent): void;
|
|
187
120
|
/** Botão direito: emite `cad-feicao-menu` com a feição sob o cursor (ou `null`), para o consumidor abrir o próprio menu. */
|
|
@@ -194,13 +127,19 @@ export declare class GerenciadorFeicoes {
|
|
|
194
127
|
alternarSnap(): void;
|
|
195
128
|
conectarTeclado(): void;
|
|
196
129
|
desconectarTeclado(): void;
|
|
197
|
-
/** Feições visíveis
|
|
130
|
+
/** Feições visíveis cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
|
|
198
131
|
private candidatasEm;
|
|
199
132
|
/** Snap de uma coordenada contra as feições visíveis de todas as camadas de feições (via índice espacial). */
|
|
200
133
|
buscarSnapEm(coord: [number, number], excluir?: ExcluirSnap): import('../../gerencigeo-canvas').ResultadoSnap | null;
|
|
134
|
+
/** @internal Editor de vértices (usado pelos testes de caracterização). */
|
|
135
|
+
get editor(): EditorVertices | null;
|
|
201
136
|
get editando(): boolean;
|
|
202
137
|
iniciarEdicao(camadaId: string, id: string): ResultadoEdicao;
|
|
203
138
|
pararEdicao(): void;
|
|
139
|
+
/** @internal Controle de desenho (usado pelos testes de caracterização). */
|
|
140
|
+
get desenho(): ControleDesenho | null;
|
|
141
|
+
/** @internal Conta-gotas (usado pelos testes de caracterização). */
|
|
142
|
+
amostrarEstilo(coord: LatLonPar): void;
|
|
204
143
|
get ferramentaAtiva(): Ferramenta | null;
|
|
205
144
|
/** Camada que recebe o que for desenhado. Não existe camada padrão: o consumidor escolhe. */
|
|
206
145
|
definirCamadaDesenho(camadaId: string | null): void;
|
|
@@ -220,22 +159,8 @@ export declare class GerenciadorFeicoes {
|
|
|
220
159
|
desfazerVerticeDesenho(): boolean;
|
|
221
160
|
/** Liga/desliga a tecla S do snap (o botão e `definirSnap` continuam valendo). */
|
|
222
161
|
definirAtalhoSnap(ligado: boolean): void;
|
|
223
|
-
private motivoCamadaDesenhoInvalida;
|
|
224
|
-
private novoId;
|
|
225
162
|
private idLivre;
|
|
226
|
-
/**
|
|
227
|
-
* Clique da ferramenta texto: emite `cad-texto-solicitado` (cancelável). Com `preventDefault()` o consumidor assume a
|
|
228
|
-
* entrada do texto e depois chama `detalhe.concluir(texto)` (cria na camada de desenho, com o estilo de desenho) ou
|
|
229
|
-
* simplesmente não faz nada para cancelar. Sem `preventDefault()`, aparece o campo inline.
|
|
230
|
-
*/
|
|
231
|
-
private solicitarTexto;
|
|
232
|
-
private concluirFerramenta;
|
|
233
|
-
/** Conta-gotas: copia o estilo da feição sob o clique para o estilo de desenho. */
|
|
234
|
-
private amostrarEstilo;
|
|
235
|
-
/**
|
|
236
|
-
* Divide polígonos pela linha de corte. Alvos: os polígonos selecionados; sem seleção, o primeiro
|
|
237
|
-
* polígono (de camada visível, interativa e desbloqueada) que a linha corta.
|
|
238
|
-
*/
|
|
163
|
+
/** Divide polígonos pela linha de corte (selecionados; sem seleção, o primeiro cortado). Ver `OperacoesFeicoes`. */
|
|
239
164
|
dividirComLinha(linha: LatLonPar[]): boolean;
|
|
240
165
|
/** Cria um polígono de buffer ao redor da feição (na camada dela, ou em `camadaDestino`). */
|
|
241
166
|
gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
|
|
@@ -249,14 +174,9 @@ export declare class GerenciadorFeicoes {
|
|
|
249
174
|
}, opcoes?: {
|
|
250
175
|
id?: string;
|
|
251
176
|
}): Feicao | null;
|
|
252
|
-
/**
|
|
253
|
-
* Junta linhas (encadeando pontas) ou dois polígonos (por uma ponte) numa feição só; as originais saem.
|
|
254
|
-
* Linhas com pontas a até `toleranciaM` se ligam; polígonos precisam estar a até `toleranciaM` e
|
|
255
|
-
* não podem ter bordas que se cruzam.
|
|
256
|
-
*/
|
|
177
|
+
/** Junta linhas (encadeando pontas) ou dois polígonos numa feição só; as originais saem. Ver `OperacoesFeicoes`. */
|
|
257
178
|
juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
|
|
258
179
|
toleranciaM?: number;
|
|
259
180
|
id?: string;
|
|
260
181
|
}): Feicao | null;
|
|
261
182
|
}
|
|
262
|
-
export {};
|
|
@@ -3,6 +3,8 @@ import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controlle
|
|
|
3
3
|
import { GerenciadorToolbarPainel } from './cad-toolbar-painel';
|
|
4
4
|
import { GerenciadorColecoesDados } from './cad-colecoes-dados';
|
|
5
5
|
import { ContextoEventosCanvas } from './cad-eventos-canvas';
|
|
6
|
+
import { EventoMapaCad, LatLngEvento } from './tipos';
|
|
7
|
+
import { PontoPixel } from './cad-evento-coordenadas';
|
|
6
8
|
export interface ContextoInicializadorCAD {
|
|
7
9
|
host: UICanvasCAD;
|
|
8
10
|
shadow: ShadowRoot;
|
|
@@ -13,7 +15,7 @@ export interface ContextoInicializadorCAD {
|
|
|
13
15
|
obterContextoEventos: () => ContextoEventosCanvas;
|
|
14
16
|
renderLayersUI: () => void;
|
|
15
17
|
invalidateSizeSafely: () => void;
|
|
16
|
-
tratarCliqueLivreCanvas: (e:
|
|
18
|
+
tratarCliqueLivreCanvas: (e: MouseEvent | EventoMapaCad, latlng?: LatLngEvento, containerPoint?: PontoPixel) => void;
|
|
17
19
|
dispararAcaoPopup: (acaoId: string, elementoId: string | number, elemento?: any) => void;
|
|
18
20
|
}
|
|
19
21
|
export declare function inicializarCAD(ctx: ContextoInicializadorCAD): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* O Leaflet recusa inicializar um contêiner já marcado com `_leaflet_id` ("Map container is already initialized").
|
|
3
|
+
* Limpa a marca; devolve `true` se havia uma.
|
|
4
|
+
*/
|
|
5
|
+
export declare function liberarContainerLeaflet(container: HTMLElement | null | undefined): boolean;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
|
|
2
|
+
type IdPonto = string | number;
|
|
3
|
+
export declare function lerPontosSelecionados(controller: GerenciGeoMapaController): IdPonto[];
|
|
4
|
+
export declare function gravarPontosSelecionados(controller: GerenciGeoMapaController, ids: IdPonto[]): void;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos "emprestados" do Leaflet e do contexto do mapa usados pelo <ui-canvas-cad>.
|
|
3
|
+
* Responsabilidade única: descrever, em um só lugar, as formas dinâmicas que o código antes acessava com `as any`.
|
|
4
|
+
*/
|
|
5
|
+
/** Contêiner de mapa do Leaflet: o Leaflet marca o elemento com `_leaflet_id` ao inicializar. */
|
|
6
|
+
export type ContainerLeaflet = HTMLElement & {
|
|
7
|
+
_leaflet_id?: number;
|
|
8
|
+
};
|
|
9
|
+
export interface PontoPixelEvento {
|
|
10
|
+
x?: number;
|
|
11
|
+
y?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface LatLngEvento {
|
|
14
|
+
lat?: number;
|
|
15
|
+
lng?: number;
|
|
16
|
+
/** Alguns emissores usam `lon`. */
|
|
17
|
+
lon?: number;
|
|
18
|
+
}
|
|
19
|
+
/** Evento de mapa/DOM como chega ao canvas: pode ser do Leaflet (com `originalEvent`) ou um MouseEvent cru. */
|
|
20
|
+
export interface EventoMapaCad {
|
|
21
|
+
originalEvent?: EventoMapaCad;
|
|
22
|
+
target?: EventTarget | null;
|
|
23
|
+
composedPath?: () => EventTarget[];
|
|
24
|
+
clientX?: number;
|
|
25
|
+
clientY?: number;
|
|
26
|
+
containerPoint?: PontoPixelEvento;
|
|
27
|
+
layerPoint?: PontoPixelEvento;
|
|
28
|
+
latlng?: LatLngEvento;
|
|
29
|
+
}
|
|
30
|
+
/** Elemento com coordenadas em qualquer das grafias aceitas na entrada. */
|
|
31
|
+
export interface ElementoComCoordenadas {
|
|
32
|
+
lat?: number | string;
|
|
33
|
+
lon?: number | string;
|
|
34
|
+
lng?: number | string;
|
|
35
|
+
latitude?: number | string;
|
|
36
|
+
longitude?: number | string;
|
|
37
|
+
}
|
|
@@ -3,6 +3,8 @@ import { Ponto, Segmento, BancoPonto, Confrontante, CanvasLayerState, CanvasGrap
|
|
|
3
3
|
import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
|
|
4
4
|
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
5
5
|
import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
|
|
6
|
+
import { EventoMapaCad, LatLngEvento } from './tipos';
|
|
7
|
+
import { PontoPixel } from './cad-evento-coordenadas';
|
|
6
8
|
import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes, ResultadoEdicao, ResultadoFerramenta } from './cad-feicoes';
|
|
7
9
|
import { EstiloFeicao, Feicao } from '../../gerencigeo-canvas/feature_types';
|
|
8
10
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
@@ -20,6 +22,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
20
22
|
private feicoes;
|
|
21
23
|
private barraFerramentas;
|
|
22
24
|
private hoverListeners;
|
|
25
|
+
private desligarAnuncios;
|
|
23
26
|
private layerItemListeners;
|
|
24
27
|
private initTimeout?;
|
|
25
28
|
private estilosExternos;
|
|
@@ -46,7 +49,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
46
49
|
definirEstilosExternos(css: EstilosExternos): void;
|
|
47
50
|
private initCAD;
|
|
48
51
|
private obterContextoEventos;
|
|
49
|
-
tratarCliqueLivreCanvas(e: MouseEvent |
|
|
52
|
+
tratarCliqueLivreCanvas(e: MouseEvent | EventoMapaCad, latLng?: LatLngEvento, pt?: PontoPixel): void;
|
|
50
53
|
dispararAcaoPopup(acaoId: string, elementoId: string | number, elemento?: any): void;
|
|
51
54
|
toggleLayersPanel(): void;
|
|
52
55
|
closeLayersPanel(): void;
|
|
@@ -25,11 +25,14 @@ export declare class UICheckbox extends FormAssociatedElement {
|
|
|
25
25
|
set disabled(val: boolean);
|
|
26
26
|
get type(): string;
|
|
27
27
|
atualizarValidade(): void;
|
|
28
|
+
/** `focus()` no host leva o foco ao controle interno (necessário para o foco de validação do formulário). */
|
|
29
|
+
focus(options?: FocusOptions): void;
|
|
28
30
|
alternar(): void;
|
|
29
31
|
protected syncState(): void;
|
|
30
32
|
formResetCallback(): void;
|
|
31
|
-
formStateRestoreCallback(state:
|
|
33
|
+
formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
|
|
32
34
|
private handleClick;
|
|
35
|
+
private handleHostClick;
|
|
33
36
|
private handleKeyDown;
|
|
34
37
|
private handleFocus;
|
|
35
38
|
private handleBlur;
|