@devalok/shilp-sutra-karm 0.1.0
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.
- package/dist/admin/adjustments/approved-adjustments.d.ts +10 -0
- package/dist/admin/adjustments/approved-adjustments.d.ts.map +1 -0
- package/dist/admin/adjustments/approved-adjustments.js +42 -0
- package/dist/admin/adjustments/index.d.ts +2 -0
- package/dist/admin/adjustments/index.d.ts.map +1 -0
- package/dist/admin/break/break-admin-skeleton.d.ts +3 -0
- package/dist/admin/break/break-admin-skeleton.d.ts.map +1 -0
- package/dist/admin/break/break-admin-skeleton.js +58 -0
- package/dist/admin/break/break-admin.d.ts +79 -0
- package/dist/admin/break/break-admin.d.ts.map +1 -0
- package/dist/admin/break/break-admin.js +346 -0
- package/dist/admin/break/break-balance.d.ts +14 -0
- package/dist/admin/break/break-balance.d.ts.map +1 -0
- package/dist/admin/break/break-balance.js +41 -0
- package/dist/admin/break/breaks.d.ts +21 -0
- package/dist/admin/break/breaks.d.ts.map +1 -0
- package/dist/admin/break/breaks.js +90 -0
- package/dist/admin/break/delete-break.d.ts +10 -0
- package/dist/admin/break/delete-break.d.ts.map +1 -0
- package/dist/admin/break/delete-break.js +53 -0
- package/dist/admin/break/edit-break-balance.d.ts +15 -0
- package/dist/admin/break/edit-break-balance.d.ts.map +1 -0
- package/dist/admin/break/edit-break-balance.js +111 -0
- package/dist/admin/break/edit-break.d.ts +23 -0
- package/dist/admin/break/edit-break.d.ts.map +1 -0
- package/dist/admin/break/edit-break.js +485 -0
- package/dist/admin/break/header.d.ts +22 -0
- package/dist/admin/break/header.d.ts.map +1 -0
- package/dist/admin/break/header.js +228 -0
- package/dist/admin/break/index.d.ts +18 -0
- package/dist/admin/break/index.d.ts.map +1 -0
- package/dist/admin/break/leave-request.d.ts +17 -0
- package/dist/admin/break/leave-request.d.ts.map +1 -0
- package/dist/admin/break/leave-request.js +162 -0
- package/dist/admin/break/use-break-date-picker.d.ts +25 -0
- package/dist/admin/break/use-break-date-picker.d.ts.map +1 -0
- package/dist/admin/break/use-break-date-picker.js +42 -0
- package/dist/admin/dashboard/admin-dashboard.d.ts +109 -0
- package/dist/admin/dashboard/admin-dashboard.d.ts.map +1 -0
- package/dist/admin/dashboard/admin-dashboard.js +336 -0
- package/dist/admin/dashboard/associate-detail.d.ts +36 -0
- package/dist/admin/dashboard/associate-detail.d.ts.map +1 -0
- package/dist/admin/dashboard/associate-detail.js +269 -0
- package/dist/admin/dashboard/attendance-overview.d.ts +11 -0
- package/dist/admin/dashboard/attendance-overview.d.ts.map +1 -0
- package/dist/admin/dashboard/attendance-overview.js +137 -0
- package/dist/admin/dashboard/break-request.d.ts +25 -0
- package/dist/admin/dashboard/break-request.d.ts.map +1 -0
- package/dist/admin/dashboard/break-request.js +174 -0
- package/dist/admin/dashboard/calendar.d.ts +7 -0
- package/dist/admin/dashboard/calendar.d.ts.map +1 -0
- package/dist/admin/dashboard/calendar.js +140 -0
- package/dist/admin/dashboard/correction-list.d.ts +21 -0
- package/dist/admin/dashboard/correction-list.d.ts.map +1 -0
- package/dist/admin/dashboard/correction-list.js +99 -0
- package/dist/admin/dashboard/dashboard-header.d.ts +18 -0
- package/dist/admin/dashboard/dashboard-header.d.ts.map +1 -0
- package/dist/admin/dashboard/dashboard-header.js +153 -0
- package/dist/admin/dashboard/dashboard-skeleton.d.ts +3 -0
- package/dist/admin/dashboard/dashboard-skeleton.d.ts.map +1 -0
- package/dist/admin/dashboard/dashboard-skeleton.js +110 -0
- package/dist/admin/dashboard/index.d.ts +13 -0
- package/dist/admin/dashboard/index.d.ts.map +1 -0
- package/dist/admin/dashboard/leave-requests.d.ts +26 -0
- package/dist/admin/dashboard/leave-requests.d.ts.map +1 -0
- package/dist/admin/dashboard/leave-requests.js +197 -0
- package/dist/admin/dashboard/render-date.d.ts +16 -0
- package/dist/admin/dashboard/render-date.d.ts.map +1 -0
- package/dist/admin/dashboard/render-date.js +143 -0
- package/dist/admin/dashboard/use-calendar-navigation.d.ts +60 -0
- package/dist/admin/dashboard/use-calendar-navigation.d.ts.map +1 -0
- package/dist/admin/dashboard/use-calendar-navigation.js +168 -0
- package/dist/admin/dashboard/use-leave-request-interaction.d.ts +21 -0
- package/dist/admin/dashboard/use-leave-request-interaction.d.ts.map +1 -0
- package/dist/admin/dashboard/use-leave-request-interaction.js +33 -0
- package/dist/admin/icons.d.ts +2 -0
- package/dist/admin/icons.d.ts.map +1 -0
- package/dist/admin/index.d.ts +9 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +62 -0
- package/dist/admin/types.d.ts +113 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/utils/date-range-utils.d.ts +35 -0
- package/dist/admin/utils/date-range-utils.d.ts.map +1 -0
- package/dist/admin/utils/date-range-utils.js +36 -0
- package/dist/admin/utils/date-utils.d.ts +29 -0
- package/dist/admin/utils/date-utils.d.ts.map +1 -0
- package/dist/admin/utils/date-utils.js +118 -0
- package/dist/admin/utils/emoji-utils.d.ts +3 -0
- package/dist/admin/utils/emoji-utils.d.ts.map +1 -0
- package/dist/admin/utils/emoji-utils.js +16 -0
- package/dist/admin/utils/render-adjustment-type.d.ts +17 -0
- package/dist/admin/utils/render-adjustment-type.d.ts.map +1 -0
- package/dist/admin/utils/render-adjustment-type.js +19 -0
- package/dist/admin/utils/render-status.d.ts +3 -0
- package/dist/admin/utils/render-status.d.ts.map +1 -0
- package/dist/admin/utils/render-status.js +21 -0
- package/dist/board/board-column.d.ts +20 -0
- package/dist/board/board-column.d.ts.map +1 -0
- package/dist/board/board-column.js +233 -0
- package/dist/board/index.d.ts +4 -0
- package/dist/board/index.d.ts.map +1 -0
- package/dist/board/index.js +9 -0
- package/dist/board/kanban-board.d.ts +17 -0
- package/dist/board/kanban-board.d.ts.map +1 -0
- package/dist/board/kanban-board.js +218 -0
- package/dist/board/task-card.d.ts +25 -0
- package/dist/board/task-card.d.ts.map +1 -0
- package/dist/board/task-card.js +169 -0
- package/dist/chat/chat-input.d.ts +10 -0
- package/dist/chat/chat-input.d.ts.map +1 -0
- package/dist/chat/chat-input.js +52 -0
- package/dist/chat/chat-panel.d.ts +31 -0
- package/dist/chat/chat-panel.d.ts.map +1 -0
- package/dist/chat/chat-panel.js +150 -0
- package/dist/chat/conversation-list.d.ts +17 -0
- package/dist/chat/conversation-list.d.ts.map +1 -0
- package/dist/chat/conversation-list.js +98 -0
- package/dist/chat/index.d.ts +6 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +12 -0
- package/dist/chat/message-list.d.ts +16 -0
- package/dist/chat/message-list.d.ts.map +1 -0
- package/dist/chat/message-list.js +69 -0
- package/dist/chat/streaming-text.d.ts +6 -0
- package/dist/chat/streaming-text.d.ts.map +1 -0
- package/dist/chat/streaming-text.js +29 -0
- package/dist/client/accent-provider.d.ts +14 -0
- package/dist/client/accent-provider.d.ts.map +1 -0
- package/dist/client/accent-provider.js +21 -0
- package/dist/client/client-portal-header.d.ts +10 -0
- package/dist/client/client-portal-header.d.ts.map +1 -0
- package/dist/client/client-portal-header.js +47 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/project-card.d.ts +11 -0
- package/dist/client/project-card.d.ts.map +1 -0
- package/dist/client/project-card.js +59 -0
- package/dist/dashboard/attendance-cta.d.ts +22 -0
- package/dist/dashboard/attendance-cta.d.ts.map +1 -0
- package/dist/dashboard/attendance-cta.js +127 -0
- package/dist/dashboard/daily-brief.d.ts +13 -0
- package/dist/dashboard/daily-brief.d.ts.map +1 -0
- package/dist/dashboard/daily-brief.js +66 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +6 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/page-skeletons.d.ts +5 -0
- package/dist/page-skeletons.d.ts.map +1 -0
- package/dist/page-skeletons.js +129 -0
- package/dist/tasks/activity-tab.d.ts +20 -0
- package/dist/tasks/activity-tab.d.ts.map +1 -0
- package/dist/tasks/activity-tab.js +184 -0
- package/dist/tasks/conversation-tab.d.ts +45 -0
- package/dist/tasks/conversation-tab.d.ts.map +1 -0
- package/dist/tasks/conversation-tab.js +126 -0
- package/dist/tasks/files-tab.d.ts +28 -0
- package/dist/tasks/files-tab.d.ts.map +1 -0
- package/dist/tasks/files-tab.js +184 -0
- package/dist/tasks/index.d.ts +8 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +16 -0
- package/dist/tasks/review-tab.d.ts +32 -0
- package/dist/tasks/review-tab.d.ts.map +1 -0
- package/dist/tasks/review-tab.js +169 -0
- package/dist/tasks/subtasks-tab.d.ts +36 -0
- package/dist/tasks/subtasks-tab.d.ts.map +1 -0
- package/dist/tasks/subtasks-tab.js +153 -0
- package/dist/tasks/task-constants.d.ts +9 -0
- package/dist/tasks/task-constants.d.ts.map +1 -0
- package/dist/tasks/task-constants.js +21 -0
- package/dist/tasks/task-detail-panel.d.ts +93 -0
- package/dist/tasks/task-detail-panel.d.ts.map +1 -0
- package/dist/tasks/task-detail-panel.js +208 -0
- package/dist/tasks/task-properties.d.ts +60 -0
- package/dist/tasks/task-properties.d.ts.map +1 -0
- package/dist/tasks/task-properties.js +316 -0
- package/package.json +67 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { jsx as R, jsxs as H } from "react/jsx-runtime";
|
|
2
|
+
import * as J from "react";
|
|
3
|
+
import { useState as Q, useEffect as V } from "react";
|
|
4
|
+
import { cn as j } from "@devalok/shilp-sutra/ui";
|
|
5
|
+
import { isSameDay as X, getStartOfDay as O } from "../utils/date-utils.js";
|
|
6
|
+
import { format as d } from "date-fns";
|
|
7
|
+
const Y = J.forwardRef(
|
|
8
|
+
function({
|
|
9
|
+
day: i,
|
|
10
|
+
isAdmin: C,
|
|
11
|
+
dateAttendanceMap: s,
|
|
12
|
+
selectedDate: k,
|
|
13
|
+
activeTimeFrame: D
|
|
14
|
+
}, K) {
|
|
15
|
+
const [e, l] = Q({
|
|
16
|
+
today: i.isToday,
|
|
17
|
+
isPresent: null,
|
|
18
|
+
isDefault: null,
|
|
19
|
+
isBreak: null,
|
|
20
|
+
isAbsent: null,
|
|
21
|
+
breakStart: null,
|
|
22
|
+
breakMid: null,
|
|
23
|
+
breakEnd: null,
|
|
24
|
+
disabled: null,
|
|
25
|
+
disabledState: !1,
|
|
26
|
+
hover: !1,
|
|
27
|
+
focus: !1,
|
|
28
|
+
pressed: !1,
|
|
29
|
+
selected: i.isActive
|
|
30
|
+
}), T = (r) => {
|
|
31
|
+
const o = /* @__PURE__ */ new Date();
|
|
32
|
+
return O(r) < O(o);
|
|
33
|
+
}, F = (r) => {
|
|
34
|
+
const o = d(r, "yyyy-MM-dd"), t = s == null ? void 0 : s.get(o);
|
|
35
|
+
return (t == null ? void 0 : t.status) === "BREAK";
|
|
36
|
+
}, W = (r) => {
|
|
37
|
+
const o = d(r, "yyyy-MM-dd"), t = s == null ? void 0 : s.get(o);
|
|
38
|
+
return T(r) && t && !t.hasCorrectionOrApproval && (t == null ? void 0 : t.status) === "ABSENT";
|
|
39
|
+
}, L = (r) => {
|
|
40
|
+
const o = d(r, "yyyy-MM-dd"), t = s == null ? void 0 : s.get(o);
|
|
41
|
+
return (t == null ? void 0 : t.status) === "PRESENT";
|
|
42
|
+
};
|
|
43
|
+
V(() => {
|
|
44
|
+
var h, S, w, E;
|
|
45
|
+
const r = L(i.fullDate) ?? !1, o = F(i.fullDate) ?? !1, t = W(i.fullDate) ?? !1, B = i.isDisabled || !1, z = !i.isToday && !o && !t && !B;
|
|
46
|
+
let x = !1, y = !1, c = !1;
|
|
47
|
+
if (o) {
|
|
48
|
+
const a = new Date(i.fullDate);
|
|
49
|
+
a.setDate(a.getDate() - 1);
|
|
50
|
+
const P = d(a, "yyyy-MM-dd"), g = new Date(i.fullDate);
|
|
51
|
+
g.setDate(g.getDate() + 1);
|
|
52
|
+
const N = d(g, "yyyy-MM-dd"), b = ((h = s == null ? void 0 : s.get(P)) == null ? void 0 : h.status) === "BREAK" && ((S = s == null ? void 0 : s.get(P)) == null ? void 0 : S.isBreakApproved), u = ((w = s == null ? void 0 : s.get(N)) == null ? void 0 : w.status) === "BREAK" && ((E = s == null ? void 0 : s.get(N)) == null ? void 0 : E.isBreakApproved);
|
|
53
|
+
x = o && !b && !!u, y = o && !!b && !!u, c = o && !!b && !u, o && !b && !u && (x = !0, c = !0, y = !1);
|
|
54
|
+
}
|
|
55
|
+
const G = X(new Date(k), i.fullDate);
|
|
56
|
+
l((a) => ({
|
|
57
|
+
...a,
|
|
58
|
+
isPresent: r,
|
|
59
|
+
isBreak: o,
|
|
60
|
+
isAbsent: t,
|
|
61
|
+
disabled: B,
|
|
62
|
+
isDefault: z,
|
|
63
|
+
breakStart: x,
|
|
64
|
+
breakMid: y,
|
|
65
|
+
breakEnd: c,
|
|
66
|
+
selected: G
|
|
67
|
+
}));
|
|
68
|
+
}, [i, s, k, C]);
|
|
69
|
+
const f = e.isBreak && D !== "weekly", m = f && e.breakStart && !e.breakEnd, v = f && e.breakEnd && !e.breakStart, n = f && e.breakMid, U = j(
|
|
70
|
+
"flex w-full items-center justify-center p-ds-02",
|
|
71
|
+
m && "rounded-l-ds-2xl",
|
|
72
|
+
v && "rounded-r-ds-2xl",
|
|
73
|
+
n && "bg-interactive-subtle"
|
|
74
|
+
), q = j(
|
|
75
|
+
// Base layout & transitions
|
|
76
|
+
"flex h-ds-md w-ds-md items-center justify-center rounded-ds-full text-ds-base relative overflow-hidden",
|
|
77
|
+
"transition-[background-color,color,border] duration-200",
|
|
78
|
+
"outline-border-strong outline-solid outline-0",
|
|
79
|
+
// Cursor
|
|
80
|
+
e.disabled ? "cursor-default" : "cursor-pointer",
|
|
81
|
+
// ── Base states (mutually exclusive in original if/else) ──
|
|
82
|
+
// Disabled
|
|
83
|
+
e.disabled && "bg-transparent text-text-disabled",
|
|
84
|
+
// Today (not break, not disabled)
|
|
85
|
+
!e.disabled && e.today && !e.isBreak && "bg-interactive text-text-on-color ring-2 ring-inset ring-interactive",
|
|
86
|
+
// Break (not disabled, not today-only)
|
|
87
|
+
!e.disabled && e.isBreak && !n && "bg-interactive-selected text-text-secondary ring-2 ring-inset ring-interactive",
|
|
88
|
+
// Break mid in non-weekly view overrides break base
|
|
89
|
+
!e.disabled && e.isBreak && n && "rounded-ds-none bg-interactive-subtle text-text-secondary shadow-none",
|
|
90
|
+
// Break border-radius overrides for non-weekly
|
|
91
|
+
!e.disabled && e.isBreak && m && "rounded-l-ds-2xl rounded-r-none",
|
|
92
|
+
!e.disabled && e.isBreak && v && "rounded-l-none rounded-r-ds-2xl",
|
|
93
|
+
// Absent (not disabled, not today, not break)
|
|
94
|
+
!e.disabled && !e.today && !e.isBreak && e.isAbsent && "bg-transparent text-error",
|
|
95
|
+
// Present (not disabled, not today, not break, not absent)
|
|
96
|
+
!e.disabled && !e.today && !e.isBreak && !e.isAbsent && e.isPresent && "bg-transparent text-text-primary",
|
|
97
|
+
// Default (not disabled, not today, not break, not absent, not present)
|
|
98
|
+
!e.disabled && e.isDefault && "bg-transparent text-text-secondary",
|
|
99
|
+
// ── Hover overrides ──
|
|
100
|
+
// Hover on today (not break)
|
|
101
|
+
e.hover && !e.disabled && e.today && !e.isBreak && "bg-interactive text-text-on-color ring-2 ring-inset ring-interactive",
|
|
102
|
+
// Hover on present (not today, not break)
|
|
103
|
+
e.hover && !e.disabled && !e.today && !e.isBreak && e.isPresent && "bg-field text-text-primary",
|
|
104
|
+
// Hover on default (not today, not break, not present)
|
|
105
|
+
e.hover && !e.disabled && !e.today && !e.isBreak && !e.isPresent && e.isDefault && "bg-field text-text-secondary",
|
|
106
|
+
// Hover on break (same visual as base break, but re-assert to match original)
|
|
107
|
+
e.hover && !e.disabled && e.isBreak && !n && "bg-interactive-selected text-text-secondary ring-2 ring-inset ring-interactive",
|
|
108
|
+
e.hover && !e.disabled && e.isBreak && n && "rounded-ds-none bg-interactive-subtle text-text-secondary shadow-none",
|
|
109
|
+
// Hover on absent (not today, not break)
|
|
110
|
+
e.hover && !e.disabled && !e.today && !e.isBreak && e.isAbsent && "bg-field text-error",
|
|
111
|
+
// ── Focus ──
|
|
112
|
+
e.focus && !e.pressed && "outline-2",
|
|
113
|
+
// ── Pressed ──
|
|
114
|
+
e.pressed && (e.isPresent || e.isAbsent || e.isDefault || e.disabled) && "bg-error-surface",
|
|
115
|
+
// ── Selected ──
|
|
116
|
+
e.selected && "font-semibold",
|
|
117
|
+
e.selected && D === "monthly" && "text-text-primary",
|
|
118
|
+
// ── DisabledState (visual-only disabled, different from functional disabled) ──
|
|
119
|
+
e.disabledState && "text-text-disabled",
|
|
120
|
+
e.disabledState && e.today && "bg-text-disabled text-text-on-color"
|
|
121
|
+
);
|
|
122
|
+
return /* @__PURE__ */ R("div", { ref: K, className: U, children: /* @__PURE__ */ H(
|
|
123
|
+
"div",
|
|
124
|
+
{
|
|
125
|
+
className: q,
|
|
126
|
+
onMouseEnter: () => l((r) => ({ ...r, hover: !0 })),
|
|
127
|
+
onMouseLeave: () => l((r) => ({ ...r, hover: !1 })),
|
|
128
|
+
onFocus: () => l((r) => ({ ...r, focus: !0 })),
|
|
129
|
+
onBlur: () => l((r) => ({ ...r, focus: !1 })),
|
|
130
|
+
onMouseDown: () => l((r) => ({ ...r, pressed: !0 })),
|
|
131
|
+
onMouseUp: () => l((r) => ({ ...r, pressed: !1 })),
|
|
132
|
+
children: [
|
|
133
|
+
i.date,
|
|
134
|
+
e.isAbsent && /* @__PURE__ */ R("span", { className: "absolute bottom-0 left-1/2 h-ds-02b w-ds-02b -translate-x-1/2 rounded-ds-full bg-error" })
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
) });
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
Y.displayName = "RenderDate";
|
|
141
|
+
export {
|
|
142
|
+
Y as RenderDate
|
|
143
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DayInfo } from '../types';
|
|
2
|
+
export interface CalendarNavigationState {
|
|
3
|
+
currentDate: string;
|
|
4
|
+
selectedDate: string;
|
|
5
|
+
isFutureDate: boolean;
|
|
6
|
+
activeTimeFrame: string;
|
|
7
|
+
days: DayInfo[];
|
|
8
|
+
selectedMonth: string;
|
|
9
|
+
activeIndex: number;
|
|
10
|
+
dateOffset: number;
|
|
11
|
+
}
|
|
12
|
+
type CalendarAction = {
|
|
13
|
+
type: 'SET_TIME_FRAME';
|
|
14
|
+
payload: string;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'SELECT_DATE';
|
|
17
|
+
payload: {
|
|
18
|
+
index: number;
|
|
19
|
+
date: Date;
|
|
20
|
+
};
|
|
21
|
+
} | {
|
|
22
|
+
type: 'NAVIGATE_DATE';
|
|
23
|
+
payload: 'prev' | 'next';
|
|
24
|
+
} | {
|
|
25
|
+
type: 'SELECT_MONTH';
|
|
26
|
+
payload: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'GO_TODAY';
|
|
29
|
+
} | {
|
|
30
|
+
type: 'UPDATE_DAYS';
|
|
31
|
+
} | {
|
|
32
|
+
type: 'SELECT_DAY_MONTHLY';
|
|
33
|
+
payload: {
|
|
34
|
+
date: Date;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export declare function useCalendarNavigation(): {
|
|
38
|
+
dispatch: import('react').Dispatch<CalendarAction>;
|
|
39
|
+
setActiveTimeFrame: (timeFrame: string) => void;
|
|
40
|
+
selectDate: (index: number, date: Date) => void;
|
|
41
|
+
selectDayMonthly: (date: Date) => void;
|
|
42
|
+
navigateDate: (direction: "prev" | "next") => void;
|
|
43
|
+
selectMonth: (monthYear: string) => void;
|
|
44
|
+
goToday: () => void;
|
|
45
|
+
updateDays: () => void;
|
|
46
|
+
isTodaySelected: () => boolean;
|
|
47
|
+
getYearsList: () => string[];
|
|
48
|
+
isFirstDate: () => boolean;
|
|
49
|
+
isLastDate: () => boolean;
|
|
50
|
+
currentDate: string;
|
|
51
|
+
selectedDate: string;
|
|
52
|
+
isFutureDate: boolean;
|
|
53
|
+
activeTimeFrame: string;
|
|
54
|
+
days: DayInfo[];
|
|
55
|
+
selectedMonth: string;
|
|
56
|
+
activeIndex: number;
|
|
57
|
+
dateOffset: number;
|
|
58
|
+
};
|
|
59
|
+
export type { CalendarAction };
|
|
60
|
+
//# sourceMappingURL=use-calendar-navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-calendar-navigation.d.ts","sourceRoot":"","sources":["../../../src/admin/dashboard/use-calendar-navigation.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAMvC,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,KAAK,cAAc,GACf;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IACE,IAAI,EAAE,oBAAoB,CAAA;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAA;CACxB,CAAA;AA4LL,wBAAgB,qBAAqB;;oCAOgB,MAAM;wBAIlB,MAAM,QAAQ,IAAI;6BAIb,IAAI;8BAIH,MAAM,GAAG,MAAM;6BAIhB,MAAM;;;2BAgBV,OAAO;wBAIV,MAAM,EAAE;uBAYT,OAAO;sBAQR,OAAO;iBA/Q7B,MAAM;kBACL,MAAM;kBACN,OAAO;qBACJ,MAAM;UACjB,OAAO,EAAE;mBACA,MAAM;iBACR,MAAM;gBACP,MAAM;EAsSnB;AAED,YAAY,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { useReducer as v, useCallback as D } from "react";
|
|
2
|
+
import { format as f } from "date-fns";
|
|
3
|
+
import { isSameDay as T, getStartOfDay as M, getWeekDays as p, getMonthDays as _ } from "../utils/date-utils.js";
|
|
4
|
+
const y = (e) => f(e, "yyyy-MM-dd'T'HH:mm:ssxxx"), l = (e, a, s) => e === "weekly" ? p(a, s) : _(a, s), i = (e) => `${f(e, "MMMM")} ${f(e, "yyyy")}`;
|
|
5
|
+
function I(e, a) {
|
|
6
|
+
const s = /* @__PURE__ */ new Date();
|
|
7
|
+
switch (a.type) {
|
|
8
|
+
case "SET_TIME_FRAME": {
|
|
9
|
+
const t = l(
|
|
10
|
+
a.payload,
|
|
11
|
+
e.currentDate,
|
|
12
|
+
e.selectedDate
|
|
13
|
+
);
|
|
14
|
+
return {
|
|
15
|
+
...e,
|
|
16
|
+
activeTimeFrame: a.payload,
|
|
17
|
+
days: t
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
case "SELECT_DATE": {
|
|
21
|
+
const { index: t, date: n } = a.payload, o = y(n), c = M(n) > M(s), r = i(n);
|
|
22
|
+
return {
|
|
23
|
+
...e,
|
|
24
|
+
activeIndex: t,
|
|
25
|
+
selectedDate: o,
|
|
26
|
+
isFutureDate: c,
|
|
27
|
+
selectedMonth: r
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
case "SELECT_DAY_MONTHLY": {
|
|
31
|
+
const { date: t } = a.payload, n = y(t), o = M(t) > M(s), c = i(t), r = l(
|
|
32
|
+
e.activeTimeFrame,
|
|
33
|
+
e.currentDate,
|
|
34
|
+
n
|
|
35
|
+
);
|
|
36
|
+
return {
|
|
37
|
+
...e,
|
|
38
|
+
selectedDate: n,
|
|
39
|
+
isFutureDate: o,
|
|
40
|
+
selectedMonth: c,
|
|
41
|
+
days: r
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
case "NAVIGATE_DATE": {
|
|
45
|
+
const t = new Date(e.currentDate);
|
|
46
|
+
if (e.activeTimeFrame === "weekly") {
|
|
47
|
+
const r = a.payload === "prev" ? -7 : 7;
|
|
48
|
+
t.setDate(t.getDate() + r);
|
|
49
|
+
} else {
|
|
50
|
+
const r = a.payload === "prev" ? -1 : 1;
|
|
51
|
+
t.setMonth(t.getMonth() + r), t.setDate(1);
|
|
52
|
+
}
|
|
53
|
+
const n = y(t), o = i(t), c = l(e.activeTimeFrame, n, n);
|
|
54
|
+
return {
|
|
55
|
+
...e,
|
|
56
|
+
currentDate: n,
|
|
57
|
+
selectedDate: n,
|
|
58
|
+
dateOffset: e.dateOffset + (a.payload === "prev" ? -1 : 1),
|
|
59
|
+
selectedMonth: o,
|
|
60
|
+
days: c
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
case "SELECT_MONTH": {
|
|
64
|
+
const [t, n] = a.payload.split(" "), o = new Date(e.selectedDate);
|
|
65
|
+
o.setMonth((/* @__PURE__ */ new Date(`${t} 1, 2024`)).getMonth()), o.setFullYear(parseInt(n));
|
|
66
|
+
const c = y(o), r = Math.floor(
|
|
67
|
+
(o.getTime() - s.getTime()) / (7 * 24 * 60 * 60 * 1e3)
|
|
68
|
+
), u = l(e.activeTimeFrame, c, c);
|
|
69
|
+
return {
|
|
70
|
+
...e,
|
|
71
|
+
currentDate: c,
|
|
72
|
+
selectedDate: c,
|
|
73
|
+
selectedMonth: a.payload,
|
|
74
|
+
dateOffset: r,
|
|
75
|
+
days: u
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
case "GO_TODAY": {
|
|
79
|
+
const t = y(s), n = i(s), o = Math.floor(
|
|
80
|
+
(s.getTime() - (/* @__PURE__ */ new Date()).getTime()) / (7 * 24 * 60 * 60 * 1e3)
|
|
81
|
+
), c = l(e.activeTimeFrame, t, t), r = c.findIndex(
|
|
82
|
+
(u) => T(u.fullDate, s)
|
|
83
|
+
);
|
|
84
|
+
return {
|
|
85
|
+
...e,
|
|
86
|
+
currentDate: t,
|
|
87
|
+
selectedDate: t,
|
|
88
|
+
selectedMonth: n,
|
|
89
|
+
dateOffset: o,
|
|
90
|
+
isFutureDate: !1,
|
|
91
|
+
days: c,
|
|
92
|
+
activeIndex: r !== -1 ? r : e.activeIndex
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
case "UPDATE_DAYS": {
|
|
96
|
+
const t = l(
|
|
97
|
+
e.activeTimeFrame,
|
|
98
|
+
e.currentDate,
|
|
99
|
+
e.selectedDate
|
|
100
|
+
);
|
|
101
|
+
return { ...e, days: t };
|
|
102
|
+
}
|
|
103
|
+
default:
|
|
104
|
+
return e;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function O() {
|
|
108
|
+
const e = /* @__PURE__ */ new Date(), a = y(e), s = p(a, a), t = s.findIndex(
|
|
109
|
+
(n) => T(n.fullDate, e)
|
|
110
|
+
);
|
|
111
|
+
return {
|
|
112
|
+
currentDate: a,
|
|
113
|
+
selectedDate: a,
|
|
114
|
+
isFutureDate: !1,
|
|
115
|
+
activeTimeFrame: "weekly",
|
|
116
|
+
days: s,
|
|
117
|
+
selectedMonth: i(e),
|
|
118
|
+
activeIndex: t !== -1 ? t : 0,
|
|
119
|
+
dateOffset: 0
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function C() {
|
|
123
|
+
const [e, a] = v(I, null, O), s = D((d) => {
|
|
124
|
+
a({ type: "SET_TIME_FRAME", payload: d });
|
|
125
|
+
}, []), t = D((d, m) => {
|
|
126
|
+
a({ type: "SELECT_DATE", payload: { index: d, date: m } });
|
|
127
|
+
}, []), n = D((d) => {
|
|
128
|
+
a({ type: "SELECT_DAY_MONTHLY", payload: { date: d } });
|
|
129
|
+
}, []), o = D((d) => {
|
|
130
|
+
a({ type: "NAVIGATE_DATE", payload: d });
|
|
131
|
+
}, []), c = D((d) => {
|
|
132
|
+
a({ type: "SELECT_MONTH", payload: d });
|
|
133
|
+
}, []), r = D(() => {
|
|
134
|
+
a({ type: "GO_TODAY" });
|
|
135
|
+
}, []), u = D(() => {
|
|
136
|
+
a({ type: "UPDATE_DAYS" });
|
|
137
|
+
}, []), h = D(() => T(new Date(e.selectedDate), /* @__PURE__ */ new Date()), [e.selectedDate]), E = D(() => {
|
|
138
|
+
const d = [], m = (/* @__PURE__ */ new Date()).getFullYear(), F = f(new Date(e.selectedDate), "MMMM");
|
|
139
|
+
for (let w = -2; w < 1; w++) {
|
|
140
|
+
const g = new Date(m + w, 0);
|
|
141
|
+
d.push(`${F} ${g.getFullYear()}`);
|
|
142
|
+
}
|
|
143
|
+
return d;
|
|
144
|
+
}, [e.selectedDate]), S = D(() => e.days.length > 0 && !!e.days[0].fullDate && T(e.days[0].fullDate, new Date(e.selectedDate)), [e.days, e.selectedDate]), A = D(() => e.days.length > 0 && !!e.days[e.days.length - 1].fullDate && T(
|
|
145
|
+
e.days[e.days.length - 1].fullDate,
|
|
146
|
+
new Date(e.selectedDate)
|
|
147
|
+
), [e.days, e.selectedDate]);
|
|
148
|
+
return {
|
|
149
|
+
...e,
|
|
150
|
+
dispatch: a,
|
|
151
|
+
// Action creators
|
|
152
|
+
setActiveTimeFrame: s,
|
|
153
|
+
selectDate: t,
|
|
154
|
+
selectDayMonthly: n,
|
|
155
|
+
navigateDate: o,
|
|
156
|
+
selectMonth: c,
|
|
157
|
+
goToday: r,
|
|
158
|
+
updateDays: u,
|
|
159
|
+
// Computed
|
|
160
|
+
isTodaySelected: h,
|
|
161
|
+
getYearsList: E,
|
|
162
|
+
isFirstDate: S,
|
|
163
|
+
isLastDate: A
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
export {
|
|
167
|
+
C as useCalendarNavigation
|
|
168
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BreakRequest } from '../types';
|
|
2
|
+
export declare function useLeaveRequestInteraction(): {
|
|
3
|
+
isProcessing: boolean;
|
|
4
|
+
activeRequest: BreakRequest | null;
|
|
5
|
+
activeAction: string | null;
|
|
6
|
+
message: string;
|
|
7
|
+
openComment: boolean;
|
|
8
|
+
hoveredRequest: BreakRequest | null;
|
|
9
|
+
isCtrlPressed: boolean;
|
|
10
|
+
hoverActionTemp: string | null;
|
|
11
|
+
setIsProcessing: import('react').Dispatch<import('react').SetStateAction<boolean>>;
|
|
12
|
+
setActiveRequest: import('react').Dispatch<import('react').SetStateAction<BreakRequest | null>>;
|
|
13
|
+
setActiveAction: import('react').Dispatch<import('react').SetStateAction<string | null>>;
|
|
14
|
+
setMessage: import('react').Dispatch<import('react').SetStateAction<string>>;
|
|
15
|
+
setOpenComment: import('react').Dispatch<import('react').SetStateAction<boolean>>;
|
|
16
|
+
setHoveredRequest: import('react').Dispatch<import('react').SetStateAction<BreakRequest | null>>;
|
|
17
|
+
setIsCtrlPressed: import('react').Dispatch<import('react').SetStateAction<boolean>>;
|
|
18
|
+
setHoverActionTemp: import('react').Dispatch<import('react').SetStateAction<string | null>>;
|
|
19
|
+
reset: () => void;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=use-leave-request-interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-leave-request-interaction.d.ts","sourceRoot":"","sources":["../../../src/admin/dashboard/use-leave-request-interaction.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAM5C,wBAAgB,0BAA0B;;;;;;;;;;;;;;;;;;EAmDzC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useState as e, useCallback as R } from "react";
|
|
2
|
+
function g() {
|
|
3
|
+
const [a, s] = e(!1), [i, t] = e(null), [m, n] = e(null), [v, o] = e(""), [f, l] = e(!1), [p, c] = e(
|
|
4
|
+
null
|
|
5
|
+
), [A, u] = e(!1), [q, r] = e(null), C = R(() => {
|
|
6
|
+
s(!1), t(null), n(null), o(""), l(!1), c(null), u(!1), r(null);
|
|
7
|
+
}, []);
|
|
8
|
+
return {
|
|
9
|
+
// State
|
|
10
|
+
isProcessing: a,
|
|
11
|
+
activeRequest: i,
|
|
12
|
+
activeAction: m,
|
|
13
|
+
message: v,
|
|
14
|
+
openComment: f,
|
|
15
|
+
hoveredRequest: p,
|
|
16
|
+
isCtrlPressed: A,
|
|
17
|
+
hoverActionTemp: q,
|
|
18
|
+
// Setters
|
|
19
|
+
setIsProcessing: s,
|
|
20
|
+
setActiveRequest: t,
|
|
21
|
+
setActiveAction: n,
|
|
22
|
+
setMessage: o,
|
|
23
|
+
setOpenComment: l,
|
|
24
|
+
setHoveredRequest: c,
|
|
25
|
+
setIsCtrlPressed: u,
|
|
26
|
+
setHoverActionTemp: r,
|
|
27
|
+
// Helpers
|
|
28
|
+
reset: C
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
g as useLeaveRequestInteraction
|
|
33
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { IconPlus as AddIcon, IconChevronDown as ArrowDownIcon, IconChevronDown as ArrowDropdownIcon, IconChevronDown as FilledArrowIcon, IconChevronRight as ArrowForwardIcon, IconChevronLeft as ArrowLeftIcon, IconArrowRight as ArrowRightIcon, IconChevronUp as ArrowUpIcon, IconTrash as BreakDeleteIcon, IconCalendar as CalendarIcon, IconCalendarEvent as CalendarDateIcon, IconSquare as CheckboxIcon, IconSquareCheck as CheckboxActiveIcon, IconX as CloseIcon, IconX as CrossIcon, IconGripVertical as DragIcon, IconGripVertical as DragActiveIcon, IconPencil as EditIcon, IconDotsVertical as MenuDotsIcon, IconUser as PersonIcon, IconSend as SendIcon, IconCheck as TickIcon, } from '@tabler/icons-react';
|
|
2
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/admin/icons.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,QAAQ,IAAI,OAAO,EACnB,eAAe,IAAI,aAAa,EAChC,eAAe,IAAI,iBAAiB,EACpC,eAAe,IAAI,eAAe,EAClC,gBAAgB,IAAI,gBAAgB,EACpC,eAAe,IAAI,aAAa,EAChC,cAAc,IAAI,cAAc,EAChC,aAAa,IAAI,WAAW,EAC5B,SAAS,IAAI,eAAe,EAC5B,YAAY,IAAI,YAAY,EAC5B,iBAAiB,IAAI,gBAAgB,EACrC,UAAU,IAAI,YAAY,EAC1B,eAAe,IAAI,kBAAkB,EACrC,KAAK,IAAI,SAAS,EAClB,KAAK,IAAI,SAAS,EAClB,gBAAgB,IAAI,QAAQ,EAC5B,gBAAgB,IAAI,cAAc,EAClC,UAAU,IAAI,QAAQ,EACtB,gBAAgB,IAAI,YAAY,EAChC,QAAQ,IAAI,UAAU,EACtB,QAAQ,IAAI,QAAQ,EACpB,SAAS,IAAI,QAAQ,GACtB,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { UserRole, AttendanceStatus, CorrectionStatus, BreakRequestStatus, AdminUser, AttendanceRecord, BreakRequest, BreakBalanceData, Adjustment, GroupedAttendance, DayInfo, RealtimeCallbacks, } from './types';
|
|
2
|
+
export { AdminDashboard, type AdminDashboardRootProps, type AdminDashboardCalendarProps, type AdminDashboardAttendanceOverviewProps, type AdminDashboardAssociateDetailProps, type AdminDashboardLeaveRequestsProps, type AdminDashboardContentProps, type TaskItem, type AttendanceCorrection, Calendar, type CalendarProps, BreakRequestCard, type BreakRequestProps, LeaveRequests, type LeaveRequestsProps, DashboardSkeleton as AdminDashboardSkeleton, RenderDate, type RenderDateProps, type DateAttendanceInfo, DashboardHeader, type DashboardHeaderProps, AttendanceOverview, type AttendanceOverviewProps, AssociateDetail, type AssociateDetailProps, CorrectionList, type CorrectionListProps, } from './dashboard';
|
|
3
|
+
export { BreakAdmin, type BreakAdminProps, BreakAdminHeader, type BreakAdminHeaderProps, type BreakAdminFilters, Breaks, type BreaksProps, LeaveRequest, type LeaveRequestProps, BreakBalance, type BreakBalanceProps, EditBreak, type EditBreakProps, EditBreakBalance, type EditBreakBalanceProps, DeleteBreak, type DeleteBreakProps, BreakAdminSkeleton, } from './break';
|
|
4
|
+
export { ApprovedAdjustments, type ApprovedAdjustmentsProps, } from './adjustments';
|
|
5
|
+
export { AdjustmentType, default as renderAdjustmentType } from './utils/render-adjustment-type';
|
|
6
|
+
export { renderStatus } from './utils/render-status';
|
|
7
|
+
export { formatDate, formatDateIST, formatTimeIST, formatDateWithWeekday, formatOptionalDate, getDaySuffix, isSameDay, getWeekDays, getMonthDays, getStartOfDay, getEndOfDay, } from './utils/date-utils';
|
|
8
|
+
export { removeAllEmojis, removeEmojiAtStart } from './utils/emoji-utils';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,qCAAqC,EAC1C,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,EAC/B,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,QAAQ,EACR,KAAK,aAAa,EAClB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,aAAa,EACb,KAAK,kBAAkB,EACvB,iBAAiB,IAAI,sBAAsB,EAC3C,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,eAAe,EACf,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,eAAe,EACf,KAAK,oBAAoB,EACzB,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,MAAM,EACN,KAAK,WAAW,EAChB,YAAY,EACZ,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,iBAAiB,EACtB,SAAS,EACT,KAAK,cAAc,EACnB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,WAAW,EACX,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AdjustmentType as t, default as o } from "./utils/render-adjustment-type.js";
|
|
2
|
+
import { renderStatus as m } from "./utils/render-status.js";
|
|
3
|
+
import { formatDate as p, formatDateIST as d, formatDateWithWeekday as x, formatOptionalDate as n, formatTimeIST as s, getDaySuffix as i, getEndOfDay as D, getMonthDays as k, getStartOfDay as A, getWeekDays as l, isSameDay as B } from "./utils/date-utils.js";
|
|
4
|
+
import { removeAllEmojis as u, removeEmojiAtStart as y } from "./utils/emoji-utils.js";
|
|
5
|
+
import { AdminDashboard as h } from "./dashboard/admin-dashboard.js";
|
|
6
|
+
import { DashboardSkeleton as g } from "./dashboard/dashboard-skeleton.js";
|
|
7
|
+
import { ApprovedAdjustments as E } from "./adjustments/approved-adjustments.js";
|
|
8
|
+
import { AssociateDetail as b } from "./dashboard/associate-detail.js";
|
|
9
|
+
import { AttendanceOverview as R } from "./dashboard/attendance-overview.js";
|
|
10
|
+
import { BreakAdmin as C } from "./break/break-admin.js";
|
|
11
|
+
import { BreakAdminHeader as W } from "./break/header.js";
|
|
12
|
+
import { BreakAdminSkeleton as I } from "./break/break-admin-skeleton.js";
|
|
13
|
+
import { BreakBalance as M } from "./break/break-balance.js";
|
|
14
|
+
import { BreakRequestCard as F } from "./dashboard/break-request.js";
|
|
15
|
+
import { Breaks as J } from "./break/breaks.js";
|
|
16
|
+
import { Calendar as N } from "./dashboard/calendar.js";
|
|
17
|
+
import { CorrectionList as Q } from "./dashboard/correction-list.js";
|
|
18
|
+
import { DashboardHeader as V } from "./dashboard/dashboard-header.js";
|
|
19
|
+
import { DeleteBreak as Y } from "./break/delete-break.js";
|
|
20
|
+
import { EditBreak as _ } from "./break/edit-break.js";
|
|
21
|
+
import { EditBreakBalance as ee } from "./break/edit-break-balance.js";
|
|
22
|
+
import { LeaveRequest as te } from "./break/leave-request.js";
|
|
23
|
+
import { LeaveRequests as ae } from "./dashboard/leave-requests.js";
|
|
24
|
+
import { RenderDate as fe } from "./dashboard/render-date.js";
|
|
25
|
+
export {
|
|
26
|
+
t as AdjustmentType,
|
|
27
|
+
h as AdminDashboard,
|
|
28
|
+
g as AdminDashboardSkeleton,
|
|
29
|
+
E as ApprovedAdjustments,
|
|
30
|
+
b as AssociateDetail,
|
|
31
|
+
R as AttendanceOverview,
|
|
32
|
+
C as BreakAdmin,
|
|
33
|
+
W as BreakAdminHeader,
|
|
34
|
+
I as BreakAdminSkeleton,
|
|
35
|
+
M as BreakBalance,
|
|
36
|
+
F as BreakRequestCard,
|
|
37
|
+
J as Breaks,
|
|
38
|
+
N as Calendar,
|
|
39
|
+
Q as CorrectionList,
|
|
40
|
+
V as DashboardHeader,
|
|
41
|
+
Y as DeleteBreak,
|
|
42
|
+
_ as EditBreak,
|
|
43
|
+
ee as EditBreakBalance,
|
|
44
|
+
te as LeaveRequest,
|
|
45
|
+
ae as LeaveRequests,
|
|
46
|
+
fe as RenderDate,
|
|
47
|
+
p as formatDate,
|
|
48
|
+
d as formatDateIST,
|
|
49
|
+
x as formatDateWithWeekday,
|
|
50
|
+
n as formatOptionalDate,
|
|
51
|
+
s as formatTimeIST,
|
|
52
|
+
i as getDaySuffix,
|
|
53
|
+
D as getEndOfDay,
|
|
54
|
+
k as getMonthDays,
|
|
55
|
+
A as getStartOfDay,
|
|
56
|
+
l as getWeekDays,
|
|
57
|
+
B as isSameDay,
|
|
58
|
+
u as removeAllEmojis,
|
|
59
|
+
y as removeEmojiAtStart,
|
|
60
|
+
o as renderAdjustmentType,
|
|
61
|
+
m as renderStatus
|
|
62
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
export type UserRole = 'Apprentice' | 'Associate' | 'Admin' | 'SuperAdmin';
|
|
2
|
+
export type AttendanceStatus = 'PRESENT' | 'ABSENT' | 'BREAK' | 'Not_Marked' | 'HOLIDAY' | 'WEEKEND';
|
|
3
|
+
export type CorrectionStatus = 'PENDING' | 'APPROVED' | 'REJECTED';
|
|
4
|
+
export type BreakRequestStatus = 'PENDING' | 'APPROVED' | 'REJECTED' | 'CANCELLED';
|
|
5
|
+
export interface AdminUser {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
firstName?: string;
|
|
9
|
+
lastName?: string;
|
|
10
|
+
email: string;
|
|
11
|
+
devalokEmail?: string;
|
|
12
|
+
designation: string | null;
|
|
13
|
+
image: string | null;
|
|
14
|
+
role: UserRole;
|
|
15
|
+
isActive: boolean;
|
|
16
|
+
createdAt: string | Date;
|
|
17
|
+
}
|
|
18
|
+
export interface AttendanceRecord {
|
|
19
|
+
id: string;
|
|
20
|
+
userId: string;
|
|
21
|
+
date: string;
|
|
22
|
+
timeIn: string | null;
|
|
23
|
+
timeOut: string | null;
|
|
24
|
+
status: AttendanceStatus;
|
|
25
|
+
correctionStatus?: CorrectionStatus | null;
|
|
26
|
+
reason?: string | null;
|
|
27
|
+
adminComment?: string | null;
|
|
28
|
+
requestedDate?: string | null;
|
|
29
|
+
newTimeIn?: string | null;
|
|
30
|
+
newTimeOut?: string | null;
|
|
31
|
+
oldTimeIn?: string | null;
|
|
32
|
+
oldTimeOut?: string | null;
|
|
33
|
+
user?: AdminUser;
|
|
34
|
+
}
|
|
35
|
+
export interface BreakRequest {
|
|
36
|
+
id: string;
|
|
37
|
+
userId: string;
|
|
38
|
+
startDate: string;
|
|
39
|
+
endDate: string;
|
|
40
|
+
numberOfDays: number;
|
|
41
|
+
reason: string;
|
|
42
|
+
status: BreakRequestStatus;
|
|
43
|
+
adminComment?: string | null;
|
|
44
|
+
correction?: boolean;
|
|
45
|
+
user?: Pick<AdminUser, 'id' | 'name' | 'firstName' | 'image'>;
|
|
46
|
+
}
|
|
47
|
+
export interface BreakBalanceData {
|
|
48
|
+
id: string;
|
|
49
|
+
userId: string;
|
|
50
|
+
totalDays: number;
|
|
51
|
+
usedDays?: number;
|
|
52
|
+
carryForward: number;
|
|
53
|
+
cashout: number;
|
|
54
|
+
yearlyBalance?: number;
|
|
55
|
+
other?: number;
|
|
56
|
+
user?: Pick<AdminUser, 'id' | 'name' | 'firstName' | 'image'>;
|
|
57
|
+
createdAt: string;
|
|
58
|
+
updatedAt: string;
|
|
59
|
+
}
|
|
60
|
+
export interface Adjustment {
|
|
61
|
+
id: string;
|
|
62
|
+
userId: string;
|
|
63
|
+
numberOfDays: number;
|
|
64
|
+
type: string;
|
|
65
|
+
reason: string;
|
|
66
|
+
status: string;
|
|
67
|
+
comment: string | null;
|
|
68
|
+
approvedBy: string | null;
|
|
69
|
+
createdAt: string;
|
|
70
|
+
updatedAt: string;
|
|
71
|
+
user?: Pick<AdminUser, 'name' | 'email'>;
|
|
72
|
+
approver?: Pick<AdminUser, 'name' | 'email'>;
|
|
73
|
+
}
|
|
74
|
+
export interface GroupedAttendance {
|
|
75
|
+
present: Array<{
|
|
76
|
+
user: AdminUser;
|
|
77
|
+
attendance: AttendanceRecord;
|
|
78
|
+
}>;
|
|
79
|
+
absent: Array<{
|
|
80
|
+
user: AdminUser;
|
|
81
|
+
attendance?: AttendanceRecord;
|
|
82
|
+
}>;
|
|
83
|
+
onBreak: Array<{
|
|
84
|
+
user: AdminUser;
|
|
85
|
+
attendance: AttendanceRecord;
|
|
86
|
+
breakRequest?: BreakRequest;
|
|
87
|
+
}>;
|
|
88
|
+
yetToMark: Array<{
|
|
89
|
+
user: AdminUser;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export interface DayInfo {
|
|
93
|
+
day: string;
|
|
94
|
+
date: number;
|
|
95
|
+
fullDate: Date;
|
|
96
|
+
isToday: boolean;
|
|
97
|
+
isActive: boolean;
|
|
98
|
+
isPadding?: boolean;
|
|
99
|
+
hasBreak?: boolean;
|
|
100
|
+
isAbsent?: boolean;
|
|
101
|
+
isDisabled?: boolean;
|
|
102
|
+
}
|
|
103
|
+
/** SSE real-time event callbacks */
|
|
104
|
+
export interface RealtimeCallbacks {
|
|
105
|
+
onBreakRequestCreated?: (data: unknown) => void;
|
|
106
|
+
onBreakRequestApproved?: (data: unknown) => void;
|
|
107
|
+
onBreakRequestRejected?: (data: unknown) => void;
|
|
108
|
+
onBreakRequestCancelled?: (data: unknown) => void;
|
|
109
|
+
onAttendanceCorrectionCreated?: (data: unknown) => void;
|
|
110
|
+
onAttendanceCorrectionProcessed?: (data: unknown) => void;
|
|
111
|
+
onTaskUpdated?: (data: unknown) => void;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAA;AAE1E,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,CAAA;AAEb,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;AAElE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,CAAA;AAEf,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,kBAAkB,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,CAAA;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,SAAS,CAAA;QACf,UAAU,EAAE,gBAAgB,CAAA;KAC7B,CAAC,CAAA;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,SAAS,CAAA;QACf,UAAU,CAAC,EAAE,gBAAgB,CAAA;KAC9B,CAAC,CAAA;IACF,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,SAAS,CAAA;QACf,UAAU,EAAE,gBAAgB,CAAA;QAC5B,YAAY,CAAC,EAAE,YAAY,CAAA;KAC5B,CAAC,CAAA;IACF,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,oCAAoC;AACpC,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,6BAA6B,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACvD,+BAA+B,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACxC"}
|