@chayns-components/date 5.0.0-beta.920 → 5.0.0-beta.922
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/lib/cjs/components/calendar/Calendar.js +17 -17
- package/lib/cjs/components/calendar/Calendar.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +1 -0
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/Month.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +19 -21
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +3 -3
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +9 -11
- package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js +2 -2
- package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
- package/lib/cjs/components/date-info/DateInfo.js.map +1 -1
- package/lib/cjs/hooks/useDateInfo.js +27 -72
- package/lib/cjs/hooks/useDateInfo.js.map +1 -1
- package/lib/cjs/index.js +130 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types/dateinfo.js +2 -0
- package/lib/cjs/types/dateinfo.js.map +1 -0
- package/lib/cjs/utils/calendar.js +12 -9
- package/lib/cjs/utils/calendar.js.map +1 -1
- package/lib/cjs/utils/date.js +114 -0
- package/lib/cjs/utils/date.js.map +1 -0
- package/lib/cjs/utils/dateInfo.js +99 -344
- package/lib/cjs/utils/dateInfo.js.map +1 -1
- package/lib/esm/components/calendar/Calendar.js +4 -4
- package/lib/esm/components/calendar/Calendar.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +1 -0
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/Month.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +2 -4
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +8 -10
- package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js +1 -1
- package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
- package/lib/esm/components/date-info/DateInfo.js.map +1 -1
- package/lib/esm/hooks/useDateInfo.js +28 -73
- package/lib/esm/hooks/useDateInfo.js.map +1 -1
- package/lib/esm/index.js +10 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types/dateinfo.js +2 -0
- package/lib/esm/types/dateinfo.js.map +1 -0
- package/lib/esm/utils/calendar.js +4 -3
- package/lib/esm/utils/calendar.js.map +1 -1
- package/lib/esm/utils/date.js +89 -0
- package/lib/esm/utils/date.js.map +1 -0
- package/lib/esm/utils/dateInfo.js +98 -339
- package/lib/esm/utils/dateInfo.js.map +1 -1
- package/lib/types/components/calendar/Calendar.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/MonthWrapper.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/MonthWrapper.styles.d.ts +1 -1
- package/lib/types/components/calendar/month-wrapper/month/Month.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.d.ts +2 -2
- package/lib/types/components/calendar/month-year-pickers/MonthYearPickers.d.ts +2 -2
- package/lib/types/components/date-info/DateInfo.d.ts +1 -1
- package/lib/types/components/opening-times/opening-inputs/OpeningInputs.styles.d.ts +1 -1
- package/lib/types/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.d.ts +1 -1
- package/lib/types/hooks/useDateInfo.d.ts +1 -34
- package/lib/types/index.d.ts +6 -4
- package/lib/types/types/dateinfo.d.ts +34 -0
- package/lib/types/utils/calendar.d.ts +2 -2
- package/lib/types/utils/date.d.ts +27 -0
- package/lib/types/utils/dateInfo.d.ts +10 -51
- package/package.json +3 -4
- package/lib/cjs/constants/dateInfo.js +0 -639
- package/lib/cjs/constants/dateInfo.js.map +0 -1
- package/lib/esm/constants/dateInfo.js +0 -633
- package/lib/esm/constants/dateInfo.js.map +0 -1
- package/lib/types/constants/dateInfo.d.ts +0 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","names":["
|
|
1
|
+
{"version":3,"file":"calendar.js","names":["_date","require","getMonthAndYear","date","month","getMonth","year","getFullYear","exports","isDateInRange","minDate","maxDate","currentDate","monthStartOfCurrentDate","startOfMonth","monthStartOfMaxDate","monthStartOfMinDate","isAfter","isBefore","getNewDate","index","newDate","Date","setMonth","setFullYear","formatMonth","locale","toLocaleString","findNextDate","dateArray","futureDates","filter","d","sort","a","b","getTime","getYearsBetween","startDate","endDate","startYear","endYear","years","push"],"sources":["../../../src/utils/calendar.ts"],"sourcesContent":["import type { EMonth, IMonth } from '../types/calendar';\nimport {isAfter, isBefore, startOfMonth} from \"./date\";\nimport {Language} from \"chayns-api\";\n\nexport const getMonthAndYear = (date: Date): IMonth => {\n const month = date.getMonth() + 1;\n\n const year = date.getFullYear();\n\n return {\n month,\n year,\n };\n};\n\ninterface FormatMonthOptions {\n month: EMonth;\n locale: Language;\n}\n\ninterface IsDateInRange {\n minDate: Date;\n maxDate: Date;\n currentDate: Date;\n}\n\nexport const isDateInRange = ({ minDate, maxDate, currentDate }: IsDateInRange): Date => {\n const monthStartOfCurrentDate = startOfMonth(currentDate);\n const monthStartOfMaxDate = startOfMonth(maxDate);\n const monthStartOfMinDate = startOfMonth(minDate);\n\n switch (true) {\n case isAfter(monthStartOfCurrentDate, monthStartOfMaxDate):\n return monthStartOfMaxDate;\n case isBefore(monthStartOfCurrentDate, monthStartOfMinDate):\n return monthStartOfMinDate;\n default:\n return monthStartOfCurrentDate;\n }\n};\n\nexport const getNewDate = (index: number, currentDate: Date) => {\n const newDate = new Date(currentDate);\n newDate.setMonth(currentDate.getMonth() + index);\n\n if (currentDate.getMonth() === 11 && newDate.getMonth() === 0) {\n newDate.setFullYear(currentDate.getFullYear() + 1);\n }\n\n if (currentDate.getMonth() === 0 && newDate.getMonth() === 11) {\n newDate.setFullYear(currentDate.getFullYear() - 1);\n }\n\n return newDate;\n};\n\nexport const formatMonth = ({ month, locale }: FormatMonthOptions) => {\n const date = new Date(2022, month - 1, 1);\n return date.toLocaleString(locale, { month: 'long' });\n}\n\nexport const findNextDate = (date: Date, dateArray: Date[]): Date | undefined => {\n const futureDates = dateArray.filter((d) => d > date);\n\n futureDates.sort((a, b) => a.getTime() - b.getTime());\n\n return futureDates[0];\n};\n\nexport const getYearsBetween = (startDate: Date, endDate: Date): number[] => {\n const startYear = startDate.getFullYear();\n const endYear = endDate.getFullYear();\n const years: number[] = [];\n\n for (let year = startYear; year <= endYear; year++) {\n years.push(year);\n }\n\n return years;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.subYears = exports.startOfWeek = exports.startOfMonth = exports.isYesterday = exports.isWithinInterval = exports.isTomorrow = exports.isToday = exports.isSameMonth = exports.isSameDay = exports.isMorning = exports.isCurrentYear = exports.isBefore = exports.isAfter = exports.getIsDateNearToday = exports.endOfWeek = exports.eachDayOfInterval = exports.differenceInCalendarMonths = exports.addYears = exports.addDays = void 0;
|
|
7
|
+
const isToday = date => {
|
|
8
|
+
const today = new Date();
|
|
9
|
+
return today.toDateString() === date.toDateString();
|
|
10
|
+
};
|
|
11
|
+
exports.isToday = isToday;
|
|
12
|
+
const isTomorrow = date => {
|
|
13
|
+
const tomorrow = new Date();
|
|
14
|
+
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
15
|
+
return tomorrow.toDateString() === date.toDateString();
|
|
16
|
+
};
|
|
17
|
+
exports.isTomorrow = isTomorrow;
|
|
18
|
+
const isYesterday = date => {
|
|
19
|
+
const yesterday = new Date();
|
|
20
|
+
yesterday.setDate(yesterday.getDate() - 1);
|
|
21
|
+
return yesterday.toDateString() === date.toDateString();
|
|
22
|
+
};
|
|
23
|
+
exports.isYesterday = isYesterday;
|
|
24
|
+
const isCurrentYear = date => {
|
|
25
|
+
const currentYear = new Date().getFullYear();
|
|
26
|
+
const yearOfGivenDate = date.getFullYear();
|
|
27
|
+
return currentYear === yearOfGivenDate;
|
|
28
|
+
};
|
|
29
|
+
exports.isCurrentYear = isCurrentYear;
|
|
30
|
+
const getIsDateNearToday = date => {
|
|
31
|
+
const today = new Date();
|
|
32
|
+
today.setHours(0, 0, 0, 0);
|
|
33
|
+
const targetDate = new Date(date);
|
|
34
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
35
|
+
const diffInDays = (targetDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);
|
|
36
|
+
return diffInDays === 0 || diffInDays === -1 || diffInDays === 1;
|
|
37
|
+
};
|
|
38
|
+
exports.getIsDateNearToday = getIsDateNearToday;
|
|
39
|
+
const isMorning = date => {
|
|
40
|
+
const hours = date.getHours();
|
|
41
|
+
return hours >= 0 && hours < 12;
|
|
42
|
+
};
|
|
43
|
+
exports.isMorning = isMorning;
|
|
44
|
+
const isAfter = (firstDate, secondDate) => {
|
|
45
|
+
return firstDate.getTime() > secondDate.getTime();
|
|
46
|
+
};
|
|
47
|
+
exports.isAfter = isAfter;
|
|
48
|
+
const isBefore = (firstDate, secondDate) => {
|
|
49
|
+
return firstDate.getTime() < secondDate.getTime();
|
|
50
|
+
};
|
|
51
|
+
exports.isBefore = isBefore;
|
|
52
|
+
const startOfMonth = date => {
|
|
53
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
54
|
+
};
|
|
55
|
+
exports.startOfMonth = startOfMonth;
|
|
56
|
+
const addYears = (date, years) => {
|
|
57
|
+
return new Date(date.getFullYear() + years, date.getMonth(), date.getDate());
|
|
58
|
+
};
|
|
59
|
+
exports.addYears = addYears;
|
|
60
|
+
const differenceInCalendarMonths = (firstDate, secondDate) => {
|
|
61
|
+
return (firstDate.getFullYear() - secondDate.getFullYear()) * 12 + (firstDate.getMonth() - secondDate.getMonth());
|
|
62
|
+
};
|
|
63
|
+
exports.differenceInCalendarMonths = differenceInCalendarMonths;
|
|
64
|
+
const isSameDay = (firstDate, secondDate) => {
|
|
65
|
+
return firstDate.getFullYear() === secondDate.getFullYear() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getDate() === secondDate.getDate();
|
|
66
|
+
};
|
|
67
|
+
exports.isSameDay = isSameDay;
|
|
68
|
+
const isSameMonth = (firstDate, secondDate) => {
|
|
69
|
+
return firstDate.getFullYear() === secondDate.getFullYear() && firstDate.getMonth() === secondDate.getMonth();
|
|
70
|
+
};
|
|
71
|
+
exports.isSameMonth = isSameMonth;
|
|
72
|
+
const isWithinInterval = (date, interval) => {
|
|
73
|
+
return date.getTime() >= interval.start.getTime() && date.getTime() <= interval.end.getTime();
|
|
74
|
+
};
|
|
75
|
+
exports.isWithinInterval = isWithinInterval;
|
|
76
|
+
const subYears = (date, years) => {
|
|
77
|
+
return new Date(date.getFullYear() - years, date.getMonth(), date.getDate());
|
|
78
|
+
};
|
|
79
|
+
exports.subYears = subYears;
|
|
80
|
+
const startOfWeek = date => {
|
|
81
|
+
const day = date.getDay();
|
|
82
|
+
const diff = day === 0 ? -6 : 1 - day;
|
|
83
|
+
const start = new Date(date);
|
|
84
|
+
start.setDate(date.getDate() + diff);
|
|
85
|
+
start.setHours(0, 0, 0, 0);
|
|
86
|
+
return start;
|
|
87
|
+
};
|
|
88
|
+
exports.startOfWeek = startOfWeek;
|
|
89
|
+
const endOfWeek = date => {
|
|
90
|
+
const day = date.getDay();
|
|
91
|
+
const diff = day === 0 ? 0 : 7 - day;
|
|
92
|
+
const end = new Date(date);
|
|
93
|
+
end.setDate(date.getDate() + diff);
|
|
94
|
+
end.setHours(23, 59, 59, 999);
|
|
95
|
+
return end;
|
|
96
|
+
};
|
|
97
|
+
exports.endOfWeek = endOfWeek;
|
|
98
|
+
const eachDayOfInterval = interval => {
|
|
99
|
+
const days = [];
|
|
100
|
+
const currentDate = new Date(interval.start);
|
|
101
|
+
while (currentDate <= interval.end) {
|
|
102
|
+
days.push(new Date(currentDate));
|
|
103
|
+
currentDate.setDate(currentDate.getDate() + 1);
|
|
104
|
+
}
|
|
105
|
+
return days;
|
|
106
|
+
};
|
|
107
|
+
exports.eachDayOfInterval = eachDayOfInterval;
|
|
108
|
+
const addDays = (date, days) => {
|
|
109
|
+
const result = new Date(date);
|
|
110
|
+
result.setDate(date.getDate() + days);
|
|
111
|
+
return result;
|
|
112
|
+
};
|
|
113
|
+
exports.addDays = addDays;
|
|
114
|
+
//# sourceMappingURL=date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","names":["isToday","date","today","Date","toDateString","exports","isTomorrow","tomorrow","setDate","getDate","isYesterday","yesterday","isCurrentYear","currentYear","getFullYear","yearOfGivenDate","getIsDateNearToday","setHours","targetDate","diffInDays","getTime","isMorning","hours","getHours","isAfter","firstDate","secondDate","isBefore","startOfMonth","getMonth","addYears","years","differenceInCalendarMonths","isSameDay","isSameMonth","isWithinInterval","interval","start","end","subYears","startOfWeek","day","getDay","diff","endOfWeek","eachDayOfInterval","days","currentDate","push","addDays","result"],"sources":["../../../src/utils/date.ts"],"sourcesContent":["export const isToday = (date: Date): boolean => {\n const today = new Date();\n return today.toDateString() === date.toDateString();\n};\n\nexport const isTomorrow = (date: Date): boolean => {\n const tomorrow = new Date();\n tomorrow.setDate(tomorrow.getDate() + 1);\n return tomorrow.toDateString() === date.toDateString();\n};\n\nexport const isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n return yesterday.toDateString() === date.toDateString();\n};\n\nexport const isCurrentYear = (date: Date): boolean => {\n const currentYear = new Date().getFullYear();\n const yearOfGivenDate = date.getFullYear();\n return currentYear === yearOfGivenDate;\n};\n\nexport const getIsDateNearToday = (date: Date) => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n const targetDate = new Date(date);\n targetDate.setHours(0, 0, 0, 0);\n\n const diffInDays = (targetDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);\n\n return diffInDays === 0 || diffInDays === -1 || diffInDays === 1;\n};\n\nexport const isMorning = (date: Date) => {\n const hours = date.getHours();\n\n return hours >= 0 && hours < 12;\n};\n\nexport const isAfter = (firstDate: Date, secondDate: Date): boolean => {\n return firstDate.getTime() > secondDate.getTime();\n}\n\nexport const isBefore = (firstDate: Date, secondDate: Date): boolean => {\n return firstDate.getTime() < secondDate.getTime();\n}\n\nexport const startOfMonth = (date: Date): Date => {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport const addYears = (date: Date, years: number): Date => {\n return new Date(date.getFullYear() + years, date.getMonth(), date.getDate());\n};\n\nexport const differenceInCalendarMonths = (firstDate: Date, secondDate: Date): number => {\n return (firstDate.getFullYear() - secondDate.getFullYear()) * 12 + (firstDate.getMonth() - secondDate.getMonth());\n};\n\nexport const isSameDay = (firstDate: Date, secondDate: Date): boolean => {\n return (\n firstDate.getFullYear() === secondDate.getFullYear() &&\n firstDate.getMonth() === secondDate.getMonth() &&\n firstDate.getDate() === secondDate.getDate()\n );\n};\n\nexport const isSameMonth = (firstDate: Date, secondDate: Date): boolean => {\n return (\n firstDate.getFullYear() === secondDate.getFullYear() &&\n firstDate.getMonth() === secondDate.getMonth()\n );\n};\n\ninterface Interval {\n start: Date;\n end: Date;\n}\n\nexport const isWithinInterval = (date: Date, interval: Interval): boolean => {\n return date.getTime() >= interval.start.getTime() && date.getTime() <= interval.end.getTime();\n};\n\nexport const subYears = (date: Date, years: number): Date => {\n return new Date(date.getFullYear() - years, date.getMonth(), date.getDate());\n};\n\nexport const startOfWeek = (date: Date): Date => {\n const day = date.getDay();\n const diff = day === 0 ? -6 : 1 - day;\n const start = new Date(date);\n start.setDate(date.getDate() + diff);\n start.setHours(0, 0, 0, 0);\n return start;\n};\n\nexport const endOfWeek = (date: Date): Date => {\n const day = date.getDay();\n const diff = day === 0 ? 0 : 7 - day;\n const end = new Date(date);\n end.setDate(date.getDate() + diff);\n end.setHours(23, 59, 59, 999);\n return end;\n};\n\nexport const eachDayOfInterval = (interval: { start: Date, end: Date }): Date[] => {\n const days: Date[] = [];\n const currentDate = new Date(interval.start);\n\n while (currentDate <= interval.end) {\n days.push(new Date(currentDate));\n currentDate.setDate(currentDate.getDate() + 1);\n }\n\n return days;\n};\n\nexport const addDays = (date: Date, days: number): Date => {\n const result = new Date(date);\n result.setDate(date.getDate() + days);\n return result;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,370 +3,125 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.getTimeTillNow = exports.getTimeString = exports.getDateInfo = void 0;
|
|
7
7
|
var _chaynsApi = require("chayns-api");
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _dateInfo = require("../constants/dateInfo");
|
|
11
|
-
const getLanguage = () => {
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
13
|
-
switch ((0, _chaynsApi.getLanguage)().translation || (0, _chaynsApi.getLanguage)().site) {
|
|
14
|
-
case 'en':
|
|
15
|
-
return _locale.enGB;
|
|
16
|
-
case 'nl':
|
|
17
|
-
return _locale.nl;
|
|
18
|
-
case 'fr':
|
|
19
|
-
return _locale.fr;
|
|
20
|
-
case 'it':
|
|
21
|
-
return _locale.it;
|
|
22
|
-
case 'pl':
|
|
23
|
-
return _locale.pl;
|
|
24
|
-
case 'pt':
|
|
25
|
-
return _locale.pt;
|
|
26
|
-
case 'es':
|
|
27
|
-
return _locale.es;
|
|
28
|
-
case 'tr':
|
|
29
|
-
return _locale.tr;
|
|
30
|
-
case 'uk':
|
|
31
|
-
return _locale.uk;
|
|
32
|
-
default:
|
|
33
|
-
return _locale.de;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
exports.getLanguage = getLanguage;
|
|
37
|
-
const getTimeString = ({
|
|
38
|
-
language,
|
|
39
|
-
isMorning
|
|
40
|
-
}) => {
|
|
41
|
-
switch (language) {
|
|
42
|
-
case 'en-GB':
|
|
43
|
-
case 'pt':
|
|
44
|
-
return isMorning ? 'AM' : 'PM';
|
|
45
|
-
case 'nl':
|
|
46
|
-
return 'uur';
|
|
47
|
-
case 'fr':
|
|
48
|
-
return 'heures';
|
|
49
|
-
case 'de':
|
|
50
|
-
return 'Uhr';
|
|
51
|
-
case 'es':
|
|
52
|
-
return 'h';
|
|
53
|
-
default:
|
|
54
|
-
return '';
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
exports.getTimeString = getTimeString;
|
|
58
|
-
const getYearFormat = ({
|
|
8
|
+
var _date = require("./date");
|
|
9
|
+
const getDateInfo = ({
|
|
59
10
|
date,
|
|
60
|
-
shouldShowYear
|
|
61
|
-
|
|
62
|
-
exports.getYearFormat = getYearFormat;
|
|
63
|
-
const getMonthFormat = ({
|
|
64
|
-
shouldUseShortText
|
|
65
|
-
}) => {
|
|
66
|
-
if (shouldUseShortText) {
|
|
67
|
-
return 'LLL.';
|
|
68
|
-
}
|
|
69
|
-
return 'LLLL';
|
|
70
|
-
};
|
|
71
|
-
exports.getMonthFormat = getMonthFormat;
|
|
72
|
-
const getFormattedDayOfWeek = ({
|
|
73
|
-
shouldShowRelativeDayOfWeek,
|
|
11
|
+
shouldShowYear,
|
|
12
|
+
shouldShowTime,
|
|
74
13
|
shouldShowDayOfWeek,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
language
|
|
14
|
+
shouldShowRelativeDayOfWeek,
|
|
15
|
+
shouldUseShortText
|
|
78
16
|
}) => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
17
|
+
const {
|
|
18
|
+
active: language
|
|
19
|
+
} = (0, _chaynsApi.getLanguage)();
|
|
20
|
+
let dayPart = '';
|
|
82
21
|
if (shouldShowRelativeDayOfWeek) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return 'Vandaag, ';
|
|
89
|
-
case 'fr':
|
|
90
|
-
return "Aujourd'hui, ";
|
|
91
|
-
case 'it':
|
|
92
|
-
return 'Oggi, ';
|
|
93
|
-
case 'pl':
|
|
94
|
-
return 'Dzisiaj, ';
|
|
95
|
-
case 'pt':
|
|
96
|
-
return 'Hoje, ';
|
|
97
|
-
case 'es':
|
|
98
|
-
return 'Hoy, ';
|
|
99
|
-
case 'tr':
|
|
100
|
-
return 'Bugün, ';
|
|
101
|
-
case 'uk':
|
|
102
|
-
return 'Сьогодні, ';
|
|
103
|
-
default:
|
|
104
|
-
return 'Heute, ';
|
|
105
|
-
}
|
|
22
|
+
const rtf = new Intl.RelativeTimeFormat(language, {
|
|
23
|
+
numeric: 'auto'
|
|
24
|
+
});
|
|
25
|
+
if ((0, _date.isToday)(date)) {
|
|
26
|
+
dayPart = capitalizeFirstLetter(rtf.format(0, 'day'));
|
|
106
27
|
}
|
|
107
|
-
if ((0,
|
|
108
|
-
|
|
109
|
-
case 'en-GB':
|
|
110
|
-
return 'Tomorrow, ';
|
|
111
|
-
case 'nl':
|
|
112
|
-
return 'Morgen, ';
|
|
113
|
-
case 'fr':
|
|
114
|
-
return 'Demain, ';
|
|
115
|
-
case 'it':
|
|
116
|
-
return 'Domani, ';
|
|
117
|
-
case 'pl':
|
|
118
|
-
return 'Jutro, ';
|
|
119
|
-
case 'pt':
|
|
120
|
-
return 'Amanhã, ';
|
|
121
|
-
case 'es':
|
|
122
|
-
return 'Mañana, ';
|
|
123
|
-
case 'tr':
|
|
124
|
-
return 'Yarın, ';
|
|
125
|
-
case 'uk':
|
|
126
|
-
return 'Завтра, ';
|
|
127
|
-
default:
|
|
128
|
-
return 'Morgen, ';
|
|
129
|
-
}
|
|
28
|
+
if ((0, _date.isTomorrow)(date)) {
|
|
29
|
+
dayPart = capitalizeFirstLetter(rtf.format(1, 'day'));
|
|
130
30
|
}
|
|
131
|
-
if ((0,
|
|
132
|
-
|
|
133
|
-
case 'en-GB':
|
|
134
|
-
return 'Yesterday, ';
|
|
135
|
-
case 'nl':
|
|
136
|
-
return 'Gisteren, ';
|
|
137
|
-
case 'fr':
|
|
138
|
-
return 'Hier, ';
|
|
139
|
-
case 'it':
|
|
140
|
-
return 'Ieri, ';
|
|
141
|
-
case 'pl':
|
|
142
|
-
return 'Wczoraj, ';
|
|
143
|
-
case 'pt':
|
|
144
|
-
return 'Ontem, ';
|
|
145
|
-
case 'es':
|
|
146
|
-
return 'Ayer, ';
|
|
147
|
-
case 'tr':
|
|
148
|
-
return 'Dün, ';
|
|
149
|
-
case 'uk':
|
|
150
|
-
return 'Вчора, ';
|
|
151
|
-
default:
|
|
152
|
-
return 'Gestern, ';
|
|
153
|
-
}
|
|
31
|
+
if ((0, _date.isYesterday)(date)) {
|
|
32
|
+
dayPart = capitalizeFirstLetter(rtf.format(-1, 'day'));
|
|
154
33
|
}
|
|
155
34
|
}
|
|
156
|
-
if (
|
|
157
|
-
|
|
158
|
-
|
|
35
|
+
if (!dayPart && shouldShowDayOfWeek) {
|
|
36
|
+
dayPart = date.toLocaleDateString(language, {
|
|
37
|
+
weekday: shouldUseShortText ? 'short' : 'long'
|
|
159
38
|
});
|
|
160
39
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
shouldShowTime,
|
|
168
|
-
date,
|
|
169
|
-
language
|
|
170
|
-
}) => {
|
|
171
|
-
if (!shouldShowTime) {
|
|
172
|
-
return '';
|
|
40
|
+
const dateParts = {
|
|
41
|
+
day: '2-digit',
|
|
42
|
+
month: shouldUseShortText ? 'short' : 'long'
|
|
43
|
+
};
|
|
44
|
+
if (shouldShowYear && !(0, _date.isCurrentYear)(date)) {
|
|
45
|
+
dateParts.year = 'numeric';
|
|
173
46
|
}
|
|
174
|
-
|
|
175
|
-
if (
|
|
176
|
-
|
|
47
|
+
const timeParts = {};
|
|
48
|
+
if (shouldShowTime) {
|
|
49
|
+
timeParts.hour = '2-digit';
|
|
50
|
+
timeParts.minute = '2-digit';
|
|
177
51
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
52
|
+
let formattedTime = '';
|
|
53
|
+
if (Object.keys(timeParts).length > 0) {
|
|
54
|
+
formattedTime = `, ${date.toLocaleTimeString(language, {
|
|
55
|
+
...timeParts
|
|
56
|
+
})}`;
|
|
57
|
+
}
|
|
58
|
+
const hourWord = getTimeString({
|
|
59
|
+
language,
|
|
60
|
+
date
|
|
61
|
+
});
|
|
62
|
+
formattedTime += shouldShowTime ? ` ${hourWord}` : '';
|
|
63
|
+
const formattedDate = `${date.toLocaleDateString(language, dateParts)}${formattedTime}`;
|
|
64
|
+
return `${dayPart}${dayPart ? ', ' : ''}${formattedDate}`;
|
|
187
65
|
};
|
|
188
|
-
exports.
|
|
189
|
-
|
|
190
|
-
TimeType[TimeType["Seconds"] = 0] = "Seconds";
|
|
191
|
-
TimeType[TimeType["Minutes"] = 1] = "Minutes";
|
|
192
|
-
TimeType[TimeType["Hours"] = 2] = "Hours";
|
|
193
|
-
TimeType[TimeType["Days"] = 3] = "Days";
|
|
194
|
-
TimeType[TimeType["Weeks"] = 4] = "Weeks";
|
|
195
|
-
TimeType[TimeType["Months"] = 5] = "Months";
|
|
196
|
-
TimeType[TimeType["Years"] = 6] = "Years";
|
|
197
|
-
return TimeType;
|
|
198
|
-
}({});
|
|
199
|
-
const getTimeTypeStrings = language => _dateInfo.TIME_TYPE_STRINGS[language === 'en-GB' ? 'en' : language];
|
|
200
|
-
exports.getTimeTypeStrings = getTimeTypeStrings;
|
|
66
|
+
exports.getDateInfo = getDateInfo;
|
|
67
|
+
const capitalizeFirstLetter = text => text.charAt(0).toUpperCase() + text.slice(1);
|
|
201
68
|
const getTimeTillNow = ({
|
|
202
69
|
date,
|
|
203
70
|
currentDate,
|
|
204
|
-
language
|
|
71
|
+
language = _chaynsApi.Language.English
|
|
205
72
|
}) => {
|
|
206
|
-
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
73
|
+
const diffInSeconds = Math.floor((currentDate.getTime() - date.getTime()) / 1000);
|
|
74
|
+
const isPast = diffInSeconds > 0;
|
|
75
|
+
const units = [{
|
|
76
|
+
label: 'year',
|
|
77
|
+
seconds: 31536000
|
|
78
|
+
}, {
|
|
79
|
+
label: 'month',
|
|
80
|
+
seconds: 2592000
|
|
81
|
+
}, {
|
|
82
|
+
label: 'day',
|
|
83
|
+
seconds: 86400
|
|
84
|
+
}, {
|
|
85
|
+
label: 'hour',
|
|
86
|
+
seconds: 3600
|
|
87
|
+
}, {
|
|
88
|
+
label: 'minute',
|
|
89
|
+
seconds: 60
|
|
90
|
+
}, {
|
|
91
|
+
label: 'second',
|
|
92
|
+
seconds: 1
|
|
93
|
+
}];
|
|
94
|
+
const absDiff = Math.abs(diffInSeconds);
|
|
95
|
+
const {
|
|
96
|
+
label,
|
|
97
|
+
seconds
|
|
98
|
+
} = units.find(u => absDiff >= u.seconds) || {
|
|
99
|
+
label: 'second',
|
|
100
|
+
seconds: 1
|
|
211
101
|
};
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
time.type = TimeType.Seconds;
|
|
218
|
-
break;
|
|
219
|
-
case elapsedMilliseconds < 3600000:
|
|
220
|
-
time.value = Math.floor(elapsedMilliseconds / 60000);
|
|
221
|
-
time.type = TimeType.Minutes;
|
|
222
|
-
break;
|
|
223
|
-
case elapsedMilliseconds < 86400000:
|
|
224
|
-
const hours = Math.floor(elapsedMilliseconds / 3600000);
|
|
225
|
-
const minutes = Math.floor(elapsedMilliseconds % 3600000 / 60000);
|
|
226
|
-
return `${hours} ${getFormattedPastTimeString({
|
|
227
|
-
value: hours,
|
|
228
|
-
type: TimeType.Hours,
|
|
229
|
-
isPast: true
|
|
230
|
-
}, language)}
|
|
231
|
-
${minutes > 0 ? `${((_getTimeTypeStrings = getTimeTypeStrings(language.code ?? 'de')) === null || _getTimeTypeStrings === void 0 ? void 0 : _getTimeTypeStrings.and) ?? ''} ${minutes} ${getFormattedPastTimeString({
|
|
232
|
-
value: minutes,
|
|
233
|
-
type: TimeType.Minutes,
|
|
234
|
-
isPast: true
|
|
235
|
-
}, language)}` : ''}`;
|
|
236
|
-
case elapsedMilliseconds < 604800000:
|
|
237
|
-
time.value = Math.floor(elapsedMilliseconds / 86400000);
|
|
238
|
-
time.type = TimeType.Days;
|
|
239
|
-
break;
|
|
240
|
-
case elapsedMilliseconds < 2592000000:
|
|
241
|
-
time.value = Math.floor(elapsedMilliseconds / 604800000);
|
|
242
|
-
time.type = TimeType.Weeks;
|
|
243
|
-
break;
|
|
244
|
-
case elapsedMilliseconds < 31536000000:
|
|
245
|
-
time.value = Math.floor(elapsedMilliseconds / 2592000000);
|
|
246
|
-
time.type = TimeType.Months;
|
|
247
|
-
break;
|
|
248
|
-
default:
|
|
249
|
-
time.value = Math.floor(elapsedMilliseconds / 31536000000);
|
|
250
|
-
time.type = TimeType.Years;
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
return `${time.value} ${getFormattedPastTimeString(time, language)}`;
|
|
254
|
-
}
|
|
255
|
-
const remainingMilliseconds = date.getTime() - currentDate.getTime();
|
|
256
|
-
switch (true) {
|
|
257
|
-
case remainingMilliseconds < 60000:
|
|
258
|
-
time.value = Math.floor(remainingMilliseconds / 1000);
|
|
259
|
-
time.type = TimeType.Seconds;
|
|
260
|
-
break;
|
|
261
|
-
case remainingMilliseconds < 3600000:
|
|
262
|
-
time.value = Math.floor(remainingMilliseconds / 60000);
|
|
263
|
-
time.type = TimeType.Minutes;
|
|
264
|
-
break;
|
|
265
|
-
case remainingMilliseconds < 86400000:
|
|
266
|
-
const hours = Math.floor(remainingMilliseconds / 3600000);
|
|
267
|
-
const minutes = Math.floor(remainingMilliseconds % 3600000 / 60000);
|
|
268
|
-
return `${hours} ${getFormattedFutureTimeString({
|
|
269
|
-
value: hours,
|
|
270
|
-
type: TimeType.Hours,
|
|
271
|
-
isPast: false
|
|
272
|
-
}, language)}
|
|
273
|
-
${minutes > 0 ? `${((_getTimeTypeStrings2 = getTimeTypeStrings(language.code ?? 'de')) === null || _getTimeTypeStrings2 === void 0 ? void 0 : _getTimeTypeStrings2.and) ?? ''} ${minutes} ${getFormattedFutureTimeString({
|
|
274
|
-
value: minutes,
|
|
275
|
-
type: TimeType.Minutes,
|
|
276
|
-
isPast: false
|
|
277
|
-
}, language)}` : ''}`;
|
|
278
|
-
case remainingMilliseconds < 604800000:
|
|
279
|
-
time.value = Math.floor(remainingMilliseconds / 86400000);
|
|
280
|
-
time.type = TimeType.Days;
|
|
281
|
-
break;
|
|
282
|
-
case remainingMilliseconds < 2592000000:
|
|
283
|
-
time.value = Math.floor(remainingMilliseconds / 604800000);
|
|
284
|
-
time.type = TimeType.Weeks;
|
|
285
|
-
break;
|
|
286
|
-
case remainingMilliseconds < 31536000000:
|
|
287
|
-
time.value = Math.floor(remainingMilliseconds / 2592000000);
|
|
288
|
-
time.type = TimeType.Months;
|
|
289
|
-
break;
|
|
290
|
-
default:
|
|
291
|
-
time.value = Math.floor(remainingMilliseconds / 31536000000);
|
|
292
|
-
time.type = TimeType.Years;
|
|
293
|
-
break;
|
|
294
|
-
}
|
|
295
|
-
return `${time.value} ${getFormattedFutureTimeString(time, language)}`;
|
|
102
|
+
const count = Math.floor(absDiff / seconds);
|
|
103
|
+
const formatter = new Intl.RelativeTimeFormat(language, {
|
|
104
|
+
numeric: 'auto'
|
|
105
|
+
});
|
|
106
|
+
return formatter.format(isPast ? -count : count, label);
|
|
296
107
|
};
|
|
297
108
|
exports.getTimeTillNow = getTimeTillNow;
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
minutes,
|
|
315
|
-
hours
|
|
316
|
-
} = timeTypeStrings.past;
|
|
317
|
-
switch (true) {
|
|
318
|
-
case type === TimeType.Seconds:
|
|
319
|
-
return isSingular ? seconds.singular : seconds.plural;
|
|
320
|
-
case type === TimeType.Minutes:
|
|
321
|
-
return isSingular ? minutes.singular : minutes.plural;
|
|
322
|
-
case type === TimeType.Hours:
|
|
323
|
-
return isSingular ? hours.singular : hours.plural;
|
|
324
|
-
case type === TimeType.Days:
|
|
325
|
-
return isSingular ? days.singular : days.plural;
|
|
326
|
-
case type === TimeType.Weeks:
|
|
327
|
-
return isSingular ? weeks.singular : weeks.plural;
|
|
328
|
-
case type === TimeType.Months:
|
|
329
|
-
return isSingular ? months.singular : months.plural;
|
|
330
|
-
default:
|
|
331
|
-
return isSingular ? years.singular : years.plural;
|
|
332
|
-
}
|
|
333
|
-
};
|
|
334
|
-
exports.getFormattedPastTimeString = getFormattedPastTimeString;
|
|
335
|
-
const getFormattedFutureTimeString = (time, language) => {
|
|
336
|
-
const {
|
|
337
|
-
value,
|
|
338
|
-
type
|
|
339
|
-
} = time;
|
|
340
|
-
const timeTypeStrings = getTimeTypeStrings(language.code ?? 'de');
|
|
341
|
-
const isSingular = value === 1;
|
|
342
|
-
if (!timeTypeStrings) {
|
|
343
|
-
return '';
|
|
344
|
-
}
|
|
345
|
-
const {
|
|
346
|
-
seconds,
|
|
347
|
-
days,
|
|
348
|
-
weeks,
|
|
349
|
-
months,
|
|
350
|
-
years,
|
|
351
|
-
minutes,
|
|
352
|
-
hours
|
|
353
|
-
} = timeTypeStrings.future;
|
|
354
|
-
switch (true) {
|
|
355
|
-
case type === TimeType.Seconds:
|
|
356
|
-
return isSingular ? seconds.singular : seconds.plural;
|
|
357
|
-
case type === TimeType.Minutes:
|
|
358
|
-
return isSingular ? minutes.singular : minutes.plural;
|
|
359
|
-
case type === TimeType.Hours:
|
|
360
|
-
return isSingular ? hours.singular : hours.plural;
|
|
361
|
-
case type === TimeType.Days:
|
|
362
|
-
return isSingular ? days.singular : days.plural;
|
|
363
|
-
case type === TimeType.Weeks:
|
|
364
|
-
return isSingular ? weeks.singular : weeks.plural;
|
|
365
|
-
case type === TimeType.Months:
|
|
366
|
-
return isSingular ? months.singular : months.plural;
|
|
367
|
-
default:
|
|
368
|
-
return isSingular ? years.singular : years.plural;
|
|
369
|
-
}
|
|
109
|
+
const getTimeString = ({
|
|
110
|
+
language,
|
|
111
|
+
date
|
|
112
|
+
}) => {
|
|
113
|
+
const map = {
|
|
114
|
+
'nl': 'uur',
|
|
115
|
+
'fr': 'heures',
|
|
116
|
+
'de': 'Uhr',
|
|
117
|
+
'es': 'horas',
|
|
118
|
+
'it': 'ore',
|
|
119
|
+
'pt': 'horas',
|
|
120
|
+
'pl': 'godzina',
|
|
121
|
+
'tr': 'saat',
|
|
122
|
+
'uk': 'година'
|
|
123
|
+
};
|
|
124
|
+
return map[language ?? ''] || ((0, _date.isMorning)(date) ? 'AM' : 'PM');
|
|
370
125
|
};
|
|
371
|
-
exports.
|
|
126
|
+
exports.getTimeString = getTimeString;
|
|
372
127
|
//# sourceMappingURL=dateInfo.js.map
|