norma-library 0.5.129 → 0.5.131

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.
Files changed (161) hide show
  1. package/.babelrc.json +18 -18
  2. package/.prettierignore +10 -10
  3. package/.prettierrc.json +20 -20
  4. package/.storybook/main.ts +20 -20
  5. package/.storybook/preview.ts +15 -15
  6. package/README.md +43 -43
  7. package/commitlint.config.js +1 -1
  8. package/dist/esm/components/ProgressBar.js +1 -1
  9. package/dist/esm/components/ProgressBar.js.map +1 -1
  10. package/dist/esm/components/RadioGroup.js +1 -1
  11. package/dist/esm/components/RadioGroup.js.map +1 -1
  12. package/docs/index.md +118 -118
  13. package/package.json +136 -136
  14. package/src/components/Accordion.tsx +39 -39
  15. package/src/components/Avatar.tsx +17 -17
  16. package/src/components/Badge.tsx +14 -14
  17. package/src/components/Box/index.tsx +12 -12
  18. package/src/components/Box/interfaces.ts +3 -3
  19. package/src/components/Box/styles.tsx +22 -22
  20. package/src/components/Breadcrumb/index.tsx +27 -27
  21. package/src/components/Breadcrumb/interface.ts +8 -8
  22. package/src/components/Breadcrumb/styles.tsx +32 -32
  23. package/src/components/Button.tsx +26 -26
  24. package/src/components/Card.tsx +37 -37
  25. package/src/components/ChatMessage.tsx +87 -87
  26. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  27. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  28. package/src/components/CheckBox.tsx +21 -21
  29. package/src/components/DateInput/index.tsx +34 -34
  30. package/src/components/DateInput/interface.ts +13 -13
  31. package/src/components/DateInput/styles.tsx +27 -27
  32. package/src/components/DatePicker.tsx +67 -67
  33. package/src/components/DropDown.tsx +24 -24
  34. package/src/components/IconButton.tsx +37 -37
  35. package/src/components/Icons.tsx +82 -82
  36. package/src/components/Modal.tsx +113 -113
  37. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  38. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  39. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  40. package/src/components/MultiSelectInput/index.tsx +60 -60
  41. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  42. package/src/components/MultiSelectInput/styles.tsx +43 -43
  43. package/src/components/Paper.tsx +12 -12
  44. package/src/components/ProgressBar.tsx +50 -51
  45. package/src/components/RadioGroup.tsx +43 -43
  46. package/src/components/RangerSlider.tsx +65 -65
  47. package/src/components/Select.tsx +74 -74
  48. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  49. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  50. package/src/components/SelectInput/index.tsx +45 -45
  51. package/src/components/SelectInput/interfaces.ts +15 -15
  52. package/src/components/SelectInput/styles.tsx +31 -31
  53. package/src/components/Svgs.tsx +506 -506
  54. package/src/components/Table/components/header/index.tsx +86 -86
  55. package/src/components/Table/components/header/styles.tsx +59 -59
  56. package/src/components/Table/components/index.tsx +8 -8
  57. package/src/components/Table/components/pagination/index.tsx +39 -39
  58. package/src/components/Table/components/pagination/styles.tsx +28 -28
  59. package/src/components/Table/components/tbody/index.tsx +30 -30
  60. package/src/components/Table/components/tbody/styles.tsx +4 -4
  61. package/src/components/Table/index.tsx +317 -317
  62. package/src/components/Table/interface.ts +23 -23
  63. package/src/components/Table/styles.tsx +117 -117
  64. package/src/components/Tabs.tsx +105 -105
  65. package/src/components/Tag.tsx +33 -33
  66. package/src/components/TextField.tsx +19 -19
  67. package/src/components/TextInput/index.tsx +37 -37
  68. package/src/components/TextInput/interface.ts +9 -9
  69. package/src/components/TextInput/styles.tsx +23 -23
  70. package/src/components/TimeLine.tsx +89 -89
  71. package/src/components/TimePicker.tsx +78 -78
  72. package/src/components/Typography/Text/index.tsx +20 -20
  73. package/src/components/Typography/Text/interfaces.ts +5 -5
  74. package/src/components/Typography/Text/styles.tsx +40 -40
  75. package/src/components/Typography/Title/index.tsx +22 -22
  76. package/src/components/Typography/Title/interfaces.ts +6 -6
  77. package/src/components/Typography/Title/styles.tsx +40 -40
  78. package/src/components/Typography/index.tsx +6 -6
  79. package/src/components/UncontrolledTable/components/header/index.tsx +63 -63
  80. package/src/components/UncontrolledTable/components/header/styles.tsx +59 -59
  81. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  82. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  83. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  84. package/src/components/UncontrolledTable/components/tbody/index.tsx +30 -30
  85. package/src/components/UncontrolledTable/components/tbody/styles.tsx +4 -4
  86. package/src/components/UncontrolledTable/index.tsx +226 -226
  87. package/src/components/UncontrolledTable/interface.ts +42 -42
  88. package/src/components/UncontrolledTable/styles.tsx +120 -120
  89. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +51 -51
  90. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +68 -68
  91. package/src/components/index.ts +24 -24
  92. package/src/helpers/alignments.ts +14 -14
  93. package/src/helpers/borders.ts +18 -18
  94. package/src/helpers/colors.ts +206 -206
  95. package/src/helpers/index.ts +5 -5
  96. package/src/helpers/radios.ts +24 -24
  97. package/src/helpers/sizes.ts +72 -72
  98. package/src/index.ts +66 -66
  99. package/src/interfaces/Accordion.ts +12 -12
  100. package/src/interfaces/Avatar.tsx +15 -15
  101. package/src/interfaces/Badge.ts +19 -19
  102. package/src/interfaces/Button.ts +22 -22
  103. package/src/interfaces/Card.ts +11 -11
  104. package/src/interfaces/ChatMessage.ts +12 -12
  105. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  106. package/src/interfaces/CheckBox.ts +27 -27
  107. package/src/interfaces/DatePicker.ts +13 -13
  108. package/src/interfaces/DropDown.ts +14 -14
  109. package/src/interfaces/IconButton.ts +22 -22
  110. package/src/interfaces/Icons.ts +17 -17
  111. package/src/interfaces/Modal.ts +16 -16
  112. package/src/interfaces/Paper.ts +12 -12
  113. package/src/interfaces/ProgressBar.ts +19 -19
  114. package/src/interfaces/RadioGroup.ts +23 -23
  115. package/src/interfaces/RangerSlider.ts +21 -21
  116. package/src/interfaces/Select.ts +17 -17
  117. package/src/interfaces/Tabs.ts +19 -19
  118. package/src/interfaces/Tag.ts +17 -17
  119. package/src/interfaces/TextField.ts +44 -44
  120. package/src/interfaces/TimeLine.ts +11 -11
  121. package/src/interfaces/TimePicker.ts +13 -13
  122. package/src/interfaces/index.ts +23 -23
  123. package/src/providers/NormaProvider.tsx +13 -13
  124. package/src/sample-data-2.json +178 -178
  125. package/src/sample-data.json +177 -177
  126. package/src/stories/Accordion.stories.tsx +65 -65
  127. package/src/stories/Avatar.stories.tsx +123 -123
  128. package/src/stories/Badge.stories.tsx +39 -39
  129. package/src/stories/Box.stories.tsx +35 -35
  130. package/src/stories/Breadcrumb.stories.tsx +44 -44
  131. package/src/stories/Button.stories.tsx +93 -93
  132. package/src/stories/Card.stories.tsx +39 -39
  133. package/src/stories/ChatMessage.stories.tsx +84 -84
  134. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  135. package/src/stories/CheckBox.stories.tsx +88 -88
  136. package/src/stories/DateInput.stories.tsx +51 -51
  137. package/src/stories/DatePicker.stories.tsx +50 -50
  138. package/src/stories/DropDown.stories.tsx +57 -57
  139. package/src/stories/IconButton.stories.tsx +78 -78
  140. package/src/stories/Modal.stories.tsx +195 -195
  141. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  142. package/src/stories/Paper.stories.tsx +53 -53
  143. package/src/stories/ProgressBar.stories.tsx +95 -95
  144. package/src/stories/RadioGroup.stories.tsx +87 -87
  145. package/src/stories/RangerSlider.stories.tsx +58 -58
  146. package/src/stories/Select.stories.tsx +100 -100
  147. package/src/stories/SelectInput.stories.tsx +78 -78
  148. package/src/stories/Table.stories.tsx +372 -372
  149. package/src/stories/Tabs.stories.tsx +61 -61
  150. package/src/stories/Tag.stories.tsx +56 -56
  151. package/src/stories/Text.stories.tsx +37 -37
  152. package/src/stories/TextField.stories.tsx +310 -310
  153. package/src/stories/TextInput.stories.tsx +52 -52
  154. package/src/stories/TimeLine.stories.tsx +35 -35
  155. package/src/stories/TimePicker.stories.tsx +87 -87
  156. package/src/stories/Title.stories.tsx +43 -43
  157. package/src/stories/UncontrolledTable.stories.tsx +337 -337
  158. package/src/stories/UncontrolledTabs.stories.tsx +63 -63
  159. package/src/styles/globals.scss +17 -17
  160. package/src/types/index.ts +204 -204
  161. package/vite.config.ts +15 -15
