django-vue3-admin-web/node_modules/date-holidays-parser/lib/CalEventMap.cjs
2025-10-20 21:21:14 +08:00

55 lines
1.4 KiB
JavaScript

'use strict';
var CalEvent = require('./CalEvent.cjs');
var CalDate = require('caldate');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var CalDate__default = /*#__PURE__*/_interopDefaultLegacy(CalDate);
/**
* Mapper class for mapped calenders like hijri and hebrew
* `this.calender` needs to be set in child classes
*/
class CalEventMap extends CalEvent {
constructor (opts) {
super(opts);
this.calendar = {};
}
inYear (year) {
if (!(this.calendar[year] && this.calendar[year + 1] && this.calendar[year - 1])) {
return this
}
for (let y = year - 1; y <= year + 1; y++) {
// resolve date in `calendar` as gregorian date
const firstDays = this.calendar[y][this.opts.month - 1];
// firstDays `[M, D, diffYear, ...] | null`
if (!firstDays) {
continue
}
for (let i = 0; i < firstDays.length; i += 3) {
if (this.opts.year) {
const calYear = this.calendar.year + firstDays[i + 2];
if (this.opts.year !== calYear) {
continue
}
}
const d = (new CalDate__default["default"]({
year: y,
month: firstDays[i] + 1,
day: firstDays[i + 1]
})).setOffset(this.opts.day - 1);
if (d.year === year) {
this.dates.push(d);
}
}
}
return this
}
}
module.exports = CalEventMap;