{"version":3,"file":"countdown.mjs","sources":["../../../../../../packages/components/countdown/src/countdown.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nimport type Countdown from './countdown.vue'\r\n\r\nexport type TimeUnit = 'yyyy' | 'MM' | 'dd' | 'HH' | 'mm' | 'ss'\r\n\r\n/** countdown: 按 value 时长倒计时；timer: 按 value 目标时间定时 */\r\nexport type CountdownMode = 'countdown' | 'timer'\r\n\r\nexport const countdownProps = buildProps({\r\n  /** 显示的时间单位列表；未包含的单位会向下一级合并 */\r\n  units: {\r\n    type: definePropType<TimeUnit[]>(Array),\r\n    default: (): TimeUnit[] => ['yyyy', 'MM', 'dd', 'HH', 'mm', 'ss'],\r\n  },\r\n\r\n  /**\r\n   * 时间值：\r\n   * - countdown 模式：时长（ms），如 60000 表示 60 秒\r\n   * - timer 模式：目标时间（Date | 时间戳 ms | 日期字符串）\r\n   */\r\n  value: {\r\n    type: definePropType<Date | number | string>([Date, Number, String]),\r\n    default: 6000 * 60 * 60,\r\n  },\r\n\r\n  /** 倒计时模式：countdown = 按 value 时长倒计时；timer = 按 value 目标时间定时 */\r\n  mode: {\r\n    type: definePropType<CountdownMode>(String),\r\n    default: 'countdown' as CountdownMode,\r\n  },\r\n\r\n  /** 是否开启倒计时 */\r\n  active: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  /** 秒的精度（小数位数），0 表示整秒 */\r\n  precision: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  /** 倒计时主题 */\r\n  theme: {\r\n    type: definePropType<'dark' | 'light'>(String),\r\n    default: 'dark',\r\n  },\r\n\r\n  /** 标题文本 */\r\n  title: {\r\n    type: String,\r\n    default: '',\r\n  },\r\n\r\n  /** 标题样式 */\r\n  titleStyle: {\r\n    type: definePropType<Record<string, any>>(Object),\r\n    default: () => ({}),\r\n  },\r\n\r\n  /** 倒计时完成时是否显示礼花特效 */\r\n  showConfetti: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  /** 是否显示控制按钮（开始/暂停、重置） */\r\n  control: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n} as const)\r\n\r\nexport type CountdownProps = ExtractPropTypes<typeof countdownProps>\r\n\r\nexport const countdownEmits = {\r\n  finish: () => true,\r\n}\r\n\r\nexport type CountdownEmits = typeof countdownEmits\r\n\r\n// instance\r\nexport type CountdownInstance = InstanceType<typeof Countdown>\r\n"],"names":[],"mappings":";;;;AAUO,MAAM,iBAAiB,UAAA,CAAW;AAAA;AAAA,EAEvC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,eAA2B,KAAK,CAAA;AAAA,IACtC,OAAA,EAAS,MAAkB,CAAC,MAAA,EAAQ,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAAA,GAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAA,EAAO;AAAA,IACL,MAAM,cAAA,CAAuC,CAAC,IAAA,EAAM,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,IACnE,OAAA,EAAS,MAAO,EAAA,GAAK;AAAA,GACvB;AAAA;AAAA,EAGA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,eAA8B,MAAM,CAAA;AAAA,IAC1C,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,eAAiC,MAAM,CAAA;AAAA,IAC7C,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,eAAoC,MAAM,CAAA;AAAA,IAChD,OAAA,EAAS,OAAO,EAAC;AAAA,GACnB;AAAA;AAAA,EAGA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAU;AAIH,MAAM,cAAA,GAAiB;AAAA,EAC5B,QAAQ,MAAM;AAChB;;;;"}