red-agate-barcode
Version:
red-agate barcode tag library.
71 lines (70 loc) • 2.77 kB
TypeScript
import { SvgCanvas } from 'red-agate-svg-canvas/modules/drawing/canvas/SvgCanvas';
import { ShapeProps, Shape, ImagingShapeBasePropsMixin } from 'red-agate/modules/red-agate/tags/Shape';
import { BitStreamWriter } from 'red-agate-util/modules/io/BitStream';
import { Bitmap } from 'red-agate-util/modules/imaging/Bitmap';
import { QrSourceDataTypes, QrDataChunkType } from "./Qr.defs";
export interface QrProps extends ShapeProps, ImagingShapeBasePropsMixin {
data?: Array<Uint8Array | string | number> | Uint8Array | string;
version?: number | "auto";
ecLevel?: "L" | "M" | "Q" | "H";
encoding?: "number" | "alnum" | "8bit" | "auto";
cellSize?: number;
unit?: string;
asDataUrl?: boolean;
asImgTag?: boolean;
}
export interface QrPropsNoUndefined extends ShapeProps, ImagingShapeBasePropsMixin {
data?: Array<Uint8Array | string | number> | Uint8Array | string;
version: number | "auto";
ecLevel: "L" | "M" | "Q" | "H";
encoding: "number" | "alnum" | "8bit" | "auto";
cellSize: number;
unit?: string;
asDataUrl?: boolean;
asImgTag?: boolean;
}
export declare const qrPropsDefault: QrPropsNoUndefined;
export declare class Qr extends Shape<QrProps> {
constructor(props: QrProps);
toImgTag(): string;
toElementStyle(): string;
toDataUrl(): string;
toSvg(): string;
toRendered(): string;
render(contexts: Map<string, any>, children: string): string;
protected evaluteMask(bitmap: Bitmap): number;
protected encodeNumberData(data: string): {
data: BitStreamWriter;
charLength: number;
} | null;
protected encodeAlnumData(data: string): {
data: BitStreamWriter;
charLength: number;
} | null;
protected encode8bitData(data: string): {
data: BitStreamWriter;
charLength: number;
};
protected encodeChunks(data: QrSourceDataTypes[] | QrSourceDataTypes): Array<{
type: QrDataChunkType;
data: BitStreamWriter;
charLength: number;
}>;
protected determineSymbolVersion(chunks: Array<{
type: QrDataChunkType;
data: BitStreamWriter;
}>): {
version: number;
segments: number[][];
dataLength: number;
maxDataLength: number;
};
protected encodeData(data: QrSourceDataTypes[] | QrSourceDataTypes): {
version: number;
data: Uint8Array;
ecLevel: "L" | "M" | "Q" | "H";
};
protected applyMask(bitmap: Bitmap, funcPatternsMap: Bitmap, fn: (x: number, y: number) => boolean): void;
protected buildBitmap(data: Uint8Array, version: number): Bitmap;
protected drawBitmap(canvas: SvgCanvas, bitmap: Bitmap): void;
}