alliance-calendar
Version:
Calendrier Alliance Digital
68 lines (63 loc) • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDate = createDate;
exports.getMonth = getMonth;
exports.getWeek = getWeek;
var _moment = _interopRequireDefault(require("moment"));
require("moment/locale/fr");
require("moment/locale/en-gb");
require("moment/locale/de");
require("moment/locale/es");
require("moment/locale/ar");
require("moment/locale/da");
var _Week = _interopRequireDefault(require("./Components/Week"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function getMonth(localMoment) {
var month = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _moment["default"])().month();
var day = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _moment["default"])().day();
_moment["default"].locale(localMoment);
month = Math.floor(month);
var year = (0, _moment["default"])(day).year();
var firstDayOfTheMonth = (0, _moment["default"])(new Date(year, month, 1)).day();
var currentMonthCount = 0 - firstDayOfTheMonth;
var daysMatrix = new Array(5).fill([]).map(function () {
return new Array(7).fill(null).map(function () {
currentMonthCount++;
return (0, _moment["default"])(new Date(year, month, currentMonthCount)).locale(localMoment);
});
});
return daysMatrix;
}
function getWeek(localMoment) {
var weeknumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _moment["default"])().week();
var day = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _moment["default"])().day();
var date = (0, _moment["default"])(day).locale(localMoment).isoWeek(weeknumber || 1).startOf("week");
var weeklength = 7;
var result = [];
while (weeklength > 0) {
result.push(date);
date = (0, _moment["default"])(new Date(date.get("year"), date.get("month"), date.get("date") + 1));
weeklength--;
}
return result;
}
function createDate(monthIndex, weekIndex, daySelected) {
// On commence par le début de l'année
var newDate = (0, _moment["default"])().startOf((0, _moment["default"])().year());
// On ajoute le nombre de mois pour atteindre le mois souhaité
if (monthIndex !== undefined) {
newDate = newDate.add(monthIndex, 'months').startOf('month');
}
// On ajoute le nombre de semaines pour atteindre la semaine souhaitée dans ce mois
if (weekIndex !== undefined) {
newDate = newDate.add(weekIndex, 'weeks').startOf('week');
}
// Enfin, on sélectionne le jour souhaité de la semaine (1 pour lundi, 7 pour dimanche)
if (daySelected !== undefined) {
newDate = newDate.isoWeekday(daySelected); // Moment.js traite 1 comme lundi et 7 comme dimanche
}
// Retourne la date formatée
return newDate.format('YYYY-MM-DD');
}