@thibezer/ui-components-kit 2.13.0 → 2.15.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 +23 -0
- package/README.md +3 -1
- package/dist/canvas.cjs +64 -59
- package/dist/canvas.js +2151 -2079
- package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +1 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +4 -1
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +2 -1
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +2 -0
- package/dist/components/ui-tabela/tabela-corpo.d.ts +5 -0
- package/dist/components/ui-tabela/tabela-foco.d.ts +28 -0
- package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +3 -0
- package/dist/components/ui-tabela/tabela-renderizador.d.ts +3 -0
- package/dist/components/ui-tabela/tipos.d.ts +7 -1
- package/dist/components/ui-tabela/ui-tabela.d.ts +6 -1
- package/dist/custom-elements.json +18265 -18072
- package/dist/data.cjs +1 -1
- package/dist/data.js +1 -1
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +5 -1
- package/dist/gerencigeo-canvas/feature_selecao.d.ts +4 -0
- package/dist/gerencigeo-canvas/utils.d.ts +14 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/leaflet-CEPcxGWV.cjs +1 -0
- package/dist/leaflet-DOq10gfg.js +84 -0
- package/dist/mapa.cjs +1 -1
- package/dist/mapa.js +1 -1
- package/dist/register.cjs +1 -1
- package/dist/register.js +1 -1
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +1 -0
- package/dist/tipos-vue.d.ts +1 -0
- package/dist/ui-tabela-propriedades-8IAYmk3P.cjs +142 -0
- package/dist/ui-tabela-propriedades-BoYXzP5Z.js +3191 -0
- package/package.json +1 -1
|
@@ -10,13 +10,16 @@ export interface PortasSelecaoRegiao {
|
|
|
10
10
|
desenhada: (f: Feicao) => boolean;
|
|
11
11
|
desativarFerramenta: () => void;
|
|
12
12
|
selecionar: (refs: RefFeicao[]) => void;
|
|
13
|
+
adicionar?: (refs: RefFeicao[]) => void;
|
|
14
|
+
subtrair?: (refs: RefFeicao[]) => void;
|
|
13
15
|
alternarVarias: (refs: RefFeicao[]) => void;
|
|
14
16
|
}
|
|
17
|
+
export type OperacaoSelecaoCaixa = 'substituir' | 'adicionar' | 'subtrair' | boolean;
|
|
15
18
|
export declare class SelecaoPorRegiao {
|
|
16
19
|
private p;
|
|
17
20
|
constructor(p: PortasSelecaoRegiao);
|
|
18
21
|
/** Laço: seleciona (substituindo) as feições de camadas selecionáveis tocadas pelo polígono; a ferramenta encerra. */
|
|
19
22
|
selecionarNoLaco(laco: LatLonPar[]): void;
|
|
20
23
|
/** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
|
|
21
|
-
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa,
|
|
24
|
+
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, operacao: OperacaoSelecaoCaixa): void;
|
|
22
25
|
}
|
|
@@ -83,6 +83,7 @@ export declare class GerenciadorFeicoes {
|
|
|
83
83
|
camadaId: string;
|
|
84
84
|
feicao: Feicao;
|
|
85
85
|
aditivo?: boolean;
|
|
86
|
+
subtrativo?: boolean;
|
|
86
87
|
}): string | null;
|
|
87
88
|
selecionarFeicoes(refs: RefFeicao[], aditivo?: boolean): void;
|
|
88
89
|
alternarSelecaoFeicao(ref: RefFeicao): void;
|
|
@@ -93,7 +94,7 @@ export declare class GerenciadorFeicoes {
|
|
|
93
94
|
/** Laço: seleciona (substituindo) as feições tocadas pelo polígono; a ferramenta encerra. */
|
|
94
95
|
private selecionarNoLaco;
|
|
95
96
|
/** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
|
|
96
|
-
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa,
|
|
97
|
+
selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, operacao: import('./cad-feicoes-selecao-regiao').OperacaoSelecaoCaixa): void;
|
|
97
98
|
definirMargensPopup(m: Partial<MargensPopup>): void;
|
|
98
99
|
fecharPopup(): void;
|
|
99
100
|
private modoPopups;
|
|
@@ -38,6 +38,8 @@ export declare class UICanvasCAD extends SafeHTMLElement {
|
|
|
38
38
|
private _zonaProjecao;
|
|
39
39
|
constructor();
|
|
40
40
|
connectedCallback(): void;
|
|
41
|
+
private hudCoordAgendado;
|
|
42
|
+
private atualizarHudCoordenadas;
|
|
41
43
|
private montarBarra;
|
|
42
44
|
/** Único canvas da página: os atalhos valem em qualquer lugar (comportamento de sempre). Com vários, só no que está sob o mouse ou com foco. */
|
|
43
45
|
private ehUnicoCanvas;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TabelaColuna } from './tipos';
|
|
2
|
+
export type ModoRenderCorpo = 'completo' | 'rolagem';
|
|
2
3
|
export interface ContextoCorpoTabela {
|
|
3
4
|
tbodyElement: HTMLTableSectionElement | null;
|
|
4
5
|
tableElement: HTMLTableElement | null;
|
|
@@ -15,6 +16,10 @@ export interface ContextoCorpoTabela {
|
|
|
15
16
|
filtroAtivo?: boolean;
|
|
16
17
|
textoVazio?: string;
|
|
17
18
|
textoSemResultados?: string;
|
|
19
|
+
/** `completo` recria as linhas; `rolagem` preserva as que seguem na janela virtual. */
|
|
20
|
+
modo?: ModoRenderCorpo;
|
|
21
|
+
/** Posição do item em `dados` (4º argumento do `render`); sem ela vale a posição exibida. */
|
|
22
|
+
indiceOriginal?: (item: Record<string, any>) => number;
|
|
18
23
|
isItemSelecionado: (item: Record<string, any>, index: number) => boolean;
|
|
19
24
|
onLinhaClique: (item: Record<string, any>, index: number) => void;
|
|
20
25
|
formatWidth: (largura?: string | number) => string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foco dentro das células da <ui-tabela>.
|
|
3
|
+
* Responsabilidade única: guardar qual controle de qual linha tinha o foco antes de recriar o corpo e
|
|
4
|
+
* devolvê-lo ao controle equivalente depois (a linha é achada pelo objeto, pelo `data-id` ou pela posição).
|
|
5
|
+
*/
|
|
6
|
+
/** Controle focado dentro de uma célula (não a própria linha). */
|
|
7
|
+
export interface FocoCelula {
|
|
8
|
+
item: Record<string, any> | undefined;
|
|
9
|
+
dataId: string | null;
|
|
10
|
+
indiceLinha: number;
|
|
11
|
+
indiceColuna: number;
|
|
12
|
+
/** Posição do elemento entre os descendentes da célula (a mesma estrutura é recriada pelo `render`). */
|
|
13
|
+
ordinal: number;
|
|
14
|
+
selecaoInicio: number | null;
|
|
15
|
+
selecaoFim: number | null;
|
|
16
|
+
/** Valor que o usuário digitou/marcou e ainda não foi gravado nos dados (undefined = sem edição pendente). */
|
|
17
|
+
digitado?: string | boolean;
|
|
18
|
+
/** Valor com que o controle foi renderizado: serve para saber se os dados mudaram por baixo da edição. */
|
|
19
|
+
valorInicial?: string | boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Quem renderizou cada linha: permite achar o item de uma `<tr>` depois que o corpo é reconstruído. */
|
|
22
|
+
export declare const itemDaLinha: WeakMap<Element, Record<string, any>>;
|
|
23
|
+
/** Guarda o valor inicial dos campos nativos da célula recém-renderizada. */
|
|
24
|
+
export declare function registrarValoresRenderizados(celula: Element): void;
|
|
25
|
+
/** Registra o controle focado dentro do corpo, ou `null` se o foco está fora das células. */
|
|
26
|
+
export declare function capturarFocoCelula(tbody: HTMLTableSectionElement): FocoCelula | null;
|
|
27
|
+
/** Devolve o foco ao controle equivalente após recriar o corpo. Sem equivalente, não faz nada. */
|
|
28
|
+
export declare function restaurarFocoCelula(tbody: HTMLTableSectionElement, foco: FocoCelula | null): void;
|
|
@@ -4,6 +4,7 @@ export declare function normalizarTexto(t: string): string;
|
|
|
4
4
|
export declare class TabelaOrquestradorDados {
|
|
5
5
|
private dadosOriginais;
|
|
6
6
|
private dadosExibicao;
|
|
7
|
+
private indicePorItem;
|
|
7
8
|
private colunaOrdenada;
|
|
8
9
|
private direcaoOrdenacao;
|
|
9
10
|
private ultimoFiltro;
|
|
@@ -19,6 +20,8 @@ export declare class TabelaOrquestradorDados {
|
|
|
19
20
|
setColunasFiltro(ids: string[]): void;
|
|
20
21
|
getDadosOriginais(): Record<string, any>[];
|
|
21
22
|
setDadosOriginais(dados: Record<string, any>[]): void;
|
|
23
|
+
/** Posição do item em `dados` (-1 se não pertence). Índice por objeto montado sob demanda, uma vez por troca de dados. */
|
|
24
|
+
indiceOriginal(item: Record<string, any>): number;
|
|
22
25
|
getDadosExibicao(): Record<string, any>[];
|
|
23
26
|
getColunaOrdenada(): string | null;
|
|
24
27
|
setColunaOrdenada(id: string | null): void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TabelaColuna } from './tipos';
|
|
2
|
+
import { ModoRenderCorpo } from './tabela-corpo';
|
|
2
3
|
import { ListenerBag } from '../../core/listener-bag';
|
|
3
4
|
import { EstruturaDOMElementos } from './tabela-dom';
|
|
4
5
|
import { TabelaOrquestradorDados } from './tabela-orquestrador-dados';
|
|
@@ -20,6 +21,8 @@ export interface ContextoOrquestradorRender {
|
|
|
20
21
|
virtualizar: boolean;
|
|
21
22
|
rowHeight: number;
|
|
22
23
|
indiceAtivo: number | null;
|
|
24
|
+
/** `rolagem` preserva as linhas que seguem visíveis na janela virtual (padrão: `completo`). */
|
|
25
|
+
modoCorpo?: ModoRenderCorpo;
|
|
23
26
|
textoVazio?: string;
|
|
24
27
|
textoSemResultados?: string;
|
|
25
28
|
onSetIsResizing: (resizing: boolean) => void;
|
|
@@ -17,7 +17,13 @@ export interface TabelaColuna<T = any> {
|
|
|
17
17
|
comparador?: (a: any, b: any, itemA: T, itemB: T) => number;
|
|
18
18
|
/** Texto pesquisável da célula (o filtro padrão olha o valor bruto); útil quando `render` formata o valor. */
|
|
19
19
|
textoFiltro?: (valor: any, item: T) => string;
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Conteúdo da célula: `HTMLElement` (botão, checkbox, campo...) ou texto (nunca HTML).
|
|
22
|
+
* `index` é a posição **exibida** (muda ao ordenar e filtrar); `indiceDados` é a posição do item em `dados`
|
|
23
|
+
* (estável). Para editar ou remover, prefira `item` ou `indiceDados` a `index`.
|
|
24
|
+
* Na rolagem com virtualização, linhas que continuam visíveis não são renderizadas de novo.
|
|
25
|
+
*/
|
|
26
|
+
render?: (valor: any, item: T, index: number, indiceDados: number) => HTMLElement | string;
|
|
21
27
|
}
|
|
22
28
|
export interface UISortDetail {
|
|
23
29
|
idColuna: string | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DensidadeTabela, TabelaColuna, TabelaFetcher, UISortDetail, UIColumnResizeDetail, UIRowScrollOptions, UISelecaoRemovidaDetail, UIFetchErroDetail } from './tipos';
|
|
2
|
+
import { ModoRenderCorpo } from './tabela-corpo';
|
|
2
3
|
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
3
4
|
export type { DensidadeTabela, TabelaColuna, TabelaFetcher, UISortDetail, UIColumnResizeDetail, UIRowScrollOptions, UISelecaoRemovidaDetail, UIFetchErroDetail };
|
|
4
5
|
export declare class UITabela extends SafeHTMLElement {
|
|
@@ -119,7 +120,11 @@ export declare class UITabela extends SafeHTMLElement {
|
|
|
119
120
|
private handleTecladoCorpo;
|
|
120
121
|
private obterContextoRenderizador;
|
|
121
122
|
private renderHeader;
|
|
122
|
-
|
|
123
|
+
/**
|
|
124
|
+
* Renderiza o corpo. `completo` (padrão) recria as linhas e roda o `render` das colunas de novo;
|
|
125
|
+
* `rolagem` só ajusta a janela virtual e mantém as linhas que continuam visíveis (foco e texto digitado intactos).
|
|
126
|
+
*/
|
|
127
|
+
renderBody(modo?: ModoRenderCorpo): void;
|
|
123
128
|
/**
|
|
124
129
|
* Rola até um item e opcionalmente o seleciona. Aceita ID (pela `chave-id`, depois `id`, `_id`,
|
|
125
130
|
* `codigo`, `key`), predicado ou índice. Um número é procurado primeiro como ID; use
|