From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- comm/calendar/base/src/CalDuration.jsm | 106 +++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 comm/calendar/base/src/CalDuration.jsm (limited to 'comm/calendar/base/src/CalDuration.jsm') diff --git a/comm/calendar/base/src/CalDuration.jsm b/comm/calendar/base/src/CalDuration.jsm new file mode 100644 index 0000000000..cb289bdde4 --- /dev/null +++ b/comm/calendar/base/src/CalDuration.jsm @@ -0,0 +1,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); + }, +}; -- cgit v1.2.3