1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var EXPORTED_SYMBOLS = ["CalDuration"];
const { ICAL, unwrap } = ChromeUtils.import("resource:///modules/calendar/Ical.jsm");
function CalDuration(innerObject) {
this.innerObject = innerObject || new ICAL.Duration();
this.wrappedJSObject = this;
}
CalDuration.prototype = {
QueryInterface: ChromeUtils.generateQI(["calIDuration"]),
classID: Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"),
get icalDuration() {
return this.innerObject;
},
set icalDuration(val) {
this.innerObject = val;
},
isMutable: true,
makeImmutable() {
this.isMutable = false;
},
clone() {
return new CalDuration(this.innerObject.clone());
},
get isNegative() {
return this.innerObject.isNegative;
},
set isNegative(val) {
this.innerObject.isNegative = !!val;
},
get weeks() {
return this.innerObject.weeks;
},
set weeks(val) {
this.innerObject.weeks = parseInt(val, 10);
},
get days() {
return this.innerObject.days;
},
set days(val) {
this.innerObject.days = parseInt(val, 10);
},
get hours() {
return this.innerObject.hours;
},
set hours(val) {
this.innerObject.hours = parseInt(val, 10);
},
get minutes() {
return this.innerObject.minutes;
},
set minutes(val) {
this.innerObject.minutes = parseInt(val, 10);
},
get seconds() {
return this.innerObject.seconds;
},
set seconds(val) {
this.innerObject.seconds = parseInt(val, 10);
},
get inSeconds() {
return this.innerObject.toSeconds();
},
set inSeconds(val) {
this.innerObject.fromSeconds(val);
},
addDuration: unwrap(ICAL.Duration, function (val) {
this.innerObject.fromSeconds(this.innerObject.toSeconds() + val.toSeconds());
}),
compare: unwrap(ICAL.Duration, function (val) {
return this.innerObject.compare(val);
}),
reset() {
this.innerObject.reset();
},
normalize() {
this.innerObject.normalize();
},
toString() {
return this.innerObject.toString();
},
get icalString() {
return this.innerObject.toString();
},
set icalString(val) {
this.innerObject = ICAL.Duration.fromString(val);
},
};
|