@@ -1,226 +1,226 @@
1
- import React, { useState, useMemo } from 'react';
2
- import * as S from './styles';
3
- import {
4
- flexRender,
5
- getCoreRowModel,
6
- getSortedRowModel,
7
- useReactTable,
8
- ColumnFiltersState,
9
- TableOptions,
10
- } from '@tanstack/react-table';
11
-
12
- import { Pagination, Header, TBody } from './components';
13
- import { UncontrolledTableProps } from './interface';
14
-
15
- const UncontrolledTable = (props: UncontrolledTableProps) => {
16
- const {
17
- data,
18
- columns,
19
- onClick,
20
- onMouseOver,
21
- onMouseOut,
22
- showTotalResults,
23
- showSettings,
24
- onChangePage,
25
- pagination,
26
- totalPages,
27
- showClearFields,
28
- onClearFieldsClick,
29
- onFilterClick,
30
- onSortClick,
31
- customTotalResults,
32
- labels,
33
- tableClassName,
34
- } = props;
35
-
36
- const [openFilterDialog, setOpenFilterDialog] = useState('');
37
- const [sorting, setSorting] = useState<any>([]);
38
- const [filterByColumn, setFilterByColumn] = useState<ColumnFiltersState>([]);
39
- const [globalFilters, setGlobalFilters] = useState<any>([]);
40
- const [orderSmallest, setOrderSmallest] = useState(false);
41
- const [orderLargest, setOrderLargest] = useState(false);
42
-
43
- const reactTableConfig = useMemo(() => {
44
- const config: TableOptions<unknown> = {
45
- columns: columns as any,
46
- data,
47
- state: {
48
- sorting: sorting,
49
- columnFilters: filterByColumn,
50
- pagination: pagination,
51
- },
52
- rowCount: totalPages,
53
- getCoreRowModel: getCoreRowModel(),
54
- getSortedRowModel: getSortedRowModel(),
55
- onSortingChange: setSorting,
56
- onColumnFiltersChange: setFilterByColumn,
57
- manualPagination: true,
58
- };
59
-
60
- return config;
61
- }, [data, sorting, filterByColumn, columns, pagination]);
62
-
63
- const table = useReactTable(reactTableConfig);
64
-
65
- return (
66
- <S.Container>
67
- <Header
68
- table={table}
69
- globalFilters={globalFilters}
70
- orderSmallest={orderSmallest}
71
- orderLargest={orderLargest}
72
- showTotalResults={showTotalResults}
73
- showSettings={showSettings}
74
- setGlobalFilters={setGlobalFilters}
75
- setOrderLargest={setOrderLargest}
76
- setOrderSmallest={setOrderSmallest}
77
- showClearFiels={showClearFields}
78
- customTotalResults={customTotalResults}
79
- clearLabel={labels?.clearFilter}
80
- onClearFieldsClick={() => onClearFieldsClick && onClearFieldsClick()}
81
- />
82
- <S.Content>
83
- <S.Table className={tableClassName || ''}>
84
- <thead>
85
- {table.getHeaderGroups().map((headerGroup: any) => (
86
- <tr key={headerGroup.id}>
87
- {headerGroup.headers.map((header: any) => (
88
- <th key={header.id}>
89
- <div>
90
- <S.ColumnContent
91
- onClick={() => {
92
- if (!header?.column?.columnDef?.disableMenu)
93
- setOpenFilterDialog(header.column.columnDef.accessorKey);
94
- }}
95
- >
96
- <S.TextColumn $alone={header?.column?.columnDef?.disableMenu}>
97
- {!header.isPlaceholder && flexRender(header.column.columnDef.header, header.getContext())}
98
- </S.TextColumn>
99
- {!header?.column?.columnDef?.disableMenu && (
100
- <S.IconFilterDialog>
101
- <svg
102
- fill="#666"
103
- focusable="false"
104
- aria-hidden="true"
105
- viewBox="0 0 24 24"
106
- data-testid="ArrowDropDownIcon"
107
- >
108
- <path d="m7 10 5 5 5-5z"></path>
109
- </svg>
110
- </S.IconFilterDialog>
111
- )}
112
- </S.ColumnContent>
113
- {openFilterDialog === header.column.columnDef.accessorKey && (
114
- <>
115
- <S.backgroundDialog onClick={() => setOpenFilterDialog('')}></S.backgroundDialog>
116
- <S.FilterDialog>
117
- <S.ListFilterDialog>
118
- <S.OptionFilterDialog
119
- style={{
120
- background: orderSmallest ? 'rgba(0, 0, 0, 0.04)' : '',
121
- }}
122
- onClick={() => {
123
- onSortClick && onSortClick(header.column.columnDef.accessorKey, 'asc');
124
- setOpenFilterDialog('');
125
- }}
126
- >
127
- <div className="icon">
128
- <svg
129
- fill="#666"
130
- stroke="currentColor"
131
- strokeWidth="1.5"
132
- viewBox="0 0 24 24"
133
- xmlns="http://www.w3.org/2000/svg"
134
- aria-hidden="true"
135
- width="20"
136
- height="20"
137
- >
138
- <path
139
- strokeLinecap="round"
140
- strokeLinejoin="round"
141
- d="M12 4.5v15m0 0l6.75-6.75M12 19.5l-6.75-6.75"
142
- ></path>
143
- </svg>
144
- </div>
145
- <p>{labels?.orderAsc || 'Menor primeiro'}</p>
146
- </S.OptionFilterDialog>
147
- <S.OptionFilterDialog
148
- style={{
149
- background: orderLargest ? 'rgba(0, 0, 0, 0.04)' : '',
150
- }}
151
- onClick={() => {
152
- onSortClick && onSortClick(header.column.columnDef.accessorKey, 'desc');
153
- setOpenFilterDialog('');
154
- }}
155
- >
156
- <div className="icon rotate">
157
- <svg
158
- fill="#666"
159
- stroke="currentColor"
160
- strokeWidth="1.5"
161
- viewBox="0 0 24 24"
162
- xmlns="http://www.w3.org/2000/svg"
163
- aria-hidden="true"
164
- width="20"
165
- height="20"
166
- >
167
- <path
168
- strokeLinecap="round"
169
- strokeLinejoin="round"
170
- d="M12 4.5v15m0 0l6.75-6.75M12 19.5l-6.75-6.75"
171
- ></path>
172
- </svg>
173
- </div>
174
- <p>{labels?.orderDesc || 'Maior primeiro'}</p>
175
- </S.OptionFilterDialog>
176
- {!header?.column?.columnDef?.nofilter && (
177
- <S.OptionFilterDialog
178
- onClick={() => {
179
- onFilterClick && onFilterClick(header.column.columnDef.accessorKey);
180
- setOpenFilterDialog('');
181
- }}
182
- >
183
- <div className="icon">
184
- <svg
185
- fill="none"
186
- stroke="currentColor"
187
- strokeWidth="1.5"
188
- viewBox="0 0 24 24"
189
- xmlns="http://www.w3.org/2000/svg"
190
- aria-hidden="true"
191
- width="16"
192
- height="16"
193
- >
194
- <path
195
- strokeLinecap="round"
196
- strokeLinejoin="round"
197
- d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z"
198
- ></path>
199
- </svg>
200
- </div>
201
- <p>{labels?.filter || 'Filtrar por'}</p>
202
- </S.OptionFilterDialog>
203
- )}
204
- </S.ListFilterDialog>
205
- </S.FilterDialog>
206
- </>
207
- )}
208
- </div>
209
- </th>
210
- ))}
211
- </tr>
212
- ))}
213
- </thead>
214
- <TBody table={table} onClick={onClick} onMouseOver={onMouseOver} onMouseOut={onMouseOut} />
215
- </S.Table>
216
- </S.Content>
217
- <Pagination
218
- pagination={pagination}
219
- count={totalPages}
220
- onChangePage={(page: number) => onChangePage({ ...pagination, pageIndex: page })}
221
- />
222
- </S.Container>
223
- );
224
- };
225
-
226
- export default UncontrolledTable;
1
+ import React, { useState, useMemo } from 'react';
2
+ import * as S from './styles';
3
+ import {
4
+ flexRender,
5
+ getCoreRowModel,
6
+ getSortedRowModel,
7
+ useReactTable,
8
+ ColumnFiltersState,
9
+ TableOptions,
10
+ } from '@tanstack/react-table';
11
+
12
+ import { Pagination, Header, TBody } from './components';
13
+ import { UncontrolledTableProps } from './interface';
14
+
15
+ const UncontrolledTable = (props: UncontrolledTableProps) => {
16
+ const {
17
+ data,
18
+ columns,
19
+ onClick,
20
+ onMouseOver,
21
+ onMouseOut,
22
+ showTotalResults,
23
+ showSettings,
24
+ onChangePage,
25
+ pagination,
26
+ totalPages,
27
+ showClearFields,
28
+ onClearFieldsClick,
29
+ onFilterClick,
30
+ onSortClick,
31
+ customTotalResults,
32
+ labels,
33
+ tableClassName,
34
+ } = props;
35
+
36
+ const [openFilterDialog, setOpenFilterDialog] = useState('');
37
+ const [sorting, setSorting] = useState<any>([]);
38
+ const [filterByColumn, setFilterByColumn] = useState<ColumnFiltersState>([]);
39
+ const [globalFilters, setGlobalFilters] = useState<any>([]);
40
+ const [orderSmallest, setOrderSmallest] = useState(false);
41
+ const [orderLargest, setOrderLargest] = useState(false);
42
+
43
+ const reactTableConfig = useMemo(() => {
44
+ const config: TableOptions<unknown> = {
45
+ columns: columns as any,
46
+ data,
47
+ state: {
48
+ sorting: sorting,
49
+ columnFilters: filterByColumn,
50
+ pagination: pagination,
51
+ },
52
+ rowCount: totalPages,
53
+ getCoreRowModel: getCoreRowModel(),
54
+ getSortedRowModel: getSortedRowModel(),
55
+ onSortingChange: setSorting,
56
+ onColumnFiltersChange: setFilterByColumn,
57
+ manualPagination: true,
58
+ };
59
+
60
+ return config;
61
+ }, [data, sorting, filterByColumn, columns, pagination]);
62
+
63
+ const table = useReactTable(reactTableConfig);
64
+
65
+ return (
66
+ <S.Container>
67
+ <Header
68
+ table={table}
69
+ globalFilters={globalFilters}
70
+ orderSmallest={orderSmallest}
71
+ orderLargest={orderLargest}
72
+ showTotalResults={showTotalResults}
73
+ showSettings={showSettings}
74
+ setGlobalFilters={setGlobalFilters}
75
+ setOrderLargest={setOrderLargest}
76
+ setOrderSmallest={setOrderSmallest}
77
+ showClearFiels={showClearFields}
78
+ customTotalResults={customTotalResults}
79
+ clearLabel={labels?.clearFilter}
80
+ onClearFieldsClick={() => onClearFieldsClick && onClearFieldsClick()}
81
+ />
82
+ <S.Content>
83
+ <S.Table className={tableClassName || ''}>
84
+ <thead>
85
+ {table.getHeaderGroups().map((headerGroup: any) => (
86
+ <tr key={headerGroup.id}>
87
+ {headerGroup.headers.map((header: any) => (
88
+ <th key={header.id}>
89
+ <div>
90
+ <S.ColumnContent
91
+ onClick={() => {
92
+ if (!header?.column?.columnDef?.disableMenu)
93
+ setOpenFilterDialog(header.column.columnDef.accessorKey);
94
+ }}
95
+ >
96
+ <S.TextColumn $alone={header?.column?.columnDef?.disableMenu}>
97
+ {!header.isPlaceholder && flexRender(header.column.columnDef.header, header.getContext())}
98
+ </S.TextColumn>
99
+ {!header?.column?.columnDef?.disableMenu && (
100
+ <S.IconFilterDialog>
101
+ <svg
102
+ fill="#666"
103
+ focusable="false"
104
+ aria-hidden="true"
105
+ viewBox="0 0 24 24"
106
+ data-testid="ArrowDropDownIcon"
107
+ >
108
+ <path d="m7 10 5 5 5-5z"></path>
109
+ </svg>
110
+ </S.IconFilterDialog>
111
+ )}
112
+ </S.ColumnContent>
113
+ {openFilterDialog === header.column.columnDef.accessorKey && (
114
+ <>
115
+ <S.backgroundDialog onClick={() => setOpenFilterDialog('')}></S.backgroundDialog>
116
+ <S.FilterDialog>
117
+ <S.ListFilterDialog>
118
+ <S.OptionFilterDialog
119
+ style={{
120
+ background: orderSmallest ? 'rgba(0, 0, 0, 0.04)' : '',
121
+ }}
122
+ onClick={() => {
123
+ onSortClick && onSortClick(header.column.columnDef.accessorKey, 'asc');
124
+ setOpenFilterDialog('');
125
+ }}
126
+ >
127
+ <div className="icon">
128
+ <svg
129
+ fill="#666"
130
+ stroke="currentColor"
131
+ strokeWidth="1.5"
132
+ viewBox="0 0 24 24"
133
+ xmlns="http://www.w3.org/2000/svg"
134
+ aria-hidden="true"
135
+ width="20"
136
+ height="20"
137
+ >
138
+ <path
139
+ strokeLinecap="round"
140
+ strokeLinejoin="round"
141
+ d="M12 4.5v15m0 0l6.75-6.75M12 19.5l-6.75-6.75"
142
+ ></path>
143
+ </svg>
144
+ </div>
145
+ <p>{labels?.orderAsc || 'Menor primeiro'}</p>
146
+ </S.OptionFilterDialog>
147
+ <S.OptionFilterDialog
148
+ style={{
149
+ background: orderLargest ? 'rgba(0, 0, 0, 0.04)' : '',
150
+ }}
151
+ onClick={() => {
152
+ onSortClick && onSortClick(header.column.columnDef.accessorKey, 'desc');
153
+ setOpenFilterDialog('');
154
+ }}
155
+ >
156
+ <div className="icon rotate">
157
+ <svg
158
+ fill="#666"
159
+ stroke="currentColor"
160
+ strokeWidth="1.5"
161
+ viewBox="0 0 24 24"
162
+ xmlns="http://www.w3.org/2000/svg"
163
+ aria-hidden="true"
164
+ width="20"
165
+ height="20"
166
+ >
167
+ <path
168
+ strokeLinecap="round"
169
+ strokeLinejoin="round"
170
+ d="M12 4.5v15m0 0l6.75-6.75M12 19.5l-6.75-6.75"
171
+ ></path>
172
+ </svg>
173
+ </div>
174
+ <p>{labels?.orderDesc || 'Maior primeiro'}</p>
175
+ </S.OptionFilterDialog>
176
+ {!header?.column?.columnDef?.nofilter && (
177
+ <S.OptionFilterDialog
178
+ onClick={() => {
179
+ onFilterClick && onFilterClick(header.column.columnDef.accessorKey);
180
+ setOpenFilterDialog('');
181
+ }}
182
+ >
183
+ <div className="icon">
184
+ <svg
185
+ fill="none"
186
+ stroke="currentColor"
187
+ strokeWidth="1.5"
188
+ viewBox="0 0 24 24"
189
+ xmlns="http://www.w3.org/2000/svg"
190
+ aria-hidden="true"
191
+ width="16"
192
+ height="16"
193
+ >
194
+ <path
195
+ strokeLinecap="round"
196
+ strokeLinejoin="round"
197
+ d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z"
198
+ ></path>
199
+ </svg>
200
+ </div>
201
+ <p>{labels?.filter || 'Filtrar por'}</p>
202
+ </S.OptionFilterDialog>
203
+ )}
204
+ </S.ListFilterDialog>
205
+ </S.FilterDialog>
206
+ </>
207
+ )}
208
+ </div>
209
+ </th>
210
+ ))}
211
+ </tr>
212
+ ))}
213
+ </thead>
214
+ <TBody table={table} onClick={onClick} onMouseOver={onMouseOver} onMouseOut={onMouseOut} />
215
+ </S.Table>
216
+ </S.Content>
217
+ <Pagination
218
+ pagination={pagination}
219
+ count={totalPages}
220
+ onChangePage={(page: number) => onChangePage({ ...pagination, pageIndex: page })}
221
+ />
222
+ </S.Container>
223
+ );
224
+ };
225
+
226
+ export default UncontrolledTable;
@@ -1,42 +1,42 @@
1
- import { ColumnDef } from '@tanstack/react-table';
2
-
3
- type Labels = {
4
- orderAsc: string;
5
- orderDesc: string;
6
- filter: string;
7
- clearFilter: string;
8
- };
9
-
10
- interface Pagination {
11
- pageIndex: number;
12
- pageSize: number;
13
- }
14
-
15
- export interface UncontrolledTableProps {
16
- data: any;
17
- columns: ColumnDef<ColumnsTable>[];
18
- onClick: any;
19
- onMouseOver: any;
20
- onMouseOut: any;
21
- showTotalResults: boolean;
22
- showSettings: boolean;
23
- pagination: Pagination;
24
- totalPages: number;
25
- showClearFields?: boolean;
26
- customTotalResults?: string;
27
- onChangePage: (pagination: Pagination) => void;
28
- onClearFieldsClick?: () => void;
29
- onFilterClick?: (column: string) => void;
30
- onSortClick?: (column: string, direction: string) => void;
31
- labels?: Labels;
32
- tableClassName?: string;
33
- }
34
-
35
- export interface ColumnsTable {
36
- header: string;
37
- accessorKey: string;
38
- type: string;
39
- enableColumnFilter: boolean;
40
- filterFn: string;
41
- nofilter?: boolean;
42
- }
1
+ import { ColumnDef } from '@tanstack/react-table';
2
+
3
+ type Labels = {
4
+ orderAsc: string;
5
+ orderDesc: string;
6
+ filter: string;
7
+ clearFilter: string;
8
+ };
9
+
10
+ interface Pagination {
11
+ pageIndex: number;
12
+ pageSize: number;
13
+ }
14
+
15
+ export interface UncontrolledTableProps {
16
+ data: any;
17
+ columns: ColumnDef<ColumnsTable>[];
18
+ onClick: any;
19
+ onMouseOver: any;
20
+ onMouseOut: any;
21
+ showTotalResults: boolean;
22
+ showSettings: boolean;
23
+ pagination: Pagination;
24
+ totalPages: number;
25
+ showClearFields?: boolean;
26
+ customTotalResults?: string;
27
+ onChangePage: (pagination: Pagination) => void;
28
+ onClearFieldsClick?: () => void;
29
+ onFilterClick?: (column: string) => void;
30
+ onSortClick?: (column: string, direction: string) => void;
31
+ labels?: Labels;
32
+ tableClassName?: string;
33
+ }
34
+
35
+ export interface ColumnsTable {
36
+ header: string;
37
+ accessorKey: string;
38
+ type: string;
39
+ enableColumnFilter: boolean;
40
+ filterFn: string;
41
+ nofilter?: boolean;
42
+ }