@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.
Files changed (244) hide show
  1. package/CHANGELOG.md +233 -0
  2. package/README.md +37 -10
  3. package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
  4. package/dist/acessibilidade-CUlSXc2X.js +38 -0
  5. package/dist/altura-controle-ukMRPckR.cjs +1 -0
  6. package/dist/altura-controle-vxQiXG4q.js +62 -0
  7. package/dist/botao.cjs +1 -1
  8. package/dist/botao.js +1 -1
  9. package/dist/camadas.cjs +111 -109
  10. package/dist/camadas.js +1360 -1182
  11. package/dist/campo-texto.cjs +1 -1
  12. package/dist/campo-texto.js +1 -1
  13. package/dist/canvas.cjs +88 -86
  14. package/dist/canvas.js +4695 -3395
  15. package/dist/card.cjs +1 -1
  16. package/dist/card.js +1 -1
  17. package/dist/components/ui-area-texto/area-texto-altura.d.ts +16 -0
  18. package/dist/components/ui-area-texto/area-texto-contador.d.ts +6 -0
  19. package/dist/components/ui-area-texto/area-texto-template.d.ts +2 -0
  20. package/dist/components/ui-area-texto/index.d.ts +3 -0
  21. package/dist/components/ui-area-texto/tipos.d.ts +19 -0
  22. package/dist/components/ui-area-texto/ui-area-texto.d.ts +100 -0
  23. package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
  24. package/dist/components/ui-badge/ui-badge.d.ts +2 -0
  25. package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +3 -1
  26. package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +23 -0
  27. package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
  28. package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +22 -0
  29. package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +24 -0
  30. package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +3 -7
  31. package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
  32. package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
  33. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
  34. package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
  35. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
  36. package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
  37. package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
  38. package/dist/components/ui-camadas/camadas-host.d.ts +1 -0
  39. package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
  40. package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
  41. package/dist/components/ui-camadas/camadas-render.d.ts +15 -0
  42. package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
  43. package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
  44. package/dist/components/ui-camadas/camadas-selecao.d.ts +12 -0
  45. package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
  46. package/dist/components/ui-camadas/ui-camadas.d.ts +8 -5
  47. package/dist/components/ui-campo-texto/campo-texto-estados.d.ts +5 -1
  48. package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +1 -0
  49. package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +21 -0
  50. package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
  51. package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
  52. package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
  53. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
  54. package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
  55. package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
  56. package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
  57. package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
  58. package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
  59. package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
  60. package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +28 -0
  61. package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
  62. package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
  63. package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
  64. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +39 -106
  65. package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
  66. package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
  67. package/dist/components/ui-canvas-cad/cad-recusas.d.ts +6 -0
  68. package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
  69. package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
  70. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +30 -1
  71. package/dist/components/ui-card/card-interacao.d.ts +17 -0
  72. package/dist/components/ui-card/card-secoes.d.ts +10 -0
  73. package/dist/components/ui-card/ui-card.d.ts +23 -0
  74. package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
  75. package/dist/components/ui-cores/tipos.d.ts +2 -0
  76. package/dist/components/ui-cores/ui-controle-cores.d.ts +8 -3
  77. package/dist/components/ui-cores/ui-seletor-cor.d.ts +3 -1
  78. package/dist/components/ui-linha/index.d.ts +1 -0
  79. package/dist/components/ui-linha/ui-linha.d.ts +48 -0
  80. package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
  81. package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
  82. package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
  83. package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
  84. package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
  85. package/dist/components/ui-mapa/tipos.d.ts +13 -0
  86. package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
  87. package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
  88. package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
  89. package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
  90. package/dist/components/ui-modal/modal-foco.d.ts +28 -0
  91. package/dist/components/ui-modal/ui-modal.d.ts +1 -11
  92. package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
  93. package/dist/components/ui-radio/ui-radio.d.ts +9 -2
  94. package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
  95. package/dist/components/ui-switch/ui-switch.d.ts +3 -1
  96. package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
  97. package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
  98. package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
  99. package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
  100. package/dist/components/ui-texto/ui-texto.d.ts +16 -0
  101. package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
  102. package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
  103. package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
  104. package/dist/core/altura-controle.d.ts +34 -0
  105. package/dist/core/alvo-digitavel.d.ts +5 -0
  106. package/dist/core/index.d.ts +1 -0
  107. package/dist/core/opcoes.d.ts +16 -0
  108. package/dist/core/rotulo-controle.d.ts +13 -0
  109. package/dist/core.cjs +1 -1
  110. package/dist/core.js +28 -18
  111. package/dist/cores.cjs +1 -1
  112. package/dist/cores.js +9 -8
  113. package/dist/custom-elements.json +28294 -20127
  114. package/dist/data.cjs +1 -1
  115. package/dist/data.js +2 -2
  116. package/dist/feedback.cjs +1 -1
  117. package/dist/feedback.js +2 -2
  118. package/dist/form-validacao-BlQFxUVj.js +104 -0
  119. package/dist/form-validacao-DIeyQVH5.cjs +1 -0
  120. package/dist/forms.cjs +1 -1
  121. package/dist/forms.d.ts +4 -0
  122. package/dist/forms.js +15 -12
  123. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +2 -1
  124. package/dist/gerencigeo-canvas/curva_leaflet.d.ts +2 -2
  125. package/dist/gerencigeo-canvas/feature_curvas.d.ts +3 -1
  126. package/dist/gerencigeo-canvas/feature_desenho.d.ts +13 -1
  127. package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +3 -0
  128. package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +9 -0
  129. package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +13 -2
  130. package/dist/gerencigeo-canvas/feature_lod.d.ts +38 -0
  131. package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
  132. package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +16 -8
  133. package/dist/gerencigeo-canvas/index.d.ts +7 -0
  134. package/dist/gerencigeo-canvas/layer_hit_test.d.ts +22 -0
  135. package/dist/gerencigeo-canvas/layer_manager.d.ts +5 -0
  136. package/dist/gerencigeo-canvas/mapa_core.d.ts +10 -0
  137. package/dist/gerencigeo-canvas/motor/dados-camada.d.ts +39 -0
  138. package/dist/gerencigeo-canvas/motor/estilo.d.ts +28 -0
  139. package/dist/gerencigeo-canvas/motor/geometria-px.d.ts +27 -0
  140. package/dist/gerencigeo-canvas/motor/index.d.ts +5 -0
  141. package/dist/gerencigeo-canvas/motor/motor-formas.d.ts +107 -0
  142. package/dist/gerencigeo-canvas/motor/tipos.d.ts +100 -0
  143. package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
  144. package/dist/gerencigeo-canvas/popup_residual.d.ts +5 -0
  145. package/dist/gerencigeo-canvas/renderers/canvas_formas_leaflet.d.ts +87 -0
  146. package/dist/gerencigeo-canvas/renderers/feicoes_canvas_renderer.d.ts +58 -0
  147. package/dist/gerencigeo-canvas/renderers/feicoes_despachante.d.ts +31 -0
  148. package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +48 -9
  149. package/dist/gerencigeo-canvas/renderers/marcadores_feicoes.d.ts +11 -0
  150. package/dist/gerencigeo-canvas/renderers/marcas_lod_layer.d.ts +19 -0
  151. package/dist/gerencigeo-canvas/renderers/renderizador_feicoes_tipos.d.ts +44 -0
  152. package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +95 -0
  153. package/dist/gerencigeo-canvas/renderers/selecao_visual.d.ts +6 -0
  154. package/dist/gerencigeo-canvas/types.d.ts +2 -0
  155. package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
  156. package/dist/index.cjs +1 -1
  157. package/dist/index.d.ts +7 -0
  158. package/dist/index.js +196 -189
  159. package/dist/mapa.cjs +11 -16
  160. package/dist/mapa.js +242 -170
  161. package/dist/modal.cjs +1 -1
  162. package/dist/modal.js +1 -1
  163. package/dist/motor-BB6tB6U-.cjs +1 -0
  164. package/dist/motor-CFI84lM2.js +1301 -0
  165. package/dist/motor.cjs +1 -0
  166. package/dist/motor.d.ts +7 -0
  167. package/dist/motor.js +52 -0
  168. package/dist/opcoes-CupvWVIm.js +24 -0
  169. package/dist/opcoes-vdAUY5OI.cjs +1 -0
  170. package/dist/register.cjs +1 -1
  171. package/dist/register.js +14 -13
  172. package/dist/tabela.cjs +1 -1
  173. package/dist/tabela.js +1 -1
  174. package/dist/tipos-elementos.d.ts +123 -8
  175. package/dist/tipos-react.d.ts +6 -0
  176. package/dist/tipos-vue.d.ts +119 -8
  177. package/dist/tools.cjs +1 -1
  178. package/dist/tools.js +1 -1
  179. package/dist/ui-badge-B5J_c5P5.js +197 -0
  180. package/dist/ui-badge-DC4y6Dik.cjs +28 -0
  181. package/dist/ui-botao-D24oXySA.cjs +12 -0
  182. package/dist/ui-botao-Dsj08jjw.js +165 -0
  183. package/dist/ui-campo-texto-19tIrmBK.js +377 -0
  184. package/dist/ui-campo-texto-CH8mzX61.cjs +16 -0
  185. package/dist/ui-card-0wu4rjEX.cjs +20 -0
  186. package/dist/ui-card-DRtpOo3l.js +143 -0
  187. package/dist/ui-controle-cores-BEUKOq4n.js +275 -0
  188. package/dist/ui-controle-cores-BLhrZHMh.cjs +32 -0
  189. package/dist/ui-kit.css +1 -1
  190. package/dist/ui-linha-C306zxWG.cjs +19 -0
  191. package/dist/ui-linha-C_azWkcG.js +517 -0
  192. package/dist/{ui-modal-DBOtSTbR.js → ui-modal-BkYvNP0G.js} +116 -140
  193. package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
  194. package/dist/{ui-paleta-ferramentas-DbwdWVtT.js → ui-paleta-ferramentas-BXXrI1Y7.js} +491 -431
  195. package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +21 -0
  196. package/dist/ui-seletor-cor-2yGryC_Z.cjs +86 -0
  197. package/dist/ui-seletor-cor-BuyhoDZz.js +345 -0
  198. package/dist/{ui-skeleton-W9uwIceA.js → ui-skeleton-B2Rgrv8o.js} +254 -191
  199. package/dist/{ui-skeleton-SPYqku8P.cjs → ui-skeleton-DiOxTBZK.cjs} +10 -10
  200. package/dist/ui-switch-BL-x_-SM.js +1202 -0
  201. package/dist/ui-switch-C0i_3QXu.cjs +66 -0
  202. package/dist/{ui-tabela-propriedades-C-PeuW1i.cjs → ui-tabela-propriedades-CjK2gG14.cjs} +10 -10
  203. package/dist/{ui-tabela-propriedades-BokvDD3b.js → ui-tabela-propriedades-DoL4SE0r.js} +845 -826
  204. package/package.json +8 -3
  205. package/dist/form-validacao-BIOXxt-1.js +0 -140
  206. package/dist/form-validacao-ytRYSF3E.cjs +0 -1
  207. package/dist/svg-seguro-BsbNQqpd.js +0 -50
  208. package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
  209. package/dist/ui-badge-BxT-sDmV.cjs +0 -28
  210. package/dist/ui-badge-C0eKBI8E.js +0 -183
  211. package/dist/ui-botao-BOOnP8ds.cjs +0 -12
  212. package/dist/ui-botao-DfqSivHl.js +0 -165
  213. package/dist/ui-botao-OGJV6Vfk.js +0 -165
  214. package/dist/ui-botao-psS1juof.cjs +0 -12
  215. package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
  216. package/dist/ui-campo-texto-Uu2dJE_0.js +0 -379
  217. package/dist/ui-card-B86lJXTP.cjs +0 -20
  218. package/dist/ui-card-C_o5_0cB.js +0 -111
  219. package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
  220. package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
  221. package/dist/ui-modal-CvGFGh1h.cjs +0 -18
  222. package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
  223. package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
  224. package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
  225. package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
  226. package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
  227. package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
  228. package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
  229. package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
  230. package/dist/ui-segmented-DyF5YLsV.js +0 -418
  231. package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
  232. package/dist/ui-segmented-wUraId2e.js +0 -412
  233. package/dist/ui-skeleton-DI4_9WOX.js +0 -428
  234. package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
  235. package/dist/ui-switch-BcOqOkiV.js +0 -856
  236. package/dist/ui-switch-D7iPKDj-.cjs +0 -53
  237. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
  238. package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
  239. package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
  240. package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
  241. package/dist/ui-toast-Bp_NlM5G.js +0 -156
  242. package/dist/ui-toast-DGTZKne5.cjs +0 -20
  243. package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
  244. package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
