rez-table-listing-mui 1.2.12 → 1.2.14

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 (127) hide show
  1. package/dist/index.d.ts +116 -1
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +1 -1
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +1 -1
  7. package/src/App.tsx +47 -405
  8. package/src/assets/Satoshi/Satoshi-Black.ttf +0 -0
  9. package/src/assets/Satoshi/Satoshi-BlackItalic.ttf +0 -0
  10. package/src/assets/Satoshi/Satoshi-Bold.ttf +0 -0
  11. package/src/assets/Satoshi/Satoshi-BoldItalic.ttf +0 -0
  12. package/src/assets/Satoshi/Satoshi-Italic.ttf +0 -0
  13. package/src/assets/Satoshi/Satoshi-Light.ttf +0 -0
  14. package/src/assets/Satoshi/Satoshi-LightItalic.ttf +0 -0
  15. package/src/assets/Satoshi/Satoshi-Medium.ttf +0 -0
  16. package/src/assets/Satoshi/Satoshi-MediumItalic.ttf +0 -0
  17. package/src/assets/Satoshi/Satoshi-Regular.ttf +0 -0
  18. package/src/assets/Satoshi/Satoshi-Variable.ttf +0 -0
  19. package/src/assets/Satoshi/Satoshi-VariableItalic.ttf +0 -0
  20. package/src/assets/global.css +88 -0
  21. package/src/assets/variable.ts +15 -0
  22. package/src/index.ts +10 -9
  23. package/src/kanban/components/LeadCard.tsx +130 -0
  24. package/src/kanban/constants/kanban-constants.ts +249 -0
  25. package/src/kanban/hooks/hooks.ts +16 -0
  26. package/src/kanban/index.tsx +331 -0
  27. package/src/kanban/services/service.ts +11 -0
  28. package/src/kanban/styles/styles.tsx +256 -0
  29. package/src/kanban/types/types.ts +132 -0
  30. package/src/{components → listing/components}/column-visibility-modal/column-list-item.tsx +1 -1
  31. package/src/{components → listing/components}/column-visibility-modal/index.tsx +1 -1
  32. package/src/{components → listing/components}/common/index.scss +2 -1
  33. package/src/{components → listing/components}/filter/components/forms/components/Filter-criteria.tsx +1 -1
  34. package/src/{components → listing/components}/filter/components/forms/index.tsx +1 -1
  35. package/src/{components → listing/components}/filter/components/saved-filter.tsx +2 -2
  36. package/src/{components → listing/components}/filter/components/search/index.tsx +1 -1
  37. package/src/{components → listing/components}/filter/components/tabs/index.tsx +1 -1
  38. package/src/{components → listing/components}/index-table.tsx +1 -1
  39. package/src/{components → listing/components}/index.scss +1 -2
  40. package/src/{components → listing/components}/pagination/default/index.tsx +1 -1
  41. package/src/{components → listing/components}/search/index.tsx +1 -1
  42. package/src/{components → listing/components}/sorting-modal.tsx/index.tsx +1 -1
  43. package/src/{components → listing/components}/sorting-modal.tsx/sorting-item.tsx +1 -1
  44. package/src/{components → listing/components}/table-change-layout.tsx +1 -1
  45. package/src/{components → listing/components}/table-head-dnd-cell.tsx +1 -1
  46. package/src/{components → listing/components}/table-head-pin.tsx +1 -1
  47. package/src/{components → listing/components}/table-head-popover.tsx +1 -1
  48. package/src/{components → listing/components}/table-head.tsx +1 -1
  49. package/src/{components → listing/components}/table-settings/common/listing-values.tsx +1 -1
  50. package/src/{components → listing/components}/table-settings/components/sorting.tsx +1 -1
  51. package/src/{components → listing/components}/tabs/index.scss +2 -1
  52. package/src/{components → listing/components}/tabs/index.tsx +1 -1
  53. package/src/{components → listing/components}/topbar/index.tsx +7 -7
  54. package/src/{components → listing/components}/viewmore/index.tsx +1 -1
  55. package/src/{libs → listing/libs}/utils/common.ts +2 -2
  56. package/src/main.tsx +1 -0
  57. package/src/view/KanbanView.tsx +16 -0
  58. package/src/view/ListingView.tsx +423 -0
  59. /package/src/{components → listing/components}/column-visibility-modal/index.scss +0 -0
  60. /package/src/{components → listing/components}/common/confirm-modal/index.tsx +0 -0
  61. /package/src/{components → listing/components}/common/index.tsx +0 -0
  62. /package/src/{components → listing/components}/common/loader/loader.tsx +0 -0
  63. /package/src/{components → listing/components}/dropdown/index.scss +0 -0
  64. /package/src/{components → listing/components}/dropdown/index.tsx +0 -0
  65. /package/src/{components → listing/components}/filter/components/attributes-filter.tsx +0 -0
  66. /package/src/{components → listing/components}/filter/components/forms/components/Date.tsx +0 -0
  67. /package/src/{components → listing/components}/filter/components/forms/components/Dropdown.tsx +0 -0
  68. /package/src/{components → listing/components}/filter/components/forms/components/Multi-Select.tsx +0 -0
  69. /package/src/{components → listing/components}/filter/components/forms/components/Select.tsx +0 -0
  70. /package/src/{components → listing/components}/filter/components/forms/components/Textfield.tsx +0 -0
  71. /package/src/{components → listing/components}/filter/components/forms/components/styles.tsx +0 -0
  72. /package/src/{components → listing/components}/filter/components/main-filter.tsx +0 -0
  73. /package/src/{components → listing/components}/filter/components/saved-edit-filter.tsx +0 -0
  74. /package/src/{components → listing/components}/filter/components/tabs/custom-tab-panel.tsx +0 -0
  75. /package/src/{components → listing/components}/filter/index.tsx +0 -0
  76. /package/src/{components → listing/components}/filter/style.ts +0 -0
  77. /package/src/{components → listing/components}/inputs/checkbox/index.tsx +0 -0
  78. /package/src/{components → listing/components}/inputs/index.scss +0 -0
  79. /package/src/{components → listing/components}/inputs/switch.tsx +0 -0
  80. /package/src/{components → listing/components}/login/index.tsx +0 -0
  81. /package/src/{components → listing/components}/nestedcomponent/index.scss +0 -0
  82. /package/src/{components → listing/components}/nestedcomponent/index.tsx +0 -0
  83. /package/src/{components → listing/components}/pagination/default/index.scss +0 -0
  84. /package/src/{components → listing/components}/search/style.ts +0 -0
  85. /package/src/{components → listing/components}/table-body-dnd-cell.tsx +0 -0
  86. /package/src/{components → listing/components}/table-body.tsx +0 -0
  87. /package/src/{components → listing/components}/table-dnd.tsx +0 -0
  88. /package/src/{components → listing/components}/table-settings/common/draggable-listitem.tsx +0 -0
  89. /package/src/{components → listing/components}/table-settings/common/info-alert.tsx +0 -0
  90. /package/src/{components → listing/components}/table-settings/components/column.tsx +0 -0
  91. /package/src/{components → listing/components}/table-settings/components/custom-button.tsx +0 -0
  92. /package/src/{components → listing/components}/table-settings/components/custom-dialog.tsx +0 -0
  93. /package/src/{components → listing/components}/table-settings/components/quick-tab.tsx +0 -0
  94. /package/src/{components → listing/components}/table-settings/components/toggle-button-switch.tsx +0 -0
  95. /package/src/{components → listing/components}/table-settings/constants.ts +0 -0
  96. /package/src/{components → listing/components}/table-settings/index.tsx +0 -0
  97. /package/src/{components → listing/components}/table-settings/style.ts +0 -0
  98. /package/src/{components → listing/components}/table-settings/tabs/horizontal/index.tsx +0 -0
  99. /package/src/{components → listing/components}/table-settings/tabs/styles.ts +0 -0
  100. /package/src/{components → listing/components}/table-settings/tabs/vertical/custom-tab-panel.tsx +0 -0
  101. /package/src/{components → listing/components}/table-settings/tabs/vertical/index.tsx +0 -0
  102. /package/src/{components → listing/components}/table.tsx +0 -0
  103. /package/src/{components → listing/components}/tabs/styles.ts +0 -0
  104. /package/src/{components → listing/components}/topbar/index.scss +0 -0
  105. /package/src/{components → listing/components}/viewmore/index.scss +0 -0
  106. /package/src/{libs → listing/libs}/hooks/useCraftTable.tsx +0 -0
  107. /package/src/{libs → listing/libs}/hooks/useCraftTableFilterSettings.tsx +0 -0
  108. /package/src/{libs → listing/libs}/hooks/useDefaultColumns.tsx +0 -0
  109. /package/src/{libs → listing/libs}/hooks/useElementWidth.tsx +0 -0
  110. /package/src/{libs → listing/libs}/hooks/useEntityTableAPI.tsx +0 -0
  111. /package/src/{libs → listing/libs}/hooks/useEntityTableHooks.ts +0 -0
  112. /package/src/{libs → listing/libs}/hooks/useFullScreen.tsx +0 -0
  113. /package/src/{libs → listing/libs}/hooks/useOutsideClick.tsx +0 -0
  114. /package/src/{libs → listing/libs}/utils/Data-format.ts +0 -0
  115. /package/src/{libs → listing/libs}/utils/amount-format.ts +0 -0
  116. /package/src/{libs → listing/libs}/utils/apiColumn.ts +0 -0
  117. /package/src/{libs → listing/libs}/utils/date-format.ts +0 -0
  118. /package/src/{libs → listing/libs}/utils/debounce.ts +0 -0
  119. /package/src/{libs → listing/libs}/utils/make-data.ts +0 -0
  120. /package/src/{libs → listing/libs}/utils/make-hierar-data.ts +0 -0
  121. /package/src/{libs → listing/libs}/utils/make-nested-data.ts +0 -0
  122. /package/src/{libs → listing/libs}/utils/rows-data.ts +0 -0
  123. /package/src/{types → listing/types}/common.ts +0 -0
  124. /package/src/{types → listing/types}/filter-settings.ts +0 -0
  125. /package/src/{types → listing/types}/filter.ts +0 -0
  126. /package/src/{types → listing/types}/table-options.ts +0 -0
  127. /package/src/{types → listing/types}/table.ts +0 -0
