@chayns-components/date 5.0.0-beta.919 → 5.0.0-beta.921

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 (73) hide show
  1. package/lib/cjs/components/calendar/Calendar.js +17 -17
  2. package/lib/cjs/components/calendar/Calendar.js.map +1 -1
  3. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +1 -0
  4. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
  5. package/lib/cjs/components/calendar/month-wrapper/month/Month.js.map +1 -1
  6. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +19 -21
  7. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
  8. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +3 -3
  9. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
  10. package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +9 -11
  11. package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
  12. package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js +2 -2
  13. package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
  14. package/lib/cjs/components/date-info/DateInfo.js.map +1 -1
  15. package/lib/cjs/hooks/useDateInfo.js +27 -72
  16. package/lib/cjs/hooks/useDateInfo.js.map +1 -1
  17. package/lib/cjs/index.js +130 -2
  18. package/lib/cjs/index.js.map +1 -1
  19. package/lib/cjs/types/dateinfo.js +2 -0
  20. package/lib/cjs/types/dateinfo.js.map +1 -0
  21. package/lib/cjs/utils/calendar.js +12 -9
  22. package/lib/cjs/utils/calendar.js.map +1 -1
  23. package/lib/cjs/utils/date.js +114 -0
  24. package/lib/cjs/utils/date.js.map +1 -0
  25. package/lib/cjs/utils/dateInfo.js +99 -344
  26. package/lib/cjs/utils/dateInfo.js.map +1 -1
  27. package/lib/esm/components/calendar/Calendar.js +4 -4
  28. package/lib/esm/components/calendar/Calendar.js.map +1 -1
  29. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +1 -0
  30. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
  31. package/lib/esm/components/calendar/month-wrapper/month/Month.js.map +1 -1
  32. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +2 -4
  33. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
  34. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +1 -1
  35. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
  36. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +8 -10
  37. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
  38. package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js +1 -1
  39. package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
  40. package/lib/esm/components/date-info/DateInfo.js.map +1 -1
  41. package/lib/esm/hooks/useDateInfo.js +28 -73
  42. package/lib/esm/hooks/useDateInfo.js.map +1 -1
  43. package/lib/esm/index.js +10 -2
  44. package/lib/esm/index.js.map +1 -1
  45. package/lib/esm/types/dateinfo.js +2 -0
  46. package/lib/esm/types/dateinfo.js.map +1 -0
  47. package/lib/esm/utils/calendar.js +4 -3
  48. package/lib/esm/utils/calendar.js.map +1 -1
  49. package/lib/esm/utils/date.js +89 -0
  50. package/lib/esm/utils/date.js.map +1 -0
  51. package/lib/esm/utils/dateInfo.js +98 -339
  52. package/lib/esm/utils/dateInfo.js.map +1 -1
  53. package/lib/types/components/calendar/Calendar.d.ts +2 -2
  54. package/lib/types/components/calendar/month-wrapper/MonthWrapper.d.ts +2 -2
  55. package/lib/types/components/calendar/month-wrapper/MonthWrapper.styles.d.ts +1 -1
  56. package/lib/types/components/calendar/month-wrapper/month/Month.d.ts +2 -2
  57. package/lib/types/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.d.ts +2 -2
  58. package/lib/types/components/calendar/month-year-pickers/MonthYearPickers.d.ts +2 -2
  59. package/lib/types/components/date-info/DateInfo.d.ts +1 -1
  60. package/lib/types/components/opening-times/opening-inputs/OpeningInputs.styles.d.ts +1 -1
  61. package/lib/types/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.d.ts +1 -1
  62. package/lib/types/hooks/useDateInfo.d.ts +1 -34
  63. package/lib/types/index.d.ts +6 -4
  64. package/lib/types/types/dateinfo.d.ts +34 -0
  65. package/lib/types/utils/calendar.d.ts +2 -2
  66. package/lib/types/utils/date.d.ts +27 -0
  67. package/lib/types/utils/dateInfo.d.ts +10 -51
  68. package/package.json +3 -4
  69. package/lib/cjs/constants/dateInfo.js +0 -639
  70. package/lib/cjs/constants/dateInfo.js.map +0 -1
  71. package/lib/esm/constants/dateInfo.js +0 -633
  72. package/lib/esm/constants/dateInfo.js.map +0 -1
  73. package/lib/types/constants/dateInfo.d.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","names":["_dateFns","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","format","findNextDate","dateArray","futureDates","filter","d","sort","a","b","getTime","getYearsBetween","startDate","endDate","startYear","endYear","years","push"],"sources":["../../../src/utils/calendar.ts"],"sourcesContent":["import { format, isAfter, isBefore, startOfMonth, type Locale } from 'date-fns';\nimport type { EMonth, IMonth } from '../types/calendar';\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: Locale;\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 format(new Date(2022, month - 1, 1), 'MMMM', { locale });\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":[]}
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.isMorning = exports.getYearFormat = exports.getTimeTypeStrings = exports.getTimeTillNow = exports.getTimeString = exports.getMonthFormat = exports.getLanguage = exports.getFormattedTime = exports.getFormattedPastTimeString = exports.getFormattedFutureTimeString = exports.getFormattedDayOfWeek = exports.TimeType = void 0;
6
+ exports.getTimeTillNow = exports.getTimeString = exports.getDateInfo = void 0;
7
7
  var _chaynsApi = require("chayns-api");
