iamcal 3.0.3 → 4.0.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/README.md CHANGED
@@ -19,7 +19,7 @@ Below is an example of editing a calendar file.
19
19
  ```typescript
20
20
  import { Calendar, dump, parseCalendar } from 'iamcal'
21
21
 
22
- const calendar: Calendar = await parseCalendar(`
22
+ const calendar: Calendar = parseCalendar(`
23
23
  BEGIN:VCALENDAR
24
24
  VERSION:2.0
25
25
  PRODID:example
@@ -40,7 +40,7 @@ calendar.getEvents().forEach(event => {
40
40
  }
41
41
  })
42
42
 
43
- await dump(calendar, './new_calendar.ics')
43
+ dumpCalendarSync(calendar, './new_calendar.ics')
44
44
  ```
45
45
 
46
46
  Running the code will produce the file `new_calendar.ics`:
@@ -1,4 +1,5 @@
1
1
  import { CalendarDateOrTime } from './date';
2
+ import { CalendarDuration } from './duration';
2
3
  import { Property } from './property/Property';
3
4
  import type { AllowedPropertyName } from './property/names';
4
5
  /**
@@ -21,7 +22,7 @@ export declare class Component {
21
22
  constructor(name: string, properties?: Property[], components?: Component[]);
22
23
  serialize(): string;
23
24
  getProperty(name: string): Property | null;
24
- setProperty(name: string, value: string | CalendarDateOrTime): this;
25
+ setProperty(name: string, value: string | CalendarDateOrTime | CalendarDuration): this;
25
26
  /**
26
27
  * Add a property to this component.
27
28
  * @param property The property to add.
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,kBAAkB,CAAA;AAO9E;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI9B;AACD,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,UAAU,EAAE,SAAS,EAAE,CAAA;gBAGnB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,QAAQ,EAAE,EACvB,UAAU,CAAC,EAAE,SAAS,EAAE;IAkB5B,SAAS,IAAI,MAAM;IAqBnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAS1C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IA8BnE;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAMrC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAYlD,wBAAwB,CAAC,IAAI,EAAE,MAAM;IAOrC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKxC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAK5C;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAU9C,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;IAYhD;;;;;;;;;OASG;IACH,QAAQ,IAAI,IAAI;IAEhB;;;;;OAKG;IACH,wBAAwB,CAAC,YAAY,EAAE,mBAAmB;IAS1D;;;;OAIG;IACH,wBAAwB,CAAC,YAAY,EAAE,mBAAmB;IAK1D;;;;;;;OAOG;IACH,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,mBAAmB,EAAE;CAmBnE"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,kBAAkB,CAAA;AAO9E;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI9B;AACD,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,UAAU,EAAE,SAAS,EAAE,CAAA;gBAGnB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,QAAQ,EAAE,EACvB,UAAU,CAAC,EAAE,SAAS,EAAE;IAkB5B,SAAS,IAAI,MAAM;IAqBnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAS1C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,IAAI;IAqBtF;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAMrC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAYlD,wBAAwB,CAAC,IAAI,EAAE,MAAM;IAOrC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKxC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAK5C;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAU9C,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;IAYhD;;;;;;;;;OASG;IACH,QAAQ,IAAI,IAAI;IAEhB;;;;;OAKG;IACH,wBAAwB,CAAC,YAAY,EAAE,mBAAmB;IAS1D;;;;OAIG;IACH,wBAAwB,CAAC,YAAY,EAAE,mBAAmB;IAK1D;;;;;;;OAOG;IACH,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,mBAAmB,EAAE;CAmBnE"}
package/lib/component.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Component = exports.IllegalOperationError = exports.ComponentValidationError = void 0;
4
+ const date_1 = require("./date");
4
5
  const Property_1 = require("./property/Property");
5
6
  const validate_1 = require("./property/validate");
6
7
  /**
@@ -73,24 +74,21 @@ class Component {
73
74
  for (const property of this.properties) {
74
75
  if (property.name !== name)
75
76
  continue;
76
- if (typeof value === 'string') {
77
- property.value = value;
78
- return this;
79
- }
80
- const dateProperty = Property_1.Property.fromDate(name, value);
81
- // Update value type
82
- if (dateProperty.getValueType() === 'DATE')
83
- property.setValueType('DATE');
84
- else
85
- property.removeValueType();
86
- // Update value
87
- property.value = dateProperty.value;
77
+ property.setValue(value);
88
78
  return this;
89
79
  }
90
80
  // Property is new
91
- this.properties.push(typeof value === 'string'
92
- ? new Property_1.Property(name, value)
93
- : Property_1.Property.fromDate(name, value));
81
+ let property;
82
+ if (typeof value === 'string') {
83
+ property = new Property_1.Property(name, value);
84
+ }
85
+ else if ((0, date_1.isCalendarDateOrTime)(value)) {
86
+ property = Property_1.Property.fromDate(name, value);
87
+ }
88
+ else {
89
+ property = Property_1.Property.fromDuration(name, value);
90
+ }
91
+ this.properties.push(property);
94
92
  return this;
95
93
  }
96
94
  /**
@@ -214,4 +212,4 @@ class Component {
214
212
  }
215
213
  }
216
214
  exports.Component = Component;
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrREFBOEM7QUFFOUMsa0RBSTRCO0FBRTVCOztHQUVHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxLQUFLO0lBQy9DLFlBQVksT0FBZTtRQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFBO0lBQzFDLENBQUM7Q0FDSjtBQUxELDREQUtDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxLQUFLO0lBQzVDLFlBQVksT0FBZTtRQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFBO0lBQ3ZDLENBQUM7Q0FDSjtBQUxELHNEQUtDO0FBQ0QsTUFBYSxTQUFTO0lBQ2xCLElBQUksQ0FBUTtJQUNaLFVBQVUsQ0FBWTtJQUN0QixVQUFVLENBQWE7SUFFdkIsWUFDSSxJQUFZLEVBQ1osVUFBdUIsRUFDdkIsVUFBd0I7UUFFeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBO1lBQ3BCLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDOUIsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ3hCLENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMs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
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUU7QUFFakUsa0RBQThDO0FBRTlDLGtEQUk0QjtBQUU1Qjs7R0FFRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsS0FBSztJQUMvQyxZQUFZLE9BQWU7UUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQTtJQUMxQyxDQUFDO0NBQ0o7QUFMRCw0REFLQztBQUVEOzs7R0FHRztBQUNILE1BQWEscUJBQXNCLFNBQVEsS0FBSztJQUM1QyxZQUFZLE9BQWU7UUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQTtJQUN2QyxDQUFDO0NBQ0o7QUFMRCxzREFLQztBQUNELE1BQWEsU0FBUztJQUNsQixJQUFJLENBQVE7SUFDWixVQUFVLENBQVk7SUFDdEIsVUFBVSxDQUFhO0lBRXZCLFlBQ0ksSUFBWSxFQUNaLFVBQXVCLEVBQ3ZCLFVBQXdCO1FBRXhCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtZQUNwQixVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzlCLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUN4QixDQUFDO1FBQ0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lB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
@@ -1,5 +1,14 @@
1
1
  import { Component } from '../component';
2
2
  import { CalendarDateOrTime, CalendarDateTime } from '../date';
3
+ import { CalendarDuration } from '../duration';
4
+ export declare const DEFAULT_EVENT_DURATION_DATE_TIME: CalendarDuration;
5
+ export declare const DEFAULT_EVENT_DURATION_DATE: CalendarDuration;
6
+ /**
7
+ * Get the default event duration for an event without an end nor duration.
8
+ * @param isFullDay Whether the event is a full day event.
9
+ * @returns `DEFAULT_EVENT_DURATION_DATE` for full day events, `DEFAULT_EVENT_DURATION_DATE_TIME` for other events.
10
+ */
11
+ export declare function getDefaultEventDuration(isFullDay: boolean): CalendarDuration;
3
12
  /**
4
13
  * Represents a VEVENT component, representing an event in a calendar.
5
14
  */
@@ -34,10 +43,20 @@ export declare class CalendarEvent extends Component {
34
43
  */
35
44
  setStart(value: CalendarDateOrTime | Date): this;
36
45
  /**
37
- * Get the non-inclusive end of the event.
46
+ * Check if this event is a full day event.
47
+ * @returns `true` if the event is a full day event, `false` if not.
48
+ */
49
+ isFullDay(): boolean;
50
+ /**
51
+ * Get the non-inclusive end of the event, implies value from duration if unset.
52
+ * @returns The end date of the event as a {@link CalendarDateOrTime} or `undefined` if not set.
53
+ */
54
+ getEnd(): CalendarDateOrTime;
55
+ /**
56
+ * Get the DTEND property of the event, representing the non-inclusive end of the event.
38
57
  * @returns The end date of the event as a {@link CalendarDateOrTime} or `undefined` if not set.
39
58
  */
40
- getEnd(): CalendarDateOrTime | undefined;
59
+ getExplicitEnd(): CalendarDateOrTime | undefined;
41
60
  /**
42
61
  * Set the exclusive end of the event.
43
62
  *
@@ -54,21 +73,28 @@ export declare class CalendarEvent extends Component {
54
73
  */
55
74
  removeEnd(): void;
56
75
  /**
57
- * Get the duration of the event as a string formatted according to the iCalendar specification.
58
- * @returns The duration of the event, or `undefined` if not set.
76
+ * Get the duration of the event, implies value from end or default if unset.
77
+ * @returns The duration of the event as a {@link CalendarDuration}.
59
78
  */
60
- getDuration(): string | undefined;
79
+ getDuration(): CalendarDuration;
80
+ /**
81
+ * Get the DURATION property of the event.
82
+ * @returns The duration of the event as a {@link CalendarDuration}, or `undefined` if not set.
83
+ */
84
+ getExplicitDuration(): CalendarDuration | undefined;
61
85
  /**
62
86
  * Set the duration of the event.
63
87
  *
64
- * Will remove 'end' if present.
65
- * @param value The duration of the event as a string in the format defined by RFC5545.
88
+ * Will remove 'DTEND' if present.
89
+ *
90
+ * If DTSTART is of type DATE the duration will be floored to the nearest day.
91
+ * @param value The duration of the event as a {@link CalendarDuration} duration string.
66
92
  * @returns The CalendarEvent instance for chaining.
67
93
  * @example
68
94
  * // Set duration to 1 hour and 30 minutes.
69
95
  * event.setDuration(`PT1H30M`)
70
96
  */
71
- setDuration(value: string): this;
97
+ setDuration(value: string | CalendarDuration): this;
72
98
  /**
73
99
  * Remove the duration of the event.
74
100
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarEvent.d.ts","sourceRoot":"","sources":["../../src/components/CalendarEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4B,MAAM,cAAc,CAAA;AAClE,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAInB,MAAM,SAAS,CAAA;AAIhB;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IACxC,IAAI,SAAW;gBAGX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GAAG,IAAI,EAChC,OAAO,EAAE,kBAAkB,GAAG,IAAI;gBAE1B,SAAS,EAAE,SAAS;IAsBhC,SAAS,IAAI,MAAM;IASnB,QAAQ;IAWR,QAAQ,IAAI,gBAAgB;IAM5B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IAQ9C,MAAM,IAAI,MAAM;IAIhB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa;IAIb,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,iBAAiB;IAIjB,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,cAAc;IAId;;;OAGG;IACH,QAAQ,IAAI,kBAAkB;IAI9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAIhD;;;OAGG;IACH,MAAM,IAAI,kBAAkB,GAAG,SAAS;IAMxC;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAa9C;;;;OAIG;IACH,SAAS;IAIT;;;OAGG;IACH,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;;;OAIG;IACH,cAAc;IAId,UAAU,IAAI,kBAAkB,GAAG,SAAS;IAM5C,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B,aAAa;IAIb,qBAAqB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAUrD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKhE,wBAAwB;CAG3B"}
1
+ {"version":3,"file":"CalendarEvent.d.ts","sourceRoot":"","sources":["../../src/components/CalendarEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4B,MAAM,cAAc,CAAA;AAClE,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAInB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,eAAO,MAAM,gCAAgC,EAAE,gBAA+C,CAAA;AAC9F,eAAO,MAAM,2BAA2B,EAAE,gBAA8C,CAAA;AAExF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,CAE5E;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IACxC,IAAI,SAAW;gBAGX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GAAG,IAAI,EAChC,OAAO,EAAE,kBAAkB,GAAG,IAAI;gBAE1B,SAAS,EAAE,SAAS;IAsBhC,SAAS,IAAI,MAAM;IASnB,QAAQ;IAWR,QAAQ,IAAI,gBAAgB;IAM5B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IAQ9C,MAAM,IAAI,MAAM;IAIhB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa;IAIb,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,iBAAiB;IAIjB,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,cAAc;IAId;;;OAGG;IACH,QAAQ,IAAI,kBAAkB;IAI9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAIhD;;;OAGG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,MAAM,IAAI,kBAAkB;IAc5B;;;OAGG;IACH,cAAc,IAAI,kBAAkB,GAAG,SAAS;IAMhD;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAa9C;;;;OAIG;IACH,SAAS;IAIT;;;OAGG;IACH,WAAW,IAAI,gBAAgB;IAa/B;;;OAGG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAKnD;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IASnD;;;;OAIG;IACH,cAAc;IAId,UAAU,IAAI,kBAAkB,GAAG,SAAS;IAM5C,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B,aAAa;IAIb,qBAAqB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAUrD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKhE,wBAAwB;CAG3B"}
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CalendarEvent = void 0;
3
+ exports.CalendarEvent = exports.DEFAULT_EVENT_DURATION_DATE = exports.DEFAULT_EVENT_DURATION_DATE_TIME = void 0;
4
+ exports.getDefaultEventDuration = getDefaultEventDuration;
4
5
  const component_1 = require("../component");
5
6
  const date_1 = require("../date");
7
+ const duration_1 = require("../duration");
6
8
  const validate_1 = require("../property/validate");
9
+ exports.DEFAULT_EVENT_DURATION_DATE_TIME = new duration_1.CalendarDuration('PT0S');
10
+ exports.DEFAULT_EVENT_DURATION_DATE = new duration_1.CalendarDuration('P1D');
11
+ /**
12
+ * Get the default event duration for an event without an end nor duration.
13
+ * @param isFullDay Whether the event is a full day event.
14
+ * @returns `DEFAULT_EVENT_DURATION_DATE` for full day events, `DEFAULT_EVENT_DURATION_DATE_TIME` for other events.
15
+ */
16
+ function getDefaultEventDuration(isFullDay) {
17
+ return isFullDay ? exports.DEFAULT_EVENT_DURATION_DATE : exports.DEFAULT_EVENT_DURATION_DATE_TIME;
18
+ }
7
19
  /**
8
20
  * Represents a VEVENT component, representing an event in a calendar.
9
21
  */
@@ -101,10 +113,33 @@ class CalendarEvent extends component_1.Component {
101
113
  return this.setProperty('DTSTART', (0, date_1.convertDate)(value));
102
114
  }
103
115
  /**
104
- * Get the non-inclusive end of the event.
116
+ * Check if this event is a full day event.
117
+ * @returns `true` if the event is a full day event, `false` if not.
118
+ */
119
+ isFullDay() {
120
+ return this.getStart().isFullDay();
121
+ }
122
+ /**
123
+ * Get the non-inclusive end of the event, implies value from duration if unset.
105
124
  * @returns The end date of the event as a {@link CalendarDateOrTime} or `undefined` if not set.
106
125
  */
107
126
  getEnd() {
127
+ const explicit = this.getExplicitEnd();
128
+ if (explicit)
129
+ return explicit;
130
+ // Calculate end from start and duration
131
+ const start = this.getStart();
132
+ let duration = this.getExplicitDuration();
133
+ if (!duration) {
134
+ duration = getDefaultEventDuration(this.isFullDay());
135
+ }
136
+ return start.offset(duration);
137
+ }
138
+ /**
139
+ * Get the DTEND property of the event, representing the non-inclusive end of the event.
140
+ * @returns The end date of the event as a {@link CalendarDateOrTime} or `undefined` if not set.
141
+ */
142
+ getExplicitEnd() {
108
143
  const property = this.getProperty('DTEND');
109
144
  if (!property)
110
145
  return;
@@ -136,17 +171,37 @@ class CalendarEvent extends component_1.Component {
136
171
  this.removePropertiesWithName('DTEND');
137
172
  }
138
173
  /**
139
- * Get the duration of the event as a string formatted according to the iCalendar specification.
140
- * @returns The duration of the event, or `undefined` if not set.
174
+ * Get the duration of the event, implies value from end or default if unset.
175
+ * @returns The duration of the event as a {@link CalendarDuration}.
141
176
  */
142
177
  getDuration() {
143
- return this.getProperty('DURATION')?.value;
178
+ const explicit = this.getExplicitDuration();
179
+ if (explicit)
180
+ return explicit;
181
+ // Calculate duration from start and end
182
+ const start = this.getStart();
183
+ const end = this.getExplicitEnd();
184
+ if (!end) {
185
+ return getDefaultEventDuration(this.isFullDay());
186
+ }
187
+ return duration_1.CalendarDuration.fromDifference(start, end);
188
+ }
189
+ /**
190
+ * Get the DURATION property of the event.
191
+ * @returns The duration of the event as a {@link CalendarDuration}, or `undefined` if not set.
192
+ */
193
+ getExplicitDuration() {
194
+ const property = this.getProperty('DURATION')?.value;
195
+ if (property == undefined)
196
+ return undefined;
144
197
  }
145
198
  /**
146
199
  * Set the duration of the event.
147
200
  *
148
- * Will remove 'end' if present.
149
- * @param value The duration of the event as a string in the format defined by RFC5545.
201
+ * Will remove 'DTEND' if present.
202
+ *
203
+ * If DTSTART is of type DATE the duration will be floored to the nearest day.
204
+ * @param value The duration of the event as a {@link CalendarDuration} duration string.
150
205
  * @returns The CalendarEvent instance for chaining.
151
206
  * @example
152
207
  * // Set duration to 1 hour and 30 minutes.
@@ -154,6 +209,10 @@ class CalendarEvent extends component_1.Component {
154
209
  */
155
210
  setDuration(value) {
156
211
  this.removeEnd();
212
+ if (typeof value === 'string')
213
+ value = new duration_1.CalendarDuration(value);
214
+ if (this.getStart().isFullDay())
215
+ value = value.floor('D');
157
216
  return this.setProperty('DURATION', value);
158
217
  }
159
218
  /**
@@ -195,4 +254,4 @@ class CalendarEvent extends component_1.Component {
195
254
  }
196
255
  }
197
256
  exports.CalendarEvent = CalendarEvent;
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0NhbGVuZGFyRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQWtFO0FBQ2xFLGtDQU1nQjtBQUVoQixtREFBOEQ7QUFFOUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxxQkFBUztJQUN4QyxJQUFJLEdBQUcsUUFBUSxDQUFBO0lBUWYsWUFDSSxDQUFxQixFQUNyQixDQUEyQixFQUMzQixDQUE2QjtRQUU3QixJQUFJLFNBQW9CLENBQUE7UUFDeEIsSUFBSSxDQUFDLFlBQVkscUJBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsR0FBRyxDQUFDLENBQUE7WUFDYixhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFDYixNQUFNLE9BQU8sR0FBRyxJQUFBLGtCQUFXLEVBQUMsQ0FBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUEsa0JBQVcsRUFBQyxDQUFFLENBQUMsQ0FBQTtZQUMvQixTQUFTLEdBQUcsSUFBSSxxQkFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ25DLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ2pDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3pDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzdDLENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUNYLGlFQUFpRSxDQUNwRSxDQUFBO1FBQ0wsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDdEIsTUFBTSxJQUFJLG9DQUF3QixDQUFDLCtCQUErQixDQUFDLENBQUE7UUFDdkUsTUFBTSxrQkFBa0IsR0FBd0I7WUFDNUMsS0FBSztZQUNMLFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQTtRQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFBLHdCQUFpQixFQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBRSxDQUNYLENBQUE7SUFDekIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUE4QjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFXLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzNDLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGdDQUFnQyxDQUFDLENBQUE7UUFDdkUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVELE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFFLENBQUMsS0FBSyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQTtJQUM3QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDakQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDOUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDSixPQUFPLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQWdDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBQSxrQkFBVyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU07UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUNyQixPQUFPLElBQUEsd0JBQWlCLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBZ0M7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBQSxrQkFBVyxFQUFDLEtBQUssQ0FBQyxDQUFBO1FBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksS0FBSyxDQUNYLGlEQUFpRCxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSx5QkFBeUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUM1SixDQUFBO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNMLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNWLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3JCLE9BQU8sSUFBQSx3QkFBaUIsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFBLHVCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQTtRQUMzQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU07UUFDakIsTUFBTSxlQUFlLEdBQUcscUNBQXFDLENBQUE7UUFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDNUQsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzdDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDckQsTUFBTSxJQUFJLEdBQUcsR0FBRyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUE7UUFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0NBQ0o7QUFyT0Qsc0NBcU9DIn0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0NhbGVuZGFyRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0JBLDBEQUVDO0FBdEJELDRDQUFrRTtBQUNsRSxrQ0FNZ0I7QUFDaEIsMENBQThDO0FBRTlDLG1EQUE4RDtBQUVqRCxRQUFBLGdDQUFnQyxHQUFxQixJQUFJLDJCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2pGLFFBQUEsMkJBQTJCLEdBQXFCLElBQUksMkJBQWdCLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFeEY7Ozs7R0FJRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLFNBQWtCO0lBQ3RELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxtQ0FBMkIsQ0FBQyxDQUFDLENBQUMsd0NBQWdDLENBQUE7QUFDckYsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEscUJBQVM7SUFDeEMsSUFBSSxHQUFHLFFBQVEsQ0FBQTtJQVFmLFlBQ0ksQ0FBcUIsRUFDckIsQ0FBMkIsRUFDM0IsQ0FBNkI7UUFFN0IsSUFBSSxTQUFvQixDQUFBO1FBQ3hCLElBQUksQ0FBQyxZQUFZLHFCQUFTLEVBQUUsQ0FBQztZQUN6QixTQUFTLEdBQUcsQ0FBQyxDQUFBO1lBQ2IsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFBO1lBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBVyxFQUFDLENBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFBLGtCQUFXLEVBQUMsQ0FBRSxDQUFDLENBQUE7WUFDL0IsU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNuQyxTQUFTLENB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
package/lib/date.d.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  import { Property } from './property/Property';
2
+ import { CalendarDuration } from './duration';
2
3
  export declare const ONE_SECOND_MS = 1000;
3
4
  export declare const ONE_MINUTE_MS: number;
4
5
  export declare const ONE_HOUR_MS: number;
5
6
  export declare const ONE_DAY_MS: number;
7
+ export declare const ONE_WEEK_MS: number;
8
+ export declare const ONE_MINUTE_SECONDS = 60;
9
+ export declare const ONE_HOUR_SECONDS: number;
10
+ export declare const ONE_DAY_SECONDS: number;
11
+ export declare const ONE_WEEK_SECONDS: number;
6
12
  export interface CalendarDateOrTime {
7
13
  /**
8
14
  * Get the string value of this date.
@@ -19,7 +25,13 @@ export interface CalendarDateOrTime {
19
25
  * Check if this date represents a full day, as opposed to a date-time.
20
26
  * @returns `true` if this object is a {@link CalendarDate}.
21
27
  */
22
- isFullDay(): boolean;
28
+ isFullDay(): this is CalendarDate;
29
+ /**
30
+ * Get a new time offset by a duration.
31
+ * @param duration The duration to offset the time by.
32
+ * @returns A new {@link CalendarDateOrTime} of the same type.
33
+ */
34
+ offset(duration: CalendarDuration): CalendarDateOrTime;
23
35
  }
24
36
  /**
25
37
  * Represents a DATE value as defined by RFC5545.
@@ -30,15 +42,41 @@ export declare class CalendarDate implements CalendarDateOrTime {
30
42
  constructor(date: Date | string | CalendarDateOrTime);
31
43
  getValue(): string;
32
44
  getDate(): Date;
33
- isFullDay(): boolean;
45
+ isFullDay(): this is CalendarDate;
46
+ /**
47
+ * Get a new date offset by a duration.
48
+ * @param duration The duration to offset the date by.
49
+ * @returns A new {@link CalendarDate} offset by the duration.
50
+ */
51
+ offset(duration: CalendarDuration): CalendarDate;
52
+ [Symbol.toPrimitive](hint: string): number | string | null;
34
53
  }
35
54
  export declare class CalendarDateTime implements CalendarDateOrTime {
36
55
  private date;
37
56
  constructor(date: Date | string | CalendarDateOrTime);
38
57
  getValue(): string;
39
58
  getDate(): Date;
40
- isFullDay(): boolean;
59
+ isFullDay(): this is CalendarDate;
60
+ /**
61
+ * Get a new time offset by a duration.
62
+ * @param duration The duration to offset the time by.
63
+ * @returns A new {@link CalendarDateTime} offset by the duration.
64
+ */
65
+ offset(duration: CalendarDuration): CalendarDateTime;
66
+ [Symbol.toPrimitive](hint: string): number | string | null;
41
67
  }
68
+ /**
69
+ * Check if an object is a JavaScript `Date`.
70
+ * @param maybeDate The object to check.
71
+ * @returns `true` if the object is a `Date`, `false` otherwise.
72
+ */
73
+ export declare function isDateObject(maybeDate: unknown): maybeDate is Date;
74
+ /**
75
+ * Check if an object is a `CalendarDateOrTime`.
76
+ * @param maybeDate The object to check.
77
+ * @returns `true` if the object is a `CalendarDateOrTime`, `false` otherwise.
78
+ */
79
+ export declare function isCalendarDateOrTime(maybeDate: unknown): maybeDate is CalendarDateOrTime;
42
80
  /**
43
81
  * Pad a number with leading zeros.
44
82
  * @param num The number to pad with zeros.
package/lib/date.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,eAAO,MAAM,aAAa,OAAO,CAAA;AACjC,eAAO,MAAM,aAAa,QAAqB,CAAA;AAC/C,eAAO,MAAM,WAAW,QAAqB,CAAA;AAC7C,eAAO,MAAM,UAAU,QAAmB,CAAA;AAE1C,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAA;IAElB;;;;OAIG;IACH,OAAO,IAAI,IAAI,CAAA;IAEf;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,kBAAkB;IACnD,OAAO,CAAC,IAAI,CAAM;gBAEN,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,kBAAkB;IAsBpD,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGvB;AAED,qBAAa,gBAAiB,YAAW,kBAAkB;IACvD,OAAO,CAAC,IAAI,CAAM;gBAEN,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,kBAAkB;IAoBpD,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,QAAQ,GAAG,kBAAkB,CAqB5E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAGnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,MAAM,GACvB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA4C1D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmBlD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,kBAAkB,EACpD,IAAI,EAAE,IAAI,GAAG,CAAC,EACd,OAAO,CAAC,EAAE,KAAK,GAChB,CAAC,GAAG,gBAAgB,CAAA;AACvB,wBAAgB,WAAW,CAAC,CAAC,SAAS,kBAAkB,EACpD,IAAI,EAAE,IAAI,GAAG,CAAC,EACd,OAAO,EAAE,IAAI,GACd,CAAC,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"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"}
package/lib/date.js CHANGED
@@ -33,7 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CalendarDateTime = exports.CalendarDate = exports.ONE_DAY_MS = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
36
+ exports.CalendarDateTime = exports.CalendarDate = exports.ONE_WEEK_SECONDS = exports.ONE_DAY_SECONDS = exports.ONE_HOUR_SECONDS = exports.ONE_MINUTE_SECONDS = exports.ONE_WEEK_MS = exports.ONE_DAY_MS = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
37
+ exports.isDateObject = isDateObject;
38
+ exports.isCalendarDateOrTime = isCalendarDateOrTime;
37
39
  exports.padZeros = padZeros;
38
40
  exports.padYear = padYear;
39
41
  exports.padMonth = padMonth;
@@ -54,6 +56,11 @@ exports.ONE_SECOND_MS = 1000;
54
56
  exports.ONE_MINUTE_MS = 60 * exports.ONE_SECOND_MS;
55
57
  exports.ONE_HOUR_MS = 60 * exports.ONE_MINUTE_MS;
56
58
  exports.ONE_DAY_MS = 24 * exports.ONE_HOUR_MS;
59
+ exports.ONE_WEEK_MS = 7 * exports.ONE_DAY_MS;
60
+ exports.ONE_MINUTE_SECONDS = 60;
61
+ exports.ONE_HOUR_SECONDS = 60 * exports.ONE_MINUTE_SECONDS;
62
+ exports.ONE_DAY_SECONDS = 24 * exports.ONE_HOUR_SECONDS;
63
+ exports.ONE_WEEK_SECONDS = 7 * exports.ONE_DAY_SECONDS;
57
64
  /**
58
65
  * Represents a DATE value as defined by RFC5545.
59
66
  * This is a date without a time, representing a whole day.
@@ -62,11 +69,11 @@ class CalendarDate {
62
69
  date;
63
70
  constructor(date) {
64
71
  if (typeof date === 'object') {
65
- if (Object.prototype.toString.call(date) === '[object Date]') {
72
+ if (isDateObject(date)) {
66
73
  this.date = date;
67
74
  }
68
75
  else {
69
- this.date = date.getDate();
76
+ this.date = (date).getDate();
70
77
  }
71
78
  }
72
79
  else {
@@ -91,17 +98,37 @@ class CalendarDate {
91
98
  isFullDay() {
92
99
  return true;
93
100
  }
101
+ /**
102
+ * Get a new date offset by a duration.
103
+ * @param duration The duration to offset the date by.
104
+ * @returns A new {@link CalendarDate} offset by the duration.
105
+ */
106
+ offset(duration) {
107
+ const offsetMs = duration.floor('D').inMilliseconds();
108
+ const ms = this.getDate().getTime();
109
+ const time = new Date(ms + offsetMs);
110
+ return new CalendarDate(time);
111
+ }
112
+ [Symbol.toPrimitive](hint) {
113
+ if (hint === 'string') {
114
+ return this.getValue();
115
+ }
116
+ else if (hint === 'number') {
117
+ return this.date.getTime();
118
+ }
119
+ return null;
120
+ }
94
121
  }
