red-agate-barcode
Version:
red-agate barcode tag library.
50 lines (36 loc) • 1.44 kB
text/typescript
// Copyright (c) 2017, Shellyl_N and Authors
// license: ISC
// https://github.com/shellyln
import { BitStreamWriter } from 'red-agate-util/modules/io/BitStream';
export interface QrCodewords {
L: number[];
M: number[];
Q: number[];
H: number[];
}
export interface QrDataLength {
L: number[][];
M: number[][];
Q: number[][];
H: number[][];
}
export type QrSourceDataTypes = (BitStreamWriter | Uint8Array | string | number);
export enum QrDataChunkType {
Control,
Number,
Alnum,
Binary
}
export const ecLevelMap = new Map<string, number>([
["L", 1], ["M", 0], ["Q", 3], ["H", 2]
]);
export const numberModeCharMap = new Map<string, number>([
["0", 0], ["1", 1], ["2", 2], ["3", 3], ["4", 4], ["5", 5], ["6", 6], ["7", 7], ["8", 8], ["9", 9]
]);
export const alnumModeCharMap = new Map<string, number>([
["0", 0], ["1", 1], ["2", 2], ["3", 3], ["4", 4], ["5", 5], ["6", 6], ["7", 7], ["8", 8], ["9", 9],
["A", 10], ["B", 11], ["C", 12], ["D", 13], ["E", 14], ["F", 15], ["G", 16], ["H", 17], ["I", 18], ["J", 19],
["K", 20], ["L", 21], ["M", 22], ["N", 23], ["O", 24], ["P", 25], ["Q", 26], ["R", 27], ["S", 28], ["T", 29],
["U", 30], ["V", 31], ["W", 32], ["X", 33], ["Y", 34], ["Z", 35], [" ", 36], ["$", 37], ["%", 38], ["*", 39],
["+", 40], ["-", 41], [".", 42], ["/", 43], [",", 44]
]);