{"version":3,"file":"calendarHelper.cjs","sources":["../../../src/components/Calendar/calendarHelper.ts"],"sourcesContent":["import dayjs from 'dayjs'\nimport dayjsIsBetween from 'dayjs/plugin/isBetween'\n\ndayjs.extend(dayjsIsBetween)\n\nexport const minDate = new Date(1900, 0, 1)\nconst minDatetime = minDate.getTime()\nconst maxDate = new Date(9999, 11, 31)\nconst maxDatetime = maxDate.getTime()\n\nexport function getFromDate(date: Date): Date {\n  const time = date.getTime()\n\n  return isNaN(time) || time < minDatetime ? minDate : date\n}\n\nexport function getToDate(date?: Date): Date {\n  if (!date) {\n    return dayjs().add(50, 'year').toDate()\n  }\n\n  const time = date.getTime()\n\n  if (isNaN(time)) {\n    return dayjs().add(50, 'year').toDate()\n  }\n\n  return time > maxDatetime ? maxDate : date\n}\n\nexport function getMonthArray(date: Date, weekStartDay: number = 0) {\n  const day = dayjs(date)\n\n  // 月の最初の日の曜日を取得（0=日曜日, 1=月曜日, ..., 6=土曜日）\n  const firstDayOfMonth = day.date(1).day()\n\n  // 週の開始日からのオフセットを計算\n  // weekStartDay を基準とした場合の月の最初の日の位置を計算\n  const startDay = (firstDayOfMonth - weekStartDay + 7) % 7\n\n  const lastDate = day.add(1, 'month').date(0).date()\n  const numOfWeek = Math.ceil((lastDate + startDay) / 7)\n\n  const result: Array<Array<number | null>> = []\n\n  for (let weekIndex = 0; weekIndex < numOfWeek; weekIndex++) {\n    // 週毎の配列を形成\n    const startDateInWeek = weekIndex * 7 - startDay + 1\n    const weekNumbers: Array<number | null> = []\n\n    for (let dateIndex = 0; dateIndex < 7; dateIndex++) {\n      // 1週の配列を形成\n      const dateNum = startDateInWeek + dateIndex\n\n      weekNumbers[dateIndex] = dateNum > 0 && dateNum <= lastDate ? dateNum : null\n    }\n\n    result[weekIndex] = weekNumbers\n  }\n\n  return result\n}\n\nexport function isBetween(date: Date, from: Date, to: Date) {\n  return dayjs(date).isBetween(from, to, 'day', '[]')\n}\n"],"names":["dayjs","dayjsIsBetween"],"mappings":";;;;;AAGAA,SAAK,CAAC,MAAM,CAACC,WAAc,CAAC;AAErB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE;AACrC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE;AAE/B,SAAU,WAAW,CAAC,IAAU,EAAA;AACpC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAE3B,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI;AAC3D;AAEM,SAAU,SAAS,CAAC,IAAW,EAAA;IACnC,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAOD,SAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;IACzC;AAEA,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAE3B,IAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACf,QAAA,OAAOA,SAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;IACzC;IAEA,OAAO,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI;AAC5C;SAEgB,aAAa,CAAC,IAAU,EAAE,eAAuB,CAAC,EAAA;AAChE,IAAA,MAAM,GAAG,GAAGA,SAAK,CAAC,IAAI,CAAC;;IAGvB,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;;;IAIzC,MAAM,QAAQ,GAAG,CAAC,eAAe,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC;AAEzD,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnD,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAgC,EAAE;AAE9C,IAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,EAAE;;QAE1D,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;QACpD,MAAM,WAAW,GAAyB,EAAE;AAE5C,QAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE;;AAElD,YAAA,MAAM,OAAO,GAAG,eAAe,GAAG,SAAS;AAE3C,YAAA,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,QAAQ,GAAG,OAAO,GAAG,IAAI;QAC9E;AAEA,QAAA,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;IACjC;AAEA,IAAA,OAAO,MAAM;AACf;SAEgB,SAAS,CAAC,IAAU,EAAE,IAAU,EAAE,EAAQ,EAAA;AACxD,IAAA,OAAOA,SAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC;AACrD;;;;;;;;"}