@sprucelabs/calendar-utils 36.1.2 → 36.1.4
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,8 +1,9 @@
|
|
|
1
1
|
import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter';
|
|
2
2
|
import { Locale, TimezoneName } from '../types/calendar.types';
|
|
3
3
|
export default class LocaleImpl extends AbstractEventEmitter<LocaleContract> implements Locale {
|
|
4
|
+
private zoneNameByOffset;
|
|
4
5
|
private offset;
|
|
5
|
-
|
|
6
|
+
protected currentZone?: TimezoneName;
|
|
6
7
|
private timezoneChoices;
|
|
7
8
|
constructor();
|
|
8
9
|
setTimezoneOffsetMinutes(offset: number): void;
|
|
@@ -17,6 +17,7 @@ import TimezoneChoiceSorter from './TimezoneChoiceSorter.js';
|
|
|
17
17
|
export default class LocaleImpl extends AbstractEventEmitter {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(localeContract);
|
|
20
|
+
this.zoneNameByOffset = {};
|
|
20
21
|
this.offset = new Date().getTimezoneOffset() * -1;
|
|
21
22
|
const sorter = new TimezoneChoiceSorter(this);
|
|
22
23
|
this.timezoneChoices = sorter.sort(timezoneChoices);
|
|
@@ -51,12 +52,16 @@ export default class LocaleImpl extends AbstractEventEmitter {
|
|
|
51
52
|
if (offset === 0) {
|
|
52
53
|
return 'UTC';
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
+
if (this.zoneNameByOffset[offset]) {
|
|
56
|
+
return this.zoneNameByOffset[offset];
|
|
57
|
+
}
|
|
58
|
+
this.zoneNameByOffset[offset] = this.timezoneChoices
|
|
55
59
|
.map((t) => t.value)
|
|
56
60
|
.find((name) => {
|
|
57
61
|
const o = this.zoneNameToOffsetMinutes(name);
|
|
58
62
|
return o === offset;
|
|
59
63
|
});
|
|
64
|
+
return this.zoneNameByOffset[offset];
|
|
60
65
|
}
|
|
61
66
|
zoneNameToOffsetMinutes(name, onDate) {
|
|
62
67
|
const results = getTimezoneOffset(name, onDate);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter';
|
|
2
2
|
import { Locale, TimezoneName } from '../types/calendar.types';
|
|
3
3
|
export default class LocaleImpl extends AbstractEventEmitter<LocaleContract> implements Locale {
|
|
4
|
+
private zoneNameByOffset;
|
|
4
5
|
private offset;
|
|
5
|
-
|
|
6
|
+
protected currentZone?: TimezoneName;
|
|
6
7
|
private timezoneChoices;
|
|
7
8
|
constructor();
|
|
8
9
|
setTimezoneOffsetMinutes(offset: number): void;
|
package/build/locales/Locale.js
CHANGED
|
@@ -13,6 +13,7 @@ const TimezoneChoiceSorter_1 = __importDefault(require("./TimezoneChoiceSorter")
|
|
|
13
13
|
class LocaleImpl extends mercury_event_emitter_1.AbstractEventEmitter {
|
|
14
14
|
constructor() {
|
|
15
15
|
super(localeContract);
|
|
16
|
+
this.zoneNameByOffset = {};
|
|
16
17
|
this.offset = new Date().getTimezoneOffset() * -1;
|
|
17
18
|
const sorter = new TimezoneChoiceSorter_1.default(this);
|
|
18
19
|
this.timezoneChoices = sorter.sort(spruce_core_schemas_1.timezoneChoices);
|
|
@@ -45,12 +46,16 @@ class LocaleImpl extends mercury_event_emitter_1.AbstractEventEmitter {
|
|
|
45
46
|
if (offset === 0) {
|
|
46
47
|
return 'UTC';
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
+
if (this.zoneNameByOffset[offset]) {
|
|
50
|
+
return this.zoneNameByOffset[offset];
|
|
51
|
+
}
|
|
52
|
+
this.zoneNameByOffset[offset] = this.timezoneChoices
|
|
49
53
|
.map((t) => t.value)
|
|
50
54
|
.find((name) => {
|
|
51
55
|
const o = this.zoneNameToOffsetMinutes(name);
|
|
52
56
|
return o === offset;
|
|
53
57
|
});
|
|
58
|
+
return this.zoneNameByOffset[offset];
|
|
54
59
|
}
|
|
55
60
|
zoneNameToOffsetMinutes(name, onDate) {
|
|
56
61
|
const results = (0, date_fns_tz_1.getTimezoneOffset)(name, onDate);
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "36.1.
|
|
6
|
+
"version": "36.1.4",
|
|
7
7
|
"files": [
|
|
8
8
|
"build/**/*",
|
|
9
9
|
"!build/__tests__",
|
|
@@ -66,24 +66,24 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@sprucelabs/error": "^5.1.3",
|
|
69
|
-
"@sprucelabs/mercury-event-emitter": "^40.1.
|
|
70
|
-
"@sprucelabs/mercury-types": "^45.0.
|
|
71
|
-
"@sprucelabs/schema": "^28.6.
|
|
72
|
-
"@sprucelabs/spruce-core-schemas": "^38.1.
|
|
73
|
-
"@sprucelabs/spruce-event-utils": "^37.0.
|
|
69
|
+
"@sprucelabs/mercury-event-emitter": "^40.1.31",
|
|
70
|
+
"@sprucelabs/mercury-types": "^45.0.23",
|
|
71
|
+
"@sprucelabs/schema": "^28.6.31",
|
|
72
|
+
"@sprucelabs/spruce-core-schemas": "^38.1.22",
|
|
73
|
+
"@sprucelabs/spruce-event-utils": "^37.0.25",
|
|
74
74
|
"date-fns": "^2.30.0",
|
|
75
75
|
"date-fns-tz": "^2.0.0",
|
|
76
76
|
"rrule": "^2.7.2"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@sprucelabs/esm-postbuild": "^5.0.
|
|
80
|
-
"@sprucelabs/jest-json-reporter": "^7.0.
|
|
79
|
+
"@sprucelabs/esm-postbuild": "^5.0.13",
|
|
80
|
+
"@sprucelabs/jest-json-reporter": "^7.0.46",
|
|
81
81
|
"@sprucelabs/resolve-path-aliases": "^1.1.220",
|
|
82
82
|
"@sprucelabs/semantic-release": "^4.0.8",
|
|
83
83
|
"@sprucelabs/test": "^7.7.448",
|
|
84
|
-
"@sprucelabs/test-utils": "^3.4.
|
|
84
|
+
"@sprucelabs/test-utils": "^3.4.60",
|
|
85
85
|
"@types/lodash": "^4.14.194",
|
|
86
|
-
"@types/node": "^20.2.
|
|
86
|
+
"@types/node": "^20.2.3",
|
|
87
87
|
"chokidar-cli": "^3.0.0",
|
|
88
88
|
"concurrently": "^8.0.1",
|
|
89
89
|
"eslint": "^8.41.0",
|