react-weekly-planning 1.0.30 → 1.0.31
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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { memo } from "react";
|
|
3
|
+
import { totalLabel } from "../../lib/utils";
|
|
3
4
|
const SumHoursContainer = ({ groupId, tasks, weekOffset, calendarDate, sumHoursByGroups, sumHoursRender, className, style, }) => {
|
|
4
5
|
if (sumHoursRender) {
|
|
5
6
|
return (_jsx(_Fragment, { children: sumHoursRender({
|
|
@@ -10,6 +11,6 @@ const SumHoursContainer = ({ groupId, tasks, weekOffset, calendarDate, sumHoursB
|
|
|
10
11
|
sumHoursByGroups,
|
|
11
12
|
}) }));
|
|
12
13
|
}
|
|
13
|
-
return (_jsx("div", { style: Object.assign({ textAlign: "right", marginRight: "5px" }, style), className: `${className}`, children: sumHoursByGroups }));
|
|
14
|
+
return (_jsx("div", { style: Object.assign({ textAlign: "right", marginRight: "5px" }, style), className: `${className}`, children: totalLabel(sumHoursByGroups) }));
|
|
14
15
|
};
|
|
15
16
|
export default memo(SumHoursContainer);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { memo } from "react";
|
|
2
2
|
import { SumHoursContainerPropsType } from "../../definitions";
|
|
3
|
+
import { millisecondsToHours, totalLabel } from "../../lib/utils";
|
|
3
4
|
|
|
4
5
|
const SumHoursContainer = ({
|
|
5
6
|
groupId,
|
|
@@ -30,7 +31,7 @@ const SumHoursContainer = ({
|
|
|
30
31
|
style={{ textAlign: "right", marginRight: "5px", ...style }}
|
|
31
32
|
className={`${className}`}
|
|
32
33
|
>
|
|
33
|
-
{sumHoursByGroups}
|
|
34
|
+
{totalLabel(sumHoursByGroups)}
|
|
34
35
|
</div>
|
|
35
36
|
);
|
|
36
37
|
};
|
package/lib/utils.js
CHANGED
|
@@ -241,12 +241,13 @@ export function compareWeekOffset(calendarDate, weekOffset, taskDate) {
|
|
|
241
241
|
}
|
|
242
242
|
export const sumHoursByGroups = (groupId, tasks, weekOffset, calendarDate) => {
|
|
243
243
|
let sum = 0;
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
244
|
+
if (tasks)
|
|
245
|
+
tasks.forEach((task) => {
|
|
246
|
+
if (task.groupId === groupId &&
|
|
247
|
+
compareWeekOffset(calendarDate, weekOffset, task.taskDate) === true) {
|
|
248
|
+
sum += task.taskEnd - task.taskStart;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
250
251
|
return sum;
|
|
251
252
|
};
|
|
252
253
|
export function saveTasksToLocalStorage(tasks) {
|
|
@@ -617,3 +618,23 @@ export const GetTimeRangeByDay = (start, end) => {
|
|
|
617
618
|
}
|
|
618
619
|
return range;
|
|
619
620
|
};
|
|
621
|
+
export function totalLabel(milliseconds) {
|
|
622
|
+
let label = "";
|
|
623
|
+
const hourConv = milliseconds / 3600000;
|
|
624
|
+
const truncHour = Math.trunc(hourConv);
|
|
625
|
+
if (hourConv !== truncHour) {
|
|
626
|
+
const deciHour = hourConv - truncHour;
|
|
627
|
+
const minConv = deciHour * 60;
|
|
628
|
+
const truncMin = Math.trunc(minConv);
|
|
629
|
+
if (truncMin !== minConv) {
|
|
630
|
+
const deciMin = minConv - truncMin;
|
|
631
|
+
const secConv = deciMin * 60;
|
|
632
|
+
label = `${truncHour}:${truncMin}:${Math.trunc(secConv)}`;
|
|
633
|
+
}
|
|
634
|
+
else
|
|
635
|
+
label = `${truncHour}:${minConv}:0`;
|
|
636
|
+
}
|
|
637
|
+
else
|
|
638
|
+
label = `${hourConv}:0:0`;
|
|
639
|
+
return label;
|
|
640
|
+
}
|
package/lib/utils.ts
CHANGED
|
@@ -300,14 +300,15 @@ export const sumHoursByGroups = (
|
|
|
300
300
|
calendarDate: Date
|
|
301
301
|
) => {
|
|
302
302
|
let sum: number = 0;
|
|
303
|
-
tasks
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
303
|
+
if (tasks)
|
|
304
|
+
tasks.forEach((task: TaskType | any) => {
|
|
305
|
+
if (
|
|
306
|
+
task.groupId === groupId &&
|
|
307
|
+
compareWeekOffset(calendarDate, weekOffset, task.taskDate) === true
|
|
308
|
+
) {
|
|
309
|
+
sum += task.taskEnd - task.taskStart;
|
|
310
|
+
}
|
|
311
|
+
});
|
|
311
312
|
return sum;
|
|
312
313
|
};
|
|
313
314
|
|
|
@@ -946,3 +947,24 @@ export const GetTimeRangeByDay = (start: number, end: number) => {
|
|
|
946
947
|
}
|
|
947
948
|
return range;
|
|
948
949
|
};
|
|
950
|
+
|
|
951
|
+
export function totalLabel(milliseconds: number) {
|
|
952
|
+
let label = "";
|
|
953
|
+
const hourConv = milliseconds / 3600000;
|
|
954
|
+
|
|
955
|
+
const truncHour = Math.trunc(hourConv);
|
|
956
|
+
|
|
957
|
+
if (hourConv !== truncHour) {
|
|
958
|
+
const deciHour = hourConv - truncHour;
|
|
959
|
+
const minConv = deciHour * 60;
|
|
960
|
+
const truncMin = Math.trunc(minConv);
|
|
961
|
+
|
|
962
|
+
if (truncMin !== minConv) {
|
|
963
|
+
const deciMin = minConv - truncMin;
|
|
964
|
+
const secConv = deciMin * 60;
|
|
965
|
+
label = `${truncHour}:${truncMin}:${Math.trunc(secConv)}`;
|
|
966
|
+
} else label = `${truncHour}:${minConv}:0`;
|
|
967
|
+
} else label = `${hourConv}:0:0`;
|
|
968
|
+
|
|
969
|
+
return label;
|
|
970
|
+
}
|