@thibezer/ui-components-kit 1.0.0 → 2.1.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.
Files changed (161) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/LICENSE +21 -21
  3. package/README.md +150 -14
  4. package/dist/botao.cjs +1 -1
  5. package/dist/botao.js +1 -1
  6. package/dist/camadas.cjs +65 -65
  7. package/dist/camadas.js +762 -729
  8. package/dist/campo-texto.cjs +1 -1
  9. package/dist/campo-texto.js +1 -1
  10. package/dist/canvas.cjs +105 -146
  11. package/dist/canvas.js +5132 -1199
  12. package/dist/card.cjs +1 -1
  13. package/dist/card.js +1 -1
  14. package/dist/components/ui-botao/ui-botao.d.ts +15 -0
  15. package/dist/components/ui-camadas/camadas-persistencia.d.ts +4 -0
  16. package/dist/components/ui-camadas/ui-camadas.d.ts +10 -0
  17. package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +5 -0
  18. package/dist/components/ui-canvas-cad/cad-estilos-externos.d.ts +16 -0
  19. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +4 -0
  20. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +262 -0
  21. package/dist/components/ui-canvas-cad/cad-ferramentas-barra.d.ts +15 -0
  22. package/dist/components/ui-canvas-cad/cad-snap.d.ts +32 -0
  23. package/dist/components/ui-canvas-cad/cad-toolbar-painel.d.ts +1 -0
  24. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +143 -0
  25. package/dist/components/ui-lista-flutuante/lista-flutuante-posicionamento.d.ts +2 -0
  26. package/dist/components/ui-lista-flutuante/ui-lista-flutuante.d.ts +1 -0
  27. package/dist/components/ui-modal/modal-pilha.d.ts +3 -0
  28. package/dist/components/ui-modal/ui-modal.d.ts +19 -4
  29. package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +3 -0
  30. package/dist/components/ui-tabela/tabela-atributos-sync.d.ts +3 -0
  31. package/dist/components/ui-tabela/tabela-corpo.d.ts +2 -0
  32. package/dist/components/ui-tabela/tabela-localizador.d.ts +8 -1
  33. package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +4 -0
  34. package/dist/components/ui-tabela/tabela-renderizador.d.ts +1 -0
  35. package/dist/components/ui-tabela/tabela-selecao.d.ts +21 -6
  36. package/dist/components/ui-tabela/tipos.d.ts +6 -0
  37. package/dist/components/ui-tabela/ui-tabela.d.ts +56 -2
  38. package/dist/components/ui-tabela-propriedades/avaliador-expressao.d.ts +0 -5
  39. package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +17 -1
  40. package/dist/components/ui-tabela-propriedades/propriedades-flutuante.d.ts +2 -0
  41. package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +10 -1
  42. package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +3 -1
  43. package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +5 -1
  44. package/dist/components/ui-tooltip/ui-tooltip.d.ts +15 -0
  45. package/dist/core/alvo-digitavel.d.ts +1 -0
  46. package/dist/core/form-submissao.d.ts +16 -0
  47. package/dist/core/index.d.ts +1 -0
  48. package/dist/core/parts.d.ts +6 -0
  49. package/dist/core/rotulo.d.ts +6 -0
  50. package/dist/core/svg-seguro.d.ts +10 -0
  51. package/dist/core/ui-bus.d.ts +13 -2
  52. package/dist/core.cjs +1 -1
  53. package/dist/core.js +14 -12
  54. package/dist/custom-elements.json +32905 -0
  55. package/dist/data.cjs +1 -1
  56. package/dist/data.js +51 -46
  57. package/dist/feedback.cjs +1 -1
  58. package/dist/feedback.js +3 -3
  59. package/dist/form-submissao-C-SPRKgT.js +61 -0
  60. package/dist/form-submissao-DxKO5MHI.cjs +1 -0
  61. package/dist/forms.cjs +1 -1
  62. package/dist/forms.js +2 -2
  63. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +18 -0
  64. package/dist/gerencigeo-canvas/feature_adapters.d.ts +35 -0
  65. package/dist/gerencigeo-canvas/feature_algoritmos.d.ts +45 -0
  66. package/dist/gerencigeo-canvas/feature_amostra.d.ts +4 -0
  67. package/dist/gerencigeo-canvas/feature_caixa.d.ts +19 -0
  68. package/dist/gerencigeo-canvas/feature_cluster.d.ts +61 -0
  69. package/dist/gerencigeo-canvas/feature_cursores.d.ts +17 -0
  70. package/dist/gerencigeo-canvas/feature_desenho.d.ts +53 -0
  71. package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +91 -0
  72. package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +19 -0
  73. package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +62 -0
  74. package/dist/gerencigeo-canvas/feature_formas.d.ts +7 -0
  75. package/dist/gerencigeo-canvas/feature_hud.d.ts +23 -0
  76. package/dist/gerencigeo-canvas/feature_indice.d.ts +36 -0
  77. package/dist/gerencigeo-canvas/feature_metricas.d.ts +16 -0
  78. package/dist/gerencigeo-canvas/feature_popup.d.ts +31 -0
  79. package/dist/gerencigeo-canvas/feature_selecao.d.ts +38 -0
  80. package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +14 -0
  81. package/dist/gerencigeo-canvas/feature_snap.d.ts +25 -0
  82. package/dist/gerencigeo-canvas/feature_types.d.ts +86 -0
  83. package/dist/gerencigeo-canvas/feature_versoes.d.ts +19 -0
  84. package/dist/gerencigeo-canvas/index.d.ts +21 -0
  85. package/dist/gerencigeo-canvas/layer_hit_test.d.ts +30 -0
  86. package/dist/gerencigeo-canvas/layer_manager.d.ts +11 -3
  87. package/dist/gerencigeo-canvas/layer_pane_ops.d.ts +9 -0
  88. package/dist/gerencigeo-canvas/mapa_controller.d.ts +1 -0
  89. package/dist/gerencigeo-canvas/mapa_pontos_shapes.d.ts +24 -5
  90. package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +89 -0
  91. package/dist/gerencigeo-canvas/renderers/vector_points_renderer.d.ts +1 -0
  92. package/dist/gerencigeo-canvas/renderers/vector_polygons_renderer.d.ts +2 -2
  93. package/dist/gerencigeo-canvas/types.d.ts +12 -0
  94. package/dist/gerencigeo-canvas/utils.d.ts +3 -1
  95. package/dist/index.cjs +1 -1
  96. package/dist/index.d.ts +2 -2
  97. package/dist/index.js +117 -112
  98. package/dist/leaflet-DcO7uRC-.cjs +1 -0
  99. package/dist/{leaflet-DkaFZYc5.js → leaflet-PPDKB6Dd.js} +37 -37
  100. package/dist/mapa.cjs +4 -4
  101. package/dist/mapa.js +2 -2
  102. package/dist/modal.cjs +1 -1
  103. package/dist/modal.js +1 -1
  104. package/dist/parts-CaoQiCfI.js +7 -0
  105. package/dist/parts-vQa2873h.cjs +1 -0
  106. package/dist/register.cjs +1 -1
  107. package/dist/register.js +12 -12
  108. package/dist/seletor-mapa-base.cjs +16 -16
  109. package/dist/seletor-mapa-base.js +111 -61
  110. package/dist/svg-seguro-BsbNQqpd.js +50 -0
  111. package/dist/svg-seguro-C76iLlAZ.cjs +1 -0
  112. package/dist/tabela.cjs +1 -1
  113. package/dist/tabela.js +41 -36
  114. package/dist/tipos-elementos.d.ts +1232 -0
  115. package/dist/tipos-react.d.ts +113 -0
  116. package/dist/tipos-vue.d.ts +1201 -0
  117. package/dist/tools.cjs +1 -1
  118. package/dist/tools.js +1 -1
  119. package/dist/ui-badge-BxT-sDmV.cjs +28 -0
  120. package/dist/ui-badge-C0eKBI8E.js +183 -0
  121. package/dist/ui-botao-OGJV6Vfk.js +165 -0
  122. package/dist/ui-botao-psS1juof.cjs +12 -0
  123. package/dist/ui-campo-texto-Cnn2UAkS.cjs +16 -0
  124. package/dist/{ui-campo-texto-B_JF6POq.js → ui-campo-texto-Uu2dJE_0.js} +81 -63
  125. package/dist/{ui-card-Bhm6k91e.cjs → ui-card-B86lJXTP.cjs} +7 -7
  126. package/dist/{ui-card-BJ8SmvVf.js → ui-card-C_o5_0cB.js} +14 -14
  127. package/dist/ui-kit.css +1 -1
  128. package/dist/ui-modal-CvGFGh1h.cjs +18 -0
  129. package/dist/ui-modal-DBOtSTbR.js +238 -0
  130. package/dist/{ui-paleta-ferramentas-Bpp4XBVg.js → ui-paleta-ferramentas-CEZYcN4J.js} +18 -27
  131. package/dist/{ui-paleta-ferramentas-B6dJ0O6K.cjs → ui-paleta-ferramentas-Dbj1kBS9.cjs} +6 -6
  132. package/dist/ui-segmented-D6b6zxVs.cjs +19 -0
  133. package/dist/{ui-segmented-C8wuycjJ.js → ui-segmented-wUraId2e.js} +68 -67
  134. package/dist/ui-skeleton-DI4_9WOX.js +428 -0
  135. package/dist/ui-skeleton-elhKIh2B.cjs +33 -0
  136. package/dist/{ui-switch-CO9MoS8x.js → ui-switch-BcOqOkiV.js} +92 -62
  137. package/dist/ui-switch-D7iPKDj-.cjs +53 -0
  138. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +145 -0
  139. package/dist/ui-tabela-propriedades-Boy7I5yW.js +2412 -0
  140. package/dist/{ui-toast-CwUmiqyG.js → ui-toast-Bp_NlM5G.js} +51 -51
  141. package/dist/ui-toast-DGTZKne5.cjs +20 -0
  142. package/dist/zero-js-triggers-C_KrvFOQ.js +244 -0
  143. package/dist/zero-js-triggers-C_gtaojZ.cjs +1 -0
  144. package/package.json +27 -7
  145. package/dist/leaflet-Cw6tqYFh.cjs +0 -1
  146. package/dist/ui-badge-92yelKls.js +0 -183
  147. package/dist/ui-badge-B95jSECC.cjs +0 -28
  148. package/dist/ui-botao-BShEouvi.js +0 -124
  149. package/dist/ui-botao-DF1yuUUD.cjs +0 -12
  150. package/dist/ui-campo-texto-BCh5HyCM.cjs +0 -16
  151. package/dist/ui-modal-Bi4isGYh.cjs +0 -18
  152. package/dist/ui-modal-DV-pw2x1.js +0 -194
  153. package/dist/ui-segmented-NC5cBXLh.cjs +0 -19
  154. package/dist/ui-skeleton-B3xQyn0Z.js +0 -396
  155. package/dist/ui-skeleton-D42oQufF.cjs +0 -33
  156. package/dist/ui-switch-C6o4yZUF.cjs +0 -53
  157. package/dist/ui-tabela-propriedades-7yJ9g7ti.cjs +0 -145
  158. package/dist/ui-tabela-propriedades-D-XKNVwK.js +0 -2078
  159. package/dist/ui-toast-CQBqvUm3.cjs +0 -20
  160. package/dist/zero-js-triggers-DdESy0tk.js +0 -205
  161. package/dist/zero-js-triggers-QGD7FOTv.cjs +0 -1
