angular-mat-datepicker
Version:
[](https://www.npmjs.org/package/angular2-material-datepicker) [](https://travis-ci.org/koleary9
67 lines • 2.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var Calendar = (function () {
function Calendar(firstWeekDay) {
if (firstWeekDay === void 0) { firstWeekDay = 0; }
this.firstWeekDay = firstWeekDay;
}
Calendar.prototype.weekStartDate = function (date) {
var startDate = new Date(date.getTime());
while (startDate.getDay() !== this.firstWeekDay) {
startDate.setDate(startDate.getDate() - 1);
}
return startDate;
};
Calendar.prototype.monthDates = function (year, month, dayFormatter, weekFormatter) {
if (dayFormatter === void 0) { dayFormatter = null; }
if (weekFormatter === void 0) { weekFormatter = null; }
if ((typeof year !== "number") || (year < 1970)) {
throw ('year must be a number >= 1970');
}
;
if ((typeof month !== "number") || (month < 0) || (month > 11)) {
throw ('month must be a number (Jan is 0)');
}
;
var weeks = [], week = [], i = 0, date = this.weekStartDate(new Date(year, month, 1));
do {
for (i = 0; i < 7; i++) {
week.push(dayFormatter ? dayFormatter(date) : date);
date = new Date(date.getTime());
date.setDate(date.getDate() + 1);
}
weeks.push(weekFormatter ? weekFormatter(week) : week);
week = [];
} while ((date.getMonth() <= month) && (date.getFullYear() === year));
return weeks;
};
Calendar.prototype.monthDays = function (year, month) {
var getDayOrZero = function getDayOrZero(date) {
return date.getMonth() === month ? date : 0;
};
return this.monthDates(year, month, getDayOrZero);
};
Calendar.prototype.monthText = function (year, month) {
if (typeof year === "undefined") {
var now = new Date();
year = now.getFullYear();
month = now.getMonth();
}
;
var getDayOrBlank = function getDayOrBlank(date) {
var s = date.getMonth() === month ? date.getDate().toString() : " ";
while (s.length < 2)
s = " " + s;
return s;
};
var weeks = this.monthDates(year, month, getDayOrBlank, function (week) { return week.join(" "); });
return weeks.join("\n");
};
return Calendar;
}());
exports.Calendar = Calendar;
var months = "JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC".split(" ");
for (var i = 0; i < months.length; i++) {
Calendar[months[i]] = i;
}
//# sourceMappingURL=calendar.js.map