@beinformed/ui 1.59.4 → 1.59.5
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/CHANGELOG.md +7 -0
- package/esm/utils/datetime/DateTimeUtil.js +25 -16
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/models/attributes/__tests__/DateAttributeModel.spec.js.flow +17 -0
- package/lib/utils/datetime/DateTimeUtil.js +25 -16
- package/lib/utils/datetime/DateTimeUtil.js.flow +24 -13
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/package.json +1 -1
- package/src/models/attributes/__tests__/DateAttributeModel.spec.js +17 -0
- package/src/utils/datetime/DateTimeUtil.js +24 -13
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.59.5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.4...v1.59.5) (2024-12-11)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **datetime:** skip offsets and timezone for date and time utility ([5f4a8a8](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/5f4a8a89c0b0be264ef6f435b7d4f8616690dd23))
|
|
11
|
+
|
|
5
12
|
## [1.59.4](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.3...v1.59.4) (2024-12-11)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
2
|
-
import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
|
|
3
2
|
import _sortInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/sort";
|
|
4
3
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
5
4
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
@@ -16,9 +15,19 @@ import { getCookie } from "../browser/Cookies";
|
|
|
16
15
|
*/
|
|
17
16
|
class BaseDateTimeUtil {
|
|
18
17
|
constructor(isoFormat) {
|
|
18
|
+
let doOffsets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
19
19
|
_defineProperty(this, "_isoFormat", void 0);
|
|
20
|
+
_defineProperty(this, "_doOffsets", void 0);
|
|
20
21
|
_defineProperty(this, "_timeZone", typeof Intl === "undefined" ? "Etc/UTC" : Intl.DateTimeFormat().resolvedOptions().timeZone || "Etc/UTC");
|
|
21
22
|
this._isoFormat = isoFormat;
|
|
23
|
+
this._doOffsets = doOffsets;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Indicates if offsets and timezones are relevant
|
|
28
|
+
*/
|
|
29
|
+
get doOffsets() {
|
|
30
|
+
return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;
|
|
22
31
|
}
|
|
23
32
|
|
|
24
33
|
/**
|
|
@@ -39,8 +48,7 @@ class BaseDateTimeUtil {
|
|
|
39
48
|
/**
|
|
40
49
|
*/
|
|
41
50
|
getIsoFormat() {
|
|
42
|
-
|
|
43
|
-
if (isIncludeTimeOffsetInDateTimes() && _startsWithInstanceProperty(_context = this._isoFormat).call(_context, ISO_DATETIME_FORMAT)) {
|
|
51
|
+
if (this.doOffsets) {
|
|
44
52
|
return this._isoFormat + DATETIME_OFFSET_FORMAT;
|
|
45
53
|
}
|
|
46
54
|
return this._isoFormat;
|
|
@@ -49,7 +57,7 @@ class BaseDateTimeUtil {
|
|
|
49
57
|
/**
|
|
50
58
|
*/
|
|
51
59
|
convertFormat(javaFormat) {
|
|
52
|
-
var
|
|
60
|
+
var _context;
|
|
53
61
|
if (!javaFormat) {
|
|
54
62
|
return this.getIsoFormat();
|
|
55
63
|
}
|
|
@@ -63,7 +71,7 @@ class BaseDateTimeUtil {
|
|
|
63
71
|
let uts35Format = javaFormat;
|
|
64
72
|
|
|
65
73
|
// Sort keys by length (descending) to handle multi-character tokens first
|
|
66
|
-
const sortedKeys = _sortInstanceProperty(
|
|
74
|
+
const sortedKeys = _sortInstanceProperty(_context = _Object$keys(javaToUTS35Map)).call(_context, (a, b) => b.length - a.length);
|
|
67
75
|
for (const javaToken of sortedKeys) {
|
|
68
76
|
const uts35Token = javaToUTS35Map[javaToken];
|
|
69
77
|
const regex = new RegExp(javaToken, "g"); // Match all occurrences
|
|
@@ -102,12 +110,12 @@ class BaseDateTimeUtil {
|
|
|
102
110
|
|
|
103
111
|
/**
|
|
104
112
|
*/
|
|
105
|
-
toFormat(
|
|
113
|
+
toFormat(date, targetFormat) {
|
|
106
114
|
let inputFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.getIsoFormat();
|
|
107
115
|
const {
|
|
108
116
|
weekStartsOn
|
|
109
117
|
} = this.getOptions();
|
|
110
|
-
const parsedDate = this.toDate(
|
|
118
|
+
const parsedDate = this.toDate(date, inputFormat);
|
|
111
119
|
if (isValid(parsedDate)) {
|
|
112
120
|
return format(parsedDate, targetFormat, {
|
|
113
121
|
in: this.getDateFnsContext(),
|
|
@@ -136,11 +144,12 @@ class BaseDateTimeUtil {
|
|
|
136
144
|
/**
|
|
137
145
|
*/
|
|
138
146
|
hasFormat(date, sourceFormat) {
|
|
139
|
-
const
|
|
147
|
+
const parsedDate = this.toDate(date, sourceFormat);
|
|
148
|
+
const formattedValue = this.toFormat(parsedDate, sourceFormat);
|
|
140
149
|
if (formattedValue === "Invalid Date") {
|
|
141
150
|
return false;
|
|
142
151
|
}
|
|
143
|
-
const isOutsideRange = isBefore(
|
|
152
|
+
const isOutsideRange = isBefore(parsedDate, new Date(1000, 1, 1)) || isAfter(parsedDate, new Date(9999, 11, 31));
|
|
144
153
|
if (isOutsideRange) {
|
|
145
154
|
return false;
|
|
146
155
|
}
|
|
@@ -528,10 +537,10 @@ class BaseDateTimeUtil {
|
|
|
528
537
|
/**
|
|
529
538
|
*/
|
|
530
539
|
getDateFnsContext() {
|
|
531
|
-
if (IS_GRAALJS) {
|
|
532
|
-
return
|
|
540
|
+
if (this.doOffsets && !IS_GRAALJS) {
|
|
541
|
+
return tz(this.getTimeZone());
|
|
533
542
|
}
|
|
534
|
-
return
|
|
543
|
+
return undefined;
|
|
535
544
|
}
|
|
536
545
|
|
|
537
546
|
//////////// Offsets
|
|
@@ -557,12 +566,12 @@ class BaseDateTimeUtil {
|
|
|
557
566
|
*/
|
|
558
567
|
getTimezoneOffsets() {
|
|
559
568
|
const createOffsetObject = info => {
|
|
560
|
-
var
|
|
569
|
+
var _context2, _context3;
|
|
561
570
|
const sign = info.offset < 0 ? "-" : "+";
|
|
562
571
|
const absOffset = Math.abs(info.offset);
|
|
563
572
|
const hours = _Math$trunc(absOffset);
|
|
564
573
|
const minutes = Math.round(absOffset % 1 * 60);
|
|
565
|
-
const offsetString = `${sign}${_padStartInstanceProperty(
|
|
574
|
+
const offsetString = `${sign}${_padStartInstanceProperty(_context2 = String(hours + (minutes === 60 ? 1 : 0))).call(_context2, 2, "0")}:${_padStartInstanceProperty(_context3 = String(minutes % 60)).call(_context3, 2, "0")}`;
|
|
566
575
|
return {
|
|
567
576
|
label: info.name,
|
|
568
577
|
abbr: info.abbr,
|
|
@@ -603,7 +612,7 @@ const DateUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);
|
|
|
603
612
|
/**
|
|
604
613
|
* DateTimeUtil
|
|
605
614
|
*/
|
|
606
|
-
const DateTimeUtil = new BaseDateTimeUtil(ISO_DATETIME_FORMAT);
|
|
615
|
+
const DateTimeUtil = new BaseDateTimeUtil(ISO_DATETIME_FORMAT, true);
|
|
607
616
|
|
|
608
617
|
/**
|
|
609
618
|
* TimeUtil
|
|
@@ -613,6 +622,6 @@ const TimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);
|
|
|
613
622
|
/**
|
|
614
623
|
* TimestampUtil
|
|
615
624
|
*/
|
|
616
|
-
const TimestampUtil = new BaseDateTimeUtil(ISO_TIMESTAMP_FORMAT);
|
|
625
|
+
const TimestampUtil = new BaseDateTimeUtil(ISO_TIMESTAMP_FORMAT, true);
|
|
617
626
|
export { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };
|
|
618
627
|
//# sourceMappingURL=DateTimeUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeUtil.js","names":["format","isAfter","isBefore","isSameDay","isValid","parse","add","sub","set","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getDay","getWeek","enGB","nl","tz","soft","DATETIME_OFFSET_FORMAT","DEFAULT_FIRST_WEEK_CONTAINS_DATE","DEFAULT_WEEK_STARTS_ON","getSetting","IS_GRAALJS","isIncludeTimeOffsetInDateTimes","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","ISO_TIME_FORMAT","ISO_TIMESTAMP_FORMAT","getCookie","BaseDateTimeUtil","constructor","isoFormat","_defineProperty","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","getOptions","weekStartsOn","firstWeekContainsDate","getIsoFormat","_context","_startsWithInstanceProperty","call","convertFormat","javaFormat","_context2","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sortInstanceProperty","_Object$keys","a","b","length","javaToken","uts35Token","regex","RegExp","replace","getLocale","locale","toDate","date","inputFormat","arguments","undefined","Date","in","getDateFnsContext","toFormat","isoDate","targetFormat","parsedDate","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","isAmbiguous","dateTime","t","_mapInstanceProperty","x","newDate","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","_set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context3","_context4","sign","offset","absOffset","Math","abs","_Math$trunc","round","offsetString","_padStartInstanceProperty","String","label","name","abbr","timezone","DateUtil","DateTimeUtil","TimeUtil","TimestampUtil"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parse,\n add,\n sub,\n set,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n} from \"date-fns\";\nimport { enGB, nl } from \"date-fns/locale\";\nimport { tz } from \"@date-fns/tz\";\n\nimport soft from \"timezone-soft\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n DEFAULT_WEEK_STARTS_ON,\n getSetting,\n IS_GRAALJS,\n isIncludeTimeOffsetInDateTimes,\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n} from \"../../constants\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\ntype OffsetInfoInput = {\n abbr: string,\n offset: number,\n name: string,\n};\n\nexport type OffsetInfo = {\n abbr: string,\n label: string,\n value: string,\n};\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\n }\n\n /**\n * Returns the options defined in settings\n */\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON,\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n getIsoFormat(): string {\n if (\n isIncludeTimeOffsetInDateTimes() &&\n this._isoFormat.startsWith(ISO_DATETIME_FORMAT)\n ) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(javaFormat: string): string {\n if (!javaFormat) {\n return this.getIsoFormat();\n }\n\n const javaToUTS35Map = {\n ZZZ: \"xxx\",\n ZZ: \"xx\",\n Z: \"x\",\n };\n\n // Replace Java pattern tokens with UTS #35 tokens\n let uts35Format = javaFormat;\n\n // Sort keys by length (descending) to handle multi-character tokens first\n const sortedKeys = Object.keys(javaToUTS35Map).sort(\n (a, b) => b.length - a.length,\n );\n\n for (const javaToken of sortedKeys) {\n const uts35Token = javaToUTS35Map[javaToken];\n const regex = new RegExp(javaToken, \"g\"); // Match all occurrences\n uts35Format = uts35Format.replace(regex, uts35Token);\n }\n\n return uts35Format;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const locale = getCookie(\"locale\") ?? \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n /**\n */\n toDate(date: string | Date, inputFormat: string = this.getIsoFormat()): Date {\n if (date instanceof Date) {\n return date;\n }\n\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(\n isoDate: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(isoDate, inputFormat);\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(\n date: string | Date,\n sourceFormat: string = this.getIsoFormat(),\n ): string {\n return this.toFormat(date, this.getIsoFormat(), sourceFormat);\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n //////////// VALIDATION\n\n /**\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const formattedValue = this.toFormat(date, sourceFormat, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(formattedValue, new Date(1000, 1, 1)) ||\n isAfter(formattedValue, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n /**\n */\n isValid(\n date: string | Date | null | void,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (!date) {\n return false;\n }\n\n const parsedDate = this.toDate(date, inputFormat);\n return isValid(parsedDate);\n }\n\n /**\n */\n isAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string | Date,\n compareDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat),\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string | Date): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * Checks if a given local date and time is ambiguous in the specified timezone.\n * Ambiguity happens during the end of daylight saving time (DST) transitions.\n */\n isAmbiguous(\n inputDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (inputDate == null || typeof Intl === \"undefined\") {\n return false;\n }\n\n const dateTime = this.toDate(inputDate, inputFormat);\n if (!isValid(dateTime)) {\n return false;\n }\n\n const t = [60, -60, 30, -30];\n const a = t.map((x) => {\n const newDate = add(dateTime, { minutes: x });\n return format(newDate, \"HH:mm\");\n });\n const time = format(dateTime, \"HH:mm\");\n return a.indexOf(time) > -1;\n }\n\n //////////// CALCULATIONS\n\n /**\n * @private\n */\n _calculate(\n date: string | Date,\n calculationFn: Function,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n calculationFn(\n parsedDate,\n { [property]: value },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n /**\n */\n addSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n addMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n addHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n addDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"days\", amount, inputFormat);\n }\n\n /**\n */\n addWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n addMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"months\", amount, inputFormat);\n }\n\n /**\n */\n addYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"years\", amount, inputFormat);\n }\n\n /**\n */\n subtractSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n subtractMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n subtractHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n subtractDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"days\", amount, inputFormat);\n }\n\n /**\n */\n subtractWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n subtractMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"months\", amount, inputFormat);\n }\n\n /**\n */\n subtractYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"years\", amount, inputFormat);\n }\n\n //////////// GETTERS\n\n /**\n * @private\n */\n _get(\n date: string | Date,\n method: Function,\n inputFormat: string = this.getIsoFormat(),\n options: Object = {},\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n method(parsedDate, {\n in: this.getDateFnsContext(),\n ...options,\n }),\n );\n }\n\n /**\n */\n startOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, startOfMonth, inputFormat);\n }\n\n /**\n */\n endOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, endOfMonth, inputFormat);\n }\n\n /**\n */\n startOfWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n return this._get(date, startOfWeek, inputFormat, {\n weekStartsOn,\n });\n }\n\n /**\n */\n getHours(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getHours(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getMinutes(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getMinutes(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n const parsedDate = this.toDate(date, inputFormat);\n return getWeek(parsedDate, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n //////////// SETTERS\n\n /**\n * @private\n */\n _set(\n date: string | Date,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { [property]: value },\n // {\n // in: this.getDateFnsContext(),\n // },\n ),\n );\n }\n\n /**\n */\n setYear(\n date: string | Date,\n year: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"year\", year, inputFormat);\n }\n\n /**\n */\n setMonth(\n date: string | Date,\n month: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"month\", month, inputFormat);\n }\n\n /**\n */\n setDay(\n date: string | Date,\n day: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"date\", day, inputFormat);\n }\n\n /**\n */\n setHour(\n date: string | Date,\n hour: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"hours\", hour, inputFormat);\n }\n\n /**\n */\n setMinute(\n date: string | Date,\n minute: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"minutes\", minute, inputFormat);\n }\n\n /**\n */\n setSecond(\n date: string | Date,\n second: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"seconds\", second, inputFormat);\n }\n\n /**\n */\n setMilliseconds(\n date: string | Date,\n millisecond: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"milliseconds\", millisecond, inputFormat);\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { hours, minutes, seconds, milliseconds },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n //////////// Timezone related\n\n /**\n */\n getTimeZone(): string {\n return this._timeZone;\n }\n\n /**\n */\n setTimeZone(timeZone: string) {\n this._timeZone = timeZone;\n }\n\n /**\n */\n getDateFnsContext(): null | Function {\n if (IS_GRAALJS) {\n return null; // tz method does not work in graal (yet)\n }\n return tz(this.getTimeZone());\n }\n\n //////////// Offsets\n\n /**\n */\n getOffset(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): OffsetInfo | null {\n const parsedDate = this.toDate(date, inputFormat);\n if (isValid(parsedDate)) {\n const dateOffset = this.toFormat(parsedDate, DATETIME_OFFSET_FORMAT);\n const offsets = this.getTimezoneOffsets();\n if (\n typeof offsets.daylight !== \"undefined\" &&\n offsets.daylight.value === dateOffset\n ) {\n return offsets.daylight;\n } else if (\n typeof offsets.standard !== \"undefined\" &&\n offsets.standard.value === dateOffset\n ) {\n return offsets.standard;\n }\n }\n return null;\n }\n\n /**\n */\n getTimezoneOffsets(): {\n standard?: OffsetInfo,\n daylight?: OffsetInfo,\n } {\n const createOffsetObject = (info: OffsetInfoInput): OffsetInfo => {\n const sign = info.offset < 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(info.offset);\n const hours = Math.trunc(absOffset);\n const minutes = Math.round((absOffset % 1) * 60);\n\n const offsetString = `${sign}${String(hours + (minutes === 60 ? 1 : 0)).padStart(2, \"0\")}:${String(minutes % 60).padStart(2, \"0\")}`;\n\n return {\n label: info.name,\n abbr: info.abbr,\n value: offsetString,\n };\n };\n\n const timezone = soft(this.getTimeZone());\n\n if (timezone.length === 0) {\n return {\n standard: {\n label: \"Etc/UTC\",\n abbr: \"Etc/UTC\",\n value: \"+00:00\",\n },\n };\n }\n\n const { daylight, standard } = timezone[0];\n\n if (daylight) {\n return {\n daylight: createOffsetObject(daylight),\n standard: createOffsetObject(standard),\n };\n }\n\n return { standard: createOffsetObject(standard) };\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT,\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT,\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DateTimeUtil.js","names":["format","isAfter","isBefore","isSameDay","isValid","parse","add","sub","set","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getDay","getWeek","enGB","nl","tz","soft","DATETIME_OFFSET_FORMAT","DEFAULT_FIRST_WEEK_CONTAINS_DATE","DEFAULT_WEEK_STARTS_ON","getSetting","IS_GRAALJS","isIncludeTimeOffsetInDateTimes","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","ISO_TIME_FORMAT","ISO_TIMESTAMP_FORMAT","getCookie","BaseDateTimeUtil","constructor","isoFormat","doOffsets","arguments","length","undefined","_defineProperty","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","_doOffsets","getOptions","weekStartsOn","firstWeekContainsDate","getIsoFormat","convertFormat","javaFormat","_context","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sortInstanceProperty","_Object$keys","call","a","b","javaToken","uts35Token","regex","RegExp","replace","getLocale","locale","toDate","date","inputFormat","Date","in","getDateFnsContext","toFormat","targetFormat","parsedDate","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","isAmbiguous","dateTime","t","_mapInstanceProperty","x","newDate","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","_set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_Math$trunc","round","offsetString","_padStartInstanceProperty","String","label","name","abbr","timezone","DateUtil","DateTimeUtil","TimeUtil","TimestampUtil"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parse,\n add,\n sub,\n set,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n} from \"date-fns\";\nimport { enGB, nl } from \"date-fns/locale\";\nimport { tz } from \"@date-fns/tz\";\n\nimport soft from \"timezone-soft\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n DEFAULT_WEEK_STARTS_ON,\n getSetting,\n IS_GRAALJS,\n isIncludeTimeOffsetInDateTimes,\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n} from \"../../constants\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\ntype OffsetInfoInput = {\n abbr: string,\n offset: number,\n name: string,\n};\n\nexport type OffsetInfo = {\n abbr: string,\n label: string,\n value: string,\n};\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n _doOffsets: boolean;\n\n _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string, doOffsets: boolean = false) {\n this._isoFormat = isoFormat;\n this._doOffsets = doOffsets;\n }\n\n /**\n * Indicates if offsets and timezones are relevant\n */\n get doOffsets(): boolean {\n return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;\n }\n\n /**\n * Returns the options defined in settings\n */\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON,\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n getIsoFormat(): string {\n if (this.doOffsets) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(javaFormat: string): string {\n if (!javaFormat) {\n return this.getIsoFormat();\n }\n\n const javaToUTS35Map = {\n ZZZ: \"xxx\",\n ZZ: \"xx\",\n Z: \"x\",\n };\n\n // Replace Java pattern tokens with UTS #35 tokens\n let uts35Format = javaFormat;\n\n // Sort keys by length (descending) to handle multi-character tokens first\n const sortedKeys = Object.keys(javaToUTS35Map).sort(\n (a, b) => b.length - a.length,\n );\n\n for (const javaToken of sortedKeys) {\n const uts35Token = javaToUTS35Map[javaToken];\n const regex = new RegExp(javaToken, \"g\"); // Match all occurrences\n uts35Format = uts35Format.replace(regex, uts35Token);\n }\n\n return uts35Format;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const locale = getCookie(\"locale\") ?? \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n /**\n */\n toDate(date: string | Date, inputFormat: string = this.getIsoFormat()): Date {\n if (date instanceof Date) {\n return date;\n }\n\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(\n date: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(date, inputFormat);\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(\n date: string | Date,\n sourceFormat: string = this.getIsoFormat(),\n ): string {\n return this.toFormat(date, this.getIsoFormat(), sourceFormat);\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n //////////// VALIDATION\n\n /**\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const parsedDate = this.toDate(date, sourceFormat);\n\n const formattedValue = this.toFormat(parsedDate, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(parsedDate, new Date(1000, 1, 1)) ||\n isAfter(parsedDate, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n /**\n */\n isValid(\n date: string | Date | null | void,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (!date) {\n return false;\n }\n\n const parsedDate = this.toDate(date, inputFormat);\n return isValid(parsedDate);\n }\n\n /**\n */\n isAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string | Date,\n compareDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat),\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string | Date): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * Checks if a given local date and time is ambiguous in the specified timezone.\n * Ambiguity happens during the end of daylight saving time (DST) transitions.\n */\n isAmbiguous(\n inputDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (inputDate == null || typeof Intl === \"undefined\") {\n return false;\n }\n\n const dateTime = this.toDate(inputDate, inputFormat);\n if (!isValid(dateTime)) {\n return false;\n }\n\n const t = [60, -60, 30, -30];\n const a = t.map((x) => {\n const newDate = add(dateTime, { minutes: x });\n return format(newDate, \"HH:mm\");\n });\n const time = format(dateTime, \"HH:mm\");\n return a.indexOf(time) > -1;\n }\n\n //////////// CALCULATIONS\n\n /**\n * @private\n */\n _calculate(\n date: string | Date,\n calculationFn: Function,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n calculationFn(\n parsedDate,\n { [property]: value },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n /**\n */\n addSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n addMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n addHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n addDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"days\", amount, inputFormat);\n }\n\n /**\n */\n addWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n addMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"months\", amount, inputFormat);\n }\n\n /**\n */\n addYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"years\", amount, inputFormat);\n }\n\n /**\n */\n subtractSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n subtractMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n subtractHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n subtractDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"days\", amount, inputFormat);\n }\n\n /**\n */\n subtractWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n subtractMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"months\", amount, inputFormat);\n }\n\n /**\n */\n subtractYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"years\", amount, inputFormat);\n }\n\n //////////// GETTERS\n\n /**\n * @private\n */\n _get(\n date: string | Date,\n method: Function,\n inputFormat: string = this.getIsoFormat(),\n options: Object = {},\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n method(parsedDate, {\n in: this.getDateFnsContext(),\n ...options,\n }),\n );\n }\n\n /**\n */\n startOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, startOfMonth, inputFormat);\n }\n\n /**\n */\n endOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, endOfMonth, inputFormat);\n }\n\n /**\n */\n startOfWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n return this._get(date, startOfWeek, inputFormat, {\n weekStartsOn,\n });\n }\n\n /**\n */\n getHours(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getHours(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getMinutes(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getMinutes(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n const parsedDate = this.toDate(date, inputFormat);\n return getWeek(parsedDate, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n //////////// SETTERS\n\n /**\n * @private\n */\n _set(\n date: string | Date,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { [property]: value },\n // {\n // in: this.getDateFnsContext(),\n // },\n ),\n );\n }\n\n /**\n */\n setYear(\n date: string | Date,\n year: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"year\", year, inputFormat);\n }\n\n /**\n */\n setMonth(\n date: string | Date,\n month: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"month\", month, inputFormat);\n }\n\n /**\n */\n setDay(\n date: string | Date,\n day: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"date\", day, inputFormat);\n }\n\n /**\n */\n setHour(\n date: string | Date,\n hour: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"hours\", hour, inputFormat);\n }\n\n /**\n */\n setMinute(\n date: string | Date,\n minute: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"minutes\", minute, inputFormat);\n }\n\n /**\n */\n setSecond(\n date: string | Date,\n second: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"seconds\", second, inputFormat);\n }\n\n /**\n */\n setMilliseconds(\n date: string | Date,\n millisecond: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"milliseconds\", millisecond, inputFormat);\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { hours, minutes, seconds, milliseconds },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n //////////// Timezone related\n\n /**\n */\n getTimeZone(): string {\n return this._timeZone;\n }\n\n /**\n */\n setTimeZone(timeZone: string) {\n this._timeZone = timeZone;\n }\n\n /**\n */\n getDateFnsContext(): null | Function {\n if (this.doOffsets && !IS_GRAALJS) {\n return tz(this.getTimeZone());\n }\n return undefined;\n }\n\n //////////// Offsets\n\n /**\n */\n getOffset(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): OffsetInfo | null {\n const parsedDate = this.toDate(date, inputFormat);\n if (isValid(parsedDate)) {\n const dateOffset = this.toFormat(parsedDate, DATETIME_OFFSET_FORMAT);\n const offsets = this.getTimezoneOffsets();\n if (\n typeof offsets.daylight !== \"undefined\" &&\n offsets.daylight.value === dateOffset\n ) {\n return offsets.daylight;\n } else if (\n typeof offsets.standard !== \"undefined\" &&\n offsets.standard.value === dateOffset\n ) {\n return offsets.standard;\n }\n }\n return null;\n }\n\n /**\n */\n getTimezoneOffsets(): {\n standard?: OffsetInfo,\n daylight?: OffsetInfo,\n } {\n const createOffsetObject = (info: OffsetInfoInput): OffsetInfo => {\n const sign = info.offset < 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(info.offset);\n const hours = Math.trunc(absOffset);\n const minutes = Math.round((absOffset % 1) * 60);\n\n const offsetString = `${sign}${String(hours + (minutes === 60 ? 1 : 0)).padStart(2, \"0\")}:${String(minutes % 60).padStart(2, \"0\")}`;\n\n return {\n label: info.name,\n abbr: info.abbr,\n value: offsetString,\n };\n };\n\n const timezone = soft(this.getTimeZone());\n\n if (timezone.length === 0) {\n return {\n standard: {\n label: \"Etc/UTC\",\n abbr: \"Etc/UTC\",\n value: \"+00:00\",\n },\n };\n }\n\n const { daylight, standard } = timezone[0];\n\n if (daylight) {\n return {\n daylight: createOffsetObject(daylight),\n standard: createOffsetObject(standard),\n };\n }\n\n return { standard: createOffsetObject(standard) };\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT,\n true,\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT,\n true,\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -113,5 +113,22 @@ describe("dateAttributeModel", () => {
|
|
|
113
113
|
|
|
114
114
|
expect(attribute.placeholder).toBe("");
|
|
115
115
|
});
|
|
116
|
+
|
|
117
|
+
it("can update typical date attribute", () => {
|
|
118
|
+
const attribute = new DatetimeAttributeModel(
|
|
119
|
+
{},
|
|
120
|
+
{
|
|
121
|
+
type: "date",
|
|
122
|
+
label: "Date of birth",
|
|
123
|
+
mandatory: false,
|
|
124
|
+
formatlabel: "dd-mm-jjjj",
|
|
125
|
+
format: "dd-MM-yyyy",
|
|
126
|
+
},
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
attribute.update("13-12-1819");
|
|
130
|
+
|
|
131
|
+
expect(attribute.isValid).toBe(true);
|
|
132
|
+
});
|
|
116
133
|
});
|
|
117
134
|
});
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.TimestampUtil = exports.TimeUtil = exports.DateUtil = exports.DateTimeUtil = void 0;
|
|
8
|
-
var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
|
|
9
8
|
var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
|
|
10
9
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
11
10
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
@@ -23,9 +22,19 @@ var _Cookies = require("../browser/Cookies");
|
|
|
23
22
|
*/
|
|
24
23
|
class BaseDateTimeUtil {
|
|
25
24
|
constructor(isoFormat) {
|
|
25
|
+
let doOffsets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
26
26
|
(0, _defineProperty2.default)(this, "_isoFormat", void 0);
|
|
27
|
+
(0, _defineProperty2.default)(this, "_doOffsets", void 0);
|
|
27
28
|
(0, _defineProperty2.default)(this, "_timeZone", typeof Intl === "undefined" ? "Etc/UTC" : Intl.DateTimeFormat().resolvedOptions().timeZone || "Etc/UTC");
|
|
28
29
|
this._isoFormat = isoFormat;
|
|
30
|
+
this._doOffsets = doOffsets;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Indicates if offsets and timezones are relevant
|
|
35
|
+
*/
|
|
36
|
+
get doOffsets() {
|
|
37
|
+
return this._doOffsets ? (0, _constants.isIncludeTimeOffsetInDateTimes)() : false;
|
|
29
38
|
}
|
|
30
39
|
|
|
31
40
|
/**
|
|
@@ -46,8 +55,7 @@ class BaseDateTimeUtil {
|
|
|
46
55
|
/**
|
|
47
56
|
*/
|
|
48
57
|
getIsoFormat() {
|
|
49
|
-
|
|
50
|
-
if ((0, _constants.isIncludeTimeOffsetInDateTimes)() && (0, _startsWith.default)(_context = this._isoFormat).call(_context, _constants.ISO_DATETIME_FORMAT)) {
|
|
58
|
+
if (this.doOffsets) {
|
|
51
59
|
return this._isoFormat + _constants.DATETIME_OFFSET_FORMAT;
|
|
52
60
|
}
|
|
53
61
|
return this._isoFormat;
|
|
@@ -56,7 +64,7 @@ class BaseDateTimeUtil {
|
|
|
56
64
|
/**
|
|
57
65
|
*/
|
|
58
66
|
convertFormat(javaFormat) {
|
|
59
|
-
var
|
|
67
|
+
var _context;
|
|
60
68
|
if (!javaFormat) {
|
|
61
69
|
return this.getIsoFormat();
|
|
62
70
|
}
|
|
@@ -70,7 +78,7 @@ class BaseDateTimeUtil {
|
|
|
70
78
|
let uts35Format = javaFormat;
|
|
71
79
|
|
|
72
80
|
// Sort keys by length (descending) to handle multi-character tokens first
|
|
73
|
-
const sortedKeys = (0, _sort.default)(
|
|
81
|
+
const sortedKeys = (0, _sort.default)(_context = (0, _keys.default)(javaToUTS35Map)).call(_context, (a, b) => b.length - a.length);
|
|
74
82
|
for (const javaToken of sortedKeys) {
|
|
75
83
|
const uts35Token = javaToUTS35Map[javaToken];
|
|
76
84
|
const regex = new RegExp(javaToken, "g"); // Match all occurrences
|
|
@@ -109,12 +117,12 @@ class BaseDateTimeUtil {
|
|
|
109
117
|
|
|
110
118
|
/**
|
|
111
119
|
*/
|
|
112
|
-
toFormat(
|
|
120
|
+
toFormat(date, targetFormat) {
|
|
113
121
|
let inputFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.getIsoFormat();
|
|
114
122
|
const {
|
|
115
123
|
weekStartsOn
|
|
116
124
|
} = this.getOptions();
|
|
117
|
-
const parsedDate = this.toDate(
|
|
125
|
+
const parsedDate = this.toDate(date, inputFormat);
|
|
118
126
|
if ((0, _dateFns.isValid)(parsedDate)) {
|
|
119
127
|
return (0, _dateFns.format)(parsedDate, targetFormat, {
|
|
120
128
|
in: this.getDateFnsContext(),
|
|
@@ -143,11 +151,12 @@ class BaseDateTimeUtil {
|
|
|
143
151
|
/**
|
|
144
152
|
*/
|
|
145
153
|
hasFormat(date, sourceFormat) {
|
|
146
|
-
const
|
|
154
|
+
const parsedDate = this.toDate(date, sourceFormat);
|
|
155
|
+
const formattedValue = this.toFormat(parsedDate, sourceFormat);
|
|
147
156
|
if (formattedValue === "Invalid Date") {
|
|
148
157
|
return false;
|
|
149
158
|
}
|
|
150
|
-
const isOutsideRange = (0, _dateFns.isBefore)(
|
|
159
|
+
const isOutsideRange = (0, _dateFns.isBefore)(parsedDate, new Date(1000, 1, 1)) || (0, _dateFns.isAfter)(parsedDate, new Date(9999, 11, 31));
|
|
151
160
|
if (isOutsideRange) {
|
|
152
161
|
return false;
|
|
153
162
|
}
|
|
@@ -535,10 +544,10 @@ class BaseDateTimeUtil {
|
|
|
535
544
|
/**
|
|
536
545
|
*/
|
|
537
546
|
getDateFnsContext() {
|
|
538
|
-
if (_constants.IS_GRAALJS) {
|
|
539
|
-
return
|
|
547
|
+
if (this.doOffsets && !_constants.IS_GRAALJS) {
|
|
548
|
+
return (0, _tz.tz)(this.getTimeZone());
|
|
540
549
|
}
|
|
541
|
-
return
|
|
550
|
+
return undefined;
|
|
542
551
|
}
|
|
543
552
|
|
|
544
553
|
//////////// Offsets
|
|
@@ -564,12 +573,12 @@ class BaseDateTimeUtil {
|
|
|
564
573
|
*/
|
|
565
574
|
getTimezoneOffsets() {
|
|
566
575
|
const createOffsetObject = info => {
|
|
567
|
-
var
|
|
576
|
+
var _context2, _context3;
|
|
568
577
|
const sign = info.offset < 0 ? "-" : "+";
|
|
569
578
|
const absOffset = Math.abs(info.offset);
|
|
570
579
|
const hours = (0, _trunc.default)(absOffset);
|
|
571
580
|
const minutes = Math.round(absOffset % 1 * 60);
|
|
572
|
-
const offsetString = `${sign}${(0, _padStart.default)(
|
|
581
|
+
const offsetString = `${sign}${(0, _padStart.default)(_context2 = String(hours + (minutes === 60 ? 1 : 0))).call(_context2, 2, "0")}:${(0, _padStart.default)(_context3 = String(minutes % 60)).call(_context3, 2, "0")}`;
|
|
573
582
|
return {
|
|
574
583
|
label: info.name,
|
|
575
584
|
abbr: info.abbr,
|
|
@@ -610,7 +619,7 @@ const DateUtil = exports.DateUtil = new BaseDateTimeUtil(_constants.ISO_DATE_FOR
|
|
|
610
619
|
/**
|
|
611
620
|
* DateTimeUtil
|
|
612
621
|
*/
|
|
613
|
-
const DateTimeUtil = exports.DateTimeUtil = new BaseDateTimeUtil(_constants.ISO_DATETIME_FORMAT);
|
|
622
|
+
const DateTimeUtil = exports.DateTimeUtil = new BaseDateTimeUtil(_constants.ISO_DATETIME_FORMAT, true);
|
|
614
623
|
|
|
615
624
|
/**
|
|
616
625
|
* TimeUtil
|
|
@@ -620,5 +629,5 @@ const TimeUtil = exports.TimeUtil = new BaseDateTimeUtil(_constants.ISO_TIME_FOR
|
|
|
620
629
|
/**
|
|
621
630
|
* TimestampUtil
|
|
622
631
|
*/
|
|
623
|
-
const TimestampUtil = exports.TimestampUtil = new BaseDateTimeUtil(_constants.ISO_TIMESTAMP_FORMAT);
|
|
632
|
+
const TimestampUtil = exports.TimestampUtil = new BaseDateTimeUtil(_constants.ISO_TIMESTAMP_FORMAT, true);
|
|
624
633
|
//# sourceMappingURL=DateTimeUtil.js.map
|
|
@@ -54,13 +54,23 @@ export type OffsetInfo = {
|
|
|
54
54
|
*/
|
|
55
55
|
class BaseDateTimeUtil {
|
|
56
56
|
_isoFormat: string;
|
|
57
|
+
_doOffsets: boolean;
|
|
58
|
+
|
|
57
59
|
_timeZone: string =
|
|
58
60
|
typeof Intl === "undefined"
|
|
59
61
|
? "Etc/UTC"
|
|
60
62
|
: Intl.DateTimeFormat().resolvedOptions().timeZone || "Etc/UTC";
|
|
61
63
|
|
|
62
|
-
constructor(isoFormat: string) {
|
|
64
|
+
constructor(isoFormat: string, doOffsets: boolean = false) {
|
|
63
65
|
this._isoFormat = isoFormat;
|
|
66
|
+
this._doOffsets = doOffsets;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Indicates if offsets and timezones are relevant
|
|
71
|
+
*/
|
|
72
|
+
get doOffsets(): boolean {
|
|
73
|
+
return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
/**
|
|
@@ -88,10 +98,7 @@ class BaseDateTimeUtil {
|
|
|
88
98
|
/**
|
|
89
99
|
*/
|
|
90
100
|
getIsoFormat(): string {
|
|
91
|
-
if (
|
|
92
|
-
isIncludeTimeOffsetInDateTimes() &&
|
|
93
|
-
this._isoFormat.startsWith(ISO_DATETIME_FORMAT)
|
|
94
|
-
) {
|
|
101
|
+
if (this.doOffsets) {
|
|
95
102
|
return this._isoFormat + DATETIME_OFFSET_FORMAT;
|
|
96
103
|
}
|
|
97
104
|
return this._isoFormat;
|
|
@@ -158,13 +165,13 @@ class BaseDateTimeUtil {
|
|
|
158
165
|
/**
|
|
159
166
|
*/
|
|
160
167
|
toFormat(
|
|
161
|
-
|
|
168
|
+
date: string | Date,
|
|
162
169
|
targetFormat: string,
|
|
163
170
|
inputFormat: string = this.getIsoFormat(),
|
|
164
171
|
): string {
|
|
165
172
|
const { weekStartsOn } = this.getOptions();
|
|
166
173
|
|
|
167
|
-
const parsedDate = this.toDate(
|
|
174
|
+
const parsedDate = this.toDate(date, inputFormat);
|
|
168
175
|
|
|
169
176
|
if (isValid(parsedDate)) {
|
|
170
177
|
return format(parsedDate, targetFormat, {
|
|
@@ -197,14 +204,16 @@ class BaseDateTimeUtil {
|
|
|
197
204
|
/**
|
|
198
205
|
*/
|
|
199
206
|
hasFormat(date: string, sourceFormat: string): boolean {
|
|
200
|
-
const
|
|
207
|
+
const parsedDate = this.toDate(date, sourceFormat);
|
|
208
|
+
|
|
209
|
+
const formattedValue = this.toFormat(parsedDate, sourceFormat);
|
|
201
210
|
if (formattedValue === "Invalid Date") {
|
|
202
211
|
return false;
|
|
203
212
|
}
|
|
204
213
|
|
|
205
214
|
const isOutsideRange =
|
|
206
|
-
isBefore(
|
|
207
|
-
isAfter(
|
|
215
|
+
isBefore(parsedDate, new Date(1000, 1, 1)) ||
|
|
216
|
+
isAfter(parsedDate, new Date(9999, 11, 31));
|
|
208
217
|
if (isOutsideRange) {
|
|
209
218
|
return false;
|
|
210
219
|
}
|
|
@@ -740,10 +749,10 @@ class BaseDateTimeUtil {
|
|
|
740
749
|
/**
|
|
741
750
|
*/
|
|
742
751
|
getDateFnsContext(): null | Function {
|
|
743
|
-
if (IS_GRAALJS) {
|
|
744
|
-
return
|
|
752
|
+
if (this.doOffsets && !IS_GRAALJS) {
|
|
753
|
+
return tz(this.getTimeZone());
|
|
745
754
|
}
|
|
746
|
-
return
|
|
755
|
+
return undefined;
|
|
747
756
|
}
|
|
748
757
|
|
|
749
758
|
//////////// Offsets
|
|
@@ -829,6 +838,7 @@ const DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);
|
|
|
829
838
|
*/
|
|
830
839
|
const DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(
|
|
831
840
|
ISO_DATETIME_FORMAT,
|
|
841
|
+
true,
|
|
832
842
|
);
|
|
833
843
|
|
|
834
844
|
/**
|
|
@@ -841,6 +851,7 @@ const TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);
|
|
|
841
851
|
*/
|
|
842
852
|
const TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(
|
|
843
853
|
ISO_TIMESTAMP_FORMAT,
|
|
854
|
+
true,
|
|
844
855
|
);
|
|
845
856
|
|
|
846
857
|
export { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeUtil.js","names":["_dateFns","require","_locale","_tz","_timezoneSoft","_interopRequireDefault","_constants","_Cookies","BaseDateTimeUtil","constructor","isoFormat","_defineProperty2","default","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","getOptions","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","getIsoFormat","_context","isIncludeTimeOffsetInDateTimes","_startsWith","call","ISO_DATETIME_FORMAT","DATETIME_OFFSET_FORMAT","convertFormat","javaFormat","_context2","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sort","_keys","a","b","length","javaToken","uts35Token","regex","RegExp","replace","getLocale","locale","getCookie","nl","enGB","toDate","date","inputFormat","arguments","undefined","Date","parse","in","getDateFnsContext","toFormat","isoDate","targetFormat","parsedDate","isValid","format","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","isBefore","isAfter","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isSameDay","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","isAmbiguous","dateTime","t","_map","x","newDate","add","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","sub","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","_set","set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","IS_GRAALJS","tz","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context3","_context4","sign","offset","absOffset","Math","abs","_trunc","round","offsetString","_padStart","String","label","name","abbr","timezone","soft","DateUtil","exports","ISO_DATE_FORMAT","DateTimeUtil","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parse,\n add,\n sub,\n set,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n} from \"date-fns\";\nimport { enGB, nl } from \"date-fns/locale\";\nimport { tz } from \"@date-fns/tz\";\n\nimport soft from \"timezone-soft\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n DEFAULT_WEEK_STARTS_ON,\n getSetting,\n IS_GRAALJS,\n isIncludeTimeOffsetInDateTimes,\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n} from \"../../constants\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\ntype OffsetInfoInput = {\n abbr: string,\n offset: number,\n name: string,\n};\n\nexport type OffsetInfo = {\n abbr: string,\n label: string,\n value: string,\n};\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\n }\n\n /**\n * Returns the options defined in settings\n */\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON,\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n getIsoFormat(): string {\n if (\n isIncludeTimeOffsetInDateTimes() &&\n this._isoFormat.startsWith(ISO_DATETIME_FORMAT)\n ) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(javaFormat: string): string {\n if (!javaFormat) {\n return this.getIsoFormat();\n }\n\n const javaToUTS35Map = {\n ZZZ: \"xxx\",\n ZZ: \"xx\",\n Z: \"x\",\n };\n\n // Replace Java pattern tokens with UTS #35 tokens\n let uts35Format = javaFormat;\n\n // Sort keys by length (descending) to handle multi-character tokens first\n const sortedKeys = Object.keys(javaToUTS35Map).sort(\n (a, b) => b.length - a.length,\n );\n\n for (const javaToken of sortedKeys) {\n const uts35Token = javaToUTS35Map[javaToken];\n const regex = new RegExp(javaToken, \"g\"); // Match all occurrences\n uts35Format = uts35Format.replace(regex, uts35Token);\n }\n\n return uts35Format;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const locale = getCookie(\"locale\") ?? \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n /**\n */\n toDate(date: string | Date, inputFormat: string = this.getIsoFormat()): Date {\n if (date instanceof Date) {\n return date;\n }\n\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(\n isoDate: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(isoDate, inputFormat);\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(\n date: string | Date,\n sourceFormat: string = this.getIsoFormat(),\n ): string {\n return this.toFormat(date, this.getIsoFormat(), sourceFormat);\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n //////////// VALIDATION\n\n /**\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const formattedValue = this.toFormat(date, sourceFormat, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(formattedValue, new Date(1000, 1, 1)) ||\n isAfter(formattedValue, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n /**\n */\n isValid(\n date: string | Date | null | void,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (!date) {\n return false;\n }\n\n const parsedDate = this.toDate(date, inputFormat);\n return isValid(parsedDate);\n }\n\n /**\n */\n isAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string | Date,\n compareDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat),\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string | Date): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * Checks if a given local date and time is ambiguous in the specified timezone.\n * Ambiguity happens during the end of daylight saving time (DST) transitions.\n */\n isAmbiguous(\n inputDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (inputDate == null || typeof Intl === \"undefined\") {\n return false;\n }\n\n const dateTime = this.toDate(inputDate, inputFormat);\n if (!isValid(dateTime)) {\n return false;\n }\n\n const t = [60, -60, 30, -30];\n const a = t.map((x) => {\n const newDate = add(dateTime, { minutes: x });\n return format(newDate, \"HH:mm\");\n });\n const time = format(dateTime, \"HH:mm\");\n return a.indexOf(time) > -1;\n }\n\n //////////// CALCULATIONS\n\n /**\n * @private\n */\n _calculate(\n date: string | Date,\n calculationFn: Function,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n calculationFn(\n parsedDate,\n { [property]: value },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n /**\n */\n addSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n addMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n addHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n addDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"days\", amount, inputFormat);\n }\n\n /**\n */\n addWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n addMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"months\", amount, inputFormat);\n }\n\n /**\n */\n addYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"years\", amount, inputFormat);\n }\n\n /**\n */\n subtractSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n subtractMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n subtractHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n subtractDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"days\", amount, inputFormat);\n }\n\n /**\n */\n subtractWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n subtractMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"months\", amount, inputFormat);\n }\n\n /**\n */\n subtractYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"years\", amount, inputFormat);\n }\n\n //////////// GETTERS\n\n /**\n * @private\n */\n _get(\n date: string | Date,\n method: Function,\n inputFormat: string = this.getIsoFormat(),\n options: Object = {},\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n method(parsedDate, {\n in: this.getDateFnsContext(),\n ...options,\n }),\n );\n }\n\n /**\n */\n startOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, startOfMonth, inputFormat);\n }\n\n /**\n */\n endOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, endOfMonth, inputFormat);\n }\n\n /**\n */\n startOfWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n return this._get(date, startOfWeek, inputFormat, {\n weekStartsOn,\n });\n }\n\n /**\n */\n getHours(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getHours(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getMinutes(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getMinutes(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n const parsedDate = this.toDate(date, inputFormat);\n return getWeek(parsedDate, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n //////////// SETTERS\n\n /**\n * @private\n */\n _set(\n date: string | Date,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { [property]: value },\n // {\n // in: this.getDateFnsContext(),\n // },\n ),\n );\n }\n\n /**\n */\n setYear(\n date: string | Date,\n year: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"year\", year, inputFormat);\n }\n\n /**\n */\n setMonth(\n date: string | Date,\n month: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"month\", month, inputFormat);\n }\n\n /**\n */\n setDay(\n date: string | Date,\n day: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"date\", day, inputFormat);\n }\n\n /**\n */\n setHour(\n date: string | Date,\n hour: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"hours\", hour, inputFormat);\n }\n\n /**\n */\n setMinute(\n date: string | Date,\n minute: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"minutes\", minute, inputFormat);\n }\n\n /**\n */\n setSecond(\n date: string | Date,\n second: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"seconds\", second, inputFormat);\n }\n\n /**\n */\n setMilliseconds(\n date: string | Date,\n millisecond: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"milliseconds\", millisecond, inputFormat);\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { hours, minutes, seconds, milliseconds },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n //////////// Timezone related\n\n /**\n */\n getTimeZone(): string {\n return this._timeZone;\n }\n\n /**\n */\n setTimeZone(timeZone: string) {\n this._timeZone = timeZone;\n }\n\n /**\n */\n getDateFnsContext(): null | Function {\n if (IS_GRAALJS) {\n return null; // tz method does not work in graal (yet)\n }\n return tz(this.getTimeZone());\n }\n\n //////////// Offsets\n\n /**\n */\n getOffset(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): OffsetInfo | null {\n const parsedDate = this.toDate(date, inputFormat);\n if (isValid(parsedDate)) {\n const dateOffset = this.toFormat(parsedDate, DATETIME_OFFSET_FORMAT);\n const offsets = this.getTimezoneOffsets();\n if (\n typeof offsets.daylight !== \"undefined\" &&\n offsets.daylight.value === dateOffset\n ) {\n return offsets.daylight;\n } else if (\n typeof offsets.standard !== \"undefined\" &&\n offsets.standard.value === dateOffset\n ) {\n return offsets.standard;\n }\n }\n return null;\n }\n\n /**\n */\n getTimezoneOffsets(): {\n standard?: OffsetInfo,\n daylight?: OffsetInfo,\n } {\n const createOffsetObject = (info: OffsetInfoInput): OffsetInfo => {\n const sign = info.offset < 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(info.offset);\n const hours = Math.trunc(absOffset);\n const minutes = Math.round((absOffset % 1) * 60);\n\n const offsetString = `${sign}${String(hours + (minutes === 60 ? 1 : 0)).padStart(2, \"0\")}:${String(minutes % 60).padStart(2, \"0\")}`;\n\n return {\n label: info.name,\n abbr: info.abbr,\n value: offsetString,\n };\n };\n\n const timezone = soft(this.getTimeZone());\n\n if (timezone.length === 0) {\n return {\n standard: {\n label: \"Etc/UTC\",\n abbr: \"Etc/UTC\",\n value: \"+00:00\",\n },\n };\n }\n\n const { daylight, standard } = timezone[0];\n\n if (daylight) {\n return {\n daylight: createOffsetObject(daylight),\n standard: createOffsetObject(standard),\n };\n }\n\n return { standard: createOffsetObject(standard) };\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT,\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT,\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DateTimeUtil.js","names":["_dateFns","require","_locale","_tz","_timezoneSoft","_interopRequireDefault","_constants","_Cookies","BaseDateTimeUtil","constructor","isoFormat","doOffsets","arguments","length","undefined","_defineProperty2","default","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","_doOffsets","isIncludeTimeOffsetInDateTimes","getOptions","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","getIsoFormat","DATETIME_OFFSET_FORMAT","convertFormat","javaFormat","_context","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sort","_keys","call","a","b","javaToken","uts35Token","regex","RegExp","replace","getLocale","locale","getCookie","nl","enGB","toDate","date","inputFormat","Date","parse","in","getDateFnsContext","toFormat","targetFormat","parsedDate","isValid","format","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","isBefore","isAfter","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isSameDay","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","isAmbiguous","dateTime","t","_map","x","newDate","add","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","sub","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","_set","set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","IS_GRAALJS","tz","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_trunc","round","offsetString","_padStart","String","label","name","abbr","timezone","soft","DateUtil","exports","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parse,\n add,\n sub,\n set,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n} from \"date-fns\";\nimport { enGB, nl } from \"date-fns/locale\";\nimport { tz } from \"@date-fns/tz\";\n\nimport soft from \"timezone-soft\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n DEFAULT_WEEK_STARTS_ON,\n getSetting,\n IS_GRAALJS,\n isIncludeTimeOffsetInDateTimes,\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n} from \"../../constants\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\ntype OffsetInfoInput = {\n abbr: string,\n offset: number,\n name: string,\n};\n\nexport type OffsetInfo = {\n abbr: string,\n label: string,\n value: string,\n};\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n _doOffsets: boolean;\n\n _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string, doOffsets: boolean = false) {\n this._isoFormat = isoFormat;\n this._doOffsets = doOffsets;\n }\n\n /**\n * Indicates if offsets and timezones are relevant\n */\n get doOffsets(): boolean {\n return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;\n }\n\n /**\n * Returns the options defined in settings\n */\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON,\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n getIsoFormat(): string {\n if (this.doOffsets) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(javaFormat: string): string {\n if (!javaFormat) {\n return this.getIsoFormat();\n }\n\n const javaToUTS35Map = {\n ZZZ: \"xxx\",\n ZZ: \"xx\",\n Z: \"x\",\n };\n\n // Replace Java pattern tokens with UTS #35 tokens\n let uts35Format = javaFormat;\n\n // Sort keys by length (descending) to handle multi-character tokens first\n const sortedKeys = Object.keys(javaToUTS35Map).sort(\n (a, b) => b.length - a.length,\n );\n\n for (const javaToken of sortedKeys) {\n const uts35Token = javaToUTS35Map[javaToken];\n const regex = new RegExp(javaToken, \"g\"); // Match all occurrences\n uts35Format = uts35Format.replace(regex, uts35Token);\n }\n\n return uts35Format;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const locale = getCookie(\"locale\") ?? \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n /**\n */\n toDate(date: string | Date, inputFormat: string = this.getIsoFormat()): Date {\n if (date instanceof Date) {\n return date;\n }\n\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(\n date: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(date, inputFormat);\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(\n date: string | Date,\n sourceFormat: string = this.getIsoFormat(),\n ): string {\n return this.toFormat(date, this.getIsoFormat(), sourceFormat);\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n //////////// VALIDATION\n\n /**\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const parsedDate = this.toDate(date, sourceFormat);\n\n const formattedValue = this.toFormat(parsedDate, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(parsedDate, new Date(1000, 1, 1)) ||\n isAfter(parsedDate, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n /**\n */\n isValid(\n date: string | Date | null | void,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (!date) {\n return false;\n }\n\n const parsedDate = this.toDate(date, inputFormat);\n return isValid(parsedDate);\n }\n\n /**\n */\n isAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string | Date,\n compareDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat),\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string | Date): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * Checks if a given local date and time is ambiguous in the specified timezone.\n * Ambiguity happens during the end of daylight saving time (DST) transitions.\n */\n isAmbiguous(\n inputDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (inputDate == null || typeof Intl === \"undefined\") {\n return false;\n }\n\n const dateTime = this.toDate(inputDate, inputFormat);\n if (!isValid(dateTime)) {\n return false;\n }\n\n const t = [60, -60, 30, -30];\n const a = t.map((x) => {\n const newDate = add(dateTime, { minutes: x });\n return format(newDate, \"HH:mm\");\n });\n const time = format(dateTime, \"HH:mm\");\n return a.indexOf(time) > -1;\n }\n\n //////////// CALCULATIONS\n\n /**\n * @private\n */\n _calculate(\n date: string | Date,\n calculationFn: Function,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n calculationFn(\n parsedDate,\n { [property]: value },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n /**\n */\n addSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n addMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n addHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n addDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"days\", amount, inputFormat);\n }\n\n /**\n */\n addWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n addMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"months\", amount, inputFormat);\n }\n\n /**\n */\n addYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"years\", amount, inputFormat);\n }\n\n /**\n */\n subtractSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n subtractMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n subtractHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n subtractDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"days\", amount, inputFormat);\n }\n\n /**\n */\n subtractWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n subtractMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"months\", amount, inputFormat);\n }\n\n /**\n */\n subtractYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"years\", amount, inputFormat);\n }\n\n //////////// GETTERS\n\n /**\n * @private\n */\n _get(\n date: string | Date,\n method: Function,\n inputFormat: string = this.getIsoFormat(),\n options: Object = {},\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n method(parsedDate, {\n in: this.getDateFnsContext(),\n ...options,\n }),\n );\n }\n\n /**\n */\n startOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, startOfMonth, inputFormat);\n }\n\n /**\n */\n endOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, endOfMonth, inputFormat);\n }\n\n /**\n */\n startOfWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n return this._get(date, startOfWeek, inputFormat, {\n weekStartsOn,\n });\n }\n\n /**\n */\n getHours(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getHours(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getMinutes(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getMinutes(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n const parsedDate = this.toDate(date, inputFormat);\n return getWeek(parsedDate, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n //////////// SETTERS\n\n /**\n * @private\n */\n _set(\n date: string | Date,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { [property]: value },\n // {\n // in: this.getDateFnsContext(),\n // },\n ),\n );\n }\n\n /**\n */\n setYear(\n date: string | Date,\n year: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"year\", year, inputFormat);\n }\n\n /**\n */\n setMonth(\n date: string | Date,\n month: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"month\", month, inputFormat);\n }\n\n /**\n */\n setDay(\n date: string | Date,\n day: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"date\", day, inputFormat);\n }\n\n /**\n */\n setHour(\n date: string | Date,\n hour: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"hours\", hour, inputFormat);\n }\n\n /**\n */\n setMinute(\n date: string | Date,\n minute: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"minutes\", minute, inputFormat);\n }\n\n /**\n */\n setSecond(\n date: string | Date,\n second: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"seconds\", second, inputFormat);\n }\n\n /**\n */\n setMilliseconds(\n date: string | Date,\n millisecond: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"milliseconds\", millisecond, inputFormat);\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { hours, minutes, seconds, milliseconds },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n //////////// Timezone related\n\n /**\n */\n getTimeZone(): string {\n return this._timeZone;\n }\n\n /**\n */\n setTimeZone(timeZone: string) {\n this._timeZone = timeZone;\n }\n\n /**\n */\n getDateFnsContext(): null | Function {\n if (this.doOffsets && !IS_GRAALJS) {\n return tz(this.getTimeZone());\n }\n return undefined;\n }\n\n //////////// Offsets\n\n /**\n */\n getOffset(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): OffsetInfo | null {\n const parsedDate = this.toDate(date, inputFormat);\n if (isValid(parsedDate)) {\n const dateOffset = this.toFormat(parsedDate, DATETIME_OFFSET_FORMAT);\n const offsets = this.getTimezoneOffsets();\n if (\n typeof offsets.daylight !== \"undefined\" &&\n offsets.daylight.value === dateOffset\n ) {\n return offsets.daylight;\n } else if (\n typeof offsets.standard !== \"undefined\" &&\n offsets.standard.value === dateOffset\n ) {\n return offsets.standard;\n }\n }\n return null;\n }\n\n /**\n */\n getTimezoneOffsets(): {\n standard?: OffsetInfo,\n daylight?: OffsetInfo,\n } {\n const createOffsetObject = (info: OffsetInfoInput): OffsetInfo => {\n const sign = info.offset < 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(info.offset);\n const hours = Math.trunc(absOffset);\n const minutes = Math.round((absOffset % 1) * 60);\n\n const offsetString = `${sign}${String(hours + (minutes === 60 ? 1 : 0)).padStart(2, \"0\")}:${String(minutes % 60).padStart(2, \"0\")}`;\n\n return {\n label: info.name,\n abbr: info.abbr,\n value: offsetString,\n };\n };\n\n const timezone = soft(this.getTimeZone());\n\n if (timezone.length === 0) {\n return {\n standard: {\n label: \"Etc/UTC\",\n abbr: \"Etc/UTC\",\n value: \"+00:00\",\n },\n };\n }\n\n const { daylight, standard } = timezone[0];\n\n if (daylight) {\n return {\n daylight: createOffsetObject(daylight),\n standard: createOffsetObject(standard),\n };\n }\n\n return { standard: createOffsetObject(standard) };\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT,\n true,\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT,\n true,\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -113,5 +113,22 @@ describe("dateAttributeModel", () => {
|
|
|
113
113
|
|
|
114
114
|
expect(attribute.placeholder).toBe("");
|
|
115
115
|
});
|
|
116
|
+
|
|
117
|
+
it("can update typical date attribute", () => {
|
|
118
|
+
const attribute = new DatetimeAttributeModel(
|
|
119
|
+
{},
|
|
120
|
+
{
|
|
121
|
+
type: "date",
|
|
122
|
+
label: "Date of birth",
|
|
123
|
+
mandatory: false,
|
|
124
|
+
formatlabel: "dd-mm-jjjj",
|
|
125
|
+
format: "dd-MM-yyyy",
|
|
126
|
+
},
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
attribute.update("13-12-1819");
|
|
130
|
+
|
|
131
|
+
expect(attribute.isValid).toBe(true);
|
|
132
|
+
});
|
|
116
133
|
});
|
|
117
134
|
});
|
|
@@ -54,13 +54,23 @@ export type OffsetInfo = {
|
|
|
54
54
|
*/
|
|
55
55
|
class BaseDateTimeUtil {
|
|
56
56
|
_isoFormat: string;
|
|
57
|
+
_doOffsets: boolean;
|
|
58
|
+
|
|
57
59
|
_timeZone: string =
|
|
58
60
|
typeof Intl === "undefined"
|
|
59
61
|
? "Etc/UTC"
|
|
60
62
|
: Intl.DateTimeFormat().resolvedOptions().timeZone || "Etc/UTC";
|
|
61
63
|
|
|
62
|
-
constructor(isoFormat: string) {
|
|
64
|
+
constructor(isoFormat: string, doOffsets: boolean = false) {
|
|
63
65
|
this._isoFormat = isoFormat;
|
|
66
|
+
this._doOffsets = doOffsets;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Indicates if offsets and timezones are relevant
|
|
71
|
+
*/
|
|
72
|
+
get doOffsets(): boolean {
|
|
73
|
+
return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
/**
|
|
@@ -88,10 +98,7 @@ class BaseDateTimeUtil {
|
|
|
88
98
|
/**
|
|
89
99
|
*/
|
|
90
100
|
getIsoFormat(): string {
|
|
91
|
-
if (
|
|
92
|
-
isIncludeTimeOffsetInDateTimes() &&
|
|
93
|
-
this._isoFormat.startsWith(ISO_DATETIME_FORMAT)
|
|
94
|
-
) {
|
|
101
|
+
if (this.doOffsets) {
|
|
95
102
|
return this._isoFormat + DATETIME_OFFSET_FORMAT;
|
|
96
103
|
}
|
|
97
104
|
return this._isoFormat;
|
|
@@ -158,13 +165,13 @@ class BaseDateTimeUtil {
|
|
|
158
165
|
/**
|
|
159
166
|
*/
|
|
160
167
|
toFormat(
|
|
161
|
-
|
|
168
|
+
date: string | Date,
|
|
162
169
|
targetFormat: string,
|
|
163
170
|
inputFormat: string = this.getIsoFormat(),
|
|
164
171
|
): string {
|
|
165
172
|
const { weekStartsOn } = this.getOptions();
|
|
166
173
|
|
|
167
|
-
const parsedDate = this.toDate(
|
|
174
|
+
const parsedDate = this.toDate(date, inputFormat);
|
|
168
175
|
|
|
169
176
|
if (isValid(parsedDate)) {
|
|
170
177
|
return format(parsedDate, targetFormat, {
|
|
@@ -197,14 +204,16 @@ class BaseDateTimeUtil {
|
|
|
197
204
|
/**
|
|
198
205
|
*/
|
|
199
206
|
hasFormat(date: string, sourceFormat: string): boolean {
|
|
200
|
-
const
|
|
207
|
+
const parsedDate = this.toDate(date, sourceFormat);
|
|
208
|
+
|
|
209
|
+
const formattedValue = this.toFormat(parsedDate, sourceFormat);
|
|
201
210
|
if (formattedValue === "Invalid Date") {
|
|
202
211
|
return false;
|
|
203
212
|
}
|
|
204
213
|
|
|
205
214
|
const isOutsideRange =
|
|
206
|
-
isBefore(
|
|
207
|
-
isAfter(
|
|
215
|
+
isBefore(parsedDate, new Date(1000, 1, 1)) ||
|
|
216
|
+
isAfter(parsedDate, new Date(9999, 11, 31));
|
|
208
217
|
if (isOutsideRange) {
|
|
209
218
|
return false;
|
|
210
219
|
}
|
|
@@ -740,10 +749,10 @@ class BaseDateTimeUtil {
|
|
|
740
749
|
/**
|
|
741
750
|
*/
|
|
742
751
|
getDateFnsContext(): null | Function {
|
|
743
|
-
if (IS_GRAALJS) {
|
|
744
|
-
return
|
|
752
|
+
if (this.doOffsets && !IS_GRAALJS) {
|
|
753
|
+
return tz(this.getTimeZone());
|
|
745
754
|
}
|
|
746
|
-
return
|
|
755
|
+
return undefined;
|
|
747
756
|
}
|
|
748
757
|
|
|
749
758
|
//////////// Offsets
|
|
@@ -829,6 +838,7 @@ const DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);
|
|
|
829
838
|
*/
|
|
830
839
|
const DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(
|
|
831
840
|
ISO_DATETIME_FORMAT,
|
|
841
|
+
true,
|
|
832
842
|
);
|
|
833
843
|
|
|
834
844
|
/**
|
|
@@ -841,6 +851,7 @@ const TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);
|
|
|
841
851
|
*/
|
|
842
852
|
const TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(
|
|
843
853
|
ISO_TIMESTAMP_FORMAT,
|
|
854
|
+
true,
|
|
844
855
|
);
|
|
845
856
|
|
|
846
857
|
export { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };
|