@@ -1,6 +1,7 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
2
  import { CamadaItem, FeicaoItem, MapaBaseItem, AbaPainelCamadas } from './tipos';
3
3
  import { CamadasHostCompleto } from './camadas-host';
4
+ import { LembrancaCamadas } from './camadas-lembranca';
4
5
  export declare class UICamadas extends SafeHTMLElement implements CamadasHostCompleto {
5
6
  static get observedAttributes(): string[];
6
7
  private shadow;
@@ -11,11 +12,10 @@ export declare class UICamadas extends SafeHTMLElement implements CamadasHostCom
11
12
  private conectado;
12
13
  private profundidadeLote;
13
14
  private renderPendente;
14
- private camadasRemovidas;
15
15
  /** Painéis conectados sem `id` nem `storage-key`: dividem a mesma chave de persistência. */
16
16
  private static instanciasChavePadrao;
17
- private origensCamadas;
18
- private salvarLembrancaDebounced;
17
+ /** @internal */
18
+ readonly lembranca: LembrancaCamadas;
19
19
  camadas: CamadaItem[];
20
20
  feicoes: FeicaoItem[];
21
21
  mapasBase: MapaBaseItem[];
@@ -40,6 +40,11 @@ export declare class UICamadas extends SafeHTMLElement implements CamadasHostCom
40
40
  set mapaBaseAtivo(valor: string);
41
41
  selecionarMapaBase(id: string, emitirEvento?: boolean): void;
42
42
  private marcarMapaBaseAtivoNoDOM;
43
+ /** Seção "Mapa Base" recolhida (só o cabeçalho com o mapa ativo). Atributo `mapas-base-recolhido`. */
44
+ get mapasBaseRecolhido(): boolean;
45
+ set mapasBaseRecolhido(valor: boolean);
46
+ /** Alterna a seção de mapas base; com `emitirEvento`, dispara `ui-mapas-base-recolhimento`. */
47
+ alternarMapasBaseRecolhido(emitirEvento?: boolean): void;
43
48
  get abaAtiva(): AbaPainelCamadas;
44
49
  set abaAtiva(aba: AbaPainelCamadas);
45
50
  get colapsado(): boolean;
@@ -79,7 +84,6 @@ export declare class UICamadas extends SafeHTMLElement implements CamadasHostCom
79
84
  /** Atalho reativo para `definirMapasBase()` — não dispara eventos. */
80
85
  get basemaps(): MapaBaseItem[];
81
86
  set basemaps(mapas: MapaBaseItem[]);
82
- private achatarCamadas;
83
87
  definirCamadas(camadas: CamadaItem[], feicoes?: FeicaoItem[]): void;
84
88
  definirFeicoes(feicoes: FeicaoItem[]): void;
85
89
  definirMapasBase(mapas: MapaBaseItem[]): void;
@@ -114,7 +118,6 @@ export declare class UICamadas extends SafeHTMLElement implements CamadasHostCom
114
118
  private conectarEventosGerais;
115
119
  private sincronizarCamadaAtivaDOM;
116
120
  sincronizarSelecaoDOM(): void;
117
- private sincronizarSelecoesComFeicoesValidas;
118
121
  notificarMudancaSelecao(): void;
119
122
  }
