{"version":3,"file":"qrcode.mjs","sources":["../../../../../../packages/components/qrcode/src/qrcode.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type Qrcode from './qrcode.vue'\r\n\r\nimport {\r\n  type CornerDotType,\r\n  type CornerSquareType,\r\n  type DotType,\r\n  type ErrorCorrectionLevel,\r\n  type GradientType,\r\n} from 'qr-code-styling'\r\n\r\nexport const qrcodeProps = buildProps({\r\n  // 是否有边框\r\n  bordered: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  // 二维码组件的尺寸（像素）\r\n  size: {\r\n    type: Number,\r\n    default: 200,\r\n  },\r\n\r\n  // 二维码与容器边缘的内边距（像素）\r\n  padding: {\r\n    type: Number,\r\n    default: 8,\r\n  },\r\n\r\n  // 二维码包含的数据（必需）\r\n  data: {\r\n    type: String,\r\n    required: true,\r\n    default: '',\r\n  },\r\n\r\n  /**\r\n   * 二维码内容与边缘的外边距（像素）\r\n   * 增加此值会使二维码点远离边缘\r\n   */\r\n  margin: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // ============= 点样式相关 =============\r\n\r\n  /**\r\n   * 二维码点的形状\r\n   * 'square'（方形）, 'dots'（圆点）, 'rounded'（圆角）,\r\n   * 'extra-rounded'（超大圆角）, 'classy'（经典）, 'classy-rounded'（经典圆角）\r\n   */\r\n  dotsType: {\r\n    type: String as () => DotType,\r\n    default: 'rounded',\r\n  },\r\n\r\n  /**\r\n   * 二维码点的颜色 （若设置了渐变，此颜色将被忽略）\r\n   */\r\n  dotsColor: {\r\n    type: String,\r\n    default: '#000000',\r\n  },\r\n\r\n  /**\r\n   * 二维码点的渐变类型\r\n   * 可选值: 'single'（单色）, 'linear'（线性渐变）, 'radial'（径向渐变）\r\n   */\r\n  dotsGradientType: {\r\n    type: definePropType<GradientType | 'single'>(String),\r\n    default: 'single',\r\n  },\r\n\r\n  /**\r\n   * 二维码点渐变的起始颜色\r\n   */\r\n  dotsGradientStartColor: {\r\n    type: String,\r\n    default: '#ff0000',\r\n  },\r\n\r\n  /**\r\n   * 二维码点渐变的结束颜色\r\n   */\r\n  dotsGradientEndColor: {\r\n    type: String,\r\n    default: '#0000ff',\r\n  },\r\n\r\n  /**\r\n   * 二维码点渐变的旋转角度（度）\r\n   * 仅对线性渐变有效\r\n   */\r\n  dotsGradientRotation: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // ============= 边角方块相关 =============\r\n\r\n  /**\r\n   * 二维码边角方块的形状\r\n   * 'square'（方形）, 'dot'（圆点）, 'rounded'（圆角）, 'extra-rounded'（超大圆角）\r\n   */\r\n  cornersSquareType: {\r\n    type: String as () => CornerSquareType,\r\n    default: 'square',\r\n  },\r\n\r\n  /**\r\n   * 边角方块的颜色\r\n   */\r\n  cornersSquareColor: {\r\n    type: String,\r\n    default: '#000000',\r\n  },\r\n\r\n  /**\r\n   * 边角方块的渐变类型\r\n   * 可选值: 'single'（单色）, 'linear'（线性渐变）, 'radial'（径向渐变）\r\n   */\r\n  cornersSquareGradientType: {\r\n    type: definePropType<GradientType | 'single'>(String),\r\n    default: 'single',\r\n  },\r\n\r\n  /**\r\n   * 边角方块渐变的起始颜色\r\n   */\r\n  cornersSquareGradientStartColor: {\r\n    type: String,\r\n    default: '#ff0000',\r\n  },\r\n\r\n  /**\r\n   * 边角方块渐变的结束颜色\r\n   */\r\n  cornersSquareGradientEndColor: {\r\n    type: String,\r\n    default: '#0000ff',\r\n  },\r\n\r\n  /**\r\n   * 边角方块渐变的旋转角度（度）\r\n   * 仅对线性渐变有效\r\n   */\r\n  cornersSquareGradientRotation: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // ============= 边角点相关 =============\r\n  /**\r\n   * 二维码边角点的形状\r\n   * 可选值: 'square'（方形）, 'dot'（圆点） 'rounded'（圆角），'extra-rounded'（超大圆角）\r\n   */\r\n  cornersDotType: {\r\n    type: String as () => CornerDotType,\r\n    default: 'square',\r\n  },\r\n\r\n  /**\r\n   * 边角点的颜色\r\n   */\r\n  cornersDotColor: {\r\n    type: String,\r\n    default: '#000000',\r\n  },\r\n\r\n  /**\r\n   * 边角点的渐变类型\r\n   * 可选值: 'single'（单色）, 'linear'（线性渐变）, 'radial'（径向渐变）\r\n   */\r\n  cornersDotGradientType: {\r\n    type: definePropType<GradientType | 'single'>(String),\r\n    default: 'single',\r\n  },\r\n\r\n  /**\r\n   * 边角点渐变的起始颜色\r\n   */\r\n  cornersDotGradientStartColor: {\r\n    type: String,\r\n    default: '#ff0000',\r\n  },\r\n\r\n  /**\r\n   * 边角点渐变的结束颜色\r\n   */\r\n  cornersDotGradientEndColor: {\r\n    type: String,\r\n    default: '#0000ff',\r\n  },\r\n\r\n  /**\r\n   * 边角点渐变的旋转角度\r\n   * 仅对线性渐变有效\r\n   */\r\n  cornersDotGradientRotation: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // ============= 背景相关 =============\r\n\r\n  // 二维码背景颜色\r\n  bgColor: {\r\n    type: String,\r\n    default: '#ffffff',\r\n  },\r\n\r\n  /**\r\n   * 背景渐变类型\r\n   * 可选值: 'single'（单色）, 'linear'（线性渐变）, 'radial'（径向渐变）\r\n   */\r\n  bgGradientType: {\r\n    type: definePropType<GradientType | 'single'>(String),\r\n    default: 'single',\r\n  },\r\n\r\n  /**\r\n   * 背景渐变的起始颜色\r\n   */\r\n  bgGradientStartColor: {\r\n    type: String,\r\n    default: '#ff0000',\r\n  },\r\n  /**\r\n   * 背景渐变的结束颜色\r\n   */\r\n  bgGradientEndColor: {\r\n    type: String,\r\n    default: '#0000ff',\r\n  },\r\n\r\n  /**\r\n   * 背景渐变的旋转角度\r\n   * 仅对线性渐变有效\r\n   */\r\n  bgGradientRotation: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // ============= 图像相关 =============\r\n\r\n  /**\r\n   * 二维码中心图标的URL\r\n   */\r\n  image: {\r\n    type: String,\r\n    default: undefined,\r\n  },\r\n\r\n  /**\r\n   * 是否隐藏图标下方的二维码点\r\n   */\r\n  imageHideBgDots: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  /**\r\n   * 图标大小（相对二维码的比例）\r\n   * 0.1表示图标占二维码宽度的10%\r\n   */\r\n  imageSize: {\r\n    type: Number,\r\n    default: 0.4,\r\n  },\r\n\r\n  /**\r\n   * 图标与二维码点的外边距（像素）\r\n   */\r\n  imageMargin: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // ============= 二维码选项相关 =============\r\n\r\n  /**\r\n   * 错误纠正级别 级别越高，二维码容错能力越强，但数据容量越小\r\n   * 可选值: 'L' (低, 7%), 'M' (中, 15%), 'Q' (高, 25%), 'H' (最高, 30%)\r\n   */\r\n  errorLevel: {\r\n    type: String as () => ErrorCorrectionLevel,\r\n    default: 'M',\r\n  },\r\n} as const)\r\n\r\n// props\r\nexport type QrcodeProps = ExtractPropTypes<typeof qrcodeProps>\r\n\r\n// instance\r\nexport type QrcodeInstance = InstanceType<typeof Qrcode>\r\n"],"names":[],"mappings":"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"}