@ssplib/react-components 0.0.271 → 0.0.273

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.
@@ -11,60 +11,184 @@ interface OrderBy {
11
11
  key: string;
12
12
  type: 'string' | 'number';
13
13
  }
14
- export declare function Table({ mediaQueryLG, columns, fetchFunc, emptyMsg, dataPath, tableName, csv, columnSize, action, useKC, statusKeyName, csvExcludeKeys, csvExcludeKeysCSV, csvExcludeKeysAll, csvCustomKeyNames, csvExcludeValidate, csvButtonTitle, csvNoZipText, csvAllButtonTitle, removeQuotes, normalize, csvShowAllButton, csvWithoutZip, itemCount, csvUpper, csvZipFileNamesKey, generateCsvZip, hideTitleCSV, csvExcludeUpper, multipleDataPath, expandTextMaxLength, collapsedSize, customMargin, customMarginMobile, filtersFunc, filters, orderBy, customErrorMsg, customTableStyle, id, }: {
14
+ /**
15
+ * Interface para as propriedades do componente Table.
16
+ */
17
+ export interface TableProps {
18
+ /**
19
+ * Identificador único da tabela.
20
+ */
15
21
  id: string;
22
+ /**
23
+ * Configuração de largura para exibição em telas grandes.
24
+ */
16
25
  mediaQueryLG?: {
17
26
  all: number;
18
27
  action: number;
19
28
  };
29
+ /**
30
+ * Funções de filtragem aplicáveis à tabela.
31
+ */
20
32
  filtersFunc?: {
21
33
  [key: string]: (value: string) => any;
22
34
  };
35
+ /**
36
+ * Lista de filtros disponíveis.
37
+ */
23
38
  filters?: FilterValue[];
39
+ /**
40
+ * Configuração da ordenação das colunas.
41
+ */
24
42
  orderBy?: OrderBy[];
43
+ /**
44
+ * Margem personalizada para o componente.
45
+ */
25
46
  customMargin?: number;
47
+ /**
48
+ * Margem personalizada para visualização em dispositivos móveis.
49
+ */
26
50
  customMarginMobile?: number;
51
+ /**
52
+ * Define se os valores CSV devem ser normalizados (removendo acentos, por exemplo).
53
+ */
27
54
  normalize?: boolean;
55
+ /**
56
+ * Define se os valores CSV devem ser convertidos para maiúsculas.
57
+ */
28
58
  csvUpper?: boolean;
59
+ /**
60
+ * Estilo personalizado para a tabela.
61
+ */
29
62
  customTableStyle?: BoxProps;
63
+ /**
64
+ * Caminho múltiplo para os dados dentro do JSON retornado pela API.
65
+ */
30
66
  multipleDataPath?: string;
67
+ /**
68
+ * Mensagem de erro personalizada para exibição na tabela.
69
+ */
31
70
  customErrorMsg?: string | ReactNode;
71
+ /**
72
+ * Remove aspas dos valores no CSV.
73
+ */
32
74
  removeQuotes?: boolean;
75
+ /**
76
+ * Lista de colunas a serem exibidas na tabela.
77
+ */
33
78
  columns: ColumnData[];
79
+ /**
80
+ * Nome da tabela para exibição.
81
+ */
34
82
  tableName: string;
83
+ /**
84
+ * Exibe botão para exportar todos os dados para CSV.
85
+ */
35
86
  csvShowAllButton?: boolean;
87
+ /**
88
+ * Lista de chaves que devem ser excluídas da exportação para CSV.
89
+ */
36
90
  csvExcludeUpper?: string[];
91
+ /**
92
+ * Define se o CSV será exportado sem compactação.
93
+ */
37
94
  csvWithoutZip?: boolean;
95
+ /**
96
+ * Define o tamanho colapsado das células expansíveis.
97
+ */
38
98
  collapsedSize?: number;
99
+ /**
100
+ * Título do botão para exportação de todos os dados em CSV.
101
+ */
39
102
  csvAllButtonTitle?: string;
103
+ /**
104
+ * Título do botão para exportação em CSV.
105
+ */
40
106
  csvButtonTitle?: string;
107
+ /**
108
+ * Título do botão para exportação sem compactação.
109
+ */
41
110
  csvNoZipText?: string;
111
+ /**
112
+ * Chave usada para nomeação de arquivos CSV compactados.
113
+ */
42
114
  csvZipFileNamesKey?: string;
115
+ /**
116
+ * Define se será gerado um ZIP contendo os arquivos CSV.
117
+ */
43
118
  generateCsvZip?: boolean;
119
+ /**
120
+ * Função de validação para exclusão de chaves ao exportar CSV.
121
+ */
44
122
  csvExcludeValidate?: (key: string, value: string | number) => boolean;
123
+ /**
124
+ * Mapeamento de nomes personalizados para colunas do CSV.
125
+ */
45
126
  csvCustomKeyNames?: {
46
127
  [key: string]: string;
47
128
  };
129
+ /**
130
+ * Define o tamanho máximo do texto antes de ser colapsado.
131
+ */
48
132
  expandTextMaxLength?: number;
133
+ /**
134
+ * Lista de chaves a serem excluídas da exportação para CSV.
135
+ */
49
136
  csvExcludeKeysCSV?: string[];
137
+ /**
138
+ * Lista de chaves a serem excluídas da exportação geral para CSV.
139
+ */
50
140
  csvExcludeKeys?: string[];
141
+ /**
142
+ * Define se o título deve ser ocultado na exportação CSV.
143
+ */
51
144
  hideTitleCSV?: boolean;
145
+ /**
146
+ * Lista de chaves a serem excluídas na exportação de todos os dados.
147
+ */
52
148
  csvExcludeKeysAll?: string[];
149
+ /**
150
+ * Nome da chave do status para identificação de status da linha.
151
+ */
53
152
  statusKeyName?: string;
153
+ /**
154
+ * Quantidade de itens por página.
155
+ */
54
156
  itemCount?: number;
157
+ /**
158
+ * Componente para exibir ações específicas para cada linha.
159
+ */
55
160
  action: (prop: any) => JSX.Element;
161
+ /**
162
+ * Configuração para exportação de arquivos CSV.
163
+ */
56
164
  csv?: {
57
165
  fileName: string;
58
166
  };
167
+ /**
168
+ * Define o número de colunas exibidas na tabela.
169
+ */
59
170
  columnSize: number;
171
+ /**
172
+ * Função para buscar os dados a serem exibidos na tabela.
173
+ */
60
174
  fetchFunc: () => Promise<Response>;
175
+ /**
176
+ * Mensagens exibidas quando não há dados na tabela.
177
+ */
61
178
  emptyMsg?: {
62
179
  user: string;
63
180
  public: string;
64
181
  };
182
+ /**
183
+ * Caminho dentro do JSON de resposta onde os dados estão armazenados.
184
+ */
65
185
  dataPath?: string;
186
+ /**
187
+ * Define se a autenticação via Keycloak será utilizada.
188
+ */
66
189
  useKC?: boolean;
67
- }): JSX.Element;
190
+ }
191
+ export declare function Table({ mediaQueryLG, columns, fetchFunc, emptyMsg, dataPath, tableName, csv, columnSize, action, useKC, statusKeyName, csvExcludeKeys, csvExcludeKeysCSV, csvExcludeKeysAll, csvCustomKeyNames, csvExcludeValidate, csvButtonTitle, csvNoZipText, csvAllButtonTitle, removeQuotes, normalize, csvShowAllButton, csvWithoutZip, itemCount, csvUpper, csvZipFileNamesKey, generateCsvZip, hideTitleCSV, csvExcludeUpper, multipleDataPath, expandTextMaxLength, collapsedSize, customMargin, customMarginMobile, filtersFunc, filters, orderBy, customErrorMsg, customTableStyle, id, }: TableProps): JSX.Element;
68
192
  type FilterType = 'string' | 'number' | 'date' | 'dates';
