40 lines
890 B
Plaintext
40 lines
890 B
Plaintext
import type { QRCodeSegment, QRCodeRenderersOptions } from 'qrcode';
|
|
import { Fn } from '/#/index';
|
|
|
|
export type ContentType = string | QRCodeSegment[];
|
|
|
|
export type { QRCodeRenderersOptions };
|
|
|
|
export type LogoType = {
|
|
src: string;
|
|
logoSize: number;
|
|
borderColor: string;
|
|
bgColor: string;
|
|
borderSize: number;
|
|
crossOrigin: string;
|
|
borderRadius: number;
|
|
logoRadius: number;
|
|
};
|
|
|
|
export interface RenderQrCodeParams {
|
|
canvas: any;
|
|
content: ContentType;
|
|
width?: number;
|
|
options?: QRCodeRenderersOptions;
|
|
logo?: LogoType | string;
|
|
image?: HTMLImageElement;
|
|
downloadName?: string;
|
|
download?: boolean | Fn;
|
|
}
|
|
|
|
export type ToCanvasFn = (options: RenderQrCodeParams) => Promise<unknown>;
|
|
|
|
export interface QrCodeActionType {
|
|
download: (fileName?: string) => void;
|
|
}
|
|
|
|
export interface QrcodeDoneEventParams {
|
|
url: string;
|
|
ctx?: CanvasRenderingContext2D | null;
|
|
}
|