@sprucelabs/calendar-utils 38.0.156 → 38.0.157

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.
@@ -5,4 +5,5 @@ export default class DateUtilDecorator {
5
5
  makeLocaleAware(dateUtil: DateUtil): DateUtil;
6
6
  private offsetDate;
7
7
  private addOffset;
8
+ private calculateOffset;
8
9
  }
@@ -1,4 +1,5 @@
1
1
  import { assertOptions } from '@sprucelabs/schema';
2
+ import { toDate } from 'date-fns-tz';
2
3
  export default class DateUtilDecorator {
3
4
  constructor(locale) {
4
5
  assertOptions({ locale }, ['locale']);
@@ -16,6 +17,13 @@ export default class DateUtilDecorator {
16
17
  }
17
18
  else {
18
19
  value = dateUtil.date(date);
20
+ const { year, month, day } = date;
21
+ const dateString = `${year}-${(month + 1)
22
+ .toString()
23
+ .padStart(2, '0')}-${day.toString().padStart(2, '0')}T12:00:00`;
24
+ const zonedDate = toDate(dateString).getTime();
25
+ const offset = this.calculateOffset(zonedDate);
26
+ return value - offset;
19
27
  }
20
28
  return this.addOffset(value);
21
29
  }, setTimeOfDay: (...args) => {
@@ -38,10 +46,13 @@ export default class DateUtilDecorator {
38
46
  return this.addOffset(date !== null && date !== void 0 ? date : new Date().getTime(), false);
39
47
  }
40
48
  addOffset(value, shouldInverse = true) {
41
- let offset = this.locale.getTimezoneOffsetMinutes(value) * 60 * 1000;
49
+ let offset = this.calculateOffset(value);
42
50
  if (shouldInverse) {
43
51
  offset = offset * -1;
44
52
  }
45
53
  return value + offset;
46
54
  }
55
+ calculateOffset(value) {
56
+ return this.locale.getTimezoneOffsetMinutes(value) * 60 * 1000;
57
+ }
47
58
  }
@@ -5,4 +5,5 @@ export default class DateUtilDecorator {
5
5
  makeLocaleAware(dateUtil: DateUtil): DateUtil;
6
6
  private offsetDate;
7
7
  private addOffset;
8
+ private calculateOffset;
8
9
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const schema_1 = require("@sprucelabs/schema");
4
+ const date_fns_tz_1 = require("date-fns-tz");
4
5
  class DateUtilDecorator {
5
6
  constructor(locale) {
6
7
  (0, schema_1.assertOptions)({ locale }, ['locale']);
@@ -18,6 +19,13 @@ class DateUtilDecorator {
18
19
  }
19
20
  else {
20
21
  value = dateUtil.date(date);
22
+ const { year, month, day } = date;
23
+ const dateString = `${year}-${(month + 1)
24
+ .toString()
25
+ .padStart(2, '0')}-${day.toString().padStart(2, '0')}T12:00:00`;
26
+ const zonedDate = (0, date_fns_tz_1.toDate)(dateString).getTime();
27
+ const offset = this.calculateOffset(zonedDate);
28
+ return value - offset;
21
29
  }
22
30
  return this.addOffset(value);
23
31
  }, setTimeOfDay: (...args) => {
@@ -40,11 +48,14 @@ class DateUtilDecorator {
40
48
  return this.addOffset(date !== null && date !== void 0 ? date : new Date().getTime(), false);
41
49
  }
42
50
  addOffset(value, shouldInverse = true) {
43
- let offset = this.locale.getTimezoneOffsetMinutes(value) * 60 * 1000;
51
+ let offset = this.calculateOffset(value);
44
52
  if (shouldInverse) {
45
53
  offset = offset * -1;
46
54
  }
47
55
  return value + offset;
48
56
  }
57
+ calculateOffset(value) {
58
+ return this.locale.getTimezoneOffsetMinutes(value) * 60 * 1000;
59
+ }
49
60
  }
50
61
  exports.default = DateUtilDecorator;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "38.0.156",
6
+ "version": "38.0.157",
7
7
  "files": [
8
8
  "build/**/*",
9
9
  "!build/__tests__",
@@ -86,6 +86,7 @@
86
86
  "@types/node": "^20.8.10",
87
87
  "chokidar-cli": "^3.0.0",
88
88
  "concurrently": "^8.2.2",
89
+ "dotenv": "^16.3.1",
89
90
  "eslint": "^8.53.0",
90
91
  "eslint-config-spruce": "^10.13.6",
91
92
  "jest": "^29.7.0",