{"version":3,"file":"calendar.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type Calendar from './calendar.vue'\r\n\r\n\r\nexport const calendarEventTextSizes = ['sm', 'md', 'lg'] as const\r\nexport const calendarWeekdayFormats = ['min', 'short', 'long'] as const\r\nexport const calendarWeekStartDays = [0, 1] as const\r\nexport const calendarWeekColumnDateFormats = [\r\n  'M/D',\r\n  'M月D日',\r\n  'D日',\r\n  'D',\r\n] as const\r\nexport const calendarFirstDayFormats = [\r\n  'monthDay',\r\n  'dayMonth',\r\n  'chineseDate',\r\n] as const\r\n\r\nexport const calendarDayTitleFormats = [\r\n  'YYYY-MM-DD',\r\n  'YYYY/MM/DD',\r\n  'YYYY年M月D日',\r\n  'YYYY年MM月DD日',\r\n  'M月D日 dddd',\r\n  'MM/DD ddd',\r\n  'DD/MM/YYYY',\r\n  'ddd, MMM D, YYYY',\r\n  'dddd, MMMM D',\r\n] as const\r\n\r\nexport const calendarMonthTitleFormats = [\r\n  'YYYY-MM',\r\n  'YYYY年M月',\r\n  'M月',\r\n] as const\r\n\r\nexport const calendarWeekTitleFormats = [\r\n  'YYYY 第W周',\r\n  'YYYY年 第W周',\r\n  '第W周',\r\n  'W周',\r\n  'YYYY/W',\r\n  'W/YYYY',\r\n  'MM/DD - MM/DD',\r\n  'YYYY/MM/DD - MM/DD',\r\n  'YYYY年M月D日-D日',\r\n  'YYYY年M月D日 - M月D日',\r\n  'Week W, YYYY',\r\n  'YYYY-MM-DD / DD',\r\n] as const\r\n\r\nexport type CalendarEventTextSize = (typeof calendarEventTextSizes)[number]\r\nexport type CalendarWeekdayFormat = (typeof calendarWeekdayFormats)[number]\r\nexport type CalendarWeekStartDay = (typeof calendarWeekStartDays)[number]\r\nexport type CalendarWeekColumnDateFormat =\r\n  (typeof calendarWeekColumnDateFormats)[number]\r\nexport type CalendarFirstDayPresetFormat =\r\n  (typeof calendarFirstDayFormats)[number]\r\nexport type CalendarDayTitlePresetFormat =\r\n  (typeof calendarDayTitleFormats)[number]\r\nexport type CalendarMonthTitlePresetFormat =\r\n  (typeof calendarMonthTitleFormats)[number]\r\nexport type CalendarWeekTitlePresetFormat =\r\n  (typeof calendarWeekTitleFormats)[number]\r\nexport type CalendarFirstDayFormat = string\r\nexport type CalendarDayTitleFormat = string\r\nexport type CalendarMonthTitleFormat = string\r\nexport type CalendarWeekTitleFormat = string\r\n\r\nexport interface CalendarEventDisplayField {\r\n  label?: string\r\n  key: string\r\n  type?: string\r\n  props?: Record<string, any>\r\n  colProps?: Record<string, any>\r\n  style?: Record<string, any>\r\n  on?: Record<string, (...args: any[]) => void>\r\n  editComponent?: {\r\n    type?: string\r\n    label?: string\r\n    props?: Record<string, any>\r\n    colProps?: Record<string, any>\r\n    spanCol?: number\r\n    [key: string]: any\r\n  }\r\n  children?: CalendarEventDisplayField[]\r\n}\r\n\r\n/**\r\n * 日期组配置：将一条原始记录的多组日期字段（如计划/实际）展开为多条派生日程。\r\n * 详见「日期组功能档案」。\r\n */\r\nexport interface CalendarDateGroup {\r\n  /** 日期组唯一标识，参与复合事件 ID 生成（`${rawRecordId}_${id}`） */\r\n  id: string\r\n  /** 原始记录中「开始时间」对应的字段名 */\r\n  startField: string\r\n  /** 「结束时间」字段名（缺省时事件退化为单点，end = start） */\r\n  endField?: string\r\n  /** 是否启用（默认 true，`enabled !== false` 视为启用） */\r\n  enabled?: boolean\r\n  /** 标签文字（旧字段，作为 tag 的兜底） */\r\n  labelText?: string\r\n  /** 标签颜色（旧字段，作为 eventColor 的兜底） */\r\n  labelColor?: string\r\n  /** 标签文本（新字段，优先级高于 labelText） */\r\n  tag?: string\r\n  /** 标签文本（兼容写法） */\r\n  tagText?: string\r\n  /** 标签背景色 */\r\n  tagColor?: string\r\n  /** 日程统一色调（同时影响左侧边框 + 浅色背景），缺省回退到 labelColor */\r\n  eventColor?: string\r\n  /** 事件背景色，优先级高于 eventColor */\r\n  backgroundColor?: string\r\n  /** 事件边框色，优先级高于 eventColor */\r\n  borderColor?: string\r\n  /** 事件文字颜色 */\r\n  color?: string\r\n  [key: string]: any\r\n}\r\n\r\nexport type CalendarView = 'month' | 'week' | 'day'\r\nexport const defaultCalendarFieldComponents: Record<string, any> = {\r\n  LlTag: 'll-tag',\r\n  LlAvatar: 'll-avatar',\r\n  LlButton: 'll-button',\r\n  LlImage: 'll-image',\r\n  LlSpace: 'll-space',\r\n  LlTooltip: 'll-tooltip',\r\n}\r\n\r\nexport interface CalendarEvent {\r\n  id?: string | number\r\n  title?: string\r\n  start: string | Date\r\n  end?: string | Date\r\n  /** 事件背景色，优先级高于 eventColor */\r\n  backgroundColor?: string\r\n  /** 事件左侧边框颜色，优先级高于 eventColor */\r\n  borderColor?: string\r\n  /** 事件文字颜色 */\r\n  color?: string\r\n  /** 统一色调：同时设置左侧边框色与浅色背景（backgroundColor/borderColor 会覆盖此值） */\r\n  eventColor?: string\r\n  /** 标题前显示的标签文本 */\r\n  tag?: string\r\n  /** 标签背景颜色 */\r\n  tagColor?: string\r\n  content?: string\r\n  class?: string\r\n  allDay?: boolean\r\n  _eid?: string\r\n  split?: string | number\r\n  /** 派生事件指向的原始记录 ID（日期组展开时写入） */\r\n  rawRecordId?: string\r\n  /** 派生事件所属日期组 ID（日期组展开时写入） */\r\n  _dateGroupId?: string\r\n  [key: string]: any\r\n}\r\n\r\nexport interface CalendarCellClickRaw {\r\n  date: Date\r\n  split?: string | number\r\n  [key: string]: any\r\n}\r\n\r\nexport interface CalendarSelectRaw {\r\n  start: Date\r\n  end: Date\r\n  split?: string | number\r\n}\r\n\r\nexport interface CalendarEventClickRaw {\r\n  event: CalendarEvent\r\n  nativeEvent?: Event\r\n}\r\n\r\nexport interface CalendarEventContextMenuRaw {\r\n  event: CalendarEvent\r\n  nativeEvent: MouseEvent\r\n}\r\n\r\nexport interface CalendarEventDropRaw {\r\n  event: CalendarEvent\r\n  originalEvent?: CalendarEvent\r\n  external?: boolean\r\n}\r\n\r\nexport interface CalendarEventResizeRaw {\r\n  event: CalendarEvent\r\n  originalEvent?: CalendarEvent\r\n}\r\n\r\nexport interface CalendarEventEditRaw {\r\n  event: CalendarEvent\r\n  originalEvent?: CalendarEvent\r\n  isCreate?: boolean\r\n}\r\n\r\nexport interface CalendarEventDeleteRaw {\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarDatesChangeRaw {\r\n  view: 'month' | 'week' | 'day'\r\n  startDate: Date\r\n  endDate: Date\r\n  firstCellDate?: Date\r\n  lastCellDate?: Date\r\n  events?: CalendarEvent[]\r\n}\r\n\r\nexport const calendarProps = buildProps({\r\n  modelValue: {\r\n    type: definePropType<CalendarEvent[]>(Array),\r\n    default: () => [],\r\n  },\r\n  view: {\r\n    type: definePropType<CalendarView>(String),\r\n    default: 'month',\r\n  },\r\n  currentDate: {\r\n    type: definePropType<string | Date>([String, Date]),\r\n    default: undefined,\r\n  },\r\n  editableEvents: {\r\n    type: definePropType<Partial<{\r\n      drag: boolean\r\n      resize: boolean\r\n      delete: boolean\r\n      create: boolean\r\n      selectCreate: boolean\r\n    }>>(Object),\r\n    default: () => ({}),\r\n  },\r\n  selectable: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  readonly: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  disableCreateInPast: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  clickOutOfMonthJump: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  allDaySlot: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  nowIndicator: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  timeSlotFormat: {\r\n    type: String,\r\n    default: 'HH:mm',\r\n  },\r\n  dayMaxEvents: {\r\n    type: definePropType<boolean | number>([Boolean, Number]),\r\n    default: true,\r\n  },\r\n  eventsOnMonthView: {\r\n    type: definePropType<boolean | 'short'>([Boolean, String]),\r\n    default: true,\r\n  },\r\n  height: {\r\n    type: definePropType<string | number>([String, Number]),\r\n    default: 'auto',\r\n  },\r\n  slotMinTime: {\r\n    type: String,\r\n    default: '00:00:00',\r\n  },\r\n  slotMaxTime: {\r\n    type: String,\r\n    default: '24:00:00',\r\n  },\r\n  slotDuration: {\r\n    type: String,\r\n    default: '00:15:00',\r\n  },\r\n  timeCellHeight: {\r\n    type: Number,\r\n    default: 190,\r\n  },\r\n  autoScrollToNow: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  autoScrollOnlyToday: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  eventTitleKey: {\r\n    type: String,\r\n    default: 'title',\r\n  },\r\n  eventDescriptionKey: {\r\n    type: String,\r\n    default: 'content',\r\n  },\r\n  eventImageKey: {\r\n    type: String,\r\n    default: '',\r\n  },\r\n  eventMetaFields: {\r\n    type: definePropType<CalendarEventDisplayField[]>(Array),\r\n    default: () => [],\r\n  },\r\n  eventDisplayFields: {\r\n    type: definePropType<CalendarEventDisplayField[]>(Array),\r\n    default: () => [],\r\n  },\r\n  components: {\r\n    type: definePropType<Record<string, any>>(Object),\r\n    default: () => ({}),\r\n  },\r\n  eventMaxMetaCount: {\r\n    type: Number,\r\n    default: 2,\r\n  },\r\n  eventTextSize: {\r\n    type: definePropType<CalendarEventTextSize>(String),\r\n    default: 'md',\r\n    values: calendarEventTextSizes,\r\n  },\r\n  weekdayFormat: {\r\n    type: definePropType<CalendarWeekdayFormat>(String),\r\n    default: 'long',\r\n    values: calendarWeekdayFormats,\r\n  },\r\n  weekStartDay: {\r\n    type: definePropType<CalendarWeekStartDay>(Number),\r\n    default: 0,\r\n    values: calendarWeekStartDays,\r\n  },\r\n  weekColumnDateFormat: {\r\n    type: definePropType<CalendarWeekColumnDateFormat>(String),\r\n    default: 'D',\r\n    values: calendarWeekColumnDateFormats,\r\n  },\r\n  firstDayFormat: {\r\n    type: definePropType<CalendarFirstDayFormat>(String),\r\n    default: 'chineseDate',\r\n  },\r\n  monthTitleFormat: {\r\n    type: definePropType<CalendarMonthTitleFormat>(String),\r\n    default: 'YYYY-MM',\r\n  },\r\n  weekTitleFormat: {\r\n    type: definePropType<CalendarWeekTitleFormat>(String),\r\n    default: 'YYYY 第W周',\r\n  },\r\n  dayTitleFormat: {\r\n    type: definePropType<CalendarDayTitleFormat>(String),\r\n    default: 'YYYY-MM-DD',\r\n  },\r\n  showLunar: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  /**\r\n   * 日期组配置：将一条原始记录展开为多条派生日程（如「计划」「实际」）。\r\n   * 为空数组时功能关闭，组件按常规事件渲染 modelValue。\r\n   */\r\n  dateGroups: {\r\n    type: definePropType<CalendarDateGroup[]>(Array),\r\n    default: () => [],\r\n  },\r\n  /**\r\n   * 派生事件标题模板，支持 `{字段名}` 占位符（如 `{name}-{stage}`）。\r\n   * 为空时回退到原始记录的 title。\r\n   */\r\n  dateGroupTitleFormat: {\r\n    type: String,\r\n    default: '',\r\n  },\r\n\r\n} as const)\r\n\r\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\r\nexport type CalendarInstance = InstanceType<typeof Calendar>\r\n\r\nexport interface CalendarChangeContext {\r\n  events: CalendarEvent[]\r\n}\r\n\r\nexport interface CalendarDateClickContext extends CalendarChangeContext {\r\n  raw: CalendarCellClickRaw\r\n}\r\n\r\nexport interface CalendarSelectContext extends CalendarChangeContext {\r\n  raw: CalendarSelectRaw\r\n}\r\n\r\nexport interface CalendarEventClickContext extends CalendarChangeContext {\r\n  raw: CalendarEventClickRaw\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarEventDropContext extends CalendarChangeContext {\r\n  raw: CalendarEventDropRaw\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarEventContextMenuContext extends CalendarChangeContext {\r\n  raw: CalendarEventContextMenuRaw\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarEventResizeContext extends CalendarChangeContext {\r\n  raw: CalendarEventResizeRaw\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarEventEditContext extends CalendarChangeContext {\r\n  raw: CalendarEventEditRaw\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarEventDeleteContext extends CalendarChangeContext {\r\n  raw: CalendarEventDeleteRaw\r\n  event: CalendarEvent\r\n}\r\n\r\nexport interface CalendarDatesChangeContext extends CalendarChangeContext {\r\n  raw: CalendarDatesChangeRaw\r\n}\r\n\r\nfunction formatCalendarDateTime(value: Date) {\r\n  const year = value.getFullYear()\r\n  const month = String(value.getMonth() + 1).padStart(2, '0')\r\n  const day = String(value.getDate()).padStart(2, '0')\r\n  const hours = String(value.getHours()).padStart(2, '0')\r\n  const minutes = String(value.getMinutes()).padStart(2, '0')\r\n  const seconds = String(value.getSeconds()).padStart(2, '0')\r\n\r\n  return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`\r\n}\r\n\r\nexport function normalizeCalendarEvent(event: CalendarEvent): CalendarEvent {\r\n  const normalized = { ...event }\r\n\r\n  if (normalized.start instanceof Date) {\r\n    normalized.start = formatCalendarDateTime(normalized.start)\r\n  }\r\n\r\n  if (normalized.end instanceof Date) {\r\n    normalized.end = formatCalendarDateTime(normalized.end)\r\n  }\r\n\r\n  return normalized\r\n}\r\n\r\nexport function normalizeCalendarEvents(events?: CalendarEvent[]): CalendarEvent[] {\r\n  return (events ?? []).map(normalizeCalendarEvent)\r\n}\r\n\r\nexport const titleEnum = {\r\n  day:'日',\r\n  week:'周',\r\n  month:'月',\r\n}"],"names":[],"mappings":"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"}