iamcal 1.1.1 → 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.
- package/lib/component.d.ts +25 -0
- package/lib/component.d.ts.map +1 -0
- package/lib/component.js +120 -0
- package/lib/components/Calendar.d.ts +45 -0
- package/lib/components/Calendar.d.ts.map +1 -0
- package/lib/components/Calendar.js +93 -0
- package/lib/components/CalendarEvent.d.ts +47 -0
- package/lib/components/CalendarEvent.d.ts.map +1 -0
- package/lib/components/CalendarEvent.js +148 -0
- package/lib/components/TimeZone.d.ts +51 -0
- package/lib/components/TimeZone.d.ts.map +1 -0
- package/lib/components/TimeZone.js +132 -0
- package/lib/components/index.d.ts +4 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/index.js +20 -0
- package/lib/index.d.ts +4 -153
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -469
- package/lib/io.d.ts +1 -1
- package/lib/io.d.ts.map +1 -1
- package/lib/io.js +3 -3
- package/lib/parse.d.ts +2 -2
- package/lib/parse.d.ts.map +1 -1
- package/lib/parse.js +6 -5
- package/package.json +4 -11
- package/src/component.ts +139 -0
- package/src/components/Calendar.ts +124 -0
- package/src/components/CalendarEvent.ts +166 -0
- package/src/components/TimeZone.ts +162 -0
- package/src/components/index.ts +3 -0
- package/src/index.ts +4 -576
- package/src/io.ts +1 -2
- package/src/parse.ts +2 -2
- 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,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"}
|
package/lib/component.js
ADDED
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9DYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBd0M7QUFDeEMsbURBQStDO0FBRS9DOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEscUJBQVM7SUFDbkMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQW1CbkIsWUFBWSxDQUFzQixFQUFFLENBQVU7UUFDMUMsSUFBSSxTQUFvQixDQUFBO1FBQ3hCLElBQUksQ0FBQyxZQUFZLHFCQUFTLEVBQUUsQ0FBQztZQUN6QixTQUFTLEdBQUcsQ0FBYyxDQUFBO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxNQUFNLEdBQUcsQ0FBVyxDQUFBO1lBQzFCLE1BQU0sT0FBTyxHQUFJLENBQVksSUFBSSxLQUFLLENBQUE7WUFDdEMsU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN0QyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN2QyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSw2QkFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUlELFdBQVcsQ0FBQyxDQUF5QjtRQUNqQyxJQUFJLENBQUMsWUFBWSw2QkFBYSxFQUFFLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsQ0FBa0IsQ0FBQTtZQUNoQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEdBQUcsR0FBRyxDQUFXLENBQUE7WUFDdkIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRztvQkFBRSxTQUFRO2dCQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDdEMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUUsQ0FBQyxLQUFLLENBQUE7SUFDNUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFFLENBQUMsS0FBSyxDQUFBO0lBQzdDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQTtJQUM5QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDNUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFBO0lBQ2xELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYTtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDbEQsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQWE7UUFDaEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQseUJBQXlCO1FBQ3JCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0NBQ0o7QUFySEQsNEJBcUhDIn0=
|
|
@@ -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"}
|