69
193
  type FilterOperators = 'igual' | 'contem' | 'maior que' | 'menor que' | 'data exata' | 'após' | 'antes de' | 'entre' | 'tem um dos' | 'depois de' | 'antes de' | 'data inicio' | 'data fim' | 'tem a data';
70
194
  interface FilterValue {
@@ -0,0 +1,210 @@
1
+ import { BoxProps } from '@mui/material';
2
+ import { ReactNode } from 'react';
3
+ export interface ColumnData<T> {
4
+ title: string;
5
+ keyName: Partial<T>;
6
+ customComponent?: (content: string, obj: any) => JSX.Element;
7
+ size?: number;
8
+ }
9
+ export interface OrderBy {
10
+ label: string;
11
+ key: string;
12
+ type: 'string' | 'number';
13
+ }
14
+ export type FilterType = 'string' | 'number' | 'date' | 'dates';
15
+ export type FilterOperators = 'igual' | 'contem' | 'maior que' | 'menor que' | 'data exata' | 'após' | 'antes de' | 'entre' | 'tem um dos' | 'depois de' | 'antes de' | 'data inicio' | 'data fim' | 'tem a data';
16
+ export interface FilterValue {
17
+ label: string;
18
+ keyName: string;
19
+ type: FilterType;
20
+ operator: FilterOperators;
21
+ operators: FilterOperators[];
22
+ value: string | any;
23
+ value2?: string | any;
24
+ useList?: {
25
+ id: string | number;
26
+ label: string;
27
+ }[];
28
+ customFunc?: string;
29
+ }
30
+ /**
31
+ * Interface para as propriedades do componente Table.
32
+ */
33
+ export interface GenericTableProps<T> {
34
+ /**
35
+ * Identificador único da tabela.
36
+ */
37
+ id: string;
38
+ /**
39
+ * Configuração de largura para exibição em telas grandes.
40
+ */
41
+ mediaQueryLG?: {
42
+ all: number;
43
+ action: number;
44
+ };
45
+ /**
46
+ * Funções de filtragem aplicáveis à tabela.
47
+ */
48
+ filtersFunc?: {
49
+ [key: string]: (value: string) => any;
50
+ };
51
+ /**
52
+ * Lista de filtros disponíveis.
53
+ */
54
+ filters?: FilterValue[];
55
+ /**
56
+ * Configuração da ordenação das colunas.
57
+ */
58
+ orderBy?: OrderBy[];
59
+ /**
60
+ * Margem personalizada para o componente.
61
+ */
62
+ customMargin?: number;
63
+ /**
64
+ * Margem personalizada para visualização em dispositivos móveis.
65
+ */
66
+ customMarginMobile?: number;
67
+ /**
68
+ * Define se os valores CSV devem ser normalizados (removendo acentos, por exemplo).
69
+ */
70
+ normalize?: boolean;
71
+ /**
72
+ * Define se os valores CSV devem ser convertidos para maiúsculas.
73
+ */
74
+ csvUpper?: boolean;
75
+ /**
76
+ * Estilo personalizado para a tabela.
77
+ */
78
+ customTableStyle?: BoxProps;
79
+ /**
80
+ * Caminho múltiplo para os dados dentro do JSON retornado pela API.
81
+ */
82
+ multipleDataPath?: string;
83
+ /**
84
+ * Mensagem de erro personalizada para exibição na tabela.
85
+ */
86
+ customErrorMsg?: string | ReactNode;
87
+ /**
88
+ * Remove aspas dos valores no CSV.
89
+ */
90
+ removeQuotes?: boolean;
91
+ /**
92
+ * Lista de colunas a serem exibidas na tabela.
93
+ */
94
+ columns: ColumnData<T>[];
95
+ /**
96
+ * Nome da tabela para exibição.
97
+ */
98
+ tableName: string;
99
+ /**
100
+ * Exibe botão para exportar todos os dados para CSV.
101
+ */
102
+ csvShowAllButton?: boolean;
103
+ /**
104
+ * Lista de chaves que devem ser excluídas da exportação para CSV.
105
+ */
106
+ csvExcludeUpper?: string[];
107
+ /**
108
+ * Define se o CSV será exportado sem compactação.
109
+ */
110
+ csvWithoutZip?: boolean;
111
+ /**
112
+ * Define o tamanho colapsado das células expansíveis.
113
+ */
114
+ collapsedSize?: number;
115
+ /**
116
+ * Título do botão para exportação de todos os dados em CSV.
117
+ */
118
+ csvAllButtonTitle?: string;
119
+ /**
120
+ * Título do botão para exportação em CSV.
121
+ */
122
+ csvButtonTitle?: string;
123
+ /**
124
+ * Título do botão para exportação sem compactação.
125
+ */
126
+ csvNoZipText?: string;
127
+ /**
128
+ * Chave usada para nomeação de arquivos CSV compactados.
129
+ */
130
+ csvZipFileNamesKey?: string;
131
+ /**
132
+ * Define se será gerado um ZIP contendo os arquivos CSV.
133
+ */
134
+ generateCsvZip?: boolean;
135
+ /**
136
+ * Função de validação para exclusão de chaves ao exportar CSV.
137
+ */
138
+ csvExcludeValidate?: (key: string, value: string | number) => boolean;
139
+ /**
140
+ * Mapeamento de nomes personalizados para colunas do CSV.
141
+ */
142
+ csvCustomKeyNames?: {
143
+ [key: string]: string;
144
+ };
145
+ /**
146
+ * Define o tamanho máximo do texto antes de ser colapsado.
147
+ */
148
+ expandTextMaxLength?: number;
149
+ /**
150
+ * Lista de chaves a serem excluídas da exportação para CSV.
151
+ */
152
+ csvExcludeKeysCSV?: string[];
153
+ /**
154
+ * Lista de chaves a serem excluídas da exportação geral para CSV.
155
+ */
156
+ csvExcludeKeys?: string[];
157
+ /**
158
+ * Define se o título deve ser ocultado na exportação CSV.
159
+ */
160
+ hideTitleCSV?: boolean;
161
+ /**
162
+ * Lista de chaves a serem excluídas na exportação de todos os dados.
163
+ */
164
+ csvExcludeKeysAll?: string[];
165
+ /**
166
+ * Nome da chave do status para identificação de status da linha.
167
+ */
168
+ statusKeyName?: string;
169
+ /**
170
+ * Quantidade de itens por página.
171
+ */
172
+ itemCount?: number;
173
+ /**
174
+ * Componente para exibir ações específicas para cada linha.
175
+ */
176
+ action: (prop: any) => JSX.Element;
177
+ /**
178
+ * Configuração para exportação de arquivos CSV.
179
+ */
180
+ csv?: {
181
+ fileName: string;
182
+ };
183
+ /**
184
+ * Define o número de colunas exibidas na tabela.
185
+ */
186
+ columnSize: number;
187
+ /**
188
+ * Mensagens exibidas quando não há dados na tabela.
189
+ */
190
+ emptyMsg?: {
191
+ user: string;
192
+ public: string;
193
+ };
194
+ /**
195
+ * Caminho dentro do JSON de resposta onde os dados estão armazenados.
196
+ */
197
+ dataPath?: string;
198
+ /**
199
+ * Define se a autenticação via Keycloak será utilizada.
200
+ */
201
+ useKC?: boolean;
202
+ /**
203
+ * Dados da tabela
204
+ */
205
+ initialData: Array<Partial<T>> | null;
206
+ /**
207
+ * Variável para renderizar componente de carregamento
208
+ */
209
+ isLoading?: boolean;
210
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/index.d.ts CHANGED
@@ -19,6 +19,7 @@ import StepperBlock from './components/form/stepper/StepperBlock';
19
19
  import Switch from './components/form/switch/Switch';
20
20
  import { SwitchWatch, ToggleVisibility } from './components/form/switch/ToggleVisibility';
21
21
  import Table from './components/form/table/Table';
22
+ import GenericTable from './components/form/table/GenericTable';
22
23
  import NavBar from './components/navbar/NavBar';
23
24
  import TabNavBar from './components/navbar/TabNavBar';
24
25
  import FormProvider from './components/providers/FormProvider';
@@ -40,4 +41,4 @@ import Button from './components/utils/Bt';
40
41
  import Menu from './components/utils/CustomMenu';
41
42
  import GenericInput from './components/form/input/GenericInput';
42
43
  import { Map } from './components/map';
43
- export { CheckBox, CheckBoxWarning, DatePicker, GenericDatePicker, TimePicker, FileUpload, ActiveInput, AutoComplete, FetchAutoComplete, GenericFetchAutoComplete, Input, GenericInput, MaskInput, MultInput, GenericMultInput, GenericMaskInput, OtherCheckBox, Stepper, StepperBlock, Switch, SwitchWatch, ToggleVisibility, Table, NavBar, FormProvider, OAuthProvider, AUTH_COOKIE_NAME, AuthContext, FormContext, KeycloakAuthProvider, CheckBoxAdditional, RequiredCheckBoxGroup, FixedAutoComplete, Category, Field, FieldLabel, File, DropFileUpload, MODAL, SspComponentsProvider, TabNavBar, Button, Menu, Map };
44
+ export { CheckBox, CheckBoxWarning, DatePicker, GenericDatePicker, TimePicker, FileUpload, ActiveInput, AutoComplete, FetchAutoComplete, GenericFetchAutoComplete, Input, GenericInput, MaskInput, MultInput, GenericMultInput, GenericMaskInput, OtherCheckBox, Stepper, StepperBlock, Switch, SwitchWatch, ToggleVisibility, GenericTable, Table, NavBar, FormProvider, OAuthProvider, AUTH_COOKIE_NAME, AuthContext, FormContext, KeycloakAuthProvider, CheckBoxAdditional, RequiredCheckBoxGroup, FixedAutoComplete, Category, Field, FieldLabel, File, DropFileUpload, MODAL, SspComponentsProvider, TabNavBar, Button, Menu, Map, };
package/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Map = exports.Menu = exports.Button = exports.TabNavBar = exports.SspComponentsProvider = exports.MODAL = exports.DropFileUpload = exports.File = exports.FieldLabel = exports.Field = exports.Category = exports.FixedAutoComplete = exports.RequiredCheckBoxGroup = exports.CheckBoxAdditional = exports.KeycloakAuthProvider = exports.FormContext = exports.AuthContext = exports.AUTH_COOKIE_NAME = exports.OAuthProvider = exports.FormProvider = exports.NavBar = exports.Table = exports.ToggleVisibility = exports.SwitchWatch = exports.Switch = exports.StepperBlock = exports.Stepper = exports.OtherCheckBox = exports.GenericMaskInput = exports.GenericMultInput = exports.MultInput = exports.MaskInput = exports.GenericInput = exports.Input = exports.GenericFetchAutoComplete = exports.FetchAutoComplete = exports.AutoComplete = exports.ActiveInput = exports.FileUpload = exports.TimePicker = exports.GenericDatePicker = exports.DatePicker = exports.CheckBoxWarning = exports.CheckBox = void 0;
6
+ exports.Map = exports.Menu = exports.Button = exports.TabNavBar = exports.SspComponentsProvider = exports.MODAL = exports.DropFileUpload = exports.File = exports.FieldLabel = exports.Field = exports.Category = exports.FixedAutoComplete = exports.RequiredCheckBoxGroup = exports.CheckBoxAdditional = exports.KeycloakAuthProvider = exports.FormContext = exports.AuthContext = exports.AUTH_COOKIE_NAME = exports.OAuthProvider = exports.FormProvider = exports.NavBar = exports.Table = exports.GenericTable = exports.ToggleVisibility = exports.SwitchWatch = exports.Switch = exports.StepperBlock = exports.Stepper = exports.OtherCheckBox = exports.GenericMaskInput = exports.GenericMultInput = exports.MultInput = exports.MaskInput = exports.GenericInput = exports.Input = exports.GenericFetchAutoComplete = exports.FetchAutoComplete = exports.AutoComplete = exports.ActiveInput = exports.FileUpload = exports.TimePicker = exports.GenericDatePicker = exports.DatePicker = exports.CheckBoxWarning = exports.CheckBox = void 0;
7
7
  const CheckBox_1 = __importDefault(require("./components/form/checkbox/CheckBox"));
8
8
  exports.CheckBox = CheckBox_1.default;
9
9
  const CheckBoxWarning_1 = __importDefault(require("./components/form/checkbox/CheckBoxWarning"));
@@ -47,6 +47,8 @@ Object.defineProperty(exports, "SwitchWatch", { enumerable: true, get: function
47
47
  Object.defineProperty(exports, "ToggleVisibility", { enumerable: true, get: function () { return ToggleVisibility_1.ToggleVisibility; } });
48
48
  const Table_1 = __importDefault(require("./components/form/table/Table"));
49
49
  exports.Table = Table_1.default;
50
+ const GenericTable_1 = __importDefault(require("./components/form/table/GenericTable"));
51
+ exports.GenericTable = GenericTable_1.default;
50
52
  const NavBar_1 = __importDefault(require("./components/navbar/NavBar"));
51
53
  exports.NavBar = NavBar_1.default;
52
54
  const TabNavBar_1 = __importDefault(require("./components/navbar/TabNavBar"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssplib/react-components",
3
- "version": "0.0.271",
3
+ "version": "0.0.273",
4
4
  "description": "SSP React Components",
5
5
  "main": "index.js",
6
6
  "author": "Pedro Henrique <sr.hudrick@gmail.com>",