UNPKG

year-scheduler

Version:
54 lines 7.9 kB
export class AxiomSchedulerYearViewMonthObject { month; days; monthWeeks = []; constructor(month) { this.month = month.clone(); this.setDays(); } setDays() { const monthSize = 42; const startOfMonth = this.month.clone().startOf('month'); const endOfMonth = this.month.clone().endOf('month'); this.days = []; let day = startOfMonth.clone(); while (day <= endOfMonth) { this.days.push(day); day = day.clone().add(1, 'd'); } this.setMonthWeeks(startOfMonth, endOfMonth); // Solo si empieza en lunes el mes no se anhade ningun dia anterior if (startOfMonth.clone().get('d') > 1 || startOfMonth.clone().get('d') === 0) { day = startOfMonth.clone(); while (day.get('d') > 1 || day.get('d') === 0) { day = day.clone().add(-1, 'days'); this.days.unshift(day); } } if (this.days.length < monthSize) { const size = (monthSize - this.days.length); for (let index = 1; index <= size; index++) { this.days.push(endOfMonth.clone().add(index, 'days')); } } } setMonthWeeks(startOfMonth, endOfMonth) { let day = startOfMonth.clone(); const set = new Set(); const date = startOfMonth.clone().startOf('year'); // El domingo es el 0 por lo que lo controlamos especificamente let yearStartDays = date.get('d'); if (yearStartDays === 0) { yearStartDays = 6; } else { yearStartDays -= 1; } while (day <= endOfMonth) { set.add(Math.ceil((day.dayOfYear() + yearStartDays) / 7)); day = day.add(1, 'd'); } this.monthWeeks = Array.from(set); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb20tc2NoZWR1bGVyLXllYXItdmlldy1tb250aC1vYmplY3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95ZWFyLXNjaGVkdWxlci9zcmMvbGliL21vZGVsL2F4aW9tLXNjaGVkdWxlci15ZWFyLXZpZXctbW9udGgtb2JqZWN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQ0FBaUM7SUFFbkMsS0FBSyxDQUFnQjtJQUNyQixJQUFJLENBQW1CO0lBQ3ZCLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFFakMsWUFBWSxLQUFvQjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3QyxtRUFBbUU7UUFDbkUsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdFLEdBQUcsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUEyQixFQUFFLFVBQXlCO1FBQ2xFLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsK0RBQStEO1FBQy9ELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxhQUFhLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNOLGFBQWEsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFELEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBBeGlvbVNjaGVkdWxlclllYXJWaWV3TW9udGhPYmplY3Qge1xyXG5cclxuICAgIHB1YmxpYyBtb250aDogbW9tZW50Lk1vbWVudDtcclxuICAgIHB1YmxpYyBkYXlzITogbW9tZW50Lk1vbWVudFtdO1xyXG4gICAgcHVibGljIG1vbnRoV2Vla3M6IG51bWJlcltdID0gW107XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3Rvcihtb250aDogbW9tZW50Lk1vbWVudCkge1xyXG4gICAgICB0aGlzLm1vbnRoID0gbW9udGguY2xvbmUoKTtcclxuICAgICAgdGhpcy5zZXREYXlzKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBzZXREYXlzKCk6IHZvaWQge1xyXG4gICAgICBjb25zdCBtb250aFNpemUgPSA0MjtcclxuICAgICAgY29uc3Qgc3RhcnRPZk1vbnRoID0gdGhpcy5tb250aC5jbG9uZSgpLnN0YXJ0T2YoJ21vbnRoJyk7XHJcbiAgICAgIGNvbnN0IGVuZE9mTW9udGggPSB0aGlzLm1vbnRoLmNsb25lKCkuZW5kT2YoJ21vbnRoJyk7XHJcbiAgICAgIHRoaXMuZGF5cyA9IFtdO1xyXG4gICAgICBsZXQgZGF5ID0gc3RhcnRPZk1vbnRoLmNsb25lKCk7XHJcbiAgICAgIHdoaWxlIChkYXkgPD0gZW5kT2ZNb250aCkge1xyXG4gICAgICAgIHRoaXMuZGF5cy5wdXNoKGRheSk7XHJcbiAgICAgICAgZGF5ID0gZGF5LmNsb25lKCkuYWRkKDEsICdkJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRNb250aFdlZWtzKHN0YXJ0T2ZNb250aCwgZW5kT2ZNb250aCk7XHJcbiAgICAgIC8vIFNvbG8gc2kgZW1waWV6YSBlbiBsdW5lcyBlbCBtZXMgbm8gc2UgYW5oYWRlIG5pbmd1biBkaWEgYW50ZXJpb3JcclxuICAgICAgaWYgKHN0YXJ0T2ZNb250aC5jbG9uZSgpLmdldCgnZCcpID4gMSB8fCBzdGFydE9mTW9udGguY2xvbmUoKS5nZXQoJ2QnKSA9PT0gMCkge1xyXG4gICAgICAgIGRheSA9IHN0YXJ0T2ZNb250aC5jbG9uZSgpO1xyXG4gICAgICAgIHdoaWxlIChkYXkuZ2V0KCdkJykgPiAxIHx8IGRheS5nZXQoJ2QnKSA9PT0gMCkge1xyXG4gICAgICAgICAgZGF5ID0gZGF5LmNsb25lKCkuYWRkKC0xLCAnZGF5cycpO1xyXG4gICAgICAgICAgdGhpcy5kYXlzLnVuc2hpZnQoZGF5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGF5cy5sZW5ndGggPCBtb250aFNpemUpIHtcclxuICAgICAgICBjb25zdCBzaXplID0gKG1vbnRoU2l6ZSAtIHRoaXMuZGF5cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPD0gc2l6ZTsgaW5kZXgrKykge1xyXG4gICAgICAgICAgdGhpcy5kYXlzLnB1c2goZW5kT2ZNb250aC5jbG9uZSgpLmFkZChpbmRleCwgJ2RheXMnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICBzZXRNb250aFdlZWtzKHN0YXJ0T2ZNb250aDogbW9tZW50Lk1vbWVudCwgZW5kT2ZNb250aDogbW9tZW50Lk1vbWVudCk6IHZvaWQge1xyXG4gICAgICBsZXQgZGF5ID0gc3RhcnRPZk1vbnRoLmNsb25lKCk7XHJcbiAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQ8bnVtYmVyPigpO1xyXG4gICAgICBjb25zdCBkYXRlID0gc3RhcnRPZk1vbnRoLmNsb25lKCkuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICAvLyBFbCBkb21pbmdvIGVzIGVsIDAgcG9yIGxvIHF1ZSBsbyBjb250cm9sYW1vcyBlc3BlY2lmaWNhbWVudGVcclxuICAgICAgbGV0IHllYXJTdGFydERheXMgPSBkYXRlLmdldCgnZCcpO1xyXG4gICAgICBpZiAoeWVhclN0YXJ0RGF5cyA9PT0gMCkge1xyXG4gICAgICAgIHllYXJTdGFydERheXMgPSA2O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHllYXJTdGFydERheXMgLT0gMTtcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoZGF5IDw9IGVuZE9mTW9udGgpIHtcclxuICAgICAgICBzZXQuYWRkKE1hdGguY2VpbCgoZGF5LmRheU9mWWVhcigpICsgeWVhclN0YXJ0RGF5cykgLyA3KSk7XHJcbiAgICAgICAgZGF5ID0gZGF5LmFkZCgxLCAnZCcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubW9udGhXZWVrcyA9IEFycmF5LmZyb20oc2V0KTtcclxuICAgIH1cclxuICBcclxuICB9Il19