red-agate-barcode
Version:
red-agate barcode tag library.
437 lines (380 loc) • 11 kB
text/typescript
// Copyright (c) 2017, Shellyl_N and Authors
// license: ISC
// https://github.com/shellyln
import { QrCodewords } from '../Qr.defs';
// tslint:disable:whitespace
export const matrixSize = [
0,
21, 25, 29, 33, 37, 41, 45, 49, 53, 57,
61, 65, 69, 73, 77, 81, 85, 89, 93, 97,
101, 105, 109, 113, 117, 121, 125, 129, 133, 137,
141, 145, 149, 153, 157, 161, 165, 169, 173, 177
];
export const dataCodewords: QrCodewords = {
L: [
0,
19, 34, 55, 80, 108, 136, 156, 194, 232, 274,
324, 370, 428, 461, 523, 589, 647, 721, 795, 861,
932, 1006, 1094, 1174, 1276, 1370, 1468, 1531, 1631, 1735,
1843, 1955, 2071, 2191, 2306, 2434, 2566, 2702, 2812, 2956
],
M: [
0,
16, 28, 44, 64, 86, 108, 124, 154, 182, 216,
254, 290, 334, 365, 415, 453, 507, 563, 627, 669,
714, 782, 860, 914, 1000, 1062, 1128, 1193, 1267, 1373,
1455, 1541, 1631, 1725, 1812, 1914, 1992, 2102, 2216, 2334
],
Q: [
0,
13, 22, 34, 48, 62, 76, 88, 110, 132, 154,
180, 206, 244, 261, 295, 325, 367, 397, 445, 485,
512, 568, 614, 664, 718, 754, 808, 871, 911, 985,
1033, 1115, 1171, 1231, 1286, 1354, 1426, 1502, 1582, 1666
],
H: [
0,
9, 16, 26, 36, 46, 60, 66, 86, 100, 122,
140, 158, 180, 197, 223, 253, 283, 313, 341, 385,
406, 442, 464, 514, 538, 596, 628, 661, 701, 745,
793, 845, 901, 961, 986, 1054, 1096, 1142, 1222, 1276
]
};
export const segments = [
// [[repeat, totalCodewords, dataCodewords, correctableCodewords], ...]
{ L: [[ 0, 0, 0, 0]],
M: [[ 0, 0, 0, 0]],
Q: [[ 0, 0, 0, 0]],
H: [[ 0, 0, 0, 0]] }, // 0
{ L: [[ 1, 26, 19, 2]],
M: [[ 1, 26, 16, 4]],
Q: [[ 1, 26, 13, 6]],
H: [[ 1, 26, 9, 8]] }, // 1
{ L: [[ 1, 44, 34, 4]],
M: [[ 1, 44, 28, 8]],
Q: [[ 1, 44, 22, 11]],
H: [[ 1, 44, 16, 14]] }, // 2
{ L: [[ 1, 70, 55, 7]],
M: [[ 1, 70, 44, 13]],
Q: [[ 2, 35, 17, 9]],
H: [[ 2, 35, 13, 11]] }, // 3
{ L: [[ 1,100, 80, 10]],
M: [[ 2, 50, 32, 9]],
Q: [[ 2, 50, 24, 13]],
H: [[ 4, 25, 9, 8]] }, // 4
{ L: [[ 1,134,108, 13]],
M: [[ 2, 67, 43, 12]],
Q: [[ 2, 33, 15, 9],
[ 2, 34, 16, 9]],
H: [[ 2, 33, 11, 11],
[ 2, 34, 12, 11]] }, // 5
{ L: [[ 2, 86, 68, 9]],
M: [[ 4, 43, 27, 8]],
Q: [[ 4, 43, 19, 12]],
H: [[ 4, 43, 15, 14]] }, // 6
{ L: [[ 2, 98, 78, 10]],
M: [[ 4, 49, 31, 9]],
Q: [[ 2, 32, 14, 9],
[ 4, 33, 15, 9]],
H: [[ 4, 39, 13, 13],
[ 1, 40, 14, 13]] }, // 7
{ L: [[ 2,121, 97, 12]],
M: [[ 2, 60, 38, 11],
[ 2, 61, 39, 11]],
Q: [[ 4, 40, 18, 11],
[ 2, 41, 19, 11]],
H: [[ 4, 40, 14, 13],
[ 2, 41, 15, 13]] }, // 8
{ L: [[ 2,146,116, 15]],
M: [[ 3, 58, 36, 11],
[ 2, 59, 37, 11]],
Q: [[ 4, 36, 16, 10],
[ 4, 37, 17, 10]],
H: [[ 4, 36, 12, 12],
[ 4, 37, 13, 12]] }, // 9
{ L: [[ 2, 86, 68, 9],
[ 2, 87, 69, 9]],
M: [[ 4, 69, 43, 13],
[ 1, 70, 44, 13]],
Q: [[ 6, 43, 19, 12],
[ 2, 44, 20, 12]],
H: [[ 6, 43, 15, 14],
[ 2, 44, 16, 14]] }, // 10
{ L: [[ 4,101, 81, 10]],
M: [[ 1, 80, 50, 15],
[ 4, 81, 51, 15]],
Q: [[ 4, 50, 22, 14],
[ 4, 51, 23, 14]],
H: [[ 3, 36, 12, 12],
[ 8, 37, 13, 12]] }, // 11
{ L: [[ 2,116, 92, 12],
[ 2,117, 93, 12]],
M: [[ 6, 58, 36, 11],
[ 2, 59, 37, 11]],
Q: [[ 4, 46, 20, 13],
[ 6, 47, 21, 13]],
H: [[ 7, 42, 14, 14],
[ 4, 43, 15, 14]] }, // 12
{ L:[[ 4,133,107, 13]],
M:[[ 8, 59, 37, 11],
[ 1, 60, 38, 11]],
Q:[[ 8, 44, 20, 13],
[ 4, 45, 21, 13]],
H:[[ 12, 33, 11, 14],
[ 4, 34, 12, 14]] }, // 13
{ L:[[ 3,145,115, 15],
[ 1,146,116, 15]],
M:[[ 4, 64, 40, 12],
[ 5, 65, 41, 12]],
Q:[[ 11, 36, 16, 10],
[ 5, 37, 17, 10]],
H:[[ 11, 36, 12, 12],
[ 5, 37, 13, 12]] }, // 14
{ L:[[ 5,109, 87, 11],
[ 1,110, 88, 11]],
M:[[ 5, 65, 41, 12],
[ 5, 66, 42, 12]],
Q:[[ 5, 54, 24, 15],
[ 7, 55, 25, 15]],
H:[[ 11, 36, 12, 12],
[ 7, 37, 13, 12]] }, // 15
{ L:[[ 5,122, 98, 12],
[ 1,123, 99, 12]],
M:[[ 7, 73, 45, 14],
[ 3, 74, 46, 14]],
Q:[[ 15, 43, 19, 12],
[ 2, 44, 20, 12]],
H:[[ 3, 45, 15, 15],
[ 13, 46, 16, 15]] }, // 16
{ L:[[ 1,135,107, 14],
[ 5,136,108, 14]],
M:[[ 10, 74, 46, 14],
[ 1, 75, 47, 14]],
Q:[[ 1, 50, 22, 14],
[ 15, 51, 23, 14]],
H:[[ 2, 42, 14, 14],
[ 17, 43, 15, 14]] }, // 17
{ L:[[ 5,150,120, 15],
[ 1,151,121, 15]],
M:[[ 9, 69, 43, 13],
[ 4, 70, 44, 13]],
Q:[[ 17, 50, 22, 14],
[ 1, 51, 23, 14]],
H:[[ 2, 42, 14, 14],
[ 19, 43, 15, 14]] }, // 18
{ L:[[ 3,141,113, 14],
[ 4,142,114, 14]],
M:[[ 3, 70, 44, 13],
[ 11, 71, 45, 13]],
Q:[[ 17, 47, 21, 13],
[ 4, 48, 22, 13]],
H:[[ 9, 39, 13, 13],
[ 16, 40, 14, 13]] }, // 19
{ L:[[ 3,135,107, 14],
[ 5,136,108, 14]],
M:[[ 3, 67, 41, 13],
[ 13, 68, 42, 13]],
Q:[[ 15, 54, 24, 15],
[ 5, 55, 25, 15]],
H:[[ 15, 43, 15, 14],
[ 10, 44, 16, 14]] }, // 20
{ L:[[ 4,144,116, 14],
[ 4,145,117, 14]],
M:[[ 17, 68, 42, 13]],
Q:[[ 17, 50, 22, 14],
[ 6, 51, 23, 14]],
H:[[ 19, 46, 16, 15],
[ 6, 47, 17, 15]] }, // 21
{ L:[[ 2,139,111, 14],
[ 7,140,112, 14]],
M:[[ 17, 74, 46, 14]],
Q:[[ 7, 54, 24, 15],
[ 16, 55, 25, 15]],
H:[[ 34, 37, 13, 12]] }, // 22
{ L:[[ 4,151,121, 15],
[ 5,152,122, 15]],
M:[[ 4, 75, 47, 14],
[ 14, 76, 48, 14]],
Q:[[ 11, 54, 24, 15],
[ 14, 55, 25, 15]],
H:[[ 16, 45, 15, 15],
[ 14, 46, 16, 15]] }, // 23
{ L:[[ 6,147,117, 15],
[ 4,148,118, 15]],
M:[[ 6, 73, 45, 14],
[ 14, 74, 46, 14]],
Q:[[ 11, 54, 24, 15],
[ 16, 55, 25, 15]],
H:[[ 30, 46, 16, 15],
[ 2, 47, 17, 15]] }, // 24
{ L:[[ 8,132,106, 13],
[ 4,133,107, 13]],
M:[[ 8, 75, 47, 14],
[ 13, 76, 48, 14]],
Q:[[ 7, 54, 24, 15],
[ 22, 55, 25, 15]],
H:[[ 22, 45, 15, 15],
[ 13, 46, 16, 15]] }, // 25
{ L:[[ 10,142,114, 14],
[ 2,143,115, 14]],
M:[[ 19, 74, 46, 14],
[ 4, 75, 47, 14]],
Q:[[ 28, 50, 22, 14],
[ 6, 51, 23, 14]],
H:[[ 33, 46, 16, 15],
[ 4, 47, 17, 15]] }, // 26
{ L:[[ 8,152,122, 15],
[ 4,153,123, 15]],
M:[[ 22, 73, 45, 14],
[ 3, 74, 46, 14]],
Q:[[ 8, 53, 23, 15],
[ 26, 54, 24, 15]],
H:[[ 12, 45, 15, 15],
[ 28, 46, 16, 15]] }, // 27
{ L:[[ 3,147,117, 15],
[ 10,148,118, 15]],
M:[[ 3, 73, 45, 14],
[ 23, 74, 46, 14]],
Q:[[ 4, 54, 24, 15],
[ 31, 55, 25, 15]],
H:[[ 11, 45, 15, 15],
[ 31, 46, 16, 15]] }, // 28
{ L:[[ 7,146,116, 15],
[ 7,147,117, 15]],
M:[[ 21, 73, 45, 14],
[ 7, 74, 46, 14]],
Q:[[ 1, 53, 23, 15],
[ 37, 54, 24, 15]],
H:[[ 19, 45, 15, 15],
[ 26, 46, 16, 15]] }, // 29
{ L:[[ 5,145,115, 15],
[ 10,146,116, 15]],
M:[[ 19, 75, 47, 14],
[ 10, 76, 48, 14]],
Q:[[ 15, 54, 24, 15],
[ 25, 55, 25, 15]],
H:[[ 23, 45, 15, 15],
[ 25, 46, 16, 15]] }, // 30
{ L:[[ 13,145,115, 15],
[ 3,146,116, 15]],
M:[[ 2, 74, 46, 14],
[ 29, 75, 47, 14]],
Q:[[ 42, 54, 24, 15],
[ 1, 55, 25, 15]],
H:[[ 23, 45, 15, 15],
[ 28, 46, 16, 15]] }, // 31
{ L:[[ 17,145,115, 15]],
M:[[ 10, 74, 46, 14],
[ 23, 75, 47, 14]],
Q:[[ 10, 54, 24, 15],
[ 35, 55, 25, 15]],
H:[[ 19, 45, 15, 15],
[ 35, 46, 16, 15]] }, // 32
{ L:[[ 17,145,115, 15],
[ 1,146,116, 15]],
M:[[ 14, 74, 46, 14],
[ 21, 75, 47, 14]],
Q:[[ 29, 54, 24, 15],
[ 19, 55, 25, 15]],
H:[[ 11, 44, 15, 15],
[ 46, 45, 16, 15]] }, // 33
{ L:[[ 13,145,115, 15],
[ 6,146,116, 15]],
M:[[ 14, 74, 46, 14],
[ 23, 75, 47, 14]],
Q:[[ 44, 54, 24, 15],
[ 7, 55, 25, 15]],
H:[[ 59, 46, 16, 15],
[ 1, 47, 17, 15]] }, // 34
{ L:[[ 12,151,121, 15],
[ 7,152,122, 15]],
M:[[ 12, 75, 47, 14],
[ 26, 76, 48, 14]],
Q:[[ 39, 54, 24, 15],
[ 14, 55, 25, 15]],
H:[[ 22, 45, 15, 15],
[ 41, 46, 16, 15]] }, // 35
{ L:[[ 6,151,121, 15],
[ 14,152,122, 15]],
M:[[ 6, 75, 47, 14],
[ 34, 76, 48, 14]],
Q:[[ 46, 54, 24, 15],
[ 10, 55, 25, 15]],
H:[[ 2, 45, 15, 15],
[ 64, 46, 16, 15]] }, // 36
{ L:[[ 17,152,122, 15],
[ 4,153,123, 15]],
M:[[ 29, 74, 46, 14],
[ 14, 75, 47, 14]],
Q:[[ 49, 54, 24, 15],
[ 10, 55, 25, 15]],
H:[[ 24, 45, 15, 15],
[ 46, 46, 16, 15]] }, // 37
{ L:[[ 4,152,122, 15],
[ 18,153,123, 15]],
M:[[ 13, 74, 46, 14],
[ 32, 75, 47, 14]],
Q:[[ 48, 54, 24, 15],
[ 14, 55, 25, 15]],
H:[[ 42, 45, 15, 15],
[ 32, 46, 16, 15]] }, // 38
{ L:[[ 20,147,117, 15],
[ 4,148,118, 15]],
M:[[ 40, 75, 47, 14],
[ 7, 76, 48, 14]],
Q:[[ 43, 54, 24, 15],
[ 22, 55, 25, 15]],
H:[[ 10, 45, 15, 15],
[ 67, 46, 16, 15]] }, // 39
{ L:[[ 19,148,118, 15],
[ 6,149,119, 15]],
M:[[ 18, 75, 47, 14],
[ 31, 76, 48, 14]],
Q:[[ 34, 54, 24, 15],
[ 34, 55, 25, 15]],
H:[[ 20, 45, 15, 15],
[ 61, 46, 16, 15]] } // 40
];
export const alignmentPatterns = [
[], // 0
[], // 1
[6,18], // 2 (12)
[6,22], // 3 (16)
[6,26], // 4 (20)
[6,30], // 5 (24)
[6,34], // 6 (28)
[6,22,38], // 7 (16)
[6,24,42], // 8 (18)
[6,26,46], // 9 (20)
[6,28,50], // 10 (22)
[6,30,54], // 11 (24)
[6,32,58], // 12 (26)
[6,34,62], // 13 (28)
[6,26,46,66], // 14 (20)
[6,26,48,70], // 15 (20,22)
[6,26,50,74], // 16 (20,24)
[6,30,54,78], // 17 (24)
[6,30,56,82], // 18 (24,26)
[6,30,58,86], // 19 (24,28)
[6,34,62,90], // 20 (28)
[6,28,50,72, 94], // 21 (22)
[6,26,50,74, 98], // 22 (20,24)
[6,30,54,78,102], // 23 (24)
[6,28,54,80,106], // 24 (22,26)
[6,32,58,84,110], // 25 (26)
[6,30,58,86,114], // 26 (24,28)
[6,34,62,90,118], // 27 (28)
[6,26,50,74, 98,122], // 28 (20,24)
[6,30,54,78,102,126], // 29 (24)
[6,26,52,78,104,130], // 30 (20,26)
[6,30,56,82,108,134], // 31 (24,26)
[6,34,60,86,112,138], // 32 (28,26)
[6,30,58,86,114,142], // 33 (24,28)
[6,34,62,90,118,146], // 34 (28)
[6,30,54,78,102,126,150], // 35 (24)
[6,24,50,76,102,128,154], // 36 (18,26)
[6,28,54,80,106,132,158], // 37 (22,26)
[6,32,58,84,110,136,162], // 38 (26)
[6,26,54,82,110,138,166], // 39 (20,28)
[6,30,58,86,114,142,170] // 40 (24,28)
];