@sparted/shared-library 1.7.78 → 1.7.80
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.
|
@@ -41,7 +41,7 @@ const computeCurrentSession = (card, forceComputeCalendar) => {
|
|
|
41
41
|
if (currentSession === -1) {
|
|
42
42
|
throw new Error('Current session not found');
|
|
43
43
|
}
|
|
44
|
-
return currentSession + 1;
|
|
44
|
+
return Math.min(currentSession + 1, details.sessionCount);
|
|
45
45
|
};
|
|
46
46
|
const checkTodayPlayable = (card) => {
|
|
47
47
|
const today = new Date();
|
|
@@ -64,7 +64,8 @@ const checkTodayPlayable = (card) => {
|
|
|
64
64
|
const findNextAvailableDate = (currentDate, enabledWeekDays, disabledDates) => {
|
|
65
65
|
if (enabledWeekDays.length === 0)
|
|
66
66
|
return null;
|
|
67
|
-
const
|
|
67
|
+
const dayofDate = currentDate.getDay();
|
|
68
|
+
const isEnabledDay = enabledWeekDays.includes(dayofDate === 0 ? 7 : dayofDate);
|
|
68
69
|
const isDisabledDate = disabledDates.some((d) => isSameDate.isSameDate(d, currentDate));
|
|
69
70
|
if (isEnabledDay && !isDisabledDate) {
|
|
70
71
|
return currentDate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-campaign.js","sources":["../../../src/business/campaign/live-campaign.ts"],"sourcesContent":["import { addDays, isSameDate } from '../../date';\nimport { CampaignDetails, LiveCampaign } from '../types';\n\nexport const computeIntenseCalendar = (card: LiveCampaign): Date[] => {\n const { details } = card;\n\n const startDate = new Date(details.utcStartDate);\n const endDate = new Date(details.utcEndDate);\n\n const calculateIntenseCalendarAux = (date: Date, calendar: Date[]): Date[] => {\n if (date > endDate) {\n return calendar;\n }\n\n const jsDay = date.getDay();\n const day = jsDay === 0 ? 7 : jsDay;\n\n if (details.enabledWeekDays.includes(day) && !details.disabledDates.includes(date.toISOString().slice(0, 10))) {\n calendar.push(new Date(date));\n }\n\n date.setDate(date.getDate() + 1);\n\n return calculateIntenseCalendarAux(date, calendar);\n };\n\n return calculateIntenseCalendarAux(startDate, []);\n};\n\nexport const computeCurrentSession = (card: LiveCampaign, forceComputeCalendar?: boolean): number => {\n const { details, achievement } = card;\n\n if (details.type === 'flexible' && !forceComputeCalendar) {\n return Math.min(achievement.lastSessionPlayed + 1, details.sessionCount);\n }\n\n const today = new Date();\n\n if (today <= new Date(details.utcStartDate)) {\n return 1;\n }\n\n if (today >= new Date(details.utcEndDate)) {\n return details.sessionCount;\n }\n\n const calendar = computeIntenseCalendar(card);\n\n const todayDate = today.toISOString().slice(0, 10);\n const currentSession = calendar.findIndex((date) => date.toISOString().slice(0, 10) >= todayDate);\n\n if (currentSession === -1) {\n throw new Error('Current session not found');\n }\n\n return currentSession + 1;\n};\n\nexport const checkTodayPlayable = (card: LiveCampaign): boolean => {\n const today = new Date();\n\n const { details } = card;\n\n const startDate = new Date(details.utcStartDate);\n const endDate = new Date(details.utcEndDate);\n\n if (today < startDate || today > endDate) {\n return false;\n }\n\n const jsDay = today.getDay();\n const day = jsDay === 0 ? 7 : jsDay;\n\n if (!details.enabledWeekDays.includes(day)) {\n return false;\n }\n\n if (details.disabledDates.includes(today.toISOString().slice(0, 10))) {\n return false;\n }\n\n return true;\n};\n\nexport const findNextAvailableDate = (\n currentDate: Date,\n enabledWeekDays: number[],\n disabledDates: Date[],\n): Date | null => {\n if (enabledWeekDays.length === 0) return null;\n
|
|
1
|
+
{"version":3,"file":"live-campaign.js","sources":["../../../src/business/campaign/live-campaign.ts"],"sourcesContent":["import { addDays, isSameDate } from '../../date';\nimport { CampaignDetails, LiveCampaign } from '../types';\n\nexport const computeIntenseCalendar = (card: LiveCampaign): Date[] => {\n const { details } = card;\n\n const startDate = new Date(details.utcStartDate);\n const endDate = new Date(details.utcEndDate);\n\n const calculateIntenseCalendarAux = (date: Date, calendar: Date[]): Date[] => {\n if (date > endDate) {\n return calendar;\n }\n\n const jsDay = date.getDay();\n const day = jsDay === 0 ? 7 : jsDay;\n\n if (details.enabledWeekDays.includes(day) && !details.disabledDates.includes(date.toISOString().slice(0, 10))) {\n calendar.push(new Date(date));\n }\n\n date.setDate(date.getDate() + 1);\n\n return calculateIntenseCalendarAux(date, calendar);\n };\n\n return calculateIntenseCalendarAux(startDate, []);\n};\n\nexport const computeCurrentSession = (card: LiveCampaign, forceComputeCalendar?: boolean): number => {\n const { details, achievement } = card;\n\n if (details.type === 'flexible' && !forceComputeCalendar) {\n return Math.min(achievement.lastSessionPlayed + 1, details.sessionCount);\n }\n\n const today = new Date();\n\n if (today <= new Date(details.utcStartDate)) {\n return 1;\n }\n\n if (today >= new Date(details.utcEndDate)) {\n return details.sessionCount;\n }\n\n const calendar = computeIntenseCalendar(card);\n\n const todayDate = today.toISOString().slice(0, 10);\n const currentSession = calendar.findIndex((date) => date.toISOString().slice(0, 10) >= todayDate);\n\n if (currentSession === -1) {\n throw new Error('Current session not found');\n }\n\n return Math.min(currentSession + 1, details.sessionCount);\n};\n\nexport const checkTodayPlayable = (card: LiveCampaign): boolean => {\n const today = new Date();\n\n const { details } = card;\n\n const startDate = new Date(details.utcStartDate);\n const endDate = new Date(details.utcEndDate);\n\n if (today < startDate || today > endDate) {\n return false;\n }\n\n const jsDay = today.getDay();\n const day = jsDay === 0 ? 7 : jsDay;\n\n if (!details.enabledWeekDays.includes(day)) {\n return false;\n }\n\n if (details.disabledDates.includes(today.toISOString().slice(0, 10))) {\n return false;\n }\n\n return true;\n};\n\nexport const findNextAvailableDate = (\n currentDate: Date,\n enabledWeekDays: number[],\n disabledDates: Date[],\n): Date | null => {\n if (enabledWeekDays.length === 0) return null;\n const dayofDate = currentDate.getDay();\n const isEnabledDay = enabledWeekDays.includes(dayofDate === 0 ? 7 : dayofDate);\n const isDisabledDate = disabledDates.some((d) => isSameDate(d, currentDate));\n\n if (isEnabledDay && !isDisabledDate) {\n return currentDate;\n }\n\n return findNextAvailableDate(addDays(currentDate, 1), enabledWeekDays, disabledDates);\n};\n\ntype GetCalendarSessionDatesFromCampaignProps = Pick<\n CampaignDetails,\n 'launchDate' | 'enabledWeekDays' | 'disabledDates' | 'nbSessions'\n> & {\n extraDays?: number;\n};\n\nexport const getCalendarSessionDatesFromCampaign = ({\n launchDate,\n enabledWeekDays,\n disabledDates,\n nbSessions,\n extraDays = 0,\n}: GetCalendarSessionDatesFromCampaignProps): Record<number, Date> => {\n const sessionCount = nbSessions + extraDays;\n\n const calendarDatesBySession = Array.from({ length: sessionCount }).reduce((acc: Record<number, Date>, _, index) => {\n const session = index + 1;\n const lastDate = session > 1 ? addDays(new Date(acc[session - 1]), 1) : new Date(launchDate);\n\n const nextSessionDate = findNextAvailableDate(lastDate, enabledWeekDays, disabledDates);\n\n if (!nextSessionDate) return acc;\n\n return {\n ...acc,\n [session]: nextSessionDate,\n };\n }, {});\n\n return calendarDatesBySession;\n};\n"],"names":["isSameDate","addDays"],"mappings":"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"}
|