120
123
  export declare class UIPainelCamadas extends UICamadas {
@@ -9,4 +9,8 @@ export interface ContextoLabelPlaceholder {
9
9
  }
10
10
  export declare function sincronizarLabelEPlaceholder(ctx: ContextoLabelPlaceholder): void;
11
11
  export declare function sincronizarIconeSenha(container: HTMLSpanElement, ehSenhaOuAlternar: boolean, senhaVisivel: boolean): void;
12
- export declare function sincronizarFeedbackErro(wrapper: HTMLDivElement, input: HTMLInputElement, helper: HTMLDivElement, temErro: boolean, mensagemErro: string | null, helperText: string | null): void;
12
+ /**
13
+ * Reflete erro e texto de ajuda no campo. `prefixo` é o bloco BEM do componente (padrão `ui-campo-texto`),
14
+ * permitindo que `<ui-area-texto>` reutilize a mesma regra com suas próprias classes.
15
+ */
16
+ export declare function sincronizarFeedbackErro(wrapper: HTMLElement, input: HTMLInputElement | HTMLTextAreaElement, helper: HTMLElement, temErro: boolean, mensagemErro: string | null, helperText: string | null, prefixo?: string): void;
@@ -8,6 +8,7 @@ export declare class UICampoTexto extends FormAssociatedElement {
8
8
  private rightIconContainer;
9
9
  private leftSlotElement;
10
10
  private _senhaVisivel;
11
+ private listeners;
11
12
  private _checkTimer;
12
13
  private _focado;
13
14
  private _inputId;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Acessibilidade do <ui-canvas-cad>.
3
+ * Responsabilidade única: nomes acessíveis dos botões da barra rápida, estado `aria-pressed` do snap e anúncios
4
+ * (região viva) de seleção e ferramenta para leitores de tela.
5
+ */
6
+ /** Botões só com ícone ganham `aria-label` igual ao `title`; `aria-label` já definido é respeitado. */
7
+ export declare function nomearBotoesDaBarra(shadow: ShadowRoot): void;
8
+ /** Reflete o snap ligado/desligado no botão da barra. */
9
+ export declare function marcarSnap(shadow: ShadowRoot, ligado: boolean): void;
10
+ export declare function textoSelecao(quantidade: number): string;
11
+ export declare function textoFerramenta(ferramenta: string | null): string;
12
+ /** Escreve na região viva (`#cad-status`); trocar o texto é o que dispara o anúncio. */
13
+ export declare function anunciar(shadow: ShadowRoot, texto: string): void;
14
+ /** Tempo (ms) que o aviso visível de uma recusa fica na tela. */
15
+ export declare const TEMPO_AVISO_MS = 5000;
16
+ /**
17
+ * Liga os anúncios aos eventos que o próprio componente emite; devolve a função que desliga.
18
+ * Recusas de desenho e de edição viram aviso visível e anúncio, a menos que o host tenha o atributo `sem-avisos`
19
+ * (o consumidor mostra o próprio aviso a partir de `cad-desenho-recusado` / `cad-edicao-recusada`).
20
+ */
21
+ export declare function conectarAnuncios(host: HTMLElement, shadow: ShadowRoot): () => void;
@@ -1,3 +1,4 @@
1
+ import { ScaleMode } from '../../gerencigeo-canvas/types';
1
2
  import { UICanvasCAD } from './ui-canvas-cad';
2
3
  import { GerenciadorBroadcastConfig } from './cad-broadcast';
3
4
  import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
@@ -7,7 +8,7 @@ export interface ContextoAtributosCAD {
7
8
  mapContainer: HTMLDivElement | null;
8
9
  broadcastConfig: GerenciadorBroadcastConfig;
9
10
  setLayerOpacity: (id: string, op: number) => void;
10
- setLayerScaleMode: (id: string, mode: any) => void;
11
+ setLayerScaleMode: (id: string, mode: ScaleMode) => void;
11
12
  atualizarZonaProjecao: (zona: number) => void;
12
13
  }
13
14
  export declare function sincronizarAtributoCAD(ctx: ContextoAtributosCAD, name: string, oldVal: string, newVal: string): void;
@@ -14,6 +14,6 @@ export declare class GerenciadorBroadcastConfig {
14
14
  private contexto;
15
15
  constructor(contexto: ContextoBroadcastCAD);
16
16
  conectar(canalNome?: string | null): void;
17
- processarMensagem(data: any): void;
17
+ processarMensagem(entrada: unknown): void;
18
18
  desconectar(): void;
19
19
  }
@@ -0,0 +1,22 @@
1
+ import { EventoMapaCad, LatLngEvento } from './tipos';
2
+ export interface PontoPixel {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ /** Evento "de baixo": o `originalEvent` do Leaflet quando existe, senão o próprio evento. */
7
+ export declare function eventoOriginalDe(e: unknown): EventoMapaCad;
8
+ /** Primeiro alvo do evento: `composedPath()[0]` (atravessa o shadow DOM) ou `target`. */
9
+ export declare function alvoDoEvento(e: unknown): HTMLElement | null;
10
+ /**
11
+ * Ponto em pixels relativo ao contêiner: o parâmetro explícito, depois `containerPoint`/`layerPoint` do evento
12
+ * e, por fim, `clientX/clientY` descontando o retângulo do contêiner.
13
+ */
14
+ export declare function pontoPixelDe(e: unknown, explicito: PontoPixel | undefined, retanguloContainer: {
15
+ left: number;
16
+ top: number;
17
+ }): PontoPixel;
18
+ /** Latitude/longitude do parâmetro explícito ou do evento (aceita `lon` no lugar de `lng`); `null` se não houver número em `lat`. */
19
+ export declare function latLngDe(e: unknown, explicito?: LatLngEvento): {
20
+ lat: number;
21
+ lng: number;
22
+ } | null;
@@ -1,4 +1,6 @@
1
1
  import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
2
+ import { EventoMapaCad, LatLngEvento } from './tipos';
3
+ import { PontoPixel } from './cad-evento-coordenadas';
2
4
  export interface ContextoEventosCanvas {
3
5
  host: HTMLElement;
4
6
  controller: GerenciGeoMapaController;
@@ -8,14 +10,7 @@ export interface ContextoEventosCanvas {
8
10
  obterElementoPorId: (id: string | number) => any;
9
11
  fecharPopup: () => void;
10
12
  }
11
- export declare function processarCliqueLivreCanvas(ctx: ContextoEventosCanvas, e: MouseEvent | any, latLngParam?: {
12
- lat: number;
13
- lng?: number;
14
- lon?: number;
15
- }, containerPointParam?: {
16
- x: number;
17
- y: number;
18
- }): boolean;
13
+ export declare function processarCliqueLivreCanvas(ctx: ContextoEventosCanvas, e: MouseEvent | EventoMapaCad, latLngParam?: LatLngEvento, containerPointParam?: PontoPixel): boolean;
19
14
  export declare function processarAcaoPopup(ctx: ContextoEventosCanvas, acaoId: string, elementoId: string | number, elemento?: any): void;
20
15
  export declare function tratarCliqueMarcador(ctx: ContextoEventosCanvas, pId: string | number, isVizinho: boolean | undefined, elemento: any, coords: {
21
16
  lat: number;
@@ -0,0 +1,26 @@
1
+ import { default as L } from 'leaflet';
2
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
3
+ import { Feicao } from '../../gerencigeo-canvas/feature_types';
4
+ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
5
+ export interface PortasCamera {
6
+ obterMapa: () => L.Map | null;
7
+ obterLayerManager: () => CanvasLayerManager;
8
+ buscar: (camadaId: string, id: string) => Feicao | undefined;
9
+ lista: (camadaId: string) => Feicao[];
10
+ desenhada: (f: Feicao) => boolean;
11
+ /** Liga a camada e a prévia da feição, se estiverem escondidas. */
12
+ garantirVisivel: (f: Feicao) => void;
13
+ }
14
+ export declare class CameraFeicoes {
15
+ private p;
16
+ constructor(p: PortasCamera);
17
+ private limitesDe;
18
+ private enquadrar;
19
+ /** Aproxima da feição; liga a camada e a prévia, se estiverem escondidas. Ponto: voa até z ≥ 17. */
20
+ zoomParaFeicao(camadaId: string, id: string): boolean;
21
+ zoomParaFeicoes(refs: RefFeicao[]): boolean;
22
+ /** Enquadra todas as feições das camadas de feições visíveis (que aparecem pela regra de versões). */
23
+ ajustarTudo(): boolean;
24
+ /** Enquadra a camada inteira; se estava oculta, torna-a visível. */
25
+ ajustarCamada(camadaId: string): boolean;
26
+ }
@@ -0,0 +1,21 @@
1
+ import { default as L } from 'leaflet';
2
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
3
+ import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
4
+ import { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
5
+ export interface PortasConsulta {
6
+ obterMapa: () => L.Map | null;
7
+ obterLayerManager: () => CanvasLayerManager;
8
+ desenhada: (f: Feicao) => boolean;
9
+ }
10
+ export declare class ConsultaEspacialFeicoes {
11
+ private p;
12
+ constructor(p: PortasConsulta);
13
+ /** Feições visíveis das camadas de feições cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
14
+ candidatasEm(coord: LatLonPar, tolPx: number): Feicao[];
15
+ /** Snap de uma coordenada contra as feições visíveis de todas as camadas de feições (via índice espacial). */
16
+ buscarSnapEm(coord: [number, number], excluir?: ExcluirSnap): import('../../gerencigeo-canvas').ResultadoSnap | null;
17
+ feicaoSob(clientX: number, clientY: number): {
18
+ feicao: Feicao | null;
19
+ coordenada: LatLonPar;
20
+ } | null;
21
+ }
@@ -0,0 +1,39 @@
1
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
2
+ import { Feicao } from '../../gerencigeo-canvas/feature_types';
3
+ import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes } from './cad-feicoes-tipos';
4
+ export interface PortasRepositorio {
5
+ obterLayerManager: () => CanvasLayerManager;
6
+ opcoesNormalizacao: () => {
7
+ aceitarOrigem: boolean;
8
+ };
9
+ /** Chamado depois de cada mudança nos dados, para reconciliar seleção, edição e popup. */
10
+ aposDados: () => void;
11
+ }
12
+ export declare class RepositorioFeicoes {
13
+ private p;
14
+ /** id -> posição na lista da camada (válido enquanto `lista` for a lista atual); evita varrer a camada a cada consulta. */
15
+ private posicoes;
16
+ constructor(p: PortasRepositorio);
17
+ lista(camadaId: string): Feicao[];
18
+ private posicaoDe;
19
+ /** Feição da camada pelo id (O(1)); `undefined` se não existe. */
20
+ buscar(camadaId: string, id: string): Feicao | undefined;
21
+ private garantirCamada;
22
+ definirFeicoes(camadaId: string, brutas: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
23
+ adicionarFeicao(camadaId: string, bruta: unknown, opcoes?: OpcoesCamadaFeicoes): Feicao | null;
24
+ /**
25
+ * Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Com `substituirPropriedades`,
26
+ * `propriedades` informadas trocam as atuais por inteiro (atributos ausentes somem).
27
+ */
28
+ atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: Pick<OpcoesLote, 'substituirPropriedades'>): Feicao | null;
29
+ /** Grava uma feição já normalizada (usado quando o próprio mapa a altera, como ao arrastar um texto). */
30
+ substituir(camadaId: string, feicao: Feicao): void;
31
+ removerFeicao(camadaId: string, id: string): boolean;
32
+ /**
33
+ * Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona.
34
+ * Adicionar um id que já existe substitui a feição mantendo a posição (a ordem de empilhamento não muda).
35
+ */
36
+ aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
37
+ private mesclar;
38
+ private aplicar;
39
+ }
@@ -0,0 +1,68 @@
1
+ import { default as L } from 'leaflet';
2
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
3
+ import { Feicao, EstiloFeicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
4
+ import { ControleDesenho } from '../../gerencigeo-canvas/feature_desenho_controle';
5
+ import { Ferramenta } from '../../gerencigeo-canvas/feature_desenho';
6
+ import { buscarSnap } from '../../gerencigeo-canvas/feature_snap';
7
+ import { ResultadoFerramenta } from './cad-feicoes-tipos';
8
+ export interface PortasDesenho {
9
+ obterMapa: () => L.Map | null;
10
+ obterLayerManager: () => CanvasLayerManager;
11
+ emitir: (evento: string, detalhe: unknown, cancelavel?: boolean) => unknown;
12
+ /** A ferramenta ativa mudou (`null` = nenhuma). */
13
+ aoFerramenta?: (ferramenta: Ferramenta | null) => void;
14
+ lista: (camadaId: string) => Feicao[];
15
+ adicionarFeicao: (camadaId: string, bruta: unknown) => Feicao | null;
16
+ buscarSnapEm: (coord: [number, number]) => ReturnType<typeof buscarSnap>;
17
+ snapAtivo: () => boolean;
18
+ /** Antes de ativar uma ferramenta: encerra a edição de vértices, fecha o popup e ajusta as margens do HUD. */
19
+ prepararDesenho: () => void;
20
+ normalizarCoordenada: (bruta: unknown) => LatLonPar | null;
21
+ dividirComLinha: (linha: LatLonPar[]) => boolean;
22
+ selecionarNoLaco: (laco: LatLonPar[]) => void;
23
+ candidatasEm: (coord: LatLonPar, tolPx: number) => Feicao[];
24
+ }
25
+ export declare class FerramentasDesenho {
26
+ private p;
27
+ private desenho;
28
+ private camadaDesenho;
29
+ private estiloDesenho;
30
+ private sequenciaId;
31
+ constructor(p: PortasDesenho);
32
+ /** Controle de desenho da camada L2 (nasce na primeira ativação; `null` antes ou após `destruir`). */
33
+ get controle(): ControleDesenho | null;
34
+ /** Há uma ferramenta ativa? (o clique e o botão direito são dela) */
35
+ get ativo(): boolean;
36
+ /** Botão direito com ferramenta ativa: conclui, desfaz o último vértice ou sai. */
37
+ botaoDireito(): void;
38
+ /** Encerra a ferramenta e solta o controle (que guarda o mapa; após reconectar o mapa é outro). */
39
+ destruir(): void;
40
+ get ferramentaAtiva(): Ferramenta | null;
41
+ /** Camada que recebe o que for desenhado. Não existe camada padrão: o consumidor escolhe. */
42
+ definirCamadaDesenho(camadaId: string | null): void;
43
+ get camadaDeDesenho(): string | null;
44
+ /** Estilo aplicado às feições desenhadas daqui para frente (o conta-gotas também o altera). */
45
+ definirEstiloDesenho(estilo: EstiloFeicao): void;
46
+ obterEstiloDesenho(): EstiloFeicao;
47
+ alternarFerramenta(nome: string): ResultadoFerramenta;
48
+ ativarFerramenta(nome: string, opcoes?: {
49
+ fechar?: boolean;
50
+ iniciarEm?: LatLonPar;
51
+ }): ResultadoFerramenta;
52
+ desativarFerramenta(): void;
53
+ limparMedicao(): void;
54
+ /** Vértices já colocados na figura em andamento (0 sem ferramenta ou sem figura). */
55
+ get nosDesenho(): number;
56
+ desfazerVerticeDesenho(): boolean;
57
+ private motivoCamadaDesenhoInvalida;
58
+ private novoId;
59
+ /**
60
+ * Clique da ferramenta texto: emite `cad-texto-solicitado` (cancelável). Com `preventDefault()` o consumidor assume a
61
+ * entrada do texto e depois chama `detalhe.concluir(texto)` (cria na camada de desenho, com o estilo de desenho) ou
62
+ * simplesmente não faz nada para cancelar. Sem `preventDefault()`, aparece o campo inline.
63
+ */
64
+ private solicitarTexto;
65
+ private concluirFerramenta;
66
+ /** Conta-gotas: copia o estilo da feição sob o clique para o estilo de desenho. */
67
+ amostrarEstilo(coord: LatLonPar): void;
68
+ }
@@ -0,0 +1,37 @@
1
+ import { default as L } from 'leaflet';
2
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
3
+ import { Feicao } from '../../gerencigeo-canvas/feature_types';
4
+ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
5
+ import { EditorVertices } from '../../gerencigeo-canvas/feature_editor_vertices';
6
+ import { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
7
+ import { ResultadoEdicao } from './cad-feicoes-tipos';
8
+ export interface PortasEdicao {
9
+ obterMapa: () => L.Map | null;
10
+ obterLayerManager: () => CanvasLayerManager;
11
+ emitir: (evento: string, detalhe: unknown) => unknown;
12
+ buscar: (camadaId: string, id: string) => Feicao | undefined;
13
+ substituir: (camadaId: string, feicao: Feicao) => void;
14
+ desativarFerramenta: () => void;
15
+ aplicarMargensHud: () => void;
16
+ selecionarUma: (ref: RefFeicao) => void;
17
+ fecharPopup: () => void;
18
+ /** Depois da edição: o popup volta se a seleção tem exatamente uma feição. */
19
+ reabrirPopupDaSelecao: () => void;
20
+ snapAtivo: () => boolean;
21
+ alternarSnap: () => void;
22
+ buscarSnapEm: (coord: [number, number], excluir?: ExcluirSnap) => ReturnType<typeof import('../../gerencigeo-canvas/feature_snap').buscarSnap>;
23
+ }
24
+ export declare class EdicaoFeicoes {
25
+ private p;
26
+ private editor;
27
+ constructor(p: PortasEdicao);
28
+ get editando(): boolean;
29
+ /** @internal Editor de vértices da camada L2 (`null` fora da edição). */
30
+ get editorAtual(): EditorVertices | null;
31
+ /** Feição em edição (`null` fora da edição). */
32
+ get feicao(): Feicao | null;
33
+ sincronizar(feicao: Feicao): void;
34
+ atualizarSnapNoHud(): void;
35
+ iniciarEdicao(camadaId: string, id: string): ResultadoEdicao;
36
+ parar(): void;
37
+ }
@@ -0,0 +1,48 @@
1
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
2
+ import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
3
+ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
4
+ export interface PortasOperacoes {
5
+ emitir: (evento: string, detalhe: unknown) => unknown;
6
+ obterLayerManager: () => CanvasLayerManager;
7
+ buscar: (camadaId: string, id: string) => Feicao | undefined;
8
+ lista: (camadaId: string) => Feicao[];
9
+ desenhada: (f: Feicao) => boolean;
10
+ idLivre: (camadaId: string, base: string) => string;
11
+ adicionarFeicao: (camadaId: string, bruta: unknown) => Feicao | null;
12
+ removerFeicao: (camadaId: string, id: string) => boolean;
13
+ selecionadas: () => Feicao[];
14
+ estaSelecionada: (ref: RefFeicao) => boolean;
15
+ /** `true` enquanto a ferramenta "dividir" está ativa. */
16
+ divisaoAtiva: () => boolean;
17
+ encerrarDesenho: () => void;
18
+ }
19
+ export declare class OperacoesFeicoes {
20
+ private p;
21
+ constructor(p: PortasOperacoes);
22
+ /**
23
+ * Divide polígonos pela linha de corte. Alvos: os polígonos selecionados; sem seleção, o primeiro
24
+ * polígono (de camada visível, interativa e desbloqueada) que a linha corta.
25
+ */
26
+ dividirComLinha(linha: LatLonPar[]): boolean;
27
+ /** Cria um polígono de buffer ao redor da feição (na camada dela, ou em `camadaDestino`). */
28
+ gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
29
+ camadaDestino?: string;
30
+ id?: string;
31
+ }): Feicao | null;
32
+ /** Copia a feição deslocada (em metros para leste/norte). */
33
+ duplicarFeicao(camadaId: string, id: string, deslocamento?: {
34
+ lesteM?: number;
35
+ norteM?: number;
36
+ }, opcoes?: {
37
+ id?: string;
38
+ }): Feicao | null;
39
+ /**
40
+ * Junta linhas (encadeando pontas) ou dois polígonos (por uma ponte) numa feição só; as originais saem.
41
+ * Linhas com pontas a até `toleranciaM` se ligam; polígonos precisam estar a até `toleranciaM` e
42
+ * não podem ter bordas que se cruzam.
43
+ */
44
+ juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
45
+ toleranciaM?: number;
46
+ id?: string;
47
+ }): Feicao | null;
48
+ }
@@ -0,0 +1,28 @@
1
+ import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
2
+ export interface PortasPonteiro {
3
+ emitir: (evento: string, detalhe: unknown) => unknown;
4
+ feicaoSob: (clientX: number, clientY: number) => {
5
+ feicao: Feicao | null;
6
+ coordenada: LatLonPar;
7
+ } | null;
8
+ /** Mouse parado para o hover: uma ferramenta de desenho ou a edição de vértices está ativa. */
9
+ interacaoAtiva: () => boolean;
10
+ /** Se há ferramenta ativa, entrega a ela o botão direito e devolve `true` (não abre menu). */
11
+ botaoDireitoDaFerramenta: () => boolean;
12
+ /** Pedido explícito de informações: abre o popup da feição. */
13
+ abrirPopup?: (feicao: Feicao) => void;
14
+ }
15
+ export declare class PonteiroFeicoes {
16
+ private p;
17
+ private hoverId;
18
+ private hoverAgendado;
19
+ constructor(p: PortasPonteiro);
20
+ /** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
21
+ aoMoverMouse(e: MouseEvent): void;
22
+ /** Botão direito: emite `cad-feicao-menu` com a feição sob o cursor (ou `null`), para o consumidor abrir o próprio menu. */
23
+ menuContexto(e: MouseEvent): void;
24
+ /** Duplo clique sobre uma feição: pedido de informações (popup). Ignorado durante desenho ou edição de vértices. */
25
+ duploClique(e: MouseEvent): void;
26
+ /** Esquece a feição sob o cursor (ao destruir o componente). */
27
+ limpar(): void;
28
+ }
@@ -0,0 +1,22 @@
1
+ import { default as L } from 'leaflet';
2
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
3
+ import { Feicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
4
+ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
5
+ import { CaixaPx, ModoCaixa } from '../../gerencigeo-canvas/feature_caixa';
6
+ export interface PortasSelecaoRegiao {
7
+ obterMapa: () => L.Map | null;
8
+ obterLayerManager: () => CanvasLayerManager;
9
+ lista: (camadaId: string) => Feicao[];
10
+ desenhada: (f: Feicao) => boolean;
11
+ desativarFerramenta: () => void;
12
+ selecionar: (refs: RefFeicao[]) => void;
13
+ alternarVarias: (refs: RefFeicao[]) => void;
14
+ }
15
+ export declare class SelecaoPorRegiao {
16
+ private p;
17
+ constructor(p: PortasSelecaoRegiao);
18
+ /** Laço: seleciona (substituindo) as feições de camadas selecionáveis tocadas pelo polígono; a ferramenta encerra. */
19
+ selecionarNoLaco(laco: LatLonPar[]): void;
20
+ /** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
21
+ selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, aditivo: boolean): void;
22
+ }
@@ -0,0 +1,53 @@
1
+ import { LayerStyleDef } from '../../gerencigeo-canvas/types';
2
+ import { MotivoRecusaEdicao } from '../../gerencigeo-canvas/feature_edicao_ops';
3
+ export declare const TIPO_CAMADA_FEICOES = "feicoes";
4
+ export interface OpcoesCamadaFeicoes {
5
+ nome?: string;
6
+ zIndex?: number;
7
+ opacidade?: number;
8
+ interativo?: boolean;
9
+ estilo?: Partial<LayerStyleDef>;
10
+ }
11
+ /** Opções de `aplicarLote` / `atualizarFeicao`. */
12
+ export interface OpcoesLote extends OpcoesCamadaFeicoes {
13
+ /**
14
+ * Em atualizações, `propriedades` informadas SUBSTITUEM as atuais (o padrão é mesclar, e chaves apagadas
15
+ * pelo consumidor ficam para trás). Sem `propriedades` no item, nada muda.
16
+ */
17
+ substituirPropriedades?: boolean;
18
+ }
19
+ /** Itens de atualização: `id` aponta a feição; o resto é mesclado como em `atualizarFeicao`. */
20
+ export type AtualizacaoFeicao = Record<string, any> & {
21
+ id: string;
22
+ };
23
+ export interface LoteFeicoes {
24
+ adicionar?: unknown[];
25
+ atualizar?: AtualizacaoFeicao[];
26
+ remover?: string[];
27
+ }
28
+ export interface ResultadoLote {
29
+ adicionadas: number;
30
+ atualizadas: number;
31
+ removidas: number;
32
+ /** Ids (ou posições, quando não há id) recusados: geometria inválida, feição inexistente numa atualização, camada que não é de feições. */
33
+ recusadas: string[];
34
+ }
35
+ export interface ResultadoFeicoes {
36
+ /** Quantas feições entraram na camada. */
37
+ aceitas: number;
38
+ /** Ids (ou posições, quando não há id) das feições recusadas por geometria inválida. */
39
+ recusadas: string[];
40
+ }
41
+ /** Opções do popup da feição. */
42
+ export interface OpcoesPopup {
43
+ /** A ação "copiar" grava as coordenadas na área de transferência (padrão `true`); `cad-feicao-acao` sai de qualquer jeito. */
44
+ copiarParaAreaDeTransferencia?: boolean;
45
+ }
46
+ export interface ResultadoFerramenta {
47
+ ok: boolean;
48
+ motivo?: 'ferramenta-invalida' | 'sem-mapa' | 'sem-camada' | 'camada-invalida' | 'camada-bloqueada';
49
+ }
50
+ export interface ResultadoEdicao {
51
+ ok: boolean;
52
+ motivo?: MotivoRecusaEdicao | 'inexistente' | 'sem-mapa';
53
+ }
@@ -0,0 +1,33 @@
1
+ import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
2
+ import { Feicao } from '../../gerencigeo-canvas/feature_types';
3
+ import { RegraVersoes } from '../../gerencigeo-canvas/feature_versoes';
4
+ export interface PortasVersoes {
5
+ obterLayerManager: () => CanvasLayerManager;
6
+ emitir: (evento: string, detalhe: unknown) => unknown;
7
+ buscar: (camadaId: string, id: string) => Feicao | undefined;
8
+ lista: (camadaId: string) => Feicao[];
9
+ /** Chamado depois que a regra muda, para reconciliar seleção, edição e popup. */
10
+ aposDados: () => void;
11
+ }
12
+ export declare class VersoesFeicoes {
13
+ private p;
14
+ readonly regra: RegraVersoes;
15
+ private cacheOficiais;
16
+ constructor(p: PortasVersoes, regra: RegraVersoes);
17
+ private oficiaisDe;
18
+ /** Aparece segundo a regra de oficial × prévia? */
19
+ visivelPorVersao(f: Feicao): boolean;
20
+ /** Vai para a tela e responde a clique, caixa, laço, snap e hover: não excluída, não oculta e visível pela regra de versões. */
21
+ desenhada(f: Feicao): boolean;
22
+ aplicarVersoes(): void;
23
+ get previasGlobais(): boolean;
24
+ /** Mostra (ou esconde) as prévias de todas as entidades. Prévias de entidades sem oficial aparecem sempre. */
25
+ definirPreviasGlobais(ligado: boolean): void;
26
+ alternarPreviasGlobais(): void;
27
+ /** Liga/desliga a prévia da entidade a que a feição pertence. Devolve o novo estado, ou `null` se a feição não existe. */
28
+ alternarPrevia(camadaId: string, id: string): boolean | null;
29
+ /** A prévia da feição está sendo mostrada por pedido (global ou individual)? */
30
+ previaSolicitada(camadaId: string, id: string): boolean;
31
+ /** Mostra o que estava escondido (camada oculta, prévia não solicitada) para a feição poder ser vista. */
32
+ garantirVisivel(f: Feicao): void;
33
+ }