UNPKG

alliance-calendar

Version:

Calendrier Alliance Digital

80 lines (73 loc) 3.13 kB
"use strict"; 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(null).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"])(); // Valider les paramètres if (!localMoment) localMoment = 'fr'; // Si day n'est pas un objet moment valide, utiliser la date actuelle var validDay; if (!day || !_moment["default"].isMoment(day) || !day.isValid()) { validDay = (0, _moment["default"])(); } else { validDay = day; } // Utiliser validDay pour calculer la semaine var date = validDay.clone().locale(localMoment).isoWeek(weeknumber || (0, _moment["default"])().week()).startOf("week"); var weeklength = 7; var result = []; while (weeklength > 0) { result.push(date.clone()); date = date.clone().add(1, 'day'); 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'); }