norma-library 0.6.65 → 0.6.67

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 (202) 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/Box/interfaces.d.ts +0 -1
  9. package/dist/esm/components/Box/styles.d.ts +0 -1
  10. package/dist/esm/components/Breadcrumb/styles.d.ts +0 -1
  11. package/dist/esm/components/Card.js +7 -11
  12. package/dist/esm/components/Card.js.map +1 -1
  13. package/dist/esm/components/DateInput/styles.d.ts +0 -1
  14. package/dist/esm/components/Icons.d.ts +2 -2
  15. package/dist/esm/components/MultiSelectInput/components/Option/styles.d.ts +0 -1
  16. package/dist/esm/components/MultiSelectInput/styles.d.ts +0 -1
  17. package/dist/esm/components/SelectInput/components/Option/styles.d.ts +0 -1
  18. package/dist/esm/components/SelectInput/styles.d.ts +0 -1
  19. package/dist/esm/components/StatusModal/StatusModal.style.d.ts +1 -2
  20. package/dist/esm/components/Table/components/header/styles.d.ts +0 -1
  21. package/dist/esm/components/Table/components/pagination/styles.d.ts +0 -1
  22. package/dist/esm/components/Table/styles.d.ts +0 -1
  23. package/dist/esm/components/TextInput/styles.d.ts +0 -1
  24. package/dist/esm/components/Typography/Text/interfaces.d.ts +0 -1
  25. package/dist/esm/components/Typography/Text/styles.d.ts +0 -1
  26. package/dist/esm/components/Typography/Title/interfaces.d.ts +0 -1
  27. package/dist/esm/components/Typography/Title/styles.d.ts +0 -1
  28. package/dist/esm/components/UncontrolledTable/components/header/styles.d.ts +0 -1
  29. package/dist/esm/components/UncontrolledTable/components/pagination/styles.d.ts +0 -1
  30. package/dist/esm/components/UncontrolledTable/components/tbody/styles.d.ts +0 -1
  31. package/dist/esm/components/UncontrolledTable/interface.d.ts +0 -1
  32. package/dist/esm/components/UncontrolledTable/styles.d.ts +2 -3
  33. package/dist/esm/components/UncontrolledTabs/UncontrolledTabsInfo.style.d.ts +0 -1
  34. package/dist/esm/interfaces/Accordion.d.ts +0 -1
  35. package/dist/esm/interfaces/Card.d.ts +0 -1
  36. package/dist/esm/interfaces/ChatMessage.d.ts +0 -1
  37. package/dist/esm/interfaces/DatePicker.d.ts +0 -1
  38. package/dist/esm/interfaces/Modal.d.ts +0 -1
  39. package/dist/esm/interfaces/Paper.d.ts +0 -1
  40. package/dist/esm/interfaces/ProgressBar.d.ts +0 -1
  41. package/dist/esm/interfaces/Select.d.ts +0 -1
  42. package/dist/esm/interfaces/Tabs.d.ts +0 -1
  43. package/dist/esm/interfaces/Tag.d.ts +0 -1
  44. package/dist/esm/interfaces/TimeLine.d.ts +0 -1
  45. package/dist/esm/interfaces/TimePicker.d.ts +0 -1
  46. package/dist/esm/types/index.d.ts +0 -1
  47. package/docs/index.md +118 -118
  48. package/package.json +136 -136
  49. package/src/components/Accordion.tsx +39 -39
  50. package/src/components/Avatar.tsx +17 -17
  51. package/src/components/Badge.tsx +14 -14
  52. package/src/components/Box/index.tsx +12 -12
  53. package/src/components/Box/interfaces.ts +3 -3
  54. package/src/components/Box/styles.tsx +22 -22
  55. package/src/components/Breadcrumb/index.tsx +27 -27
  56. package/src/components/Breadcrumb/interface.ts +8 -8
  57. package/src/components/Breadcrumb/styles.tsx +32 -32
  58. package/src/components/Button.tsx +26 -26
  59. package/src/components/Card.tsx +36 -38
  60. package/src/components/ChatMessage.tsx +87 -87
  61. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  62. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  63. package/src/components/CheckBox.tsx +21 -21
  64. package/src/components/DateInput/index.tsx +34 -34
  65. package/src/components/DateInput/interface.ts +13 -13
  66. package/src/components/DateInput/styles.tsx +27 -27
  67. package/src/components/DatePicker.tsx +67 -67
  68. package/src/components/DropDown.tsx +24 -24
  69. package/src/components/IconButton.tsx +37 -37
  70. package/src/components/Icons.tsx +82 -82
  71. package/src/components/Modal.tsx +103 -103
  72. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  73. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  74. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  75. package/src/components/MultiSelectInput/index.tsx +60 -60
  76. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  77. package/src/components/MultiSelectInput/styles.tsx +43 -43
  78. package/src/components/Paper.tsx +12 -12
  79. package/src/components/ProgressBar.tsx +71 -71
  80. package/src/components/RadioGroup.tsx +43 -43
  81. package/src/components/RangerSlider.tsx +65 -65
  82. package/src/components/Select.tsx +74 -74
  83. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  84. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  85. package/src/components/SelectInput/index.tsx +45 -45
  86. package/src/components/SelectInput/interfaces.ts +15 -15
  87. package/src/components/SelectInput/styles.tsx +31 -31
  88. package/src/components/StatusModal/StatusModal.style.tsx +75 -75
  89. package/src/components/StatusModal/StatusModal.tsx +58 -58
  90. package/src/components/Svgs.tsx +506 -506
  91. package/src/components/Table/components/header/index.tsx +86 -86
  92. package/src/components/Table/components/header/styles.tsx +59 -59
  93. package/src/components/Table/components/index.tsx +8 -8
  94. package/src/components/Table/components/pagination/index.tsx +39 -39
  95. package/src/components/Table/components/pagination/styles.tsx +28 -28
  96. package/src/components/Table/components/tbody/index.tsx +30 -30
  97. package/src/components/Table/components/tbody/styles.tsx +4 -4
  98. package/src/components/Table/index.tsx +317 -317
  99. package/src/components/Table/interface.ts +23 -23
  100. package/src/components/Table/styles.tsx +117 -117
  101. package/src/components/Tabs.tsx +105 -105
  102. package/src/components/Tag.tsx +33 -33
  103. package/src/components/TextField.tsx +19 -19
  104. package/src/components/TextInput/index.tsx +37 -37
  105. package/src/components/TextInput/interface.ts +9 -9
  106. package/src/components/TextInput/styles.tsx +23 -23
  107. package/src/components/TimeLine.tsx +89 -89
  108. package/src/components/TimePicker.tsx +78 -78
  109. package/src/components/Typography/Text/index.tsx +20 -20
  110. package/src/components/Typography/Text/interfaces.ts +5 -5
  111. package/src/components/Typography/Text/styles.tsx +40 -40
  112. package/src/components/Typography/Title/index.tsx +22 -22
  113. package/src/components/Typography/Title/interfaces.ts +6 -6
  114. package/src/components/Typography/Title/styles.tsx +40 -40
  115. package/src/components/Typography/index.tsx +6 -6
  116. package/src/components/UncontrolledTable/components/header/index.tsx +72 -72
  117. package/src/components/UncontrolledTable/components/header/styles.tsx +66 -66
  118. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  119. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  120. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  121. package/src/components/UncontrolledTable/components/tbody/index.tsx +33 -33
  122. package/src/components/UncontrolledTable/components/tbody/styles.tsx +32 -32
  123. package/src/components/UncontrolledTable/index.tsx +223 -223
  124. package/src/components/UncontrolledTable/interface.ts +46 -46
  125. package/src/components/UncontrolledTable/styles.tsx +123 -123
  126. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +58 -58
  127. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +71 -71
  128. package/src/components/UncontrolledTabs/UncontrolledTabsInfo.style.ts +8 -8
  129. package/src/components/index.ts +24 -24
  130. package/src/helpers/alignments.ts +14 -14
  131. package/src/helpers/borders.ts +18 -18
  132. package/src/helpers/colors.ts +264 -264
  133. package/src/helpers/index.ts +5 -5
  134. package/src/helpers/radios.ts +24 -24
  135. package/src/helpers/sizes.ts +72 -72
  136. package/src/hooks/useClickOutside.tsx +18 -18
  137. package/src/index.ts +70 -70
  138. package/src/interfaces/Accordion.ts +12 -12
  139. package/src/interfaces/Avatar.tsx +15 -15
  140. package/src/interfaces/Badge.ts +19 -19
  141. package/src/interfaces/Button.ts +19 -19
  142. package/src/interfaces/Card.ts +11 -11
  143. package/src/interfaces/ChatMessage.ts +12 -12
  144. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  145. package/src/interfaces/CheckBox.ts +27 -27
  146. package/src/interfaces/DatePicker.ts +13 -13
  147. package/src/interfaces/DropDown.ts +14 -14
  148. package/src/interfaces/IconButton.ts +22 -22
  149. package/src/interfaces/Icons.ts +17 -17
  150. package/src/interfaces/Modal.ts +18 -18
  151. package/src/interfaces/Paper.ts +12 -12
  152. package/src/interfaces/ProgressBar.ts +29 -29
  153. package/src/interfaces/RadioGroup.ts +23 -23
  154. package/src/interfaces/RangerSlider.ts +21 -21
  155. package/src/interfaces/Select.ts +17 -17
  156. package/src/interfaces/Tabs.ts +19 -19
  157. package/src/interfaces/Tag.ts +17 -17
  158. package/src/interfaces/TextField.ts +44 -44
  159. package/src/interfaces/TimeLine.ts +11 -11
  160. package/src/interfaces/TimePicker.ts +13 -13
  161. package/src/interfaces/index.ts +23 -23
  162. package/src/providers/NormaProvider.tsx +13 -13
  163. package/src/sample-data-2.json +178 -178
  164. package/src/sample-data.json +177 -177
  165. package/src/stories/Accordion.stories.tsx +65 -65
  166. package/src/stories/Avatar.stories.tsx +123 -123
  167. package/src/stories/Badge.stories.tsx +39 -39
  168. package/src/stories/Box.stories.tsx +35 -35
  169. package/src/stories/Breadcrumb.stories.tsx +44 -44
  170. package/src/stories/Button.stories.tsx +93 -93
  171. package/src/stories/Card.stories.tsx +39 -39
  172. package/src/stories/ChatMessage.stories.tsx +84 -84
  173. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  174. package/src/stories/CheckBox.stories.tsx +88 -88
  175. package/src/stories/DateInput.stories.tsx +51 -51
  176. package/src/stories/DatePicker.stories.tsx +50 -50
  177. package/src/stories/DropDown.stories.tsx +57 -57
  178. package/src/stories/IconButton.stories.tsx +78 -78
  179. package/src/stories/Modal.stories.tsx +246 -246
  180. package/src/stories/ModalStatus.stories.tsx +46 -46
  181. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  182. package/src/stories/Paper.stories.tsx +53 -53
  183. package/src/stories/ProgressBar.stories.tsx +116 -116
  184. package/src/stories/RadioGroup.stories.tsx +87 -87
  185. package/src/stories/RangerSlider.stories.tsx +149 -149
  186. package/src/stories/Select.stories.tsx +100 -100
  187. package/src/stories/SelectInput.stories.tsx +78 -78
  188. package/src/stories/Table.stories.tsx +372 -372
  189. package/src/stories/Tabs.stories.tsx +61 -61
  190. package/src/stories/Tag.stories.tsx +56 -56
  191. package/src/stories/Text.stories.tsx +37 -37
  192. package/src/stories/TextField.stories.tsx +310 -310
  193. package/src/stories/TextInput.stories.tsx +52 -52
  194. package/src/stories/TimeLine.stories.tsx +35 -35
  195. package/src/stories/TimePicker.stories.tsx +87 -87
  196. package/src/stories/Title.stories.tsx +43 -43
  197. package/src/stories/UncontrolledTable.stories.tsx +315 -315
  198. package/src/stories/UncontrolledTabs.stories.tsx +74 -74
  199. package/src/styles/globals.scss +17 -17
  200. package/src/types/index.ts +207 -207
  201. package/src/utils/styledBreakpoints.ts +25 -25
  202. package/vite.config.ts +15 -15
