@archbase/security-ui 4.2.1 → 4.2.3
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/dist/archbase-security-ui-4.2.3.tgz +0 -0
- package/dist/index.js +1516 -1297
- package/dist/securityDiagnostics/SimulationPanel.d.ts +1 -0
- package/dist/securityDiagnostics/explorer/FiltroDeLista.d.ts +30 -0
- package/dist/securityDiagnostics/explorer/SeletorEmArvore.d.ts +27 -0
- package/package.json +12 -12
- package/dist/archbase-security-ui-4.2.1.tgz +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface FiltroDeListaProps {
|
|
2
|
+
value: string;
|
|
3
|
+
onChange: (valor: string) => void;
|
|
4
|
+
/** O que se está filtrando, para compor o texto de apoio. Ex.: "capacidades". */
|
|
5
|
+
assunto?: string;
|
|
6
|
+
/** Quantos itens sobraram e quantos existem, para dizer que o filtro está escondendo coisa. */
|
|
7
|
+
visiveis?: number;
|
|
8
|
+
total?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Campo de busca das listas do explorador.
|
|
12
|
+
*
|
|
13
|
+
* <p>Existe porque as listas aqui são naturalmente longas: uma pessoa com muitos perfis chega a
|
|
14
|
+
* centenas de capacidades, e procurar "aprovar" percorrendo a rolagem é pior do que não ter a lista.
|
|
15
|
+
* Filtrar no cliente é adequado <b>porque estas listas vêm inteiras</b> do backend — não há página
|
|
16
|
+
* seguinte escondendo resultado, então o que o filtro não mostra realmente não existe.
|
|
17
|
+
*/
|
|
18
|
+
export declare const FiltroDeLista: ({ value, onChange, assunto, visiveis, total }: FiltroDeListaProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* Guarda o texto digitado e devolve a lista já filtrada.
|
|
21
|
+
*
|
|
22
|
+
* <p>A comparação ignora maiúsculas e acentos: quem procura "servico" precisa achar "serviço", e
|
|
23
|
+
* quem procura "APROVAR" precisa achar "aprovar". Sem isso o filtro devolve vazio e passa a
|
|
24
|
+
* impressão de que a capacidade não existe — o mesmo falso negativo que a árvore veio corrigir.
|
|
25
|
+
*/
|
|
26
|
+
export declare const useFiltroDeTexto: <T>(itens: T[], textoDe: (item: T) => (string | undefined)[]) => {
|
|
27
|
+
filtro: string;
|
|
28
|
+
setFiltro: import('react').Dispatch<import('react').SetStateAction<string>>;
|
|
29
|
+
filtrados: T[];
|
|
30
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ArchbaseTreeBranch, ArchbaseTreeNode } from '@archbase/security';
|
|
2
|
+
export interface SeletorEmArvoreProps {
|
|
3
|
+
label: string;
|
|
4
|
+
/** O que aparece no campo quando algo está escolhido. */
|
|
5
|
+
valor?: string;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
branch: ArchbaseTreeBranch;
|
|
8
|
+
/**
|
|
9
|
+
* Quando o ramo tem dois níveis (recurso → ação), só o segundo é escolha válida: simular contra
|
|
10
|
+
* um recurso sem ação não é uma pergunta que o backend saiba responder.
|
|
11
|
+
*/
|
|
12
|
+
somenteFolhas?: boolean;
|
|
13
|
+
/** Devolve o nó escolhido e, quando existir, o pai — é dele que sai o nome do recurso. */
|
|
14
|
+
onSelecionar: (no: ArchbaseTreeNode, pai?: ArchbaseTreeNode) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Escolher na árvore em vez de digitar.
|
|
18
|
+
*
|
|
19
|
+
* <p>Os campos da simulação eram de texto livre, com exemplos do tipo {@code tms.ordemservico} no
|
|
20
|
+
* placeholder. O problema não é a digitação em si: é que <b>errar uma letra devolve "não pode"</b>,
|
|
21
|
+
* indistinguível de uma negação real de permissão. Quem simula fica sem saber se descobriu um
|
|
22
|
+
* problema ou se errou o nome — e a tela existe justamente para tirar essa dúvida.
|
|
23
|
+
*
|
|
24
|
+
* <p>Carrega por demanda e busca no servidor, como a árvore principal: a lista de pessoas de um
|
|
25
|
+
* tenant grande não cabe numa requisição só, e filtrar no cliente exigiria tê-la carregado inteira.
|
|
26
|
+
*/
|
|
27
|
+
export declare const SeletorEmArvore: ({ label, valor, placeholder, branch, somenteFolhas, onSelecionar, }: SeletorEmArvoreProps) => import("react/jsx-runtime").JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@archbase/security-ui",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.3",
|
|
4
4
|
"description": "Security UI components for Archbase React - Forms, Modals, and Views",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"inversify-react": "^1.1.0",
|
|
41
41
|
"rxjs": "^7.8.2",
|
|
42
42
|
"uuid": "^9.0.1",
|
|
43
|
-
"@archbase/core": "4.2.
|
|
44
|
-
"@archbase/data": "4.2.
|
|
45
|
-
"@archbase/components": "4.2.
|
|
46
|
-
"@archbase/layout": "4.2.
|
|
47
|
-
"@archbase/security": "4.2.
|
|
43
|
+
"@archbase/core": "4.2.3",
|
|
44
|
+
"@archbase/data": "4.2.3",
|
|
45
|
+
"@archbase/components": "4.2.3",
|
|
46
|
+
"@archbase/layout": "4.2.3",
|
|
47
|
+
"@archbase/security": "4.2.3"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/react": "^19.0.6",
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"react": ">=18.0.0",
|
|
60
60
|
"react-dom": ">=18.0.0",
|
|
61
|
-
"@mantine/core": "9.5.
|
|
62
|
-
"@mantine/dates": "9.5.
|
|
63
|
-
"@mantine/hooks": "9.5.
|
|
64
|
-
"@mantine/modals": "9.5.
|
|
65
|
-
"@mantine/notifications": "9.5.
|
|
61
|
+
"@mantine/core": "9.5.1",
|
|
62
|
+
"@mantine/dates": "9.5.1",
|
|
63
|
+
"@mantine/hooks": "9.5.1",
|
|
64
|
+
"@mantine/modals": "9.5.1",
|
|
65
|
+
"@mantine/notifications": "9.5.1",
|
|
66
66
|
"@tabler/icons-react": "^3.27.0"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "NODE_OPTIONS=\"--max-old-space-size=8192\" vite build",
|
|
70
70
|
"dev": "vite build --watch",
|
|
71
|
-
"test": "vitest",
|
|
71
|
+
"test": "vitest run",
|
|
72
72
|
"test:watch": "vitest --watch",
|
|
73
73
|
"test:coverage": "vitest --coverage",
|
|
74
74
|
"lint": "eslint src/**/*.{ts,tsx}",
|
|
Binary file
|