@thibezer/ui-components-kit 2.8.2 → 2.10.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 +233 -0
- package/README.md +37 -10
- 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 +111 -109
- package/dist/camadas.js +1360 -1182
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +88 -86
- package/dist/canvas.js +4695 -3395
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-area-texto/area-texto-altura.d.ts +16 -0
- package/dist/components/ui-area-texto/area-texto-contador.d.ts +6 -0
- package/dist/components/ui-area-texto/area-texto-template.d.ts +2 -0
- package/dist/components/ui-area-texto/index.d.ts +3 -0
- package/dist/components/ui-area-texto/tipos.d.ts +19 -0
- package/dist/components/ui-area-texto/ui-area-texto.d.ts +100 -0
- 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-campo-texto/campo-texto-estados.d.ts +5 -1
- package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +1 -0
- package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +21 -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-recusas.d.ts +6 -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-card/card-interacao.d.ts +17 -0
- package/dist/components/ui-card/card-secoes.d.ts +10 -0
- package/dist/components/ui-card/ui-card.d.ts +23 -0
- 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-texto/ui-texto.d.ts +16 -0
- 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/alvo-digitavel.d.ts +5 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/opcoes.d.ts +16 -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 +9 -8
- package/dist/custom-elements.json +28294 -20127
- 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.d.ts +4 -0
- package/dist/forms.js +15 -12
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +2 -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_desenho.d.ts +13 -1
- package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +3 -0
- package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +9 -0
- package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +13 -2
- 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 +10 -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/popup_residual.d.ts +5 -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 +7 -0
- package/dist/index.js +196 -189
- 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-CupvWVIm.js +24 -0
- package/dist/opcoes-vdAUY5OI.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +14 -13
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +123 -8
- package/dist/tipos-react.d.ts +6 -0
- package/dist/tipos-vue.d.ts +119 -8
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-B5J_c5P5.js +197 -0
- package/dist/ui-badge-DC4y6Dik.cjs +28 -0
- package/dist/ui-botao-D24oXySA.cjs +12 -0
- package/dist/ui-botao-Dsj08jjw.js +165 -0
- package/dist/ui-campo-texto-19tIrmBK.js +377 -0
- package/dist/ui-campo-texto-CH8mzX61.cjs +16 -0
- package/dist/ui-card-0wu4rjEX.cjs +20 -0
- package/dist/ui-card-DRtpOo3l.js +143 -0
- package/dist/ui-controle-cores-BEUKOq4n.js +275 -0
- package/dist/ui-controle-cores-BLhrZHMh.cjs +32 -0
- package/dist/ui-kit.css +1 -1
- package/dist/ui-linha-C306zxWG.cjs +19 -0
- package/dist/ui-linha-C_azWkcG.js +517 -0
- 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-seletor-cor-2yGryC_Z.cjs +86 -0
- package/dist/ui-seletor-cor-BuyhoDZz.js +345 -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-BL-x_-SM.js +1202 -0
- package/dist/ui-switch-C0i_3QXu.cjs +66 -0
- 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-campo-texto-Uu2dJE_0.js +0 -379
- package/dist/ui-card-B86lJXTP.cjs +0 -20
- package/dist/ui-card-C_o5_0cB.js +0 -111
- 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-DyF5YLsV.js +0 -418
- 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-BcOqOkiV.js +0 -856
- 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
|
@@ -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,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Textos (pt-BR) das recusas do <ui-canvas-cad>: o motivo que sai em `cad-desenho-recusado` e `cad-edicao-recusada`
|
|
3
|
+
* vira uma frase para o aviso visível e para o leitor de tela. Funções puras; motivo desconhecido recebe um texto genérico.
|
|
4
|
+
*/
|
|
5
|
+
export declare function textoDesenhoRecusado(motivo: unknown): string;
|
|
6
|
+
export declare function textoEdicaoRecusada(motivo: unknown): string;
|
|
@@ -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
|
+
}
|
|
@@ -2,7 +2,12 @@ import { default as L } from 'leaflet';
|
|
|
2
2
|
import { Ponto, Segmento, BancoPonto, Confrontante, CanvasLayerState, CanvasGraphicScale, ScaleMode, PontoCAD, ConexaoCAD, PoligonoCAD, DestacarElementoOpcoes } from '../../gerencigeo-canvas/types';
|
|
3
3
|
import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
|
|
4
4
|
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
5
|
+
import { ModoPopups } from '../../gerencigeo-canvas/popup_gate';
|
|
6
|
+
import { ModoRenderizador } from '../../gerencigeo-canvas/renderers/feicoes_despachante';
|
|
7
|
+
import { EstatisticasFeicoes } from '../../gerencigeo-canvas/renderers/renderizador_feicoes_tipos';
|
|
5
8
|
import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
|
|
9
|
+
import { EventoMapaCad, LatLngEvento } from './tipos';
|
|
10
|
+
import { PontoPixel } from './cad-evento-coordenadas';
|
|
6
11
|
import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes, ResultadoEdicao, ResultadoFerramenta } from './cad-feicoes';
|
|
7
12
|
import { EstiloFeicao, Feicao } from '../../gerencigeo-canvas/feature_types';
|
|
8
13
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
@@ -20,6 +25,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
20
25
|
private feicoes;
|
|
21
26
|
private barraFerramentas;
|
|
22
27
|
private hoverListeners;
|
|
28
|
+
private desligarAnuncios;
|
|
23
29
|
private layerItemListeners;
|
|
24
30
|
private initTimeout?;
|
|
25
31
|
private estilosExternos;
|
|
@@ -46,7 +52,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
46
52
|
definirEstilosExternos(css: EstilosExternos): void;
|
|
47
53
|
private initCAD;
|
|
48
54
|
private obterContextoEventos;
|
|
49
|
-
tratarCliqueLivreCanvas(e: MouseEvent |
|
|
55
|
+
tratarCliqueLivreCanvas(e: MouseEvent | EventoMapaCad, latLng?: LatLngEvento, pt?: PontoPixel): void;
|
|
50
56
|
dispararAcaoPopup(acaoId: string, elementoId: string | number, elemento?: any): void;
|
|
51
57
|
toggleLayersPanel(): void;
|
|
52
58
|
closeLayersPanel(): void;
|
|
@@ -69,6 +75,26 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
69
75
|
*/
|
|
70
76
|
get aceitarOrigem(): boolean;
|
|
71
77
|
set aceitarOrigem(val: boolean);
|
|
78
|
+
/**
|
|
79
|
+
* Quando os popups abrem (atributo `popups`): `sob-demanda` (padrão) só por duplo clique sobre a feição/camada ou por
|
|
80
|
+
* `abrirPopupFeicao()`, sem mover o mapa; `automatico` abre ao clicar e o Leaflet ajusta a vista (comportamento antigo);
|
|
81
|
+
* `desligado` só por `abrirPopupFeicao()`. Valor inválido usa o padrão.
|
|
82
|
+
*/
|
|
83
|
+
get popups(): ModoPopups;
|
|
84
|
+
set popups(val: ModoPopups);
|
|
85
|
+
/**
|
|
86
|
+
* Quem desenha as camadas de feições (atributo `renderizador`): `leaflet` (padrão; um objeto Leaflet por feição) ou
|
|
87
|
+
* `canvas` (motor sem DOM + Canvas 2D: um canvas por camada e um de sobreposição para seleção, formas minúsculas
|
|
88
|
+
* como marcas em lote, só um objeto Leaflet por marcador de ícone, texto, cluster e rótulo). Valor inválido usa
|
|
89
|
+
* `leaflet`. Ao mudar, as camadas de feições são recriadas; a API, os eventos e os dados não mudam.
|
|
90
|
+
*/
|
|
91
|
+
get renderizador(): ModoRenderizador;
|
|
92
|
+
set renderizador(val: ModoRenderizador);
|
|
93
|
+
/**
|
|
94
|
+
* Contadores do desenho de uma camada de feições (`total`, `materializadas`, `desenhadas`, `marcasLOD`, `clusters`,
|
|
95
|
+
* `canvases`, `renderizador`...), para diagnóstico e benchmark. `null` se a camada não está desenhada.
|
|
96
|
+
*/
|
|
97
|
+
estatisticasFeicoes(camadaId: string): EstatisticasFeicoes | null;
|
|
72
98
|
get modoSequencial(): boolean;
|
|
73
99
|
set modoSequencial(val: boolean);
|
|
74
100
|
get chaveGrupo(): string | undefined;
|
|
@@ -79,6 +105,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
79
105
|
set canalConfiguracao(val: string | null);
|
|
80
106
|
fitBounds(pontos?: Ponto[], padding?: [number, number], incluirVizinhos?: boolean): void;
|
|
81
107
|
zoomExtents(): void;
|
|
108
|
+
/** Seleciona o vértice. A vista só se move (e o popup abre) se `zoomLevel` for informado: é o pedido de "ir até o ponto". */
|
|
82
109
|
selectPonto(id: string | number, zoomLevel?: number): void;
|
|
83
110
|
selecionarPonto(id: string | number, zoomLevel?: number): void;
|
|
84
111
|
get pontosSelecionados(): (string | number)[];
|
|
@@ -203,6 +230,8 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
203
230
|
removerCursorRemoto(id: string): boolean;
|
|
204
231
|
limparCursoresRemotos(): void;
|
|
205
232
|
fecharPopupFeicao(): void;
|
|
233
|
+
/** Abre o popup da feição (pedido explícito, vale em qualquer modo de `popups`). `false` se ela não existe ou não está na tela. */
|
|
234
|
+
abrirPopupFeicao(camadaId: string, id: string): boolean;
|
|
206
235
|
/**
|
|
207
236
|
* Opções do popup. `copiarParaAreaDeTransferencia` (padrão `true`): a ação "copiar" também grava as coordenadas na área de
|
|
208
237
|
* transferência; com `false` só sai `cad-feicao-acao` e o consumidor decide (ex.: para mostrar o próprio aviso).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quando um clique ou uma tecla vinda de dentro do card deve ativá-lo.
|
|
3
|
+
* Responsabilidade única: decidir, sem tocar no DOM, se o evento pertence ao card ou a um controle interno.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* O alvo é (ou está dentro de) um controle com comportamento próprio, entre ele e a `raiz` (o host do card)?
|
|
7
|
+
* Aceita `Element`, e não só `HTMLElement`: o alvo de um clique num ícone é o `<path>` do SVG.
|
|
8
|
+
* Controles fora da `raiz` não contam (um card dentro de um `<a>` ou `<label>` continua clicável), e o próprio
|
|
9
|
+
* host e o `role="button"` da base do card não são "controle interno".
|
|
10
|
+
*/
|
|
11
|
+
export declare function ehControleInterno(alvo: EventTarget | null | undefined, raiz: Element): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* A tecla ativa o card? Só Enter/Espaço pressionados no próprio card, sem repetição (tecla mantida) e sem
|
|
14
|
+
* Ctrl/Alt/Meta. Teclas vindas de controles internos (campo, botão) não são do card: ativá-lo e chamar
|
|
15
|
+
* `preventDefault` impediria digitar espaço num `<input>` ou acionar o botão.
|
|
16
|
+
*/
|
|
17
|
+
export declare function teclaAtivaCard(e: Pick<KeyboardEvent, 'key' | 'repeat' | 'ctrlKey' | 'altKey' | 'metaKey' | 'target'>, base: EventTarget): boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seções opcionais do card (mídia, cabeçalho, rodapé).
|
|
3
|
+
* Responsabilidade única: dizer se um grupo de slots (nome em português e alias em inglês) tem conteúdo.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Há conteúdo atribuído a algum dos slots `nomes`? Conta elementos e texto não vazio (espaços e quebras de linha
|
|
7
|
+
* entre as tags não contam). Também olha os filhos diretos do host com `slot="..."`, que cobre o intervalo antes do
|
|
8
|
+
* `slotchange`. Só filhos diretos: um `[slot]` aninhado em outro elemento pertence a outro componente.
|
|
9
|
+
*/
|
|
10
|
+
export declare function secaoTemConteudo(raiz: ShadowRoot | null, host: Element, nomes: readonly string[]): boolean;
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
/**
|
|
3
|
+
* Cartão de conteúdo com mídia, cabeçalho, corpo e rodapé opcionais; pode ser clicável (vira um botão).
|
|
4
|
+
*
|
|
5
|
+
* @attr {'plano'|'elevado'|'destaque'} elevacao - Profundidade visual (alias `elevation`).
|
|
6
|
+
* @attr {'plano'|'elevado'|'destaque'} variante - Estilo adicional (alias `variant`); valores desconhecidos são ignorados.
|
|
7
|
+
* @attr {boolean} clicavel - Torna o card um botão focável que emite `ui-clique` (alias `clickable`).
|
|
8
|
+
* @attr {boolean} compacto - Reduz os espaçamentos internos (alias `compact`).
|
|
9
|
+
* @attr {boolean} disabled - Desativa a interação e reduz a opacidade.
|
|
10
|
+
* @attr {string} aria-label - Nome acessível do card clicável (um card sem clique não é anunciado como controle).
|
|
11
|
+
* @slot - Corpo do card.
|
|
12
|
+
* @slot midia - Imagem ou vídeo no topo (alias `media`).
|
|
13
|
+
* @slot cabecalho - Título e ações (alias `header`); a seção some quando vazia.
|
|
14
|
+
* @slot rodape - Ações e metadados (alias `footer`); a seção some quando vazia.
|
|
15
|
+
* @csspart base - O contêiner do card.
|
|
16
|
+
* @csspart midia - A seção de mídia.
|
|
17
|
+
* @csspart cabecalho - A seção de cabeçalho.
|
|
18
|
+
* @csspart corpo - A seção do corpo.
|
|
19
|
+
* @csspart rodape - A seção de rodapé.
|
|
20
|
+
* @fires ui-clique - Card clicável ativado por clique, Enter ou Espaço (`detail.id`); também emitido como `ui-click`.
|
|
21
|
+
*/
|
|
2
22
|
export declare class UICard extends SafeHTMLElement {
|
|
3
23
|
static get observedAttributes(): string[];
|
|
4
24
|
private cardElement;
|
|
@@ -8,6 +28,8 @@ export declare class UICard extends SafeHTMLElement {
|
|
|
8
28
|
disconnectedCallback(): void;
|
|
9
29
|
attributeChangedCallback(_name: string, _old: string | null, _value: string | null): void;
|
|
10
30
|
private handleSlotChange;
|
|
31
|
+
/** Leva o foco ao card clicável e habilitado; nos demais casos mantém o comportamento nativo do host. */
|
|
32
|
+
focus(options?: FocusOptions): void;
|
|
11
33
|
get clicavel(): boolean;
|
|
12
34
|
set clicavel(val: boolean);
|
|
13
35
|
get disabled(): boolean;
|
|
@@ -15,4 +37,5 @@ export declare class UICard extends SafeHTMLElement {
|
|
|
15
37
|
private syncState;
|
|
16
38
|
private handleClick;
|
|
17
39
|
private handleKeyDown;
|
|
40
|
+
private emitirClique;
|
|
18
41
|
}
|
|
@@ -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;
|
|
@@ -41,6 +41,8 @@ export interface OpcoesSeletorCor {
|
|
|
41
41
|
coresProjeto?: ValorCor[];
|
|
42
42
|
/** Substitui a paleta padrão. */
|
|
43
43
|
paleta?: ValorCor[];
|
|
44
|
+
/** Leva o foco do teclado para o painel ao abrir (ao fechar, o foco volta para a âncora). Padrão: `false`. */
|
|
45
|
+
focar?: boolean;
|
|
44
46
|
/** Cada alteração (pré-visualização, ainda não confirmada). */
|
|
45
47
|
aoAlterar?: (detalhe: DetalheSeletorCor) => void;
|
|
46
48
|
/** Ao fechar confirmando: Concluir, ✕, Enter no hexadecimal, Esc ou clique fora. */
|
|
@@ -79,11 +79,16 @@ export declare class UIControleCores extends SafeHTMLElement {
|
|
|
79
79
|
semCor(alvo?: AlvoCor): void;
|
|
80
80
|
/** Volta às cores de `padrao-preenchimento` e `padrao-traco`; emite `ui-cores-change` confirmado. */
|
|
81
81
|
restaurarPadrao(): void;
|
|
82
|
-
/** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). */
|
|
83
|
-
abrirSeletor(alvo?: AlvoCor): void;
|
|
84
|
-
/**
|
|
82
|
+
/** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). Com `focar`, leva o foco do teclado para o painel. */
|
|
83
|
+
abrirSeletor(alvo?: AlvoCor, focar?: boolean): void;
|
|
84
|
+
/**
|
|
85
|
+
* Fecha o seletor aberto por este controle. Com `confirmar` (padrão), grava o que foi editado;
|
|
86
|
+
* sem ele, cancela: as cores iniciais voltam (com um `ui-cores-change` não confirmado) e nada é confirmado.
|
|
87
|
+
*/
|
|
85
88
|
fecharSeletor(confirmar?: boolean): void;
|
|
86
89
|
private mudarAlvo;
|
|
90
|
+
/** Mantém a aba do seletor aberto igual ao alvo do controle. */
|
|
91
|
+
private sincronizarSeletor;
|
|
87
92
|
private aplicarDoSeletor;
|
|
88
93
|
private emitirCores;
|
|
89
94
|
private dica;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
2
|
import { AlvoCor, DetalheSeletorCor, OpcoesSeletorCor, SeletorCorAberto, ValorCor } from './tipos';
|
|
3
3
|
/** Configuração aceita por `UISeletorCor.configurar()` (as opções de `abrirSeletorCor` sem âncora e callbacks). */
|
|
4
|
-
export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
|
|
4
|
+
export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'focar' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
|
|
5
5
|
/**
|
|
6
6
|
* <ui-seletor-cor> — painel de cor no estilo Illustrator: abas Preenchimento/Traço, prévia
|
|
7
7
|
* antes × depois, hexadecimal, seletor do sistema, opacidade do preenchimento, cores do projeto,
|
|
@@ -51,6 +51,8 @@ export declare class UISeletorCor extends SafeHTMLElement {
|
|
|
51
51
|
private get opacidadeVisivel();
|
|
52
52
|
private renderizar;
|
|
53
53
|
private atualizarVisual;
|
|
54
|
+
/** `activeElement` lança em alguns DOMs simulados quando o foco está em outra árvore de sombra. */
|
|
55
|
+
private campoEmFoco;
|
|
54
56
|
private vincularEventos;
|
|
55
57
|
private emitir;
|
|
56
58
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ui-linha';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
export type AlinhamentoLinha = 'inicio' | 'centro' | 'fim' | 'esticar';
|
|
3
|
+
export type JustificacaoLinha = 'inicio' | 'centro' | 'fim' | 'entre' | 'ao-redor';
|
|
4
|
+
export type EspacoLinha = 'nenhum' | 'xs' | 'sm' | 'md' | 'lg';
|
|
5
|
+
/**
|
|
6
|
+
* Contêiner de controles na mesma linha: um único lugar define altura, alinhamento, espaço e quebra, e todos os
|
|
7
|
+
* filhos (`ui-botao`, `ui-campo-texto`, `ui-lista-flutuante`, `ui-segmented`, `ui-badge[controle]`...) se alinham sozinhos.
|
|
8
|
+
*
|
|
9
|
+
* A altura segue o contrato `--ui-campo-altura` (ver `core/altura-controle.ts`): `tamanho`/`altura` aqui valem para
|
|
10
|
+
* todos os filhos; um filho com `tamanho`/`altura` próprio vence só ele.
|
|
11
|
+
*
|
|
12
|
+
* @element ui-linha
|
|
13
|
+
*
|
|
14
|
+
* @attr {string} tamanho - Altura dos controles filhos: `sm` (26px), `md` (34px), `lg` (42px); aceita também `compacta`, `padrao`, `relaxada`.
|
|
15
|
+
* @attr {string} densidade - Sinônimo de `tamanho`.
|
|
16
|
+
* @attr {string} altura - Altura explícita dos controles filhos (px, rem ou em); vence `tamanho`.
|
|
17
|
+
* @attr {string} alinhar - Alinhamento vertical: `centro` (padrão), `inicio`, `fim`, `esticar`.
|
|
18
|
+
* @attr {string} justificar - Distribuição horizontal: `inicio` (padrão), `centro`, `fim`, `entre`, `ao-redor`.
|
|
19
|
+
* @attr {string} espaco - Espaço entre os filhos: `nenhum`, `xs`, `sm` (padrão), `md`, `lg`.
|
|
20
|
+
* @attr {boolean} sem-quebra - Não quebra para a linha de baixo (por padrão a linha quebra).
|
|
21
|
+
* @attr {boolean} inline - Ocupa só a largura do conteúdo (`inline-flex`).
|
|
22
|
+
*
|
|
23
|
+
* @slot - Os controles da linha. Qualquer filho com o atributo `expandir` ocupa o espaço restante.
|
|
24
|
+
*
|
|
25
|
+
* @cssprop --ui-linha-espaco - Espaço entre os filhos (substitui `espaco`).
|
|
26
|
+
* @cssprop --ui-linha-campo-base - Largura-base de campos e listas antes de quebrar (padrão `12rem`).
|
|
27
|
+
* @cssprop --ui-campo-altura - Altura dos controles filhos (definida por `tamanho`/`altura`).
|
|
28
|
+
*/
|
|
29
|
+
export declare class UILinha extends SafeHTMLElement {
|
|
30
|
+
static get observedAttributes(): string[];
|
|
31
|
+
constructor();
|
|
32
|
+
connectedCallback(): void;
|
|
33
|
+
attributeChangedCallback(_name: string, old: string | null, value: string | null): void;
|
|
34
|
+
private lerTexto;
|
|
35
|
+
private definirTexto;
|
|
36
|
+
get tamanho(): string | null;
|
|
37
|
+
set tamanho(v: string | null);
|
|
38
|
+
get altura(): string | null;
|
|
39
|
+
set altura(v: string | number | null);
|
|
40
|
+
get alinhar(): AlinhamentoLinha | null;
|
|
41
|
+
set alinhar(v: AlinhamentoLinha | null);
|
|
42
|
+
get justificar(): JustificacaoLinha | null;
|
|
43
|
+
set justificar(v: JustificacaoLinha | null);
|
|
44
|
+
get espaco(): EspacoLinha | null;
|
|
45
|
+
set espaco(v: EspacoLinha | null);
|
|
46
|
+
get semQuebra(): boolean;
|
|
47
|
+
set semQuebra(v: boolean);
|
|
48
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VistaMapa } from './tipos';
|
|
2
|
+
export declare const VISTA_PADRAO: VistaMapa;
|
|
3
|
+
export declare const COR_MARCADOR_PADRAO = "#00f5a0";
|
|
4
|
+
export declare const COR_LINHA_PADRAO = "#3388ff";
|
|
5
|
+
export declare const ESPESSURA_PADRAO = 3;
|
|
6
|
+
/** Lê lat/lng/zoom; cada campo inválido (ou fora de -90..90, -180..180, 0..22) cai no padrão. */
|
|
7
|
+
export declare function lerVista(lat: string | null, lng: string | null, zoom: string | null): VistaMapa;
|
|
8
|
+
export declare function lerInteiroPositivo(valor: string | null, padrao: number): number;
|
|
9
|
+
/** Aceita só cores CSS conhecidas (hex, rgb/hsl, nome); qualquer outra coisa vira `padrao`. Impede injeção em estilo/atributo. */
|
|
10
|
+
export declare function corSegura(cor: string | null | undefined, padrao: string): string;
|
|
11
|
+
/** Lista de camadas base pedidas, filtrada pelas conhecidas; vazia → `['osm']`. */
|
|
12
|
+
export declare function lerCamadas(texto: string | null, conhecidas: string[]): string[];
|
|
13
|
+
/** Interpreta `pontos` (JSON `[[lat, lng], ...]`); descarta pares inválidos e devolve `[]` se o JSON não for um array. */
|
|
14
|
+
export declare function lerPontos(texto: string | null): Array<[number, number]>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LeafletModulo } from './tipos';
|
|
2
|
+
/** `L` se o Leaflet já estiver carregado (global ou importado), senão `null`. */
|
|
3
|
+
export declare function obterLeaflet(): LeafletModulo | null;
|
|
4
|
+
/** Carrega o Leaflet sob demanda; `null` se não estiver instalado. */
|
|
5
|
+
export declare function carregarLeafletTipado(): Promise<LeafletModulo | null>;
|