@@ -1,87 +1,87 @@
1
- import React, { useState } from "react"
2
- import * as S from "./styles"
3
- import SettingsIcon from '@mui/icons-material/Settings';
4
-
5
- const Header:React.FC<any> = ({
6
- table,
7
- globalFilters,
8
- orderSmallest,
9
- orderLargest,
10
- showTotalResults,
11
- showSettings,
12
- setGlobalFilters,
13
- setOrderLargest,
14
- setOrderSmallest,
15
- customTotalResult
16
- }) => {
17
- const [openTools, setOpenTools] = useState(false)
18
-
19
- const totalResults = customTotalResult ? customTotalResult : `${table.getRowModel().rows.length} resultados encontrados.`
20
-
21
- return (
22
- <S.Header $showResults={showTotalResults}>
23
- <div>
24
- { showTotalResults
25
- ? <S.Results>
26
- <S.TextResult>{totalResults}</S.TextResult>
27
- <S.TextClearSearchContent>
28
- { globalFilters.length || !!orderSmallest || !!orderLargest ? <S.TextClearSearch onClick={() => {
29
- table.resetColumnFilters(true)
30
- setGlobalFilters([])
31
- setOrderLargest(false)
32
- setOrderSmallest(false)
33
- table.resetSorting(true)
34
- }}>Limpar busca</S.TextClearSearch> : null }
35
- </S.TextClearSearchContent>
36
- </S.Results>
37
- : null
38
- }
39
- </div>
40
- {
41
- !showTotalResults
42
- ? (
43
- globalFilters.length || !!orderSmallest || !!orderLargest ? <S.TextClearSearch onClick={() => {
44
- table.resetColumnFilters(true)
45
- setGlobalFilters([])
46
- setOrderLargest(false)
47
- setOrderSmallest(false)
48
- table.resetSorting(true)
49
- }}>Limpar busca</S.TextClearSearch> : null
50
- )
51
- : null
52
- }
53
- <S.Tools>
54
- { showSettings
55
- ? <S.IconTools onClick={() => setOpenTools(!openTools)}>
56
- <SettingsIcon sx={{ fontSize: 16, color: '#DE8B50' }} />
57
- </S.IconTools>
58
- : null
59
- }
60
- {
61
- openTools
62
- ? <S.ListTools>
63
- { table.getAllLeafColumns().map((column: any) => {
64
- return (
65
- <div key={column.id} className="px-1">
66
- <label>
67
- <input
68
- {...{
69
- type: 'checkbox',
70
- checked: column.getIsVisible(),
71
- onChange: column.getToggleVisibilityHandler(),
72
- }}
73
- />{' '}
74
- {column.id}
75
- </label>
76
- </div>
77
- )
78
- })}
79
- </S.ListTools>
80
- : null
81
- }
82
- </S.Tools>
83
- </S.Header>
84
- )
85
- }
86
-
1
+ import React, { useState } from "react"
2
+ import * as S from "./styles"
3
+ import SettingsIcon from '@mui/icons-material/Settings';
4
+
5
+ const Header:React.FC<any> = ({
6
+ table,
7
+ globalFilters,
8
+ orderSmallest,
9
+ orderLargest,
10
+ showTotalResults,
11
+ showSettings,
12
+ setGlobalFilters,
13
+ setOrderLargest,
14
+ setOrderSmallest,
15
+ customTotalResult
16
+ }) => {
17
+ const [openTools, setOpenTools] = useState(false)
18
+
19
+ const totalResults = customTotalResult ? customTotalResult : `${table.getRowModel().rows.length} resultados encontrados.`
20
+
21
+ return (
22
+ <S.Header $showResults={showTotalResults}>
23
+ <div>
24
+ { showTotalResults
25
+ ? <S.Results>
26
+ <S.TextResult>{totalResults}</S.TextResult>
27
+ <S.TextClearSearchContent>
28
+ { globalFilters.length || !!orderSmallest || !!orderLargest ? <S.TextClearSearch onClick={() => {
29
+ table.resetColumnFilters(true)
30
+ setGlobalFilters([])
31
+ setOrderLargest(false)
32
+ setOrderSmallest(false)
33
+ table.resetSorting(true)
34
+ }}>Limpar busca</S.TextClearSearch> : null }
35
+ </S.TextClearSearchContent>
36
+ </S.Results>
37
+ : null
38
+ }
39
+ </div>
40
+ {
41
+ !showTotalResults
42
+ ? (
43
+ globalFilters.length || !!orderSmallest || !!orderLargest ? <S.TextClearSearch onClick={() => {
44
+ table.resetColumnFilters(true)
45
+ setGlobalFilters([])
46
+ setOrderLargest(false)
47
+ setOrderSmallest(false)
48
+ table.resetSorting(true)
49
+ }}>Limpar busca</S.TextClearSearch> : null
50
+ )
51
+ : null
52
+ }
53
+ <S.Tools>
54
+ { showSettings
55
+ ? <S.IconTools onClick={() => setOpenTools(!openTools)}>
56
+ <SettingsIcon sx={{ fontSize: 16, color: '#DE8B50' }} />
57
+ </S.IconTools>
58
+ : null
59
+ }
60
+ {
61
+ openTools
62
+ ? <S.ListTools>
63
+ { table.getAllLeafColumns().map((column: any) => {
64
+ return (
65
+ <div key={column.id} className="px-1">
66
+ <label>
67
+ <input
68
+ {...{
69
+ type: 'checkbox',
70
+ checked: column.getIsVisible(),
71
+ onChange: column.getToggleVisibilityHandler(),
72
+ }}
73
+ />{' '}
74
+ {column.id}
75
+ </label>
76
+ </div>
77
+ )
78
+ })}
79
+ </S.ListTools>
80
+ : null
81
+ }
82
+ </S.Tools>
83
+ </S.Header>
84
+ )
85
+ }
86
+
87
87
  export default Header
