{"version":3,"sources":["../src/index.ts"],"sourcesContent":["class Calendar {\r\n  firstWeekDay: number\r\n\r\n  constructor(firstWeekDay = 0) {\r\n    this.firstWeekDay = firstWeekDay\r\n  }\r\n\r\n  weekStartDate(date: Date): Date {\r\n    const starDate: Date = new Date(date.getTime())\r\n    while (starDate.getDay() !== this.firstWeekDay) { starDate.setDate(starDate.getDate() - 1) }\r\n\r\n    return starDate\r\n  }\r\n\r\n  /**\r\n   * @description: 生成日历数组\r\n   * @param {number} year\r\n   * @param {number} month\r\n   */\r\n  monthDates(year: number, month: number) {\r\n    if (year < 1970) { console.warn('year must be a number >= 1970') }\r\n\r\n    if ((month < 0) || (month > 11)) { console.error('month must be a number (Jan is 0)') }\r\n\r\n    let week: Date[] = []\r\n\r\n    const weeks: Array<Date[]> = []\r\n\r\n    let date = this.weekStartDate(new Date(year, month, 1))\r\n\r\n    do {\r\n      for (let i = 0; i < 7; i++) {\r\n        week.push(date)\r\n        date = new Date(date.getTime())\r\n        date.setDate(date.getDate() + 1)\r\n      }\r\n      weeks.push(week)\r\n      week = []\r\n    } while ((date.getMonth() <= month) && (date.getFullYear() === year))\r\n\r\n    return weeks\r\n  }\r\n\r\n  monthDays(year: number, month: number) {\r\n    return this.monthDates(year, month).map(row => row.map(col => col.getMonth() === month ? col.getDate() : 0))\r\n  }\r\n\r\n  monthText(year: number, month: number) {\r\n    const getDayOrBlank = (date: Date) => {\r\n      let s = date.getMonth() === month ? date.getDate().toString() : '  '\r\n      while (s.length < 2) { s = ` ${s}` }\r\n      return s\r\n    }\r\n    const weeks = this.monthDates(year, month).map(row => row.map(col => getDayOrBlank(col)))\r\n    return weeks.join('\\n')\r\n  }\r\n}\r\n\r\nexport default Calendar\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,WAAN,MAAe;AAAA,EAGb,YAAY,eAAe,GAAG;AAC5B,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,cAAc,MAAkB;AAC9B,UAAM,WAAiB,IAAI,KAAK,KAAK,QAAQ,CAAC;AAC9C,WAAO,SAAS,OAAO,MAAM,KAAK,cAAc;AAAE,eAAS,QAAQ,SAAS,QAAQ,IAAI,CAAC;AAAA,IAAE;AAE3F,WAAO;AAAA,EACT;AAAA,EAOA,WAAW,MAAc,OAAe;AACtC,QAAI,OAAO,MAAM;AAAE,cAAQ,KAAK,+BAA+B;AAAA,IAAE;AAEjE,QAAK,QAAQ,KAAO,QAAQ,IAAK;AAAE,cAAQ,MAAM,mCAAmC;AAAA,IAAE;AAEtF,QAAI,OAAe,CAAC;AAEpB,UAAM,QAAuB,CAAC;AAE9B,QAAI,OAAO,KAAK,cAAc,IAAI,KAAK,MAAM,OAAO,CAAC,CAAC;AAEtD,OAAG;AACD,eAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,aAAK,KAAK,IAAI;AACd,eAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAC9B,aAAK,QAAQ,KAAK,QAAQ,IAAI,CAAC;AAAA,MACjC;AACA,YAAM,KAAK,IAAI;AACf,aAAO,CAAC;AAAA,IACV,SAAU,KAAK,SAAS,KAAK,SAAW,KAAK,YAAY,MAAM;AAE/D,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,MAAc,OAAe;AACrC,WAAO,KAAK,WAAW,MAAM,KAAK,EAAE,IAAI,SAAO,IAAI,IAAI,SAAO,IAAI,SAAS,MAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC;AAAA,EAC7G;AAAA,EAEA,UAAU,MAAc,OAAe;AACrC,UAAM,gBAAgB,CAAC,SAAe;AACpC,UAAI,IAAI,KAAK,SAAS,MAAM,QAAQ,KAAK,QAAQ,EAAE,SAAS,IAAI;AAChE,aAAO,EAAE,SAAS,GAAG;AAAE,YAAI,IAAI;AAAA,MAAI;AACnC,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,KAAK,WAAW,MAAM,KAAK,EAAE,IAAI,SAAO,IAAI,IAAI,SAAO,cAAc,GAAG,CAAC,CAAC;AACxF,WAAO,MAAM,KAAK,IAAI;AAAA,EACxB;AACF;AAEA,IAAO,cAAQ;","names":[]}