@thibezer/ui-components-kit 2.8.2 → 2.9.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 +146 -0
- package/README.md +32 -8
- package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
- package/dist/acessibilidade-CUlSXc2X.js +38 -0
- package/dist/altura-controle-ukMRPckR.cjs +1 -0
- package/dist/altura-controle-vxQiXG4q.js +62 -0
- package/dist/botao.cjs +1 -1
- package/dist/botao.js +1 -1
- package/dist/camadas.cjs +114 -110
- package/dist/camadas.js +1343 -1177
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +86 -85
- package/dist/canvas.js +5437 -4304
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- 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/ferramentas-comum.d.ts +3 -1
- package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +23 -0
- package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +22 -0
- package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +3 -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-host.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
- package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
- package/dist/components/ui-camadas/camadas-render.d.ts +15 -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-selecao.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +8 -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 +28 -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 +39 -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 +30 -1
- package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
- package/dist/components/ui-cores/tipos.d.ts +2 -0
- package/dist/components/ui-cores/ui-controle-cores.d.ts +8 -3
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +3 -1
- package/dist/components/ui-linha/index.d.ts +1 -0
- package/dist/components/ui-linha/ui-linha.d.ts +48 -0
- 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/altura-controle.d.ts +34 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/opcoes.d.ts +9 -0
- package/dist/core/rotulo-controle.d.ts +13 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +28 -18
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +1 -1
- package/dist/custom-elements.json +22088 -16390
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +2 -2
- 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/gerencigeo-canvas/canvas_interacao.d.ts +0 -1
- package/dist/gerencigeo-canvas/curva_leaflet.d.ts +2 -2
- package/dist/gerencigeo-canvas/feature_curvas.d.ts +3 -1
- package/dist/gerencigeo-canvas/feature_lod.d.ts +38 -0
- package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
- package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +16 -8
- package/dist/gerencigeo-canvas/index.d.ts +7 -0
- package/dist/gerencigeo-canvas/layer_hit_test.d.ts +22 -0
- package/dist/gerencigeo-canvas/layer_manager.d.ts +5 -0
- package/dist/gerencigeo-canvas/mapa_core.d.ts +6 -0
- package/dist/gerencigeo-canvas/motor/dados-camada.d.ts +39 -0
- package/dist/gerencigeo-canvas/motor/estilo.d.ts +28 -0
- package/dist/gerencigeo-canvas/motor/geometria-px.d.ts +27 -0
- package/dist/gerencigeo-canvas/motor/index.d.ts +5 -0
- package/dist/gerencigeo-canvas/motor/motor-formas.d.ts +107 -0
- package/dist/gerencigeo-canvas/motor/tipos.d.ts +100 -0
- package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
- package/dist/gerencigeo-canvas/renderers/canvas_formas_leaflet.d.ts +87 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_canvas_renderer.d.ts +58 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_despachante.d.ts +31 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +48 -9
- package/dist/gerencigeo-canvas/renderers/marcadores_feicoes.d.ts +11 -0
- package/dist/gerencigeo-canvas/renderers/marcas_lod_layer.d.ts +19 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_feicoes_tipos.d.ts +44 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +95 -0
- package/dist/gerencigeo-canvas/renderers/selecao_visual.d.ts +6 -0
- package/dist/gerencigeo-canvas/types.d.ts +2 -0
- package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +179 -176
- 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/motor-BB6tB6U-.cjs +1 -0
- package/dist/motor-CFI84lM2.js +1301 -0
- package/dist/motor.cjs +1 -0
- package/dist/motor.d.ts +7 -0
- package/dist/motor.js +52 -0
- package/dist/opcoes-CJYLi6kd.js +12 -0
- package/dist/opcoes-CkyDxBuQ.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +11 -11
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +49 -8
- package/dist/tipos-react.d.ts +2 -0
- package/dist/tipos-vue.d.ts +45 -8
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-BWhoGgo9.js +197 -0
- package/dist/ui-badge-SIR81R9l.cjs +28 -0
- package/dist/ui-botao-D24oXySA.cjs +12 -0
- package/dist/ui-botao-Dsj08jjw.js +165 -0
- package/dist/{ui-campo-texto-Uu2dJE_0.js → ui-campo-texto-B_OHVGiN.js} +51 -51
- package/dist/ui-campo-texto-DauJCde3.cjs +16 -0
- package/dist/{ui-card-C_o5_0cB.js → ui-card-BNYCQ7g-.js} +50 -42
- package/dist/ui-card-BrjBL-yo.cjs +20 -0
- package/dist/ui-controle-cores-DgEza3wF.js +612 -0
- package/dist/ui-controle-cores-uY__TgwW.cjs +117 -0
- package/dist/ui-kit.css +1 -1
- package/dist/ui-linha-BYAX4W6x.cjs +19 -0
- package/dist/{ui-segmented-DyF5YLsV.js → ui-linha-aqLlaYi7.js} +209 -114
- package/dist/{ui-modal-DBOtSTbR.js → ui-modal-BkYvNP0G.js} +116 -140
- package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
- package/dist/{ui-paleta-ferramentas-DbwdWVtT.js → ui-paleta-ferramentas-BXXrI1Y7.js} +491 -431
- package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +21 -0
- package/dist/{ui-skeleton-W9uwIceA.js → ui-skeleton-B2Rgrv8o.js} +254 -191
- package/dist/{ui-skeleton-SPYqku8P.cjs → ui-skeleton-DiOxTBZK.cjs} +10 -10
- package/dist/ui-switch-D9a8XlVX.cjs +53 -0
- package/dist/{ui-switch-BcOqOkiV.js → ui-switch-DO1R0Ce7.js} +187 -128
- package/dist/{ui-tabela-propriedades-C-PeuW1i.cjs → ui-tabela-propriedades-CjK2gG14.cjs} +10 -10
- package/dist/{ui-tabela-propriedades-BokvDD3b.js → ui-tabela-propriedades-DoL4SE0r.js} +845 -826
- package/package.json +8 -3
- package/dist/form-validacao-BIOXxt-1.js +0 -140
- package/dist/form-validacao-ytRYSF3E.cjs +0 -1
- package/dist/svg-seguro-BsbNQqpd.js +0 -50
- package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
- package/dist/ui-badge-BxT-sDmV.cjs +0 -28
- package/dist/ui-badge-C0eKBI8E.js +0 -183
- package/dist/ui-botao-BOOnP8ds.cjs +0 -12
- package/dist/ui-botao-DfqSivHl.js +0 -165
- package/dist/ui-botao-OGJV6Vfk.js +0 -165
- package/dist/ui-botao-psS1juof.cjs +0 -12
- package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
- package/dist/ui-card-B86lJXTP.cjs +0 -20
- package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
- package/dist/ui-modal-CvGFGh1h.cjs +0 -18
- package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
- package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
- package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
- package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
- package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
- package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
- package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
- package/dist/ui-segmented-wUraId2e.js +0 -412
- package/dist/ui-skeleton-DI4_9WOX.js +0 -428
- package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
- package/dist/ui-switch-D7iPKDj-.cjs +0 -53
- package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
- package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
- package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
- package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
- package/dist/ui-toast-Bp_NlM5G.js +0 -156
- package/dist/ui-toast-DGTZKne5.cjs +0 -20
- package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
- package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
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 { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
|
|
5
|
+
export interface PortasConsulta {
|
|
6
|
+
obterMapa: () => L.Map | null;
|
|
7
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
8
|
+
desenhada: (f: Feicao) => boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class ConsultaEspacialFeicoes {
|
|
11
|
+
private p;
|
|
12
|
+
constructor(p: PortasConsulta);
|
|
13
|
+
/** Feições visíveis das camadas de feições cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
|
|
14
|
+
candidatasEm(coord: LatLonPar, tolPx: number): Feicao[];
|
|
15
|
+
/** Snap de uma coordenada contra as feições visíveis de todas as camadas de feições (via índice espacial). */
|
|
16
|
+
buscarSnapEm(coord: [number, number], excluir?: ExcluirSnap): import('../../gerencigeo-canvas').ResultadoSnap | null;
|
|
17
|
+
feicaoSob(clientX: number, clientY: number): {
|
|
18
|
+
feicao: Feicao | null;
|
|
19
|
+
coordenada: LatLonPar;
|
|
20
|
+
} | null;
|
|
21
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
2
|
+
import { Feicao } from '../../gerencigeo-canvas/feature_types';
|
|
3
|
+
import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes } from './cad-feicoes-tipos';
|
|
4
|
+
export interface PortasRepositorio {
|
|
5
|
+
obterLayerManager: () => CanvasLayerManager;
|
|
6
|
+
opcoesNormalizacao: () => {
|
|
7
|
+
aceitarOrigem: boolean;
|
|
8
|
+
};
|
|
9
|
+
/** Chamado depois de cada mudança nos dados, para reconciliar seleção, edição e popup. */
|
|
10
|
+
aposDados: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare class RepositorioFeicoes {
|
|
13
|
+
private p;
|
|
14
|
+
/** id -> posição na lista da camada (válido enquanto `lista` for a lista atual); evita varrer a camada a cada consulta. */
|
|
15
|
+
private posicoes;
|
|
16
|
+
constructor(p: PortasRepositorio);
|
|
17
|
+
lista(camadaId: string): Feicao[];
|
|
18
|
+
private posicaoDe;
|
|
19
|
+
/** Feição da camada pelo id (O(1)); `undefined` se não existe. */
|
|
20
|
+
buscar(camadaId: string, id: string): Feicao | undefined;
|
|
21
|
+
private garantirCamada;
|
|
22
|
+
definirFeicoes(camadaId: string, brutas: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
|
|
23
|
+
adicionarFeicao(camadaId: string, bruta: unknown, opcoes?: OpcoesCamadaFeicoes): Feicao | null;
|
|
24
|
+
/**
|
|
25
|
+
* Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Com `substituirPropriedades`,
|
|
26
|
+
* `propriedades` informadas trocam as atuais por inteiro (atributos ausentes somem).
|
|
27
|
+
*/
|
|
28
|
+
atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: Pick<OpcoesLote, 'substituirPropriedades'>): Feicao | null;
|
|
29
|
+
/** Grava uma feição já normalizada (usado quando o próprio mapa a altera, como ao arrastar um texto). */
|
|
30
|
+
substituir(camadaId: string, feicao: Feicao): void;
|
|
31
|
+
removerFeicao(camadaId: string, id: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona.
|
|
34
|
+
* Adicionar um id que já existe substitui a feição mantendo a posição (a ordem de empilhamento não muda).
|
|
35
|
+
*/
|
|
36
|
+
aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
|
|
37
|
+
private mesclar;
|
|
38
|
+
private aplicar;
|
|
39
|
+
}
|
|
@@ -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,28 @@
|
|
|
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
|
+
/** Pedido explícito de informações: abre o popup da feição. */
|
|
13
|
+
abrirPopup?: (feicao: Feicao) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare class PonteiroFeicoes {
|
|
16
|
+
private p;
|
|
17
|
+
private hoverId;
|
|
18
|
+
private hoverAgendado;
|
|
19
|
+
constructor(p: PortasPonteiro);
|
|
20
|
+
/** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
|
|
21
|
+
aoMoverMouse(e: MouseEvent): void;
|
|
22
|
+
/** Botão direito: emite `cad-feicao-menu` com a feição sob o cursor (ou `null`), para o consumidor abrir o próprio menu. */
|
|
23
|
+
menuContexto(e: MouseEvent): void;
|
|
24
|
+
/** Duplo clique sobre uma feição: pedido de informações (popup). Ignorado durante desenho ou edição de vértices. */
|
|
25
|
+
duploClique(e: MouseEvent): void;
|
|
26
|
+
/** Esquece a feição sob o cursor (ao destruir o componente). */
|
|
27
|
+
limpar(): void;
|
|
28
|
+
}
|
|
@@ -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,15 @@ 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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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 { ModoPopups } from '../../gerencigeo-canvas/popup_gate';
|
|
15
|
+
import { TIPO_CAMADA_FEICOES, OpcoesCamadaFeicoes, OpcoesLote, AtualizacaoFeicao, LoteFeicoes, ResultadoLote, ResultadoFeicoes, OpcoesPopup, ResultadoFerramenta, ResultadoEdicao } from './cad-feicoes-tipos';
|
|
16
|
+
export { TIPO_CAMADA_FEICOES };
|
|
17
|
+
export type { OpcoesCamadaFeicoes, OpcoesLote, AtualizacaoFeicao, LoteFeicoes, ResultadoLote, ResultadoFeicoes, OpcoesPopup, ResultadoFerramenta, ResultadoEdicao };
|
|
52
18
|
interface Contexto {
|
|
53
19
|
obterLayerManager: () => CanvasLayerManager;
|
|
54
20
|
obterMapa: () => L.Map | null;
|
|
@@ -60,37 +26,29 @@ interface Contexto {
|
|
|
60
26
|
aoFerramenta?: (ferramenta: Ferramenta | null) => void;
|
|
61
27
|
/** Regra de oficial × prévia compartilhada com o renderizador (o componente a põe no contexto de renderização). */
|
|
62
28
|
regra?: RegraVersoes;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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';
|
|
29
|
+
/**
|
|
30
|
+
* Quando o popup da feição abre: `sob-demanda` (padrão do componente) só por duplo clique ou `abrirPopupFeicao`;
|
|
31
|
+
* `automatico` também ao selecionar uma feição. Sem esta função (uso direto do gerenciador), vale `automatico`.
|
|
32
|
+
*/
|
|
33
|
+
modoPopups?: () => ModoPopups;
|
|
34
|
+
/** Executa a abertura de um popup como pedido explícito, passando pelo portão de popups do mapa. */
|
|
35
|
+
liberarPopups?: <T>(fn: () => T) => T;
|
|
76
36
|
}
|
|
77
37
|
export declare class GerenciadorFeicoes {
|
|
78
38
|
private contexto;
|
|
39
|
+
private operacoes;
|
|
79
40
|
private selecao;
|
|
80
41
|
private popup;
|
|
81
|
-
private
|
|
42
|
+
private edicao;
|
|
43
|
+
private consulta;
|
|
44
|
+
private ponteiro;
|
|
45
|
+
private regiao;
|
|
82
46
|
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;
|
|
47
|
+
private ferramentas;
|
|
48
|
+
private versoes;
|
|
49
|
+
private camera;
|
|
50
|
+
private repositorio;
|
|
91
51
|
private cursores;
|
|
92
|
-
private hoverId;
|
|
93
|
-
private hoverAgendado;
|
|
94
52
|
private margensHud;
|
|
95
53
|
/** Aceita a coordenada (0, 0) exata nas feições de entrada (atributo `aceitar-origem`). */
|
|
96
54
|
aceitarOrigem: boolean;
|
|
@@ -99,28 +57,18 @@ export declare class GerenciadorFeicoes {
|
|
|
99
57
|
/** Depois de qualquer mudança nos dados: descarta seleção órfã e atualiza/fecha o popup aberto. */
|
|
100
58
|
private aposDados;
|
|
101
59
|
private lista;
|
|
102
|
-
private posicaoDe;
|
|
103
60
|
/** Feição da camada pelo id (O(1)); `undefined` se não existe. */
|
|
104
61
|
buscar(camadaId: string, id: string): Feicao | undefined;
|
|
105
|
-
private garantirCamada;
|
|
106
62
|
private opcoesNormalizacao;
|
|
107
63
|
definirFeicoes(camadaId: string, brutas: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
|
|
108
64
|
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
|
-
*/
|
|
65
|
+
/** Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Ver `RepositorioFeicoes`. */
|
|
113
66
|
atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: Pick<OpcoesLote, 'substituirPropriedades'>): Feicao | null;
|
|
114
67
|
/** Grava uma feição já normalizada (usado quando o próprio mapa a altera, como ao arrastar um texto). */
|
|
115
68
|
substituir(camadaId: string, feicao: Feicao): void;
|
|
116
69
|
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
|
-
*/
|
|
70
|
+
/** Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona. */
|
|
121
71
|
aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
|
|
122
|
-
private mesclar;
|
|
123
|
-
private aplicar;
|
|
124
72
|
obterFeicoes(camadaId: string): Feicao[];
|
|
125
73
|
/** Traduz as ações vindas do renderizador no evento a disparar pelo componente. */
|
|
126
74
|
tratarAcaoCamada(acao: string, detalhe: {
|
|
@@ -134,12 +82,17 @@ export declare class GerenciadorFeicoes {
|
|
|
134
82
|
/** Esc ou clique no vazio: durante a edição só encerra a edição; fora dela, limpa a seleção. */
|
|
135
83
|
aoPedirLimpeza(): void;
|
|
136
84
|
obterFeicoesSelecionadas(): Feicao[];
|
|
137
|
-
/** Laço: seleciona (substituindo) as feições
|
|
85
|
+
/** Laço: seleciona (substituindo) as feições tocadas pelo polígono; a ferramenta encerra. */
|
|
138
86
|
private selecionarNoLaco;
|
|
139
87
|
/** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
|
|
140
88
|
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, aditivo: boolean): void;
|
|
141
89
|
definirMargensPopup(m: Partial<MargensPopup>): void;
|
|
142
90
|
fecharPopup(): void;
|
|
91
|
+
private modoPopups;
|
|
92
|
+
/** Pedido explícito: abre o popup da feição (vale em qualquer modo). `false` se não existe, foi excluída ou não está na tela. */
|
|
93
|
+
abrirPopupFeicao(camadaId: string, id: string): boolean;
|
|
94
|
+
/** Duplo clique no mapa: abre o popup da feição sob o cursor (a não ser que os popups estejam desligados). */
|
|
95
|
+
aoDuploClique(e: MouseEvent): void;
|
|
143
96
|
/** Opções do popup (hoje: se "copiar" escreve na área de transferência). Mescla com o que já foi definido. */
|
|
144
97
|
definirOpcoesPopup(opcoes: OpcoesPopup): void;
|
|
145
98
|
obterOpcoesPopup(): Required<OpcoesPopup>;
|
|
@@ -150,14 +103,12 @@ export declare class GerenciadorFeicoes {
|
|
|
150
103
|
definirMargensHud(m: Partial<MargensHud>): void;
|
|
151
104
|
private aplicarMargensHud;
|
|
152
105
|
get regraVersoes(): RegraVersoes;
|
|
153
|
-
private oficiaisDe;
|
|
154
106
|
/** Aparece segundo a regra de oficial × prévia? */
|
|
155
107
|
visivelPorVersao(f: Feicao): boolean;
|
|
156
108
|
/** 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
109
|
desenhada(f: Feicao): boolean;
|
|
158
110
|
/** Regra da seleção: a feição em edição continua selecionada mesmo se for ocultada no meio da edição. */
|
|
159
111
|
private selecionavelAgora;
|
|
160
|
-
private aplicarVersoes;
|
|
161
112
|
get previasGlobais(): boolean;
|
|
162
113
|
/** Mostra (ou esconde) as prévias de todas as entidades. Prévias de entidades sem oficial aparecem sempre. */
|
|
163
114
|
definirPreviasGlobais(ligado: boolean): void;
|
|
@@ -170,10 +121,6 @@ export declare class GerenciadorFeicoes {
|
|
|
170
121
|
removerCursorRemoto(id: string): boolean;
|
|
171
122
|
limparCursoresRemotos(): void;
|
|
172
123
|
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
124
|
/** Aproxima da feição; liga a camada e a prévia, se estiverem escondidas. Ponto: voa até z ≥ 17. */
|
|
178
125
|
zoomParaFeicao(camadaId: string, id: string): boolean;
|
|
179
126
|
zoomParaFeicoes(refs: RefFeicao[]): boolean;
|
|
@@ -181,7 +128,6 @@ export declare class GerenciadorFeicoes {
|
|
|
181
128
|
ajustarTudo(): boolean;
|
|
182
129
|
/** Enquadra a camada inteira; se estava oculta, torna-a visível. */
|
|
183
130
|
ajustarCamada(camadaId: string): boolean;
|
|
184
|
-
private feicaoSob;
|
|
185
131
|
/** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
|
|
186
132
|
aoMoverMouse(e: MouseEvent): void;
|
|
187
133
|
/** 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 +140,19 @@ export declare class GerenciadorFeicoes {
|
|
|
194
140
|
alternarSnap(): void;
|
|
195
141
|
conectarTeclado(): void;
|
|
196
142
|
desconectarTeclado(): void;
|
|
197
|
-
/** Feições visíveis
|
|
143
|
+
/** Feições visíveis cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
|
|
198
144
|
private candidatasEm;
|
|
199
145
|
/** Snap de uma coordenada contra as feições visíveis de todas as camadas de feições (via índice espacial). */
|
|
200
146
|
buscarSnapEm(coord: [number, number], excluir?: ExcluirSnap): import('../../gerencigeo-canvas').ResultadoSnap | null;
|
|
147
|
+
/** @internal Editor de vértices (usado pelos testes de caracterização). */
|
|
148
|
+
get editor(): EditorVertices | null;
|
|
201
149
|
get editando(): boolean;
|
|
202
150
|
iniciarEdicao(camadaId: string, id: string): ResultadoEdicao;
|
|
203
151
|
pararEdicao(): void;
|
|
152
|
+
/** @internal Controle de desenho (usado pelos testes de caracterização). */
|
|
153
|
+
get desenho(): ControleDesenho | null;
|
|
154
|
+
/** @internal Conta-gotas (usado pelos testes de caracterização). */
|
|
155
|
+
amostrarEstilo(coord: LatLonPar): void;
|
|
204
156
|
get ferramentaAtiva(): Ferramenta | null;
|
|
205
157
|
/** Camada que recebe o que for desenhado. Não existe camada padrão: o consumidor escolhe. */
|
|
206
158
|
definirCamadaDesenho(camadaId: string | null): void;
|
|
@@ -220,22 +172,8 @@ export declare class GerenciadorFeicoes {
|
|
|
220
172
|
desfazerVerticeDesenho(): boolean;
|
|
221
173
|
/** Liga/desliga a tecla S do snap (o botão e `definirSnap` continuam valendo). */
|
|
222
174
|
definirAtalhoSnap(ligado: boolean): void;
|
|
223
|
-
private motivoCamadaDesenhoInvalida;
|
|
224
|
-
private novoId;
|
|
225
175
|
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
|
-
*/
|
|
176
|
+
/** Divide polígonos pela linha de corte (selecionados; sem seleção, o primeiro cortado). Ver `OperacoesFeicoes`. */
|
|
239
177
|
dividirComLinha(linha: LatLonPar[]): boolean;
|
|
240
178
|
/** Cria um polígono de buffer ao redor da feição (na camada dela, ou em `camadaDestino`). */
|
|
241
179
|
gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
|
|
@@ -249,14 +187,9 @@ export declare class GerenciadorFeicoes {
|
|
|
249
187
|
}, opcoes?: {
|
|
250
188
|
id?: string;
|
|
251
189
|
}): 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
|
-
*/
|
|
190
|
+
/** Junta linhas (encadeando pontas) ou dois polígonos numa feição só; as originais saem. Ver `OperacoesFeicoes`. */
|
|
257
191
|
juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
|
|
258
192
|
toleranciaM?: number;
|
|
259
193
|
id?: string;
|
|
260
194
|
}): Feicao | null;
|
|
261
195
|
}
|
|
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 {};
|