@codezee/sixtify-brahma 0.2.6 → 0.2.7

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 (279) hide show
  1. package/package.json +7 -2
  2. package/.github/workflows/deploy-storybook.yml +0 -40
  3. package/.husky/commit-msg +0 -4
  4. package/.husky/pre-commit +0 -4
  5. package/.husky/pre-push +0 -4
  6. package/.lintstagedrc +0 -5
  7. package/.prettierignore +0 -11
  8. package/.prettierrc +0 -22
  9. package/.vscode/extensions.json +0 -22
  10. package/.vscode/settings.json +0 -17
  11. package/apps/docs/.eslintrc.cjs +0 -4
  12. package/apps/docs/.eslintrc.js +0 -9
  13. package/apps/docs/.storybook/main.ts +0 -23
  14. package/apps/docs/.storybook/preview.tsx +0 -27
  15. package/apps/docs/next-env.d.ts +0 -5
  16. package/apps/docs/next.config.mjs +0 -4
  17. package/apps/docs/package.json +0 -38
  18. package/apps/docs/public/globals.css +0 -25
  19. package/apps/docs/stories/AgGrid/AgGrid.stories.tsx +0 -69
  20. package/apps/docs/stories/AppBar/AppBar.stories.tsx +0 -39
  21. package/apps/docs/stories/Breadcrumbs/Breadcrumbs.stories.tsx +0 -37
  22. package/apps/docs/stories/Button/ButtonGroup.stories.tsx +0 -99
  23. package/apps/docs/stories/Button/button.stories.tsx +0 -99
  24. package/apps/docs/stories/Card/AttendanceCard.stories.tsx +0 -37
  25. package/apps/docs/stories/Card/Card.stories.tsx +0 -39
  26. package/apps/docs/stories/Charts/PieChart.stories.tsx +0 -264
  27. package/apps/docs/stories/Chips/Chip.stories.tsx +0 -141
  28. package/apps/docs/stories/Chips/ChipWithBorder.stories.tsx +0 -18
  29. package/apps/docs/stories/Chips/FilterPill.stories.tsx +0 -24
  30. package/apps/docs/stories/Color/Color.stories.tsx +0 -14
  31. package/apps/docs/stories/Dialog/ButtomDialog.stories.tsx +0 -47
  32. package/apps/docs/stories/Dialog/DeleteDialog.stories.tsx +0 -31
  33. package/apps/docs/stories/Dialog/Dialog.stories.tsx +0 -47
  34. package/apps/docs/stories/Drawer/Drawer.stories.tsx +0 -94
  35. package/apps/docs/stories/FilterList/FilterList.stories.tsx +0 -88
  36. package/apps/docs/stories/FilterList/FilterListV2.stories.tsx +0 -92
  37. package/apps/docs/stories/FormFields/AutoComplete.stories.tsx +0 -87
  38. package/apps/docs/stories/FormFields/CheckBox.stories.tsx +0 -61
  39. package/apps/docs/stories/FormFields/DatePicker.stories.tsx +0 -98
  40. package/apps/docs/stories/FormFields/DateRangePicker.stories.tsx +0 -37
  41. package/apps/docs/stories/FormFields/FileUpload.stories.tsx +0 -83
  42. package/apps/docs/stories/FormFields/ImageUpload.stories.tsx +0 -69
  43. package/apps/docs/stories/FormFields/ListItemButton.stories.tsx +0 -59
  44. package/apps/docs/stories/FormFields/RadioGroupField.stories.tsx +0 -170
  45. package/apps/docs/stories/FormFields/SearchField.stories.tsx +0 -72
  46. package/apps/docs/stories/FormFields/TextField.stories.tsx +0 -111
  47. package/apps/docs/stories/FormFields/TimeField.stories.tsx +0 -82
  48. package/apps/docs/stories/FormFields/TimePicker.stories.tsx +0 -82
  49. package/apps/docs/stories/Indicator/Indicator.stories.tsx +0 -33
  50. package/apps/docs/stories/Indicator/SeverityIndicator.stories.tsx +0 -27
  51. package/apps/docs/stories/Layouts/FormRow.stories.tsx +0 -45
  52. package/apps/docs/stories/PadBox/PadBox.stories.tsx +0 -49
  53. package/apps/docs/stories/Stepper/Stepper.stories.tsx +0 -75
  54. package/apps/docs/stories/Stepper/StepperV2.stories.tsx +0 -44
  55. package/apps/docs/stories/Timeline/AttendanceStatus.stories.tsx +0 -29
  56. package/apps/docs/stories/Timeline/Timeline.stories.tsx +0 -38
  57. package/apps/docs/stories/Tooltip/Tooltip.stories.tsx +0 -30
  58. package/apps/docs/stories/UserProfileMenu/UserProfileMenu.stories.tsx +0 -112
  59. package/apps/docs/tsconfig.json +0 -19
  60. package/commitlint.config.cjs +0 -6
  61. package/index.ts +0 -1
  62. package/packages/eslint-config/README.md +0 -3
  63. package/packages/eslint-config/library.js +0 -88
  64. package/packages/eslint-config/next.js +0 -85
  65. package/packages/eslint-config/package.json +0 -19
  66. package/packages/eslint-config/react-internal.js +0 -89
  67. package/packages/shared-components/.eslintrc.js +0 -10
  68. package/packages/shared-components/package.json +0 -22
  69. package/packages/shared-components/src/Actions/AddAction.tsx +0 -13
  70. package/packages/shared-components/src/Actions/CalendarAction.tsx +0 -13
  71. package/packages/shared-components/src/Actions/ConfigureAction.tsx +0 -13
  72. package/packages/shared-components/src/Actions/DeleteAction.tsx +0 -13
  73. package/packages/shared-components/src/Actions/DownloadAction.tsx +0 -13
  74. package/packages/shared-components/src/Actions/EditAction.tsx +0 -13
  75. package/packages/shared-components/src/Actions/HistoryAction.tsx +0 -13
  76. package/packages/shared-components/src/Actions/index.ts +0 -7
  77. package/packages/shared-components/src/AgGrid/ActionCell/ActionCell.tsx +0 -57
  78. package/packages/shared-components/src/AgGrid/ActionCell/Popover.tsx +0 -32
  79. package/packages/shared-components/src/AgGrid/AgGrid.tsx +0 -93
  80. package/packages/shared-components/src/AgGrid/LoadingCell.tsx +0 -5
  81. package/packages/shared-components/src/AgGrid/index.ts +0 -3
  82. package/packages/shared-components/src/AppBar/AppBar.styled.tsx +0 -25
  83. package/packages/shared-components/src/AppBar/AppBar.tsx +0 -20
  84. package/packages/shared-components/src/AppBar/index.ts +0 -1
  85. package/packages/shared-components/src/Breadcrumbs/Breadcrumbs.tsx +0 -76
  86. package/packages/shared-components/src/Breadcrumbs/index.ts +0 -1
  87. package/packages/shared-components/src/Button/ActionButton.tsx +0 -38
  88. package/packages/shared-components/src/Button/Button.tsx +0 -19
  89. package/packages/shared-components/src/Button/ButtonGroup.tsx +0 -37
  90. package/packages/shared-components/src/Button/index.ts +0 -3
  91. package/packages/shared-components/src/Card/AttendanceCard.tsx +0 -51
  92. package/packages/shared-components/src/Card/Card.tsx +0 -34
  93. package/packages/shared-components/src/Card/CardItem/CardItem.tsx +0 -33
  94. package/packages/shared-components/src/Card/CardItem/CardItemValue.tsx +0 -98
  95. package/packages/shared-components/src/Card/CardItem/index.ts +0 -2
  96. package/packages/shared-components/src/Card/ProfileCard/ProfileCard.tsx +0 -40
  97. package/packages/shared-components/src/Card/ProfileCard/ProfileCardItem/ProfileCardBody.tsx +0 -53
  98. package/packages/shared-components/src/Card/ProfileCard/ProfileCardItem/ProfileCardHeader.tsx +0 -96
  99. package/packages/shared-components/src/Card/index.ts +0 -6
  100. package/packages/shared-components/src/Charts/PieChart.tsx +0 -81
  101. package/packages/shared-components/src/Charts/Skeleton.tsx +0 -36
  102. package/packages/shared-components/src/Charts/index.ts +0 -1
  103. package/packages/shared-components/src/Chips/Chip.tsx +0 -26
  104. package/packages/shared-components/src/Chips/ChipWithBorder.tsx +0 -39
  105. package/packages/shared-components/src/Chips/FilterPill.tsx +0 -47
  106. package/packages/shared-components/src/Chips/index.ts +0 -3
  107. package/packages/shared-components/src/Dialog/BottomDialog.styled.tsx +0 -28
  108. package/packages/shared-components/src/Dialog/BottomDialog.tsx +0 -37
  109. package/packages/shared-components/src/Dialog/DeleteDialog.tsx +0 -48
  110. package/packages/shared-components/src/Dialog/Dialog.tsx +0 -61
  111. package/packages/shared-components/src/Dialog/index.ts +0 -3
  112. package/packages/shared-components/src/Drawer/Bullet.tsx +0 -12
  113. package/packages/shared-components/src/Drawer/CloseDrawer/CloseDrawerMenuItem.tsx +0 -57
  114. package/packages/shared-components/src/Drawer/CloseDrawer/CloseDrawerMenuItemList.tsx +0 -109
  115. package/packages/shared-components/src/Drawer/CloseDrawer/CloseDrawerSubMenuItemList.tsx +0 -124
  116. package/packages/shared-components/src/Drawer/CloseDrawer/MenuItem.tsx +0 -0
  117. package/packages/shared-components/src/Drawer/CloseDrawer/Popover.tsx +0 -45
  118. package/packages/shared-components/src/Drawer/CloseDrawer/Popper.tsx +0 -43
  119. package/packages/shared-components/src/Drawer/Drawer.styled.tsx +0 -51
  120. package/packages/shared-components/src/Drawer/Drawer.tsx +0 -55
  121. package/packages/shared-components/src/Drawer/MenuItem.tsx +0 -75
  122. package/packages/shared-components/src/Drawer/OpenDrawer/OpenDrawerCollapse.tsx +0 -13
  123. package/packages/shared-components/src/Drawer/OpenDrawer/OpenDrawerMenuItem.tsx +0 -46
  124. package/packages/shared-components/src/Drawer/OpenDrawer/OpenDrawerMenuItemList.tsx +0 -197
  125. package/packages/shared-components/src/Drawer/index.ts +0 -1
  126. package/packages/shared-components/src/FilterList/FilterList.tsx +0 -172
  127. package/packages/shared-components/src/FilterList/FilterListV2.tsx +0 -515
  128. package/packages/shared-components/src/FilterList/FilterPopup.tsx +0 -148
  129. package/packages/shared-components/src/FilterList/FilterPopupWrapper.tsx +0 -113
  130. package/packages/shared-components/src/FilterList/FilterTypeWrapper.tsx +0 -58
  131. package/packages/shared-components/src/FilterList/getFormData.ts +0 -29
  132. package/packages/shared-components/src/FilterList/index.ts +0 -5
  133. package/packages/shared-components/src/FormFields/Autocomplete/Autocomplete.tsx +0 -510
  134. package/packages/shared-components/src/FormFields/Autocomplete/Skeleton.tsx +0 -26
  135. package/packages/shared-components/src/FormFields/Autocomplete/index.ts +0 -1
  136. package/packages/shared-components/src/FormFields/CheckBox/CheckBox.styled.tsx +0 -67
  137. package/packages/shared-components/src/FormFields/CheckBox/CheckBox.tsx +0 -44
  138. package/packages/shared-components/src/FormFields/CheckBox/Skeleton.tsx +0 -12
  139. package/packages/shared-components/src/FormFields/CheckBox/index.ts +0 -1
  140. package/packages/shared-components/src/FormFields/DatePicker/DatePicker.tsx +0 -217
  141. package/packages/shared-components/src/FormFields/DatePicker/Skeleton.tsx +0 -28
  142. package/packages/shared-components/src/FormFields/DatePicker/index.ts +0 -1
  143. package/packages/shared-components/src/FormFields/DateRangePicker/DateRangePicker.tsx +0 -96
  144. package/packages/shared-components/src/FormFields/DateRangePicker/Skeleton.tsx +0 -38
  145. package/packages/shared-components/src/FormFields/DateRangePicker/index.ts +0 -1
  146. package/packages/shared-components/src/FormFields/DateTimePicker/DateTimePicker.tsx +0 -250
  147. package/packages/shared-components/src/FormFields/DateTimePicker/Skeleton.tsx +0 -24
  148. package/packages/shared-components/src/FormFields/DateTimePicker/index.ts +0 -1
  149. package/packages/shared-components/src/FormFields/FileUpload/FileNames.tsx +0 -32
  150. package/packages/shared-components/src/FormFields/FileUpload/FileUpload.styled.tsx +0 -22
  151. package/packages/shared-components/src/FormFields/FileUpload/FileUpload.tsx +0 -157
  152. package/packages/shared-components/src/FormFields/FileUpload/Skeleton.tsx +0 -21
  153. package/packages/shared-components/src/FormFields/FileUpload/UploadedFileName.tsx +0 -27
  154. package/packages/shared-components/src/FormFields/FileUpload/index.ts +0 -2
  155. package/packages/shared-components/src/FormFields/ImageUpload/ImageUpload.styled.tsx +0 -16
  156. package/packages/shared-components/src/FormFields/ImageUpload/ImageUpload.tsx +0 -181
  157. package/packages/shared-components/src/FormFields/ImageUpload/ImageUploadView.tsx +0 -65
  158. package/packages/shared-components/src/FormFields/ImageUpload/PhotoCaptureDialog.tsx +0 -74
  159. package/packages/shared-components/src/FormFields/ImageUpload/Skeleton.tsx +0 -31
  160. package/packages/shared-components/src/FormFields/ImageUpload/index.ts +0 -2
  161. package/packages/shared-components/src/FormFields/ListItemButton/ListItemButton.styled.tsx +0 -22
  162. package/packages/shared-components/src/FormFields/ListItemButton/ListItemButton.tsx +0 -52
  163. package/packages/shared-components/src/FormFields/ListItemButton/index.ts +0 -1
  164. package/packages/shared-components/src/FormFields/PasswordField/PasswordField.tsx +0 -50
  165. package/packages/shared-components/src/FormFields/PasswordField/index.ts +0 -1
  166. package/packages/shared-components/src/FormFields/RadioGroupField/RadioGroupField.tsx +0 -105
  167. package/packages/shared-components/src/FormFields/RadioGroupField/Skeleton.tsx +0 -26
  168. package/packages/shared-components/src/FormFields/RadioGroupField/index.ts +0 -1
  169. package/packages/shared-components/src/FormFields/SearchField/SearchField.tsx +0 -21
  170. package/packages/shared-components/src/FormFields/SearchField/index.ts +0 -1
  171. package/packages/shared-components/src/FormFields/Switch/Skeleton.tsx +0 -12
  172. package/packages/shared-components/src/FormFields/Switch/Switch.tsx +0 -33
  173. package/packages/shared-components/src/FormFields/Switch/index.ts +0 -1
  174. package/packages/shared-components/src/FormFields/TextField/Skeleton.tsx +0 -31
  175. package/packages/shared-components/src/FormFields/TextField/TextField.tsx +0 -92
  176. package/packages/shared-components/src/FormFields/TextField/index.ts +0 -1
  177. package/packages/shared-components/src/FormFields/TimeField/Skeleton.tsx +0 -24
  178. package/packages/shared-components/src/FormFields/TimeField/TimeField.tsx +0 -120
  179. package/packages/shared-components/src/FormFields/TimeField/index.ts +0 -1
  180. package/packages/shared-components/src/FormFields/TimePicker/Skeleton.tsx +0 -24
  181. package/packages/shared-components/src/FormFields/TimePicker/TimePicker.tsx +0 -168
  182. package/packages/shared-components/src/FormFields/TimePicker/index.ts +0 -1
  183. package/packages/shared-components/src/FormFields/index.ts +0 -13
  184. package/packages/shared-components/src/Indicator/Indicator.tsx +0 -18
  185. package/packages/shared-components/src/Indicator/SeverityIndicator.tsx +0 -34
  186. package/packages/shared-components/src/Indicator/index.ts +0 -2
  187. package/packages/shared-components/src/Layouts/FormContainer.tsx +0 -6
  188. package/packages/shared-components/src/Layouts/FormGridLayout.tsx +0 -27
  189. package/packages/shared-components/src/Layouts/FormRow/FormRow.styled.tsx +0 -39
  190. package/packages/shared-components/src/Layouts/FormRow/FormRow.tsx +0 -20
  191. package/packages/shared-components/src/Layouts/FormRow/index.ts +0 -1
  192. package/packages/shared-components/src/Layouts/FormSection.tsx +0 -22
  193. package/packages/shared-components/src/Layouts/index.ts +0 -4
  194. package/packages/shared-components/src/Loader/FacebookCircularProgress.tsx +0 -41
  195. package/packages/shared-components/src/Loader/index.ts +0 -1
  196. package/packages/shared-components/src/PadBox/PadBox.tsx +0 -21
  197. package/packages/shared-components/src/PadBox/index.ts +0 -1
  198. package/packages/shared-components/src/Pagination/Pagination.tsx +0 -42
  199. package/packages/shared-components/src/Pagination/index.ts +0 -1
  200. package/packages/shared-components/src/Stepper/Stepper.tsx +0 -54
  201. package/packages/shared-components/src/Stepper/StepperV2.tsx +0 -115
  202. package/packages/shared-components/src/Stepper/StepperV3.tsx +0 -72
  203. package/packages/shared-components/src/Stepper/index.ts +0 -3
  204. package/packages/shared-components/src/Svgs/AppLogo/AppLogoMedium.tsx +0 -65
  205. package/packages/shared-components/src/Svgs/AppLogo/AppLogoSmall.tsx +0 -48
  206. package/packages/shared-components/src/Svgs/ArrowUp.tsx +0 -11
  207. package/packages/shared-components/src/Svgs/Company/CompanyBanner.tsx +0 -480
  208. package/packages/shared-components/src/Svgs/Company/index.ts +0 -1
  209. package/packages/shared-components/src/Svgs/Drawer/SettingIcon.tsx +0 -31
  210. package/packages/shared-components/src/Svgs/Drawer/SvgBankConfig.tsx +0 -36
  211. package/packages/shared-components/src/Svgs/Drawer/SvgConfiguration.tsx +0 -16
  212. package/packages/shared-components/src/Svgs/Drawer/SvgPayroll.tsx +0 -32
  213. package/packages/shared-components/src/Svgs/Drawer/SvgsEmployees.tsx +0 -25
  214. package/packages/shared-components/src/Svgs/Drawer/SvgsOrganization.tsx +0 -36
  215. package/packages/shared-components/src/Svgs/Drawer/SvgsTransaction.tsx +0 -81
  216. package/packages/shared-components/src/Svgs/Drawer/index.ts +0 -7
  217. package/packages/shared-components/src/Svgs/FormAction.tsx +0 -118
  218. package/packages/shared-components/src/Svgs/ImportExcelSuccessIcon.tsx +0 -54
  219. package/packages/shared-components/src/Svgs/LogoIcon.tsx +0 -74
  220. package/packages/shared-components/src/Svgs/SvgAdd.tsx +0 -28
  221. package/packages/shared-components/src/Svgs/SvgCalendar.tsx +0 -89
  222. package/packages/shared-components/src/Svgs/SvgConfigure.tsx +0 -51
  223. package/packages/shared-components/src/Svgs/SvgDelete.tsx +0 -55
  224. package/packages/shared-components/src/Svgs/SvgDownload.tsx +0 -20
  225. package/packages/shared-components/src/Svgs/SvgEmail.tsx +0 -24
  226. package/packages/shared-components/src/Svgs/SvgFilterList.tsx +0 -19
  227. package/packages/shared-components/src/Svgs/SvgNoLogo.tsx +0 -66
  228. package/packages/shared-components/src/Svgs/SvgNoSign.tsx +0 -28
  229. package/packages/shared-components/src/Svgs/SvgPhone.tsx +0 -16
  230. package/packages/shared-components/src/Svgs/SvgsDrop.tsx +0 -44
  231. package/packages/shared-components/src/Svgs/SvgsEdit.tsx +0 -42
  232. package/packages/shared-components/src/Svgs/SvgsHistory.tsx +0 -40
  233. package/packages/shared-components/src/Svgs/SvgsHome.tsx +0 -18
  234. package/packages/shared-components/src/Svgs/SvgsIndicator.tsx +0 -24
  235. package/packages/shared-components/src/Svgs/index.ts +0 -14
  236. package/packages/shared-components/src/Tab/Skeleton.tsx +0 -15
  237. package/packages/shared-components/src/Tab/Tabs.tsx +0 -64
  238. package/packages/shared-components/src/Tab/index.ts +0 -1
  239. package/packages/shared-components/src/Timeline/AttendanceStatus.tsx +0 -56
  240. package/packages/shared-components/src/Timeline/Timeline.tsx +0 -171
  241. package/packages/shared-components/src/Timeline/TimelineTrackSegments.tsx +0 -130
  242. package/packages/shared-components/src/Timeline/index.ts +0 -2
  243. package/packages/shared-components/src/Toast/Toast.tsx +0 -59
  244. package/packages/shared-components/src/Toast/ToastBody.tsx +0 -26
  245. package/packages/shared-components/src/Toast/ToastFooterLink.tsx +0 -19
  246. package/packages/shared-components/src/Toast/Toaster.styled.tsx +0 -76
  247. package/packages/shared-components/src/Toast/Toaster.tsx +0 -21
  248. package/packages/shared-components/src/Toast/index.ts +0 -3
  249. package/packages/shared-components/src/Toast/toasts.tsx +0 -28
  250. package/packages/shared-components/src/Toast/types.ts +0 -13
  251. package/packages/shared-components/src/Tooltip/Tooltip.tsx +0 -36
  252. package/packages/shared-components/src/Tooltip/index.ts +0 -1
  253. package/packages/shared-components/src/UserProfileMenu/UserProfileMenu.styled.tsx +0 -33
  254. package/packages/shared-components/src/UserProfileMenu/UserProfileMenu.tsx +0 -168
  255. package/packages/shared-components/src/UserProfileMenu/index.ts +0 -1
  256. package/packages/shared-components/src/index.ts +0 -25
  257. package/packages/shared-components/src/utils/colorVariant.ts +0 -162
  258. package/packages/shared-components/src/utils/date.ts +0 -25
  259. package/packages/shared-components/src/utils/file.ts +0 -20
  260. package/packages/shared-components/src/utils/fileSizeValidate.ts +0 -5
  261. package/packages/shared-components/src/utils/index.ts +0 -9
  262. package/packages/shared-components/src/utils/theme/colorPalette.ts +0 -112
  263. package/packages/shared-components/src/utils/theme/colorPaletteUI.tsx +0 -44
  264. package/packages/shared-components/src/utils/theme/paletteDark.ts +0 -10
  265. package/packages/shared-components/src/utils/theme/paletteLight.ts +0 -31
  266. package/packages/shared-components/src/utils/theme/theme.ts +0 -297
  267. package/packages/shared-components/src/utils/theme/types.ts +0 -18
  268. package/packages/shared-components/src/utils/theme/typography.ts +0 -52
  269. package/packages/shared-components/src/utils/urlToNestedObject.ts +0 -9
  270. package/packages/shared-components/tsconfig.json +0 -8
  271. package/packages/shared-components/tsconfig.lint.json +0 -8
  272. package/packages/shared-components/turbo/generators/config.ts +0 -33
  273. package/packages/shared-components/turbo/generators/templates/component.hbs +0 -8
  274. package/packages/typescript-config/base.json +0 -20
  275. package/packages/typescript-config/nextjs.json +0 -13
  276. package/packages/typescript-config/package.json +0 -9
  277. package/packages/typescript-config/react-library.json +0 -8
  278. package/pnpm-workspace.yaml +0 -3
  279. package/turbo.json +0 -44
