@dereekb/date 0.0.1 → 1.2.0

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 ADDED
@@ -0,0 +1,23 @@
1
+ # Changelog
2
+
3
+ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
+
5
+ # [1.2.0](https://github.com/dereekb/dbcomponents/compare/v1.1.0...v1.2.0) (2022-03-04)
6
+
7
+
8
+
9
+ # [1.1.0](https://github.com/dereekb/dbcomponents/compare/v1.0.0...v1.1.0) (2022-03-02)
10
+
11
+
12
+
13
+ # 1.0.0 (2022-02-23)
14
+
15
+
16
+ ### Features
17
+
18
+ * added dbxSearchableTextFieldComponent ([42ae14c](https://github.com/dereekb/dbcomponents/commit/42ae14c7709f6603db676c94f1df2017fdad59ca))
19
+ * added dbxTextEditorFieldComponent ([9146403](https://github.com/dereekb/dbcomponents/commit/9146403e26e7647181f66435db3597f0f64853ec))
20
+
21
+
22
+
23
+ # 0.1.0 (2022-01-29)
package/README.md CHANGED
@@ -1,7 +1,6 @@
1
- # date
1
+ @dereekb/date
2
+ =======
2
3
 
3
- This library was generated with [Nx](https://nx.dev).
4
+ The sources for this package are in the main [@dereekb/dbcomponents](https://github.com/dereekb/dbcomponents) repo. Please file issues and pull requests against that repo.
4
5
 
5
- ## Running unit tests
6
-
7
- Run `nx test date` to execute the unit tests via [Jest](https://jestjs.io).
6
+ License: MIT
package/package.json CHANGED
@@ -1,19 +1,18 @@
1
1
  {
2
2
  "name": "@dereekb/date",
3
- "version": "0.0.1",
3
+ "version": "1.2.0",
4
4
  "type": "commonjs",
5
- "peerDependencies": {
6
- "date-fns": "2.28.0",
7
- "date-fns-tz": "1.2.2",
8
- "class-transformer": "0.5.1",
9
- "class-validator": "0.13.2",
10
- "reflect-metadata": "0.1.13",
11
- "rrule": "2.6.8"
12
- },
13
5
  "main": "./src/index.js",
14
6
  "typings": "./src/index.d.ts",
15
7
  "dependencies": {
16
- "@dereekb/util": "0.0.1",
17
- "extra-set": "^2.2.11"
18
- }
8
+ "@dereekb/util": "1.2.0",
9
+ "extra-set": "^2.2.11",
10
+ "class-transformer": "^0.5.1",
11
+ "date-fns": "^2.28.0",
12
+ "class-validator": "^0.13.2",
13
+ "date-fns-tz": "^1.2.2",
14
+ "rxjs": "^7.5.2",
15
+ "rrule": "git+https://git@github.com/dereekb/rrule.git#17adf5708d6567b4d01a3a8afd106261421ea492"
16
+ },
17
+ "peerDependencies": {}
19
18
  }
@@ -11,7 +11,7 @@ export interface ParsedTimeString {
11
11
  */
12
12
  date: Date;
13
13
  /**
14
- * Minute in the day.
14
+ * The minute in the day.
15
15
  */
16
16
  minutesSinceStartOfDay: number;
17
17
  /**
@@ -77,6 +77,15 @@ export declare function dateTimeInstanceUtc(): DateTimeUtilityInstance;
77
77
  export declare function dateTimeInstance(timezone?: Maybe<TimezoneString>): DateTimeUtilityInstance;
78
78
  export declare function getTimeAM(date?: Date, timezone?: Maybe<TimezoneString>): TimeAM;
79
79
  export declare function toReadableTimeString(date: Date, timezone?: Maybe<TimezoneString>): ReadableTimeString;
80
+ /**
81
+ * Parses the input string relative to the timezone in the configuration.
82
+ *
83
+ * If no conversion timezone is provided, then it is parsed relative to UTC.
84
+ *
85
+ * @param input
86
+ * @param config
87
+ * @returns
88
+ */
80
89
  export declare function parseReadableTimeString(input: ReadableTimeString, config?: ParseTimeString): Maybe<ParsedTimeString>;
81
90
  export declare function readableTimeStringToDate(input: ReadableTimeString, config?: ParseTimeString): Maybe<Date>;
82
91
  export declare function limitDateTime(config: LimitDateTimeConfig): LimitDateTimeInstance;
@@ -75,11 +75,12 @@ class DateTimeUtilityInstance {
75
75
  input = input.trim();
76
76
  }
77
77
  /*
78
- The input date needs to capture the right Day we want to parse on.
78
+ The input date needs to capture the right Day we want to parse on, since parse uses the system's information for hours/date information.
79
79
  We do this by adding the offset of the system with the offset of the target timezone.
80
80
  */
81
81
  const relativeDateNormal = new date_timezone_1.DateTimezoneUtcNormalInstance(config);
82
- const relativeDate = relativeDateNormal._normalDateToBaseDate(inputDate, { betweenSystemAndOffset: true });
82
+ const relativeDate = relativeDateNormal.systemDateToTargetDate(inputDate);
83
+ // console.log('Relative Date: ', relativeDate, calculateAllConversions(inputDate, relativeDateNormal, (x) => millisecondsToHours(x)));
83
84
  const formats = [
84
85
  'h:mma',
85
86
  'h:mm a',
@@ -87,12 +88,12 @@ class DateTimeUtilityInstance {
87
88
  'ha',
88
89
  'h:mm' // 1:20
89
90
  ];
90
- let parsedDateTime;
91
+ let systemParsedDateTime;
91
92
  let valid = false;
92
93
  // tslint:disable-next-line: prefer-for-of
93
94
  for (let i = 0; i < formats.length; i += 1) {
94
- parsedDateTime = (0, date_fns_1.parse)(input, formats[i], relativeDate);
95
- if ((0, date_fns_1.isValid)(parsedDateTime)) {
95
+ systemParsedDateTime = (0, date_fns_1.parse)(input, formats[i], relativeDate);
96
+ if ((0, date_fns_1.isValid)(systemParsedDateTime)) {
96
97
  valid = true;
97
98
  break; // Use time.
98
99
  }
@@ -118,16 +119,16 @@ class DateTimeUtilityInstance {
118
119
  case 1:
119
120
  case 2:
120
121
  // 1
121
- parsedDateTime = (0, date_fns_1.parse)(input, 'H', relativeDate);
122
+ systemParsedDateTime = (0, date_fns_1.parse)(input, 'H', relativeDate);
122
123
  break;
123
124
  case 5:
124
125
  // 120AM
125
126
  input = removeAmPm(input);
126
- parsedDateTime = parseDateTimeFromNumber(input);
127
+ systemParsedDateTime = parseDateTimeFromNumber(input);
127
128
  break;
128
129
  case 3:
129
130
  // 120
130
- parsedDateTime = parseDateTimeFromNumber(input);
131
+ systemParsedDateTime = parseDateTimeFromNumber(input);
131
132
  break;
132
133
  case 6:
133
134
  // 1212AM
@@ -135,31 +136,32 @@ class DateTimeUtilityInstance {
135
136
  if (removedPm) {
136
137
  removedPm = input[0] !== '2'; // If 2, ignore the PM part.
137
138
  }
138
- parsedDateTime = parseDateTimeAsHmm(input);
139
+ systemParsedDateTime = parseDateTimeAsHmm(input);
139
140
  break;
140
141
  default:
141
142
  // 2200
142
- parsedDateTime = parseDateTimeAsHmm(input);
143
+ systemParsedDateTime = parseDateTimeAsHmm(input);
143
144
  break;
144
145
  }
145
146
  if (removedPm) {
146
- parsedDateTime = (0, date_fns_1.addHours)(parsedDateTime, 12);
147
+ systemParsedDateTime = (0, date_fns_1.addHours)(systemParsedDateTime, 12);
147
148
  }
148
- valid = (0, date_fns_1.isValid)(parsedDateTime);
149
+ valid = (0, date_fns_1.isValid)(systemParsedDateTime);
149
150
  }
150
- // console.log('Parsed: ', input, inputDate, relativeDate, parsedDateTime);
151
+ // console.log('Parsed: ', systemParsedDateTime, relativeDate, input, inputDate, relativeDateNormal);
151
152
  // Raw parse result is always UTC for that date.
152
153
  // For example, 1AM will return 1AM UTC in a Date object.
153
154
  let raw;
155
+ let result;
154
156
  if (valid) {
155
157
  // The parsed DateTime will be in the system settings for that date in as a UTC time.
156
- raw = (0, date_timezone_1.systemBaseDateToNormalDate)(parsedDateTime);
157
- parsedDateTime = relativeDateNormal._baseDateToNormalDate(parsedDateTime, { betweenSystemAndOffset: true });
158
- // console.log('Raw: ', input, raw, parsedDateTime, this.normalInstance.config);
158
+ raw = relativeDateNormal.baseDateToSystemDate(systemParsedDateTime);
159
+ result = relativeDateNormal.targetDateToSystemDate(systemParsedDateTime);
160
+ // console.log('Raw: ', input, systemParsedDateTime, differenceInHours(raw, systemParsedDateTime!), raw, differenceInHours(raw, result), result, this.normalInstance.config);
159
161
  }
160
162
  return {
161
- raw: raw,
162
- result: parsedDateTime,
163
+ raw,
164
+ result,
163
165
  valid
164
166
  };
165
167
  }
@@ -192,6 +194,15 @@ function toReadableTimeString(date, timezone) {
192
194
  return dateTimeInstance(timezone).toTimeString(date);
193
195
  }
194
196
  exports.toReadableTimeString = toReadableTimeString;
197
+ /**
198
+ * Parses the input string relative to the timezone in the configuration.
199
+ *
200
+ * If no conversion timezone is provided, then it is parsed relative to UTC.
201
+ *
202
+ * @param input
203
+ * @param config
204
+ * @returns
205
+ */
195
206
  function parseReadableTimeString(input, config) {
196
207
  return dateTimeInstance(config === null || config === void 0 ? void 0 : config.timezone).parseTimeString(input, config);
197
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date.time.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.time.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.time.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Maybe, TimezoneString } from '@dereekb/util';
1
+ import { Maybe, Milliseconds, TimezoneString } from '@dereekb/util';
2
2
  /**
3
3
  * Inherited from the RRule library where RRule only deals with UTC date/times, dates going into it must always be in UTC.
4
4
  *
@@ -10,12 +10,6 @@ import { Maybe, TimezoneString } from '@dereekb/util';
10
10
  * When using base dates, we can target any timezone after performing date conversions without worrying about things such as daylight savings, etc.
11
11
  */
12
12
  export declare type BaseDateAsUTC = Date;
13
- export interface DateTimezoneConversionFnConfig {
14
- /**
15
- * Uses the computed offset between the system and the timezone specified here.
16
- */
17
- betweenSystemAndOffset?: boolean;
18
- }
19
13
  export interface DateTimezoneConversionConfig {
20
14
  /**
21
15
  * Timezone to be relative to. If not defined, values are returned in UTC.
@@ -24,13 +18,16 @@ export interface DateTimezoneConversionConfig {
24
18
  /**
25
19
  * Whether or not to use the system timezone/offset.
26
20
  *
27
- * This will convert between UTC and the system timezone.
21
+ * This will convert between UTC and the current system's timezone.
28
22
  */
29
23
  useSystemTimezone?: boolean;
30
24
  /**
31
- * Custom timezone offset to specify for the result.
25
+ * Custom timezone offset (in ms) between the "normal" and the base date.
26
+ *
27
+ * Examples:
28
+ * - UTC-6 is negative 6 hours, in milliseconds.
32
29
  */
33
- timezoneOffset?: number;
30
+ timezoneOffset?: Milliseconds;
34
31
  }
35
32
  /**
36
33
  * Returns true if both inputs are considered equivalent.
@@ -40,16 +37,54 @@ export interface DateTimezoneConversionConfig {
40
37
  * @returns
41
38
  */
42
39
  export declare function isSameDateTimezoneConversionConfig(a: DateTimezoneConversionConfig, b: DateTimezoneConversionConfig): boolean;
40
+ /**
41
+ * Returns the current offset in milliseconds.
42
+ *
43
+ * The offset corresponds positively with the UTC offset, so UTC-6 is negative 6 hours, in milliseconds.
44
+ *
45
+ * @param date Date is required to get the correct offset for the given date.
46
+ * @returns
47
+ */
43
48
  export declare function getCurrentSystemOffsetInMs(date: Date): number;
44
- interface InternalDateTimezoneBaseDateConverter {
45
- getCurrentOffset(date: Date): number;
46
- normalDateToBaseDate(date: Date, addOffset?: number): Date;
47
- baseDateToNormalDate(date: Date, addOffset?: number): Date;
48
- }
49
- export interface DateTimezoneBaseDateConverter extends InternalDateTimezoneBaseDateConverter {
50
- normalDateToBaseDate(date: Date): Date;
51
- baseDateToNormalDate(date: Date): Date;
49
+ export declare type DateTimezoneConversionTarget = 'target' | 'base' | 'system';
50
+ export declare type DateTimezoneOffsetFunction = (date: Date, from: DateTimezoneConversionTarget, to: DateTimezoneConversionTarget) => Milliseconds;
51
+ export interface DateTimezoneBaseDateConverter {
52
+ getCurrentOffset: DateTimezoneOffsetFunction;
53
+ /**
54
+ * Converts the given date into a date relative to the UTC's date by
55
+ * adding the timezone offset for the current timezone.
56
+ *
57
+ * This is generally used for cases where you are dealing with conversational strings, such as "2AM today". By using the base UTC date,
58
+ * as 2PM we can get "2PM" in UTC, then convert back using baseDateToTargetDate avoid timezone conversion issues and other headaches.
59
+ *
60
+ * For example, if it is 2PM in the input time, the resulting time will be 2PM UTC.
61
+ * - Input: 2021-08-16T14:00:00.000-06:00
62
+ * - Output: 2021-08-16T14:00:00.000Z
63
+ *
64
+ * @param date
65
+ * @param addOffset
66
+ */
67
+ targetDateToBaseDate(date: Date): Date;
68
+ /**
69
+ * Converts the given date into a date relative to the system's date.
70
+ *
71
+ * This is available for cases where the system uses Date's internal functionality (and therefore the system's timezone),
72
+ * and conversions need to be done to/from the system time to the target timezone.
73
+ *
74
+ * For example, if it is 2PM in the input time, the resulting time will be 2PM in the current system time.
75
+ * - Input: 2021-08-16T14:00:00.000-06:00
76
+ * - Output: 2021-08-16T14:00:00.000+02:00
77
+ *
78
+ * @param date
79
+ * @param addOffset
80
+ */
81
+ targetDateToSystemDate(date: Date): Date;
82
+ baseDateToTargetDate(date: Date): Date;
83
+ baseDateToSystemDate(date: Date): Date;
84
+ systemDateToTargetDate(date: Date): Date;
85
+ systemDateToBaseDate(date: Date): Date;
52
86
  }
87
+ export declare function calculateAllConversions(date: Date, converter: DateTimezoneBaseDateConverter, map?: (time: Milliseconds) => number): any;
53
88
  /**
54
89
  * Used for converting Dates to/from a UTC "base date" to a "normal date".
55
90
  *
@@ -58,17 +93,18 @@ export interface DateTimezoneBaseDateConverter extends InternalDateTimezoneBaseD
58
93
  export declare class DateTimezoneUtcNormalInstance implements DateTimezoneBaseDateConverter {
59
94
  readonly config: DateTimezoneConversionConfig;
60
95
  readonly hasConversion: boolean;
61
- private readonly _converter;
96
+ private readonly _getOffset;
62
97
  constructor(config: Maybe<TimezoneString> | DateTimezoneConversionConfig);
63
- getCurrentOffset(date: Date): number;
64
- baseDateToNormalDate(date: Date): Date;
65
- normalDateToBaseDate(date: Date): Date;
66
- _baseDateToNormalDate(date: Date, config: DateTimezoneConversionFnConfig): Date;
67
- _normalDateToBaseDate(date: Date, config: DateTimezoneConversionFnConfig): Date;
68
- _calculateAddFromConfig(date: Date, config: DateTimezoneConversionFnConfig): number;
98
+ private _computeOffsetDate;
99
+ getCurrentOffset(date: Date, from: DateTimezoneConversionTarget, to: DateTimezoneConversionTarget): number;
100
+ targetDateToBaseDate(date: Date): Date;
101
+ baseDateToTargetDate(date: Date): Date;
102
+ baseDateToSystemDate(date: Date): Date;
103
+ systemDateToBaseDate(date: Date): Date;
104
+ targetDateToSystemDate(date: Date): Date;
105
+ systemDateToTargetDate(date: Date): Date;
69
106
  }
70
- export declare function baseDateToNormalDate(date: Date, timezone: Maybe<TimezoneString>): Date;
71
- export declare function normalDateToBaseDate(date: Date, timezone: Maybe<TimezoneString>): Date;
107
+ export declare function baseDateToTargetDate(date: Date, timezone: Maybe<TimezoneString>): Date;
108
+ export declare function targetDateToBaseDate(date: Date, timezone: Maybe<TimezoneString>): Date;
72
109
  export declare function systemBaseDateToNormalDate(date: Date): Date;
73
110
  export declare function systemNormalDateToBaseDate(date: Date): Date;
74
- export {};
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.systemNormalDateToBaseDate = exports.systemBaseDateToNormalDate = exports.normalDateToBaseDate = exports.baseDateToNormalDate = exports.DateTimezoneUtcNormalInstance = exports.getCurrentSystemOffsetInMs = exports.isSameDateTimezoneConversionConfig = void 0;
4
- const util_1 = require("@dereekb/util");
3
+ exports.systemNormalDateToBaseDate = exports.systemBaseDateToNormalDate = exports.targetDateToBaseDate = exports.baseDateToTargetDate = exports.DateTimezoneUtcNormalInstance = exports.calculateAllConversions = exports.getCurrentSystemOffsetInMs = exports.isSameDateTimezoneConversionConfig = void 0;
5
4
  const date_fns_1 = require("date-fns");
5
+ const util_1 = require("@dereekb/util");
6
6
  const date_fns_tz_1 = require("date-fns-tz");
7
7
  const date_1 = require("./date");
8
8
  /**
@@ -23,10 +23,31 @@ function isSameDateTimezoneConversionConfig(a, b) {
23
23
  return isSame;
24
24
  }
25
25
  exports.isSameDateTimezoneConversionConfig = isSameDateTimezoneConversionConfig;
26
+ /**
27
+ * Returns the current offset in milliseconds.
28
+ *
29
+ * The offset corresponds positively with the UTC offset, so UTC-6 is negative 6 hours, in milliseconds.
30
+ *
31
+ * @param date Date is required to get the correct offset for the given date.
32
+ * @returns
33
+ */
26
34
  function getCurrentSystemOffsetInMs(date) {
27
- return (0, date_1.minutesToMs)(date.getTimezoneOffset());
35
+ return -(0, date_1.minutesToMs)(date.getTimezoneOffset());
28
36
  }
29
37
  exports.getCurrentSystemOffsetInMs = getCurrentSystemOffsetInMs;
38
+ function calculateAllConversions(date, converter, map = (x) => x) {
39
+ const options = ['target', 'base', 'system'];
40
+ const conversions = {};
41
+ options.forEach((from) => {
42
+ options.forEach((to) => {
43
+ if (from !== to) {
44
+ conversions[`${from}-${to}`] = map(converter.getCurrentOffset(date, from, to));
45
+ }
46
+ });
47
+ });
48
+ return conversions;
49
+ }
50
+ exports.calculateAllConversions = calculateAllConversions;
30
51
  /**
31
52
  * Used for converting Dates to/from a UTC "base date" to a "normal date".
32
53
  *
@@ -58,69 +79,94 @@ class DateTimezoneUtcNormalInstance {
58
79
  }
59
80
  const hasConversion = Boolean(getOffsetInMsFn);
60
81
  if (hasConversion) {
61
- function calculateOffset(date, addOffset = 0) {
62
- const offset = getOffsetInMsFn(date);
63
- const total = offset + addOffset;
64
- return total;
82
+ function calculateOffset(date, fn = getOffsetInMsFn) {
83
+ const offset = fn(date);
84
+ return offset;
85
+ }
86
+ function calculateSystemNormalDifference(date) {
87
+ const normalOffset = calculateOffset(date);
88
+ const systemOffset = getCurrentSystemOffsetInMs(date);
89
+ return -normalOffset + systemOffset;
65
90
  }
66
- this._converter = {
67
- getCurrentOffset: getOffsetInMsFn,
68
- baseDateToNormalDate: (x, addOffset) => {
69
- return (0, date_fns_1.addMilliseconds)(x, -calculateOffset(x, addOffset));
70
- },
71
- normalDateToBaseDate: (x, addOffset) => {
72
- return (0, date_fns_1.addMilliseconds)(x, calculateOffset(x, addOffset));
91
+ this._getOffset = function getCurrentOffset(x, from, to) {
92
+ if (from === to) {
93
+ return 0;
94
+ }
95
+ else {
96
+ const target = `${from}-${to}`;
97
+ let offset;
98
+ switch (target) {
99
+ case 'target-base':
100
+ offset = -calculateOffset(x);
101
+ break;
102
+ case 'base-target':
103
+ offset = calculateOffset(x);
104
+ break;
105
+ case 'target-system':
106
+ offset = calculateSystemNormalDifference(x);
107
+ break;
108
+ case 'system-target':
109
+ offset = -calculateSystemNormalDifference(x);
110
+ break;
111
+ case 'base-system':
112
+ offset = getCurrentSystemOffsetInMs(x);
113
+ break;
114
+ case 'system-base':
115
+ offset = -getCurrentSystemOffsetInMs(x);
116
+ break;
117
+ }
118
+ return offset;
73
119
  }
74
120
  };
75
121
  }
76
122
  else {
77
- this._converter = {
78
- getCurrentOffset: () => 0,
79
- baseDateToNormalDate: (x) => x,
80
- normalDateToBaseDate: (x) => x
81
- };
123
+ this._getOffset = () => 0;
82
124
  }
83
125
  this.hasConversion = hasConversion;
84
126
  }
127
+ _computeOffsetDate(date, from, to) {
128
+ return (0, date_fns_1.addMilliseconds)(date, this._getOffset(date, from, to));
129
+ }
85
130
  // MARK: DateTimezoneBaseDateConverter
86
- getCurrentOffset(date) {
87
- return this._converter.getCurrentOffset(date);
131
+ getCurrentOffset(date, from, to) {
132
+ return this._getOffset(date, from, to);
88
133
  }
89
- baseDateToNormalDate(date) {
90
- return this._converter.baseDateToNormalDate(date);
134
+ targetDateToBaseDate(date) {
135
+ return this._computeOffsetDate(date, 'target', 'base');
91
136
  }
92
- normalDateToBaseDate(date) {
93
- return this._converter.normalDateToBaseDate(date);
137
+ baseDateToTargetDate(date) {
138
+ return this._computeOffsetDate(date, 'base', 'target');
94
139
  }
95
- _baseDateToNormalDate(date, config) {
96
- return this._converter.baseDateToNormalDate(date, this._calculateAddFromConfig(date, config));
140
+ baseDateToSystemDate(date) {
141
+ return this._computeOffsetDate(date, 'base', 'system');
97
142
  }
98
- _normalDateToBaseDate(date, config) {
99
- return this._converter.normalDateToBaseDate(date, this._calculateAddFromConfig(date, config));
143
+ systemDateToBaseDate(date) {
144
+ return this._computeOffsetDate(date, 'system', 'base');
100
145
  }
101
- _calculateAddFromConfig(date, config) {
102
- let add = 0;
103
- if (config.betweenSystemAndOffset) {
104
- add = getCurrentSystemOffsetInMs(date);
105
- }
106
- return add;
146
+ targetDateToSystemDate(date) {
147
+ return this._computeOffsetDate(date, 'target', 'system');
148
+ }
149
+ systemDateToTargetDate(date) {
150
+ return this._computeOffsetDate(date, 'system', 'target');
107
151
  }
108
152
  }
109
153
  exports.DateTimezoneUtcNormalInstance = DateTimezoneUtcNormalInstance;
110
- function baseDateToNormalDate(date, timezone) {
111
- return new DateTimezoneUtcNormalInstance(timezone).baseDateToNormalDate(date);
154
+ function baseDateToTargetDate(date, timezone) {
155
+ const instance = new DateTimezoneUtcNormalInstance(timezone);
156
+ const result = instance.baseDateToTargetDate(date);
157
+ return result;
112
158
  }
113
- exports.baseDateToNormalDate = baseDateToNormalDate;
114
- function normalDateToBaseDate(date, timezone) {
115
- return new DateTimezoneUtcNormalInstance(timezone).normalDateToBaseDate(date);
159
+ exports.baseDateToTargetDate = baseDateToTargetDate;
160
+ function targetDateToBaseDate(date, timezone) {
161
+ return new DateTimezoneUtcNormalInstance(timezone).targetDateToBaseDate(date);
116
162
  }
117
- exports.normalDateToBaseDate = normalDateToBaseDate;
163
+ exports.targetDateToBaseDate = targetDateToBaseDate;
118
164
  function systemBaseDateToNormalDate(date) {
119
- return new DateTimezoneUtcNormalInstance({ useSystemTimezone: true }).baseDateToNormalDate(date);
165
+ return new DateTimezoneUtcNormalInstance({ useSystemTimezone: true }).baseDateToTargetDate(date);
120
166
  }
121
167
  exports.systemBaseDateToNormalDate = systemBaseDateToNormalDate;
122
168
  function systemNormalDateToBaseDate(date) {
123
- return new DateTimezoneUtcNormalInstance({ useSystemTimezone: true }).normalDateToBaseDate(date);
169
+ return new DateTimezoneUtcNormalInstance({ useSystemTimezone: true }).targetDateToBaseDate(date);
124
170
  }
125
171
  exports.systemNormalDateToBaseDate = systemNormalDateToBaseDate;
126
172
  //# sourceMappingURL=date.timezone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.timezone.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.timezone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.timezone.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.timezone.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Maybe, UnixDateTimeNumber } from '@dereekb/util';
1
+ import { DateOrUnixDateTimeNumber, Maybe } from '@dereekb/util';
2
2
  /**
3
3
  * An object that can expire.
4
4
  */
@@ -20,15 +20,22 @@ export declare function atleastOneNotExpired(expires: Maybe<Expires>[]): boolean
20
20
  * If the list is empty, returns the second argument, or true by default.
21
21
  */
22
22
  export declare function anyHaveExpired(expires: Maybe<Expires>[], expireIfEmpty?: boolean): boolean;
23
- export declare function timeNumberHasExpired(timeNumber: UnixDateTimeNumber, expiresIn?: number): boolean;
24
23
  /**
25
- * Creates an Expires object from the input time number.
24
+ * Convenience function for checking if the input time has expired.
25
+ *
26
+ * @param timeNumber
27
+ * @param expiresIn
28
+ * @returns
29
+ */
30
+ export declare function timeHasExpired(time: Maybe<DateOrUnixDateTimeNumber>, expiresIn?: number): boolean;
31
+ /**
32
+ * Creates an Expires object from the input date or time number.
26
33
  *
27
34
  * @param timeNumber Number to convert to a date.
28
35
  * @param expiresIn If the input number is the initial date, and not the
29
36
  * expiration date, this is used to find the expiresAt time.
30
37
  */
31
- export declare function timeNumberToExpires(timeNumber: UnixDateTimeNumber, expiresIn?: number): Expires;
38
+ export declare function toExpires(time: Maybe<DateOrUnixDateTimeNumber>, expiresIn?: number): Expires;
32
39
  /**
33
40
  * Checks whether or not the item has expired. If no expiration date is set, it is considered expired.
34
41
  */
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getExpiration = exports.hasExpired = exports.timeNumberToExpires = exports.timeNumberHasExpired = exports.anyHaveExpired = exports.atleastOneNotExpired = void 0;
4
- const date_1 = require("@dereekb/date");
3
+ exports.getExpiration = exports.hasExpired = exports.toExpires = exports.timeHasExpired = exports.anyHaveExpired = exports.atleastOneNotExpired = void 0;
4
+ const date_unix_1 = require("../date/date.unix");
5
5
  const date_fns_1 = require("date-fns");
6
6
  /**
7
7
  * Returns true if any of the input items have expired.
@@ -34,19 +34,26 @@ function anyHaveExpired(expires, expireIfEmpty = true) {
34
34
  return false;
35
35
  }
36
36
  exports.anyHaveExpired = anyHaveExpired;
37
- function timeNumberHasExpired(timeNumber, expiresIn) {
38
- return hasExpired(timeNumberToExpires(timeNumber, expiresIn));
37
+ /**
38
+ * Convenience function for checking if the input time has expired.
39
+ *
40
+ * @param timeNumber
41
+ * @param expiresIn
42
+ * @returns
43
+ */
44
+ function timeHasExpired(time, expiresIn) {
45
+ return hasExpired(toExpires(time, expiresIn));
39
46
  }
40
- exports.timeNumberHasExpired = timeNumberHasExpired;
47
+ exports.timeHasExpired = timeHasExpired;
41
48
  /**
42
- * Creates an Expires object from the input time number.
49
+ * Creates an Expires object from the input date or time number.
43
50
  *
44
51
  * @param timeNumber Number to convert to a date.
45
52
  * @param expiresIn If the input number is the initial date, and not the
46
53
  * expiration date, this is used to find the expiresAt time.
47
54
  */
48
- function timeNumberToExpires(timeNumber, expiresIn) {
49
- let expiresAt = (0, date_1.dateFromDateOrTimeNumber)(timeNumber);
55
+ function toExpires(time, expiresIn) {
56
+ let expiresAt = (0, date_unix_1.dateFromDateOrTimeNumber)(time);
50
57
  if (expiresAt && expiresIn) {
51
58
  expiresAt = (0, date_fns_1.addMilliseconds)(expiresAt, expiresIn);
52
59
  }
@@ -54,7 +61,7 @@ function timeNumberToExpires(timeNumber, expiresIn) {
54
61
  expiresAt
55
62
  };
56
63
  }
57
- exports.timeNumberToExpires = timeNumberToExpires;
64
+ exports.toExpires = toExpires;
58
65
  /**
59
66
  * Checks whether or not the item has expired. If no expiration date is set, it is considered expired.
60
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"expires.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/expires/expires.ts"],"names":[],"mappings":";;;AAAA,wCAAyD;AAEzD,uCAA+D;AAY/D;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,OAAyB;IAC5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,oDAQC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAyB,EAAE,aAAa,GAAG,IAAI;IAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,aAAa,CAAC;KACtB;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,wCAYC;AAED,SAAgB,oBAAoB,CAAC,UAA8B,EAAE,SAAkB;IACrF,OAAO,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,CAAC;AAFD,oDAEC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,UAA8B,EAAE,SAAkB;IACpF,IAAI,SAAS,GAAG,IAAA,+BAAwB,EAAC,UAAU,CAAC,CAAC;IAErD,IAAI,SAAS,IAAI,SAAS,EAAE;QAC1B,SAAS,GAAG,IAAA,0BAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KACnD;IAED,OAAO;QACL,SAAS;KACV,CAAC;AACJ,CAAC;AAVD,kDAUC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAuB;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAHD,gCAGC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAuB;;IACnD,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,IAAA,qBAAU,EAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"expires.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/expires/expires.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAE7D,uCAA+D;AAY/D;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,OAAyB;IAC5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,oDAQC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAyB,EAAE,aAAa,GAAG,IAAI;IAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,aAAa,CAAC;KACtB;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,wCAYC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,IAAqC,EAAE,SAAkB;IACtF,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,wCAEC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,IAAqC,EAAE,SAAkB;IACjF,IAAI,SAAS,GAAG,IAAA,oCAAwB,EAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,SAAS,IAAI,SAAS,EAAE;QAC1B,SAAS,GAAG,IAAA,0BAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KACnD;IAED,OAAO;QACL,SAAS;KACV,CAAC;AACJ,CAAC;AAVD,8BAUC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAuB;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAHD,gCAGC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAuB;;IACnD,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,IAAA,qBAAU,EAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,30 @@
1
+ import { Milliseconds, DateOrUnixDateTimeNumber } from "@dereekb/util";
2
+ import { MonoTypeOperatorFunction, Observable, OperatorFunction } from "rxjs";
3
+ import { Expires } from "./expires";
4
+ /**
5
+ * Creates a new Expires object at the current time on emission that will expire in the set amount of time.
6
+ *
7
+ * @param expiresIn
8
+ * @returns
9
+ */
10
+ export declare function toExpiration<T>(expiresIn: number): OperatorFunction<T, Expires>;
11
+ /**
12
+ * Filters further emissions once the input is expired.
13
+ */
14
+ export declare function skipExpired<T extends Expires>(): MonoTypeOperatorFunction<T>;
15
+ /**
16
+ * Skips the input date or timenumber until expiration occurs.
17
+ */
18
+ export declare function skipUntilExpiration(expiresIn?: number): MonoTypeOperatorFunction<DateOrUnixDateTimeNumber>;
19
+ /**
20
+ * Skips the input date or timenumber after expiration occurs.
21
+ */
22
+ export declare function skipAfterExpiration(expiresIn?: number): MonoTypeOperatorFunction<DateOrUnixDateTimeNumber>;
23
+ /**
24
+ * Skips emissions until time since the last emission from the watch observable has elapsed.
25
+ */
26
+ export declare function skipUntilTimeElapsedAfterLastEmission<T>(watch: Observable<any>, takeFor: Milliseconds): MonoTypeOperatorFunction<T>;
27
+ /**
28
+ * Takes emissions until time since the last emission from the watch observable has elapsed.
29
+ */
30
+ export declare function takeAfterTimeElapsedSinceLastEmission<T>(watch: Observable<any>, skipFor: Milliseconds): MonoTypeOperatorFunction<T>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.takeAfterTimeElapsedSinceLastEmission = exports.skipUntilTimeElapsedAfterLastEmission = exports.skipAfterExpiration = exports.skipUntilExpiration = exports.skipExpired = exports.toExpiration = void 0;
4
+ const date_1 = require("@dereekb/date");
5
+ const rxjs_1 = require("rxjs");
6
+ const expires_1 = require("./expires");
7
+ /**
8
+ * Creates a new Expires object at the current time on emission that will expire in the set amount of time.
9
+ *
10
+ * @param expiresIn
11
+ * @returns
12
+ */
13
+ function toExpiration(expiresIn) {
14
+ return (0, rxjs_1.map)(_ => (0, expires_1.toExpires)(new Date(), expiresIn));
15
+ }
16
+ exports.toExpiration = toExpiration;
17
+ /**
18
+ * Filters further emissions once the input is expired.
19
+ */
20
+ function skipExpired() {
21
+ return (0, rxjs_1.filter)(expires => !(0, expires_1.hasExpired)(expires));
22
+ }
23
+ exports.skipExpired = skipExpired;
24
+ /**
25
+ * Skips the input date or timenumber until expiration occurs.
26
+ */
27
+ function skipUntilExpiration(expiresIn) {
28
+ return (0, rxjs_1.filter)(x => (0, date_1.timeHasExpired)(x, expiresIn));
29
+ }
30
+ exports.skipUntilExpiration = skipUntilExpiration;
31
+ /**
32
+ * Skips the input date or timenumber after expiration occurs.
33
+ */
34
+ function skipAfterExpiration(expiresIn) {
35
+ return (0, rxjs_1.filter)(x => !(0, date_1.timeHasExpired)(x, expiresIn));
36
+ }
37
+ exports.skipAfterExpiration = skipAfterExpiration;
38
+ /**
39
+ * Skips emissions until time since the last emission from the watch observable has elapsed.
40
+ */
41
+ function skipUntilTimeElapsedAfterLastEmission(watch, takeFor) {
42
+ return (observable) => {
43
+ return watch.pipe((0, rxjs_1.switchMap)(() => {
44
+ const expires = (0, expires_1.toExpires)(new Date(), takeFor);
45
+ return observable.pipe((0, rxjs_1.takeWhile)(_ => !(0, expires_1.hasExpired)(expires)));
46
+ }));
47
+ };
48
+ }
49
+ exports.skipUntilTimeElapsedAfterLastEmission = skipUntilTimeElapsedAfterLastEmission;
50
+ /**
51
+ * Takes emissions until time since the last emission from the watch observable has elapsed.
52
+ */
53
+ function takeAfterTimeElapsedSinceLastEmission(watch, skipFor) {
54
+ return (observable) => {
55
+ return watch.pipe((0, rxjs_1.switchMap)(() => {
56
+ const expires = (0, expires_1.toExpires)(new Date(), skipFor);
57
+ return observable.pipe((0, rxjs_1.skipWhile)(_ => !(0, expires_1.hasExpired)(expires)));
58
+ }));
59
+ };
60
+ }
61
+ exports.takeAfterTimeElapsedSinceLastEmission = takeAfterTimeElapsedSinceLastEmission;
62
+ //# sourceMappingURL=expires.rxjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expires.rxjs.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/expires/expires.rxjs.ts"],"names":[],"mappings":";;;AAAA,wCAA+C;AAE/C,+BAAuI;AACvI,uCAA2D;AAE3D;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,SAAiB;IAC/C,OAAO,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,CAAC,IAAA,mBAAS,EAAC,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,CAAC;AAFD,oCAEC;AAED;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO,IAAA,aAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,kCAEC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,SAAkB;IACpD,OAAO,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,IAAA,qBAAc,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,kDAEC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,SAAkB;IACpD,OAAO,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,qBAAc,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,CAAC;AAFD,kDAEC;AAED;;GAEG;AACH,SAAgB,qCAAqC,CAAI,KAAsB,EAAE,OAAqB;IACpG,OAAO,CAAC,UAAyB,EAAE,EAAE;QACnC,OAAO,KAAK,CAAC,IAAI,CACf,IAAA,gBAAS,EAAC,GAAG,EAAE;YACb,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AATD,sFASC;AAED;;GAEG;AACH,SAAgB,qCAAqC,CAAI,KAAsB,EAAE,OAAqB;IACpG,OAAO,CAAC,UAAyB,EAAE,EAAE;QACnC,OAAO,KAAK,CAAC,IAAI,CACf,IAAA,gBAAS,EAAC,GAAG,EAAE;YACb,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AATD,sFASC"}
@@ -1 +1,2 @@
1
1
  export * from './expires';
2
+ export * from './expires.rxjs';
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  (0, tslib_1.__exportStar)(require("./expires"), exports);
5
+ (0, tslib_1.__exportStar)(require("./expires.rxjs"), exports);
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/expires/index.ts"],"names":[],"mappings":";;;AAAA,yDAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/expires/index.ts"],"names":[],"mappings":";;;AAAA,yDAA0B;AAC1B,8DAA+B"}
@@ -13,15 +13,19 @@ class DateRRuleInstance {
13
13
  const tzid = rrule.origOptions.tzid;
14
14
  let dtstart = rrule.origOptions.dtstart;
15
15
  const timezone = tzid || options.timezone;
16
+ /**
17
+ * The normal instance for DateRRuleInstance is used backwards in most cases because DateRRule always
18
+ * parses dates as UTC, so we handle all input dates as base dates, an
19
+ */
16
20
  this.normalInstance = new date_timezone_1.DateTimezoneUtcNormalInstance(timezone);
17
21
  if (dtstart && tzid) {
18
22
  // Date was passed to both. The dtstart is the base UTC date, but correct for RRule.
19
23
  }
20
24
  else if (timezone) {
21
25
  const startsAt = (_a = options.date) === null || _a === void 0 ? void 0 : _a.startsAt;
22
- // If startsAt is provided, need to change it to start from the "weird" UTC date, if any timezone is provided.
26
+ // If startsAt is provided, need to change it to start from the base UTC date, if any timezone is provided.
23
27
  if (startsAt) {
24
- const baseStartDate = this.normalInstance.normalDateToBaseDate(startsAt);
28
+ const baseStartDate = this.normalInstance.baseDateToTargetDate(startsAt);
25
29
  dtstart = baseStartDate;
26
30
  }
27
31
  }
@@ -55,9 +59,9 @@ class DateRRuleInstance {
55
59
  return this.normalInstance.config.timezone;
56
60
  }
57
61
  nextRecurrenceDate(from = new Date()) {
58
- const baseFrom = this.normalInstance.normalDateToBaseDate(from);
62
+ const baseFrom = this.normalInstance.baseDateToTargetDate(from);
59
63
  const rawNext = this.rrule.next(baseFrom);
60
- const next = (rawNext) ? this.normalInstance.baseDateToNormalDate(rawNext) : undefined;
64
+ const next = (rawNext) ? this.normalInstance.targetDateToBaseDate(rawNext) : undefined;
61
65
  return next;
62
66
  }
63
67
  /**
@@ -71,11 +75,12 @@ class DateRRuleInstance {
71
75
  let between;
72
76
  if (options.range || options.rangeParams) {
73
77
  between = (_a = options.range) !== null && _a !== void 0 ? _a : (0, date_1.makeDateRange)(options.rangeParams);
74
- between.start = this.normalInstance.normalDateToBaseDate(between.start);
75
- between.end = this.normalInstance.normalDateToBaseDate(between.end);
78
+ between.start = this.normalInstance.baseDateToTargetDate(between.start);
79
+ between.end = this.normalInstance.baseDateToTargetDate(between.end);
76
80
  }
77
81
  let startsAtDates;
78
82
  if (between) {
83
+ // This finds all
79
84
  startsAtDates = this.rrule.between(between.start, between.end, true);
80
85
  }
81
86
  else if (this.hasForeverRange()) {
@@ -89,7 +94,7 @@ class DateRRuleInstance {
89
94
  let dates = allDates;
90
95
  // Fix Dates w/ Timezones
91
96
  if (this.normalInstance.hasConversion) {
92
- dates = dates.map((x) => (Object.assign(Object.assign({}, x), { startsAt: this.normalInstance.baseDateToNormalDate(x.startsAt) })));
97
+ dates = dates.map((x) => (Object.assign(Object.assign({}, x), { startsAt: this.normalInstance.targetDateToBaseDate(x.startsAt) })));
93
98
  }
94
99
  // Exclude dates
95
100
  const exclude = this.options.exclude;
@@ -105,8 +110,8 @@ class DateRRuleInstance {
105
110
  * Returns true if there is a single date within the range.
106
111
  */
107
112
  haveRecurrenceInDateRange(dateRange) {
108
- const baseStart = this.normalInstance.normalDateToBaseDate(dateRange.start);
109
- const baseEnd = this.normalInstance.normalDateToBaseDate(dateRange.end);
113
+ const baseStart = this.normalInstance.targetDateToBaseDate(dateRange.start);
114
+ const baseEnd = this.normalInstance.targetDateToBaseDate(dateRange.end);
110
115
  return this.rrule.any({ minDate: baseStart, maxDate: baseEnd });
111
116
  }
112
117
  /**
@@ -135,7 +140,7 @@ class DateRRuleInstance {
135
140
  }
136
141
  // Fix Dates w/ timezone.
137
142
  if (this.normalInstance.hasConversion) {
138
- const [startF, endF] = [start, end].filter(x => Boolean(x)).map(x => this.normalInstance.baseDateToNormalDate(x));
143
+ const [startF, endF] = [start, end].filter(x => Boolean(x)).map(x => this.normalInstance.baseDateToTargetDate(x));
139
144
  start = startF;
140
145
  end = endF;
141
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date.rrule.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AACvC,kCAAmI;AACnI,yDAAqF;AACrF,iEAAmD;AACnD,yDAAqH;AAmGrH,MAAa,iBAAiB;IAuB5B,YAAY,KAAY,EAAW,OAAiC;;QAAjC,YAAO,GAAP,OAAO,CAA0B;QAElE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,6CAA6B,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,oFAAoF;SACrF;aAAM,IAAI,QAAQ,EAAE;YACnB,MAAM,QAAQ,GAAgB,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,CAAC;YAErD,8GAA8G;YAC9G,IAAI,QAAQ,EAAE;gBACZ,MAAM,aAAa,GAAuB,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC7F,OAAO,GAAG,aAAa,CAAC;aACzB;SACF;aAAM;YACL,oFAAoF;YACpF,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,CAAC;SAC7C;QAED,MAAM,YAAY,mCACb,KAAK,CAAC,WAAW;YACpB,QAAQ;YACR,OAAO,GACR,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;SAC7F;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,gCAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IApDD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAA6B;;QACvC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACpE;QAED,MAAM,kBAAkB,GAAG,MAAA,MAAM,CAAC,kBAAkB,mCAAI,wCAAqB,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;QACnH,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,OAAO,CAAC,OAAO,0CAAE,WAAW,EAAE,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,IAAI,gCAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,iBAAiB,CAAC,KAAK,kCAC7B,MAAM,CAAC,OAAO,KACjB,OAAO,IACP,CAAC;IACL,CAAC;IAsCD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAS,CAAC;IAC9C,CAAC;IAED,kBAAkB,CAAC,OAAa,IAAI,IAAI,EAAE;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAqB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAkC;;QACvC,IAAI,OAAyB,CAAC;QAE9B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE;YACxC,OAAO,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAA,oBAAa,EAAC,OAAO,CAAC,WAAY,CAAC,CAAC;YAC/D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACrE;QAED,IAAI,aAAqB,CAAC;QAE1B,IAAI,OAAO,EAAE;YACX,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACtE;aAAM,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;aAAM;YACL,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAClC;QAED,MAAM,aAAa,GAAiB,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC;QACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,iCAAM,aAAa,KAAE,QAAQ,IAAG,CAAC,CAAC,CAAC,8BAA8B;QAChH,IAAI,KAAK,GAAmB,QAAQ,CAAC;QAErC,yBAAyB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;YACrC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAM,CAAC,KAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAG,CAAC,CAAC;SACtG;QAED,gBAAgB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,IAAI,OAAO,EAAE;YACX,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrD;QAED,OAAO;YACL,OAAO;YACP,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,SAAoB;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvC,IAAI,KAAK,GAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,IAAI,GAAS,CAAC;QACd,IAAI,qBAAuC,CAAC;QAE5C,IAAI,OAAO,EAAE;YACX,GAAG,GAAG,IAAA,oBAAa,GAAE,CAAC;YACtB,qBAAqB,GAAG,SAAS,CAAC;SACnC;aAAM;YAEL,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC9C;iBAAM;gBACL,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAG,CAAC;aAC1B;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC;YACzC,MAAM,wBAAwB,GAAG,IAAA,8BAAuB,kCACnD,aAAa,KAChB,QAAQ,EAAE,GAAG,IACb,CAAC;YAEH,qBAAqB,GAAG,wBAAwB,CAAC,GAAG,CAAC;SACtD;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;YACrC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClH,KAAK,GAAG,MAAM,CAAC;YACf,GAAG,GAAG,IAAI,CAAC;SACZ;QAED,OAAO;YACL,OAAO;YACP,KAAK;YACL,GAAG;YACH,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;CAEF;AAnLD,8CAmLC;AAWD,MAAa,gBAAgB;IAE3B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAwC;;QACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAA6B;QAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;IACd,MAAM,CAAC,cAAc,CAAC,kBAAsC;QAC1D,MAAM,KAAK,GAA6B,wCAAqB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;QAC/G,MAAM,KAAK,GAAG,wCAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,aAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE7C,uCACK,KAAK,KACR,OAAO,EAAE,WAAW,IACpB;IACJ,CAAC;CAEF;AA9BD,4CA8BC"}
1
+ {"version":3,"file":"date.rrule.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { TimezoneString, CommaSeparatedString, Maybe } from '@dereekb/util';
1
+ import { CommaSeparatedString, Maybe } from '@dereekb/util';
2
2
  import { DateSet } from '../date';
3
+ import { DateTimezoneBaseDateConverter } from '../date/date.timezone';
3
4
  /**
4
5
  * Denotes a single RRule rules string.
5
6
  */
@@ -97,12 +98,13 @@ export declare class DateRRuleParseUtility {
97
98
  static separateRRuleStringSetValues(input: RRuleStringLineSet): RRuleStringSetSeparation;
98
99
  static parseExdateAttributeFromLine(line: RRuleLineString): RRuleExdateAttribute;
99
100
  static parseExdateAttributeFromProperty(property: RRuleProperty): RRuleExdateAttribute;
101
+ static parseDateTimeStringWithTimezone(rfcDateString: RFC5545DateString | RFC5545DateTimeString, timezone: Maybe<string>): Date;
100
102
  /**
101
103
  * Parses the input Date-Time string.
102
104
  *
103
105
  * Timezone used to convert date to UTC if date is not specified in UTC (ends in Z).
104
106
  */
105
- static parseDateTimeString(rfcDateString: RFC5545DateString | RFC5545DateTimeString, timezone?: Maybe<TimezoneString>): Date;
107
+ static parseDateTimeString(rfcDateString: RFC5545DateString | RFC5545DateTimeString, converter: Maybe<DateTimezoneBaseDateConverter>): Date;
106
108
  static formatDateTimeString(date: Date): RFC5545DateTimeString;
107
109
  static parseProperty(line: RRuleLineString): RRuleProperty;
108
110
  static propertyFromRawLine(rawLine: RRuleRawLine): RRuleProperty;
@@ -40,18 +40,22 @@ class DateRRuleParseUtility {
40
40
  var _a;
41
41
  const timezone = (_a = property.params.find(x => x.key === 'TZID')) === null || _a === void 0 ? void 0 : _a.value;
42
42
  const rawDates = property.values.split(',');
43
- const dates = rawDates.map(x => DateRRuleParseUtility.parseDateTimeString(x, timezone));
43
+ const conversion = new date_timezone_1.DateTimezoneUtcNormalInstance({ timezone });
44
+ const dates = rawDates.map(x => DateRRuleParseUtility.parseDateTimeString(x, conversion));
44
45
  return {
45
46
  timezone,
46
47
  dates
47
48
  };
48
49
  }
50
+ static parseDateTimeStringWithTimezone(rfcDateString, timezone) {
51
+ return DateRRuleParseUtility.parseDateTimeString(rfcDateString, timezone ? new date_timezone_1.DateTimezoneUtcNormalInstance({ timezone }) : undefined);
52
+ }
49
53
  /**
50
54
  * Parses the input Date-Time string.
51
55
  *
52
56
  * Timezone used to convert date to UTC if date is not specified in UTC (ends in Z).
53
57
  */
54
- static parseDateTimeString(rfcDateString, timezone) {
58
+ static parseDateTimeString(rfcDateString, converter) {
55
59
  const RFC5545_DATE_TIME_FORMAT = /^((\d{4})(\d{2})(\d{2}))(T(\d{2})(\d{2})(\d{2})Z?)?$/;
56
60
  const isDateString = (rfcDateString.length === 6);
57
61
  const isUTCDate = isDateString || rfcDateString.endsWith('Z');
@@ -64,9 +68,9 @@ class DateRRuleParseUtility {
64
68
  const utcDate = new Date(Date.UTC(year, (month - 1), day, hour, minute, second));
65
69
  let date = utcDate;
66
70
  if (!isUTCDate) {
67
- // Date was provided in a local timezone value. Convert to UTC.
68
- if (timezone) {
69
- date = (0, date_timezone_1.baseDateToNormalDate)(utcDate, timezone);
71
+ // Date was parsed as a base/UTC value by rrule, so convert it to the real date.
72
+ if (converter) {
73
+ date = converter.baseDateToTargetDate(date);
70
74
  }
71
75
  else {
72
76
  throw new Error('No timezone was provided when parsing DateTime string.');
@@ -1 +1 @@
1
- {"version":3,"file":"date.rrule.parse.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.rrule.parse.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.parse.ts"],"names":[],"mappings":"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"}