iamcal 1.1.1 → 2.1.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 +47 -11
- package/lib/component.d.ts +62 -0
- package/lib/component.d.ts.map +1 -0
- package/lib/component.js +208 -0
- package/lib/components/Calendar.d.ts +66 -0
- package/lib/components/Calendar.d.ts.map +1 -0
- package/lib/components/Calendar.js +121 -0
- package/lib/components/CalendarEvent.d.ts +109 -0
- package/lib/components/CalendarEvent.d.ts.map +1 -0
- package/lib/components/CalendarEvent.js +223 -0
- package/lib/components/TimeZone.d.ts +74 -0
- package/lib/components/TimeZone.d.ts.map +1 -0
- package/lib/components/TimeZone.js +127 -0
- package/lib/components/TimeZoneOffset.d.ts +103 -0
- package/lib/components/TimeZoneOffset.d.ts.map +1 -0
- package/lib/components/TimeZoneOffset.js +148 -0
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/index.js +21 -0
- package/lib/date.d.ts +165 -0
- package/lib/date.d.ts.map +1 -0
- package/lib/date.js +373 -0
- package/lib/index.d.ts +6 -153
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +21 -469
- package/lib/io.d.ts +10 -8
- package/lib/io.d.ts.map +1 -1
- package/lib/io.js +18 -13
- package/lib/parse.d.ts +33 -16
- package/lib/parse.d.ts.map +1 -1
- package/lib/parse.js +59 -56
- package/lib/patterns.d.ts +36 -0
- package/lib/patterns.d.ts.map +1 -0
- package/lib/patterns.js +50 -0
- package/lib/property.d.ts +149 -0
- package/lib/property.d.ts.map +1 -0
- package/lib/property.js +450 -0
- package/package.json +48 -43
- package/src/component.ts +248 -0
- package/src/components/Calendar.ts +162 -0
- package/src/components/CalendarEvent.ts +270 -0
- package/src/components/TimeZone.ts +152 -0
- package/src/components/TimeZoneOffset.ts +187 -0
- package/src/components/index.ts +4 -0
- package/src/date.ts +395 -0
- package/src/index.ts +6 -576
- package/src/io.ts +17 -13
- package/src/parse.ts +72 -52
- package/src/patterns.ts +69 -0
- package/src/property.ts +492 -0
- package/lib/types.d.ts +0 -6
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -3
- package/src/types.ts +0 -5
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Component } from '../component';
|
|
2
|
+
import { CalendarDateTime, CalendarDateOrTime } from '../date';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a VEVENT component, representing an event in a calendar.
|
|
5
|
+
*/
|
|
6
|
+
export declare class CalendarEvent extends Component {
|
|
7
|
+
name: string;
|
|
8
|
+
constructor(uid: string, dtstamp: CalendarDateTime | Date, dtstart: CalendarDateOrTime | Date);
|
|
9
|
+
constructor(component: Component);
|
|
10
|
+
serialize(): string;
|
|
11
|
+
validate(): void;
|
|
12
|
+
getStamp(): CalendarDateTime;
|
|
13
|
+
setStamp(value: CalendarDateTime | Date): this;
|
|
14
|
+
getUid(): string;
|
|
15
|
+
setUid(value: string): this;
|
|
16
|
+
getSummary(): string | undefined;
|
|
17
|
+
setSummary(value: string): this;
|
|
18
|
+
removeSummary(): void;
|
|
19
|
+
getDescription(): string | undefined;
|
|
20
|
+
setDescription(value: string): this;
|
|
21
|
+
removeDescription(): void;
|
|
22
|
+
getLocation(): string | undefined;
|
|
23
|
+
setLocation(value: string): this;
|
|
24
|
+
removeLocation(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get the start date or time of the event.
|
|
27
|
+
* @returns The start date or time of the event as a {@link CalendarDateOrTime}.
|
|
28
|
+
*/
|
|
29
|
+
getStart(): CalendarDateOrTime;
|
|
30
|
+
/**
|
|
31
|
+
* Set the start date or time of the event.
|
|
32
|
+
* @param value The start date of the event as a {@link CalendarDateOrTime} or `Date`.
|
|
33
|
+
* @returns The CalendarEvent instance for chaining.
|
|
34
|
+
*/
|
|
35
|
+
setStart(value: CalendarDateOrTime | Date): this;
|
|
36
|
+
/**
|
|
37
|
+
* Get the non-inclusive end of the event.
|
|
38
|
+
* @returns The end date of the event as a {@link CalendarDateOrTime} or `undefined` if not set.
|
|
39
|
+
*/
|
|
40
|
+
getEnd(): CalendarDateOrTime | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Set the exclusive end of the event.
|
|
43
|
+
*
|
|
44
|
+
* Will remove 'duration' if present.
|
|
45
|
+
* @param value The end date of the event as a {@link CalendarDateOrTime} or `Date`.
|
|
46
|
+
* @returns The CalendarEvent instance for chaining.
|
|
47
|
+
* @throws If the end date is a full day date and the start date is a date-time, or vice versa.
|
|
48
|
+
*/
|
|
49
|
+
setEnd(value: CalendarDateOrTime | Date): this;
|
|
50
|
+
/**
|
|
51
|
+
* Remove the end of the event.
|
|
52
|
+
*
|
|
53
|
+
* NOTE: An event must have either an end or a duration set.
|
|
54
|
+
*/
|
|
55
|
+
removeEnd(): void;
|
|
56
|
+
/**
|
|
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.
|
|
59
|
+
*/
|
|
60
|
+
getDuration(): string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Set the duration of the event.
|
|
63
|
+
*
|
|
64
|
+
* Will remove 'end' if present.
|
|
65
|
+
* @param value The duration of the event as a string in the format defined by RFC5545.
|
|
66
|
+
* @returns The CalendarEvent instance for chaining.
|
|
67
|
+
* @example
|
|
68
|
+
* // Set duration to 1 hour and 30 minutes.
|
|
69
|
+
* event.setDuration(`PT1H30M`)
|
|
70
|
+
*/
|
|
71
|
+
setDuration(value: string): this;
|
|
72
|
+
/**
|
|
73
|
+
* Remove the duration of the event.
|
|
74
|
+
*
|
|
75
|
+
* NOTE: An event must have either an end or a duration set.
|
|
76
|
+
*/
|
|
77
|
+
removeDuration(): void;
|
|
78
|
+
getCreated(): CalendarDateOrTime | undefined;
|
|
79
|
+
setCreated(value: Date): this;
|
|
80
|
+
removeCreated(): void;
|
|
81
|
+
getGeographicPosition(): [number, number] | undefined;
|
|
82
|
+
setGeographicPosition(latitude: number, longitude: number): this;
|
|
83
|
+
removeGeographicLocation(): void;
|
|
84
|
+
/** @deprecated use {@link getStamp} instead */
|
|
85
|
+
stamp: () => CalendarDateTime;
|
|
86
|
+
/** @deprecated use {@link getUid} instead */
|
|
87
|
+
uid: () => string;
|
|
88
|
+
/** @deprecated use {@link getSummary} instead */
|
|
89
|
+
summary: () => string | undefined;
|
|
90
|
+
/** @deprecated use {@link getDescription} instead */
|
|
91
|
+
description: () => string | undefined;
|
|
92
|
+
/** @deprecated use {@link getLocation} instead */
|
|
93
|
+
location: () => string | undefined;
|
|
94
|
+
/** @deprecated use {@link getStart} instead */
|
|
95
|
+
start: () => CalendarDateOrTime;
|
|
96
|
+
/** @deprecated use {@link getEnd} instead */
|
|
97
|
+
end: () => CalendarDateOrTime | undefined;
|
|
98
|
+
/** @deprecated use {@link getDuration} instead */
|
|
99
|
+
duration: () => string | undefined;
|
|
100
|
+
/** @deprecated use {@link getCreated} instead */
|
|
101
|
+
created: () => CalendarDateOrTime | undefined;
|
|
102
|
+
/** @deprecated use {@link getGeographicPosition} instead */
|
|
103
|
+
geo: () => [number, number] | undefined;
|
|
104
|
+
/** @deprecated use {@link setGeographicPosition} instead */
|
|
105
|
+
setGeo: (latitude: number, longitude: number) => this;
|
|
106
|
+
/** @deprecated use {@link removeGeographicLocation} instead */
|
|
107
|
+
removeGeo: () => void;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=CalendarEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarEvent.d.ts","sourceRoot":"","sources":["../../src/components/CalendarEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,SAAS,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EACH,gBAAgB,EAEhB,kBAAkB,EAGrB,MAAM,SAAS,CAAA;AAEhB;;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;IAMxB,+CAA+C;IAC/C,KAAK,QAvLO,gBAAgB,CAuLP;IACrB,6CAA6C;IAC7C,GAAG,QA3KO,MAAM,CA2KC;IACjB,iDAAiD;IACjD,OAAO,QArKO,MAAM,GAAG,SAAS,CAqKP;IACzB,qDAAqD;IACrD,WAAW,QA3JO,MAAM,GAAG,SAAS,CA2JH;IACjC,kDAAkD;IAClD,QAAQ,QAjJO,MAAM,GAAG,SAAS,CAiJN;IAC3B,+CAA+C;IAC/C,KAAK,QAnIO,kBAAkB,CAmIT;IACrB,6CAA6C;IAC7C,GAAG,QApHO,kBAAkB,GAAG,SAAS,CAoHvB;IACjB,kDAAkD;IAClD,QAAQ,QA9EO,MAAM,GAAG,SAAS,CA8EN;IAC3B,iDAAiD;IACjD,OAAO,QApDO,kBAAkB,GAAG,SAAS,CAoDnB;IACzB,4DAA4D;IAC5D,GAAG,QAxCsB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAwCrB;IAChC,4DAA4D;IAC5D,MAAM,aAhC0B,MAAM,aAAa,MAAM,KAAG,IAAI,CAgC7B;IACnC,+DAA+D;IAC/D,SAAS,aAAgC;CAC5C"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CalendarEvent = void 0;
|
|
4
|
+
const property_1 = require("../property");
|
|
5
|
+
const component_1 = require("../component");
|
|
6
|
+
const date_1 = require("../date");
|
|
7
|
+
/**
|
|
8
|
+
* Represents a VEVENT component, representing an event in a calendar.
|
|
9
|
+
*/
|
|
10
|
+
class CalendarEvent extends component_1.Component {
|
|
11
|
+
name = 'VEVENT';
|
|
12
|
+
constructor(a, b, c) {
|
|
13
|
+
let component;
|
|
14
|
+
if (a instanceof component_1.Component) {
|
|
15
|
+
component = a;
|
|
16
|
+
CalendarEvent.prototype.validate.call(component);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const uid = a;
|
|
20
|
+
const dtstamp = (0, date_1.convertDate)(b, false);
|
|
21
|
+
const dtstart = (0, date_1.convertDate)(c);
|
|
22
|
+
component = new component_1.Component('VEVENT');
|
|
23
|
+
component.setProperty('UID', uid);
|
|
24
|
+
component.setProperty('DTSTAMP', dtstamp);
|
|
25
|
+
component.setProperty('DTSTART', dtstart);
|
|
26
|
+
}
|
|
27
|
+
super(component.name, component.properties, component.components);
|
|
28
|
+
}
|
|
29
|
+
serialize() {
|
|
30
|
+
if (!this.getEnd() && !this.duration()) {
|
|
31
|
+
throw new Error('Failed to serialize calendar event, end or duration must be set');
|
|
32
|
+
}
|
|
33
|
+
return super.serialize();
|
|
34
|
+
}
|
|
35
|
+
validate() {
|
|
36
|
+
if (this.name !== 'VEVENT')
|
|
37
|
+
throw new component_1.ComponentValidationError('Component name must be VEVENT');
|
|
38
|
+
const requiredProperties = [
|
|
39
|
+
'UID',
|
|
40
|
+
'DTSTAMP',
|
|
41
|
+
'DTSTART',
|
|
42
|
+
];
|
|
43
|
+
this.validateAllProperties(requiredProperties);
|
|
44
|
+
}
|
|
45
|
+
getStamp() {
|
|
46
|
+
return (0, date_1.parseDateProperty)(this.getProperty('DTSTAMP'));
|
|
47
|
+
}
|
|
48
|
+
setStamp(value) {
|
|
49
|
+
const converted = (0, date_1.convertDate)(value, false);
|
|
50
|
+
if (converted.isFullDay()) {
|
|
51
|
+
throw new property_1.PropertyValidationError('DTSTAMP cannot be of type DATE');
|
|
52
|
+
}
|
|
53
|
+
return this.setProperty('DTSTAMP', converted);
|
|
54
|
+
}
|
|
55
|
+
getUid() {
|
|
56
|
+
return this.getProperty('UID').value;
|
|
57
|
+
}
|
|
58
|
+
setUid(value) {
|
|
59
|
+
return this.setProperty('UID', value);
|
|
60
|
+
}
|
|
61
|
+
getSummary() {
|
|
62
|
+
return this.getProperty('SUMMARY')?.value;
|
|
63
|
+
}
|
|
64
|
+
setSummary(value) {
|
|
65
|
+
return this.setProperty('SUMMARY', value);
|
|
66
|
+
}
|
|
67
|
+
removeSummary() {
|
|
68
|
+
this.removePropertiesWithName('SUMMARY');
|
|
69
|
+
}
|
|
70
|
+
getDescription() {
|
|
71
|
+
return this.getProperty('DESCRIPTION')?.value;
|
|
72
|
+
}
|
|
73
|
+
setDescription(value) {
|
|
74
|
+
return this.setProperty('DESCRIPTION', value);
|
|
75
|
+
}
|
|
76
|
+
removeDescription() {
|
|
77
|
+
this.removePropertiesWithName('DESCRIPTION');
|
|
78
|
+
}
|
|
79
|
+
getLocation() {
|
|
80
|
+
return this.getProperty('LOCATION')?.value;
|
|
81
|
+
}
|
|
82
|
+
setLocation(value) {
|
|
83
|
+
return this.setProperty('LOCATION', value);
|
|
84
|
+
}
|
|
85
|
+
removeLocation() {
|
|
86
|
+
this.removePropertiesWithName('LOCATION');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get the start date or time of the event.
|
|
90
|
+
* @returns The start date or time of the event as a {@link CalendarDateOrTime}.
|
|
91
|
+
*/
|
|
92
|
+
getStart() {
|
|
93
|
+
return (0, date_1.parseDateProperty)(this.getProperty('DTSTART'));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Set the start date or time of the event.
|
|
97
|
+
* @param value The start date of the event as a {@link CalendarDateOrTime} or `Date`.
|
|
98
|
+
* @returns The CalendarEvent instance for chaining.
|
|
99
|
+
*/
|
|
100
|
+
setStart(value) {
|
|
101
|
+
return this.setProperty('DTSTART', (0, date_1.convertDate)(value));
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the non-inclusive end of the event.
|
|
105
|
+
* @returns The end date of the event as a {@link CalendarDateOrTime} or `undefined` if not set.
|
|
106
|
+
*/
|
|
107
|
+
getEnd() {
|
|
108
|
+
const property = this.getProperty('DTEND');
|
|
109
|
+
if (!property)
|
|
110
|
+
return;
|
|
111
|
+
return (0, date_1.parseDateProperty)(property);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Set the exclusive end of the event.
|
|
115
|
+
*
|
|
116
|
+
* Will remove 'duration' if present.
|
|
117
|
+
* @param value The end date of the event as a {@link CalendarDateOrTime} or `Date`.
|
|
118
|
+
* @returns The CalendarEvent instance for chaining.
|
|
119
|
+
* @throws If the end date is a full day date and the start date is a date-time, or vice versa.
|
|
120
|
+
*/
|
|
121
|
+
setEnd(value) {
|
|
122
|
+
const date = (0, date_1.convertDate)(value);
|
|
123
|
+
const start = this.getStart();
|
|
124
|
+
if (date.isFullDay() !== start.isFullDay()) {
|
|
125
|
+
throw new Error(`End must be same date type as start. Start is ${start.isFullDay() ? 'date' : 'datetime'} but new end value is ${date.isFullDay() ? 'date' : 'datetime'}`);
|
|
126
|
+
}
|
|
127
|
+
this.removeDuration();
|
|
128
|
+
return this.setProperty('DTEND', date);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Remove the end of the event.
|
|
132
|
+
*
|
|
133
|
+
* NOTE: An event must have either an end or a duration set.
|
|
134
|
+
*/
|
|
135
|
+
removeEnd() {
|
|
136
|
+
this.removePropertiesWithName('DTEND');
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
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.
|
|
141
|
+
*/
|
|
142
|
+
getDuration() {
|
|
143
|
+
return this.getProperty('DURATION')?.value;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Set the duration of the event.
|
|
147
|
+
*
|
|
148
|
+
* Will remove 'end' if present.
|
|
149
|
+
* @param value The duration of the event as a string in the format defined by RFC5545.
|
|
150
|
+
* @returns The CalendarEvent instance for chaining.
|
|
151
|
+
* @example
|
|
152
|
+
* // Set duration to 1 hour and 30 minutes.
|
|
153
|
+
* event.setDuration(`PT1H30M`)
|
|
154
|
+
*/
|
|
155
|
+
setDuration(value) {
|
|
156
|
+
this.removeEnd();
|
|
157
|
+
return this.setProperty('DURATION', value);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Remove the duration of the event.
|
|
161
|
+
*
|
|
162
|
+
* NOTE: An event must have either an end or a duration set.
|
|
163
|
+
*/
|
|
164
|
+
removeDuration() {
|
|
165
|
+
this.removePropertiesWithName('DURATION');
|
|
166
|
+
}
|
|
167
|
+
getCreated() {
|
|
168
|
+
const property = this.getProperty('CREATED');
|
|
169
|
+
if (!property)
|
|
170
|
+
return;
|
|
171
|
+
return (0, date_1.parseDateProperty)(property);
|
|
172
|
+
}
|
|
173
|
+
setCreated(value) {
|
|
174
|
+
return this.setProperty('CREATED', (0, date_1.toDateTimeString)(value));
|
|
175
|
+
}
|
|
176
|
+
removeCreated() {
|
|
177
|
+
this.removePropertiesWithName('CREATED');
|
|
178
|
+
}
|
|
179
|
+
getGeographicPosition() {
|
|
180
|
+
const text = this.getProperty('GEO')?.value;
|
|
181
|
+
if (!text)
|
|
182
|
+
return;
|
|
183
|
+
const validGeoPattern = /^[+-]?\d+(\.\d+)?;[+-]?\d+(\.\d+)?$/;
|
|
184
|
+
if (!validGeoPattern.test(text))
|
|
185
|
+
throw new Error(`Failed to parse GEO property: ${text}`);
|
|
186
|
+
const [longitude, latitude] = text.split(',');
|
|
187
|
+
return [parseFloat(longitude), parseFloat(latitude)];
|
|
188
|
+
}
|
|
189
|
+
setGeographicPosition(latitude, longitude) {
|
|
190
|
+
const text = `${latitude};${longitude}`;
|
|
191
|
+
return this.setProperty('GEO', text);
|
|
192
|
+
}
|
|
193
|
+
removeGeographicLocation() {
|
|
194
|
+
this.removePropertiesWithName('GEO');
|
|
195
|
+
}
|
|
196
|
+
/* eslint-disable */
|
|
197
|
+
/** @deprecated use {@link getStamp} instead */
|
|
198
|
+
stamp = this.getStamp;
|
|
199
|
+
/** @deprecated use {@link getUid} instead */
|
|
200
|
+
uid = this.getUid;
|
|
201
|
+
/** @deprecated use {@link getSummary} instead */
|
|
202
|
+
summary = this.getSummary;
|
|
203
|
+
/** @deprecated use {@link getDescription} instead */
|
|
204
|
+
description = this.getDescription;
|
|
205
|
+
/** @deprecated use {@link getLocation} instead */
|
|
206
|
+
location = this.getLocation;
|
|
207
|
+
/** @deprecated use {@link getStart} instead */
|
|
208
|
+
start = this.getStart;
|
|
209
|
+
/** @deprecated use {@link getEnd} instead */
|
|
210
|
+
end = this.getEnd;
|
|
211
|
+
/** @deprecated use {@link getDuration} instead */
|
|
212
|
+
duration = this.getDuration;
|
|
213
|
+
/** @deprecated use {@link getCreated} instead */
|
|
214
|
+
created = this.getCreated;
|
|
215
|
+
/** @deprecated use {@link getGeographicPosition} instead */
|
|
216
|
+
geo = this.getGeographicPosition;
|
|
217
|
+
/** @deprecated use {@link setGeographicPosition} instead */
|
|
218
|
+
setGeo = this.setGeographicPosition;
|
|
219
|
+
/** @deprecated use {@link removeGeographicLocation} instead */
|
|
220
|
+
removeGeo = this.removeGeographicLocation;
|
|
221
|
+
}
|
|
222
|
+
exports.CalendarEvent = CalendarEvent;
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0NhbGVuZGFyRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXdFO0FBQ3hFLDRDQUFrRTtBQUNsRSxrQ0FNZ0I7QUFFaEI7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxxQkFBUztJQUN4QyxJQUFJLEdBQUcsUUFBUSxDQUFBO0lBUWYsWUFDSSxDQUFxQixFQUNyQixDQUEyQixFQUMzQixDQUE2QjtRQUU3QixJQUFJLFNBQW9CLENBQUE7UUFDeEIsSUFBSSxDQUFDLFlBQVkscUJBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsR0FBRyxDQUFjLENBQUE7WUFDMUIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxHQUFHLEdBQUcsQ0FBVyxDQUFBO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUEsa0JBQVcsRUFBQyxDQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBVyxFQUFDLENBQUUsQ0FBQyxDQUFBO1lBQy9CLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDbkMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDakMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDekMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDN0MsQ0FBQztRQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxTQUFTO1FB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
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Component } from '../component';
|
|
2
|
+
import { CalendarDateOrTime } from '../date';
|
|
3
|
+
import { TimeZoneOffset } from './TimeZoneOffset';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a VTIMEZONE component, containing time zone definitions.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TimeZone extends Component {
|
|
8
|
+
name: string;
|
|
9
|
+
constructor(id: string);
|
|
10
|
+
constructor(component: Component);
|
|
11
|
+
validate(): void;
|
|
12
|
+
getId(): string;
|
|
13
|
+
setId(value: string): this;
|
|
14
|
+
getLastModified(): CalendarDateOrTime | undefined;
|
|
15
|
+
setLastModified(value: Date): this;
|
|
16
|
+
removeLastModified(): void;
|
|
17
|
+
getUrl(): string | undefined;
|
|
18
|
+
setUrl(value: string): this;
|
|
19
|
+
removeUrl(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get all time offsets.
|
|
22
|
+
* @returns An array of time zone offsets defined in this time zone.
|
|
23
|
+
*/
|
|
24
|
+
getOffsets(): TimeZoneOffset[];
|
|
25
|
+
/**
|
|
26
|
+
* Get standard/winter time offsets.
|
|
27
|
+
* @returns An array of time zone offsets defined in this time zone that are of type STANDARD.
|
|
28
|
+
*/
|
|
29
|
+
getStandardOffsets(): TimeZoneOffset[];
|
|
30
|
+
/**
|
|
31
|
+
* Get daylight savings time offsets.
|
|
32
|
+
* @returns An array of time zone offsets defined in this time zone that are of type DAYLIGHT.
|
|
33
|
+
*/
|
|
34
|
+
getDaylightOffsets(): TimeZoneOffset[];
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use {@link getId} instead.
|
|
37
|
+
*/
|
|
38
|
+
id: () => string;
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use {@link getLastModified} instead.
|
|
41
|
+
*/
|
|
42
|
+
lastMod: () => CalendarDateOrTime | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated Use {@link setLastModified} instead.
|
|
45
|
+
*/
|
|
46
|
+
setLastMod: (value: Date) => this;
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Use {@link removeLastModified} instead.
|
|
49
|
+
*/
|
|
50
|
+
removeLastMod: () => void;
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Use {@link getUrl} instead.
|
|
53
|
+
*/
|
|
54
|
+
url: () => string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Get all time offsets.
|
|
57
|
+
* @returns An array of time zone offsets defined in this time zone.
|
|
58
|
+
* @deprecated Use {@link getOffsets} instead.
|
|
59
|
+
*/
|
|
60
|
+
offsets: () => TimeZoneOffset[];
|
|
61
|
+
/**
|
|
62
|
+
* Get standard/winter time offsets.
|
|
63
|
+
* @returns An array of time zone offsets defined in this time zone that are of type STANDARD.
|
|
64
|
+
* @deprecated Use {@link getStandardOffsets} instead.
|
|
65
|
+
*/
|
|
66
|
+
standardOffsets: () => TimeZoneOffset[];
|
|
67
|
+
/**
|
|
68
|
+
* Get daylight savings time offsets.
|
|
69
|
+
* @returns An array of time zone offsets defined in this time zone that are of type DAYLIGHT.
|
|
70
|
+
* @deprecated Use {@link getDaylightOffsets} instead.
|
|
71
|
+
*/
|
|
72
|
+
daylightOffsets: () => TimeZoneOffset[];
|
|
73
|
+
}
|
|
74
|
+
//# 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,EAA4B,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,SAAS,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACnC,IAAI,SAAc;gBAEN,EAAE,EAAE,MAAM;gBACV,SAAS,EAAE,SAAS;IAchC,QAAQ;IAOR,KAAK,IAAI,MAAM;IAIf,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,eAAe,IAAI,kBAAkB,GAAG,SAAS;IAMjD,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIlC,kBAAkB;IAIlB,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,SAAS;IAIT;;;OAGG;IACH,UAAU,IAAI,cAAc,EAAE;IAa9B;;;OAGG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAMtC;;;OAGG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAQtC;;OAEG;IACH,EAAE,QA5EO,MAAM,CA4EA;IAEf;;OAEG;IACH,OAAO,QAzEY,kBAAkB,GAAG,SAAS,CAyEnB;IAE9B;;OAEG;IACH,UAAU,UAxEa,IAAI,KAAG,IAAI,CAwED;IAEjC;;OAEG;IACH,aAAa,aAA0B;IAEvC;;OAEG;IACH,GAAG,QA1EO,MAAM,GAAG,SAAS,CA0EX;IAEjB;;;;OAIG;IACH,OAAO,QAjEO,cAAc,EAAE,CAiEL;IAEzB;;;;OAIG;IACH,eAAe,QAvDO,cAAc,EAAE,CAuDG;IAEzC;;;;OAIG;IACH,eAAe,QApDO,cAAc,EAAE,CAoDG;CAC5C"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeZone = void 0;
|
|
4
|
+
const component_1 = require("../component");
|
|
5
|
+
const date_1 = require("../date");
|
|
6
|
+
const TimeZoneOffset_1 = require("./TimeZoneOffset");
|
|
7
|
+
/**
|
|
8
|
+
* Represents a VTIMEZONE component, containing time zone definitions.
|
|
9
|
+
*/
|
|
10
|
+
class TimeZone extends component_1.Component {
|
|
11
|
+
name = 'VTIMEZONE';
|
|
12
|
+
constructor(a) {
|
|
13
|
+
let component;
|
|
14
|
+
if (a instanceof component_1.Component) {
|
|
15
|
+
component = a;
|
|
16
|
+
TimeZone.prototype.validate.call(component);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const tzid = a;
|
|
20
|
+
component = new component_1.Component('VTIMEZONE');
|
|
21
|
+
component.setProperty('TZID', tzid);
|
|
22
|
+
}
|
|
23
|
+
super(component.name, component.properties, component.components);
|
|
24
|
+
}
|
|
25
|
+
validate() {
|
|
26
|
+
if (this.name !== 'VTIMEZONE')
|
|
27
|
+
throw new component_1.ComponentValidationError('Component name must be VEVENT');
|
|
28
|
+
const requiredProperties = ['TZID'];
|
|
29
|
+
this.validateAllProperties(requiredProperties);
|
|
30
|
+
}
|
|
31
|
+
getId() {
|
|
32
|
+
return this.getProperty('TZID').value;
|
|
33
|
+
}
|
|
34
|
+
setId(value) {
|
|
35
|
+
return this.setProperty('TZID', value);
|
|
36
|
+
}
|
|
37
|
+
getLastModified() {
|
|
38
|
+
const text = this.getProperty('LAST-MODIFIED');
|
|
39
|
+
if (!text)
|
|
40
|
+
return;
|
|
41
|
+
return (0, date_1.parseDateProperty)(text);
|
|
42
|
+
}
|
|
43
|
+
setLastModified(value) {
|
|
44
|
+
return this.setProperty('LAST-MODIFIED', value.toISOString());
|
|
45
|
+
}
|
|
46
|
+
removeLastModified() {
|
|
47
|
+
this.removePropertiesWithName('LAST-MOD');
|
|
48
|
+
}
|
|
49
|
+
getUrl() {
|
|
50
|
+
return this.getProperty('TZURL')?.value;
|
|
51
|
+
}
|
|
52
|
+
setUrl(value) {
|
|
53
|
+
return this.setProperty('TZURL', value);
|
|
54
|
+
}
|
|
55
|
+
removeUrl() {
|
|
56
|
+
this.removePropertiesWithName('TZURL');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get all time offsets.
|
|
60
|
+
* @returns An array of time zone offsets defined in this time zone.
|
|
61
|
+
*/
|
|
62
|
+
getOffsets() {
|
|
63
|
+
const offsets = [];
|
|
64
|
+
this.components.forEach(component => {
|
|
65
|
+
if (component.name === 'STANDARD' ||
|
|
66
|
+
component.name === 'DAYLIGHT') {
|
|
67
|
+
offsets.push(new TimeZoneOffset_1.TimeZoneOffset(component));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return offsets;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get standard/winter time offsets.
|
|
74
|
+
* @returns An array of time zone offsets defined in this time zone that are of type STANDARD.
|
|
75
|
+
*/
|
|
76
|
+
getStandardOffsets() {
|
|
77
|
+
return this.getComponentsWithName('STANDARD').map(c => new TimeZoneOffset_1.TimeZoneOffset(c));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get daylight savings time offsets.
|
|
81
|
+
* @returns An array of time zone offsets defined in this time zone that are of type DAYLIGHT.
|
|
82
|
+
*/
|
|
83
|
+
getDaylightOffsets() {
|
|
84
|
+
return this.getComponentsWithName('DAYLIGHT').map(c => new TimeZoneOffset_1.TimeZoneOffset(c));
|
|
85
|
+
}
|
|
86
|
+
/* eslint-disable */
|
|
87
|
+
/**
|
|
88
|
+
* @deprecated Use {@link getId} instead.
|
|
89
|
+
*/
|
|
90
|
+
id = this.getId;
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated Use {@link getLastModified} instead.
|
|
93
|
+
*/
|
|
94
|
+
lastMod = this.getLastModified;
|
|
95
|
+
/**
|
|
96
|
+
* @deprecated Use {@link setLastModified} instead.
|
|
97
|
+
*/
|
|
98
|
+
setLastMod = this.setLastModified;
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use {@link removeLastModified} instead.
|
|
101
|
+
*/
|
|
102
|
+
removeLastMod = this.removeLastModified;
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated Use {@link getUrl} instead.
|
|
105
|
+
*/
|
|
106
|
+
url = this.getUrl;
|
|
107
|
+
/**
|
|
108
|
+
* Get all time offsets.
|
|
109
|
+
* @returns An array of time zone offsets defined in this time zone.
|
|
110
|
+
* @deprecated Use {@link getOffsets} instead.
|
|
111
|
+
*/
|
|
112
|
+
offsets = this.getOffsets;
|
|
113
|
+
/**
|
|
114
|
+
* Get standard/winter time offsets.
|
|
115
|
+
* @returns An array of time zone offsets defined in this time zone that are of type STANDARD.
|
|
116
|
+
* @deprecated Use {@link getStandardOffsets} instead.
|
|
117
|
+
*/
|
|
118
|
+
standardOffsets = this.getStandardOffsets;
|
|
119
|
+
/**
|
|
120
|
+
* Get daylight savings time offsets.
|
|
121
|
+
* @returns An array of time zone offsets defined in this time zone that are of type DAYLIGHT.
|
|
122
|
+
* @deprecated Use {@link getDaylightOffsets} instead.
|
|
123
|
+
*/
|
|
124
|
+
daylightOffsets = this.getDaylightOffsets;
|
|
125
|
+
}
|
|
126
|
+
exports.TimeZone = TimeZone;
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZVpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9UaW1lWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBa0U7QUFDbEUsa0NBQStEO0FBRS9ELHFEQUFpRDtBQUVqRDs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLHFCQUFTO0lBQ25DLElBQUksR0FBRyxXQUFXLENBQUE7SUFJbEIsWUFBWSxDQUFxQjtRQUM3QixJQUFJLFNBQW9CLENBQUE7UUFDeEIsSUFBSSxDQUFDLFlBQVkscUJBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsR0FBRyxDQUFjLENBQUE7WUFDMUIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEdBQUcsQ0FBVyxDQUFBO1lBQ3hCLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDdEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVc7WUFDekIsTUFBTSxJQUFJLG9DQUF3QixDQUFDLCtCQUErQixDQUFDLENBQUE7UUFDdkUsTUFBTSxrQkFBa0IsR0FBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUUsQ0FBQyxLQUFLLENBQUE7SUFDMUMs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
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Component } from '../component';
|
|
2
|
+
import { CalendarDateOrTime } from '../date';
|
|
3
|
+
export declare const knownOffsetTypes: string[];
|
|
4
|
+
export type OffsetType = (typeof knownOffsetTypes)[number];
|
|
5
|
+
type Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
|
|
6
|
+
export type Offset = `${'-' | '+'}${Digit}${Digit}${Digit}${Digit}`;
|
|
7
|
+
/**
|
|
8
|
+
* Represents a STANDARD or DAYLIGHT subcomponent, defining a time zone offset.
|
|
9
|
+
*/
|
|
10
|
+
export declare class TimeZoneOffset extends Component {
|
|
11
|
+
/**
|
|
12
|
+
* @param type If this is a STANDARD or DAYLIGHT component.
|
|
13
|
+
* @param start From when this offset is active.
|
|
14
|
+
* @param offsetFrom The offset that is in use prior to this time zone observance.
|
|
15
|
+
* @param offsetTo The offset that is in use during this time zone observance.
|
|
16
|
+
*/
|
|
17
|
+
constructor(type: OffsetType, start: CalendarDateOrTime | Date, offsetFrom: Offset, offsetTo: Offset);
|
|
18
|
+
constructor(component: Component);
|
|
19
|
+
validate(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get the date or time when this time zone offset starts.
|
|
22
|
+
* @returns The start date or time of this time zone offset.
|
|
23
|
+
*/
|
|
24
|
+
getStart(): CalendarDateOrTime;
|
|
25
|
+
/**
|
|
26
|
+
* Set the date or time when this time zone offset starts.
|
|
27
|
+
* @param value The start date or time.
|
|
28
|
+
* @returns The TimeZoneOffset instance for chaining.
|
|
29
|
+
*/
|
|
30
|
+
setStart(value: CalendarDateOrTime | Date): this;
|
|
31
|
+
/**
|
|
32
|
+
* Get the offset which is offset from during this time zone offset.
|
|
33
|
+
* @returns The offset in a format such as "+0100" or "-0230".
|
|
34
|
+
*/
|
|
35
|
+
getOffsetFrom(): Offset;
|
|
36
|
+
/**
|
|
37
|
+
* Set the offset to offset from during this time zone offset.
|
|
38
|
+
* @param value An offset such as "+0100" or "-0230".
|
|
39
|
+
* @returns The TimeZoneOffset instance for chaining.
|
|
40
|
+
*/
|
|
41
|
+
setOffsetFrom(value: Offset): this;
|
|
42
|
+
/**
|
|
43
|
+
* Get the offset which is offset to during this time zone offset.
|
|
44
|
+
* @returns The offset in a format such as "+0100" or "-0230".
|
|
45
|
+
*/
|
|
46
|
+
getOffsetTo(): Offset;
|
|
47
|
+
/**
|
|
48
|
+
* Set the offset to offset to during this time zone offset.
|
|
49
|
+
* @param value An offset such as "+0100" or "-0230".
|
|
50
|
+
* @returns The TimeZoneOffset instance for chaining.
|
|
51
|
+
*/
|
|
52
|
+
setOffsetTo(value: Offset): this;
|
|
53
|
+
getComment(): string | undefined;
|
|
54
|
+
setComment(value: string): this;
|
|
55
|
+
removeComment(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get the name of this time zone offset.
|
|
58
|
+
* @returns The time zone offset name if it exists.
|
|
59
|
+
*/
|
|
60
|
+
getTimeZoneName(): string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Set the name of this time zone offset.
|
|
63
|
+
* @param value The new name.
|
|
64
|
+
* @returns The TimeZoneOffset instance for chaining.
|
|
65
|
+
* @example
|
|
66
|
+
* timeZoneOffset.setTimeZoneName('EST')
|
|
67
|
+
*/
|
|
68
|
+
setTimeZoneName(value: string): this;
|
|
69
|
+
/**
|
|
70
|
+
* Remove the name of this time zone offset.
|
|
71
|
+
*/
|
|
72
|
+
removeTimeZoneName(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get the date or time when this time zone offset starts.
|
|
75
|
+
* @returns The start date or time of this time zone offset.
|
|
76
|
+
* @deprecated Use {@link getStart} instead.
|
|
77
|
+
*/
|
|
78
|
+
start: () => CalendarDateOrTime;
|
|
79
|
+
/**
|
|
80
|
+
* Get the offset which is offset from during this time zone offset.
|
|
81
|
+
* @returns The offset in a format such as "+0100" or "-0230".
|
|
82
|
+
* @deprecated Use {@link getOffsetFrom} instead.
|
|
83
|
+
*/
|
|
84
|
+
offsetFrom: () => Offset;
|
|
85
|
+
/**
|
|
86
|
+
* Get the offset which is offset to during this time zone offset.
|
|
87
|
+
* @returns The offset in a format such as "+0100" or "-0230".
|
|
88
|
+
* @deprecated Use {@link getOffsetTo} instead.
|
|
89
|
+
*/
|
|
90
|
+
offsetTo: () => Offset;
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated Use {@link getComment} instead.
|
|
93
|
+
*/
|
|
94
|
+
comment: () => string | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Get the name of this time zone offset.
|
|
97
|
+
* @returns The time zone offset name if it exists.
|
|
98
|
+
* @deprecated Use {@link getTimeZoneName} instead.
|
|
99
|
+
*/
|
|
100
|
+
timeZoneName: () => string | undefined;
|
|
101
|
+
}
|
|
102
|
+
export {};
|
|
103
|
+
//# sourceMappingURL=TimeZoneOffset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeZoneOffset.d.ts","sourceRoot":"","sources":["../../src/components/TimeZoneOffset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4B,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAkC,MAAM,SAAS,CAAA;AAG5E,eAAO,MAAM,gBAAgB,UAA2B,CAAA;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1D,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;AAEnE;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;IACzC;;;;;OAKG;gBAEC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,kBAAkB,GAAG,IAAI,EAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;gBAER,SAAS,EAAE,SAAS;IAwBhC,QAAQ,IAAI,IAAI;IAchB;;;OAGG;IACH,QAAQ,IAAI,kBAAkB;IAI9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAIhD;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa;IAIb;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,kBAAkB;IAMlB;;;;OAIG;IACH,KAAK,QA5FO,kBAAkB,CA4FT;IAErB;;;;OAIG;IACH,UAAU,QAlFO,MAAM,CAkFQ;IAE/B;;;;OAIG;IACH,QAAQ,QAxEO,MAAM,CAwEM;IAE3B;;OAEG;IACH,OAAO,QAhEO,MAAM,GAAG,SAAS,CAgEP;IAEzB;;;;OAIG;IACH,YAAY,QAvDO,MAAM,GAAG,SAAS,CAuDF;CACtC"}
|