@@ -1,113 +0,0 @@
1
- import { type PropsWithChildren } from "react";
2
- import { FilterPopup } from "./FilterPopup";
3
- import type { FilterListType } from "./FilterTypeWrapper";
4
- import {
5
- Autocomplete,
6
- DatePicker,
7
- DateRangePicker,
8
- TextField,
9
- } from "../FormFields";
10
- import { useTheme, type PopoverProps } from "@mui/material";
11
- import type { Control, FieldValues } from "react-hook-form";
12
- import { PadBox } from "../PadBox";
13
-
14
- type FilterPopupWrapperProp = PropsWithChildren<PopoverProps> & {
15
- filterItem: FilterListType;
16
- control: Control<FieldValues>;
17
- currentFilterValue?: string | string[] | null;
18
- onApply: () => void;
19
- };
20
-
21
- export type FilterPopupComponentType = {
22
- autoComplete?: JSX.Element;
23
- text: JSX.Element;
24
- date: JSX.Element;
25
- checkbox?: JSX.Element;
26
- dateRange?: JSX.Element;
27
- switch?: JSX.Element;
28
- radio?: JSX.Element;
29
- };
30
-
31
- export const GetFilterPopupComponent = (
32
- selectedFilter: FilterListType,
33
- control: Control<FieldValues>
34
- ): FilterPopupComponentType => {
35
- const theme = useTheme();
36
-
37
- const { sapphireBlue, black } = theme.palette.app.color;
38
-
39
- return {
40
- autoComplete: selectedFilter.options && (
41
- <Autocomplete
42
- disableClearable
43
- multiple={selectedFilter.multiSelect ?? false}
44
- placeholder={`Select ${selectedFilter.label}`}
45
- name={`${selectedFilter.key}`}
46
- disabled={selectedFilter.isDisabled}
47
- shouldCloseOnSelect={selectedFilter.multiSelect ?? false}
48
- control={control}
49
- options={selectedFilter.options ?? []}
50
- sx={{
51
- maxHeight: "250px",
52
- overflowY: "auto",
53
- width: "100%",
54
- "& .MuiAutocomplete-tag": {
55
- backgroundColor: sapphireBlue[300],
56
- color: black[900],
57
- },
58
- }}
59
- />
60
- ),
61
- text: (
62
- <TextField
63
- name={selectedFilter.key}
64
- control={control}
65
- disabled={selectedFilter.isDisabled}
66
- placeholder={selectedFilter.label}
67
- />
68
- ),
69
- date: (
70
- <DatePicker
71
- name={selectedFilter.key}
72
- control={control}
73
- disabled={selectedFilter.isDisabled}
74
- />
75
- ),
76
- dateRange: (
77
- <DateRangePicker
78
- name={selectedFilter.key}
79
- control={control}
80
- disabled={selectedFilter.isDisabled}
81
- />
82
- ),
83
- };
84
- };
85
-
86
- export const FilterPopupWrapper = ({
87
- open,
88
- anchorEl,
89
- filterItem,
90
- onClose,
91
- control,
92
- onApply,
93
- currentFilterValue,
94
- }: FilterPopupWrapperProp) => {
95
- return (
96
- <FilterPopup
97
- title={filterItem.label}
98
- filterItem={filterItem}
99
- open={open}
100
- onClose={onClose}
101
- anchorEl={anchorEl}
102
- onApply={onApply}
103
- currentFilterValue={currentFilterValue}
104
- showFooter
105
- showDivider
106
- background
107
- >
108
- <PadBox padding={{ padding: "10px" }}>
109
- {GetFilterPopupComponent(filterItem, control)[filterItem.type]}
110
- </PadBox>
111
- </FilterPopup>
112
- );
113
- };
@@ -1,58 +0,0 @@
1
- import { ListItemButton, Stack, Typography } from "@mui/material";
2
- import { Switch } from "../FormFields/Switch";
3
- import type { Control, FieldValues } from "react-hook-form";
4
-
5
- export type FilterComponentType =
6
- | "autoComplete"
7
- | "text"
8
- | "date"
9
- | "dateRange"
10
- | "checkbox"
11
- | "radio"
12
- | "switch";
13
-
14
- type Options = readonly {
15
- label: string;
16
- value: string;
17
- disabled?: boolean;
18
- avatar?: string;
19
- }[];
20
-
21
- export type FilterListType = {
22
- label: string;
23
- isDisabled?: boolean;
24
- key: string;
25
- value: string;
26
- type: FilterComponentType;
27
- menuInfo?: string;
28
- options?: Options;
29
- multiSelect?: boolean;
30
- };
31
- type FilterTypeWrapperProps = {
32
- filter: FilterListType;
33
- control: Control<FieldValues>;
34
- };
35
- export const FilterTypeWrapper = ({
36
- filter,
37
- control,
38
- }: FilterTypeWrapperProps) => {
39
- const getFilterByType = (type: FilterComponentType) => {
40
- return (
41
- <Stack
42
- direction="row"
43
- width="100%"
44
- justifyContent="space-between"
45
- alignItems="center"
46
- >
47
- <Typography variant="body2">{filter.label}</Typography>
48
- {type === "switch" ? (
49
- <Switch control={control} name={filter.key} />
50
- ) : (
51
- <Typography variant="body2">{filter.menuInfo}</Typography>
52
- )}
53
- </Stack>
54
- );
55
- };
56
-
57
- return <ListItemButton>{getFilterByType(filter.type)}</ListItemButton>;
58
- };
@@ -1,29 +0,0 @@
1
- import type { FilterListType } from "./FilterTypeWrapper";
2
-
3
- export const getFormValue = (value: unknown, item: FilterListType) => {
4
- let keyValue = value;
5
-
6
- if (item && item.type === "autoComplete") {
7
- if (item.multiSelect && Array.isArray(value)) {
8
- keyValue = item.options
9
- ?.filter((option) => value.includes(option.value))
10
- .map((option) => option.label)
11
- .join(", ");
12
- } else {
13
- keyValue = item.options
14
- ?.filter((option) => option.value === value)
15
- .map((option) => option.label)
16
- .join(", ");
17
- }
18
- }
19
-
20
- if (item.type === "dateRange" && Array.isArray(value) && value.length === 2) {
21
- const startDate = value[0];
22
-
23
- const endDate = value[1];
24
-
25
- keyValue = `${startDate} <= Start Date <= ${endDate}`;
26
- }
27
-
28
- return keyValue;
29
- };
@@ -1,5 +0,0 @@
1
- export * from "./FilterPopup";
2
- export * from "./FilterList";
3
- export * from "./FilterListV2";
4
- export * from "./FilterTypeWrapper";
5
- export * from "./FilterPopupWrapper";
@@ -1,510 +0,0 @@
1
- import type { AutocompleteProps as MuiAutocompleteProps } from "@mui/material";
2
-
3
- import {
4
- Avatar,
5
- Box,
6
- Checkbox,
7
- Chip,
8
- Divider,
9
- IconButton,
10
- InputLabel,
11
- Autocomplete as MuiAutocomplete,
12
- Paper,
13
- Popper,
14
- Stack,
15
- TextField,
16
- useTheme,
17
- } from "@mui/material";
18
- import { styled } from "@mui/material/styles";
19
- import { useMemo, useRef, useState, type KeyboardEvent } from "react";
20
- import {
21
- useController,
22
- type ControllerRenderProps,
23
- type FieldValues,
24
- type UseControllerProps,
25
- } from "react-hook-form";
26
- import { useTranslation } from "react-i18next";
27
- import { EditAction } from "../../Actions";
28
- import { toasts } from "../../Toast";
29
- import { BoxStyled, CheckStyled } from "../CheckBox/CheckBox.styled";
30
- import { Skeleton } from "./Skeleton";
31
-
32
- export type Option = {
33
- heading?: string;
34
- label: string;
35
- value: string | number;
36
- disabled?: boolean;
37
- employee_code?: string;
38
- avatar?: string;
39
- punch_code?: string;
40
- };
41
-
42
- export type AutocompleteProps<P extends FieldValues> = UseControllerProps<P> &
43
- Omit<
44
- Omit<
45
- MuiAutocompleteProps<
46
- {
47
- heading?: string;
48
- label: string;
49
- value: string | number;
50
- disabled?: boolean;
51
- avatar?: string;
52
- employee_code?: string;
53
- punch_code?: string;
54
- },
55
- boolean,
56
- boolean,
57
- boolean
58
- >,
59
- "renderInput"
60
- >,
61
- keyof ControllerRenderProps<P>
62
- > & {
63
- required?: boolean;
64
- label?: string;
65
- helperText?: string;
66
- error?: boolean;
67
- withLabel?: boolean;
68
- placeholder?: string;
69
- isShowAvatar?: boolean;
70
- shouldCloseOnSelect?: boolean;
71
- onAction?: () => void;
72
- isShowSelectAll?: boolean;
73
- isShowOptionsOnType?: boolean;
74
- maxLimit?: number;
75
- renderOption?: (
76
- props: React.HTMLProps<HTMLLIElement>,
77
- option: Option,
78
- state: { selected: boolean }
79
- ) => JSX.Element;
80
- getOptionLabel?: (option: string) => string;
81
- };
82
-
83
- export function Autocomplete<P extends FieldValues>({
84
- control,
85
- defaultValue,
86
- name,
87
- required = false,
88
- label,
89
- multiple = false,
90
- disabled = false,
91
- options = [],
92
- rules,
93
- loading = false,
94
- helperText,
95
- error,
96
- withLabel = false,
97
- placeholder = "",
98
- freeSolo,
99
- isShowOptionsOnType = false,
100
- isShowSelectAll = true,
101
- isShowAvatar = false,
102
- shouldCloseOnSelect = false,
103
- onAction,
104
- renderOption,
105
- getOptionLabel,
106
- maxLimit,
107
- ...restProps
108
- }: AutocompleteProps<P>) {
109
- const {
110
- field: { onChange, value, ...restField },
111
- } = useController({ name, control, defaultValue, rules });
112
-
113
- const { t } = useTranslation();
114
-
115
- const [inputValue, setInputValue] = useState("");
116
-
117
- const handleSelectAll = (isSelected: boolean) => {
118
- if (isSelected) {
119
- const allValues = options.map((option) => option.value);
120
-
121
- onChange(allValues);
122
- } else {
123
- onChange([]);
124
- }
125
- };
126
-
127
- const highlightedOptionRef = useRef<string | number>("");
128
-
129
- const isAllSelected = useMemo(() => {
130
- return (
131
- multiple &&
132
- isShowSelectAll &&
133
- options.length > 0 &&
134
- value?.length === options.filter((option) => !option.disabled).length
135
- );
136
- }, [multiple, isShowSelectAll, options, value]);
137
-
138
- const memoizedOptions = useMemo(() => {
139
- return [
140
- ...(multiple && isShowSelectAll && options.length
141
- ? [{ label: "Select All", value: "select-all" }]
142
- : []),
143
- ...options,
144
- ];
145
- }, [multiple, isShowSelectAll, options]);
146
-
147
- const filteredOptions = useMemo(() => {
148
- if (inputValue.length < 3) {
149
- return [];
150
- }
151
-
152
- return options.filter((option) =>
153
- option.label.toLowerCase().includes(inputValue.toLowerCase())
154
- );
155
- }, [inputValue]);
156
-
157
- // eslint-disable-next-line sonarjs/function-return-type
158
- const selectedValue = useMemo(() => {
159
- if (multiple && freeSolo) {
160
- return (
161
- value?.map((val: string | number) => {
162
- const selectedOption = options.find((option) => option.value === val);
163
-
164
- return selectedOption ? selectedOption.label : val.toString();
165
- }) || []
166
- );
167
- } else if (withLabel) {
168
- return options.find((option) => option.value === value?.value) ?? null;
169
- } else if (multiple) {
170
- return options.filter((option) => value?.includes(option.value));
171
- } else if (!options.find((option) => option.value === value) && freeSolo) {
172
- return value;
173
- }
174
-
175
- return options.find((option) => option.value === value) || null;
176
- }, [multiple, options, value]);
177
-
178
- const {
179
- palette: {
180
- app: { color },
181
- },
182
- } = useTheme();
183
-
184
- const StyledPaper = styled(Paper)(({ theme }) => ({
185
- "& .MuiAutocomplete-listbox": {
186
- maxHeight: 200,
187
- overflowY: "auto",
188
- marginTop: "10px",
189
- "&::-webkit-scrollbar": {
190
- width: "6px",
191
- },
192
- "&::-webkit-scrollbar-thumb": {
193
- backgroundColor: theme.palette.secondary.main,
194
- borderRadius: "4px",
195
- },
196
- "&::-webkit-scrollbar-track": {
197
- backgroundColor: color.lightBlue[100],
198
- },
199
- "& .MuiAutocomplete-option": {
200
- fontSize: "14px", // Change this to your desired font size
201
- },
202
- },
203
- }));
204
-
205
- const GroupHeader = styled("div")(({ theme }) => ({
206
- position: "sticky",
207
- padding: "4px 10px",
208
- fontSize: "16px",
209
- fontWeight: 500,
210
- color: theme.palette.app.color.butterflyBlue[900],
211
- backgroundColor: theme.palette.app.color.butterflyBlue[500],
212
- }));
213
-
214
- const GroupItems = styled("ul")({
215
- padding: 0,
216
- });
217
-
218
- if (loading) {
219
- return <Skeleton label={label} />;
220
- }
221
-
222
- // eslint-disable-next-line sonarjs/cognitive-complexity
223
- const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {
224
- if (e.code === "Space" && highlightedOptionRef.current) {
225
- e.preventDefault();
226
-
227
- if (multiple) {
228
- if (highlightedOptionRef.current == "select-all") {
229
- handleSelectAll(!isAllSelected);
230
-
231
- return;
232
- }
233
-
234
- if (selectedValue && Array.isArray(selectedValue)) {
235
- if (maxLimit && selectedValue.length >= maxLimit) {
236
- toasts.error({
237
- title: t("common.autocomplete.limitExceed", { maxLimit }),
238
- });
239
-
240
- return;
241
- }
242
-
243
- const valuesArray = selectedValue.map((item) => item.value);
244
-
245
- if (valuesArray.includes(highlightedOptionRef.current)) {
246
- onChange(
247
- valuesArray.filter(
248
- (value) => value !== highlightedOptionRef.current
249
- )
250
- );
251
- } else {
252
- onChange([...valuesArray, highlightedOptionRef.current]);
253
- }
254
- }
255
- } else {
256
- onChange(highlightedOptionRef.current);
257
- }
258
- }
259
- };
260
-
261
- return (
262
- <Stack gap="10px">
263
- {label && <InputLabel required={required}>{label}</InputLabel>}
264
-
265
- <Stack
266
- direction="row"
267
- justifyContent="space-between"
268
- gap="10px"
269
- alignItems="start"
270
- >
271
- <MuiAutocomplete
272
- PopperComponent={Popper}
273
- PaperComponent={StyledPaper}
274
- sx={{
275
- "& .MuiAutocomplete-tag": {
276
- backgroundColor: color.slate[700],
277
- color: "black",
278
- },
279
- width: "100%",
280
- }}
281
- onHighlightChange={(event, option) => {
282
- if (option) {
283
- if (highlightedOptionRef.current != option.value) {
284
- highlightedOptionRef.current = option.value;
285
- }
286
- }
287
- }}
288
- disableCloseOnSelect={shouldCloseOnSelect}
289
- disabled={disabled}
290
- freeSolo={freeSolo}
291
- {...restProps}
292
- {...restField}
293
- renderTags={(value: Option[], getTagProps) =>
294
- value.map((option: Option, index: number) => {
295
- const { key, ...tagProps } = getTagProps({ index });
296
-
297
- const label = typeof option === "string" ? option : option.label;
298
-
299
- let avatarContent = "";
300
-
301
- let avatar = undefined;
302
-
303
- if (isShowAvatar) {
304
- if (!option.avatar) {
305
- const initials = option.label
306
- .split(" ")
307
- .map((word) => word[0]?.toUpperCase())
308
- .join("");
309
-
310
- avatarContent = `${initials}`;
311
- }
312
- avatar = option.avatar ? (
313
- <Avatar src={option.avatar} alt={option.label} />
314
- ) : (
315
- <Avatar>{avatarContent}</Avatar>
316
- );
317
- }
318
-
319
- return (
320
- <Chip avatar={avatar} label={label} key={key} {...tagProps} />
321
- );
322
- })
323
- }
324
- renderOption={(props, option, { selected }) => {
325
- if (renderOption) {
326
- return renderOption(props, option, { selected });
327
- }
328
-
329
- const { key, ...optionProps } = props;
330
-
331
- return (
332
- <li key={key} {...optionProps}>
333
- <Stack gap="5px">
334
- <Stack direction="row" gap="10px">
335
- {multiple && (
336
- <Checkbox
337
- icon={<BoxStyled size="small" />}
338
- checkedIcon={<CheckStyled size="small" />}
339
- indeterminate={
340
- !isAllSelected &&
341
- selectedValue?.length &&
342
- option.value === "select-all"
343
- ? true
344
- : false
345
- }
346
- checked={isAllSelected ? true : selected}
347
- sx={{
348
- marginRight: "8px",
349
- ".MuiCheckbox-indeterminate": {
350
- borderColor: color.butterflyBlue[900],
351
- },
352
- }}
353
- />
354
- )}
355
- {option.label}
356
- </Stack>
357
- {option.value === "select-all" && (
358
- <Divider sx={{ width: "280px" }} />
359
- )}
360
- </Stack>
361
- </li>
362
- );
363
- }}
364
- renderInput={(params) => {
365
- let startAdornment = params.InputProps.startAdornment;
366
-
367
- if (!multiple && selectedValue?.avatar && getOptionLabel) {
368
- startAdornment = (
369
- <Box width="20px" marginLeft="10px">
370
- <Avatar
371
- src={selectedValue.avatar}
372
- alt={selectedValue.label}
373
- sx={{ width: 24, height: 24 }}
374
- />
375
- </Box>
376
- );
377
- }
378
-
379
- return (
380
- <TextField
381
- {...params}
382
- placeholder={placeholder || `Select ${label}`}
383
- error={error}
384
- helperText={helperText}
385
- InputProps={{
386
- ...params.InputProps,
387
- startAdornment,
388
- }}
389
- onChange={(e) => {
390
- if (isShowOptionsOnType) {
391
- setInputValue(e.target.value);
392
- }
393
- }}
394
- onKeyDown={(e) => handleKeyDown(e)}
395
- />
396
- );
397
- }}
398
- multiple={multiple}
399
- options={isShowOptionsOnType ? filteredOptions : memoizedOptions}
400
- isOptionEqualToValue={(option, value) =>
401
- freeSolo ? false : option.value === value.value
402
- }
403
- onInputChange={(_, __, reason) => {
404
- if (reason === "clear") {
405
- setInputValue("");
406
- }
407
- }}
408
- getOptionLabel={(option) => {
409
- if (getOptionLabel) {
410
- return getOptionLabel(option);
411
- }
412
-
413
- if (typeof option === "string") {
414
- return option;
415
- }
416
-
417
- return option.label;
418
- }}
419
- value={selectedValue}
420
- // eslint-disable-next-line sonarjs/cognitive-complexity
421
- onChange={(_, newValue) => {
422
- if (withLabel) {
423
- return onChange(newValue);
424
- }
425
-
426
- if (
427
- multiple &&
428
- Array.isArray(newValue) &&
429
- maxLimit &&
430
- newValue.length > maxLimit
431
- ) {
432
- toasts.error({
433
- title: t("common.autocomplete.limitExceed", { maxLimit }),
434
- });
435
-
436
- return;
437
- }
438
-
439
- if (multiple && isShowSelectAll && Array.isArray(newValue)) {
440
- const isSelectAllIncluded = newValue.some(
441
- (option) =>
442
- typeof option !== "string" && option?.value === "select-all"
443
- );
444
-
445
- if (isSelectAllIncluded) {
446
- handleSelectAll(!isAllSelected);
447
-
448
- return;
449
- }
450
- }
451
-
452
- if (multiple && freeSolo) {
453
- if (Array.isArray(newValue)) {
454
- // eslint-disable-next-line sonarjs/function-return-type
455
- const values = newValue.map((option) => {
456
- return typeof option === "string" ? option : option.value;
457
- });
458
-
459
- return onChange(values);
460
- }
461
-
462
- return onChange(value || []);
463
- }
464
-
465
- if (typeof newValue === "string") {
466
- return onChange(newValue ?? null);
467
- }
468
-
469
- if (Array.isArray(newValue)) {
470
- // eslint-disable-next-line sonarjs/function-return-type
471
- const values = newValue.map((option) => {
472
- if (typeof option === "string") {
473
- return newValue;
474
- }
475
-
476
- return option.value;
477
- });
478
-
479
- return onChange(values);
480
- }
481
-
482
- onChange(newValue ? newValue.value : null);
483
- }}
484
- groupBy={(option) => option.heading ?? ""}
485
- renderGroup={(params) => (
486
- <li key={params.key}>
487
- <GroupHeader>{params.group}</GroupHeader>
488
- <GroupItems>{params.children}</GroupItems>
489
- </li>
490
- )}
491
- getOptionDisabled={(option) => !!option.disabled}
492
- />
493
-
494
- {onAction && (
495
- <IconButton
496
- disabled={disabled}
497
- sx={{
498
- border: `1px solid ${color.iron[800]}`,
499
- padding: "0px",
500
- borderRadius: "5px",
501
- }}
502
- onClick={onAction}
503
- >
504
- <EditAction />
505
- </IconButton>
506
- )}
507
- </Stack>
508
- </Stack>
509
- );
510
- }