@thibezer/ui-components-kit 2.12.5 → 2.13.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.
@@ -6,6 +6,16 @@ export type ParteLista = 'tudo' | 'canvas' | 'dom';
6
6
  export declare class MotorFormas {
7
7
  private camadas;
8
8
  private regra;
9
+ private limiteMarcaPx;
10
+ private toleranciaPx;
11
+ /**
12
+ * Ajusta o LOD (diagonal em px abaixo da qual a feição vira marca) e a tolerância da simplificação em px (perfis de
13
+ * `qualidade.ts`). Valor inválido (NaN, <= 0) mantém o atual. Ao mudar de verdade, os caches por zoom são descartados.
14
+ */
15
+ definirQualidade(opcoes: {
16
+ limiteMarcaPx?: number;
17
+ toleranciaPx?: number;
18
+ }): void;
9
19
  /** Cria a camada ou atualiza a definição (estilo, zIndex, opacidade, visibilidade). */
10
20
  definirCamada(def: DefCamadaMotor): void;
11
21
  removerCamada(camadaId: string): void;
@@ -0,0 +1,52 @@
1
+ export type NivelQualidade = 'alta' | 'media' | 'baixa';
2
+ export type ModoRenderizadorPadrao = 'leaflet' | 'canvas';
3
+ export interface PerfilQualidade {
4
+ nivel: NivelQualidade;
5
+ /** Renderizador das feições quando o atributo `renderizador` não foi dado. */
6
+ renderizadorPadrao: ModoRenderizadorPadrao;
7
+ /** Teto do `devicePixelRatio` dos canvases de feições (1 ou 2; `L.Browser.retina` continua sendo o limite superior). */
8
+ dprMaximo: 1 | 2;
9
+ /** Diagonal (px) abaixo da qual a feição é desenhada como marca de 1–2 px. */
10
+ limiteMarcaPx: number;
11
+ /** Tolerância (px) do Douglas-Peucker de formas projetadas. */
12
+ toleranciaPx: number;
13
+ /** Desenha `dashArray` (traço tracejado). Falso = linha contínua (mais barato no Canvas 2D). */
14
+ tracejado: boolean;
15
+ /** Animação de zoom, fade de tiles e animação de marcadores do Leaflet. */
16
+ animacoes: boolean;
17
+ /** Inércia ao soltar o arraste. */
18
+ inercia: boolean;
19
+ zoomSnap: number;
20
+ zoomDelta: number;
21
+ /** Quantas fileiras de tiles ficam em memória além da vista. */
22
+ keepBuffer: number;
23
+ }
24
+ export declare const NIVEIS_QUALIDADE: readonly NivelQualidade[];
25
+ /** Valor do atributo -> nível. Ausente, vazio ou inválido cai em `alta` (o comportamento anterior ao atributo). */
26
+ export declare function lerNivelQualidade(valor: string | null | undefined): NivelQualidade;
27
+ export declare function perfilDe(nivel: NivelQualidade): PerfilQualidade;
28
+ /** Atalho: valor do atributo -> perfil. */
29
+ export declare function perfilDoAtributo(valor: string | null | undefined): PerfilQualidade;
30
+ /**
31
+ * Renderizador efetivo: o atributo `renderizador`, quando dado, manda (inclusive valor inválido = `leaflet`, como
32
+ * sempre foi); sem ele vale o padrão do perfil.
33
+ */
34
+ export declare function modoRenderizadorEfetivo(atributo: string | null | undefined, perfil: PerfilQualidade): ModoRenderizadorPadrao;
35
+ /** O que o perfil mexe no mapa do Leaflet (contrato estrutural: os internos `_zoomAnimated`/`_fadeAnimated` são opcionais). */
36
+ export interface MapaAjustavel {
37
+ options: {
38
+ zoomSnap?: number;
39
+ zoomDelta?: number;
40
+ inertia?: boolean;
41
+ zoomAnimation?: boolean;
42
+ fadeAnimation?: boolean;
43
+ markerZoomAnimation?: boolean;
44
+ };
45
+ _zoomAnimated?: boolean;
46
+ _fadeAnimated?: boolean;
47
+ }
48
+ /**
49
+ * Aplica o perfil às opções do mapa já criado. Reversível: o que o Leaflet calculou na criação (`_zoomAnimated`,
50
+ * `_fadeAnimated`) é guardado na primeira chamada e restaurado ao voltar para um perfil com `animacoes`. Nunca lança.
51
+ */
52
+ export declare function aplicarPerfilAoMapa(mapa: MapaAjustavel | null | undefined, perfil: PerfilQualidade): void;
@@ -36,6 +36,8 @@ export interface OpcoesCanvasFormas extends L.RendererOptions {
36
36
  incremental?: boolean;
37
37
  /** Pan incremental com até tantos itens no bitmap: repinta inteiro em vez de deslocar (padrão: `CanvasFormas.limiteRepintar`). */
38
38
  limiteRepintar?: number;
39
+ /** Teto do multiplicador de retina (padrão 2 = o do Leaflet; 1 = nunca acima de 1×). */
40
+ dprMaximo?: 1 | 2;
39
41
  }
40
42
  /** Regiões que ficam vazias quando o conteúdo se desloca de (`dx`, `dy`) px: a faixa vertical inteira e a horizontal sem a quina. */
41
43
  export declare function regioesExpostas(largura: number, altura: number, dx: number, dy: number): RegiaoPx[];
@@ -65,7 +67,16 @@ export declare class CanvasFormas extends L.Canvas {
65
67
  /** Quantas pinturas falharam (e a última causa): diagnóstico, já que a falha é engolida. */
66
68
  falhas: number;
67
69
  ultimoErro: unknown;
70
+ /** Teto do multiplicador de retina (perfil `qualidade`): 1 pinta 4× menos pixels num monitor retina. */
71
+ private dprTeto;
68
72
  constructor(opcoes: OpcoesCanvasFormas, aoPintar: PintarQuadro);
73
+ /** Multiplicador de retina efetivo: o do Leaflet limitado pelo teto do perfil. */
74
+ private get multiplicador();
75
+ /**
76
+ * Troca o teto do multiplicador em execução. Se o canvas já está no mapa e o efetivo mudou, reposiciona (o bitmap é
77
+ * redimensionado) e repinta tudo.
78
+ */
79
+ definirDprMaximo(teto: number): void;
69
80
  private get limiteRepintar();
70
81
  /**
71
82
  * O primeiro `update` do canvas acontece antes de o Leaflet ouvi-lo (e o `onAdd` do L.Canvas ainda limpa o canvas):
@@ -75,7 +75,10 @@ export declare class PintorCanvas2D implements RenderizadorFormas {
75
75
  private destruido;
76
76
  /** Estatística da última pintura (diagnóstico e testes). */
77
77
  ultima: EstatisticasPintura;
78
+ /** Perfil de qualidade `baixa`: ignora `dash` (linha contínua, mais barata no Canvas 2D). */
79
+ private semTracejado;
78
80
  constructor(alvos: AlvosPintura);
81
+ definirTracejado(ligado: boolean): void;
79
82
  destacar(ids: Iterable<string>): void;
80
83
  limpar(): void;
81
84
  destruir(): void;
@@ -2,7 +2,7 @@ import { default as L } from 'leaflet';
2
2
  import { ILayerRenderer } from '../layer_renderer_factory';
3
3
  import { CanvasLayerDef, CanvasRenderContext } from '../types';
4
4
  export declare class TileLayerRenderer implements ILayerRenderer {
5
- render(layerDef: CanvasLayerDef, _map: L.Map, _context: CanvasRenderContext): L.Layer | null;
5
+ render(layerDef: CanvasLayerDef, _map: L.Map, context: CanvasRenderContext): L.Layer | null;
6
6
  /** Opacidade, z-index e visibilidade são do pane da camada (LayerManager): nada a atualizar aqui. */
7
7
  update(): void;
8
8
  destroy(layerInstance: L.Layer, map: L.Map): void;
@@ -191,4 +191,6 @@ export interface CanvasRenderContext {
191
191
  regraVersoes?: import('./feature_versoes').RegraVersoes;
192
192
  /** Qual renderizador desenha as camadas de feições (atributo `renderizador` do componente). Ausente = `leaflet`. */
193
193
  renderizador?: () => 'leaflet' | 'canvas';
194
+ /** Perfil de qualidade vigente (atributo `qualidade` do componente). Ausente = `alta` (comportamento de sempre). */
195
+ qualidade?: () => import('./qualidade').PerfilQualidade;
194
196
  }