@thibezer/ui-components-kit 2.8.2 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +146 -0
- package/README.md +32 -8
- package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
- package/dist/acessibilidade-CUlSXc2X.js +38 -0
- package/dist/altura-controle-ukMRPckR.cjs +1 -0
- package/dist/altura-controle-vxQiXG4q.js +62 -0
- package/dist/botao.cjs +1 -1
- package/dist/botao.js +1 -1
- package/dist/camadas.cjs +114 -110
- package/dist/camadas.js +1343 -1177
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +86 -85
- package/dist/canvas.js +5437 -4304
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
- package/dist/components/ui-badge/ui-badge.d.ts +2 -0
- package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +3 -1
- package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +23 -0
- package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +22 -0
- package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +3 -7
- package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
- package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
- package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
- package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
- package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
- package/dist/components/ui-camadas/camadas-host.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
- package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
- package/dist/components/ui-camadas/camadas-render.d.ts +15 -0
- package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
- package/dist/components/ui-camadas/camadas-selecao.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +8 -5
- package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +15 -0
- package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
- package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
- package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
- package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +28 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +39 -106
- package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
- package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
- package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
- package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +30 -1
- package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
- package/dist/components/ui-cores/tipos.d.ts +2 -0
- package/dist/components/ui-cores/ui-controle-cores.d.ts +8 -3
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +3 -1
- package/dist/components/ui-linha/index.d.ts +1 -0
- package/dist/components/ui-linha/ui-linha.d.ts +48 -0
- package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
- package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
- package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
- package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
- package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
- package/dist/components/ui-mapa/tipos.d.ts +13 -0
- package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
- package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
- package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
- package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
- package/dist/components/ui-modal/modal-foco.d.ts +28 -0
- package/dist/components/ui-modal/ui-modal.d.ts +1 -11
- package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
- package/dist/components/ui-radio/ui-radio.d.ts +9 -2
- package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
- package/dist/components/ui-switch/ui-switch.d.ts +3 -1
- package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
- package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
- package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
- package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
- package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
- package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
- package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
- package/dist/core/altura-controle.d.ts +34 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/opcoes.d.ts +9 -0
- package/dist/core/rotulo-controle.d.ts +13 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +28 -18
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +1 -1
- package/dist/custom-elements.json +22088 -16390
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +2 -2
- package/dist/form-validacao-BlQFxUVj.js +104 -0
- package/dist/form-validacao-DIeyQVH5.cjs +1 -0
- package/dist/forms.cjs +1 -1
- package/dist/forms.js +2 -2
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +0 -1
- package/dist/gerencigeo-canvas/curva_leaflet.d.ts +2 -2
- package/dist/gerencigeo-canvas/feature_curvas.d.ts +3 -1
- package/dist/gerencigeo-canvas/feature_lod.d.ts +38 -0
- package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
- package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +16 -8
- package/dist/gerencigeo-canvas/index.d.ts +7 -0
- package/dist/gerencigeo-canvas/layer_hit_test.d.ts +22 -0
- package/dist/gerencigeo-canvas/layer_manager.d.ts +5 -0
- package/dist/gerencigeo-canvas/mapa_core.d.ts +6 -0
- package/dist/gerencigeo-canvas/motor/dados-camada.d.ts +39 -0
- package/dist/gerencigeo-canvas/motor/estilo.d.ts +28 -0
- package/dist/gerencigeo-canvas/motor/geometria-px.d.ts +27 -0
- package/dist/gerencigeo-canvas/motor/index.d.ts +5 -0
- package/dist/gerencigeo-canvas/motor/motor-formas.d.ts +107 -0
- package/dist/gerencigeo-canvas/motor/tipos.d.ts +100 -0
- package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
- package/dist/gerencigeo-canvas/renderers/canvas_formas_leaflet.d.ts +87 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_canvas_renderer.d.ts +58 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_despachante.d.ts +31 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +48 -9
- package/dist/gerencigeo-canvas/renderers/marcadores_feicoes.d.ts +11 -0
- package/dist/gerencigeo-canvas/renderers/marcas_lod_layer.d.ts +19 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_feicoes_tipos.d.ts +44 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +95 -0
- package/dist/gerencigeo-canvas/renderers/selecao_visual.d.ts +6 -0
- package/dist/gerencigeo-canvas/types.d.ts +2 -0
- package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +179 -176
- package/dist/mapa.cjs +11 -16
- package/dist/mapa.js +242 -170
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/motor-BB6tB6U-.cjs +1 -0
- package/dist/motor-CFI84lM2.js +1301 -0
- package/dist/motor.cjs +1 -0
- package/dist/motor.d.ts +7 -0
- package/dist/motor.js +52 -0
- package/dist/opcoes-CJYLi6kd.js +12 -0
- package/dist/opcoes-CkyDxBuQ.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +11 -11
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +49 -8
- package/dist/tipos-react.d.ts +2 -0
- package/dist/tipos-vue.d.ts +45 -8
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-BWhoGgo9.js +197 -0
- package/dist/ui-badge-SIR81R9l.cjs +28 -0
- package/dist/ui-botao-D24oXySA.cjs +12 -0
- package/dist/ui-botao-Dsj08jjw.js +165 -0
- package/dist/{ui-campo-texto-Uu2dJE_0.js → ui-campo-texto-B_OHVGiN.js} +51 -51
- package/dist/ui-campo-texto-DauJCde3.cjs +16 -0
- package/dist/{ui-card-C_o5_0cB.js → ui-card-BNYCQ7g-.js} +50 -42
- package/dist/ui-card-BrjBL-yo.cjs +20 -0
- package/dist/ui-controle-cores-DgEza3wF.js +612 -0
- package/dist/ui-controle-cores-uY__TgwW.cjs +117 -0
- package/dist/ui-kit.css +1 -1
- package/dist/ui-linha-BYAX4W6x.cjs +19 -0
- package/dist/{ui-segmented-DyF5YLsV.js → ui-linha-aqLlaYi7.js} +209 -114
- package/dist/{ui-modal-DBOtSTbR.js → ui-modal-BkYvNP0G.js} +116 -140
- package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
- package/dist/{ui-paleta-ferramentas-DbwdWVtT.js → ui-paleta-ferramentas-BXXrI1Y7.js} +491 -431
- package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +21 -0
- package/dist/{ui-skeleton-W9uwIceA.js → ui-skeleton-B2Rgrv8o.js} +254 -191
- package/dist/{ui-skeleton-SPYqku8P.cjs → ui-skeleton-DiOxTBZK.cjs} +10 -10
- package/dist/ui-switch-D9a8XlVX.cjs +53 -0
- package/dist/{ui-switch-BcOqOkiV.js → ui-switch-DO1R0Ce7.js} +187 -128
- package/dist/{ui-tabela-propriedades-C-PeuW1i.cjs → ui-tabela-propriedades-CjK2gG14.cjs} +10 -10
- package/dist/{ui-tabela-propriedades-BokvDD3b.js → ui-tabela-propriedades-DoL4SE0r.js} +845 -826
- package/package.json +8 -3
- package/dist/form-validacao-BIOXxt-1.js +0 -140
- package/dist/form-validacao-ytRYSF3E.cjs +0 -1
- package/dist/svg-seguro-BsbNQqpd.js +0 -50
- package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
- package/dist/ui-badge-BxT-sDmV.cjs +0 -28
- package/dist/ui-badge-C0eKBI8E.js +0 -183
- package/dist/ui-botao-BOOnP8ds.cjs +0 -12
- package/dist/ui-botao-DfqSivHl.js +0 -165
- package/dist/ui-botao-OGJV6Vfk.js +0 -165
- package/dist/ui-botao-psS1juof.cjs +0 -12
- package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
- package/dist/ui-card-B86lJXTP.cjs +0 -20
- package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
- package/dist/ui-modal-CvGFGh1h.cjs +0 -18
- package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
- package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
- package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
- package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
- package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
- package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
- package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
- package/dist/ui-segmented-wUraId2e.js +0 -412
- package/dist/ui-skeleton-DI4_9WOX.js +0 -428
- package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
- package/dist/ui-switch-D7iPKDj-.cjs +0 -53
- package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
- package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
- package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
- package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
- package/dist/ui-toast-Bp_NlM5G.js +0 -156
- package/dist/ui-toast-DGTZKne5.cjs +0 -20
- package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
- package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
package/dist/data.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-tabela-propriedades-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-tabela-propriedades-CjK2gG14.cjs"),a=require("./ui-badge-SIR81R9l.cjs");exports.GerenciadorValoresPropriedades=r.GerenciadorValoresPropriedades;exports.TabelaOrquestradorDados=r.TabelaOrquestradorDados;exports.TabelaRemotaController=r.TabelaRemotaController;exports.TabelaSelecaoController=r.TabelaSelecaoController;exports.UITabela=r.UITabela;exports.UITabelaPropriedades=r.UITabelaPropriedades;exports.abrirPopoverRedimensionamento=r.abrirPopoverRedimensionamento;exports.alternarCategoria=r.alternarCategoria;exports.alternarDirecaoOrdenacao=r.alternarDirecaoOrdenacao;exports.alternarPosicionamentoFlutuante=r.alternarPosicionamentoFlutuante;exports.aplicarOrdenacaoTabela=r.aplicarOrdenacaoTabela;exports.atualizarCampoVisual=r.atualizarCampoVisual;exports.avaliarExpressaoMatematica=r.avaliarExpressaoMatematica;exports.buscarLinhaPropriedade=r.buscarLinhaPropriedade;exports.colapsarTodasCategorias=r.colapsarTodasCategorias;exports.conectarArrastoFlutuante=r.conectarArrastoFlutuante;exports.conectarPainelControles=r.conectarPainelControles;exports.criarControladorSplitter=r.criarControladorSplitter;exports.criarEditorAcao=r.criarEditorAcao;exports.criarEditorBooleano=r.criarEditorBooleano;exports.criarEditorCorCad=r.criarEditorCorCad;exports.criarEditorCorSwatch=r.criarEditorCorSwatch;exports.criarEditorLinetype=r.criarEditorLinetype;exports.criarEditorLineweight=r.criarEditorLineweight;exports.criarEditorNumero=r.criarEditorNumero;exports.criarEditorReadonly=r.criarEditorReadonly;exports.criarEditorSelecao=r.criarEditorSelecao;exports.criarEditorTexto=r.criarEditorTexto;exports.criarEditorValor=r.criarEditorValor;exports.criarLinhaPropriedade=r.criarLinhaPropriedade;exports.executarOrquestracaoCorpo=r.executarOrquestracaoCorpo;exports.executarOrquestracaoHeader=r.executarOrquestracaoHeader;exports.executarRedimensionamentoColuna=r.executarRedimensionamentoColuna;exports.executarRedimensionamentoTeclado=r.executarRedimensionamentoTeclado;exports.exibirPromptPopoverRedimensionamento=r.exibirPromptPopoverRedimensionamento;exports.expandirTodasCategorias=r.expandirTodasCategorias;exports.focarProximoEditor=r.focarProximoEditor;exports.formatWidth=r.formatWidth;exports.getAlignmentClass=r.getAlignmentClass;exports.getRowHeight=r.getRowHeight;exports.getTextAlign=r.getTextAlign;exports.inicializarScrollVirtualizacao=r.inicializarScrollVirtualizacao;exports.iniciarRedimensionamentoColuna=r.iniciarRedimensionamentoColuna;exports.interpretarIndice=r.interpretarIndice;exports.limitarLarguraColuna=r.limitarLarguraColuna;exports.localizarIndiceItem=r.localizarIndiceItem;exports.montarEstruturaDOM=r.montarEstruturaDOM;exports.normalizarTexto=r.normalizarTexto;exports.orquestrarEstruturaInicial=r.orquestrarEstruturaInicial;exports.proximaDensidade=r.proximaDensidade;exports.redimensionarColunaPorDelta=r.redimensionarColunaPorDelta;exports.registrarAtualizadorEditor=r.registrarAtualizadorEditor;exports.renderizarCategoriasETree=r.renderizarCategoriasETree;exports.renderizarCorpoTabela=r.renderizarCorpoTabela;exports.renderizarHeaderTabela=r.renderizarHeaderTabela;exports.renderizarSeletorTipos=r.renderizarSeletorTipos;exports.sincronizarAtributosTabela=r.sincronizarAtributosTabela;exports.sincronizarPainelControles=r.sincronizarPainelControles;exports.sincronizarSelect=r.sincronizarSelect;exports.tratarMudancaAtributoTabela=r.tratarMudancaAtributoTabela;exports.valoresIguais=r.valoresIguais;exports.UIBadge=a.UIBadge;exports.UIChip=a.UIChip;exports.UIKpi=a.UIKpi;exports.UIMetrica=a.UIMetrica;exports.UIStat=a.UIStat;exports.UITag=a.UITag;
|
package/dist/data.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import { G as o, T as i, a as s, b as t, U as n, c as l, d, e as c, f as u, g as m, h as p, i as C, j as T, k as E, l as b, m as g, n as x, o as z, p as I, q as P, r as U, s as R, t as S, u as h, v as A, w as O, x as D, y as L, z as f, A as q, B as v, C as M, D as V, E as w, F as H, H as y, I as B, J as F, K as G, L as K, M as N, N as W, O as j, P as k, Q as J, R as Q, S as X, V as Y, W as Z, X as _, Y as $, Z as aa, _ as ra, $ as ea, a0 as oa, a1 as ia, a2 as sa, a3 as ta, a4 as na, a5 as la, a6 as da } from "./ui-tabela-propriedades-
|
|
3
|
-
import { U as ua, a as ma, b as pa, c as Ca, d as Ta, e as Ea } from "./ui-badge-
|
|
2
|
+
import { G as o, T as i, a as s, b as t, U as n, c as l, d, e as c, f as u, g as m, h as p, i as C, j as T, k as E, l as b, m as g, n as x, o as z, p as I, q as P, r as U, s as R, t as S, u as h, v as A, w as O, x as D, y as L, z as f, A as q, B as v, C as M, D as V, E as w, F as H, H as y, I as B, J as F, K as G, L as K, M as N, N as W, O as j, P as k, Q as J, R as Q, S as X, V as Y, W as Z, X as _, Y as $, Z as aa, _ as ra, $ as ea, a0 as oa, a1 as ia, a2 as sa, a3 as ta, a4 as na, a5 as la, a6 as da } from "./ui-tabela-propriedades-DoL4SE0r.js";
|
|
3
|
+
import { U as ua, a as ma, b as pa, c as Ca, d as Ta, e as Ea } from "./ui-badge-BWhoGgo9.js";
|
|
4
4
|
export {
|
|
5
5
|
o as GerenciadorValoresPropriedades,
|
|
6
6
|
i as TabelaOrquestradorDados,
|
package/dist/feedback.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-modal-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-modal-CUNbpbZ1.cjs"),e=require("./ui-skeleton-DiOxTBZK.cjs");exports.UIDialog=r.UIDialog;exports.UIModal=r.UIModal;exports.aplicarInertForaDoModal=r.aplicarInertForaDoModal;exports.removerInertForaDoModal=r.removerInertForaDoModal;exports.ICONES_ALERTA=e.ICONES_ALERTA;exports.UIAlerta=e.UIAlerta;exports.UIDrawer=e.UIDrawer;exports.UIEsqueleto=e.UIEsqueleto;exports.UIGaveta=e.UIGaveta;exports.UIPainelLateral=e.UIPainelLateral;exports.UIPopover=e.UIPopover;exports.UISheet=e.UISheet;exports.UISkeleton=e.UISkeleton;exports.UIToast=e.UIToast;exports.UITooltip=e.UITooltip;exports.atualizarScrollLockDrawer=e.atualizarScrollLockDrawer;exports.gerenciarTabTrap=e.gerenciarTabTrap;exports.isTopMostDrawer=e.isTopMostDrawer;exports.obterElementosFocaveis=e.obterElementosFocaveis;exports.registrarToastNoBus=e.registrarToastNoBus;
|
package/dist/feedback.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import { U as s, a as e, b as t, r as l } from "./ui-modal-
|
|
3
|
-
import { I as U, U as i, a as p, b as T, c, d as n, e as D, f as m, g as b, h as d, i as g, j as v, k as E, l as M, o as S, r as f } from "./ui-skeleton-
|
|
2
|
+
import { U as s, a as e, b as t, r as l } from "./ui-modal-BkYvNP0G.js";
|
|
3
|
+
import { I as U, U as i, a as p, b as T, c, d as n, e as D, f as m, g as b, h as d, i as g, j as v, k as E, l as M, o as S, r as f } from "./ui-skeleton-B2Rgrv8o.js";
|
|
4
4
|
export {
|
|
5
5
|
U as ICONES_ALERTA,
|
|
6
6
|
i as UIAlerta,
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
function d(e) {
|
|
2
|
+
if (e.disabled)
|
|
3
|
+
return { valido: !0, flags: {}, mensagem: "" };
|
|
4
|
+
if (e.customError && e.customError.trim() !== "")
|
|
5
|
+
return {
|
|
6
|
+
valido: !1,
|
|
7
|
+
flags: { customError: !0 },
|
|
8
|
+
mensagem: e.customError
|
|
9
|
+
};
|
|
10
|
+
const { val: a, rawVal: n, badInput: s, required: u, tipo: l = "text", mensagemValidacao: t } = e;
|
|
11
|
+
if (s || l === "number" && n && isNaN(Number(n)))
|
|
12
|
+
return {
|
|
13
|
+
valido: !1,
|
|
14
|
+
flags: { badInput: !0 },
|
|
15
|
+
mensagem: t || "Insira um número válido."
|
|
16
|
+
};
|
|
17
|
+
if (u && a.trim() === "")
|
|
18
|
+
return {
|
|
19
|
+
valido: !1,
|
|
20
|
+
flags: { valueMissing: !0 },
|
|
21
|
+
mensagem: t || "Preencha este campo."
|
|
22
|
+
};
|
|
23
|
+
if (a === "")
|
|
24
|
+
return { valido: !0, flags: {}, mensagem: "" };
|
|
25
|
+
if (e.minlength !== null && e.minlength !== void 0 && !isNaN(e.minlength) && a.length < e.minlength)
|
|
26
|
+
return {
|
|
27
|
+
valido: !1,
|
|
28
|
+
flags: { tooShort: !0 },
|
|
29
|
+
mensagem: t || `Use pelo menos ${e.minlength} caracteres (atualmente você está usando ${a.length}).`
|
|
30
|
+
};
|
|
31
|
+
if (e.maxlength !== null && e.maxlength !== void 0 && !isNaN(e.maxlength) && a.length > e.maxlength)
|
|
32
|
+
return {
|
|
33
|
+
valido: !1,
|
|
34
|
+
flags: { tooLong: !0 },
|
|
35
|
+
mensagem: t || `Reduza o texto para no máximo ${e.maxlength} caracteres (atualmente você está usando ${a.length}).`
|
|
36
|
+
};
|
|
37
|
+
if (e.pattern)
|
|
38
|
+
try {
|
|
39
|
+
if (!new RegExp(`^(?:${e.pattern})$`).test(a))
|
|
40
|
+
return {
|
|
41
|
+
valido: !1,
|
|
42
|
+
flags: { patternMismatch: !0 },
|
|
43
|
+
mensagem: t || "O valor não corresponde ao padrão solicitado."
|
|
44
|
+
};
|
|
45
|
+
} catch {
|
|
46
|
+
}
|
|
47
|
+
if (l === "email" && !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test(a))
|
|
48
|
+
return {
|
|
49
|
+
valido: !1,
|
|
50
|
+
flags: { typeMismatch: !0 },
|
|
51
|
+
mensagem: t || "Insira um endereço de e-mail válido."
|
|
52
|
+
};
|
|
53
|
+
if (l === "url")
|
|
54
|
+
try {
|
|
55
|
+
new URL(a);
|
|
56
|
+
} catch {
|
|
57
|
+
return {
|
|
58
|
+
valido: !1,
|
|
59
|
+
flags: { typeMismatch: !0 },
|
|
60
|
+
mensagem: t || "Insira uma URL válida."
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (l === "number") {
|
|
64
|
+
const i = Number(a);
|
|
65
|
+
if (isNaN(i))
|
|
66
|
+
return {
|
|
67
|
+
valido: !1,
|
|
68
|
+
flags: { badInput: !0 },
|
|
69
|
+
mensagem: t || "Insira um número válido."
|
|
70
|
+
};
|
|
71
|
+
if (e.min !== null && e.min !== void 0 && !isNaN(e.min) && i < e.min)
|
|
72
|
+
return {
|
|
73
|
+
valido: !1,
|
|
74
|
+
flags: { rangeUnderflow: !0 },
|
|
75
|
+
mensagem: t || `O valor deve ser maior ou igual a ${e.min}.`
|
|
76
|
+
};
|
|
77
|
+
if (e.max !== null && e.max !== void 0 && !isNaN(e.max) && i > e.max)
|
|
78
|
+
return {
|
|
79
|
+
valido: !1,
|
|
80
|
+
flags: { rangeOverflow: !0 },
|
|
81
|
+
mensagem: t || `O valor deve ser menor ou igual a ${e.max}.`
|
|
82
|
+
};
|
|
83
|
+
if (e.step && e.step !== "any") {
|
|
84
|
+
const m = parseFloat(e.step);
|
|
85
|
+
if (!isNaN(m) && m > 0) {
|
|
86
|
+
const f = e.min !== null && e.min !== void 0 && !isNaN(e.min) ? e.min : 0, o = Math.abs((i - f) % m);
|
|
87
|
+
if (o > 1e-6 && Math.abs(o - m) > 1e-6)
|
|
88
|
+
return {
|
|
89
|
+
valido: !1,
|
|
90
|
+
flags: { stepMismatch: !0 },
|
|
91
|
+
mensagem: t || "Insira um valor válido de acordo com o intervalo."
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return { valido: !0, flags: {}, mensagem: "" };
|
|
97
|
+
}
|
|
98
|
+
function r(e, a, n) {
|
|
99
|
+
!e || typeof e.setValidity != "function" || (a.valido ? e.setValidity({}) : e.setValidity(a.flags, a.mensagem || "Valor inválido.", n));
|
|
100
|
+
}
|
|
101
|
+
export {
|
|
102
|
+
r as a,
|
|
103
|
+
d as v
|
|
104
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function d(e){if(e.disabled)return{valido:!0,flags:{},mensagem:""};if(e.customError&&e.customError.trim()!=="")return{valido:!1,flags:{customError:!0},mensagem:e.customError};const{val:a,rawVal:n,badInput:s,required:u,tipo:l="text",mensagemValidacao:t}=e;if(s||l==="number"&&n&&isNaN(Number(n)))return{valido:!1,flags:{badInput:!0},mensagem:t||"Insira um número válido."};if(u&&a.trim()==="")return{valido:!1,flags:{valueMissing:!0},mensagem:t||"Preencha este campo."};if(a==="")return{valido:!0,flags:{},mensagem:""};if(e.minlength!==null&&e.minlength!==void 0&&!isNaN(e.minlength)&&a.length<e.minlength)return{valido:!1,flags:{tooShort:!0},mensagem:t||`Use pelo menos ${e.minlength} caracteres (atualmente você está usando ${a.length}).`};if(e.maxlength!==null&&e.maxlength!==void 0&&!isNaN(e.maxlength)&&a.length>e.maxlength)return{valido:!1,flags:{tooLong:!0},mensagem:t||`Reduza o texto para no máximo ${e.maxlength} caracteres (atualmente você está usando ${a.length}).`};if(e.pattern)try{if(!new RegExp(`^(?:${e.pattern})$`).test(a))return{valido:!1,flags:{patternMismatch:!0},mensagem:t||"O valor não corresponde ao padrão solicitado."}}catch{}if(l==="email"&&!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test(a))return{valido:!1,flags:{typeMismatch:!0},mensagem:t||"Insira um endereço de e-mail válido."};if(l==="url")try{new URL(a)}catch{return{valido:!1,flags:{typeMismatch:!0},mensagem:t||"Insira uma URL válida."}}if(l==="number"){const i=Number(a);if(isNaN(i))return{valido:!1,flags:{badInput:!0},mensagem:t||"Insira um número válido."};if(e.min!==null&&e.min!==void 0&&!isNaN(e.min)&&i<e.min)return{valido:!1,flags:{rangeUnderflow:!0},mensagem:t||`O valor deve ser maior ou igual a ${e.min}.`};if(e.max!==null&&e.max!==void 0&&!isNaN(e.max)&&i>e.max)return{valido:!1,flags:{rangeOverflow:!0},mensagem:t||`O valor deve ser menor ou igual a ${e.max}.`};if(e.step&&e.step!=="any"){const m=parseFloat(e.step);if(!isNaN(m)&&m>0){const f=e.min!==null&&e.min!==void 0&&!isNaN(e.min)?e.min:0,o=Math.abs((i-f)%m);if(o>1e-6&&Math.abs(o-m)>1e-6)return{valido:!1,flags:{stepMismatch:!0},mensagem:t||"Insira um valor válido de acordo com o intervalo."}}}}return{valido:!0,flags:{},mensagem:""}}function r(e,a,n){!e||typeof e.setValidity!="function"||(a.valido?e.setValidity({}):e.setValidity(a.flags,a.mensagem||"Valor inválido.",n))}exports.aplicarValidadeInternals=r;exports.validarRestricoesCampoTexto=d;
|
package/dist/forms.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const a=require("./ui-campo-texto-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const a=require("./ui-campo-texto-DauJCde3.cjs"),e=require("./ui-switch-D9a8XlVX.cjs");exports.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO=a.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO;exports.UICampoTexto=a.UICampoTexto;exports.UIInput=a.UIInput;exports.criarTemplateCampoTexto=a.criarTemplateCampoTexto;exports.sincronizarFeedbackErro=a.sincronizarFeedbackErro;exports.sincronizarIconeSenha=a.sincronizarIconeSenha;exports.sincronizarLabelEPlaceholder=a.sincronizarLabelEPlaceholder;exports.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE=e.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE;exports.ListaFlutuantePosicionamento=e.ListaFlutuantePosicionamento;exports.ListaFlutuanteTeclado=e.ListaFlutuanteTeclado;exports.RadioGrupoRegistry=e.RadioGrupoRegistry;exports.UICheckbox=e.UICheckbox;exports.UIListaFlutuante=e.UIListaFlutuante;exports.UIRadio=e.UIRadio;exports.UISelect=e.UISelect;exports.UISwitch=e.UISwitch;exports.UIToggle=e.UIToggle;exports.atualizarEstadoSelecaoLista=e.atualizarEstadoSelecaoLista;exports.criarTemplateListaFlutuante=e.criarTemplateListaFlutuante;exports.renderizarItensLista=e.renderizarItensLista;
|
package/dist/forms.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import { A as t, U as o, a as r, c as i, s as n, b as c, d as T } from "./ui-campo-texto-
|
|
3
|
-
import { A as I, L as U, a as u, R as S, U as L, b as d, c as p, d as A, e as m, f as O, g as R, h as E, r as F } from "./ui-switch-
|
|
2
|
+
import { A as t, U as o, a as r, c as i, s as n, b as c, d as T } from "./ui-campo-texto-B_OHVGiN.js";
|
|
3
|
+
import { A as I, L as U, a as u, R as S, U as L, b as d, c as p, d as A, e as m, f as O, g as R, h as E, r as F } from "./ui-switch-DO1R0Ce7.js";
|
|
4
4
|
export {
|
|
5
5
|
t as ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO,
|
|
6
6
|
I as ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { default as L } from 'leaflet';
|
|
2
|
+
import { nosDaGeometria } from './feature_curvas';
|
|
2
3
|
import { GeometriaFeicao, NoCurva } from './feature_types';
|
|
3
4
|
/** Linha cujo traçado é a curva `nos`. */
|
|
4
5
|
export declare class LinhaCurva extends L.Polyline {
|
|
@@ -13,8 +14,7 @@ export declare class PoligonoCurvo extends L.Polygon {
|
|
|
13
14
|
definirCurva(nos: NoCurva[] | null): void;
|
|
14
15
|
protected _updatePath(): void;
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
export declare function nosDaGeometria(g: GeometriaFeicao): NoCurva[] | null;
|
|
17
|
+
export { nosDaGeometria };
|
|
18
18
|
/** Cria a camada Leaflet de uma linha/polígono com `curva`, ou `null` se a geometria não é curva. */
|
|
19
19
|
export declare function criarCamadaCurva(g: GeometriaFeicao, opcoes: L.PolylineOptions): LinhaCurva | PoligonoCurvo | null;
|
|
20
20
|
/** Atualiza uma camada criada por `criarCamadaCurva` (curva primeiro, depois os vértices, que redesenham). */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LatLonPar, NoCurva } from './feature_types';
|
|
1
|
+
import { GeometriaFeicao, LatLonPar, NoCurva } from './feature_types';
|
|
2
2
|
export type { NoCurva };
|
|
3
3
|
/** Subdivisões por segmento ao gerar os vértices de apoio (métricas, snap, seleção). */
|
|
4
4
|
export declare const PASSOS_CURVA = 24;
|
|
@@ -41,3 +41,5 @@ export declare function caminhoSvg(nos: readonly NoCurva[], fechada: boolean, pr
|
|
|
41
41
|
export declare function normalizarNos(bruto: unknown, minimo?: number): NoCurva[] | null;
|
|
42
42
|
/** Cópia dos nós com todos os pontos deslocados (usado ao mover/copiar a feição). */
|
|
43
43
|
export declare function moverNos(nos: readonly NoCurva[], mover: (p: LatLonPar) => LatLonPar): NoCurva[];
|
|
44
|
+
/** A geometria deve ser desenhada como curva? Linha simples ou polígono de um anel, com `curva`. */
|
|
45
|
+
export declare function nosDaGeometria(g: GeometriaFeicao): NoCurva[] | null;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CaixaGeo } from './feature_indice';
|
|
2
|
+
/** Abaixo desta diagonal (px) a feição é desenhada como marca. */
|
|
3
|
+
export declare const LIMITE_MARCA_PX = 3;
|
|
4
|
+
/** Opacidade da marca (preenchimentos de 0,2 sumiriam em 1–2 px). */
|
|
5
|
+
export declare const OPACIDADE_MARCA = 0.75;
|
|
6
|
+
export interface PontoMundo {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}
|
|
10
|
+
/** Web Mercator (EPSG:3857, tiles de 256 px) em pixels do mundo no zoom. Não lança: entradas inválidas dão NaN. */
|
|
11
|
+
export declare function projetarMercator(lat: number, lon: number, zoom: number): PontoMundo;
|
|
12
|
+
/** Diagonal da caixa em pixels no zoom; NaN se a caixa ou o zoom forem inválidos. */
|
|
13
|
+
export declare function diagonalPx(c: CaixaGeo, zoom: number): number;
|
|
14
|
+
/** Vira marca? Caixa ausente ou inválida nunca vira (a feição segue o caminho normal). */
|
|
15
|
+
export declare function ehMarca(c: CaixaGeo | undefined, zoom: number, limite?: number): boolean;
|
|
16
|
+
/** Lado da marca em px: 1 para diagonais minúsculas, 2 para as demais. */
|
|
17
|
+
export declare function ladoMarca(diagonal: number): 1 | 2;
|
|
18
|
+
export interface MarcaLOD {
|
|
19
|
+
id: string;
|
|
20
|
+
lat: number;
|
|
21
|
+
lon: number;
|
|
22
|
+
cor: string;
|
|
23
|
+
lado: 1 | 2;
|
|
24
|
+
/** Quem gerou a marca (identidade da feição): o renderizador só a refaz quando a feição troca. */
|
|
25
|
+
fonte: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** Parte do Canvas 2D que a pintura usa (permite testar com um contexto falso). */
|
|
28
|
+
export interface ContextoMarcas {
|
|
29
|
+
fillStyle: string | CanvasGradient | CanvasPattern;
|
|
30
|
+
globalAlpha: number;
|
|
31
|
+
fillRect(x: number, y: number, w: number, h: number): void;
|
|
32
|
+
}
|
|
33
|
+
export declare function agruparMarcasPorCor(marcas: Iterable<MarcaLOD>): Map<string, MarcaLOD[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Pinta as marcas em lote por cor (um `fillStyle` por grupo). `origemX/origemY` são os pixels do mundo, no zoom,
|
|
36
|
+
* do canto superior esquerdo do canvas. Devolve quantas marcas caíram dentro do canvas.
|
|
37
|
+
*/
|
|
38
|
+
export declare function pintarMarcas(ctx: ContextoMarcas, marcas: Iterable<MarcaLOD>, zoom: number, origemX: number, origemY: number, largura: number, altura: number): number;
|
|
@@ -13,6 +13,8 @@ export interface DependenciasPopup {
|
|
|
13
13
|
obterMapa: () => L.Map | null;
|
|
14
14
|
obterCamada: (camadaId: string) => CanvasLayerDef | undefined;
|
|
15
15
|
aoAcao: (acao: AcaoFeicao, feicao: Feicao) => void;
|
|
16
|
+
/** Executa a abertura como pedido explícito (o portão de popups do mapa deixa passar). Sem ele, abre direto. */
|
|
17
|
+
liberar?: <T>(fn: () => T) => T;
|
|
16
18
|
}
|
|
17
19
|
export declare class FeicaoPopup {
|
|
18
20
|
private dep;
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { GeometriaFeicao, LatLonPar } from './feature_types';
|
|
2
|
-
/** A partir deste zoom a geometria é desenhada completa. */
|
|
3
|
-
export declare const ZOOM_SEM_SIMPLIFICACAO =
|
|
4
|
-
/**
|
|
5
|
-
export declare const MIN_VERTICES_SIMPLIFICAR =
|
|
6
|
-
/** Tolerância em graus para o zoom; 0 = sem simplificar. */
|
|
2
|
+
/** A partir deste zoom a geometria é desenhada completa (a tolerância de 1,2 px já é menor que 1,5 m). */
|
|
3
|
+
export declare const ZOOM_SEM_SIMPLIFICACAO = 17;
|
|
4
|
+
/** Só se simplifica feição com MAIS de 8 vértices; abaixo disso o ganho não paga a alocação. */
|
|
5
|
+
export declare const MIN_VERTICES_SIMPLIFICAR = 9;
|
|
6
|
+
/** Tolerância em graus de LONGITUDE para o zoom (1 px = 360 / (256·2^z) graus); 0 = sem simplificar ou zoom inválido. */
|
|
7
7
|
export declare function toleranciaPorZoom(zoom: number): number;
|
|
8
|
-
/**
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Em Web Mercator 1 px de latitude vale cos(lat) grau de latitude por grau de longitude: sem este fator a tolerância
|
|
10
|
+
* vertical em graus ficaria 1/cos(lat) vezes maior que a pretendida (2× a 60°). Latitude inválida → 1.
|
|
11
|
+
*/
|
|
12
|
+
export declare function escalaLatitude(lat: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Douglas-Peucker iterativo (sem recursão: linhas com centenas de milhares de vértices). `escalaLat` multiplica as
|
|
15
|
+
* diferenças de latitude antes de medir (ver `escalaLatitude`); 1 mede em graus puros.
|
|
16
|
+
*/
|
|
17
|
+
export declare function simplificarLinha(pts: LatLonPar[], tolerancia: number, escalaLat?: number): LatLonPar[];
|
|
10
18
|
/** Anel aberto: mantém pelo menos 3 vértices (senão volta o original). */
|
|
11
|
-
export declare function simplificarAnel(anel: LatLonPar[], tolerancia: number): LatLonPar[];
|
|
19
|
+
export declare function simplificarAnel(anel: LatLonPar[], tolerancia: number, escalaLat?: number): LatLonPar[];
|
|
12
20
|
/** Curvas não se simplificam: os vértices de apoio só medem, o desenho é calculado a partir dos nós. */
|
|
13
21
|
export declare function vertices(g: GeometriaFeicao): number;
|
|
14
22
|
/** Geometria para desenho no zoom dado; devolve a própria `g` quando não há o que simplificar. */
|
|
@@ -10,6 +10,13 @@ export * from './renderers/vector_points_renderer';
|
|
|
10
10
|
export * from './renderers/vector_polygons_renderer';
|
|
11
11
|
export * from './renderers/grid_renderer';
|
|
12
12
|
export * from './renderers/feicoes_renderer';
|
|
13
|
+
export * from './renderers/feicoes_canvas_renderer';
|
|
14
|
+
export * from './renderers/feicoes_despachante';
|
|
15
|
+
export * from './renderers/renderizador_feicoes_tipos';
|
|
16
|
+
export * from './renderers/renderizador_formas';
|
|
17
|
+
export * from './renderers/canvas_formas_leaflet';
|
|
18
|
+
export * from './feature_lod';
|
|
19
|
+
export * from './motor';
|
|
13
20
|
export * from './feature_metricas';
|
|
14
21
|
export * from './layer_hit_test';
|
|
15
22
|
export * from './feature_caixa';
|
|
@@ -15,7 +15,29 @@ export interface CandidatoHit {
|
|
|
15
15
|
distancia: number;
|
|
16
16
|
/** Área do envelope em px²; só usada para desempatar áreas. */
|
|
17
17
|
area: number;
|
|
18
|
+
/** Só nas feições vindas de uma `FonteHit` (marcas de LOD, que não são objetos Leaflet): a feição e a chave dela. */
|
|
19
|
+
feicao?: unknown;
|
|
20
|
+
chave?: string;
|
|
18
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Candidatos que não são objetos Leaflet (as marcas de LOD do renderizador de feições). A camada registra a fonte e o
|
|
24
|
+
* clique central as inclui no mesmo empilhamento (prioridade, camada do topo, menor área, alternância de cliques).
|
|
25
|
+
* O evento `click` é disparado em `alvo`, com a feição em `feicaoHit`.
|
|
26
|
+
*/
|
|
27
|
+
export interface FonteHit {
|
|
28
|
+
alvo: L.Layer;
|
|
29
|
+
/** Feições sob `ponto` (ponto de camada do mapa), da melhor para a pior. Não pode lançar. */
|
|
30
|
+
consultar(ponto: L.Point): Array<{
|
|
31
|
+
feicao: unknown;
|
|
32
|
+
chave: string;
|
|
33
|
+
tipo: TipoGeometriaPane;
|
|
34
|
+
distancia: number;
|
|
35
|
+
area: number;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
export declare function registrarFonteHit(map: L.Map, camadaId: string, fonte: FonteHit): void;
|
|
39
|
+
/** Remove a fonte da camada (só se ainda for `fonte`, para uma camada recriada não perder a nova). */
|
|
40
|
+
export declare function removerFonteHit(map: L.Map, camadaId: string, fonte: FonteHit): void;
|
|
19
41
|
/**
|
|
20
42
|
* Todas as feições sob o ponto, na ordem em que um clique deve escolhê-las
|
|
21
43
|
* (a primeira é a que o clique simples seleciona). Serve também para hover, menu de contexto e conta-gotas.
|
|
@@ -17,6 +17,11 @@ export declare class CanvasLayerManager {
|
|
|
17
17
|
attachMap(map: L.Map, context: CanvasRenderContext): void;
|
|
18
18
|
ensurePanes(): void;
|
|
19
19
|
renderAllLayers(apenasDependentesDoContexto?: boolean): void;
|
|
20
|
+
/**
|
|
21
|
+
* Destrói e recria as instâncias das camadas visíveis de um tipo (ex.: troca do renderizador das camadas de
|
|
22
|
+
* feições). Os dados, a seleção e as definições ficam: só o desenho é refeito, as demais camadas não são tocadas.
|
|
23
|
+
*/
|
|
24
|
+
recriarCamadasDoTipo(tipo: string): void;
|
|
20
25
|
/** Executa agora o render agendado por updateContext/setGraphicScale, se houver. */
|
|
21
26
|
flushRender(): void;
|
|
22
27
|
private agendarRender;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { default as L } from 'leaflet';
|
|
2
2
|
import { MapaConfigManager } from './mapa_config';
|
|
3
3
|
import { MapaConfiguracoes } from './types';
|
|
4
|
+
import { PortaoPopups, ModoPopups } from './popup_gate';
|
|
4
5
|
export interface MapaCoreControllerRef {
|
|
5
6
|
modoCliqueSequencialAtivo?: boolean;
|
|
6
7
|
canvasInteracao?: {
|
|
@@ -19,7 +20,12 @@ export declare class MapaCore {
|
|
|
19
20
|
private containerElement;
|
|
20
21
|
private bc?;
|
|
21
22
|
private sigefState;
|
|
23
|
+
/** Decide quando os popups do mapa abrem (ver `popup_gate.ts`). Existe enquanto houver mapa. */
|
|
24
|
+
popups: PortaoPopups | null;
|
|
25
|
+
private modoPopups;
|
|
22
26
|
constructor(controller: MapaCoreControllerRef);
|
|
27
|
+
/** Vale já, ou assim que o mapa for criado (o atributo `popups` pode ser lido antes do mapa existir). */
|
|
28
|
+
definirModoPopups(modo: ModoPopups): void;
|
|
23
29
|
init(containerIdOrElement: string | HTMLElement): L.Map | null;
|
|
24
30
|
invalidateSize(animate?: boolean): void;
|
|
25
31
|
private applyMapStyles;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Feicao } from '../feature_types';
|
|
2
|
+
import { IndiceEspacial } from '../feature_indice';
|
|
3
|
+
import { DeltaMotor, RegraVisivel } from './tipos';
|
|
4
|
+
export interface ResultadoMudanca {
|
|
5
|
+
mudadas: string[];
|
|
6
|
+
removidas: string[];
|
|
7
|
+
/** O conjunto de entidades com oficial mudou (com prévias na camada): a visibilidade de outras feições pode mudar. */
|
|
8
|
+
oficiaisMudou: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class DadosCamada {
|
|
11
|
+
readonly loja: Map<string, Feicao>;
|
|
12
|
+
readonly indice: IndiceEspacial;
|
|
13
|
+
/** Muda a cada alteração dos dados (invalida cache de geometria por feição). */
|
|
14
|
+
revisao: number;
|
|
15
|
+
/** Muda quando o agrupamento e a contagem de pontos precisam ser refeitos do zero. */
|
|
16
|
+
revisaoBase: number;
|
|
17
|
+
listaSincronizada: Feicao[] | null;
|
|
18
|
+
/** Entidades com geometria oficial, e quantas oficiais cada uma tem. */
|
|
19
|
+
oficiais: Set<string>;
|
|
20
|
+
private contOficiais;
|
|
21
|
+
/** Entidade -> quantas prévias (entidade com oficial E prévia forma um par: sempre em detalhe completo). */
|
|
22
|
+
contPrevias: Map<string, number>;
|
|
23
|
+
nPrevias: number;
|
|
24
|
+
readonly selecionadas: Set<string>;
|
|
25
|
+
regra: RegraVisivel | null;
|
|
26
|
+
/** Revisão por feição (id → número crescente): chave do cache de geometria projetada. */
|
|
27
|
+
private revisaoDe;
|
|
28
|
+
private contador;
|
|
29
|
+
revisaoDaFeicao(id: string): number;
|
|
30
|
+
/** Aparece segundo a regra (não oculta e visível por versão)? */
|
|
31
|
+
desenhavel(f: Feicao): boolean;
|
|
32
|
+
/** Visível pela regra de versões (ignora `oculta`: o hit-test e a seleção seguem regras próprias). */
|
|
33
|
+
visivelPorVersao(f: Feicao): boolean;
|
|
34
|
+
/** Troca total: diferencia contra a loja, mantém o índice e a contabilidade de versões. */
|
|
35
|
+
sincronizar(lista: Feicao[]): ResultadoMudanca;
|
|
36
|
+
private recontarOficiais;
|
|
37
|
+
/** Aplica só a diferença. Devolve `null` se o delta não parte da lista sincronizada (então use `sincronizar`). */
|
|
38
|
+
aplicarDelta(lista: Feicao[], delta: DeltaMotor): ResultadoMudanca | null;
|
|
39
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Feicao } from '../feature_types';
|
|
2
|
+
import { LayerStyleDef } from '../types';
|
|
3
|
+
export declare const COR_PADRAO = "#38bdf8";
|
|
4
|
+
export declare const COR_SELECAO = "#38bdf8";
|
|
5
|
+
/** Cores vão para atributos style/canvas; só passam formatos conhecidos (hex, rgb/hsl, nome). */
|
|
6
|
+
export declare function corSegura(cor: string | undefined, padrao: string): string;
|
|
7
|
+
export interface EstiloVetor {
|
|
8
|
+
/** Cor do traço (contorno). */
|
|
9
|
+
cor: string;
|
|
10
|
+
/** Desenha o traço? (`espessuraContorno: 0` em ponto o desliga). */
|
|
11
|
+
traco: boolean;
|
|
12
|
+
peso: number;
|
|
13
|
+
/** `dashArray` do Leaflet/SVG ("6 4"), ou `undefined` para linha contínua. */
|
|
14
|
+
dash: string | undefined;
|
|
15
|
+
preencher: boolean;
|
|
16
|
+
corPreenchimento: string;
|
|
17
|
+
opacidadePreenchimento: number;
|
|
18
|
+
}
|
|
19
|
+
/** Estilo de uma feição vetorial (polígono, círculo, linha ou ponto sem ícone). */
|
|
20
|
+
export declare function estiloVetorDe(f: Feicao, camada: LayerStyleDef, selecionada?: boolean): EstiloVetor;
|
|
21
|
+
/** Raio, em px, do círculo de um ponto sem ícone. */
|
|
22
|
+
export declare function raioPontoPx(f: Feicao, camada: LayerStyleDef): number;
|
|
23
|
+
/** Interna estilos iguais: o renderizador agrupa por identidade do objeto (um fill/stroke por estilo). */
|
|
24
|
+
export declare class InternadorEstilos {
|
|
25
|
+
private porChave;
|
|
26
|
+
interno(e: EstiloVetor): EstiloVetor;
|
|
27
|
+
limpar(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { LatLonPar } from '../feature_types';
|
|
2
|
+
/** Pixels de mundo da latitude/longitude no zoom, gravados em `saida[i]` (x) e `saida[i + 1]` (y). Não lança. */
|
|
3
|
+
export declare function projetarEm(saida: Float64Array, i: number, lat: number, lon: number, escala: number): void;
|
|
4
|
+
export declare const escalaDoZoom: (zoom: number) => number;
|
|
5
|
+
/** Inverso de `projetarEm`: pixels de mundo no zoom → [lat, lon]. */
|
|
6
|
+
export declare function latLonDoMundo(x: number, y: number, zoom: number): LatLonPar;
|
|
7
|
+
/** Projeta uma lista de [lat, lon]. */
|
|
8
|
+
export declare function projetarVertices(coords: ReadonlyArray<LatLonPar>, zoom: number): Float64Array;
|
|
9
|
+
export declare function projetarCentro(lat: number, lon: number, zoom: number): Float64Array;
|
|
10
|
+
/** Metros por pixel na latitude e no zoom. */
|
|
11
|
+
export declare function metrosPorPixel(lat: number, zoom: number): number;
|
|
12
|
+
/** Raio, em pixels, de um círculo de `raioMetros` com centro na latitude (raio por zoom e latitude). */
|
|
13
|
+
export declare function raioCirculoPx(lat: number, raioMetros: number, zoom: number): number;
|
|
14
|
+
export interface CaixaMundoPx {
|
|
15
|
+
minX: number;
|
|
16
|
+
minY: number;
|
|
17
|
+
maxX: number;
|
|
18
|
+
maxY: number;
|
|
19
|
+
}
|
|
20
|
+
/** Envelope em px de vários arrays planos; `null` se não houver nenhum vértice finito. */
|
|
21
|
+
export declare function caixaPx(partes: ReadonlyArray<Float64Array>): CaixaMundoPx | null;
|
|
22
|
+
/**
|
|
23
|
+
* Douglas-Peucker iterativo em pixels (tolerância em px, sem cos(lat): as coordenadas já são de tela). `fechado`
|
|
24
|
+
* trata o anel como fechado (o corte não depende de onde ele "começa") e nunca devolve menos de 3 vértices (senão
|
|
25
|
+
* volta o original). Tolerância inválida (≤ 0, NaN) devolve a própria entrada.
|
|
26
|
+
*/
|
|
27
|
+
export declare function simplificarPx(pts: Float64Array, tolerancia: number, fechado: boolean): Float64Array;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Feicao, LatLonPar } from '../feature_types';
|
|
2
|
+
import { CaixaGeo } from '../feature_indice';
|
|
3
|
+
import { CamadaDesenho, DefCamadaMotor, DeltaMotor, EstatisticasCamada, ListaDesenho, RegraVisivel, Vista } from './tipos';
|
|
4
|
+
/** Que parte da lista o chamador quer: o que se pinta no canvas, os marcadores DOM, ou tudo. */
|
|
5
|
+
export type ParteLista = 'tudo' | 'canvas' | 'dom';
|
|
6
|
+
export declare class MotorFormas {
|
|
7
|
+
private camadas;
|
|
8
|
+
private regra;
|
|
9
|
+
/** Cria a camada ou atualiza a definição (estilo, zIndex, opacidade, visibilidade). */
|
|
10
|
+
definirCamada(def: DefCamadaMotor): void;
|
|
11
|
+
removerCamada(camadaId: string): void;
|
|
12
|
+
temCamada(camadaId: string): boolean;
|
|
13
|
+
definirRegra(regra: RegraVisivel | null): void;
|
|
14
|
+
/** A regra de versões mudou (prévias ligadas/desligadas): o conjunto desenhado e o agrupamento precisam ser refeitos. */
|
|
15
|
+
reavaliarVersoes(camadaId: string): void;
|
|
16
|
+
/** Troca total dos dados da camada (diferencia contra o que já existe). */
|
|
17
|
+
definirFeicoes(camadaId: string, lista: Feicao[]): void;
|
|
18
|
+
/**
|
|
19
|
+
* Mudança incremental: só vale se `delta.base` for a lista sincronizada por último; senão a camada é refeita
|
|
20
|
+
* por inteiro a partir de `lista`.
|
|
21
|
+
*/
|
|
22
|
+
aplicarDelta(camadaId: string, lista: Feicao[], delta: DeltaMotor): void;
|
|
23
|
+
private pontoVisivel;
|
|
24
|
+
private aposMudanca;
|
|
25
|
+
/** O agrupador do zoom atual acompanha os pontos que mudaram (células afetadas, sem reagrupar a camada). */
|
|
26
|
+
private manterAgrupador;
|
|
27
|
+
/** Define a seleção da camada. Devolve quem entrou e quem saiu (só o que mudou). */
|
|
28
|
+
selecionar(camadaId: string, ids: Iterable<string>): {
|
|
29
|
+
entrou: string[];
|
|
30
|
+
saiu: string[];
|
|
31
|
+
};
|
|
32
|
+
selecionadas(camadaId: string): ReadonlySet<string>;
|
|
33
|
+
/** Geometria provisória (arrasto de vértice): o canvas base deixa de desenhar a feição e a sobreposição a mostra. */
|
|
34
|
+
previsualizar(camadaId: string, f: Feicao): void;
|
|
35
|
+
temPrevia(camadaId: string, id: string): boolean;
|
|
36
|
+
/** Realce temporário (hover): as feições entram na sobreposição com `destaque: true`. */
|
|
37
|
+
destacar(camadaId: string, ids: Iterable<string>): void;
|
|
38
|
+
feicao(camadaId: string, id: string): Feicao | undefined;
|
|
39
|
+
caixaDe(camadaId: string, id: string): CaixaGeo | undefined;
|
|
40
|
+
/** Feições cujo envelope toca `caixa`, sem as ocultas (snap, hit-test, seleção por caixa). Não passa pelo LOD. */
|
|
41
|
+
consultarCaixa(camadaId: string, caixa: CaixaGeo): Feicao[];
|
|
42
|
+
feicaoVisivel(camadaId: string, f: Feicao): boolean;
|
|
43
|
+
estatisticas(camadaId: string): EstatisticasCamada | null;
|
|
44
|
+
/** Entidades da camada com prévia e com oficial (pares em detalhe completo): para testes e diagnóstico. */
|
|
45
|
+
ehPar(camadaId: string, f: Feicao): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* O que desenhar nesta vista, camada a camada, na ordem de empilhamento (a última fica por cima).
|
|
48
|
+
* `parte`: `'canvas'` só o que se pinta no canvas (marcas, formas, pontos sem ícone), `'dom'` só marcadores DOM e
|
|
49
|
+
* curvas (clusters, ícones, textos, rótulos), `'tudo'` (padrão) os dois. O pan incremental pede o canvas só das faixas
|
|
50
|
+
* expostas e o DOM da vista inteira (poucos itens, sem projetar nem simplificar formas).
|
|
51
|
+
*/
|
|
52
|
+
listaDesenho(vista: Vista, opcoes?: {
|
|
53
|
+
camadas?: string[];
|
|
54
|
+
parte?: ParteLista;
|
|
55
|
+
}): ListaDesenho;
|
|
56
|
+
private origemDe;
|
|
57
|
+
private camadaVazia;
|
|
58
|
+
private prepararZoom;
|
|
59
|
+
private estiloDe;
|
|
60
|
+
private emPar;
|
|
61
|
+
/**
|
|
62
|
+
* Vira marca? Sempre em detalhe completo: com rótulo e em par oficial × prévia; ponto e texto nunca. A seleção NÃO
|
|
63
|
+
* entra aqui: o canvas base não depende dela (a sobreposição desenha a selecionada em detalhe completo por cima).
|
|
64
|
+
*/
|
|
65
|
+
private comoMarca;
|
|
66
|
+
/** Geometria projetada e simplificada em px, em cache por (feição, revisão, zoom). `null` se não há o que desenhar. */
|
|
67
|
+
private geometriaProjetada;
|
|
68
|
+
private construirGeometria;
|
|
69
|
+
/** Marca de LOD: centro do envelope, lado de 1–2 px, cor do preenchimento/contorno. */
|
|
70
|
+
private marcaDe;
|
|
71
|
+
/**
|
|
72
|
+
* Item da marca, em cache junto com a geometria por (feição, zoom). Com 100 mil marcas na tela, montar o item e internar
|
|
73
|
+
* o estilo a cada vista custava a maior parte da lista; no pan agora só se confere se algo mudou, sem alocar.
|
|
74
|
+
*/
|
|
75
|
+
private itemMarca;
|
|
76
|
+
private estiloMarca;
|
|
77
|
+
private agrupadorAtivo;
|
|
78
|
+
private itemBase;
|
|
79
|
+
/**
|
|
80
|
+
* A caixa da vista com uma folga de poucos px: o traço de uma feição com o envelope logo fora da vista ainda entra nela
|
|
81
|
+
* (o índice é por envelope). Sem isto, o pan incremental e o quadro completo divergem na borda do canvas.
|
|
82
|
+
*/
|
|
83
|
+
private caixaComFolga;
|
|
84
|
+
private listarCamada;
|
|
85
|
+
/**
|
|
86
|
+
* Clusters da vista (marcadores DOM). Selecionado nunca entra em cluster; o cluster só aparece com o centro dentro da
|
|
87
|
+
* vista e com 2 ou mais restantes. Os pontos individuais que a seleção solta (o selecionado e o único restante de uma
|
|
88
|
+
* célula) são da sobreposição: o canvas base não depende da seleção.
|
|
89
|
+
*/
|
|
90
|
+
private listarClusters;
|
|
91
|
+
/** O ponto está dentro de um cluster neste zoom (não é desenhado nem clicável individualmente)? */
|
|
92
|
+
pontoAgrupado(camadaId: string, id: string): boolean;
|
|
93
|
+
/** O ponto de uma célula de cluster aparece solto: está selecionado ou é o único restante não selecionado? */
|
|
94
|
+
private soltoDoCluster;
|
|
95
|
+
/** Membros (id e coordenada) da célula de cluster: o clique no cluster enquadra o grupo. */
|
|
96
|
+
membrosDoCluster(camadaId: string, chave: string): Array<{
|
|
97
|
+
id: string;
|
|
98
|
+
coordenada: LatLonPar;
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Itens da sobreposição: feições selecionadas, em edição ou destacadas, sempre em detalhe completo e com o estilo
|
|
102
|
+
* de seleção. Custo O(selecionadas): selecionar não repinta o canvas base.
|
|
103
|
+
*/
|
|
104
|
+
listaSobreposicao(camadaId: string, vista: Vista): CamadaDesenho | null;
|
|
105
|
+
/** A seleção da camada toca pontos sob agrupamento ativo? (então o conjunto de clusters muda e o base precisa refazer) */
|
|
106
|
+
selecaoAfetaAgrupamento(camadaId: string, ids: Iterable<string>): boolean;
|
|
107
|
+
}
|