package/dist/card.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-Bhm6k91e.cjs");exports.UICard=e.UICard;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-B86lJXTP.cjs");exports.UICard=e.UICard;
package/dist/card.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* empty css */
2
- import { U as m } from "./ui-card-BJ8SmvVf.js";
2
+ import { U as m } from "./ui-card-C_o5_0cB.js";
3
3
  export {
4
4
  m as UICard
5
5
  };
@@ -1,16 +1,26 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
2
  export type VarianteBotao = 'primary' | 'primario' | 'secondary' | 'secundario' | 'ghost' | 'terciario' | 'destructive' | 'destrutivo' | 'erro' | 'icon-only' | 'icone' | 'destaque' | 'outline' | 'borda';
3
3
  export declare class UIBotao extends SafeHTMLElement {
4
+ /** Form-associated: respeita `form="id"` e `<fieldset disabled>` como um <button> nativo. */
5
+ static formAssociated: boolean;
4
6
  static get observedAttributes(): string[];
5
7
  private button;
6
8
  private spinnerContainer;
7
9
  private slotElement;
8
10
  private opticalState;
9
11
  private listeners;
12
+ private internals;
13
+ private _formDisabled;
10
14
  constructor();
11
15
  connectedCallback(): void;
12
16
  disconnectedCallback(): void;
13
17
  attributeChangedCallback(_name: string, _old: string | null, _value: string | null): void;
18
+ formDisabledCallback(disabled: boolean): void;
19
+ get form(): HTMLFormElement | null;
20
+ get disabled(): boolean;
21
+ set disabled(val: boolean);
22
+ /** Ativa o botão como um clique real (no-op se desabilitado ou carregando), como `HTMLButtonElement.click()`. */
23
+ click(): void;
14
24
  get carregando(): boolean;
15
25
  set carregando(val: boolean);
16
26
  private handleSlotChange;
@@ -20,6 +30,11 @@ export declare class UIBotao extends SafeHTMLElement {
20
30
  */
21
31
  private sanitizeAndBalanceContent;
22
32
  private syncState;
33
+ /**
34
+ * O foco e o anúncio do leitor de tela ficam no <button> interno, então os atributos
35
+ * ARIA do host são copiados para ele. Botão só com ícone e sem `aria-label` usa o `title`.
36
+ */
37
+ private sincronizarAria;
23
38
  private handleClick;
24
39
  }
25
40
  export declare class UIBotaoPrimario extends UIBotao {
@@ -20,6 +20,8 @@ export interface EstadoPersistidoCamadas {
20
20
  camadaAtivaId?: string | null;
21
21
  painelColapsado?: boolean;
22
22
  ordemCamadasIds?: string[];
23
+ /** Ordem em que a aplicação enviou as camadas quando `ordemCamadasIds` foi salva. */
24
+ ordemOrigemIds?: string[];
23
25
  mapaBaseAtivo?: string;
24
26
  densidade?: 'compacto' | 'normal';
25
27
  altura?: number | null;
@@ -57,6 +59,8 @@ export interface EntradaMontagemEstado {
57
59
  mapaBaseAtivo: string;
58
60
  densidade: 'compacto' | 'normal';
59
61
  altura: number | null;
62
+ /** Camadas excluídas pelo usuário: seus overrides deixam de ser guardados. */
63
+ camadasRemovidas?: Iterable<string>;
60
64
  }
61
65
  /**
62
66
  * Monta o estado a persistir. Se ainda não há camadas na instância,
@@ -9,6 +9,11 @@ export declare class UICamadas extends SafeHTMLElement implements CamadasHostCom
9
9
  private resizerController;
10
10
  private alturaCustomizada;
11
11
  private conectado;
12
+ private profundidadeLote;
13
+ private renderPendente;
14
+ private camadasRemovidas;
15
+ /** Painéis conectados sem `id` nem `storage-key`: dividem a mesma chave de persistência. */
16
+ private static instanciasChavePadrao;
12
17
  private origensCamadas;
13
18
  private salvarLembrancaDebounced;
14
19
  camadas: CamadaItem[];
@@ -98,6 +103,11 @@ export declare class UICamadas extends SafeHTMLElement implements CamadasHostCom
98
103
  alternarColapso(emitirEvento?: boolean): void;
99
104
  private definirColapso;
100
105
  solicitarRenderizacao(): void;
106
+ /**
107
+ * Agrupa várias mutações (`adicionarFeicao` em laço, por exemplo) em uma só renderização, ao fim de `fn`.
108
+ * Sem isto, cada chamada redesenha a árvore inteira.
109
+ */
110
+ emLote(fn: () => void): void;
101
111
  dispararEvento(nome: string, detalhe: unknown): void;
102
112
  private render;
103
113
  private conectarEventosGerais;
@@ -47,6 +47,11 @@ export declare class UICampoTexto extends FormAssociatedElement {
47
47
  private handleRightIconKeyDown;
48
48
  private handleFocus;
49
49
  private handleBlur;
50
+ /**
51
+ * Enter submete o formulário como num <input> nativo. Aguarda um tick para que
52
+ * ouvintes do consumidor possam cancelar com `preventDefault()` no keydown.
53
+ */
54
+ private handleKeyDown;
50
55
  private handleInput;
51
56
  private handleChange;
52
57
  }
@@ -0,0 +1,16 @@
1
+ export type EstilosExternos = string | CSSStyleSheet[] | null | undefined;
2
+ export declare function estilosParaTexto(entrada: EstilosExternos): string[];
3
+ export declare class EstilosExternosShadow {
4
+ private shadow;
5
+ private textos;
6
+ private adotadas;
7
+ private fallback;
8
+ constructor(shadow: ShadowRoot);
9
+ /** O que o consumidor pediu por último (para reaplicar quando o componente reconecta). */
10
+ get pedido(): readonly string[];
11
+ definir(entrada: EstilosExternos): void;
12
+ /** Tira as folhas do shadow root, mantendo o pedido para `aplicar()` depois. */
13
+ limpar(): void;
14
+ aplicar(): void;
15
+ private remover;
16
+ }
@@ -24,3 +24,7 @@ export declare function tratarCliqueMarcador(ctx: ContextoEventosCanvas, pId: st
24
24
  lat: number;
25
25
  lon: number;
26
26
  }) => void, customMarkerClickHandler?: (pontoId: number, isVizinho?: boolean) => void): void;
27
+ export declare function tratarCliqueSegmento(ctx: ContextoEventosCanvas, segmentoId: string | number, segmento: any, coords?: {
28
+ lat: number;
29
+ lon: number;
30
+ }, customSegmentoClickHandler?: (segmentoId: string | number, segmento: any) => void): void;
@@ -0,0 +1,262 @@
1
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
2
+ import { LayerStyleDef } from '../../gerencigeo-canvas/types';
3
+ import { Feicao, EstiloFeicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
4
+ import { RegraVersoes } from '../../gerencigeo-canvas/feature_versoes';
5
+ import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
6
+ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
7
+ import { CaixaPx, ModoCaixa } from '../../gerencigeo-canvas/feature_caixa';
8
+ import { MargensPopup } from '../../gerencigeo-canvas/feature_popup';
9
+ import { default as L } from 'leaflet';
10
+ import { MotivoRecusaEdicao } from '../../gerencigeo-canvas/feature_edicao_ops';
11
+ import { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
12
+ import { Ferramenta } from '../../gerencigeo-canvas/feature_desenho';
13
+ import { MargensHud } from '../../gerencigeo-canvas/feature_hud';
14
+ export declare const TIPO_CAMADA_FEICOES = "feicoes";
15
+ export interface OpcoesCamadaFeicoes {
16
+ nome?: string;
17
+ zIndex?: number;
18
+ opacidade?: number;
19
+ interativo?: boolean;
20
+ estilo?: Partial<LayerStyleDef>;
21
+ }
22
+ /** Opções de `aplicarLote` / `atualizarFeicao`. */
23
+ export interface OpcoesLote extends OpcoesCamadaFeicoes {
24
+ /**
25
+ * Em atualizações, `propriedades` informadas SUBSTITUEM as atuais (o padrão é mesclar, e chaves apagadas
26
+ * pelo consumidor ficam para trás). Sem `propriedades` no item, nada muda.
27
+ */
28
+ substituirPropriedades?: boolean;
29
+ }
30
+ /** Itens de atualização: `id` aponta a feição; o resto é mesclado como em `atualizarFeicao`. */
31
+ export type AtualizacaoFeicao = Record<string, any> & {
32
+ id: string;
33
+ };
34
+ export interface LoteFeicoes {
35
+ adicionar?: unknown[];
36
+ atualizar?: AtualizacaoFeicao[];
37
+ remover?: string[];
38
+ }
39
+ export interface ResultadoLote {
40
+ adicionadas: number;
41
+ atualizadas: number;
42
+ removidas: number;
43
+ /** Ids (ou posições, quando não há id) recusados: geometria inválida, feição inexistente numa atualização, camada que não é de feições. */
44
+ recusadas: string[];
45
+ }
46
+ export interface ResultadoFeicoes {
47
+ /** Quantas feições entraram na camada. */
48
+ aceitas: number;
49
+ /** Ids (ou posições, quando não há id) das feições recusadas por geometria inválida. */
50
+ recusadas: string[];
51
+ }
52
+ interface Contexto {
53
+ obterLayerManager: () => CanvasLayerManager;
54
+ obterMapa: () => L.Map | null;
55
+ /** Dispara o evento do componente. Com `cancelavel`, devolve `true` se algum ouvinte chamou `preventDefault()`. */
56
+ emitir: (evento: string, detalhe: unknown, cancelavel?: boolean) => unknown;
57
+ /** O snap foi ligado/desligado (para refletir no botão da barra). */
58
+ aoSnapMudar?: (ligado: boolean) => void;
59
+ /** A ferramenta de desenho ativa mudou (`null` = nenhuma). */
60
+ aoFerramenta?: (ferramenta: Ferramenta | null) => void;
61
+ /** Regra de oficial × prévia compartilhada com o renderizador (o componente a põe no contexto de renderização). */
62
+ regra?: RegraVersoes;
63
+ }
64
+ /** Opções do popup da feição. */
65
+ export interface OpcoesPopup {
66
+ /** A ação "copiar" grava as coordenadas na área de transferência (padrão `true`); `cad-feicao-acao` sai de qualquer jeito. */
67
+ copiarParaAreaDeTransferencia?: boolean;
68
+ }
69
+ export interface ResultadoFerramenta {
70
+ ok: boolean;
71
+ motivo?: 'ferramenta-invalida' | 'sem-mapa' | 'sem-camada' | 'camada-invalida' | 'camada-bloqueada';
72
+ }
73
+ export interface ResultadoEdicao {
74
+ ok: boolean;
75
+ motivo?: MotivoRecusaEdicao | 'inexistente' | 'sem-mapa';
76
+ }
77
+ export declare class GerenciadorFeicoes {
78
+ private contexto;
79
+ private selecao;
80
+ private popup;
81
+ private editor;
82
+ private snap;
83
+ private desenho;
84
+ private camadaDesenho;
85
+ private estiloDesenho;
86
+ private sequenciaId;
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;
91
+ private cursores;
92
+ private hoverId;
93
+ private hoverAgendado;
94
+ private margensHud;
95
+ /** Aceita a coordenada (0, 0) exata nas feições de entrada (atributo `aceitar-origem`). */
96
+ aceitarOrigem: boolean;
97
+ private opcoesPopup;
98
+ constructor(contexto: Contexto);
99
+ /** Depois de qualquer mudança nos dados: descarta seleção órfã e atualiza/fecha o popup aberto. */
100
+ private aposDados;
101
+ private lista;
102
+ private posicaoDe;
103
+ /** Feição da camada pelo id (O(1)); `undefined` se não existe. */
104
+ buscar(camadaId: string, id: string): Feicao | undefined;
105
+ private garantirCamada;
106
+ private opcoesNormalizacao;
107
+ definirFeicoes(camadaId: string, brutas: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
108
+ 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
+ */
113
+ atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: Pick<OpcoesLote, 'substituirPropriedades'>): Feicao | null;
114
+ /** Grava uma feição já normalizada (usado quando o próprio mapa a altera, como ao arrastar um texto). */
115
+ substituir(camadaId: string, feicao: Feicao): void;
116
+ 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
+ */
121
+ aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
122
+ private mesclar;
123
+ private aplicar;
124
+ obterFeicoes(camadaId: string): Feicao[];
125
+ /** Traduz as ações vindas do renderizador no evento a disparar pelo componente. */
126
+ tratarAcaoCamada(acao: string, detalhe: {
127
+ camadaId: string;
128
+ feicao: Feicao;
129
+ aditivo?: boolean;
130
+ }): string | null;
131
+ selecionarFeicoes(refs: RefFeicao[], aditivo?: boolean): void;
132
+ alternarSelecaoFeicao(ref: RefFeicao): void;
133
+ limparSelecaoFeicoes(): void;
134
+ /** Esc ou clique no vazio: durante a edição só encerra a edição; fora dela, limpa a seleção. */
135
+ aoPedirLimpeza(): void;
136
+ obterFeicoesSelecionadas(): Feicao[];
137
+ /** Laço: seleciona (substituindo) as feições de camadas selecionáveis tocadas pelo polígono; a ferramenta encerra. */
138
+ private selecionarNoLaco;
139
+ /** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
140
+ selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, aditivo: boolean): void;
141
+ definirMargensPopup(m: Partial<MargensPopup>): void;
142
+ fecharPopup(): void;
143
+ /** Opções do popup (hoje: se "copiar" escreve na área de transferência). Mescla com o que já foi definido. */
144
+ definirOpcoesPopup(opcoes: OpcoesPopup): void;
145
+ obterOpcoesPopup(): Required<OpcoesPopup>;
146
+ /**
147
+ * Margens (px) de barras e painéis que cobrem o mapa: os HUDs de desenho e de edição se centralizam na área
148
+ * que sobra. Mescla com o que já foi definido; `undefined` numa chave volta ao padrão (ou ao CSS `--cad-hud-*` do host).
149
+ */
150
+ definirMargensHud(m: Partial<MargensHud>): void;
151
+ private aplicarMargensHud;
152
+ get regraVersoes(): RegraVersoes;
153
+ private oficiaisDe;
154
+ /** Aparece segundo a regra de oficial × prévia? */
155
+ visivelPorVersao(f: Feicao): boolean;
156
+ /** 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
+ desenhada(f: Feicao): boolean;
158
+ /** Regra da seleção: a feição em edição continua selecionada mesmo se for ocultada no meio da edição. */
159
+ private selecionavelAgora;
160
+ private aplicarVersoes;
161
+ get previasGlobais(): boolean;
162
+ /** Mostra (ou esconde) as prévias de todas as entidades. Prévias de entidades sem oficial aparecem sempre. */
163
+ definirPreviasGlobais(ligado: boolean): void;
164
+ alternarPreviasGlobais(): void;
165
+ /** 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. */
166
+ alternarPrevia(camadaId: string, id: string): boolean | null;
167
+ /** A prévia da feição está sendo mostrada por pedido (global ou individual)? */
168
+ previaSolicitada(camadaId: string, id: string): boolean;
169
+ atualizarCursorRemoto(usuario: UsuarioRemoto, posicao: unknown): boolean;
170
+ removerCursorRemoto(id: string): boolean;
171
+ limparCursoresRemotos(): void;
172
+ 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
+ /** Aproxima da feição; liga a camada e a prévia, se estiverem escondidas. Ponto: voa até z ≥ 17. */
178
+ zoomParaFeicao(camadaId: string, id: string): boolean;
179
+ zoomParaFeicoes(refs: RefFeicao[]): boolean;
180
+ /** Enquadra todas as feições das camadas de feições visíveis (que aparecem pela regra de versões). */
181
+ ajustarTudo(): boolean;
182
+ /** Enquadra a camada inteira; se estava oculta, torna-a visível. */
183
+ ajustarCamada(camadaId: string): boolean;
184
+ private feicaoSob;
185
+ /** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
186
+ aoMoverMouse(e: MouseEvent): void;
187
+ /** Botão direito: emite `cad-feicao-menu` com a feição sob o cursor (ou `null`), para o consumidor abrir o próprio menu. */
188
+ menuContexto(e: MouseEvent): void;
189
+ destruir(): void;
190
+ private tratarAcaoPopup;
191
+ get snapLigado(): boolean;
192
+ get snapAtivo(): boolean;
193
+ definirSnap(ligado: boolean): void;
194
+ alternarSnap(): void;
195
+ conectarTeclado(): void;
196
+ desconectarTeclado(): void;
197
+ /** Feições visíveis das camadas de feições cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
198
+ private candidatasEm;
199
+ /** Snap de uma coordenada contra as feições visíveis de todas as camadas de feições (via índice espacial). */
200
+ buscarSnapEm(coord: [number, number], excluir?: ExcluirSnap): import('../../gerencigeo-canvas').ResultadoSnap | null;
201
+ get editando(): boolean;
202
+ iniciarEdicao(camadaId: string, id: string): ResultadoEdicao;
203
+ pararEdicao(): void;
204
+ get ferramentaAtiva(): Ferramenta | null;
205
+ /** Camada que recebe o que for desenhado. Não existe camada padrão: o consumidor escolhe. */
206
+ definirCamadaDesenho(camadaId: string | null): void;
207
+ get camadaDeDesenho(): string | null;
208
+ /** Estilo aplicado às feições desenhadas daqui para frente (o conta-gotas também o altera). */
209
+ definirEstiloDesenho(estilo: EstiloFeicao): void;
210
+ obterEstiloDesenho(): EstiloFeicao;
211
+ alternarFerramenta(nome: string): ResultadoFerramenta;
212
+ ativarFerramenta(nome: string, opcoes?: {
213
+ fechar?: boolean;
214
+ iniciarEm?: LatLonPar;
215
+ }): ResultadoFerramenta;
216
+ desativarFerramenta(): void;
217
+ limparMedicao(): void;
218
+ /** Vértices já colocados na figura em andamento (0 sem ferramenta ou sem figura). */
219
+ get nosDesenho(): number;
220
+ desfazerVerticeDesenho(): boolean;
221
+ /** Liga/desliga a tecla S do snap (o botão e `definirSnap` continuam valendo). */
222
+ definirAtalhoSnap(ligado: boolean): void;
223
+ private motivoCamadaDesenhoInvalida;
224
+ private novoId;
225
+ 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
+ */
239
+ dividirComLinha(linha: LatLonPar[]): boolean;
240
+ /** Cria um polígono de buffer ao redor da feição (na camada dela, ou em `camadaDestino`). */
241
+ gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
242
+ camadaDestino?: string;
243
+ id?: string;
244
+ }): Feicao | null;
245
+ /** Copia a feição deslocada (em metros para leste/norte). */
246
+ duplicarFeicao(camadaId: string, id: string, deslocamento?: {
247
+ lesteM?: number;
248
+ norteM?: number;
249
+ }, opcoes?: {
250
+ id?: string;
251
+ }): 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
+ */
257
+ juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
258
+ toleranciaM?: number;
259
+ id?: string;
260
+ }): Feicao | null;
261
+ }
262
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Ferramenta } from '../../gerencigeo-canvas/feature_desenho';
2
+ /** Interpreta o atributo; nomes desconhecidos são ignorados e a ordem da barra é sempre a canônica. */
3
+ export declare function interpretarFerramentas(valor: string | null): Ferramenta[];
4
+ export interface ContextoBarraFerramentas {
5
+ raiz: HTMLElement;
6
+ aoEscolher: (ferramenta: Ferramenta) => void;
7
+ }
8
+ export declare class BarraFerramentas {
9
+ private ctx;
10
+ private barra;
11
+ constructor(ctx: ContextoBarraFerramentas);
12
+ montar(ferramentas: Ferramenta[]): void;
13
+ marcar(ativa: Ferramenta | null): void;
14
+ desmontar(): void;
15
+ }
@@ -0,0 +1,32 @@
1
+ export interface ContextoControleSnap {
2
+ /** Chamado quando o estado efetivo ou o ligado/desligado muda. */
3
+ aoMudar: (estado: {
4
+ ativo: boolean;
5
+ ligado: boolean;
6
+ temporario: boolean;
7
+ }) => void;
8
+ /** Alvo dos listeners de teclado (padrão: window). */
9
+ alvo?: Pick<Window, 'addEventListener' | 'removeEventListener'>;
10
+ }
11
+ export declare class ControleSnap {
12
+ private contexto;
13
+ private _ligado;
14
+ private _altSegurado;
15
+ /** Tecla S alterna o snap. Desligável para quem já trata a tecla (ex.: atalhos próprios do app). */
16
+ atalhoS: boolean;
17
+ private conectado;
18
+ constructor(contexto: ContextoControleSnap);
19
+ /** Snap valendo agora: ligado e sem Alt. */
20
+ get ativo(): boolean;
21
+ get ligado(): boolean;
22
+ definir(ligado: boolean): void;
23
+ alternar(): void;
24
+ conectar(): void;
25
+ desconectar(): void;
26
+ private definirAlt;
27
+ private aoTeclaBaixo;
28
+ private aoTeclaCima;
29
+ /** Alt+Tab e afins: sem isto o Alt "ficaria preso" e o snap sumiria. */
30
+ private aoPerderFoco;
31
+ private notificar;
32
+ }
@@ -6,6 +6,7 @@ export interface ContextoToolbarPainel {
6
6
  onCloseCamadas?: () => void;
7
7
  onZoomExtents?: () => void;
8
8
  onLimparSelecao?: () => void;
9
+ onToggleSnap?: () => void;
9
10
  onTratarCliqueCanvas?: (e: MouseEvent) => void;
10
11
  onDispararAcaoPopup?: (acaoId: string, elementoId: string | number) => void;
11
12
  }
