iamcal 1.1.0 → 2.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.
@@ -0,0 +1,25 @@
1
+ export interface Property {
2
+ name: string;
3
+ params: string[];
4
+ value: string;
5
+ }
6
+ export declare class Component {
7
+ name: string;
8
+ properties: Property[];
9
+ components: Component[];
10
+ constructor(name: string, properties?: Property[], components?: Component[]);
11
+ serialize(): string;
12
+ getProperty(name: string): Property | null;
13
+ setProperty(name: string, value: string): this;
14
+ removePropertiesWithName(name: string): this | undefined;
15
+ getPropertyParams(name: string): string[] | null;
16
+ setPropertyParams(name: string, params: string[]): this;
17
+ addComponent(component: Component): this;
18
+ /**
19
+ * Remove a component from this component
20
+ * @returns `true` if the component was removed. `false` if the component was not present
21
+ */
22
+ removeComponent(component: Component): boolean;
23
+ getComponents(name: string): Component[];
24
+ }
25
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,UAAU,EAAE,SAAS,EAAE,CAAA;gBAEX,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE;IAc3E,SAAS,IAAI,MAAM;IA+BnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAS1C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAe9C,wBAAwB,CAAC,IAAI,EAAE,MAAM;IAOrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAShD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IASvD,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKxC;;;OAGG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAU9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE;CAW3C"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Component = void 0;
4
+ // Max line length as defined by RFC 5545 3.1.
5
+ const MAX_LINE_LENGTH = 75;
6
+ class Component {
7
+ name;
8
+ properties;
9
+ components;
10
+ constructor(name, properties, components) {
11
+ this.name = name;
12
+ if (properties) {
13
+ this.properties = properties;
14
+ }
15
+ else {
16
+ this.properties = new Array();
17
+ }
18
+ if (components) {
19
+ this.components = components;
20
+ }
21
+ else {
22
+ this.components = new Array();
23
+ }
24
+ }
25
+ serialize() {
26
+ // Create lines
27
+ const lines = [`BEGIN:${this.name}`];
28
+ for (let property of this.properties) {
29
+ let line = property['name'] + //
30
+ property.params.map(p => ';' + p).join('') +
31
+ ':' +
32
+ property['value'];
33
+ // Wrap lines
34
+ while (line.length > MAX_LINE_LENGTH) {
35
+ lines.push(line.substring(0, MAX_LINE_LENGTH));
36
+ line = ' ' + line.substring(MAX_LINE_LENGTH);
37
+ }
38
+ lines.push(line);
39
+ }
40
+ for (let component of this.components) {
41
+ lines.push(component.serialize());
42
+ }
43
+ lines.push(`END:${this.name}`);
44
+ // Join lines
45
+ const serialized = lines.join('\n');
46
+ return serialized;
47
+ }
48
+ getProperty(name) {
49
+ for (const property of this.properties) {
50
+ if (property.name === name) {
51
+ return property;
52
+ }
53
+ }
54
+ return null;
55
+ }
56
+ setProperty(name, value) {
57
+ for (const property of this.properties) {
58
+ if (property.name === name) {
59
+ property.value = value;
60
+ return this;
61
+ }
62
+ }
63
+ this.properties.push({
64
+ name: name,
65
+ params: [],
66
+ value: value,
67
+ });
68
+ return this;
69
+ }
70
+ removePropertiesWithName(name) {
71
+ const index = this.properties.findIndex(p => p.name === name);
72
+ if (index === -1)
73
+ return this;
74
+ // Remove property at index
75
+ this.properties.splice(index, 1);
76
+ }
77
+ getPropertyParams(name) {
78
+ for (const property of this.properties) {
79
+ if (property.name === name) {
80
+ return property.params;
81
+ }
82
+ }
83
+ return null;
84
+ }
85
+ setPropertyParams(name, params) {
86
+ for (const property of this.properties) {
87
+ if (property.name === name) {
88
+ property.params = params;
89
+ }
90
+ }
91
+ return this;
92
+ }
93
+ addComponent(component) {
94
+ this.components.push(component);
95
+ return this;
96
+ }
97
+ /**
98
+ * Remove a component from this component
99
+ * @returns `true` if the component was removed. `false` if the component was not present
100
+ */
101
+ removeComponent(component) {
102
+ const index = this.components.indexOf(component);
103
+ if (index === -1)
104
+ return false;
105
+ // Remove element at index from list
106
+ this.components.splice(index, 1);
107
+ return true;
108
+ }
109
+ getComponents(name) {
110
+ const components = [];
111
+ for (let component of this.components) {
112
+ if (component.name === name) {
113
+ components.push(component);
114
+ }
115
+ }
116
+ return components;
117
+ }
118
+ }
119
+ exports.Component = Component;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFBO0FBUTFCLE1BQWEsU0FBUztJQUNsQixJQUFJLENBQVE7SUFDWixVQUFVLENBQVk7SUFDdEIsVUFBVSxDQUFhO0lBRXZCLFlBQVksSUFBWSxFQUFFLFVBQXVCLEVBQUUsVUFBd0I7UUFDdkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO1FBQ2pDLENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ0wsZUFBZTtRQUNmLE1BQU0sS0FBSyxHQUFHLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUVwQyxLQUFLLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLElBQUksR0FDSixRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDckIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsR0FBRztnQkFDSCxRQUFRLENBQUMsT0FBTyxDQUFDLENB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
@@ -0,0 +1,45 @@
1
+ import { Component } from '../component';
2
+ import { CalendarEvent } from './CalendarEvent';
3
+ /**
4
+ * Represents a VCALENDAR component, the root component of an iCalendar file.
5
+ */
6
+ export declare class Calendar extends Component {
7
+ name: string;
8
+ /**
9
+ * @param prodid A unique identifier of the program creating the calendar.
10
+ *
11
+ * Example: `-//Google Inc//Google Calendar 70.9054//EN`
12
+ */
13
+ constructor(prodid: string);
14
+ /**
15
+ * @param prodid A unique identifier of the program creating the calendar.
16
+ *
17
+ * Example: `-//Google Inc//Google Calendar 70.9054//EN`
18
+ * @param version The version of the iCalendar specification that this calendar uses.
19
+ */
20
+ constructor(prodid: string, version: string);
21
+ /**
22
+ * @param component A VCALENDAR component.
23
+ */
24
+ constructor(component: Component);
25
+ events(): CalendarEvent[];
26
+ removeEvent(event: CalendarEvent): boolean;
27
+ removeEvent(uid: string): boolean;
28
+ prodId(): string;
29
+ setProdId(value: string): this;
30
+ version(): string;
31
+ setVersion(value: string): this;
32
+ calScale(): string | undefined;
33
+ setCalScale(value: string): this;
34
+ removeCalScale(): void;
35
+ method(): string | undefined;
36
+ setMethod(value: string): this;
37
+ removeMethod(): void;
38
+ calendarName(): string | undefined;
39
+ setCalendarName(value: string): this;
40
+ removeCalendarName(): void;
41
+ calendarDescription(): string | undefined;
42
+ setCalendarDescription(value: string): this;
43
+ removeCalendarDescription(): void;
44
+ }
45
+ //# sourceMappingURL=Calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/components/Calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;GAEG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACnC,IAAI,SAAe;IAEnB;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAC1B;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAC3C;;OAEG;gBACS,SAAS,EAAE,SAAS;IAehC,MAAM,IAAI,aAAa,EAAE;IAIzB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAC1C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAejC,MAAM,IAAI,MAAM;IAIhB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,IAAI,MAAM;IAIjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,cAAc;IAId,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,YAAY;IAIZ,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,kBAAkB;IAIlB,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAIzC,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3C,yBAAyB;CAG5B"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Calendar = void 0;
4
+ const component_1 = require("../component");
5
+ const CalendarEvent_1 = require("./CalendarEvent");
6
+ /**
7
+ * Represents a VCALENDAR component, the root component of an iCalendar file.
8
+ */
9
+ class Calendar extends component_1.Component {
10
+ name = 'VCALENDAR';
11
+ constructor(a, b) {
12
+ var component;
13
+ if (a instanceof component_1.Component) {
14
+ component = a;
15
+ }
16
+ else {
17
+ const prodid = a;
18
+ const version = b ?? '2.0';
19
+ component = new component_1.Component('VCALENDAR');
20
+ component.setProperty('PRODID', prodid);
21
+ component.setProperty('VERSION', version);
22
+ }
23
+ super(component.name, component.properties, component.components);
24
+ }
25
+ events() {
26
+ return this.getComponents('VEVENT').map(c => new CalendarEvent_1.CalendarEvent(c));
27
+ }
28
+ removeEvent(a) {
29
+ if (a instanceof CalendarEvent_1.CalendarEvent) {
30
+ const event = a;
31
+ return this.removeComponent(event);
32
+ }
33
+ else {
34
+ const uid = a;
35
+ for (const event of this.events()) {
36
+ if (event.uid() !== uid)
37
+ continue;
38
+ return this.removeComponent(event);
39
+ }
40
+ }
41
+ return false;
42
+ }
43
+ prodId() {
44
+ return this.getProperty('PRODID').value;
45
+ }
46
+ setProdId(value) {
47
+ return this.setProperty('PRODID', value);
48
+ }
49
+ version() {
50
+ return this.getProperty('VERSION').value;
51
+ }
52
+ setVersion(value) {
53
+ return this.setProperty('VERSION', value);
54
+ }
55
+ calScale() {
56
+ return this.getProperty('CALSCALE')?.value;
57
+ }
58
+ setCalScale(value) {
59
+ return this.setProperty('CALSCALE', value);
60
+ }
61
+ removeCalScale() {
62
+ this.removePropertiesWithName('CALSCALE');
63
+ }
64
+ method() {
65
+ return this.getProperty('METHOD')?.value;
66
+ }
67
+ setMethod(value) {
68
+ return this.setProperty('METHOD', value);
69
+ }
70
+ removeMethod() {
71
+ this.removePropertiesWithName('METHOD');
72
+ }
73
+ calendarName() {
74
+ return this.getProperty('X-WR-CALNAME')?.value;
75
+ }
76
+ setCalendarName(value) {
77
+ return this.setProperty('X-WR-CALNAME', value);
78
+ }
79
+ removeCalendarName() {
80
+ this.removePropertiesWithName('X-WR-CALNAME');
81
+ }
82
+ calendarDescription() {
83
+ return this.getProperty('X-WR-CALDESC')?.value;
84
+ }
85
+ setCalendarDescription(value) {
86
+ return this.setProperty('X-WR-CALDESC', value);
87
+ }
88
+ removeCalendarDescription() {
89
+ this.removePropertiesWithName('X-WR-CALDESC');
90
+ }
91
+ }
92
+ exports.Calendar = Calendar;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9DYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBd0M7QUFDeEMsbURBQStDO0FBRS9DOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEscUJBQVM7SUFDbkMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQW1CbkIsWUFBWSxDQUFzQixFQUFFLENBQVU7UUFDMUMsSUFBSSxTQUFvQixDQUFBO1FBQ3hCLElBQUksQ0FBQyxZQUFZLHFCQUFTLEVBQUUsQ0FBQztZQUN6QixTQUFTLEdBQUcsQ0FBYyxDQUFBO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxNQUFNLEdBQUcsQ0FBVyxDQUFBO1lBQzFCLE1BQU0sT0FBTyxHQUFJLENBQVksSUFBSSxLQUFLLENBQUE7WUFDdEMsU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN0QyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN2QyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSw2QkFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUlELFdBQVcsQ0FBQyxDQUF5QjtRQUNqQyxJQUFJLENBQUMsWUFBWSw2QkFBYSxFQUFFLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsQ0FBa0IsQ0FBQTtZQUNoQyxPQUFP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
@@ -0,0 +1,47 @@
1
+ import { Component } from "../component";
2
+ /**
3
+ * Represents a VEVENT component, representing an event in a calendar.
4
+ */
5
+ export declare class CalendarEvent extends Component {
6
+ name: string;
7
+ constructor(uid: string, dtstamp: Date);
8
+ constructor(component: Component);
9
+ stamp(): Date;
10
+ setStamp(value: Date, fullDay?: boolean): this;
11
+ uid(): string;
12
+ setUid(value: string): this;
13
+ summary(): string;
14
+ setSummary(value: string): this;
15
+ removeSummary(): void;
16
+ description(): string;
17
+ setDescription(value: string): this;
18
+ removeDescription(): void;
19
+ location(): string | undefined;
20
+ setLocation(value: string): this;
21
+ removeLocation(): void;
22
+ /**
23
+ * Get the start of the event.
24
+ * If set as a full day the time will be at the start of the day.
25
+ */
26
+ start(): Date;
27
+ /** Set the start of the event. */
28
+ setStart(value: Date, fullDay?: boolean): this;
29
+ removeStart(): void;
30
+ /**
31
+ * Get the non-inclusive end of the event.
32
+ * If set as a full day the time will be at the start of the day.
33
+ */
34
+ end(): Date;
35
+ /**
36
+ * Set the non-inclusive end of the event.
37
+ */
38
+ setEnd(value: Date, fullDay?: boolean): this;
39
+ removeEnd(): void;
40
+ created(): Date | undefined;
41
+ setCreated(value: Date): this;
42
+ removeCreated(): void;
43
+ geo(): [number, number] | undefined;
44
+ setGeo(latitude: number, longitude: number): this;
45
+ removeGeo(): void;
46
+ }
47
+ //# sourceMappingURL=CalendarEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarEvent.d.ts","sourceRoot":"","sources":["../../src/components/CalendarEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IACxC,IAAI,SAAY;gBAEJ,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI;gBAC1B,SAAS,EAAE,SAAS;IAehC,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,OAAe,GAAG,IAAI;IAUrD,GAAG,IAAI,MAAM;IAIb,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,IAAI,MAAM;IAIjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa;IAIb,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,iBAAiB;IAIjB,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,cAAc;IAId;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,OAAe,GAAG,IAAI;IAUrD,WAAW;IAIX;;;OAGG;IACH,GAAG,IAAI,IAAI;IAIX;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,OAAe,GAAG,IAAI;IAUnD,SAAS;IAIT,OAAO,IAAI,IAAI,GAAG,SAAS;IAM3B,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B,aAAa;IAIb,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IASnC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKjD,SAAS;CAGZ"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalendarEvent = void 0;
4
+ const component_1 = require("../component");
5
+ const parse_1 = require("../parse");
6
+ /**
7
+ * Represents a VEVENT component, representing an event in a calendar.
8
+ */
9
+ class CalendarEvent extends component_1.Component {
10
+ name = 'VEVENT';
11
+ constructor(a, b) {
12
+ var component;
13
+ if (b) {
14
+ const uid = a;
15
+ const dtstamp = b;
16
+ component = new component_1.Component('VEVENT');
17
+ component.setProperty('UID', uid);
18
+ component.setProperty('DTSTAMP', (0, parse_1.toDateTimeString)(dtstamp));
19
+ }
20
+ else {
21
+ component = a;
22
+ }
23
+ super(component.name, component.properties, component.components);
24
+ }
25
+ stamp() {
26
+ return (0, parse_1.parseDate)(this.getProperty('DTSTAMP'));
27
+ }
28
+ setStamp(value, fullDay = false) {
29
+ if (fullDay) {
30
+ this.setProperty('DTSTAMP', (0, parse_1.toDateString)(value));
31
+ this.setPropertyParams('DTSTAMP', ['VALUE=DATE']);
32
+ }
33
+ else {
34
+ this.setProperty('DTSTAMP', (0, parse_1.toDateTimeString)(value));
35
+ }
36
+ return this;
37
+ }
38
+ uid() {
39
+ return this.getProperty('UID').value;
40
+ }
41
+ setUid(value) {
42
+ return this.setProperty('UID', value);
43
+ }
44
+ summary() {
45
+ return this.getProperty('SUMMARY').value;
46
+ }
47
+ setSummary(value) {
48
+ return this.setProperty('SUMMARY', value);
49
+ }
50
+ removeSummary() {
51
+ this.removePropertiesWithName('SUMMARY');
52
+ }
53
+ description() {
54
+ return this.getProperty('DESCRIPTION').value;
55
+ }
56
+ setDescription(value) {
57
+ return this.setProperty('DESCRIPTION', value);
58
+ }
59
+ removeDescription() {
60
+ this.removePropertiesWithName('DESCRIPTION');
61
+ }
62
+ location() {
63
+ return this.getProperty('LOCATION')?.value;
64
+ }
65
+ setLocation(value) {
66
+ return this.setProperty('LOCATION', value);
67
+ }
68
+ removeLocation() {
69
+ this.removePropertiesWithName('LOCATION');
70
+ }
71
+ /**
72
+ * Get the start of the event.
73
+ * If set as a full day the time will be at the start of the day.
74
+ */
75
+ start() {
76
+ return (0, parse_1.parseDate)(this.getProperty('DTSTART'));
77
+ }
78
+ /** Set the start of the event. */
79
+ setStart(value, fullDay = false) {
80
+ if (fullDay) {
81
+ this.setProperty('DTSTART', (0, parse_1.toDateString)(value));
82
+ this.setPropertyParams('DTSTART', ['VALUE=DATE']);
83
+ }
84
+ else {
85
+ this.setProperty('DTSTART', (0, parse_1.toDateTimeString)(value));
86
+ }
87
+ return this;
88
+ }
89
+ removeStart() {
90
+ this.removePropertiesWithName('DTSTART');
91
+ }
92
+ /**
93
+ * Get the non-inclusive end of the event.
94
+ * If set as a full day the time will be at the start of the day.
95
+ */
96
+ end() {
97
+ return (0, parse_1.parseDate)(this.getProperty('DTEND'));
98
+ }
99
+ /**
100
+ * Set the non-inclusive end of the event.
101
+ */
102
+ setEnd(value, fullDay = false) {
103
+ if (fullDay) {
104
+ this.setProperty('DTEND', (0, parse_1.toDateString)(value));
105
+ this.setPropertyParams('DTEND', ['VALUE=DATE']);
106
+ }
107
+ else {
108
+ this.setProperty('DTEND', (0, parse_1.toDateTimeString)(value));
109
+ }
110
+ return this;
111
+ }
112
+ removeEnd() {
113
+ this.removePropertiesWithName('DTEND');
114
+ }
115
+ created() {
116
+ const property = this.getProperty('CREATED');
117
+ if (!property)
118
+ return;
119
+ return (0, parse_1.parseDate)(property);
120
+ }
121
+ setCreated(value) {
122
+ return this.setProperty('CREATED', (0, parse_1.toDateTimeString)(value));
123
+ }
124
+ removeCreated() {
125
+ this.removePropertiesWithName('CREATED');
126
+ }
127
+ geo() {
128
+ const text = this.getProperty('GEO')?.value;
129
+ if (!text)
130
+ return;
131
+ const pattern = /^[+-]?\d+(\.\d+)?,[+-]?\d+(\.\d+)?$/;
132
+ if (!pattern.test(text))
133
+ throw new Error(`Failed to parse GEO property: ${text}`);
134
+ const [longitude, latitude] = text.split(',');
135
+ return [parseFloat(longitude), parseFloat(latitude)];
136
+ }
137
+ setGeo(latitude, longitude) {
138
+ const text = `${latitude},${longitude}`;
139
+ return this;
140
+ }
141
+ removeGeo() {
142
+ this.removePropertiesWithName('GEO');
143
+ }
144
+ }
145
+ exports.CalendarEvent = CalendarEvent;
146
+ const event = new CalendarEvent('abc', new Date());
147
+ event.getPropertyParams('DTEND')?.includes('VALUE=DATE');
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0NhbGVuZGFyRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXdDO0FBQ3hDLG9DQUFvRTtBQUVwRTs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLHFCQUFTO0lBQ3hDLElBQUksR0FBRyxRQUFRLENBQUM7SUFJaEIsWUFBWSxDQUFxQixFQUFFLENBQVE7UUFDdkMsSUFBSSxTQUFvQixDQUFBO1FBQ3hCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDSixNQUFNLEdBQUcsR0FBRyxDQUFXLENBQUE7WUFDdkIsTUFBTSxPQUFPLEdBQUcsQ0FBUyxDQUFBO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDbkMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDakMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQy9ELENBQUM7YUFBTSxDQUFDO1lBQ0osU0FBUyxHQUFHLENBQWMsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELEtBQUs7UUFDRCxPQUFPLElBQUEsaUJBQVMsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBRSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFXLEVBQUUsVUFBbUIsS0FBSztRQUMxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBQSxvQkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFD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
@@ -0,0 +1,51 @@
1
+ import { Component } from '../component';
2
+ /**
3
+ * Represents a VTIMEZONE component, containing time zone definitions.
4
+ */
5
+ export declare class TimeZone extends Component {
6
+ constructor(id: string);
7
+ constructor(component: Component);
8
+ id(): string;
9
+ setId(value: string): this;
10
+ lastMod(): Date | undefined;
11
+ setLastMod(value: Date): this;
12
+ removeLastMod(): void;
13
+ url(): string | undefined;
14
+ setUrl(value: string): this;
15
+ removeUrl(): void;
16
+ /** Get all time offsets. */
17
+ offsets(): TimeZoneOffset[];
18
+ /** Get standard/winter time offsets. */
19
+ standardOffsets(): TimeZoneOffset[];
20
+ /** Get daylight savings time offsets. */
21
+ daylightOffsets(): TimeZoneOffset[];
22
+ }
23
+ export type OffsetType = 'DAYLIGHT' | 'STANDARD';
24
+ type Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
25
+ export type Offset = `${'-' | '+'}${Digit}${Digit}${Digit}${Digit}`;
26
+ /** Represents a STANDARD or DAYLIGHT component, defining a time zone offset. */
27
+ declare class TimeZoneOffset extends Component {
28
+ /**
29
+ *
30
+ * @param type If this is a STANDARD or DAYLIGHT component.
31
+ * @param start From when this offset is active.
32
+ * @param offsetFrom The offset that is in use prior to this time zone observance.
33
+ * @param offsetTo The offset that is in use during this time zone observance.
34
+ */
35
+ constructor(type: OffsetType, start: Date, offsetFrom: Offset, offsetTo: Offset);
36
+ constructor(component: Component);
37
+ start(): Date;
38
+ setStart(value: Date, fullDay?: boolean): this;
39
+ offsetFrom(): Offset;
40
+ setOffsetFrom(value: Offset): this;
41
+ offsetTo(): Offset;
42
+ setOffsetTo(value: Offset): this;
43
+ comment(): string | undefined;
44
+ setComment(value: string): this;
45
+ removeComment(): void;
46
+ timeZoneName(): string | undefined;
47
+ setTimeZoneName(value: string): this;
48
+ removeTimeZoneName(): void;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=TimeZone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeZone.d.ts","sourceRoot":"","sources":["../../src/components/TimeZone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC;;GAEG;AACH,qBAAa,QAAS,SAAQ,SAAS;gBACvB,EAAE,EAAE,MAAM;gBACV,SAAS,EAAE,SAAS;IAahC,EAAE,IAAI,MAAM;IAIZ,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,OAAO,IAAI,IAAI,GAAG,SAAS;IAM3B,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI7B,aAAa;IAIb,GAAG,IAAI,MAAM,GAAG,SAAS;IAIzB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,SAAS;IAIT,4BAA4B;IAC5B,OAAO,IAAI,cAAc,EAAE;IAU3B,wCAAwC;IACxC,eAAe,IAAI,cAAc,EAAE;IAInC,yCAAyC;IACzC,eAAe,IAAI,cAAc,EAAE;CAGtC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAChD,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AACtE,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,CAAA;AACnE,gFAAgF;AAChF,cAAM,cAAe,SAAQ,SAAS;IAClC;;;;;;OAMG;gBACS,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;gBACnE,SAAS,EAAE,SAAS;IAkBhC,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,OAAe,GAAG,IAAI;IAUrD,UAAU,IAAI,MAAM;IAIpB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,QAAQ,IAAI,MAAM;IAIlB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa;IAIb,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,kBAAkB;CAGrB"}