95
122
  exports.CalendarDate = CalendarDate;
96
123
  class CalendarDateTime {
97
124
  date;
98
125
  constructor(date) {
99
126
  if (typeof date === 'object') {
100
- if (Object.prototype.toString.call(date) === '[object Date]') {
127
+ if (isDateObject(date)) {
101
128
  this.date = date;
102
129
  }
103
130
  else {
104
- this.date = date.getDate();
131
+ this.date = (date).getDate();
105
132
  }
106
133
  }
107
134
  else {
@@ -125,8 +152,49 @@ class CalendarDateTime {
125
152
  isFullDay() {
126
153
  return false;
127
154
  }
155
+ /**
156
+ * Get a new time offset by a duration.
157
+ * @param duration The duration to offset the time by.
158
+ * @returns A new {@link CalendarDateTime} offset by the duration.
159
+ */
160
+ offset(duration) {
161
+ const offsetMs = duration.inMilliseconds();
162
+ const ms = this.getDate().getTime();
163
+ const time = new Date(ms + offsetMs);
164
+ return new CalendarDateTime(time);
165
+ }
166
+ [Symbol.toPrimitive](hint) {
167
+ if (hint === 'string') {
168
+ return this.getValue();
169
+ }
170
+ else if (hint === 'number') {
171
+ return this.date.getTime();
172
+ }
173
+ return null;
174
+ }
128
175
  }
129
176
  exports.CalendarDateTime = CalendarDateTime;
177
+ /**
178
+ * Check if an object is a JavaScript `Date`.
179
+ * @param maybeDate The object to check.
180
+ * @returns `true` if the object is a `Date`, `false` otherwise.
181
+ */
182
+ function isDateObject(maybeDate) {
183
+ return Object.prototype.toString.call(maybeDate) === '[object Date]';
184
+ }
185
+ /**
186
+ * Check if an object is a `CalendarDateOrTime`.
187
+ * @param maybeDate The object to check.
188
+ * @returns `true` if the object is a `CalendarDateOrTime`, `false` otherwise.
189
+ */
190
+ function isCalendarDateOrTime(maybeDate) {
191
+ return (maybeDate != null &&
192
+ typeof maybeDate === "object" &&
193
+ typeof maybeDate.getValue === "function" &&
194
+ typeof maybeDate.getDate === "function" &&
195
+ typeof maybeDate.isFullDay === "function" &&
196
+ typeof maybeDate.offset === "function");
197
+ }
130
198
  /**
131
199
  * Pad a number with leading zeros.
132
200
  * @param num The number to pad with zeros.
@@ -355,7 +423,7 @@ function parseDateString(date) {
355
423
  return parsedDate;
356
424
  }
357
425
  function convertDate(date, fullDay = false) {
358
- if (Object.prototype.toString.call(date) === '[object Date]') {
426
+ if (isDateObject(date)) {
359
427
  if (fullDay)
360
428
  return new CalendarDate(date);
361
429
  else
@@ -365,4 +433,4 @@ function convertDate(date, fullDay = false) {
365
433
  return date;
366
434
  }
367
435
  }
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9IQSw0QkFhQztBQU9ELDBCQUVDO0FBT0QsNEJBRUM7QUFPRCx3QkFFQztBQU9ELDRCQUVDO0FBT0QsZ0NBRUM7QUFPRCxnQ0FFQztBQVNELDhDQXFCQztBQVNELG9DQUdDO0FBUUQsb0NBR0M7QUFRRCw0Q0FHQztBQWlCRCxrREFRQztBQVFELGtEQTRDQztBQVFELDBDQW1CQztBQWlCRCxrQ0FVQztBQTFYRCxxREFBc0M7QUFHekIsUUFBQSxhQUFhLEdBQUcsSUFBSSxDQUFBO0FBQ3BCLFFBQUEsYUFBYSxHQUFHLEVBQUUsR0FBRyxxQkFBYSxDQUFBO0FBQ2xDLFFBQUEsV0FBVyxHQUFHLEVBQUUsR0FBRyxxQkFBYSxDQUFBO0FBQ2hDLFFBQUEsVUFBVSxHQUFHLEVBQUUsR0FBRyxtQkFBVyxDQUFBO0FBdUIxQzs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDYixJQUFJLENBQU07SUFFbEIsWUFBWSxJQUF3QztRQUNoRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLGVBQWUsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQVksQ0FBQTtZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksR0FBSSxJQUEyQixDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3RELENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNMLElB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
436
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdLQSxvQ0FFQztBQU9ELG9EQVdDO0FBV0QsNEJBYUM7QUFPRCwwQkFFQztBQU9ELDRCQUVDO0FBT0Qsd0JBRUM7QUFPRCw0QkFFQztBQU9ELGdDQUVDO0FBT0QsZ0NBRUM7QUFTRCw4Q0FxQkM7QUFTRCxvQ0FHQztBQVFELG9DQUdDO0FBUUQsNENBR0M7QUFpQkQsa0RBUUM7QUFRRCxrREE0Q0M7QUFRRCwwQ0FtQkM7QUFpQkQsa0NBVUM7QUE3Y0QscURBQXNDO0FBSXpCLFFBQUEsYUFBYSxHQUFHLElBQUksQ0FBQTtBQUNwQixRQUFBLGFBQWEsR0FBRyxFQUFFLEdBQUcscUJBQWEsQ0FBQTtBQUNsQyxRQUFBLFdBQVcsR0FBRyxFQUFFLEdBQUcscUJBQWEsQ0FBQTtBQUNoQyxRQUFBLFVBQVUsR0FBRyxFQUFFLEdBQUcsbUJBQVcsQ0FBQTtBQUM3QixRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQUcsa0JBQVUsQ0FBQTtBQUU1QixRQUFBLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUN2QixRQUFBLGdCQUFnQixHQUFHLEVBQUUsR0FBRywwQkFBa0IsQ0FBQTtBQUMxQyxRQUFBLGVBQWUsR0FBRyxFQUFFLEdBQUcsd0JBQWdCLENBQUE7QUFDdkMsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsdUJBQWUsQ0FBQTtBQThCbkQ7OztHQUdHO0FBQ0gsTUFBYSxZQUFZO0lBQ2IsSUFBSSxDQUFNO0lBRWxCLFlBQVksSUFBd0M7UUFDaEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtZQUNwQixDQUFDO2lCQUFN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SUFDL0MsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRTlDLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUMvRCxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDakQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3BELElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsUUFB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