8
- var _dateFns = require("date-fns");
9
- var _locale = require("date-fns/locale");
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
- }) => typeof shouldShowYear === 'boolean' && !shouldShowYear || (0, _dateFns.isThisYear)(date) ? '' : ' yyyy';
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
- shouldUseShortText,
76
- date,
77
- language
14
+ shouldShowRelativeDayOfWeek,
15
+ shouldUseShortText
78
16
  }) => {
79
- if (!shouldShowDayOfWeek && !shouldShowRelativeDayOfWeek) {
80
- return '';
81
- }
17
+ const {
18
+ active: language
19
+ } = (0, _chaynsApi.getLanguage)();
20
+ let dayPart = '';
82
21
  if (shouldShowRelativeDayOfWeek) {
83
- if ((0, _dateFns.isToday)(date)) {
84
- switch (language === null || language === void 0 ? void 0 : language.code) {
85
- case 'en-GB':
86
- return 'Today, ';
87
- case 'nl':
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, _dateFns.isTomorrow)(date)) {
108
- switch (language === null || language === void 0 ? void 0 : language.code) {
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, _dateFns.isYesterday)(date)) {
132
- switch (language === null || language === void 0 ? void 0 : language.code) {
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 (shouldUseShortText) {
157
- return (0, _dateFns.format)(date, 'E, ', {
158
- locale: language
35
+ if (!dayPart && shouldShowDayOfWeek) {
36
+ dayPart = date.toLocaleDateString(language, {
37
+ weekday: shouldUseShortText ? 'short' : 'long'
159
38
  });
160
39
  }
161
- return (0, _dateFns.format)(date, 'EEEE, ', {
162
- locale: language
163
- });
164
- };
165
- exports.getFormattedDayOfWeek = getFormattedDayOfWeek;
166
- const getFormattedTime = ({
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
- let timeFormat = 'HH:mm';
175
- if (language.code === 'en-GB' || language.code === 'pt') {
176
- timeFormat = 'KK:mm';
47
+ const timeParts = {};
48
+ if (shouldShowTime) {
49
+ timeParts.hour = '2-digit';
50
+ timeParts.minute = '2-digit';
177
51
  }
178
- return `, ${(0, _dateFns.format)(date, timeFormat)} ${getTimeString({
179
- language: language.code,
180
- isMorning: isMorning(date)
181
- })}`;
182
- };
183
- exports.getFormattedTime = getFormattedTime;
184
- const isMorning = date => {
185
- const hours = date.getHours();
186
- return hours >= 0 && hours < 12;
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.isMorning = isMorning;
189
- let TimeType = exports.TimeType = /*#__PURE__*/function (TimeType) {
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
- var _getTimeTypeStrings, _getTimeTypeStrings2;
207
- const time = {
208
- value: 0,
209
- type: TimeType.Years,
210
- isPast: false
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
- if ((0, _dateFns.isPast)(date)) {
213
- const elapsedMilliseconds = currentDate.getTime() - date.getTime();
214
- switch (true) {
215
- case elapsedMilliseconds < 60000:
216
- time.value = Math.floor(elapsedMilliseconds / 1000);
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 getFormattedPastTimeString = (time, language) => {
299
- const {
300
- value,
301
- type
302
- } = time;
303
- const timeTypeStrings = getTimeTypeStrings(language.code ?? 'de');
304
- const isSingular = value === 1;
305
- if (!timeTypeStrings) {
306
- return '';
307
- }
308
- const {
309
- seconds,
310
- days,
311
- weeks,
312
- months,
313
- years,
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.getFormattedFutureTimeString = getFormattedFutureTimeString;
126
+ exports.getTimeString = getTimeString;
372
127
  //# sourceMappingURL=dateInfo.js.map