@@ -0,0 +1,130 @@
1
+ import {
2
+ Avatar,
3
+ Box,
4
+ Card,
5
+ CardContent,
6
+ Typography,
7
+ Tooltip,
8
+ IconButton,
9
+ } from "@mui/material";
10
+ import { LeadCardProps } from "../types/types";
11
+ import { CalendarIcon } from "@mui/x-date-pickers";
12
+ import PhoneOutlinedIcon from "@mui/icons-material/PhoneOutlined";
13
+ import EmailOutlinedIcon from "@mui/icons-material/EmailOutlined";
14
+ import { kanbanStyles } from "../styles/styles";
15
+
16
+ const LeadCard = ({ lead }: LeadCardProps) => {
17
+ const formatEnquiryDate = (enquiryDate: string | null) => {
18
+ if (!enquiryDate) return "N/A";
19
+ const date = new Date(enquiryDate);
20
+ return date.toLocaleDateString("en-GB", {
21
+ day: "numeric",
22
+ month: "short",
23
+ });
24
+ };
25
+
26
+ const displayName =
27
+ `${lead.student_first_name || ""} ${lead.student_last_name || ""}`.trim() ||
28
+ "Unknown";
29
+
30
+ // Handle email click to open mailto
31
+ const handleEmailClick = () => {
32
+ if (lead.primary_email) {
33
+ window.open(
34
+ `https://mail.google.com/mail/?view=cm&to=${lead.primary_email}`,
35
+ "_blank"
36
+ );
37
+ }
38
+ };
39
+
40
+ return (
41
+ <Card sx={kanbanStyles.cardContainer}>
42
+ <CardContent sx={kanbanStyles.cardContent}>
43
+ {/* Code */}
44
+ <Typography
45
+ // onClick={() => dispatch(openNavigationTab(lead))}
46
+ sx={kanbanStyles.codeStyle}
47
+ >
48
+ {lead.code}
49
+ </Typography>
50
+
51
+ {/* Name + icons */}
52
+ <Box sx={kanbanStyles.nameIconContainer}>
53
+ <Typography variant="body1" sx={kanbanStyles.leadName}>
54
+ {displayName}
55
+ </Typography>
56
+
57
+ <Box sx={{ display: "flex", gap: 1 }}>
58
+ {/* Phone Icon with Tooltip */}
59
+ <Tooltip
60
+ title={lead.primary_mobile || "No phone number available"}
61
+ arrow
62
+ >
63
+ <IconButton
64
+ className="icon-button"
65
+ size="small"
66
+ disabled={!lead.primary_mobile}
67
+ sx={{
68
+ p: 0.5,
69
+ "&:hover": {
70
+ backgroundColor: "rgba(0, 0, 0, 0.04)",
71
+ },
72
+ }}
73
+ >
74
+ <PhoneOutlinedIcon sx={kanbanStyles.iconStyle} />
75
+ </IconButton>
76
+ </Tooltip>
77
+
78
+ {/* Email Icon with Tooltip and Click Handler */}
79
+ <Tooltip title={lead.primary_email || "No email available"} arrow>
80
+ <IconButton
81
+ size="small"
82
+ onClick={handleEmailClick}
83
+ disabled={!lead.primary_email}
84
+ sx={{
85
+ p: 0.5,
86
+ cursor: lead.primary_email ? "pointer" : "default",
87
+ "&:hover": {
88
+ backgroundColor: "rgba(0, 0, 0, 0.04)",
89
+ },
90
+ }}
91
+ >
92
+ <EmailOutlinedIcon sx={kanbanStyles.iconStyle} />
93
+ </IconButton>
94
+ </Tooltip>
95
+ </Box>
96
+ </Box>
97
+
98
+ {/* Avatar + owner + date */}
99
+ <Box
100
+ sx={{
101
+ display: "flex",
102
+ justifyContent: "space-between",
103
+ alignItems: "center",
104
+ // mt: 1,
105
+ }}
106
+ >
107
+ <Box sx={{ display: "flex", alignItems: "center" }}>
108
+ <Avatar
109
+ src={lead?.profile?.signedUrl}
110
+ sx={kanbanStyles.cardAvatar}
111
+ ></Avatar>
112
+ <Typography sx={kanbanStyles.leadOwnerStyle}>
113
+ {lead.lead_owner_name || "N/A"}
114
+ </Typography>
115
+ </Box>
116
+ <Box
117
+ sx={{ display: "flex", alignItems: "center", whiteSpace: "nowrap" }}
118
+ >
119
+ <CalendarIcon sx={kanbanStyles.calendarIcon} />
120
+ <Typography variant="body2" sx={kanbanStyles.dateStyle}>
121
+ {formatEnquiryDate(lead.enquiry_date)}
122
+ </Typography>
123
+ </Box>
124
+ </Box>
125
+ </CardContent>
126
+ </Card>
127
+ );
128
+ };
129
+
130
+ export default LeadCard;
@@ -0,0 +1,249 @@
1
+ export const rawData = {
2
+ lanes: [
3
+ { id: 1, name: "Enquiry", color: "#fff0f3", darkColor: "#fea3b4" },
4
+ { id: 2, name: "Qualified Lead", color: "#fffbed", darkColor: "#fde272" },
5
+ { id: 3, name: "Application", color: "#ebf9fc", darkColor: "#67e3f9" },
6
+ { id: 4, name: "Admission", color: "#edf9f3", darkColor: "#73e2a3" },
7
+ { id: 5, name: "Documents", color: "#edf9f3", darkColor: "#73e2a3" },
8
+ { id: 6, name: "Admission", color: "#edf9f3", darkColor: "#73e2a3" },
9
+ ],
10
+ swim_lanes: [
11
+ {
12
+ id: 12,
13
+ name: "Active",
14
+ sub_lanes: [
15
+ {
16
+ id: 1,
17
+ name: "Lead Assignment",
18
+ color: "red",
19
+ lane_id: 1,
20
+ expanded: true,
21
+ },
22
+ {
23
+ id: 2,
24
+ name: "Initial Outreach",
25
+ color: "green",
26
+ lane_id: 1,
27
+ expanded: true,
28
+ },
29
+ {
30
+ id: 3,
31
+ name: "Lead Assessment",
32
+ color: "yellow",
33
+ lane_id: 2,
34
+ expanded: true,
35
+ },
36
+ {
37
+ id: 4,
38
+ name: "Campus Visit",
39
+ color: "#FFE885",
40
+ lane_id: 2,
41
+ expanded: true,
42
+ },
43
+ {
44
+ id: 5,
45
+ name: "Application Collection",
46
+ color: "#90E0F3",
47
+ lane_id: 3,
48
+ expanded: true,
49
+ },
50
+ {
51
+ id: 6,
52
+ name: "Student Assessment",
53
+ color: "#90E0F3",
54
+ lane_id: 3,
55
+ expanded: true,
56
+ },
57
+ {
58
+ id: 7,
59
+ name: "Fee Collection",
60
+ color: "#90EE90",
61
+ lane_id: 4,
62
+ expanded: true,
63
+ },
64
+ {
65
+ id: 8,
66
+ name: "System Integration",
67
+ color: "#90EE90",
68
+ lane_id: 4,
69
+ expanded: true,
70
+ },
71
+ ],
72
+ },
73
+ {
74
+ id: 13,
75
+ name: "Dormant",
76
+ sub_lanes: [],
77
+ },
78
+ {
79
+ id: 14,
80
+ name: "Disqualify",
81
+ sub_lanes: [],
82
+ },
83
+ {
84
+ id: 15,
85
+ name: "Lost",
86
+ sub_lanes: [],
87
+ },
88
+ ],
89
+ data: [
90
+ // Lead Assignment
91
+ {
92
+ id: 1,
93
+ name: "Aditi Sharma",
94
+ sub_lane_id: 1,
95
+ email: "aditisharma@gmail.com",
96
+ phone: "+91 9846213495",
97
+ status: "Active",
98
+ progress: 0,
99
+ days: "10 Days",
100
+ reference_id: "INQ2024XY",
101
+ priority: null,
102
+ lost: false,
103
+ },
104
+ {
105
+ id: 2,
106
+ name: "Aditi Sharma",
107
+ sub_lane_id: 1,
108
+ email: "aditisharma@gmail.com",
109
+ phone: "+91 9846213495",
110
+ status: "Active",
111
+ progress: 0,
112
+ days: "10 Days",
113
+ reference_id: "INQ2024XY",
114
+ priority: null,
115
+ lost: false,
116
+ },
117
+ // Initial Outreach
118
+ {
119
+ id: 3,
120
+ name: "Rashmi Desai",
121
+ sub_lane_id: 2,
122
+ email: "aditisharma@gmail.com",
123
+ phone: "+91 9765874320",
124
+ status: "Active",
125
+ progress: 0,
126
+ days: "10 Days",
127
+ reference_id: "INQ2024XY",
128
+ priority: null,
129
+ lost: false,
130
+ },
131
+ // Lead Assessment
132
+ {
133
+ id: 4,
134
+ name: "Aditi Sharma",
135
+ sub_lane_id: 3,
136
+ email: "aditisharma@gmail.com",
137
+ phone: "+91 9846213495",
138
+ status: "Active",
139
+ progress: 0,
140
+ days: "10 Days",
141
+ reference_id: "INQ2024XY",
142
+ priority: null,
143
+ lost: false,
144
+ },
145
+ // Campus Visit
146
+ {
147
+ id: 5,
148
+ name: "Aditi Sharma",
149
+ sub_lane_id: 4,
150
+ email: "aditisharma@gmail.com",
151
+ phone: "+91 9846213495",
152
+ status: "Lost",
153
+ progress: 0,
154
+ days: "10 Days",
155
+ reference_id: "2DQ2024XY",
156
+ priority: null,
157
+ lost: true,
158
+ },
159
+ {
160
+ id: 6,
161
+ name: "Aditi Sharma",
162
+ sub_lane_id: 4,
163
+ email: "aditisharma@gmail.com",
164
+ phone: "+91 9846213495",
165
+ status: "Active",
166
+ progress: 0,
167
+ days: "10 Days",
168
+ reference_id: "INQ2024XY",
169
+ priority: null,
170
+ lost: false,
171
+ },
172
+ // Application Collection
173
+ {
174
+ id: 7,
175
+ name: "Aditi Sharma",
176
+ sub_lane_id: 5,
177
+ email: "aditisharma@gmail.com",
178
+ phone: "+91 9452013495",
179
+ status: "Active",
180
+ progress: 0,
181
+ days: "10 Days",
182
+ reference_id: "INQ2024XY",
183
+ priority: null,
184
+ lost: false,
185
+ },
186
+ {
187
+ id: 8,
188
+ name: "Aditi Sharma",
189
+ sub_lane_id: 5,
190
+ email: "aditisharma@gmail.com",
191
+ phone: "+91 9452013495",
192
+ status: "Active",
193
+ progress: 0,
194
+ days: "10 Days",
195
+ reference_id: "INQ2024XY",
196
+ priority: null,
197
+ lost: false,
198
+ },
199
+ // Student Assessment
200
+ {
201
+ id: 9,
202
+ name: "Aditi Sharma",
203
+ sub_lane_id: 6,
204
+ email: "aditisharma@gmail.com",
205
+ phone: "+91 9452013495",
206
+ status: "Active",
207
+ progress: 0,
208
+ days: "10 Days",
209
+ reference_id: "INQ2024XY",
210
+ priority: null,
211
+ lost: false,
212
+ },
213
+ // Fee Collection
214
+ {
215
+ id: 10,
216
+ name: "Aditi Sharma",
217
+ sub_lane_id: 7,
218
+ email: "aditisharma@gmail.com",
219
+ phone: "+91 9846015495",
220
+ status: "Active",
221
+ progress: 0,
222
+ days: "You",
223
+ reference_id: "INQ2024XY",
224
+ priority: "High",
225
+ lost: false,
226
+ },
227
+ // System Integration
228
+ {
229
+ id: 11,
230
+ name: "Aditi Sharma",
231
+ sub_lane_id: 8,
232
+ email: "aditisharma@gmail.com",
233
+ phone: "+91 9846015495",
234
+ status: "Lost",
235
+ progress: 0,
236
+ days: "You",
237
+ reference_id: "INQ2024XY",
238
+ priority: "Low",
239
+ lost: true,
240
+ },
241
+ ],
242
+ };
243
+
244
+ export const COLOR_CONSTANTS = [
245
+ { color: "#fff0f3", darkColor: "#fea3b4" },
246
+ { color: "#fffbed", darkColor: "#fde272" },
247
+ { color: "#ebf9fc", darkColor: "#67e3f9" },
248
+ { color: "#edf9f3", darkColor: "#73e2a3" },
249
+ ];
@@ -0,0 +1,16 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { getKanbanData } from "../services/service";
3
+
4
+ export const useGetKanbanData = (entity_type: string) => {
5
+ const {
6
+ data: rawData,
7
+ isPending,
8
+ isLoading,
9
+ error,
10
+ } = useQuery({
11
+ queryKey: ["stageGroupsOptions", entity_type],
12
+ queryFn: () => getKanbanData(entity_type),
13
+ enabled: !!entity_type, // Only fetch when workflowId is valid
14
+ });
15
+ return { rawData, isPending, isLoading, error };
16
+ };