@@ -1,60 +1,60 @@
1
- import styled from "styled-components";
2
-
3
- export const Header = styled.div<any>`
4
- margin: ${props => props.$showResults ? '0 16px 32px 16px;' : '0 16px;' };
5
- display: flex;
6
- justify-content: space-between;
7
- `
8
-
9
- export const Results = styled.div`
10
- display: flex;
11
- flex-direction: column;
12
- gap: 8px;
13
- `
14
-
15
- export const Tools = styled.div`
16
-
17
- `
18
-
19
- export const TextResult = styled.div`
20
- color: #666666;
21
- font-size: 16px;
22
- `
23
-
24
- export const TextClearSearchContent = styled.div`
25
- height: 10px;
26
- `
27
-
28
- export const TextClearSearch = styled.p`
29
- color: #DE8B50;
30
- font-size: 14px;
31
- cursor: pointer;
32
- margin: 0;
33
- &:hover {
34
- text-decoration: underline;
35
- }
36
- `
37
-
38
- export const IconTools = styled.div`
39
- width: 24px;
40
- height: 24px;
41
- cursor: pointer;
42
- `
43
-
44
- export const ListTools = styled.div`
45
- padding: 12px;
46
- margin: 6px 0 0 -106px;
47
- position: absolute;
48
- background: #fff;
49
- box-shadow: 0px 3px 6px #00000029;
50
- border: 1px solid #E0E0E0;
51
- display: flex;
52
- flex-direction: column;
53
- gap: 8px;
54
- font-size: 14px;
55
- label {
56
- display: flex;
57
- gap: 8px;
58
- align-items: center;
59
- }
1
+ import styled from "styled-components";
2
+
3
+ export const Header = styled.div<any>`
4
+ margin: ${props => props.$showResults ? '0 16px 32px 16px;' : '0 16px;' };
5
+ display: flex;
6
+ justify-content: space-between;
7
+ `
8
+
9
+ export const Results = styled.div`
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: 8px;
13
+ `
14
+
15
+ export const Tools = styled.div`
16
+
17
+ `
18
+
19
+ export const TextResult = styled.div`
20
+ color: #666666;
21
+ font-size: 16px;
22
+ `
23
+
24
+ export const TextClearSearchContent = styled.div`
25
+ height: 10px;
26
+ `
27
+
28
+ export const TextClearSearch = styled.p`
29
+ color: #DE8B50;
30
+ font-size: 14px;
31
+ cursor: pointer;
32
+ margin: 0;
33
+ &:hover {
34
+ text-decoration: underline;
35
+ }
36
+ `
37
+
38
+ export const IconTools = styled.div`
39
+ width: 24px;
40
+ height: 24px;
41
+ cursor: pointer;
42
+ `
43
+
44
+ export const ListTools = styled.div`
45
+ padding: 12px;
46
+ margin: 6px 0 0 -106px;
47
+ position: absolute;
48
+ background: #fff;
49
+ box-shadow: 0px 3px 6px #00000029;
50
+ border: 1px solid #E0E0E0;
51
+ display: flex;
52
+ flex-direction: column;
53
+ gap: 8px;
54
+ font-size: 14px;
55
+ label {
56
+ display: flex;
57
+ gap: 8px;
58
+ align-items: center;
59
+ }
60
60
  `
@@ -1,9 +1,9 @@
1
- import Pagination from "./pagination";
2
- import Header from "./header"
3
- import TBody from "./tbody";
4
-
5
- export {
6
- Pagination,
7
- Header,
8
- TBody
1
+ import Pagination from "./pagination";
2
+ import Header from "./header"
3
+ import TBody from "./tbody";
4
+
5
+ export {
6
+ Pagination,
7
+ Header,
8
+ TBody
9
9
  }
@@ -1,40 +1,40 @@
1
- import React, { useCallback } from "react"
2
- import { Pagination as MuiPagination, PaginationItem } from '@mui/material'
3
- import * as S from "./styles"
4
-
5
- const PreviousPagination:React.FC<any> = () => {
6
- return <span>{'<'}</span>
7
- }
8
- const NextPagination:React.FC<any> = () => {
9
- return <span>{'>'}</span>
10
- }
11
-
12
- const Pagination:React.FC<any> = ({ table, onChangePage }) => {
13
-
14
- const onPageChange = useCallback((_event:React.ChangeEvent<unknown>, page:number) => {
15
- if(!!onChangePage) {
16
- onChangePage(page-1)
17
- } else {
18
- table.setPageIndex(page - 1)
19
- }
20
- }, [table])
21
-
22
- return <S.Pagination>
23
- <div className='content'>
24
- <MuiPagination
25
- onChange={onPageChange}
26
- count={table.getPageCount()}
27
- renderItem={(item:any) => (
28
- <PaginationItem
29
- classes={{root: 'button', selected: 'button-active'}}
30
- slots={{ previous: PreviousPagination, next: NextPagination }}
31
- sx={{height: '35px', minWidth: '35px'}}
32
- {...item}
33
- />
34
- )}
35
- />
36
- </div>
37
- </S.Pagination>
38
- }
39
-
1
+ import React, { useCallback } from "react"
2
+ import { Pagination as MuiPagination, PaginationItem } from '@mui/material'
3
+ import * as S from "./styles"
4
+
5
+ const PreviousPagination:React.FC<any> = () => {
6
+ return <span>{'<'}</span>
7
+ }
8
+ const NextPagination:React.FC<any> = () => {
9
+ return <span>{'>'}</span>
10
+ }
11
+
12
+ const Pagination:React.FC<any> = ({ table, onChangePage }) => {
13
+
14
+ const onPageChange = useCallback((_event:React.ChangeEvent<unknown>, page:number) => {
15
+ if(!!onChangePage) {
16
+ onChangePage(page-1)
17
+ } else {
18
+ table.setPageIndex(page - 1)
19
+ }
20
+ }, [table])
21
+
22
+ return <S.Pagination>
23
+ <div className='content'>
24
+ <MuiPagination
25
+ onChange={onPageChange}
26
+ count={table.getPageCount()}
27
+ renderItem={(item:any) => (
28
+ <PaginationItem
29
+ classes={{root: 'button', selected: 'button-active'}}
30
+ slots={{ previous: PreviousPagination, next: NextPagination }}
31
+ sx={{height: '35px', minWidth: '35px'}}
32
+ {...item}
33
+ />
34
+ )}
35
+ />
36
+ </div>
37
+ </S.Pagination>
38
+ }
39
+
40
40
  export default Pagination
@@ -1,29 +1,29 @@
1
- import styled from "styled-components";
2
-
3
- export const Pagination = styled.div`
4
- width: 100%;
5
- margin: 24px 0 0 0;
6
- display: flex;
7
- justify-content: center;
8
- .content {
9
- display: flex;
10
- gap: 8px;
11
- .button {
12
- border: 1px solid #E8E9EC;
13
- background: #fff;
14
- border-radius: 4px;
15
- color: #4D4F5C;
16
- cursor: pointer;
17
- &:disabled {
18
- opacity: 0.4;
19
- }
20
- }
21
- .button-active {
22
- border: 1px solid #FFDB9F;
23
- background: #FFDB9F;
24
- color: #B74616;
25
- border-radius: 4px;
26
- cursor: pointer;
27
- }
28
- }
1
+ import styled from "styled-components";
2
+
3
+ export const Pagination = styled.div`
4
+ width: 100%;
5
+ margin: 24px 0 0 0;
6
+ display: flex;
7
+ justify-content: center;
8
+ .content {
9
+ display: flex;
10
+ gap: 8px;
11
+ .button {
12
+ border: 1px solid #E8E9EC;
13
+ background: #fff;
14
+ border-radius: 4px;
15
+ color: #4D4F5C;
16
+ cursor: pointer;
17
+ &:disabled {
18
+ opacity: 0.4;
19
+ }
20
+ }
21
+ .button-active {
22
+ border: 1px solid #FFDB9F;
23
+ background: #FFDB9F;
24
+ color: #B74616;
25
+ border-radius: 4px;
26
+ cursor: pointer;
27
+ }
28
+ }
29
29
  `
