@tecsinapse/react-web-kit 1.3.2 → 1.6.1

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 (337) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/dist/components/atoms/Accordion/Accordion.d.ts +9 -0
  3. package/dist/components/atoms/Accordion/Accordion.js +85 -0
  4. package/dist/components/atoms/Accordion/Accordion.js.map +1 -0
  5. package/dist/components/atoms/Accordion/animations.d.ts +41 -0
  6. package/dist/components/atoms/Accordion/animations.js +65 -0
  7. package/dist/components/atoms/Accordion/animations.js.map +1 -0
  8. package/dist/components/atoms/Accordion/index.d.ts +1 -0
  9. package/dist/components/atoms/Accordion/index.js +24 -0
  10. package/dist/components/atoms/Accordion/index.js.map +1 -0
  11. package/dist/components/atoms/Accordion/styled.d.ts +8 -0
  12. package/dist/components/atoms/Accordion/styled.js +53 -0
  13. package/dist/components/atoms/Accordion/styled.js.map +1 -0
  14. package/dist/components/atoms/Badge/index.js +2 -2
  15. package/dist/components/atoms/Button/index.js +2 -2
  16. package/dist/components/atoms/Button/styled.js +14 -5
  17. package/dist/components/atoms/Button/styled.js.map +1 -1
  18. package/dist/components/atoms/Input/index.js +2 -2
  19. package/dist/components/atoms/Modal/Modal.d.ts +8 -0
  20. package/dist/components/atoms/Modal/Modal.js +43 -0
  21. package/dist/components/atoms/Modal/Modal.js.map +1 -0
  22. package/dist/components/atoms/Modal/animations.d.ts +23 -0
  23. package/dist/components/atoms/Modal/animations.js +32 -0
  24. package/dist/components/atoms/Modal/animations.js.map +1 -0
  25. package/dist/components/atoms/Modal/index.d.ts +1 -0
  26. package/dist/components/atoms/Modal/index.js +24 -0
  27. package/dist/components/atoms/Modal/index.js.map +1 -0
  28. package/dist/components/atoms/Modal/styled.d.ts +2 -0
  29. package/dist/components/atoms/Modal/styled.js +39 -0
  30. package/dist/components/atoms/Modal/styled.js.map +1 -0
  31. package/dist/components/atoms/Overlay/Overlay.d.ts +10 -0
  32. package/dist/components/atoms/Overlay/Overlay.js +40 -0
  33. package/dist/components/atoms/Overlay/Overlay.js.map +1 -0
  34. package/dist/components/atoms/Overlay/animations.d.ts +18 -0
  35. package/dist/components/atoms/Overlay/animations.js +27 -0
  36. package/dist/components/atoms/Overlay/animations.js.map +1 -0
  37. package/dist/components/atoms/Overlay/index.d.ts +1 -0
  38. package/dist/components/atoms/Overlay/index.js +16 -0
  39. package/dist/components/atoms/Overlay/index.js.map +1 -0
  40. package/dist/components/atoms/Overlay/styled.d.ts +2 -0
  41. package/dist/components/atoms/Overlay/styled.js +36 -0
  42. package/dist/components/atoms/Overlay/styled.js.map +1 -0
  43. package/dist/components/atoms/Skeleton/Skeleton.d.ts +10 -0
  44. package/dist/components/atoms/Skeleton/Skeleton.js +35 -0
  45. package/dist/components/atoms/Skeleton/Skeleton.js.map +1 -0
  46. package/dist/components/atoms/Skeleton/index.d.ts +1 -0
  47. package/dist/components/atoms/Skeleton/index.js +24 -0
  48. package/dist/components/atoms/Skeleton/index.js.map +1 -0
  49. package/dist/components/atoms/Skeleton/styled.d.ts +5 -0
  50. package/dist/components/atoms/Skeleton/styled.js +79 -0
  51. package/dist/components/atoms/Skeleton/styled.js.map +1 -0
  52. package/dist/components/atoms/Table/Body/TBody.d.ts +3 -0
  53. package/dist/components/atoms/Table/Body/TBody.js +22 -0
  54. package/dist/components/atoms/Table/Body/TBody.js.map +1 -0
  55. package/dist/components/atoms/Table/Body/index.d.ts +1 -0
  56. package/dist/components/atoms/Table/Body/index.js +16 -0
  57. package/dist/components/atoms/Table/Body/index.js.map +1 -0
  58. package/dist/components/atoms/Table/Cell/Td.d.ts +3 -0
  59. package/dist/components/atoms/Table/Cell/Td.js +23 -0
  60. package/dist/components/atoms/Table/Cell/Td.js.map +1 -0
  61. package/dist/components/atoms/Table/Cell/index.d.ts +1 -0
  62. package/dist/components/atoms/Table/Cell/index.js +16 -0
  63. package/dist/components/atoms/Table/Cell/index.js.map +1 -0
  64. package/dist/components/atoms/Table/Cell/styled.d.ts +2 -0
  65. package/dist/components/atoms/Table/Cell/styled.js +34 -0
  66. package/dist/components/atoms/Table/Cell/styled.js.map +1 -0
  67. package/dist/components/atoms/Table/Container/TableContainer.d.ts +3 -0
  68. package/dist/components/atoms/Table/Container/TableContainer.js +23 -0
  69. package/dist/components/atoms/Table/Container/TableContainer.js.map +1 -0
  70. package/dist/components/atoms/Table/Container/index.d.ts +1 -0
  71. package/dist/components/atoms/Table/Container/index.js +16 -0
  72. package/dist/components/atoms/Table/Container/index.js.map +1 -0
  73. package/dist/components/atoms/Table/Container/styled.d.ts +2 -0
  74. package/dist/components/atoms/Table/Container/styled.js +30 -0
  75. package/dist/components/atoms/Table/Container/styled.js.map +1 -0
  76. package/dist/components/atoms/Table/Footer/TFoot.d.ts +3 -0
  77. package/dist/components/atoms/Table/Footer/TFoot.js +24 -0
  78. package/dist/components/atoms/Table/Footer/TFoot.js.map +1 -0
  79. package/dist/components/atoms/Table/Footer/index.d.ts +1 -0
  80. package/dist/components/atoms/Table/Footer/index.js +16 -0
  81. package/dist/components/atoms/Table/Footer/index.js.map +1 -0
  82. package/dist/components/atoms/Table/Footer/styled.d.ts +5 -0
  83. package/dist/components/atoms/Table/Footer/styled.js +19 -0
  84. package/dist/components/atoms/Table/Footer/styled.js.map +1 -0
  85. package/dist/components/atoms/Table/Header/THead.d.ts +3 -0
  86. package/dist/components/atoms/Table/Header/THead.js +27 -0
  87. package/dist/components/atoms/Table/Header/THead.js.map +1 -0
  88. package/dist/components/atoms/Table/Header/Th.d.ts +3 -0
  89. package/dist/components/atoms/Table/Header/Th.js +24 -0
  90. package/dist/components/atoms/Table/Header/Th.js.map +1 -0
  91. package/dist/components/atoms/Table/Header/index.d.ts +2 -0
  92. package/dist/components/atoms/Table/Header/index.js +24 -0
  93. package/dist/components/atoms/Table/Header/index.js.map +1 -0
  94. package/dist/components/atoms/Table/Header/styled.d.ts +4 -0
  95. package/dist/components/atoms/Table/Header/styled.js +54 -0
  96. package/dist/components/atoms/Table/Header/styled.js.map +1 -0
  97. package/dist/components/atoms/Table/Row/Tr.d.ts +3 -0
  98. package/dist/components/atoms/Table/Row/Tr.js +24 -0
  99. package/dist/components/atoms/Table/Row/Tr.js.map +1 -0
  100. package/dist/components/atoms/Table/Row/index.d.ts +1 -0
  101. package/dist/components/atoms/Table/Row/index.js +16 -0
  102. package/dist/components/atoms/Table/Row/index.js.map +1 -0
  103. package/dist/components/atoms/Table/Row/styled.d.ts +2 -0
  104. package/dist/components/atoms/Table/Row/styled.js +24 -0
  105. package/dist/components/atoms/Table/Row/styled.js.map +1 -0
  106. package/dist/components/atoms/Table/Table.d.ts +3 -0
  107. package/dist/components/atoms/Table/Table.js +24 -0
  108. package/dist/components/atoms/Table/Table.js.map +1 -0
  109. package/dist/components/atoms/Table/Toolbar/TableToolbar.d.ts +8 -0
  110. package/dist/components/atoms/Table/Toolbar/TableToolbar.js +30 -0
  111. package/dist/components/atoms/Table/Toolbar/TableToolbar.js.map +1 -0
  112. package/dist/components/atoms/Table/Toolbar/index.d.ts +1 -0
  113. package/dist/components/atoms/Table/Toolbar/index.js +24 -0
  114. package/dist/components/atoms/Table/Toolbar/index.js.map +1 -0
  115. package/dist/components/atoms/Table/Toolbar/styled.d.ts +5 -0
  116. package/dist/components/atoms/Table/Toolbar/styled.js +19 -0
  117. package/dist/components/atoms/Table/Toolbar/styled.js.map +1 -0
  118. package/dist/components/atoms/Table/index.d.ts +8 -0
  119. package/dist/components/atoms/Table/index.js +84 -0
  120. package/dist/components/atoms/Table/index.js.map +1 -0
  121. package/dist/components/atoms/Table/styled.d.ts +2 -0
  122. package/dist/components/atoms/Table/styled.js +20 -0
  123. package/dist/components/atoms/Table/styled.js.map +1 -0
  124. package/dist/components/atoms/Tag/index.js +2 -2
  125. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/index.js +2 -2
  126. package/dist/components/molecules/Breadcrumbs/index.js +2 -2
  127. package/dist/components/molecules/Drawer/Drawer.js +33 -3
  128. package/dist/components/molecules/Drawer/Drawer.js.map +1 -1
  129. package/dist/components/molecules/Drawer/animations.d.ts +42 -0
  130. package/dist/components/molecules/Drawer/animations.js +77 -0
  131. package/dist/components/molecules/Drawer/animations.js.map +1 -0
  132. package/dist/components/molecules/Drawer/index.js +2 -2
  133. package/dist/components/molecules/Drawer/styled.d.ts +0 -1
  134. package/dist/components/molecules/Drawer/styled.js +4 -19
  135. package/dist/components/molecules/Drawer/styled.js.map +1 -1
  136. package/dist/components/molecules/InputPassword/InputPassword.js +2 -2
  137. package/dist/components/molecules/InputPassword/index.js +2 -2
  138. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.d.ts +4 -3
  139. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.js +14 -5
  140. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.js.map +1 -1
  141. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.d.ts +1 -0
  142. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.js +6 -3
  143. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.js.map +1 -1
  144. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.d.ts +1 -0
  145. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.js +4 -2
  146. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.js.map +1 -1
  147. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/styled.js +3 -0
  148. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/styled.js.map +1 -1
  149. package/dist/components/molecules/Menubar/Menubar.d.ts +3 -2
  150. package/dist/components/molecules/Menubar/Menubar.js +33 -21
  151. package/dist/components/molecules/Menubar/Menubar.js.map +1 -1
  152. package/dist/components/molecules/Menubar/MostUsed/MostUsed.d.ts +3 -2
  153. package/dist/components/molecules/Menubar/MostUsed/MostUsed.js +6 -3
  154. package/dist/components/molecules/Menubar/MostUsed/MostUsed.js.map +1 -1
  155. package/dist/components/molecules/Menubar/animations.d.ts +4 -0
  156. package/dist/components/molecules/Menubar/animations.js +63 -0
  157. package/dist/components/molecules/Menubar/animations.js.map +1 -0
  158. package/dist/components/molecules/Menubar/index.js +2 -2
  159. package/dist/components/molecules/Menubar/styled.js +14 -1
  160. package/dist/components/molecules/Menubar/styled.js.map +1 -1
  161. package/dist/components/molecules/Menubar/types.js +4 -0
  162. package/dist/components/molecules/Select/Dropdown/Dropdown.d.ts +7 -0
  163. package/dist/components/molecules/Select/Dropdown/Dropdown.js +90 -0
  164. package/dist/components/molecules/Select/Dropdown/Dropdown.js.map +1 -0
  165. package/dist/components/molecules/Select/Dropdown/index.d.ts +1 -0
  166. package/dist/components/molecules/Select/Dropdown/index.js +16 -0
  167. package/dist/components/molecules/Select/Dropdown/index.js.map +1 -0
  168. package/dist/components/molecules/Select/Dropdown/styled.d.ts +13 -0
  169. package/dist/components/molecules/Select/Dropdown/styled.js +113 -0
  170. package/dist/components/molecules/Select/Dropdown/styled.js.map +1 -0
  171. package/dist/components/molecules/Select/Select.d.ts +15 -0
  172. package/dist/components/molecules/Select/Select.js +85 -0
  173. package/dist/components/molecules/Select/Select.js.map +1 -0
  174. package/dist/components/molecules/Select/SelectItem/SelectItem.d.ts +16 -0
  175. package/dist/components/molecules/Select/SelectItem/SelectItem.js +76 -0
  176. package/dist/components/molecules/Select/SelectItem/SelectItem.js.map +1 -0
  177. package/dist/components/molecules/Select/SelectItem/index.d.ts +1 -0
  178. package/dist/components/molecules/Select/SelectItem/index.js +16 -0
  179. package/dist/components/molecules/Select/SelectItem/index.js.map +1 -0
  180. package/dist/components/molecules/Select/SelectItem/styled.d.ts +4 -0
  181. package/dist/components/molecules/Select/SelectItem/styled.js +54 -0
  182. package/dist/components/molecules/Select/SelectItem/styled.js.map +1 -0
  183. package/dist/components/molecules/Select/animations.d.ts +27 -0
  184. package/dist/components/molecules/Select/animations.js +36 -0
  185. package/dist/components/molecules/Select/animations.js.map +1 -0
  186. package/dist/components/molecules/Select/functions.d.ts +1 -0
  187. package/dist/components/molecules/Select/functions.js +21 -0
  188. package/dist/components/molecules/Select/functions.js.map +1 -0
  189. package/dist/components/molecules/Select/index.d.ts +1 -0
  190. package/dist/components/molecules/Select/index.js +24 -0
  191. package/dist/components/molecules/Select/index.js.map +1 -0
  192. package/dist/components/molecules/Select/styled.d.ts +3 -0
  193. package/dist/components/molecules/Select/styled.js +28 -0
  194. package/dist/components/molecules/Select/styled.js.map +1 -0
  195. package/dist/components/molecules/Snackbar/index.js +2 -2
  196. package/dist/components/molecules/Snackbar/styled.js +2 -2
  197. package/dist/components/organisms/DataGrid/DataGrid.d.ts +28 -0
  198. package/dist/components/organisms/DataGrid/DataGrid.js +121 -0
  199. package/dist/components/organisms/DataGrid/DataGrid.js.map +1 -0
  200. package/dist/components/organisms/DataGrid/Footer/Footer.d.ts +15 -0
  201. package/dist/components/organisms/DataGrid/Footer/Footer.js +107 -0
  202. package/dist/components/organisms/DataGrid/Footer/Footer.js.map +1 -0
  203. package/dist/components/organisms/DataGrid/Footer/index.d.ts +1 -0
  204. package/dist/components/organisms/DataGrid/Footer/index.js +16 -0
  205. package/dist/components/organisms/DataGrid/Footer/index.js.map +1 -0
  206. package/dist/components/organisms/DataGrid/Footer/styled.d.ts +35 -0
  207. package/dist/components/organisms/DataGrid/Footer/styled.js +91 -0
  208. package/dist/components/organisms/DataGrid/Footer/styled.js.map +1 -0
  209. package/dist/components/organisms/DataGrid/Header/Header.d.ts +12 -0
  210. package/dist/components/organisms/DataGrid/Header/Header.js +88 -0
  211. package/dist/components/organisms/DataGrid/Header/Header.js.map +1 -0
  212. package/dist/components/organisms/DataGrid/Header/index.d.ts +1 -0
  213. package/dist/components/organisms/DataGrid/Header/index.js +16 -0
  214. package/dist/components/organisms/DataGrid/Header/index.js.map +1 -0
  215. package/dist/components/organisms/DataGrid/Header/styled.d.ts +1 -0
  216. package/dist/components/organisms/DataGrid/Header/styled.js +23 -0
  217. package/dist/components/organisms/DataGrid/Header/styled.js.map +1 -0
  218. package/dist/components/organisms/DataGrid/Header/utils.d.ts +10 -0
  219. package/dist/components/organisms/DataGrid/Header/utils.js +30 -0
  220. package/dist/components/organisms/DataGrid/Header/utils.js.map +1 -0
  221. package/dist/components/organisms/DataGrid/Row/Row.d.ts +10 -0
  222. package/dist/components/organisms/DataGrid/Row/Row.js +42 -0
  223. package/dist/components/organisms/DataGrid/Row/Row.js.map +1 -0
  224. package/dist/components/organisms/DataGrid/Row/index.d.ts +1 -0
  225. package/dist/components/organisms/DataGrid/Row/index.js +16 -0
  226. package/dist/components/organisms/DataGrid/Row/index.js.map +1 -0
  227. package/dist/components/organisms/DataGrid/index.d.ts +2 -0
  228. package/dist/components/organisms/DataGrid/index.js +42 -0
  229. package/dist/components/organisms/DataGrid/index.js.map +1 -0
  230. package/dist/components/organisms/DataGrid/styled.d.ts +1 -0
  231. package/dist/components/organisms/DataGrid/styled.js +23 -0
  232. package/dist/components/organisms/DataGrid/styled.js.map +1 -0
  233. package/dist/components/organisms/DataGrid/types.d.ts +7 -0
  234. package/dist/components/organisms/DataGrid/types.js +6 -0
  235. package/dist/components/organisms/DataGrid/types.js.map +1 -0
  236. package/dist/components/organisms/DataGrid/utils.d.ts +2 -0
  237. package/dist/components/organisms/DataGrid/utils.js +18 -0
  238. package/dist/components/organisms/DataGrid/utils.js.map +1 -0
  239. package/dist/hooks/index.d.ts +1 -0
  240. package/dist/hooks/index.js +14 -0
  241. package/dist/hooks/index.js.map +1 -0
  242. package/dist/hooks/useClickAwayListener.d.ts +2 -0
  243. package/dist/hooks/useClickAwayListener.js +28 -0
  244. package/dist/hooks/useClickAwayListener.js.map +1 -0
  245. package/dist/index.d.ts +6 -0
  246. package/dist/index.js +104 -3
  247. package/dist/index.js.map +1 -1
  248. package/package.json +7 -6
  249. package/src/components/atoms/Accordion/Accordion.stories.tsx +35 -0
  250. package/src/components/atoms/Accordion/Accordion.tsx +99 -0
  251. package/src/components/atoms/Accordion/animations.ts +51 -0
  252. package/src/components/atoms/Accordion/index.ts +1 -0
  253. package/src/components/atoms/Accordion/styled.ts +35 -0
  254. package/src/components/atoms/Button/styled.ts +11 -1
  255. package/src/components/atoms/Modal/Modal.stories.tsx +55 -0
  256. package/src/components/atoms/Modal/Modal.tsx +34 -0
  257. package/src/components/atoms/Modal/animations.ts +12 -0
  258. package/src/components/atoms/Modal/index.ts +1 -0
  259. package/src/components/atoms/Modal/styled.ts +17 -0
  260. package/src/components/atoms/Overlay/Overlay.tsx +40 -0
  261. package/src/components/atoms/Overlay/animations.ts +11 -0
  262. package/src/components/atoms/Overlay/index.ts +1 -0
  263. package/src/components/atoms/Overlay/styled.ts +20 -0
  264. package/src/components/atoms/Skeleton/Skeleton.stories.tsx +15 -0
  265. package/src/components/atoms/Skeleton/Skeleton.tsx +37 -0
  266. package/src/components/atoms/Skeleton/index.ts +1 -0
  267. package/src/components/atoms/Skeleton/styled.ts +68 -0
  268. package/src/components/atoms/Table/Body/TBody.tsx +10 -0
  269. package/src/components/atoms/Table/Body/index.ts +1 -0
  270. package/src/components/atoms/Table/Cell/Td.tsx +11 -0
  271. package/src/components/atoms/Table/Cell/index.ts +1 -0
  272. package/src/components/atoms/Table/Cell/styled.ts +12 -0
  273. package/src/components/atoms/Table/Container/TableContainer.tsx +11 -0
  274. package/src/components/atoms/Table/Container/index.ts +1 -0
  275. package/src/components/atoms/Table/Container/styled.ts +10 -0
  276. package/src/components/atoms/Table/Footer/TFoot.tsx +11 -0
  277. package/src/components/atoms/Table/Footer/index.ts +1 -0
  278. package/src/components/atoms/Table/Footer/styled.ts +8 -0
  279. package/src/components/atoms/Table/Header/THead.tsx +21 -0
  280. package/src/components/atoms/Table/Header/Th.tsx +10 -0
  281. package/src/components/atoms/Table/Header/index.ts +2 -0
  282. package/src/components/atoms/Table/Header/styled.ts +30 -0
  283. package/src/components/atoms/Table/Row/Tr.tsx +11 -0
  284. package/src/components/atoms/Table/Row/index.ts +1 -0
  285. package/src/components/atoms/Table/Row/styled.ts +8 -0
  286. package/src/components/atoms/Table/Table.stories.tsx +96 -0
  287. package/src/components/atoms/Table/Table.tsx +11 -0
  288. package/src/components/atoms/Table/Toolbar/TableToolbar.tsx +31 -0
  289. package/src/components/atoms/Table/Toolbar/index.ts +1 -0
  290. package/src/components/atoms/Table/Toolbar/styled.ts +8 -0
  291. package/src/components/atoms/Table/index.ts +8 -0
  292. package/src/components/atoms/Table/styled.ts +9 -0
  293. package/src/components/molecules/Drawer/Drawer.stories.tsx +19 -21
  294. package/src/components/molecules/Drawer/Drawer.tsx +34 -6
  295. package/src/components/molecules/Drawer/animations.ts +50 -0
  296. package/src/components/molecules/Drawer/styled.ts +3 -12
  297. package/src/components/molecules/InputPassword/InputPassword.stories.tsx +1 -1
  298. package/src/components/molecules/Menubar/MenuBlock/MenuBlock.tsx +38 -31
  299. package/src/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.tsx +4 -2
  300. package/src/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.tsx +3 -2
  301. package/src/components/molecules/Menubar/MenuBlock/MenuItem/styled.ts +3 -0
  302. package/src/components/molecules/Menubar/Menubar.stories.tsx +20 -13
  303. package/src/components/molecules/Menubar/Menubar.tsx +65 -51
  304. package/src/components/molecules/Menubar/MostUsed/MostUsed.tsx +4 -2
  305. package/src/components/molecules/Menubar/animations.ts +64 -0
  306. package/src/components/molecules/Menubar/styled.ts +8 -1
  307. package/src/components/molecules/Select/Dropdown/Dropdown.tsx +106 -0
  308. package/src/components/molecules/Select/Dropdown/index.ts +1 -0
  309. package/src/components/molecules/Select/Dropdown/styled.ts +77 -0
  310. package/src/components/molecules/Select/Select.stories.tsx +108 -0
  311. package/src/components/molecules/Select/Select.tsx +92 -0
  312. package/src/components/molecules/Select/SelectItem/SelectItem.tsx +88 -0
  313. package/src/components/molecules/Select/SelectItem/index.ts +1 -0
  314. package/src/components/molecules/Select/SelectItem/styled.ts +34 -0
  315. package/src/components/molecules/Select/animations.ts +18 -0
  316. package/src/components/molecules/Select/functions.ts +32 -0
  317. package/src/components/molecules/Select/index.ts +1 -0
  318. package/src/components/molecules/Select/styled.ts +16 -0
  319. package/src/components/molecules/Snackbar/Snackbar.stories.tsx +24 -0
  320. package/src/components/organisms/DataGrid/DatGrid.stories.tsx +216 -0
  321. package/src/components/organisms/DataGrid/DataGrid.tsx +183 -0
  322. package/src/components/organisms/DataGrid/Footer/Footer.tsx +137 -0
  323. package/src/components/organisms/DataGrid/Footer/index.ts +1 -0
  324. package/src/components/organisms/DataGrid/Footer/styled.ts +59 -0
  325. package/src/components/organisms/DataGrid/Header/Header.tsx +111 -0
  326. package/src/components/organisms/DataGrid/Header/index.ts +1 -0
  327. package/src/components/organisms/DataGrid/Header/styled.ts +10 -0
  328. package/src/components/organisms/DataGrid/Header/utils.ts +28 -0
  329. package/src/components/organisms/DataGrid/Row/Row.tsx +33 -0
  330. package/src/components/organisms/DataGrid/Row/index.ts +1 -0
  331. package/src/components/organisms/DataGrid/index.ts +2 -0
  332. package/src/components/organisms/DataGrid/styled.ts +10 -0
  333. package/src/components/organisms/DataGrid/types.ts +11 -0
  334. package/src/components/organisms/DataGrid/utils.ts +15 -0
  335. package/src/hooks/index.ts +1 -0
  336. package/src/hooks/useClickAwayListener.ts +18 -0
  337. package/src/index.ts +10 -0
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transition = exports.defaultStyles = void 0;
7
+ const defaultStyles = {
8
+ transition: ['transform 200ms ease-in-out, opacity 200ms ease-in-out, visibility 200ms ease-in-out'],
9
+ overflow: 'hidden',
10
+ visibility: 'hidden'
11
+ };
12
+ exports.defaultStyles = defaultStyles;
13
+ const transition = {
14
+ entering: {
15
+ transform: 'translateY(-10%)',
16
+ opacity: 0,
17
+ visibility: 'hidden'
18
+ },
19
+ entered: {
20
+ transform: 'translateY(0%)',
21
+ opacity: 1,
22
+ visibility: 'visible'
23
+ },
24
+ exiting: {
25
+ transform: 'translateY(0%)',
26
+ opacity: 1,
27
+ visibility: 'visible'
28
+ },
29
+ exited: {
30
+ transform: 'translateY(-10%)',
31
+ opacity: 0,
32
+ visibility: 'hidden'
33
+ }
34
+ };
35
+ exports.transition = transition;
36
+ //# sourceMappingURL=animations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/molecules/Select/animations.ts"],"names":["defaultStyles","transition","overflow","visibility","entering","transform","opacity","entered","exiting","exited"],"mappings":";;;;;;AAAO,MAAMA,aAAa,GAAG;AAC3BC,EAAAA,UAAU,EAAE,CACV,sFADU,CADe;AAI3BC,EAAAA,QAAQ,EAAE,QAJiB;AAK3BC,EAAAA,UAAU,EAAE;AALe,CAAtB;;AAQA,MAAMF,UAAU,GAAG;AACxBG,EAAAA,QAAQ,EAAE;AACRC,IAAAA,SAAS,EAAE,kBADH;AAERC,IAAAA,OAAO,EAAE,CAFD;AAGRH,IAAAA,UAAU,EAAE;AAHJ,GADc;AAMxBI,EAAAA,OAAO,EAAE;AAAEF,IAAAA,SAAS,EAAE,gBAAb;AAA+BC,IAAAA,OAAO,EAAE,CAAxC;AAA2CH,IAAAA,UAAU,EAAE;AAAvD,GANe;AAOxBK,EAAAA,OAAO,EAAE;AAAEH,IAAAA,SAAS,EAAE,gBAAb;AAA+BC,IAAAA,OAAO,EAAE,CAAxC;AAA2CH,IAAAA,UAAU,EAAE;AAAvD,GAPe;AAQxBM,EAAAA,MAAM,EAAE;AAAEJ,IAAAA,SAAS,EAAE,kBAAb;AAAiCC,IAAAA,OAAO,EAAE,CAA1C;AAA6CH,IAAAA,UAAU,EAAE;AAAzD;AARgB,CAAnB","sourcesContent":["export const defaultStyles = {\n transition: [\n 'transform 200ms ease-in-out, opacity 200ms ease-in-out, visibility 200ms ease-in-out',\n ],\n overflow: 'hidden',\n visibility: 'hidden',\n};\n\nexport const transition = {\n entering: {\n transform: 'translateY(-10%)',\n opacity: 0,\n visibility: 'hidden',\n },\n entered: { transform: 'translateY(0%)', opacity: 1, visibility: 'visible' },\n exiting: { transform: 'translateY(0%)', opacity: 1, visibility: 'visible' },\n exited: { transform: 'translateY(-10%)', opacity: 0, visibility: 'hidden' },\n};\n"],"file":"animations.js"}
@@ -0,0 +1 @@
1
+ export declare const getDisplayValue: <Data>(type: any, value: any, options: any, placeholder: any, keyExtractor: any, labelExtractor: any) => Data | Data[];
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDisplayValue = void 0;
7
+
8
+ const getDisplayValue = (type, value, options, placeholder, keyExtractor, labelExtractor) => {
9
+ if (type === 'multi') {
10
+ if (value.length === 0) return placeholder;else {
11
+ return options.reduce((acc, option, index) => value.find(key => keyExtractor(option, index) == keyExtractor(key, index)) ? acc + labelExtractor(option) + ', ' : acc, '').slice(0, -2);
12
+ }
13
+ } else {
14
+ if (value === undefined) return placeholder;
15
+ const selectedOption = options.find((option, index) => keyExtractor(option, index) == keyExtractor(value, index));
16
+ return selectedOption ? labelExtractor(selectedOption) : placeholder;
17
+ }
18
+ };
19
+
20
+ exports.getDisplayValue = getDisplayValue;
21
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/molecules/Select/functions.ts"],"names":["getDisplayValue","type","value","options","placeholder","keyExtractor","labelExtractor","length","reduce","acc","option","index","find","key","slice","undefined","selectedOption"],"mappings":";;;;;;;AAAO,MAAMA,eAAe,GAAG,CAC7BC,IAD6B,EAE7BC,KAF6B,EAG7BC,OAH6B,EAI7BC,WAJ6B,EAK7BC,YAL6B,EAM7BC,cAN6B,KAOX;AAClB,MAAIL,IAAI,KAAK,OAAb,EAAsB;AACpB,QAAIC,KAAK,CAACK,MAAN,KAAiB,CAArB,EAAwB,OAAOH,WAAP,CAAxB,KACK;AACH,aAAOD,OAAO,CACXK,MADI,CAEH,CAACC,GAAD,EAAMC,MAAN,EAAcC,KAAd,KACET,KAAK,CAACU,IAAN,CACEC,GAAG,IAAIR,YAAY,CAACK,MAAD,EAASC,KAAT,CAAZ,IAA+BN,YAAY,CAACQ,GAAD,EAAMF,KAAN,CADpD,IAGIF,GAAG,GAAGH,cAAc,CAACI,MAAD,CAApB,GAA+B,IAHnC,GAIID,GAPH,EAQH,EARG,EAUJK,KAVI,CAUE,CAVF,EAUK,CAAC,CAVN,CAAP;AAWD;AACF,GAfD,MAeO;AACL,QAAIZ,KAAK,KAAKa,SAAd,EAAyB,OAAOX,WAAP;AACzB,UAAMY,cAAc,GAAGb,OAAO,CAACS,IAAR,CACrB,CAACF,MAAD,EAASC,KAAT,KACEN,YAAY,CAACK,MAAD,EAASC,KAAT,CAAZ,IAA+BN,YAAY,CAACH,KAAD,EAAgBS,KAAhB,CAFxB,CAAvB;AAIA,WAAOK,cAAc,GAAGV,cAAc,CAACU,cAAD,CAAjB,GAAoCZ,WAAzD;AACD;AACF,CA/BM","sourcesContent":["export const getDisplayValue = <Data>(\n type,\n value,\n options,\n placeholder,\n keyExtractor,\n labelExtractor\n): Data | Data[] => {\n if (type === 'multi') {\n if (value.length === 0) return placeholder;\n else {\n return options\n .reduce(\n (acc, option, index) =>\n value.find(\n key => keyExtractor(option, index) == keyExtractor(key, index)\n )\n ? acc + labelExtractor(option) + ', '\n : acc,\n ''\n )\n .slice(0, -2);\n }\n } else {\n if (value === undefined) return placeholder;\n const selectedOption = options.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return selectedOption ? labelExtractor(selectedOption) : placeholder;\n }\n};\n"],"file":"functions.js"}
@@ -0,0 +1 @@
1
+ export { default as Select, SelectProps } from './Select';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Select", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Select.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "SelectProps", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Select.SelectProps;
16
+ }
17
+ });
18
+
19
+ var _Select = _interopRequireWildcard(require("./Select"));
20
+
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/molecules/Select/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA","sourcesContent":["export { default as Select, SelectProps } from './Select';\n"],"file":"index.js"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledContainer: import("@emotion/styled").StyledComponent<any, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
3
+ export declare const StyledInputContainer: import("@emotion/styled").StyledComponent<any, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledInputContainer = exports.StyledContainer = void 0;
7
+
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const StyledContainer = (0, _styled.default)('div')`
13
+ display: flex;
14
+ justify-content: center;
15
+ align-items: center;
16
+ flex-direction: column;
17
+ width: 100%;
18
+ position: relative;
19
+ `;
20
+ exports.StyledContainer = StyledContainer;
21
+ const StyledInputContainer = (0, _styled.default)('div')`
22
+ width: 100%;
23
+ z-index: ${({
24
+ theme
25
+ }) => theme.zIndex.input};
26
+ `;
27
+ exports.StyledInputContainer = StyledInputContainer;
28
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/molecules/Select/styled.ts"],"names":["StyledContainer","StyledInputContainer","theme","zIndex","input"],"mappings":";;;;;;;AAAA;;;;AAGO,MAAMA,eAAe,GAAG,qBAAO,KAAP,CAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,CAPO;;AASA,MAAMC,oBAAoB,GAAG,qBAAO,KAAP,CAAmC;AACvE;AACA,aAAa,CAAC;AAAEC,EAAAA;AAAF,CAAD,KAAeA,KAAK,CAACC,MAAN,CAAaC,KAAM;AAC/C,CAHO","sourcesContent":["import styled from '@emotion/styled';\nimport { StyleProps } from '@tecsinapse/react-core';\n\nexport const StyledContainer = styled('div')<Partial<StyleProps>>`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n width: 100%;\n position: relative;\n`;\n\nexport const StyledInputContainer = styled('div')<Partial<StyleProps>>`\n width: 100%;\n z-index: ${({ theme }) => theme.zIndex.input};\n`;\n"],"file":"styled.js"}
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "SnackbarWebProps", {
18
18
 
19
19
  var _Snackbar = _interopRequireWildcard(require("./Snackbar"));
20
20
 
21
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
22
 
23
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
24
  //# sourceMappingURL=index.js.map
@@ -9,9 +9,9 @@ var _native = _interopRequireWildcard(require("@emotion/native"));
9
9
 
10
10
  var _reactCore = require("@tecsinapse/react-core");
11
11
 
12
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
13
 
14
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
15
 
16
16
  const SnackbarStyled = (0, _native.default)(_reactCore.Snackbar)(() => [(0, _native.css)({
17
17
  left: '50%',
@@ -0,0 +1,28 @@
1
+ import React, { CSSProperties } from 'react';
2
+ import { HeadersType } from './types';
3
+ export interface DataGridProps<Data> {
4
+ headers: HeadersType<Data>[];
5
+ data: Data[];
6
+ rowKeyExtractor: (data: Data) => string;
7
+ toolbarRightIcons?: React.ReactNode;
8
+ toolbarFooter?: React.ReactNode;
9
+ toolbarTitle: string;
10
+ selectable?: boolean;
11
+ selectedRows?: Data[];
12
+ onSelectedRows?: (data: Data[] | ((prevState: Data[]) => Data[])) => void;
13
+ pagination?: boolean;
14
+ rowsPerPage?: number;
15
+ onRowsPerPageChange?: (value: number) => void;
16
+ rowsPerPageOptions?: number[];
17
+ rowsPerPageLabel?: (value: number) => string;
18
+ exportLabel?: string;
19
+ exportFunction?: () => void;
20
+ rowsCount?: number;
21
+ page?: number;
22
+ onPageChange?: (page: number) => void;
23
+ loading?: boolean;
24
+ skeletonComponent?: React.ReactNode;
25
+ style?: CSSProperties;
26
+ }
27
+ declare const DataGrid: <Data extends unknown>({ headers, data, rowKeyExtractor, toolbarTitle, toolbarFooter, toolbarRightIcons, selectable, selectedRows, onSelectedRows, pagination, rowsPerPage, onRowsPerPageChange, rowsPerPageOptions: _rowsPerPageOptions, rowsPerPageLabel: _rowsPerPageLabel, exportLabel, exportFunction, rowsCount, page, onPageChange, loading, skeletonComponent, style, }: DataGridProps<Data>) => JSX.Element;
28
+ export default DataGrid;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _Table = require("../../atoms/Table");
11
+
12
+ var _Header = require("./Header");
13
+
14
+ var _Row = require("./Row");
15
+
16
+ var _Footer = require("./Footer");
17
+
18
+ var _Skeleton = require("../../atoms/Skeleton");
19
+
20
+ var _utils = require("./utils");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ const DataGrid = ({
25
+ headers,
26
+ data,
27
+ rowKeyExtractor,
28
+ toolbarTitle,
29
+ toolbarFooter,
30
+ toolbarRightIcons,
31
+ selectable = false,
32
+ selectedRows = [],
33
+ onSelectedRows,
34
+ pagination = false,
35
+ rowsPerPage = 10,
36
+ onRowsPerPageChange,
37
+ rowsPerPageOptions: _rowsPerPageOptions,
38
+ rowsPerPageLabel: _rowsPerPageLabel,
39
+ exportLabel = 'Exportar',
40
+ exportFunction,
41
+ rowsCount,
42
+ page = 0,
43
+ onPageChange,
44
+ loading = false,
45
+ skeletonComponent,
46
+ style
47
+ }) => {
48
+ if (selectable && (!selectedRows || !onSelectedRows)) {
49
+ throw new Error('[DataGrid] You should specify selection handlers (selectedRows, onSelectedRows)');
50
+ }
51
+
52
+ const rowsPerPageLabel = _react.default.useCallback(value => _rowsPerPageLabel ? _rowsPerPageLabel(value) : `Exibir por página: ${value} itens`, [_rowsPerPageLabel]);
53
+
54
+ const rowsPerPageOptions = _react.default.useMemo(() => _rowsPerPageOptions ?? [10, 25, 50], [_rowsPerPageOptions]);
55
+
56
+ const handleSelect = _react.default.useCallback((current, checked) => {
57
+ if (checked) {
58
+ onSelectedRows === null || onSelectedRows === void 0 ? void 0 : onSelectedRows(prevState => [...prevState, current]);
59
+ return;
60
+ }
61
+
62
+ onSelectedRows === null || onSelectedRows === void 0 ? void 0 : onSelectedRows(prevState => {
63
+ const idx = prevState.findIndex(el => rowKeyExtractor(el) === rowKeyExtractor(current));
64
+ return [...(0, _utils.removeElement)(prevState, idx)];
65
+ });
66
+ }, [onSelectedRows, rowKeyExtractor]);
67
+
68
+ return _react.default.createElement(_Table.TableContainer, {
69
+ style: style
70
+ }, _react.default.createElement(_Table.TableToolbar, {
71
+ title: toolbarTitle,
72
+ rightIcons: toolbarRightIcons,
73
+ footer: toolbarFooter
74
+ }), _react.default.createElement(_Table.Table, null, _react.default.createElement(_Header.Header, {
75
+ selectable: selectable,
76
+ headers: headers,
77
+ data: data,
78
+ rowsCount: rowsCount ?? data.length,
79
+ rowKeyExtractor: rowKeyExtractor,
80
+ selectedRows: selectedRows,
81
+ onSelected: onSelectedRows
82
+ }), !loading ? _react.default.createElement(_Table.TBody, null, (0, _utils.getData)(data, rowsCount, page, rowsPerPage).map(item => _react.default.createElement(_Row.Row, {
83
+ key: rowKeyExtractor(item),
84
+ rowKeyExtractor: rowKeyExtractor,
85
+ handleSelect: handleSelect,
86
+ selectable: selectable,
87
+ headers: headers,
88
+ data: item,
89
+ checked: selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.some(sel => rowKeyExtractor(sel) === rowKeyExtractor(item))
90
+ }))) : _react.default.createElement(_Table.TBody, null, [...Array(rowsPerPage).keys()].map(idx => _react.default.createElement(_Table.Tr, {
91
+ key: `skeleton-${idx}`
92
+ }, _react.default.createElement(_Table.Td, {
93
+ colSpan: 99,
94
+ style: {
95
+ padding: 0
96
+ }
97
+ }, skeletonComponent ?? _react.default.createElement(_Skeleton.Skeleton, {
98
+ height: 55,
99
+ radius: "mili",
100
+ animation: "wave"
101
+ }, _react.default.createElement("div", {
102
+ style: {
103
+ width: '100%'
104
+ }
105
+ })))))), _react.default.createElement(_Footer.Footer, {
106
+ exportFunction: exportFunction,
107
+ exportLabel: exportLabel,
108
+ rowsPerPageLabel: rowsPerPageLabel,
109
+ rowsPerPage: rowsPerPage,
110
+ onRowsPerPageChange: onRowsPerPageChange,
111
+ rowsPerPageOptions: rowsPerPageOptions,
112
+ rowsCount: rowsCount ?? data.length,
113
+ page: page,
114
+ onPageChange: onPageChange,
115
+ pagination: pagination
116
+ })));
117
+ };
118
+
119
+ var _default = DataGrid;
120
+ exports.default = _default;
121
+ //# sourceMappingURL=DataGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/organisms/DataGrid/DataGrid.tsx"],"names":["DataGrid","headers","data","rowKeyExtractor","toolbarTitle","toolbarFooter","toolbarRightIcons","selectable","selectedRows","onSelectedRows","pagination","rowsPerPage","onRowsPerPageChange","rowsPerPageOptions","_rowsPerPageOptions","rowsPerPageLabel","_rowsPerPageLabel","exportLabel","exportFunction","rowsCount","page","onPageChange","loading","skeletonComponent","style","Error","React","useCallback","value","useMemo","handleSelect","current","checked","prevState","idx","findIndex","el","length","map","item","some","sel","Array","keys","padding","width"],"mappings":"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","sourcesContent":["import React, { CSSProperties } from 'react';\nimport {\n Table,\n TableToolbar,\n TableContainer,\n Tr,\n Td,\n TBody,\n} from '../../atoms/Table';\nimport { Header } from './Header';\nimport { Row } from './Row';\nimport { HeadersType } from './types';\nimport { Footer } from './Footer';\nimport { Skeleton } from '../../atoms/Skeleton';\nimport { getData, removeElement } from './utils';\n\nexport interface DataGridProps<Data> {\n headers: HeadersType<Data>[];\n data: Data[];\n /** Unique identifier for row data */\n rowKeyExtractor: (data: Data) => string;\n toolbarRightIcons?: React.ReactNode;\n toolbarFooter?: React.ReactNode;\n toolbarTitle: string;\n /** Enable rows selection */\n selectable?: boolean;\n /** Selected items */\n selectedRows?: Data[];\n /** Selection handler */\n onSelectedRows?: (data: Data[] | ((prevState: Data[]) => Data[])) => void;\n /** Shows pagination controls */\n pagination?: boolean;\n /** Results per page */\n rowsPerPage?: number;\n /** Results per page handler */\n onRowsPerPageChange?: (value: number) => void;\n rowsPerPageOptions?: number[];\n rowsPerPageLabel?: (value: number) => string;\n /** Export button label */\n exportLabel?: string;\n exportFunction?: () => void;\n /** Total data elements. Only specify this property if your data is server-side */\n rowsCount?: number;\n /** Current page. Always start in 0 */\n page?: number;\n /** Current page handler */\n onPageChange?: (page: number) => void;\n /** Loading state. The amount of skeleton rows is based on current rowsPerPage */\n loading?: boolean;\n /** Custom skeleton component for better visual */\n skeletonComponent?: React.ReactNode;\n /** CSS style spread to TableContainer */\n style?: CSSProperties;\n}\n\n/** Note: Consider memoizing functions for a better performance */\nconst DataGrid = <Data extends unknown>({\n headers,\n data,\n rowKeyExtractor,\n toolbarTitle,\n toolbarFooter,\n toolbarRightIcons,\n selectable = false,\n selectedRows = [],\n onSelectedRows,\n pagination = false,\n rowsPerPage = 10,\n onRowsPerPageChange,\n rowsPerPageOptions: _rowsPerPageOptions,\n rowsPerPageLabel: _rowsPerPageLabel,\n exportLabel = 'Exportar',\n exportFunction,\n rowsCount,\n page = 0,\n onPageChange,\n loading = false,\n skeletonComponent,\n style,\n}: DataGridProps<Data>): JSX.Element => {\n if (selectable && (!selectedRows || !onSelectedRows)) {\n throw new Error(\n '[DataGrid] You should specify selection handlers (selectedRows, onSelectedRows)'\n );\n }\n\n const rowsPerPageLabel = React.useCallback(\n value =>\n _rowsPerPageLabel\n ? _rowsPerPageLabel(value)\n : `Exibir por página: ${value} itens`,\n [_rowsPerPageLabel]\n );\n const rowsPerPageOptions = React.useMemo(\n () => _rowsPerPageOptions ?? [10, 25, 50],\n [_rowsPerPageOptions]\n );\n\n const handleSelect = React.useCallback(\n (current, checked) => {\n if (checked) {\n onSelectedRows?.(prevState => [...prevState, current]);\n return;\n }\n\n onSelectedRows?.(prevState => {\n const idx = prevState.findIndex(\n el => rowKeyExtractor(el) === rowKeyExtractor(current)\n );\n return [...removeElement(prevState, idx)];\n });\n },\n [onSelectedRows, rowKeyExtractor]\n );\n\n return (\n <TableContainer style={style}>\n <TableToolbar\n title={toolbarTitle}\n rightIcons={toolbarRightIcons}\n footer={toolbarFooter}\n />\n <Table>\n <Header\n selectable={selectable}\n headers={headers}\n data={data}\n rowsCount={rowsCount ?? data.length}\n rowKeyExtractor={rowKeyExtractor}\n selectedRows={selectedRows}\n onSelected={onSelectedRows}\n />\n\n {!loading ? (\n <TBody>\n {getData(data, rowsCount, page, rowsPerPage).map(item => (\n <Row\n key={rowKeyExtractor(item)}\n rowKeyExtractor={rowKeyExtractor}\n handleSelect={handleSelect}\n selectable={selectable}\n headers={headers}\n data={item}\n checked={selectedRows?.some(\n sel => rowKeyExtractor(sel) === rowKeyExtractor(item)\n )}\n />\n ))}\n </TBody>\n ) : (\n <TBody>\n {[...Array(rowsPerPage).keys()].map(idx => (\n <Tr key={`skeleton-${idx}`}>\n <Td colSpan={99} style={{ padding: 0 }}>\n {skeletonComponent ?? (\n <Skeleton height={55} radius=\"mili\" animation=\"wave\">\n <div style={{ width: '100%' }} />\n </Skeleton>\n )}\n </Td>\n </Tr>\n ))}\n </TBody>\n )}\n\n <Footer\n exportFunction={exportFunction}\n exportLabel={exportLabel}\n rowsPerPageLabel={rowsPerPageLabel}\n rowsPerPage={rowsPerPage}\n onRowsPerPageChange={onRowsPerPageChange}\n rowsPerPageOptions={rowsPerPageOptions}\n rowsCount={rowsCount ?? data.length}\n page={page}\n onPageChange={onPageChange}\n pagination={pagination}\n />\n </Table>\n </TableContainer>\n );\n};\n\nexport default DataGrid;\n"],"file":"DataGrid.js"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface DataGridFooterProps {
3
+ rowsPerPage: number;
4
+ onRowsPerPageChange?: (value: number) => void;
5
+ rowsPerPageOptions: number[];
6
+ rowsPerPageLabel: (value: number) => string;
7
+ exportLabel?: string;
8
+ exportFunction?: () => void;
9
+ rowsCount: number;
10
+ page: number;
11
+ onPageChange?: (page: number) => void;
12
+ pagination: boolean;
13
+ }
14
+ declare const _default: React.NamedExoticComponent<DataGridFooterProps>;
15
+ export default _default;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactWebKit = require("@tecsinapse/react-web-kit");
11
+
12
+ var _Table = require("../../../atoms/Table");
13
+
14
+ var _styled = require("./styled");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const Footer = ({
19
+ rowsPerPage,
20
+ onRowsPerPageChange,
21
+ rowsPerPageOptions,
22
+ rowsPerPageLabel,
23
+ exportFunction,
24
+ exportLabel,
25
+ rowsCount,
26
+ page,
27
+ onPageChange,
28
+ pagination
29
+ }) => {
30
+ if (pagination && (!onPageChange || !onRowsPerPageChange)) {
31
+ throw new Error('[DataGrid] You should specify pagination handlers (onPageChange, onRowsPerPageChange)');
32
+ }
33
+
34
+ const getPaginationSlice = () => {
35
+ const totalPages = Math.ceil(rowsCount / rowsPerPage);
36
+
37
+ if (totalPages < 4) {
38
+ return {
39
+ start: 0,
40
+ end: totalPages
41
+ };
42
+ }
43
+
44
+ if (page === 0) {
45
+ return {
46
+ start: page,
47
+ end: page + 3
48
+ };
49
+ }
50
+
51
+ if (page === totalPages - 1) {
52
+ return {
53
+ start: page - 2,
54
+ end: page + 1
55
+ };
56
+ }
57
+
58
+ return {
59
+ start: page - 1,
60
+ end: page + 2
61
+ };
62
+ };
63
+
64
+ return _react.default.createElement(_Table.TFoot, null, _react.default.createElement(_Table.Tr, null, _react.default.createElement(_styled.TdFooterStyled, {
65
+ colSpan: 99
66
+ }, _react.default.createElement(_styled.FooterContainer, null, _react.default.createElement(_styled.FooterContainerStart, null, pagination && _react.default.createElement(_styled.SelectContainer, null, _react.default.createElement(_reactWebKit.Select, {
67
+ options: rowsPerPageOptions,
68
+ onSelect: value => onRowsPerPageChange === null || onRowsPerPageChange === void 0 ? void 0 : onRowsPerPageChange(value),
69
+ value: rowsPerPage,
70
+ type: 'single',
71
+ keyExtractor: value => String(value),
72
+ labelExtractor: rowsPerPageLabel
73
+ })), exportFunction && _react.default.createElement(_styled.HoveredText, null, _react.default.createElement(_reactWebKit.Button, {
74
+ variant: "outlined",
75
+ onPress: () => exportFunction()
76
+ }, _react.default.createElement(_reactWebKit.Text, {
77
+ fontColor: "orange",
78
+ fontWeight: "bold"
79
+ }, exportLabel)))), pagination && _react.default.createElement(_styled.FooterContainerEnd, null, _react.default.createElement(_styled.NavigationButton, {
80
+ onPress: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(page - 1),
81
+ disabled: page === 0
82
+ }, _react.default.createElement(_reactWebKit.Icon, {
83
+ name: 'chevron-left',
84
+ type: 'material-community',
85
+ fontColor: 'light'
86
+ })), _react.default.createElement(_styled.PagesContainer, null, [...Array(Math.ceil(rowsCount / rowsPerPage)).keys()].slice(getPaginationSlice().start, getPaginationSlice().end).map(value => _react.default.createElement(_styled.HoveredText, {
87
+ key: `page-${value}`
88
+ }, _react.default.createElement(_styled.PageButton, {
89
+ variant: page === value ? 'outlined' : 'text',
90
+ onPress: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(value)
91
+ }, _react.default.createElement(_reactWebKit.Text, {
92
+ fontColor: "medium",
93
+ fontWeight: "bold"
94
+ }, value + 1))))), _react.default.createElement(_styled.NavigationButton, {
95
+ onPress: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(page + 1),
96
+ disabled: page === Math.ceil(rowsCount / rowsPerPage) - 1
97
+ }, _react.default.createElement(_reactWebKit.Icon, {
98
+ name: 'chevron-right',
99
+ type: 'material-community',
100
+ fontColor: 'light'
101
+ })))))));
102
+ };
103
+
104
+ var _default = _react.default.memo(Footer);
105
+
106
+ exports.default = _default;
107
+ //# sourceMappingURL=Footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/organisms/DataGrid/Footer/Footer.tsx"],"names":["Footer","rowsPerPage","onRowsPerPageChange","rowsPerPageOptions","rowsPerPageLabel","exportFunction","exportLabel","rowsCount","page","onPageChange","pagination","Error","getPaginationSlice","totalPages","Math","ceil","start","end","value","String","Array","keys","slice","map","React","memo"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Button, Icon, Select, Text } from '@tecsinapse/react-web-kit';\nimport { TFoot, Tr } from '../../../atoms/Table';\nimport {\n FooterContainer,\n FooterContainerEnd,\n FooterContainerStart,\n HoveredText,\n NavigationButton,\n PageButton,\n PagesContainer,\n SelectContainer,\n TdFooterStyled,\n} from './styled';\n\ninterface DataGridFooterProps {\n rowsPerPage: number;\n onRowsPerPageChange?: (value: number) => void;\n rowsPerPageOptions: number[];\n rowsPerPageLabel: (value: number) => string;\n exportLabel?: string;\n exportFunction?: () => void;\n /** Total data elements */\n rowsCount: number;\n page: number;\n onPageChange?: (page: number) => void;\n pagination: boolean;\n}\n\nconst Footer: React.FC<DataGridFooterProps> = ({\n rowsPerPage,\n onRowsPerPageChange,\n rowsPerPageOptions,\n rowsPerPageLabel,\n exportFunction,\n exportLabel,\n rowsCount,\n page,\n onPageChange,\n pagination,\n}) => {\n if (pagination && (!onPageChange || !onRowsPerPageChange)) {\n throw new Error(\n '[DataGrid] You should specify pagination handlers (onPageChange, onRowsPerPageChange)'\n );\n }\n\n const getPaginationSlice = (): { start: number; end: number } => {\n const totalPages = Math.ceil(rowsCount / rowsPerPage);\n if (totalPages < 4) {\n return { start: 0, end: totalPages };\n }\n if (page === 0) {\n return { start: page, end: page + 3 };\n }\n if (page === totalPages - 1) {\n return { start: page - 2, end: page + 1 };\n }\n return { start: page - 1, end: page + 2 };\n };\n\n return (\n <TFoot>\n <Tr>\n <TdFooterStyled colSpan={99}>\n <FooterContainer>\n <FooterContainerStart>\n {pagination && (\n <SelectContainer>\n <Select\n options={rowsPerPageOptions}\n onSelect={value => onRowsPerPageChange?.(value as number)}\n value={rowsPerPage}\n type={'single'}\n keyExtractor={value => String(value)}\n labelExtractor={rowsPerPageLabel}\n />\n </SelectContainer>\n )}\n {exportFunction && (\n <HoveredText>\n <Button variant=\"outlined\" onPress={() => exportFunction()}>\n <Text fontColor=\"orange\" fontWeight=\"bold\">\n {exportLabel}\n </Text>\n </Button>\n </HoveredText>\n )}\n </FooterContainerStart>\n {pagination && (\n <FooterContainerEnd>\n <NavigationButton\n onPress={() => onPageChange?.(page - 1)}\n disabled={page === 0}\n >\n <Icon\n name={'chevron-left'}\n type={'material-community'}\n fontColor={'light'}\n />\n </NavigationButton>\n <PagesContainer>\n {[...Array(Math.ceil(rowsCount / rowsPerPage)).keys()]\n .slice(getPaginationSlice().start, getPaginationSlice().end)\n .map(value => (\n <HoveredText key={`page-${value}`}>\n <PageButton\n variant={page === value ? 'outlined' : 'text'}\n onPress={() => onPageChange?.(value)}\n >\n <Text fontColor=\"medium\" fontWeight=\"bold\">\n {value + 1}\n </Text>\n </PageButton>\n </HoveredText>\n ))}\n </PagesContainer>\n <NavigationButton\n onPress={() => onPageChange?.(page + 1)}\n disabled={page === Math.ceil(rowsCount / rowsPerPage) - 1}\n >\n <Icon\n name={'chevron-right'}\n type={'material-community'}\n fontColor={'light'}\n />\n </NavigationButton>\n </FooterContainerEnd>\n )}\n </FooterContainer>\n </TdFooterStyled>\n </Tr>\n </TFoot>\n );\n};\n\nexport default React.memo(Footer);\n"],"file":"Footer.js"}