{"version":3,"file":"DateFormatter.cjs","sources":["../../src/intl/DateFormatter.tsx"],"sourcesContent":["'use client'\n\nimport dayjs from 'dayjs'\n\nimport { useIntl } from './useIntl'\n\nimport type { FormatDateProps } from './useIntl'\n\n/**\n * 日付を現在のロケールに応じてフォーマットして表示するコンポーネント\n * time要素でラップされ、ISO形式の日付文字列がdateTime属性に設定されます\n *\n * @param props - フォーマットのオプション\n * @param props.date - フォーマット対象の日付\n * @param props.parts - 表示する日付のパーツ。指定しない場合は全て表示\n * @param props.options - フォーマットオプション\n * @param props.options.disableSlashInJa - 日本語ロケールでスラッシュを無効化し、月を長形式で表示する\n * @param props.options.capitalizeFirstLetter - 最初の文字を大文字化する\n * @returns フォーマットされた日付を含むtime要素\n * @example\n * // 基本的な使用法（ロケールのデフォルト形式）\n * <DateFormatter date={new Date()} />\n * // <time datetime=\"2024-01-15T10:30:00.000Z\">2024/01/15</time>\n *\n * // 日付を曜日ありで表示\n * <DateFormatter date={new Date()} parts={['year', 'month', 'day', 'weekday']} />\n * // <time datetime=\"2024-01-15T10:30:00.000Z\">2024/01/15（水）</time>\n *\n * // 特定のパーツのみ表示\n * <DateFormatter\n *   date={new Date()}\n *   parts={['year', 'month']}\n * />\n * // <time datetime=\"2024-01-15T10:30:00.000Z\">2024/01</time>\n *\n * // 日本語でスラッシュを無効化（月を長形式で表示）\n * <DateFormatter\n *   date={new Date()}\n *   parts={['year', 'month']}\n *   options={{ disableSlashInJa: true }}\n * />\n * // <time datetime=\"2024-01-15T10:30:00.000Z\">2024年1月</time>\n *\n * // 最初の文字を大文字化\n * <DateFormatter\n *   date={new Date()}\n *   parts={['weekday']}\n *   options={{ capitalizeFirstLetter: true }}\n * />\n * // <time datetime=\"2024-01-15T10:30:00.000Z\">Seg.</time> (pt)（指定しなければ \"seg.\"）\n */\nexport const DateFormatter = ({\n  date: orgDate,\n  ...rest\n}: Omit<FormatDateProps, 'date'> & {\n  date: string | Date\n}) => {\n  const date = dayjs(orgDate).toDate()\n  const { formatDate } = useIntl()\n  return <time dateTime={date.toISOString()}>{formatDate({ ...rest, date })}</time>\n}\n"],"names":[],"mappings":";;;;;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;AACI;;AAOL;AACA;AACF;;"}