@@ -1,31 +1,31 @@
1
- import React from "react"
2
- import { flexRender } from '@tanstack/react-table'
3
- import * as S from "./styles"
4
-
5
- const TBody:React.FC<any> = ({ table, onClick, onMouseOver, onMouseOut }) => {
6
- return (
7
- <tbody>
8
- { table.getRowModel().rows.map((row: any, index: number) => {
9
- return <S.Tr
10
- key={index}
11
- $hasAction={!!onClick || !!onMouseOver || !!onMouseOut}
12
- onClick={() => onClick ? onClick(row.original) : null}
13
- onMouseOver={() => onMouseOver ? onMouseOver(row.original) : null}
14
- onMouseOut={() => onMouseOut ? onMouseOut(row.original) : null}>
15
- { row.getVisibleCells().map((cell: any, index: number) => {
16
- return (
17
- <td key={index}>
18
- { cell.column.columnDef.type == 'action'
19
- ? cell.getValue()
20
- : flexRender(cell.column.columnDef.cell, cell.getContext())
21
- }
22
- </td>
23
- )
24
- }) }
25
- </S.Tr>
26
- }) }
27
- </tbody>
28
- )
29
- }
30
-
1
+ import React from "react"
2
+ import { flexRender } from '@tanstack/react-table'
3
+ import * as S from "./styles"
4
+
5
+ const TBody:React.FC<any> = ({ table, onClick, onMouseOver, onMouseOut }) => {
6
+ return (
7
+ <tbody>
8
+ { table.getRowModel().rows.map((row: any, index: number) => {
9
+ return <S.Tr
10
+ key={index}
11
+ $hasAction={!!onClick || !!onMouseOver || !!onMouseOut}
12
+ onClick={() => onClick ? onClick(row.original) : null}
13
+ onMouseOver={() => onMouseOver ? onMouseOver(row.original) : null}
14
+ onMouseOut={() => onMouseOut ? onMouseOut(row.original) : null}>
15
+ { row.getVisibleCells().map((cell: any, index: number) => {
16
+ return (
17
+ <td key={index}>
18
+ { cell.column.columnDef.type == 'action'
19
+ ? cell.getValue()
20
+ : flexRender(cell.column.columnDef.cell, cell.getContext())
21
+ }
22
+ </td>
23
+ )
24
+ }) }
25
+ </S.Tr>
26
+ }) }
27
+ </tbody>
28
+ )
29
+ }
30
+
31
31
  export default TBody
@@ -1,5 +1,5 @@
1
- import styled from "styled-components"
2
-
3
- export const Tr = styled.tr<any>`
4
- cursor: ${props => props.$hasAction ? 'pointer' : 'default' };
1
+ import styled from "styled-components"
2
+
3
+ export const Tr = styled.tr<any>`
4
+ cursor: ${props => props.$hasAction ? 'pointer' : 'default' };
5
5
  `