ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
180 lines • 7.87 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
define(["require", "exports", "aurelia-framework", "moment", "./configuration-service"], function (require, exports, aurelia_framework_1, moment, configuration_service_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var DateService = (function () {
function DateService(configService) {
this.configService = configService;
this.localTimezoneOffset = moment().utcOffset();
}
DateService.prototype.createMoment = function (date, utc) {
if (utc === void 0) { utc = false; }
var m = date ? moment(date) : moment();
if (utc) {
m = this.momentToUTC(m);
}
return m;
};
DateService.prototype.createMomentFromString = function (str, format, utc) {
if (utc === void 0) { utc = false; }
var m = moment(str, format, true);
if (utc) {
m = this.momentToUTC(m);
}
return m;
};
DateService.prototype.createMomentFromTicks = function (ticks, utc) {
if (utc === void 0) { utc = false; }
var m = moment(ticks);
if (utc) {
m = this.momentToUTC(m);
}
return m;
};
DateService.prototype.configure = function () {
this.formats = new Map();
var formatArray = this.configService.get("date-service.formats");
for (var _i = 0, formatArray_1 = formatArray; _i < formatArray_1.length; _i++) {
var format = formatArray_1[_i];
this.formats.set(format.key, format.format);
}
};
Object.defineProperty(DateService.prototype, "tomorrow", {
get: function () {
var tomorrow = this.createMoment().add(1, 'days');
var dtTomorrow = new Date(tomorrow.year(), tomorrow.month(), tomorrow.date());
return dtTomorrow;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateService.prototype, "today", {
get: function () {
var today = this.createMoment();
var dtToday = new Date(today.year(), today.month(), today.date());
return dtToday;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateService.prototype, "utcNow", {
get: function () {
return this.createMoment(undefined, true).toDate();
},
enumerable: true,
configurable: true
});
DateService.prototype.translateUtcToLocal = function (d) {
return this.createMoment(d).subtract(this.localTimezoneOffset, "minutes").toDate();
};
DateService.prototype.translateLocalToUtc = function (d) {
return this.createMoment(d).add(this.localTimezoneOffset, "minutes").toDate();
};
DateService.prototype.convertFormat = function (dateString, paramsFrom, paramsTo) {
if (paramsFrom === paramsTo) {
return dateString;
}
return this.createMomentFromString(dateString, this.getSafeParams(paramsFrom).format).format(this.getSafeParams(paramsTo).format);
};
DateService.prototype.ticksToString = function (ticks, params) {
if (!ticks) {
return "";
}
var d = this.createMomentFromTicks(ticks).toDate();
return this.toString(d, params);
};
DateService.prototype.ticksToDate = function (ticks) {
if (!ticks) {
return null;
}
return this.createMomentFromTicks(ticks).toDate();
};
DateService.prototype.dateStringToTicks = function (dtString, params) {
if (!dtString) {
return 0;
}
var parms = this.getSafeParams(params);
return this.createMomentFromString(dtString, parms.format).valueOf();
};
DateService.prototype.dateToTicks = function (dt) {
if (!dt) {
return 0;
}
return this.createMoment(dt).valueOf();
};
DateService.prototype.toString = function (dt, params) {
if (!dt) {
return null;
}
var parms = this.getSafeParams(params);
return this.createMoment(dt, parms.utc).format(parms.format);
};
DateService.prototype.toISOString = function (dt) {
if (!dt) {
return null;
}
return this.createMoment(dt).toISOString();
};
DateService.prototype.fromISOString = function (str) {
if (!str) {
return null;
}
return this.createMomentFromString(str).toDate();
};
DateService.prototype.nameofDay = function (day) {
return moment.weekdays(day);
};
DateService.prototype.momentToUTC = function (m) {
return m.utc();
};
DateService.prototype.fromString = function (str, params) {
if (!str) {
return null;
}
var parms = this.getSafeParams(params);
return this.createMomentFromString(str, parms.format).toDate();
};
DateService.prototype.nextInstanceOfDay = function (dayTarget, includeToday) {
if (includeToday === void 0) { includeToday = false; }
var today = this.today;
var dayToday = today.getDay();
if ((dayToday === dayTarget) && includeToday) {
return today;
}
var weeklen = dayTarget > dayToday ? 0 : 7;
var nextInstance = this.createMoment(today).add(weeklen + dayTarget - dayToday, "days");
return new Date(nextInstance.year(), nextInstance.month(), nextInstance.date());
};
DateService.prototype.getSafeParams = function (params) {
if (!params) {
return {};
}
if (typeof (params) === "string") {
return { format: this.formats.get(params) || params };
}
else {
var parms = params;
var format = parms.format ? this.formats.get(parms.format) || parms.format : undefined;
return {
utc: parms.utc,
format: format
};
}
};
DateService = __decorate([
aurelia_framework_1.autoinject,
__metadata("design:paramtypes", [configuration_service_1.ConfigurationService])
], DateService);
return DateService;
}());
exports.DateService = DateService;
});
//# sourceMappingURL=date-service.js.map