@@ -2,7 +2,11 @@ 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 { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
6
+ import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes, ResultadoEdicao, ResultadoFerramenta } from './cad-feicoes';
7
+ import { EstiloFeicao, Feicao } from '../../gerencigeo-canvas/feature_types';
5
8
  import { SafeHTMLElement } from '../../core/ssr-safe';
9
+ import { EstilosExternos } from './cad-estilos-externos';
6
10
  export declare class UICanvasCAD extends SafeHTMLElement {
7
11
  static get observedAttributes(): string[];
8
12
  private shadow;
@@ -13,8 +17,12 @@ export declare class UICanvasCAD extends SafeHTMLElement {
13
17
  private toolbarPainel;
14
18
  private broadcastConfig;
15
19
  private colecoesDados;
20
+ private feicoes;
21
+ private barraFerramentas;
22
+ private hoverListeners;
16
23
  private layerItemListeners;
17
24
  private initTimeout?;
25
+ private estilosExternos;
18
26
  private lastPopupActionEmit?;
19
27
  private lastCanvasClickTime;
20
28
  private _chaveGrupo?;
@@ -25,6 +33,17 @@ export declare class UICanvasCAD extends SafeHTMLElement {
25
33
  disconnectedCallback(): void;
26
34
  invalidateSizeSafely(): void;
27
35
  attributeChangedCallback(name: string, oldVal: string, newVal: string): void;
36
+ /**
37
+ * Cria o mapa agora, sem esperar o agendamento do `connectedCallback`. Idempotente: se o mapa já existe,
38
+ * devolve o mesmo; nunca cria um segundo. Devolve `null` se não houver contêiner (ex.: componente já destruído).
39
+ */
40
+ inicializarAgora(): L.Map | null;
41
+ /**
42
+ * CSS do consumidor dentro do shadow root (popups, rótulos...). Aceita texto ou folhas (`document.styleSheets`,
43
+ * copiadas como texto); cada chamada substitui a anterior, `null`/`[]` remove. `destroy()` tira as folhas do
44
+ * shadow root e uma reconexão as recoloca.
45
+ */
46
+ definirEstilosExternos(css: EstilosExternos): void;
28
47
  private initCAD;
29
48
  private obterContextoEventos;
30
49
  tratarCliqueLivreCanvas(e: MouseEvent | any, latLng?: any, pt?: any): void;
@@ -44,6 +63,12 @@ export declare class UICanvasCAD extends SafeHTMLElement {
44
63
  set confrontantes(val: Confrontante[]);
45
64
  get vizinhos(): Confrontante[];
46
65
  set vizinhos(val: Confrontante[]);
66
+ /**
67
+ * Aceita a coordenada (0, 0) exata nas feições (atributo `aceitar-origem`). Padrão `false`: (0, 0) costuma ser
68
+ * placeholder de erro e a feição com vértice ali é recusada. Vale para as feições enviadas daqui para frente.
69
+ */
70
+ get aceitarOrigem(): boolean;
71
+ set aceitarOrigem(val: boolean);
47
72
  get modoSequencial(): boolean;
48
73
  set modoSequencial(val: boolean);
49
74
  get chaveGrupo(): string | undefined;
@@ -59,6 +84,9 @@ export declare class UICanvasCAD extends SafeHTMLElement {
59
84
  get pontosSelecionados(): (string | number)[];
60
85
  set pontosSelecionados(ids: (string | number)[]);
61
86
  atualizarDestaqueMarcadores(): void;
87
+ selectSegmento(id: string | number | null): void;
88
+ get segmentoSelecionado(): string | number | null;
89
+ set segmentoSelecionado(id: string | number | null);
62
90
  limparSelecao(): void;
63
91
  setLayerVisibility(id: string, visivel: boolean): void;
64
92
  setLayerOpacity(id: string, opacidade: number): void;
@@ -85,6 +113,121 @@ export declare class UICanvasCAD extends SafeHTMLElement {
85
113
  clearOverlays(manterBanco?: boolean): void;
86
114
  getMarkers(): L.Marker[];
87
115
  getVizinhosMarkers(): L.Marker[];
116
+ /** Cria (se preciso) a camada de feições e a preenche. Nenhuma camada de feições existe até esta chamada. */
117
+ definirFeicoes(camadaId: string, feicoes: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
118
+ adicionarFeicao(camadaId: string, feicao: unknown, opcoes?: OpcoesCamadaFeicoes): Feicao | null;
119
+ /**
120
+ * Mescla `parcial` na feição (estilo e propriedades também). Com `opcoes.substituirPropriedades`, as `propriedades`
121
+ * informadas trocam as atuais por inteiro, para refletir atributos apagados no consumidor.
122
+ */
123
+ atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: {
124
+ substituirPropriedades?: boolean;
125
+ }): Feicao | null;
126
+ /**
127
+ * Várias mudanças numa só regravação da camada: remove, atualiza e adiciona (nessa ordem). Adicionar um id existente
128
+ * substitui a feição mantendo a posição. Devolve contagens e os ids recusados.
129
+ */
130
+ aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
131
+ removerFeicao(camadaId: string, id: string): boolean;
132
+ obterFeicoes(camadaId: string): Feicao[];
133
+ selecionarFeicoes(refs: Array<{
134
+ camadaId: string;
135
+ id: string;
136
+ }>, aditivo?: boolean): void;
137
+ selecionarFeicao(camadaId: string, id: string): void;
138
+ alternarSelecaoFeicao(camadaId: string, id: string): void;
139
+ limparSelecaoFeicoes(): void;
140
+ obterFeicoesSelecionadas(): Feicao[];
141
+ /** Edita os vértices da feição (ponto, linha ou polígono de um anel). Recusas também saem em `cad-edicao-recusada`. */
142
+ editarVertices(camadaId: string, id: string): ResultadoEdicao;
143
+ pararEdicaoVertices(): void;
144
+ get editandoVertices(): boolean;
145
+ get snapLigado(): boolean;
146
+ definirSnap(ligado: boolean): void;
147
+ alternarSnap(): void;
148
+ /** Camada que recebe o que for desenhado; criada na primeira feição se ainda não existir. */
149
+ definirCamadaDesenho(camadaId: string | null): void;
150
+ get camadaDesenho(): string | null;
151
+ definirEstiloDesenho(estilo: EstiloFeicao): void;
152
+ obterEstiloDesenho(): EstiloFeicao;
153
+ /**
154
+ * Ferramentas: ponto, linha, poligono, retangulo, elipse, poligono-regular, estrela, circulo, texto, caneta,
155
+ * medir-distancia, medir-area, dividir, selecao-laco, conta-gotas. `iniciarEm` ([lat, lon]) registra o primeiro clique.
156
+ */
157
+ definirFerramenta(nome: string | null, opcoes?: {
158
+ fechar?: boolean;
159
+ iniciarEm?: [number, number];
160
+ }): ResultadoFerramenta;
161
+ get ferramentaAtiva(): string | null;
162
+ limparMedicao(): void;
163
+ /** Vértices já colocados na figura em andamento. */
164
+ get nosDesenho(): number;
165
+ /** Desfaz o último vértice da figura em andamento; devolve se havia algo a desfazer. */
166
+ desfazerVerticeDesenho(): boolean;
167
+ /** Desliga a tecla S do snap para quem já trata a tecla; o botão e `definirSnap` seguem funcionando. */
168
+ definirAtalhoSnap(ligado: boolean): void;
169
+ gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
170
+ camadaDestino?: string;
171
+ id?: string;
172
+ }): Feicao | null;
173
+ duplicarFeicao(camadaId: string, id: string, deslocamento?: {
174
+ lesteM?: number;
175
+ norteM?: number;
176
+ }, opcoes?: {
177
+ id?: string;
178
+ }): Feicao | null;
179
+ juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
180
+ toleranciaM?: number;
181
+ id?: string;
182
+ }): Feicao | null;
183
+ zoomParaFeicao(camadaId: string, id: string): boolean;
184
+ zoomParaFeicoes(refs: Array<{
185
+ camadaId: string;
186
+ id: string;
187
+ }>): boolean;
188
+ /** Enquadra todas as feições das camadas de feições visíveis. */
189
+ ajustarTudo(): boolean;
190
+ /** Enquadra a camada; se estiver oculta, torna-a visível. */
191
+ ajustarCamada(camadaId: string): boolean;
192
+ get previasGlobais(): boolean;
193
+ definirPreviasGlobais(ligado: boolean): void;
194
+ alternarPreviasGlobais(): void;
195
+ alternarPrevia(camadaId: string, id: string): boolean | null;
196
+ previaSolicitada(camadaId: string, id: string): boolean;
197
+ /** Cursor de outro operador. Nome e cor vêm da rede: o nome é escapado e a cor só vale como #hex. */
198
+ atualizarCursorRemoto(usuario: UsuarioRemoto, posicao: [number, number] | {
199
+ lat: number;
200
+ lng?: number;
201
+ lon?: number;
202
+ }): boolean;
203
+ removerCursorRemoto(id: string): boolean;
204
+ limparCursoresRemotos(): void;
205
+ fecharPopupFeicao(): void;
206
+ /**
207
+ * Opções do popup. `copiarParaAreaDeTransferencia` (padrão `true`): a ação "copiar" também grava as coordenadas na área de
208
+ * transferência; com `false` só sai `cad-feicao-acao` e o consumidor decide (ex.: para mostrar o próprio aviso).
209
+ */
210
+ definirOpcoesPopup(opcoes: {
211
+ copiarParaAreaDeTransferencia?: boolean;
212
+ }): void;
213
+ /** Distância (px) que o auto-pan do popup mantém de barras, tabelas ou painéis laterais sobrepostos ao mapa. */
214
+ definirMargensPopup(margens: {
215
+ topo?: number;
216
+ base?: number;
217
+ esquerda?: number;
218
+ direita?: number;
219
+ }): void;
220
+ /**
221
+ * Margens (px) de barras e painéis sobrepostos ao mapa; os HUDs de desenho e de edição de vértices se centralizam
222
+ * na área visível. Padrão: `{ topo: 0, base: 16, esquerda: 0, direita: 0 }`. Em CSS: `--cad-hud-base`, `--cad-hud-esquerda`,
223
+ * `--cad-hud-direita` e `--cad-hud-topo` no host.
224
+ */
225
+ definirMargensHud(margens: {
226
+ topo?: number;
227
+ base?: number;
228
+ esquerda?: number;
229
+ direita?: number;
230
+ }): void;
88
231
  getMap(): L.Map | null;
89
232
  getController(): GerenciGeoMapaController;
90
233
  getLayerManager(): CanvasLayerManager;
@@ -10,6 +10,8 @@ export declare class ListaFlutuantePosicionamento {
10
10
  constructor(host: HTMLElement, button: HTMLElement, content: HTMLElement);
11
11
  isMobileOrBottomSheet(): boolean;
12
12
  posicionar: () => void;
13
+ /** Com a lista já visível (medida real): abre para cima se faltar espaço embaixo e não deixa sair pela lateral. */
14
+ private ajustarAoViewport;
13
15
  ativarAcompanhamento(onFechar: () => void): void;
14
16
  desativarAcompanhamento(): void;
15
17
  }
@@ -20,6 +20,7 @@ export declare class UIListaFlutuante extends FormAssociatedElement {
20
20
  private _itens;
21
21
  private _value;
22
22
  private _defaultValue;
23
+ private _defaultCapturado;
23
24
  private observer;
24
25
  private posicionamento;
25
26
  private teclado;
@@ -0,0 +1,3 @@
1
+ export declare function empilharModal(modal: HTMLElement): void;
2
+ export declare function desempilharModal(modal: HTMLElement): void;
3
+ export declare function ehModalDoTopo(modal: HTMLElement): boolean;