@thibezer/ui-components-kit 2.8.2 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +146 -0
- package/README.md +32 -8
- package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
- package/dist/acessibilidade-CUlSXc2X.js +38 -0
- package/dist/altura-controle-ukMRPckR.cjs +1 -0
- package/dist/altura-controle-vxQiXG4q.js +62 -0
- package/dist/botao.cjs +1 -1
- package/dist/botao.js +1 -1
- package/dist/camadas.cjs +114 -110
- package/dist/camadas.js +1343 -1177
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +86 -85
- package/dist/canvas.js +5437 -4304
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
- package/dist/components/ui-badge/ui-badge.d.ts +2 -0
- package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +3 -1
- package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +23 -0
- package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +22 -0
- package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +3 -7
- package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
- package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
- package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
- package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
- package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
- package/dist/components/ui-camadas/camadas-host.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
- package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
- package/dist/components/ui-camadas/camadas-render.d.ts +15 -0
- package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
- package/dist/components/ui-camadas/camadas-selecao.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +8 -5
- package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +15 -0
- package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
- package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
- package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
- package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +28 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +39 -106
- package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
- package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
- package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
- package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +30 -1
- package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
- package/dist/components/ui-cores/tipos.d.ts +2 -0
- package/dist/components/ui-cores/ui-controle-cores.d.ts +8 -3
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +3 -1
- package/dist/components/ui-linha/index.d.ts +1 -0
- package/dist/components/ui-linha/ui-linha.d.ts +48 -0
- package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
- package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
- package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
- package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
- package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
- package/dist/components/ui-mapa/tipos.d.ts +13 -0
- package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
- package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
- package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
- package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
- package/dist/components/ui-modal/modal-foco.d.ts +28 -0
- package/dist/components/ui-modal/ui-modal.d.ts +1 -11
- package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
- package/dist/components/ui-radio/ui-radio.d.ts +9 -2
- package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
- package/dist/components/ui-switch/ui-switch.d.ts +3 -1
- package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
- package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
- package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
- package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
- package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
- package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
- package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
- package/dist/core/altura-controle.d.ts +34 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/opcoes.d.ts +9 -0
- package/dist/core/rotulo-controle.d.ts +13 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +28 -18
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +1 -1
- package/dist/custom-elements.json +22088 -16390
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +2 -2
- package/dist/form-validacao-BlQFxUVj.js +104 -0
- package/dist/form-validacao-DIeyQVH5.cjs +1 -0
- package/dist/forms.cjs +1 -1
- package/dist/forms.js +2 -2
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +0 -1
- package/dist/gerencigeo-canvas/curva_leaflet.d.ts +2 -2
- package/dist/gerencigeo-canvas/feature_curvas.d.ts +3 -1
- package/dist/gerencigeo-canvas/feature_lod.d.ts +38 -0
- package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
- package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +16 -8
- package/dist/gerencigeo-canvas/index.d.ts +7 -0
- package/dist/gerencigeo-canvas/layer_hit_test.d.ts +22 -0
- package/dist/gerencigeo-canvas/layer_manager.d.ts +5 -0
- package/dist/gerencigeo-canvas/mapa_core.d.ts +6 -0
- package/dist/gerencigeo-canvas/motor/dados-camada.d.ts +39 -0
- package/dist/gerencigeo-canvas/motor/estilo.d.ts +28 -0
- package/dist/gerencigeo-canvas/motor/geometria-px.d.ts +27 -0
- package/dist/gerencigeo-canvas/motor/index.d.ts +5 -0
- package/dist/gerencigeo-canvas/motor/motor-formas.d.ts +107 -0
- package/dist/gerencigeo-canvas/motor/tipos.d.ts +100 -0
- package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
- package/dist/gerencigeo-canvas/renderers/canvas_formas_leaflet.d.ts +87 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_canvas_renderer.d.ts +58 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_despachante.d.ts +31 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +48 -9
- package/dist/gerencigeo-canvas/renderers/marcadores_feicoes.d.ts +11 -0
- package/dist/gerencigeo-canvas/renderers/marcas_lod_layer.d.ts +19 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_feicoes_tipos.d.ts +44 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +95 -0
- package/dist/gerencigeo-canvas/renderers/selecao_visual.d.ts +6 -0
- package/dist/gerencigeo-canvas/types.d.ts +2 -0
- package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +179 -176
- package/dist/mapa.cjs +11 -16
- package/dist/mapa.js +242 -170
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/motor-BB6tB6U-.cjs +1 -0
- package/dist/motor-CFI84lM2.js +1301 -0
- package/dist/motor.cjs +1 -0
- package/dist/motor.d.ts +7 -0
- package/dist/motor.js +52 -0
- package/dist/opcoes-CJYLi6kd.js +12 -0
- package/dist/opcoes-CkyDxBuQ.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +11 -11
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +49 -8
- package/dist/tipos-react.d.ts +2 -0
- package/dist/tipos-vue.d.ts +45 -8
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-BWhoGgo9.js +197 -0
- package/dist/ui-badge-SIR81R9l.cjs +28 -0
- package/dist/ui-botao-D24oXySA.cjs +12 -0
- package/dist/ui-botao-Dsj08jjw.js +165 -0
- package/dist/{ui-campo-texto-Uu2dJE_0.js → ui-campo-texto-B_OHVGiN.js} +51 -51
- package/dist/ui-campo-texto-DauJCde3.cjs +16 -0
- package/dist/{ui-card-C_o5_0cB.js → ui-card-BNYCQ7g-.js} +50 -42
- package/dist/ui-card-BrjBL-yo.cjs +20 -0
- package/dist/ui-controle-cores-DgEza3wF.js +612 -0
- package/dist/ui-controle-cores-uY__TgwW.cjs +117 -0
- package/dist/ui-kit.css +1 -1
- package/dist/ui-linha-BYAX4W6x.cjs +19 -0
- package/dist/{ui-segmented-DyF5YLsV.js → ui-linha-aqLlaYi7.js} +209 -114
- package/dist/{ui-modal-DBOtSTbR.js → ui-modal-BkYvNP0G.js} +116 -140
- package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
- package/dist/{ui-paleta-ferramentas-DbwdWVtT.js → ui-paleta-ferramentas-BXXrI1Y7.js} +491 -431
- package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +21 -0
- package/dist/{ui-skeleton-W9uwIceA.js → ui-skeleton-B2Rgrv8o.js} +254 -191
- package/dist/{ui-skeleton-SPYqku8P.cjs → ui-skeleton-DiOxTBZK.cjs} +10 -10
- package/dist/ui-switch-D9a8XlVX.cjs +53 -0
- package/dist/{ui-switch-BcOqOkiV.js → ui-switch-DO1R0Ce7.js} +187 -128
- package/dist/{ui-tabela-propriedades-C-PeuW1i.cjs → ui-tabela-propriedades-CjK2gG14.cjs} +10 -10
- package/dist/{ui-tabela-propriedades-BokvDD3b.js → ui-tabela-propriedades-DoL4SE0r.js} +845 -826
- package/package.json +8 -3
- package/dist/form-validacao-BIOXxt-1.js +0 -140
- package/dist/form-validacao-ytRYSF3E.cjs +0 -1
- package/dist/svg-seguro-BsbNQqpd.js +0 -50
- package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
- package/dist/ui-badge-BxT-sDmV.cjs +0 -28
- package/dist/ui-badge-C0eKBI8E.js +0 -183
- package/dist/ui-botao-BOOnP8ds.cjs +0 -12
- package/dist/ui-botao-DfqSivHl.js +0 -165
- package/dist/ui-botao-OGJV6Vfk.js +0 -165
- package/dist/ui-botao-psS1juof.cjs +0 -12
- package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
- package/dist/ui-card-B86lJXTP.cjs +0 -20
- package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
- package/dist/ui-modal-CvGFGh1h.cjs +0 -18
- package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
- package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
- package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
- package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
- package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
- package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
- package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
- package/dist/ui-segmented-wUraId2e.js +0 -412
- package/dist/ui-skeleton-DI4_9WOX.js +0 -428
- package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
- package/dist/ui-switch-D7iPKDj-.cjs +0 -53
- package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
- package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
- package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
- package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
- package/dist/ui-toast-Bp_NlM5G.js +0 -156
- package/dist/ui-toast-DGTZKne5.cjs +0 -20
- package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
- package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos "emprestados" do Leaflet e do contexto do mapa usados pelo <ui-canvas-cad>.
|
|
3
|
+
* Responsabilidade única: descrever, em um só lugar, as formas dinâmicas que o código antes acessava com `as any`.
|
|
4
|
+
*/
|
|
5
|
+
/** Contêiner de mapa do Leaflet: o Leaflet marca o elemento com `_leaflet_id` ao inicializar. */
|
|
6
|
+
export type ContainerLeaflet = HTMLElement & {
|
|
7
|
+
_leaflet_id?: number;
|
|
8
|
+
};
|
|
9
|
+
export interface PontoPixelEvento {
|
|
10
|
+
x?: number;
|
|
11
|
+
y?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface LatLngEvento {
|
|
14
|
+
lat?: number;
|
|
15
|
+
lng?: number;
|
|
16
|
+
/** Alguns emissores usam `lon`. */
|
|
17
|
+
lon?: number;
|
|
18
|
+
}
|
|
19
|
+
/** Evento de mapa/DOM como chega ao canvas: pode ser do Leaflet (com `originalEvent`) ou um MouseEvent cru. */
|
|
20
|
+
export interface EventoMapaCad {
|
|
21
|
+
originalEvent?: EventoMapaCad;
|
|
22
|
+
target?: EventTarget | null;
|
|
23
|
+
composedPath?: () => EventTarget[];
|
|
24
|
+
clientX?: number;
|
|
25
|
+
clientY?: number;
|
|
26
|
+
containerPoint?: PontoPixelEvento;
|
|
27
|
+
layerPoint?: PontoPixelEvento;
|
|
28
|
+
latlng?: LatLngEvento;
|
|
29
|
+
}
|
|
30
|
+
/** Elemento com coordenadas em qualquer das grafias aceitas na entrada. */
|
|
31
|
+
export interface ElementoComCoordenadas {
|
|
32
|
+
lat?: number | string;
|
|
33
|
+
lon?: number | string;
|
|
34
|
+
lng?: number | string;
|
|
35
|
+
latitude?: number | string;
|
|
36
|
+
longitude?: number | string;
|
|
37
|
+
}
|
|
@@ -2,7 +2,12 @@ import { default as L } from 'leaflet';
|
|
|
2
2
|
import { Ponto, Segmento, BancoPonto, Confrontante, CanvasLayerState, CanvasGraphicScale, ScaleMode, PontoCAD, ConexaoCAD, PoligonoCAD, DestacarElementoOpcoes } from '../../gerencigeo-canvas/types';
|
|
3
3
|
import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
|
|
4
4
|
import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
|
|
5
|
+
import { ModoPopups } from '../../gerencigeo-canvas/popup_gate';
|
|
6
|
+
import { ModoRenderizador } from '../../gerencigeo-canvas/renderers/feicoes_despachante';
|
|
7
|
+
import { EstatisticasFeicoes } from '../../gerencigeo-canvas/renderers/renderizador_feicoes_tipos';
|
|
5
8
|
import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
|
|
9
|
+
import { EventoMapaCad, LatLngEvento } from './tipos';
|
|
10
|
+
import { PontoPixel } from './cad-evento-coordenadas';
|
|
6
11
|
import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes, ResultadoEdicao, ResultadoFerramenta } from './cad-feicoes';
|
|
7
12
|
import { EstiloFeicao, Feicao } from '../../gerencigeo-canvas/feature_types';
|
|
8
13
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
@@ -20,6 +25,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
20
25
|
private feicoes;
|
|
21
26
|
private barraFerramentas;
|
|
22
27
|
private hoverListeners;
|
|
28
|
+
private desligarAnuncios;
|
|
23
29
|
private layerItemListeners;
|
|
24
30
|
private initTimeout?;
|
|
25
31
|
private estilosExternos;
|
|
@@ -46,7 +52,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
46
52
|
definirEstilosExternos(css: EstilosExternos): void;
|
|
47
53
|
private initCAD;
|
|
48
54
|
private obterContextoEventos;
|
|
49
|
-
tratarCliqueLivreCanvas(e: MouseEvent |
|
|
55
|
+
tratarCliqueLivreCanvas(e: MouseEvent | EventoMapaCad, latLng?: LatLngEvento, pt?: PontoPixel): void;
|
|
50
56
|
dispararAcaoPopup(acaoId: string, elementoId: string | number, elemento?: any): void;
|
|
51
57
|
toggleLayersPanel(): void;
|
|
52
58
|
closeLayersPanel(): void;
|
|
@@ -69,6 +75,26 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
69
75
|
*/
|
|
70
76
|
get aceitarOrigem(): boolean;
|
|
71
77
|
set aceitarOrigem(val: boolean);
|
|
78
|
+
/**
|
|
79
|
+
* Quando os popups abrem (atributo `popups`): `sob-demanda` (padrão) só por duplo clique sobre a feição/camada ou por
|
|
80
|
+
* `abrirPopupFeicao()`, sem mover o mapa; `automatico` abre ao clicar e o Leaflet ajusta a vista (comportamento antigo);
|
|
81
|
+
* `desligado` só por `abrirPopupFeicao()`. Valor inválido usa o padrão.
|
|
82
|
+
*/
|
|
83
|
+
get popups(): ModoPopups;
|
|
84
|
+
set popups(val: ModoPopups);
|
|
85
|
+
/**
|
|
86
|
+
* Quem desenha as camadas de feições (atributo `renderizador`): `leaflet` (padrão; um objeto Leaflet por feição) ou
|
|
87
|
+
* `canvas` (motor sem DOM + Canvas 2D: um canvas por camada e um de sobreposição para seleção, formas minúsculas
|
|
88
|
+
* como marcas em lote, só um objeto Leaflet por marcador de ícone, texto, cluster e rótulo). Valor inválido usa
|
|
89
|
+
* `leaflet`. Ao mudar, as camadas de feições são recriadas; a API, os eventos e os dados não mudam.
|
|
90
|
+
*/
|
|
91
|
+
get renderizador(): ModoRenderizador;
|
|
92
|
+
set renderizador(val: ModoRenderizador);
|
|
93
|
+
/**
|
|
94
|
+
* Contadores do desenho de uma camada de feições (`total`, `materializadas`, `desenhadas`, `marcasLOD`, `clusters`,
|
|
95
|
+
* `canvases`, `renderizador`...), para diagnóstico e benchmark. `null` se a camada não está desenhada.
|
|
96
|
+
*/
|
|
97
|
+
estatisticasFeicoes(camadaId: string): EstatisticasFeicoes | null;
|
|
72
98
|
get modoSequencial(): boolean;
|
|
73
99
|
set modoSequencial(val: boolean);
|
|
74
100
|
get chaveGrupo(): string | undefined;
|
|
@@ -79,6 +105,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
79
105
|
set canalConfiguracao(val: string | null);
|
|
80
106
|
fitBounds(pontos?: Ponto[], padding?: [number, number], incluirVizinhos?: boolean): void;
|
|
81
107
|
zoomExtents(): void;
|
|
108
|
+
/** Seleciona o vértice. A vista só se move (e o popup abre) se `zoomLevel` for informado: é o pedido de "ir até o ponto". */
|
|
82
109
|
selectPonto(id: string | number, zoomLevel?: number): void;
|
|
83
110
|
selecionarPonto(id: string | number, zoomLevel?: number): void;
|
|
84
111
|
get pontosSelecionados(): (string | number)[];
|
|
@@ -203,6 +230,8 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
203
230
|
removerCursorRemoto(id: string): boolean;
|
|
204
231
|
limparCursoresRemotos(): void;
|
|
205
232
|
fecharPopupFeicao(): void;
|
|
233
|
+
/** Abre o popup da feição (pedido explícito, vale em qualquer modo de `popups`). `false` se ela não existe ou não está na tela. */
|
|
234
|
+
abrirPopupFeicao(camadaId: string, id: string): boolean;
|
|
206
235
|
/**
|
|
207
236
|
* Opções do popup. `copiarParaAreaDeTransferencia` (padrão `true`): a ação "copiar" também grava as coordenadas na área de
|
|
208
237
|
* transferência; com `false` só sai `cad-feicao-acao` e o consumidor decide (ex.: para mostrar o próprio aviso).
|
|
@@ -25,11 +25,14 @@ export declare class UICheckbox extends FormAssociatedElement {
|
|
|
25
25
|
set disabled(val: boolean);
|
|
26
26
|
get type(): string;
|
|
27
27
|
atualizarValidade(): void;
|
|
28
|
+
/** `focus()` no host leva o foco ao controle interno (necessário para o foco de validação do formulário). */
|
|
29
|
+
focus(options?: FocusOptions): void;
|
|
28
30
|
alternar(): void;
|
|
29
31
|
protected syncState(): void;
|
|
30
32
|
formResetCallback(): void;
|
|
31
|
-
formStateRestoreCallback(state:
|
|
33
|
+
formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
|
|
32
34
|
private handleClick;
|
|
35
|
+
private handleHostClick;
|
|
33
36
|
private handleKeyDown;
|
|
34
37
|
private handleFocus;
|
|
35
38
|
private handleBlur;
|
|
@@ -41,6 +41,8 @@ export interface OpcoesSeletorCor {
|
|
|
41
41
|
coresProjeto?: ValorCor[];
|
|
42
42
|
/** Substitui a paleta padrão. */
|
|
43
43
|
paleta?: ValorCor[];
|
|
44
|
+
/** Leva o foco do teclado para o painel ao abrir (ao fechar, o foco volta para a âncora). Padrão: `false`. */
|
|
45
|
+
focar?: boolean;
|
|
44
46
|
/** Cada alteração (pré-visualização, ainda não confirmada). */
|
|
45
47
|
aoAlterar?: (detalhe: DetalheSeletorCor) => void;
|
|
46
48
|
/** Ao fechar confirmando: Concluir, ✕, Enter no hexadecimal, Esc ou clique fora. */
|
|
@@ -79,11 +79,16 @@ export declare class UIControleCores extends SafeHTMLElement {
|
|
|
79
79
|
semCor(alvo?: AlvoCor): void;
|
|
80
80
|
/** Volta às cores de `padrao-preenchimento` e `padrao-traco`; emite `ui-cores-change` confirmado. */
|
|
81
81
|
restaurarPadrao(): void;
|
|
82
|
-
/** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). */
|
|
83
|
-
abrirSeletor(alvo?: AlvoCor): void;
|
|
84
|
-
/**
|
|
82
|
+
/** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). Com `focar`, leva o foco do teclado para o painel. */
|
|
83
|
+
abrirSeletor(alvo?: AlvoCor, focar?: boolean): void;
|
|
84
|
+
/**
|
|
85
|
+
* Fecha o seletor aberto por este controle. Com `confirmar` (padrão), grava o que foi editado;
|
|
86
|
+
* sem ele, cancela: as cores iniciais voltam (com um `ui-cores-change` não confirmado) e nada é confirmado.
|
|
87
|
+
*/
|
|
85
88
|
fecharSeletor(confirmar?: boolean): void;
|
|
86
89
|
private mudarAlvo;
|
|
90
|
+
/** Mantém a aba do seletor aberto igual ao alvo do controle. */
|
|
91
|
+
private sincronizarSeletor;
|
|
87
92
|
private aplicarDoSeletor;
|
|
88
93
|
private emitirCores;
|
|
89
94
|
private dica;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
2
|
import { AlvoCor, DetalheSeletorCor, OpcoesSeletorCor, SeletorCorAberto, ValorCor } from './tipos';
|
|
3
3
|
/** Configuração aceita por `UISeletorCor.configurar()` (as opções de `abrirSeletorCor` sem âncora e callbacks). */
|
|
4
|
-
export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
|
|
4
|
+
export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'focar' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
|
|
5
5
|
/**
|
|
6
6
|
* <ui-seletor-cor> — painel de cor no estilo Illustrator: abas Preenchimento/Traço, prévia
|
|
7
7
|
* antes × depois, hexadecimal, seletor do sistema, opacidade do preenchimento, cores do projeto,
|
|
@@ -51,6 +51,8 @@ export declare class UISeletorCor extends SafeHTMLElement {
|
|
|
51
51
|
private get opacidadeVisivel();
|
|
52
52
|
private renderizar;
|
|
53
53
|
private atualizarVisual;
|
|
54
|
+
/** `activeElement` lança em alguns DOMs simulados quando o foco está em outra árvore de sombra. */
|
|
55
|
+
private campoEmFoco;
|
|
54
56
|
private vincularEventos;
|
|
55
57
|
private emitir;
|
|
56
58
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ui-linha';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
export type AlinhamentoLinha = 'inicio' | 'centro' | 'fim' | 'esticar';
|
|
3
|
+
export type JustificacaoLinha = 'inicio' | 'centro' | 'fim' | 'entre' | 'ao-redor';
|
|
4
|
+
export type EspacoLinha = 'nenhum' | 'xs' | 'sm' | 'md' | 'lg';
|
|
5
|
+
/**
|
|
6
|
+
* Contêiner de controles na mesma linha: um único lugar define altura, alinhamento, espaço e quebra, e todos os
|
|
7
|
+
* filhos (`ui-botao`, `ui-campo-texto`, `ui-lista-flutuante`, `ui-segmented`, `ui-badge[controle]`...) se alinham sozinhos.
|
|
8
|
+
*
|
|
9
|
+
* A altura segue o contrato `--ui-campo-altura` (ver `core/altura-controle.ts`): `tamanho`/`altura` aqui valem para
|
|
10
|
+
* todos os filhos; um filho com `tamanho`/`altura` próprio vence só ele.
|
|
11
|
+
*
|
|
12
|
+
* @element ui-linha
|
|
13
|
+
*
|
|
14
|
+
* @attr {string} tamanho - Altura dos controles filhos: `sm` (26px), `md` (34px), `lg` (42px); aceita também `compacta`, `padrao`, `relaxada`.
|
|
15
|
+
* @attr {string} densidade - Sinônimo de `tamanho`.
|
|
16
|
+
* @attr {string} altura - Altura explícita dos controles filhos (px, rem ou em); vence `tamanho`.
|
|
17
|
+
* @attr {string} alinhar - Alinhamento vertical: `centro` (padrão), `inicio`, `fim`, `esticar`.
|
|
18
|
+
* @attr {string} justificar - Distribuição horizontal: `inicio` (padrão), `centro`, `fim`, `entre`, `ao-redor`.
|
|
19
|
+
* @attr {string} espaco - Espaço entre os filhos: `nenhum`, `xs`, `sm` (padrão), `md`, `lg`.
|
|
20
|
+
* @attr {boolean} sem-quebra - Não quebra para a linha de baixo (por padrão a linha quebra).
|
|
21
|
+
* @attr {boolean} inline - Ocupa só a largura do conteúdo (`inline-flex`).
|
|
22
|
+
*
|
|
23
|
+
* @slot - Os controles da linha. Qualquer filho com o atributo `expandir` ocupa o espaço restante.
|
|
24
|
+
*
|
|
25
|
+
* @cssprop --ui-linha-espaco - Espaço entre os filhos (substitui `espaco`).
|
|
26
|
+
* @cssprop --ui-linha-campo-base - Largura-base de campos e listas antes de quebrar (padrão `12rem`).
|
|
27
|
+
* @cssprop --ui-campo-altura - Altura dos controles filhos (definida por `tamanho`/`altura`).
|
|
28
|
+
*/
|
|
29
|
+
export declare class UILinha extends SafeHTMLElement {
|
|
30
|
+
static get observedAttributes(): string[];
|
|
31
|
+
constructor();
|
|
32
|
+
connectedCallback(): void;
|
|
33
|
+
attributeChangedCallback(_name: string, old: string | null, value: string | null): void;
|
|
34
|
+
private lerTexto;
|
|
35
|
+
private definirTexto;
|
|
36
|
+
get tamanho(): string | null;
|
|
37
|
+
set tamanho(v: string | null);
|
|
38
|
+
get altura(): string | null;
|
|
39
|
+
set altura(v: string | number | null);
|
|
40
|
+
get alinhar(): AlinhamentoLinha | null;
|
|
41
|
+
set alinhar(v: AlinhamentoLinha | null);
|
|
42
|
+
get justificar(): JustificacaoLinha | null;
|
|
43
|
+
set justificar(v: JustificacaoLinha | null);
|
|
44
|
+
get espaco(): EspacoLinha | null;
|
|
45
|
+
set espaco(v: EspacoLinha | null);
|
|
46
|
+
get semQuebra(): boolean;
|
|
47
|
+
set semQuebra(v: boolean);
|
|
48
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VistaMapa } from './tipos';
|
|
2
|
+
export declare const VISTA_PADRAO: VistaMapa;
|
|
3
|
+
export declare const COR_MARCADOR_PADRAO = "#00f5a0";
|
|
4
|
+
export declare const COR_LINHA_PADRAO = "#3388ff";
|
|
5
|
+
export declare const ESPESSURA_PADRAO = 3;
|
|
6
|
+
/** Lê lat/lng/zoom; cada campo inválido (ou fora de -90..90, -180..180, 0..22) cai no padrão. */
|
|
7
|
+
export declare function lerVista(lat: string | null, lng: string | null, zoom: string | null): VistaMapa;
|
|
8
|
+
export declare function lerInteiroPositivo(valor: string | null, padrao: number): number;
|
|
9
|
+
/** Aceita só cores CSS conhecidas (hex, rgb/hsl, nome); qualquer outra coisa vira `padrao`. Impede injeção em estilo/atributo. */
|
|
10
|
+
export declare function corSegura(cor: string | null | undefined, padrao: string): string;
|
|
11
|
+
/** Lista de camadas base pedidas, filtrada pelas conhecidas; vazia → `['osm']`. */
|
|
12
|
+
export declare function lerCamadas(texto: string | null, conhecidas: string[]): string[];
|
|
13
|
+
/** Interpreta `pontos` (JSON `[[lat, lng], ...]`); descarta pares inválidos e devolve `[]` se o JSON não for um array. */
|
|
14
|
+
export declare function lerPontos(texto: string | null): Array<[number, number]>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LeafletModulo } from './tipos';
|
|
2
|
+
/** `L` se o Leaflet já estiver carregado (global ou importado), senão `null`. */
|
|
3
|
+
export declare function obterLeaflet(): LeafletModulo | null;
|
|
4
|
+
/** Carrega o Leaflet sob demanda; `null` se não estiver instalado. */
|
|
5
|
+
export declare function carregarLeafletTipado(): Promise<LeafletModulo | null>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { default as L } from 'leaflet';
|
|
2
|
+
export interface OpcoesVinculo {
|
|
3
|
+
/** Nome da tag, só para as mensagens de aviso. */
|
|
4
|
+
rotulo: string;
|
|
5
|
+
/** O mapa do pai está pronto: crie a camada. */
|
|
6
|
+
aoMapa: (mapa: L.Map) => void;
|
|
7
|
+
/** O mapa anterior se foi (o pai o recriou): descarte a camada antiga. */
|
|
8
|
+
aoPerderMapa: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare class VinculoMapaPai {
|
|
11
|
+
private host;
|
|
12
|
+
private opcoes;
|
|
13
|
+
private pai;
|
|
14
|
+
private timer;
|
|
15
|
+
private tentativas;
|
|
16
|
+
constructor(host: HTMLElement, opcoes: OpcoesVinculo);
|
|
17
|
+
conectar(): void;
|
|
18
|
+
desconectar(): void;
|
|
19
|
+
private aoPronto;
|
|
20
|
+
private agendar;
|
|
21
|
+
private tentar;
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos compartilhados do <ui-mapa> e de seus filhos.
|
|
3
|
+
* Responsabilidade única: descrever o módulo do Leaflet e a vista padrão sem recorrer a `any`.
|
|
4
|
+
*/
|
|
5
|
+
import type * as Leaflet from 'leaflet';
|
|
6
|
+
/** O módulo do Leaflet (o `L` global). */
|
|
7
|
+
export type LeafletModulo = typeof Leaflet;
|
|
8
|
+
export interface VistaMapa {
|
|
9
|
+
lat: number;
|
|
10
|
+
lng: number;
|
|
11
|
+
zoom: number;
|
|
12
|
+
}
|
|
13
|
+
export type FormatoMarcador = 'pin' | 'circle';
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
/**
|
|
3
|
+
* Polilinha dentro de um `<ui-mapa>`.
|
|
4
|
+
*
|
|
5
|
+
* @attr {string} pontos - JSON `[[lat, lng], ...]`; pares inválidos são ignorados.
|
|
6
|
+
* @attr {string} cor - Cor do traço (hex, rgb/hsl ou nome; outro valor usa a cor padrão).
|
|
7
|
+
* @attr {number} espessura - Espessura em pixels (inteiro positivo; padrão 3).
|
|
8
|
+
*/
|
|
2
9
|
export declare class UIMapaLinha extends SafeHTMLElement {
|
|
3
10
|
static get observedAttributes(): string[];
|
|
4
11
|
private polyline;
|
|
5
|
-
private
|
|
6
|
-
private _retryCount;
|
|
12
|
+
private vinculo;
|
|
7
13
|
connectedCallback(): void;
|
|
8
14
|
disconnectedCallback(): void;
|
|
9
|
-
attributeChangedCallback(name: string, oldVal: string, newVal: string): void;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
15
|
+
attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
|
|
16
|
+
private estilo;
|
|
17
|
+
private removerLinha;
|
|
18
|
+
private criarLinha;
|
|
12
19
|
}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
/**
|
|
3
|
+
* Marcador dentro de um `<ui-mapa>`.
|
|
4
|
+
*
|
|
5
|
+
* @attr {number} lat - Latitude (inválida: o marcador não é criado).
|
|
6
|
+
* @attr {number} lng - Longitude.
|
|
7
|
+
* @attr {string} titulo - Texto do popup e nome acessível do marcador (aria-label e title).
|
|
8
|
+
* @attr {string} cor - Cor do ícone (hex, rgb/hsl ou nome; outro valor usa a cor padrão).
|
|
9
|
+
* @attr {'pin'|'circle'} formato - Forma do ícone (padrão `pin`).
|
|
10
|
+
*/
|
|
2
11
|
export declare class UIMapaMarcador extends SafeHTMLElement {
|
|
3
12
|
static get observedAttributes(): string[];
|
|
4
13
|
private marker;
|
|
5
|
-
private
|
|
6
|
-
private _retryCount;
|
|
7
|
-
private _parentMap;
|
|
14
|
+
private vinculo;
|
|
8
15
|
connectedCallback(): void;
|
|
9
16
|
disconnectedCallback(): void;
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
|
|
18
|
+
private removerMarcador;
|
|
12
19
|
private createPopupContent;
|
|
13
20
|
private createIcon;
|
|
14
|
-
|
|
21
|
+
/** O ícone é um `div`: o nome acessível vai em `aria-label` (o Leaflet já põe `role=button` e `tabindex=0`). */
|
|
22
|
+
private aplicarNomeAcessivel;
|
|
23
|
+
private criarMarcador;
|
|
15
24
|
}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { default as L } from 'leaflet';
|
|
2
2
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
3
|
+
/**
|
|
4
|
+
* Mapa Leaflet encapsulado. Aceita `<ui-mapa-marcador>` e `<ui-mapa-linha>` como filhos.
|
|
5
|
+
*
|
|
6
|
+
* @attr {number} lat - Latitude do centro (-90..90; inválida cai no padrão).
|
|
7
|
+
* @attr {number} lng - Longitude do centro (-180..180; inválida cai no padrão).
|
|
8
|
+
* @attr {number} zoom - Zoom inicial (0..22; inválido cai no padrão).
|
|
9
|
+
* @attr {string} camadas - Camadas base separadas por vírgula (`osm`, `satelite`, `topografia`, `ruas`).
|
|
10
|
+
* @attr {string} aria-label - Nome acessível da região do mapa (padrão: "Mapa").
|
|
11
|
+
* @fires ui-mapa-pronto - O mapa foi criado (`detail.map`); é emitido de novo se o elemento for reconectado.
|
|
12
|
+
*/
|
|
3
13
|
export declare class UIMapa extends SafeHTMLElement {
|
|
4
14
|
static get observedAttributes(): string[];
|
|
5
15
|
private mapContainer;
|
|
@@ -7,10 +17,13 @@ export declare class UIMapa extends SafeHTMLElement {
|
|
|
7
17
|
private _initTimer;
|
|
8
18
|
private _resizeObserver?;
|
|
9
19
|
private _resizeTimer?;
|
|
20
|
+
private _invalidarTimer?;
|
|
10
21
|
constructor();
|
|
11
22
|
connectedCallback(): void;
|
|
12
23
|
disconnectedCallback(): void;
|
|
13
|
-
attributeChangedCallback(
|
|
24
|
+
attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
|
|
25
|
+
/** Nome acessível da região: o `aria-label` do host ou "Mapa". */
|
|
26
|
+
private sincronizarRotulo;
|
|
14
27
|
private initMap;
|
|
15
28
|
getMap(): L.Map | null;
|
|
16
29
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Isolamento do <ui-modal> para tecnologias assistivas: `inert` em tudo o que está "atrás" do modal.
|
|
3
|
+
* Responsabilidade única: aplicar e desfazer o `inert`, preservando o que a página já tinha inerte.
|
|
3
4
|
*/
|
|
4
5
|
/**
|
|
5
|
-
* Aplica
|
|
6
|
+
* Aplica `inert` em todos os elementos da página que estejam "atrás" do modal,
|
|
6
7
|
* isolando o modal para tecnologias assistivas e interação de teclado/mouse.
|
|
8
|
+
* Devolve o conjunto afetado (os que já eram inertes ficam de fora, para não serem liberados depois).
|
|
7
9
|
*/
|
|
8
10
|
export declare function aplicarInertForaDoModal(modalElement: HTMLElement): Set<HTMLElement>;
|
|
9
|
-
/**
|
|
10
|
-
* Remove o estado 'inert' dos elementos afetados pelo modal quando este é fechado.
|
|
11
|
-
*/
|
|
11
|
+
/** Remove o estado `inert` dos elementos afetados pelo modal quando este é fechado. */
|
|
12
12
|
export declare function removerInertForaDoModal(elementosAfetados: Set<HTMLElement>): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foco do <ui-modal>: localizar controles focáveis, foco inicial e armadilha de foco (Tab / Shift+Tab).
|
|
3
|
+
* Responsabilidade única: decisões sobre foco; não abre nem fecha o modal.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SELETORES_FOCAVEIS = "a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), ui-campo-texto, ui-input, ui-botao, ui-botao-primario, ui-checkbox, ui-switch, ui-lista-flutuante, ui-radio, ui-select, ui-segmented";
|
|
6
|
+
/** Elemento realmente focado, atravessando Shadow DOMs (ex.: o <button> interno de um <ui-botao>). */
|
|
7
|
+
export declare function elementoAtivoProfundo(): HTMLElement | null;
|
|
8
|
+
/**
|
|
9
|
+
* `alvo` é `ativo` ou algum ancestral de `ativo`, subindo também pelos hosts de Shadow DOM.
|
|
10
|
+
* Necessário porque o foco costuma estar num botão interno de um componente (dentro do shadow do `alvo`).
|
|
11
|
+
*/
|
|
12
|
+
export declare function contemFoco(alvo: Node, ativo: Node | null): boolean;
|
|
13
|
+
export declare function ehFocavel(el: HTMLElement): boolean;
|
|
14
|
+
/** Focáveis do conteúdo projetado (corpo e rodapé), na ordem dos slots. */
|
|
15
|
+
export declare function focaveisDoConteudo(shadow: ShadowRoot): HTMLElement[];
|
|
16
|
+
/** Todos os focáveis do modal: os do próprio Shadow DOM (botão fechar, se visível) e depois os do conteúdo. */
|
|
17
|
+
export declare function focaveisDoModal(shadow: ShadowRoot): HTMLElement[];
|
|
18
|
+
/**
|
|
19
|
+
* Foco inicial: `[autofocus]`, senão o primeiro controle do conteúdo/rodapé.
|
|
20
|
+
* O botão "✕" não recebe o foco inicial, evitando fechar o modal com um Enter acidental;
|
|
21
|
+
* sem controles, o próprio diálogo é focado para que o leitor de tela anuncie o título.
|
|
22
|
+
*/
|
|
23
|
+
export declare function focarConteudoInicial(shadow: ShadowRoot, dialogo: HTMLElement): void;
|
|
24
|
+
/**
|
|
25
|
+
* Mantém o foco dentro do modal: no último controle, Tab volta ao primeiro; no primeiro, Shift+Tab vai ao último.
|
|
26
|
+
* Se o foco está fora do modal, é trazido de volta. Chame no `keydown` de Tab.
|
|
27
|
+
*/
|
|
28
|
+
export declare function prenderTab(e: KeyboardEvent, host: HTMLElement, shadow: ShadowRoot): void;
|
|
@@ -5,8 +5,8 @@ export declare class UIModal extends SafeHTMLElement {
|
|
|
5
5
|
private dialogElement;
|
|
6
6
|
private tituloElement;
|
|
7
7
|
private closeElement;
|
|
8
|
+
private ouvintes;
|
|
8
9
|
private _elementoGatilho;
|
|
9
|
-
private _focables;
|
|
10
10
|
private _tituloId;
|
|
11
11
|
/** Estado já aplicado (pilha, inert, scroll, eventos); difere de `aberto` durante uma transição. */
|
|
12
12
|
private _estaAberto;
|
|
@@ -26,19 +26,9 @@ export declare class UIModal extends SafeHTMLElement {
|
|
|
26
26
|
*/
|
|
27
27
|
private aoAbrir;
|
|
28
28
|
private aoFechar;
|
|
29
|
-
/**
|
|
30
|
-
* Foco inicial: `[autofocus]`, senão o primeiro controle do conteúdo/rodapé.
|
|
31
|
-
* O botão "✕" não recebe o foco inicial, evitando fechar o modal com um Enter acidental;
|
|
32
|
-
* sem controles, o próprio diálogo é focado para que o leitor de tela anuncie o título.
|
|
33
|
-
*/
|
|
34
|
-
private focarConteudoInicial;
|
|
35
29
|
private syncState;
|
|
36
30
|
private handleBackdropClick;
|
|
37
31
|
private handleCloseClick;
|
|
38
|
-
private static ehFocavel;
|
|
39
|
-
/** Focáveis do conteúdo projetado (corpo e rodapé), na ordem dos slots. */
|
|
40
|
-
private obterFocaveisDoConteudo;
|
|
41
|
-
private _atualizarFocables;
|
|
42
32
|
private handleKeyDown;
|
|
43
33
|
}
|
|
44
34
|
export declare class UIDialog extends UIModal {
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { UIRadio } from './ui-radio';
|
|
2
|
+
/**
|
|
3
|
+
* Grupos de radios por nome, dentro do escopo do formulário (ou da raiz, sem formulário).
|
|
4
|
+
* O registro de cada radio é guardado ao registrar: assim o cancelamento usa o nome e o escopo de ANTES,
|
|
5
|
+
* mesmo que o radio já tenha saído do formulário (disconnectedCallback roda depois da remoção) ou mudado de nome.
|
|
6
|
+
*/
|
|
2
7
|
export declare class RadioGrupoRegistry {
|
|
3
8
|
private static registry;
|
|
9
|
+
private static registros;
|
|
4
10
|
static getScopeNode(radio: HTMLElement): Node;
|
|
11
|
+
/** Registra (ou re-registra, se o nome ou o escopo mudaram) o radio no grupo do seu nome atual. */
|
|
5
12
|
static registrar(radio: UIRadio): void;
|
|
6
13
|
static desregistrar(radio: UIRadio): void;
|
|
14
|
+
/** Radios do mesmo grupo que `radio`, usando o registro (não o nome atual, que pode ainda não ter sido registrado). */
|
|
7
15
|
static obterRadiosDoGrupo(radio: UIRadio): UIRadio[];
|
|
8
16
|
static desmarcarOutros(radio: UIRadio): void;
|
|
17
|
+
/** Reavalia o tabindex (roving) dos radios; use depois de entrar, sair ou mudar de grupo. */
|
|
18
|
+
static atualizarGrupo(radios: UIRadio[]): void;
|
|
9
19
|
static tratarNavegacaoTeclado(e: KeyboardEvent, radioAtual: UIRadio): void;
|
|
10
20
|
}
|
|
@@ -3,11 +3,12 @@ export declare class UIRadio extends FormAssociatedElement {
|
|
|
3
3
|
static get observedAttributes(): string[];
|
|
4
4
|
containerElement: HTMLDivElement;
|
|
5
5
|
private labelElement;
|
|
6
|
+
private listeners;
|
|
6
7
|
private _defaultChecked;
|
|
7
8
|
constructor();
|
|
8
9
|
connectedCallback(): void;
|
|
9
10
|
disconnectedCallback(): void;
|
|
10
|
-
attributeChangedCallback(
|
|
11
|
+
attributeChangedCallback(nome: string, _old: string | null, _value: string | null): void;
|
|
11
12
|
get marcado(): boolean;
|
|
12
13
|
set marcado(val: boolean);
|
|
13
14
|
get name(): string;
|
|
@@ -18,10 +19,16 @@ export declare class UIRadio extends FormAssociatedElement {
|
|
|
18
19
|
atualizarValidade(): void;
|
|
19
20
|
focus(options?: FocusOptions): void;
|
|
20
21
|
selecionar(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Roving tabindex: só um radio do grupo entra na ordem de Tab (o marcado; sem marcado, o primeiro habilitado).
|
|
24
|
+
* Isolado de `syncState` para reavaliar os vizinhos sem mexer no valor/validade do formulário.
|
|
25
|
+
*/
|
|
26
|
+
atualizarTabindex(): void;
|
|
21
27
|
syncState(): void;
|
|
22
28
|
formResetCallback(): void;
|
|
23
|
-
formStateRestoreCallback(state:
|
|
29
|
+
formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
|
|
24
30
|
private handleClick;
|
|
31
|
+
private handleHostClick;
|
|
25
32
|
private handleKeyDown;
|
|
26
33
|
private handleFocus;
|
|
27
34
|
private handleBlur;
|
|
@@ -4,9 +4,18 @@ export type AnimacaoSkeleton = 'shimmer' | 'pulso' | 'nenhum';
|
|
|
4
4
|
export declare class UISkeleton extends SafeHTMLElement {
|
|
5
5
|
static get observedAttributes(): string[];
|
|
6
6
|
private rootElement;
|
|
7
|
+
/** O que este componente escreveu em aria-hidden / role (para não sobrescrever o consumidor). */
|
|
8
|
+
private _ocultoAuto;
|
|
9
|
+
private _papelAuto;
|
|
10
|
+
private _sincronizando;
|
|
7
11
|
constructor();
|
|
8
12
|
connectedCallback(): void;
|
|
9
13
|
attributeChangedCallback(_name: string, _old: string | null, _value: string | null): void;
|
|
14
|
+
/**
|
|
15
|
+
* Decorativo por padrão (`aria-hidden`). Com `aria-label` vira uma região de status anunciável
|
|
16
|
+
* ("Carregando tabela"). O que o consumidor definiu em aria-hidden/role é preservado.
|
|
17
|
+
*/
|
|
18
|
+
private sincronizarAcessibilidade;
|
|
10
19
|
get variante(): VarianteSkeleton;
|
|
11
20
|
set variante(val: VarianteSkeleton);
|
|
12
21
|
get animado(): AnimacaoSkeleton;
|
|
@@ -22,10 +22,12 @@ export declare class UISwitch extends FormAssociatedElement {
|
|
|
22
22
|
set disabled(val: boolean);
|
|
23
23
|
get type(): string;
|
|
24
24
|
atualizarValidade(): void;
|
|
25
|
+
/** `focus()` no host leva o foco ao controle interno (necessário para o foco de validação do formulário). */
|
|
26
|
+
focus(options?: FocusOptions): void;
|
|
25
27
|
alternar(): void;
|
|
26
28
|
protected syncState(): void;
|
|
27
29
|
formResetCallback(): void;
|
|
28
|
-
formStateRestoreCallback(state:
|
|
30
|
+
formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
|
|
29
31
|
private handleClick;
|
|
30
32
|
private handleHostClick;
|
|
31
33
|
private handleKeyDown;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { UIFetchErroDetail } from './tipos';
|
|
2
|
+
export declare const TEXTO_ERRO_PADRAO = "N\u00E3o foi poss\u00EDvel carregar os dados.";
|
|
3
|
+
export declare const TEXTO_SEM_RESULTADOS_PADRAO = "Nenhum resultado para o filtro";
|
|
4
|
+
/** Mostra (ou oculta, com `null`) o aviso de erro com a ação "Tentar novamente". */
|
|
5
|
+
export declare function renderizarErroTabela(el: HTMLElement | null, erro: UIFetchErroDetail | null, textoErro: string | null, temUrlParaRepetir: boolean): void;
|
|
6
|
+
/** Anuncia ao leitor de tela o resultado do filtro (a região é limpa sem filtro ativo). */
|
|
7
|
+
export declare function anunciarResultadoFiltro(regiao: HTMLElement | null, quantidade: number, temFiltro: boolean, textoSemResultados: string): void;
|
|
8
|
+
export interface ElementosAria {
|
|
9
|
+
tabela: HTMLElement | null;
|
|
10
|
+
container: HTMLElement | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Nome acessível vem do host (`aria-label`): vai à tabela e, como região rolável nomeada, ao contêiner
|
|
14
|
+
* (leitores de tela anunciam o contêiner e o teclado alcança a rolagem). `aria-busy` acompanha o carregamento.
|
|
15
|
+
*/
|
|
16
|
+
export declare function sincronizarAriaTabela({ tabela, container }: ElementosAria, rotulo: string | null, carregando: boolean): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rolagem e foco de linhas da <ui-tabela>, inclusive com a janela virtual.
|
|
3
|
+
* Responsabilidade única: posicionar uma linha na área visível (abaixo do cabeçalho fixo) rolando só o container,
|
|
4
|
+
* nunca a página, e focar a linha renderizando a janela virtual quando preciso.
|
|
5
|
+
*/
|
|
6
|
+
/** Acesso ao que a rolagem precisa da tabela; tudo é lido na hora (os elementos são recriados). */
|
|
7
|
+
export interface PortasRolagem {
|
|
8
|
+
container: () => HTMLElement | null;
|
|
9
|
+
tbody: () => HTMLElement | null;
|
|
10
|
+
cabecalho: () => HTMLElement | null;
|
|
11
|
+
alturaLinha: () => number;
|
|
12
|
+
/** Renderiza a janela virtual (síncrono). */
|
|
13
|
+
renderizarCorpo: () => void;
|
|
14
|
+
/** A linha ativa (tabindex 0) mudou para `indice`. */
|
|
15
|
+
aoLinhaAtiva: (indice: number) => void;
|
|
16
|
+
}
|
|
17
|
+
/** Tempo máximo esperando o `scrollend` da rolagem suave antes de forçar a chegada. */
|
|
18
|
+
export declare const TEMPO_LIMITE_ROLAGEM_SUAVE_MS = 800;
|
|
19
|
+
/**
|
|
20
|
+
* Quanto o container precisa rolar para a linha ficar inteira na área útil: abaixo do cabeçalho
|
|
21
|
+
* fixo e acima da barra de rolagem horizontal. 0 = já visível. Linha maior que a área alinha pelo topo.
|
|
22
|
+
*/
|
|
23
|
+
export declare function deslocamentoAteLinha(container: HTMLElement, tr: HTMLElement, alturaCabecalho: number): number;
|
|
24
|
+
/** Rola só o container da tabela (nunca a página, ao contrário de `scrollIntoView`). */
|
|
25
|
+
export declare function rolarContainer(container: HTMLElement, topo: number, comportamento: 'smooth' | 'auto'): void;
|
|
26
|
+
export declare class RolagemLinhas {
|
|
27
|
+
private p;
|
|
28
|
+
private cancelarCorrecao;
|
|
29
|
+
constructor(p: PortasRolagem);
|
|
30
|
+
private alturaCabecalho;
|
|
31
|
+
/** Linhas inteiras que cabem na área visível (mínimo 1). */
|
|
32
|
+
linhasPorPagina(): number;
|
|
33
|
+
/** Foca a linha, renderizando a janela virtual se necessário, e a mantém visível abaixo do cabeçalho fixo. */
|
|
34
|
+
focar(indice: number): void;
|
|
35
|
+
/**
|
|
36
|
+
* Posiciona a linha exibida `indice` na área visível.
|
|
37
|
+
* Fora da janela virtual, rola até a posição estimada, renderiza a janela e corrige pela posição
|
|
38
|
+
* real da linha. No modo suave a correção ocorre ao fim da animação (`scrollend`, com timeout de
|
|
39
|
+
* segurança para navegadores sem o evento ou quando não há rolagem a fazer).
|
|
40
|
+
*/
|
|
41
|
+
posicionar(indice: number, comportamento: 'smooth' | 'auto'): boolean;
|
|
42
|
+
/** Cancela a correção pendente de uma rolagem suave (nova rolagem, desconexão). */
|
|
43
|
+
cancelar(): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Teclado nas linhas da <ui-tabela>.
|
|
3
|
+
* Responsabilidade única: traduzir uma tecla em um destino de foco ou em "ativar a linha". Função pura; quem
|
|
4
|
+
* chama move o foco, renderiza a janela virtual e dispara o clique.
|
|
5
|
+
*/
|
|
6
|
+
export type AcaoTeclaLinha = {
|
|
7
|
+
tipo: 'mover';
|
|
8
|
+
indice: number;
|
|
9
|
+
} | {
|
|
10
|
+
tipo: 'ativar';
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Setas, Home/End e PageUp/PageDown movem o foco (limitados a `0..ultimo`); Enter e Espaço ativam a linha.
|
|
14
|
+
* Sem linhas (`ultimo < 0`) ou com índice inválido nenhuma tecla de movimento produz ação.
|
|
15
|
+
*/
|
|
16
|
+
export declare function acaoDaTeclaLinha(key: string, atual: number, ultimo: number, linhasPorPagina: number): AcaoTeclaLinha | null;
|