@osovitny/anatoly 3.17.6 → 3.17.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
1
  export declare class DateConvert {
2
2
  static toDate(argument: Date | number | string): Date;
3
+ static utcToLocal(dirtyDate: any): Date;
3
4
  }
@@ -22,7 +22,7 @@ export declare class LocalizationService implements OnDestroy {
22
22
  getLocalizedDateTime(value: any): string;
23
23
  getUTCToLocalizedDate(value: any): string;
24
24
  getUTCToLocalizedDateTime(value: any): string;
25
- private safeUtcToZonedTime;
25
+ private safeUtcToLocal;
26
26
  getLocalizedDistanceInWords(endedDateStr: string, startedDateStr: string): string;
27
27
  getLocalizedDistanceToNowInWords(value: string): string;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<LocalizationService, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osovitny/anatoly",
3
- "version": "3.17.6",
3
+ "version": "3.17.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "17.1.2",
6
6
  "@angular/core": "17.1.2",
@@ -1,122 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 10 Feb 2024
12
-
13
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- import { tzTokenizeDate } from "./tzTokenizeDate";
17
- export function tzParseTimezone(timezoneString, date, isUtcDate) {
18
- var token;
19
- var absoluteOffset;
20
- // Empty string
21
- if (!timezoneString) {
22
- return 0;
23
- }
24
- // Z
25
- token = patterns.timezoneZ.exec(timezoneString);
26
- if (token) {
27
- return 0;
28
- }
29
- var hours;
30
- // ±hh
31
- token = patterns.timezoneHH.exec(timezoneString);
32
- if (token) {
33
- hours = parseInt(token[1], 10);
34
- if (!validateTimezone(hours)) {
35
- return NaN;
36
- }
37
- return -(hours * MILLISECONDS_IN_HOUR);
38
- }
39
- // ±hh:mm or ±hhmm
40
- token = patterns.timezoneHHMM.exec(timezoneString);
41
- if (token) {
42
- hours = parseInt(token[1], 10);
43
- var minutes = parseInt(token[2], 10);
44
- if (!validateTimezone(hours, minutes)) {
45
- return NaN;
46
- }
47
- absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;
48
- return hours > 0 ? -absoluteOffset : absoluteOffset;
49
- }
50
- // IANA time zone
51
- if (isValidTimezoneIANAString(timezoneString)) {
52
- date = new Date(date || Date.now());
53
- var utcDate = isUtcDate ? date : toUtcDate(date);
54
- var offset = calcOffset(utcDate, timezoneString);
55
- var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);
56
- return -fixedOffset;
57
- }
58
- return NaN;
59
- }
60
- var MILLISECONDS_IN_HOUR = 3600000;
61
- var MILLISECONDS_IN_MINUTE = 60000;
62
- var patterns = {
63
- timezone: /([Z+-].*)$/,
64
- timezoneZ: /^(Z)$/,
65
- timezoneHH: /^([+-]\d{2})$/,
66
- timezoneHHMM: /^([+-]\d{2}):?(\d{2})$/,
67
- };
68
- function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {
69
- var utcDate = new Date(0);
70
- utcDate.setUTCFullYear(fullYear, month, day);
71
- utcDate.setUTCHours(hour, minute, second, millisecond);
72
- return utcDate;
73
- }
74
- function toUtcDate(date) {
75
- return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
76
- }
77
- function calcOffset(date, timezoneString) {
78
- var tokens = tzTokenizeDate(date, timezoneString);
79
- // ms dropped because it's not provided by tzTokenizeDate
80
- var asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();
81
- var asTS = date.getTime();
82
- var over = asTS % 1000;
83
- asTS -= over >= 0 ? over : 1000 + over;
84
- return asUTC - asTS;
85
- }
86
- function fixOffset(date, offset, timezoneString) {
87
- var localTS = date.getTime();
88
- // Our UTC time is just a guess because our offset is just a guess
89
- var utcGuess = localTS - offset;
90
- // Test whether the zone matches the offset for this ts
91
- var o2 = calcOffset(new Date(utcGuess), timezoneString);
92
- // If so, offset didn't change, and we're done
93
- if (offset === o2) {
94
- return offset;
95
- }
96
- // If not, change the ts by the difference in the offset
97
- utcGuess -= o2 - offset;
98
- // If that gives us the local time we want, we're done
99
- var o3 = calcOffset(new Date(utcGuess), timezoneString);
100
- if (o2 === o3) {
101
- return o2;
102
- }
103
- // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time
104
- return Math.max(o2, o3);
105
- }
106
- function validateTimezone(hours, minutes = null) {
107
- return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59));
108
- }
109
- var validIANATimezoneCache = {};
110
- function isValidTimezoneIANAString(timeZoneString) {
111
- if (validIANATimezoneCache[timeZoneString])
112
- return true;
113
- try {
114
- new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString });
115
- validIANATimezoneCache[timeZoneString] = true;
116
- return true;
117
- }
118
- catch (error) {
119
- return false;
120
- }
121
- }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHpQYXJzZVRpbWV6b25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9jYWxpemF0aW9uL3R6L3R6UGFyc2VUaW1lem9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVqRCxNQUFNLFVBQVUsZUFBZSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsU0FBUztJQUM3RCxJQUFJLEtBQUssQ0FBQTtJQUNULElBQUksY0FBYyxDQUFBO0lBRWxCLGVBQWU7SUFDZixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsSUFBSTtJQUNKLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMvQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUE7SUFFVCxNQUFNO0lBQ04sS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2hELElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUU5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsb0JBQW9CLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEtBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFD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LElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3pCLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLEdBQUcsSUFBSTtJQUM3QyxPQUFPLENBQUMsRUFBRSxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDNUYsQ0FBQztBQUVELElBQUksc0JBQXNCLEdBQUcsRUFBRSxDQUFBO0FBQy9CLFNBQVMseUJBQXlCLENBQUMsY0FBYztJQUMvQyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBQ3ZELElBQUksQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQTtRQUNoRSxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUE7UUFDN0MsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTAgRmViIDIwMjRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyB0elRva2VuaXplRGF0ZSB9IGZyb20gXCIuL3R6VG9rZW5pemVEYXRlXCJcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0elBhcnNlVGltZXpvbmUodGltZXpvbmVTdHJpbmcsIGRhdGUsIGlzVXRjRGF0ZSkge1xyXG4gIHZhciB0b2tlblxyXG4gIHZhciBhYnNvbHV0ZU9mZnNldFxyXG5cclxuICAvLyBFbXB0eSBzdHJpbmdcclxuICBpZiAoIXRpbWV6b25lU3RyaW5nKSB7XHJcbiAgICByZXR1cm4gMFxyXG4gIH1cclxuXHJcbiAgLy8gWlxyXG4gIHRva2VuID0gcGF0dGVybnMudGltZXpvbmVaLmV4ZWModGltZXpvbmVTdHJpbmcpXHJcbiAgaWYgKHRva2VuKSB7XHJcbiAgICByZXR1cm4gMFxyXG4gIH1cclxuXHJcbiAgdmFyIGhvdXJzXHJcblxyXG4gIC8vIMKxaGhcclxuICB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lSEguZXhlYyh0aW1lem9uZVN0cmluZylcclxuICBpZiAodG9rZW4pIHtcclxuICAgIGhvdXJzID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKVxyXG5cclxuICAgIGlmICghdmFsaWRhdGVUaW1lem9uZShob3VycykpIHtcclxuICAgICAgcmV0dXJuIE5hTlxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAtKGhvdXJzICogTUlMTElTRUNPTkRTX0lOX0hPVVIpXHJcbiAgfVxyXG5cclxuICAvLyDCsWhoOm1tIG9yIMKxaGhtbVxyXG4gIHRva2VuID0gcGF0dGVybnMudGltZXpvbmVISE1NLmV4ZWModGltZXpvbmVTdHJpbmcpXHJcbiAgaWYgKHRva2VuKSB7XHJcbiAgICBob3VycyA9IHBhcnNlSW50KHRva2VuWzFdLCAxMClcclxuICAgIHZhciBtaW51dGVzID0gcGFyc2VJbnQodG9rZW5bMl0sIDEwKVxyXG5cclxuICAgIGlmICghdmFsaWRhdGVUaW1lem9uZShob3VycywgbWludXRlcykpIHtcclxuICAgICAgcmV0dXJuIE5hTlxyXG4gICAgfVxyXG5cclxuICAgIGFic29sdXRlT2Zmc2V0ID0gTWF0aC5hYnMoaG91cnMpICogTUlMTElTRUNPTkRTX0lOX0hPVVIgKyBtaW51dGVzICogTUlMTElTRUNPTkRTX0lOX01JTlVURVxyXG4gICAgcmV0dXJuIGhvdXJzID4gMCA/IC1hYnNvbHV0ZU9mZnNldCA6IGFic29sdXRlT2Zmc2V0XHJcbiAgfVxyXG5cclxuICAvLyBJQU5BIHRpbWUgem9uZVxyXG4gIGlmIChpc1ZhbGlkVGltZXpvbmVJQU5BU3RyaW5nKHRpbWV6b25lU3RyaW5nKSkge1xyXG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUgfHwgRGF0ZS5ub3coKSlcclxuICAgIHZhciB1dGNEYXRlID0gaXNVdGNEYXRlID8gZGF0ZSA6IHRvVXRjRGF0ZShkYXRlKTtcclxuICAgIHZhciBvZmZzZXQgPSBjYWxjT2Zmc2V0KHV0Y0RhdGUsIHRpbWV6b25lU3RyaW5nKTtcclxuICAgIHZhciBmaXhlZE9mZnNldCA9IGlzVXRjRGF0ZSA/IG9mZnNldCA6IGZpeE9mZnNldChkYXRlLCBvZmZzZXQsIHRpbWV6b25lU3RyaW5nKVxyXG5cclxuICAgIHJldHVybiAtZml4ZWRPZmZzZXRcclxuICB9XHJcblxyXG4gIHJldHVybiBOYU5cclxufVxyXG5cclxuXHJcbnZhciBNSUxMSVNFQ09ORFNfSU5fSE9VUiA9IDM2MDAwMDBcclxudmFyIE1JTExJU0VDT05EU19JTl9NSU5VVEUgPSA2MDAwMFxyXG5cclxudmFyIHBhdHRlcm5zID0ge1xyXG4gIHRpbWV6b25lOiAvKFtaKy1dLiopJC8sXHJcbiAgdGltZXpvbmVaOiAvXihaKSQvLFxyXG4gIHRpbWV6b25lSEg6IC9eKFsrLV1cXGR7Mn0pJC8sXHJcbiAgdGltZXpvbmVISE1NOiAvXihbKy1dXFxkezJ9KTo/KFxcZHsyfSkkLyxcclxufVxyXG5cclxuZnVuY3Rpb24gbmV3RGF0ZVVUQyhmdWxsWWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kKSB7XHJcbiAgdmFyIHV0Y0RhdGUgPSBuZXcgRGF0ZSgwKVxyXG4gIHV0Y0RhdGUuc2V0VVRDRnVsbFllYXIoZnVsbFllYXIsIG1vbnRoLCBkYXkpXHJcbiAgdXRjRGF0ZS5zZXRVVENIb3Vycyhob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQpXHJcbiAgcmV0dXJuIHV0Y0RhdGVcclxufVxyXG5cclxuZnVuY3Rpb24gdG9VdGNEYXRlKGRhdGUpIHtcclxuICByZXR1cm4gbmV3RGF0ZVVUQyhcclxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgZGF0ZS5nZXRNaW51dGVzKCksXHJcbiAgICBkYXRlLmdldFNlY29uZHMoKSxcclxuICAgIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKClcclxuICApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbGNPZmZzZXQoZGF0ZSwgdGltZXpvbmVTdHJpbmcpIHtcclxuICB2YXIgdG9rZW5zID0gdHpUb2tlbml6ZURhdGUoZGF0ZSwgdGltZXpvbmVTdHJpbmcpXHJcblxyXG4gIC8vIG1zIGRyb3BwZWQgYmVjYXVzZSBpdCdzIG5vdCBwcm92aWRlZCBieSB0elRva2VuaXplRGF0ZVxyXG4gIHZhciBhc1VUQyA9IG5ld0RhdGVVVEMoXHJcbiAgICB0b2tlbnNbMF0sXHJcbiAgICB0b2tlbnNbMV0gLSAxLFxyXG4gICAgdG9rZW5zWzJdLFxyXG4gICAgdG9rZW5zWzNdICUgMjQsXHJcbiAgICB0b2tlbnNbNF0sXHJcbiAgICB0b2tlbnNbNV0sXHJcbiAgICAwXHJcbiAgKS5nZXRUaW1lKClcclxuXHJcbiAgdmFyIGFzVFMgPSBkYXRlLmdldFRpbWUoKVxyXG4gIHZhciBvdmVyID0gYXNUUyAlIDEwMDBcclxuICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlclxyXG4gIHJldHVybiBhc1VUQyAtIGFzVFNcclxufVxyXG5cclxuZnVuY3Rpb24gZml4T2Zmc2V0KGRhdGUsIG9mZnNldCwgdGltZXpvbmVTdHJpbmcpIHtcclxuICB2YXIgbG9jYWxUUyA9IGRhdGUuZ2V0VGltZSgpXHJcblxyXG4gIC8vIE91ciBVVEMgdGltZSBpcyBqdXN0IGEgZ3Vlc3MgYmVjYXVzZSBvdXIgb2Zmc2V0IGlzIGp1c3QgYSBndWVzc1xyXG4gIHZhciB1dGNHdWVzcyA9IGxvY2FsVFMgLSBvZmZzZXRcclxuXHJcbiAgLy8gVGVzdCB3aGV0aGVyIHRoZSB6b25lIG1hdGNoZXMgdGhlIG9mZnNldCBmb3IgdGhpcyB0c1xyXG4gIHZhciBvMiA9IGNhbGNPZmZzZXQobmV3IERhdGUodXRjR3Vlc3MpLCB0aW1lem9uZVN0cmluZylcclxuXHJcbiAgLy8gSWYgc28sIG9mZnNldCBkaWRuJ3QgY2hhbmdlLCBhbmQgd2UncmUgZG9uZVxyXG4gIGlmIChvZmZzZXQgPT09IG8yKSB7XHJcbiAgICByZXR1cm4gb2Zmc2V0XHJcbiAgfVxyXG5cclxuICAvLyBJZiBub3QsIGNoYW5nZSB0aGUgdHMgYnkgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIG9mZnNldFxyXG4gIHV0Y0d1ZXNzIC09IG8yIC0gb2Zmc2V0XHJcblxyXG4gIC8vIElmIHRoYXQgZ2l2ZXMgdXMgdGhlIGxvY2FsIHRpbWUgd2Ugd2FudCwgd2UncmUgZG9uZVxyXG4gIHZhciBvMyA9IGNhbGNPZmZzZXQobmV3IERhdGUodXRjR3Vlc3MpLCB0aW1lem9uZVN0cmluZylcclxuICBpZiAobzIgPT09IG8zKSB7XHJcbiAgICByZXR1cm4gbzJcclxuICB9XHJcblxyXG4gIC8vIElmIGl0J3MgZGlmZmVyZW50LCB3ZSdyZSBpbiBhIGhvbGUgdGltZS4gVGhlIG9mZnNldCBoYXMgY2hhbmdlZCwgYnV0IHdlIGRvbid0IGFkanVzdCB0aGUgdGltZVxyXG4gIHJldHVybiBNYXRoLm1heChvMiwgbzMpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlVGltZXpvbmUoaG91cnMsIG1pbnV0ZXMgPSBudWxsKSB7XHJcbiAgcmV0dXJuIC0yMyA8PSBob3VycyAmJiBob3VycyA8PSAyMyAmJiAobWludXRlcyA9PSBudWxsIHx8ICgwIDw9IG1pbnV0ZXMgJiYgbWludXRlcyA8PSA1OSkpXHJcbn1cclxuXHJcbnZhciB2YWxpZElBTkFUaW1lem9uZUNhY2hlID0ge31cclxuZnVuY3Rpb24gaXNWYWxpZFRpbWV6b25lSUFOQVN0cmluZyh0aW1lWm9uZVN0cmluZykge1xyXG4gIGlmICh2YWxpZElBTkFUaW1lem9uZUNhY2hlW3RpbWVab25lU3RyaW5nXSkgcmV0dXJuIHRydWVcclxuICB0cnkge1xyXG4gICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkLCB7IHRpbWVab25lOiB0aW1lWm9uZVN0cmluZyB9KVxyXG4gICAgdmFsaWRJQU5BVGltZXpvbmVDYWNoZVt0aW1lWm9uZVN0cmluZ10gPSB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcbn1cclxuIl19
@@ -1,101 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 10 Feb 2024
12
-
13
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- /**
17
- * Returns the [year, month, day, hour, minute, seconds] tokens of the provided
18
- * `date` as it will be rendered in the `timeZone`.
19
- */
20
- export function tzTokenizeDate(date, timeZone) {
21
- var dtf = getDateTimeFormat(timeZone);
22
- return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);
23
- }
24
- var typeToPos = {
25
- year: 0,
26
- month: 1,
27
- day: 2,
28
- hour: 3,
29
- minute: 4,
30
- second: 5,
31
- };
32
- function partsOffset(dtf, date) {
33
- try {
34
- var formatted = dtf.formatToParts(date);
35
- var filled = [];
36
- for (var i = 0; i < formatted.length; i++) {
37
- var pos = typeToPos[formatted[i].type];
38
- if (pos >= 0) {
39
- filled[pos] = parseInt(formatted[i].value, 10);
40
- }
41
- }
42
- return filled;
43
- }
44
- catch (error) {
45
- if (error instanceof RangeError) {
46
- return [NaN];
47
- }
48
- throw error;
49
- }
50
- }
51
- function hackyOffset(dtf, date) {
52
- var formatted = dtf.format(date).replace(/\u200E/g, '');
53
- var parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted);
54
- // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed
55
- // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]
56
- return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];
57
- }
58
- // Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used
59
- // to get deterministic local date/time output according to the `en-US` locale which
60
- // can be used to extract local time parts as necessary.
61
- var dtfCache = {};
62
- function getDateTimeFormat(timeZone) {
63
- if (!dtfCache[timeZone]) {
64
- // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`
65
- var testDateFormatted = new Intl.DateTimeFormat('en-US', {
66
- hour12: false,
67
- timeZone: 'America/New_York',
68
- year: 'numeric',
69
- month: 'numeric',
70
- day: '2-digit',
71
- hour: '2-digit',
72
- minute: '2-digit',
73
- second: '2-digit',
74
- }).format(new Date('2014-06-25T04:00:00.123Z'));
75
- var hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' ||
76
- testDateFormatted === '06/25/2014 00:00:00';
77
- dtfCache[timeZone] = hourCycleSupported
78
- ? new Intl.DateTimeFormat('en-US', {
79
- hour12: false,
80
- timeZone: timeZone,
81
- year: 'numeric',
82
- month: 'numeric',
83
- day: '2-digit',
84
- hour: '2-digit',
85
- minute: '2-digit',
86
- second: '2-digit',
87
- })
88
- : new Intl.DateTimeFormat('en-US', {
89
- hourCycle: 'h23',
90
- timeZone: timeZone,
91
- year: 'numeric',
92
- month: 'numeric',
93
- day: '2-digit',
94
- hour: '2-digit',
95
- minute: '2-digit',
96
- second: '2-digit',
97
- });
98
- }
99
- return dtfCache[timeZone];
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHpUb2tlbml6ZURhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vdHovdHpUb2tlbml6ZURhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRO0lBQzNDLElBQUksR0FBRyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUM1RSxDQUFDO0FBRUQsSUFBSSxTQUFTLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsR0FBRyxFQUFFLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsTUFBTSxFQUFFLENBQUM7Q0FDVixDQUFBO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUk7SUFDNUIsSUFBSSxDQUFDO1FBQ0gsSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFDLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7WUFFdEMsSUFBSSxHQUFHLElBQUksQ0FB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ZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTAgRmViIDIwMjRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgW3llYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kc10gdG9rZW5zIG9mIHRoZSBwcm92aWRlZFxyXG4gKiBgZGF0ZWAgYXMgaXQgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgYHRpbWVab25lYC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0elRva2VuaXplRGF0ZShkYXRlLCB0aW1lWm9uZSkge1xyXG4gIHZhciBkdGYgPSBnZXREYXRlVGltZUZvcm1hdCh0aW1lWm9uZSlcclxuICByZXR1cm4gZHRmLmZvcm1hdFRvUGFydHMgPyBwYXJ0c09mZnNldChkdGYsIGRhdGUpIDogaGFja3lPZmZzZXQoZHRmLCBkYXRlKVxyXG59XHJcblxyXG52YXIgdHlwZVRvUG9zID0ge1xyXG4gIHllYXI6IDAsXHJcbiAgbW9udGg6IDEsXHJcbiAgZGF5OiAyLFxyXG4gIGhvdXI6IDMsXHJcbiAgbWludXRlOiA0LFxyXG4gIHNlY29uZDogNSxcclxufVxyXG5cclxuZnVuY3Rpb24gcGFydHNPZmZzZXQoZHRmLCBkYXRlKSB7XHJcbiAgdHJ5IHtcclxuICAgIHZhciBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKVxyXG4gICAgdmFyIGZpbGxlZCA9IFtdXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcm1hdHRlZC5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgcG9zID0gdHlwZVRvUG9zW2Zvcm1hdHRlZFtpXS50eXBlXVxyXG5cclxuICAgICAgaWYgKHBvcyA+PSAwKSB7XHJcbiAgICAgICAgZmlsbGVkW3Bvc10gPSBwYXJzZUludChmb3JtYXR0ZWRbaV0udmFsdWUsIDEwKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsbGVkXHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIFtOYU5dXHJcbiAgICB9XHJcbiAgICB0aHJvdyBlcnJvclxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaGFja3lPZmZzZXQoZHRmLCBkYXRlKSB7XHJcbiAgdmFyIGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXQoZGF0ZSkucmVwbGFjZSgvXFx1MjAwRS9nLCAnJylcclxuICB2YXIgcGFyc2VkID0gLyhcXGQrKVxcLyhcXGQrKVxcLyhcXGQrKSw/IChcXGQrKTooXFxkKyk6KFxcZCspLy5leGVjKGZvcm1hdHRlZClcclxuICAvLyB2YXIgWywgZk1vbnRoLCBmRGF5LCBmWWVhciwgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdID0gcGFyc2VkXHJcbiAgLy8gcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF1cclxuICByZXR1cm4gW3BhcnNlZFszXSwgcGFyc2VkWzFdLCBwYXJzZWRbMl0sIHBhcnNlZFs0XSwgcGFyc2VkWzVdLCBwYXJzZWRbNl1dXHJcbn1cclxuXHJcbi8vIEdldCBhIGNhY2hlZCBJbnRsLkRhdGVUaW1lRm9ybWF0IGluc3RhbmNlIGZvciB0aGUgSUFOQSBgdGltZVpvbmVgLiBUaGlzIGNhbiBiZSB1c2VkXHJcbi8vIHRvIGdldCBkZXRlcm1pbmlzdGljIGxvY2FsIGRhdGUvdGltZSBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBgZW4tVVNgIGxvY2FsZSB3aGljaFxyXG4vLyBjYW4gYmUgdXNlZCB0byBleHRyYWN0IGxvY2FsIHRpbWUgcGFydHMgYXMgbmVjZXNzYXJ5LlxyXG52YXIgZHRmQ2FjaGUgPSB7fVxyXG5mdW5jdGlvbiBnZXREYXRlVGltZUZvcm1hdCh0aW1lWm9uZSkge1xyXG4gIGlmICghZHRmQ2FjaGVbdGltZVpvbmVdKSB7XHJcbiAgICAvLyBOZXcgYnJvd3NlcnMgdXNlIGBob3VyQ3ljbGVgLCBJRSBhbmQgQ2hyb21lIDw3MyBkb2VzIG5vdCBzdXBwb3J0IGl0IGFuZCB1c2VzIGBob3VyMTJgXHJcbiAgICB2YXIgdGVzdERhdGVGb3JtYXR0ZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XHJcbiAgICAgIGhvdXIxMjogZmFsc2UsXHJcbiAgICAgIHRpbWVab25lOiAnQW1lcmljYS9OZXdfWW9yaycsXHJcbiAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgbW9udGg6ICdudW1lcmljJyxcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcclxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgIHNlY29uZDogJzItZGlnaXQnLFxyXG4gICAgfSkuZm9ybWF0KG5ldyBEYXRlKCcyMDE0LTA2LTI1VDA0OjAwOjAwLjEyM1onKSlcclxuXHJcbiAgICB2YXIgaG91ckN5Y2xlU3VwcG9ydGVkID1cclxuICAgIHRlc3REYXRlRm9ybWF0dGVkID09PSAnMDYvMjUvMjAxNCwgMDA6MDA6MDAnIHx8XHJcbiAgICB0ZXN0RGF0ZUZvcm1hdHRlZCA9PT0gJzA2LzI1LzIwMTQgMDA6MDA6MDAnXHJcblxyXG4gICAgZHRmQ2FjaGVbdGltZVpvbmVdID0gaG91ckN5Y2xlU3VwcG9ydGVkXHJcbiAgICAgID8gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xyXG4gICAgICAgICAgaG91cjEyOiBmYWxzZSxcclxuICAgICAgICAgIHRpbWVab25lOiB0aW1lWm9uZSxcclxuICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgICAgIG1vbnRoOiAnbnVtZXJpYycsXHJcbiAgICAgICAgICBkYXk6ICcyLWRpZ2l0JyxcclxuICAgICAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcclxuICAgICAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxyXG4gICAgICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XHJcbiAgICAgICAgICBob3VyQ3ljbGU6ICdoMjMnLFxyXG4gICAgICAgICAgdGltZVpvbmU6IHRpbWVab25lLFxyXG4gICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICAgICAgbW9udGg6ICdudW1lcmljJyxcclxuICAgICAgICAgIGRheTogJzItZGlnaXQnLFxyXG4gICAgICAgICAgaG91cjogJzItZGlnaXQnLFxyXG4gICAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0JyxcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGR0ZkNhY2hlW3RpbWVab25lXVxyXG59XHJcblxyXG5cclxuIl19
@@ -1,32 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 10 Feb 2024
12
-
13
- Source:
14
- https://www.npmjs.com/package/date-fns-tz
15
- https://github.com/marnusw/date-fns-tz/blob/master/src/utcToZonedTime/index.js
16
- https://github.com/marnusw/date-fns-tz/blob/master/src/_lib/tzParseTimezone/index.js
17
-
18
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
19
- </file>
20
- */
21
- import { DateConvert } from "../../converts/dateConvert";
22
- import { tzParseTimezone } from "./tzParseTimezone";
23
- export function utcToZonedTime(dirtyDate, timeZone) {
24
- let date = DateConvert.toDate(dirtyDate);
25
- let offsetMilliseconds = tzParseTimezone(timeZone, date, true);
26
- let d = new Date(date.getTime() - offsetMilliseconds);
27
- let resultDate = new Date(0);
28
- resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
29
- resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
30
- return resultDate;
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRjVG9ab25lZFRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vdHovdXRjVG9ab25lZFRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkU7QUFFRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sVUFBVSxjQUFjLENBQUMsU0FBUyxFQUFFLFFBQVE7SUFDaEQsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxJQUFJLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRTlELElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdCLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFFbkcsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMCBGZWIgMjAyNFxyXG5cclxuICBTb3VyY2U6XHJcbiAgICBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9kYXRlLWZucy10elxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL21hcm51c3cvZGF0ZS1mbnMtdHovYmxvYi9tYXN0ZXIvc3JjL3V0Y1RvWm9uZWRUaW1lL2luZGV4LmpzXHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vbWFybnVzdy9kYXRlLWZucy10ei9ibG9iL21hc3Rlci9zcmMvX2xpYi90elBhcnNlVGltZXpvbmUvaW5kZXguanNcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyBEYXRlQ29udmVydCB9IGZyb20gXCIuLi8uLi9jb252ZXJ0cy9kYXRlQ29udmVydFwiO1xyXG5pbXBvcnQgeyB0elBhcnNlVGltZXpvbmUgfSBmcm9tIFwiLi90elBhcnNlVGltZXpvbmVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1dGNUb1pvbmVkVGltZShkaXJ0eURhdGUsIHRpbWVab25lKSB7XHJcbiAgbGV0IGRhdGUgPSBEYXRlQ29udmVydC50b0RhdGUoZGlydHlEYXRlKTtcclxuICBsZXQgb2Zmc2V0TWlsbGlzZWNvbmRzID0gdHpQYXJzZVRpbWV6b25lKHRpbWVab25lLCBkYXRlLCB0cnVlKVxyXG5cclxuICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gb2Zmc2V0TWlsbGlzZWNvbmRzKTtcclxuICBsZXQgcmVzdWx0RGF0ZSA9IG5ldyBEYXRlKDApO1xyXG5cclxuICByZXN1bHREYXRlLnNldEZ1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSwgZC5nZXRVVENNb250aCgpLCBkLmdldFVUQ0RhdGUoKSk7XHJcbiAgcmVzdWx0RGF0ZS5zZXRIb3VycyhkLmdldFVUQ0hvdXJzKCksIGQuZ2V0VVRDTWludXRlcygpLCBkLmdldFVUQ1NlY29uZHMoKSwgZC5nZXRVVENNaWxsaXNlY29uZHMoKSk7XHJcblxyXG4gIHJldHVybiByZXN1bHREYXRlO1xyXG59XHJcblxyXG5cclxuIl19
@@ -1 +0,0 @@
1
- export declare function utcToZonedTime(dirtyDate: any, timeZone: any): Date;