@archbase/template 3.0.25 → 4.0.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,21 @@ import { ArchbaseTemplateSecurityProps } from './ArchbaseTemplateCommonTypes';
6
6
  * Modo de seleção do lookup
7
7
  */
8
8
  export type LookupSelectionMode = 'single' | 'multiple';
9
+ /**
10
+ * Resultado de uma busca paginada
11
+ */
12
+ export interface PagedResult<T> {
13
+ /** Array de registros da página atual */
14
+ content: T[];
15
+ /** Total de elementos em todas as páginas */
16
+ totalElements: number;
17
+ /** Total de páginas */
18
+ totalPages: number;
19
+ /** Página atual (0-indexed) */
20
+ currentPage?: number;
21
+ /** Se é a última página */
22
+ last?: boolean;
23
+ }
9
24
  /**
10
25
  * Labels customizáveis do componente
11
26
  */
@@ -55,11 +70,23 @@ export interface ArchbaseLookupDataTemplateProps<T extends object, ID = string>
55
70
  dataSource?: ArchbaseDataSource<T, ID>;
56
71
  /**
57
72
  * Função para carregar dados (usada quando dataSource não é fornecido)
73
+ * Carrega TODOS os registros de uma vez (paginação client-side)
58
74
  * @param searchValue - Valor de busca
59
75
  * @param searchFields - Campos para busca
60
76
  * @returns Promise com array de registros
61
77
  */
62
78
  loadData?: (searchValue?: string, searchFields?: string) => Promise<T[]>;
79
+ /**
80
+ * Função para carregar dados COM PAGINAÇÃO REMOTA (server-side)
81
+ * Quando fornecida, tem prioridade sobre loadData.
82
+ * A paginação é feita no servidor, carregando apenas uma página por vez.
83
+ * @param page - Número da página (0-indexed)
84
+ * @param pageSize - Tamanho da página
85
+ * @param searchValue - Valor de busca (opcional)
86
+ * @param searchFields - Campos para busca (opcional)
87
+ * @returns Promise com resultado paginado
88
+ */
89
+ loadDataPaged?: (page: number, pageSize: number, searchValue?: string, searchFields?: string) => Promise<PagedResult<T>>;
63
90
  /** Campos para busca (separados por vírgula) */
64
91
  searchFields?: string;
65
92
  /** Tamanho da página para paginação. Default: 100 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archbase/template",
3
- "version": "3.0.25",
3
+ "version": "4.0.0",
4
4
  "description": "Template components for Archbase React v3 - High-level templates and layouts",
5
5
  "author": "Edson Martins <edsonmartins2005@gmail.com>",
6
6
  "license": "MIT",
@@ -21,22 +21,22 @@
21
21
  "README.md"
22
22
  ],
23
23
  "peerDependencies": {
24
- "@mantine/core": "8.3.18",
25
- "@mantine/dates": "8.3.18",
26
- "@mantine/hooks": "8.3.18",
27
- "@mantine/modals": "8.3.18",
24
+ "@mantine/core": "9.1.1",
25
+ "@mantine/dates": "9.1.1",
26
+ "@mantine/hooks": "9.1.1",
27
+ "@mantine/modals": "9.1.1",
28
28
  "@tabler/icons-react": "^3.26.0",
29
29
  "react": "^18.3.0 || ^19.2.0",
30
30
  "react-dom": "^18.3.0 || ^19.2.0"
31
31
  },
32
32
  "dependencies": {
33
- "@archbase/advanced": "3.0.25",
34
- "@archbase/components": "3.0.25",
35
- "@archbase/core": "3.0.25",
36
- "@archbase/data": "3.0.25",
37
- "@archbase/layout": "3.0.25",
38
- "@archbase/security": "3.0.25",
39
- "@archbase/security-ui": "3.0.25",
33
+ "@archbase/advanced": "4.0.0",
34
+ "@archbase/components": "4.0.0",
35
+ "@archbase/core": "4.0.0",
36
+ "@archbase/data": "4.0.0",
37
+ "@archbase/layout": "4.0.0",
38
+ "@archbase/security": "4.0.0",
39
+ "@archbase/security-ui": "4.0.0",
40
40
  "@rehooks/component-size": "^1.0.3",
41
41
  "dayjs": "^1.11.13",
42
42
  "i18next": "^25.3.1",