{"version":3,"file":"slideshow.mjs","sources":["../../../../../../packages/components/slideshow/src/slideshow.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\nimport { ExtractPropTypes } from 'vue'\r\nimport type Slideshow from './slideshow.vue'\r\n\r\nexport interface SlideItem {\r\n  text?: string\r\n  src?: string\r\n  link?: string\r\n  [key: string]: any\r\n}\r\n\r\nexport const slideshowEffect = [\r\n  'slide', // 滑动\r\n  'fade', // 淡入淡出\r\n  'cube', // 立方体\r\n  'coverflow', // 封面流\r\n  'flip', // 翻转\r\n  'cards', // 卡片\r\n]\r\n\r\n// props\r\nexport const slideshowProps = buildProps({\r\n  // 数据源配置\r\n  list: {\r\n    type: definePropType<SlideItem[]>(Array),\r\n    default: () => [],\r\n  },\r\n  // 轮播图容器高度\r\n  height: {\r\n    type: definePropType<string | number>([String, Number]),\r\n    default: 300,\r\n  },\r\n\r\n  // 是否显示左右导航按钮\r\n  navigation: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  // 是否显示分页指示器\r\n  pagination: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  // 是否显示滚动条\r\n  scrollbar: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 效果选择 slide(滑动)/fade(淡入淡出)/cube(立方体)/coverflow(封面流)/flip(翻转)/cards(卡片)\r\n  effect: {\r\n    type: String,\r\n    default: 'slide',\r\n    values: slideshowEffect,\r\n  },\r\n\r\n  // 方向 horizontal(水平) / vertical(垂直)\r\n  direction: {\r\n    type: String as () => 'horizontal' | 'vertical',\r\n    default: 'horizontal',\r\n  },\r\n\r\n  // 是否启用循环播放\r\n  loop: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 同时显示的幻灯片数量\r\n  slidesPerView: {\r\n    type: Number,\r\n    default: 1,\r\n  },\r\n  // 相邻幻灯片之间的间距\r\n  spaceBetween: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  // 是否将活动幻灯片居中显示\r\n  centeredSlides: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  // 每次滑动切换的幻灯片组数\r\n  slidesPerGroup: {\r\n    type: Number,\r\n    default: 1,\r\n  },\r\n\r\n  // 幻灯片切换动画速度(毫秒)\r\n  speed: {\r\n    type: Number,\r\n    default: 600,\r\n  },\r\n\r\n  // 是否启用自动播放\r\n  autoplay: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  // 自动播放延迟时间(毫秒)\r\n  delay: {\r\n    type: Number,\r\n    default: 3000,\r\n  },\r\n\r\n  // 是否触摸滑动切换\r\n  simulateTouch: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  // 是否在触摸时显示抓取光标\r\n  grabCursor: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  // 额外自定义配置\r\n  options: {\r\n    type: Object,\r\n    default: () => ({}),\r\n  },\r\n\r\n  // 文本内边距\r\n  textStyle: {\r\n    type: Object,\r\n    default: () => ({}),\r\n  },\r\n\r\n  /**\r\n   * 以下效果专用配置———————————————————————————————————————————————————————————\r\n   */\r\n\r\n  // cube是否显示阴影\r\n  shadow: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  // coverflow 滑块旋转角度\r\n  rotate: {\r\n    type: Number,\r\n    default: 50,\r\n  },\r\n  // coverflow拉伸距离\r\n  stretch: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  // coverflow 深度偏移\r\n  depth: {\r\n    type: Number,\r\n    default: 100,\r\n  },\r\n  // cards每张幻灯片的旋转角度\r\n  perSlideRotate: {\r\n    type: Number,\r\n    default: 2,\r\n  },\r\n  // cards每张幻灯片的偏移量\r\n  perSlideOffset: {\r\n    type: Number,\r\n    default: 8,\r\n  },\r\n\r\n  // ==================== 鼠标滚轮控制 ====================\r\n\r\n  // 是否启用鼠标滚轮控制\r\n  mousewheel: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  // 鼠标滚轮方向是否反转\r\n  mousewheelInvert: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  // 鼠标滚轮灵敏度 (0.1 - 3)\r\n  mousewheelSensitivity: {\r\n    type: Number,\r\n    default: 1,\r\n    validator: (value) => value >= 0.1 && value <= 3,\r\n  },\r\n\r\n  // ==================== 键盘控制 ====================\r\n  // 是否启用键盘控制\r\n  keyboard: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  // 是否仅在视窗内响应键盘\r\n  keyboardOnlyInViewport: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  // 是否启用PageUp/PageDown翻页\r\n  keyboardPageUpDown: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n} as const)\r\n\r\n// props\r\nexport type SlideshowProps = ExtractPropTypes<typeof slideshowProps>\r\n\r\n// instance\r\nexport type SlideshowInstance = InstanceType<typeof Slideshow>\r\n"],"names":[],"mappings":"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"}