panelui-native 0.56.0 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -10
- package/lib/module/components/funnel-chart/index.js +828 -0
- package/lib/module/components/funnel-chart/index.js.map +1 -0
- package/lib/module/components/progress/index.js +67 -13
- package/lib/module/components/progress/index.js.map +1 -1
- package/lib/module/components/qr-code/index.js +641 -0
- package/lib/module/components/qr-code/index.js.map +1 -0
- package/lib/module/components/qr-code/qr-encode.js +475 -0
- package/lib/module/components/qr-code/qr-encode.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/chart.js +36 -0
- package/lib/module/utils/chart.js.map +1 -1
- package/lib/typescript/src/components/funnel-chart/index.d.ts +289 -0
- package/lib/typescript/src/components/funnel-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/components/progress/index.d.ts +9 -1
- package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
- package/lib/typescript/src/components/qr-code/index.d.ts +221 -0
- package/lib/typescript/src/components/qr-code/index.d.ts.map +1 -0
- package/lib/typescript/src/components/qr-code/qr-encode.d.ts +39 -0
- package/lib/typescript/src/components/qr-code/qr-encode.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/chart.d.ts +19 -0
- package/lib/typescript/src/utils/chart.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/funnel-chart/index.tsx +1121 -0
- package/src/components/progress/index.tsx +64 -11
- package/src/components/qr-code/index.tsx +663 -0
- package/src/components/qr-code/qr-encode.ts +548 -0
- package/src/index.ts +35 -0
- package/src/utils/chart.ts +52 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A QR encoder, in TypeScript, with no dependencies.
|
|
5
|
+
*
|
|
6
|
+
* Vendored rather than installed for the reason the rest of this library has
|
|
7
|
+
* no runtime dependencies: a component that needs an npm package to draw
|
|
8
|
+
* itself is one the CLI has to install on someone's behalf, and every project
|
|
9
|
+
* that copies the source in inherits it. This is a few hundred lines of
|
|
10
|
+
* arithmetic that has not changed since 2000 — it is cheaper to own.
|
|
11
|
+
*
|
|
12
|
+
* Byte mode only. The alphanumeric and numeric modes pack more into the same
|
|
13
|
+
* version, but they only accept their own alphabets, and the thing people
|
|
14
|
+
* encode is a URL. Byte mode takes anything.
|
|
15
|
+
*
|
|
16
|
+
* The output is a square matrix of booleans, dark first. Everything about how
|
|
17
|
+
* it is drawn — module size, colour, quiet zone, the hole in the middle for a
|
|
18
|
+
* logo — belongs to the component, not here.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/** How much of the code can be lost and still read. */
|
|
22
|
+
|
|
23
|
+
/** Format bits per level. Not the same order as the letters. */
|
|
24
|
+
const FORMAT_BITS = {
|
|
25
|
+
L: 1,
|
|
26
|
+
M: 0,
|
|
27
|
+
Q: 3,
|
|
28
|
+
H: 2
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/** Error-correction codewords per block, indexed [level][version]. */
|
|
32
|
+
const ECC_CODEWORDS_PER_BLOCK = {
|
|
33
|
+
// Version 0 does not exist; the -1 keeps the index honest.
|
|
34
|
+
L: Int16Array.from([-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]),
|
|
35
|
+
M: Int16Array.from([-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28]),
|
|
36
|
+
Q: Int16Array.from([-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]),
|
|
37
|
+
H: Int16Array.from([-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30])
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/** How many blocks the data is split into, indexed [level][version]. */
|
|
41
|
+
const NUM_ERROR_CORRECTION_BLOCKS = {
|
|
42
|
+
L: Int16Array.from([-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25]),
|
|
43
|
+
M: Int16Array.from([-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49]),
|
|
44
|
+
Q: Int16Array.from([-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68]),
|
|
45
|
+
H: Int16Array.from([-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81])
|
|
46
|
+
};
|
|
47
|
+
const MIN_VERSION = 1;
|
|
48
|
+
const MAX_VERSION = 40;
|
|
49
|
+
|
|
50
|
+
/** Total data-and-error modules in a version, before the format areas. */
|
|
51
|
+
function rawDataModules(version) {
|
|
52
|
+
let modules = (16 * version + 128) * version + 64;
|
|
53
|
+
if (version >= 2) {
|
|
54
|
+
const alignmentCount = Math.floor(version / 7) + 2;
|
|
55
|
+
modules -= (25 * alignmentCount - 10) * alignmentCount - 55;
|
|
56
|
+
if (version >= 7) modules -= 36;
|
|
57
|
+
}
|
|
58
|
+
return modules;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Codewords available for data, once error correction has taken its share. */
|
|
62
|
+
function dataCodewords(version, level) {
|
|
63
|
+
return Math.floor(rawDataModules(version) / 8) - ECC_CODEWORDS_PER_BLOCK[level][version] * NUM_ERROR_CORRECTION_BLOCKS[level][version];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** Where the alignment patterns go, as coordinates on both axes. */
|
|
67
|
+
function alignmentPositions(version) {
|
|
68
|
+
if (version === 1) return [];
|
|
69
|
+
const count = Math.floor(version / 7) + 2;
|
|
70
|
+
const size = version * 4 + 17;
|
|
71
|
+
// Version 32 is the one exception to the formula, and it is in the spec as
|
|
72
|
+
// an exception rather than as anything derivable.
|
|
73
|
+
const step = version === 32 ? 26 : Math.ceil((version * 4 + 4) / (count * 2 - 2)) * 2;
|
|
74
|
+
|
|
75
|
+
/*
|
|
76
|
+
* Ascending, and that is load-bearing: the caller skips the three
|
|
77
|
+
* coordinate pairs that would land on a finder by index — first and last —
|
|
78
|
+
* so a list in the other order draws an alignment pattern over the top-left
|
|
79
|
+
* finder and leaves the bottom-right one off.
|
|
80
|
+
*
|
|
81
|
+
* They are walked backwards from the far edge because the spacing is even
|
|
82
|
+
* from that end and the first one is pinned at 6, so the uneven gap falls
|
|
83
|
+
* between the first two.
|
|
84
|
+
*/
|
|
85
|
+
const positions = [];
|
|
86
|
+
for (let pos = size - 7; positions.length < count - 1; pos -= step) positions.unshift(pos);
|
|
87
|
+
positions.unshift(6);
|
|
88
|
+
return positions;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ------------------------------------------------------------------ *
|
|
92
|
+
* GF(256) arithmetic, for Reed–Solomon.
|
|
93
|
+
* ------------------------------------------------------------------ */
|
|
94
|
+
|
|
95
|
+
/** Multiply in GF(256) with the QR primitive polynomial, x^8 + x^4 + x^3 + x^2 + 1. */
|
|
96
|
+
function multiply(a, b) {
|
|
97
|
+
let result = 0;
|
|
98
|
+
for (let i = 7; i >= 0; i--) {
|
|
99
|
+
result = result << 1 ^ (result >>> 7) * 0x11d;
|
|
100
|
+
result ^= (b >>> i & 1) * a;
|
|
101
|
+
}
|
|
102
|
+
return result & 0xff;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** The divisor polynomial for `degree` error-correction codewords. */
|
|
106
|
+
function generatorPolynomial(degree) {
|
|
107
|
+
const result = new Uint8Array(degree);
|
|
108
|
+
result[degree - 1] = 1;
|
|
109
|
+
|
|
110
|
+
// Multiply out (x - r^0)(x - r^1)…(x - r^(degree-1)), keeping the monic
|
|
111
|
+
// leading coefficient implicit.
|
|
112
|
+
let root = 1;
|
|
113
|
+
for (let i = 0; i < degree; i++) {
|
|
114
|
+
for (let j = 0; j < degree; j++) {
|
|
115
|
+
result[j] = multiply(result[j], root);
|
|
116
|
+
if (j + 1 < degree) result[j] ^= result[j + 1];
|
|
117
|
+
}
|
|
118
|
+
root = multiply(root, 0x02);
|
|
119
|
+
}
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** The remainder of `data` divided by the generator — the check codewords. */
|
|
124
|
+
function remainder(data, divisor) {
|
|
125
|
+
const result = new Uint8Array(divisor.length);
|
|
126
|
+
for (const byte of data) {
|
|
127
|
+
const factor = byte ^ result[0];
|
|
128
|
+
// Shift left by one and drop the leading term, which the factor consumed.
|
|
129
|
+
result.copyWithin(0, 1);
|
|
130
|
+
result[result.length - 1] = 0;
|
|
131
|
+
for (let i = 0; i < divisor.length; i++) result[i] ^= multiply(divisor[i], factor);
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* ------------------------------------------------------------------ *
|
|
137
|
+
* The bit stream.
|
|
138
|
+
* ------------------------------------------------------------------ */
|
|
139
|
+
|
|
140
|
+
class BitBuffer {
|
|
141
|
+
bits = [];
|
|
142
|
+
append(value, length) {
|
|
143
|
+
for (let i = length - 1; i >= 0; i--) this.bits.push(value >>> i & 1);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/** UTF-8 bytes. QR's byte mode is nominally Latin-1; every reader takes UTF-8. */
|
|
148
|
+
function toUtf8(text) {
|
|
149
|
+
const bytes = [];
|
|
150
|
+
for (const character of text) {
|
|
151
|
+
const point = character.codePointAt(0);
|
|
152
|
+
if (point < 0x80) {
|
|
153
|
+
bytes.push(point);
|
|
154
|
+
} else if (point < 0x800) {
|
|
155
|
+
bytes.push(0xc0 | point >> 6, 0x80 | point & 0x3f);
|
|
156
|
+
} else if (point < 0x10000) {
|
|
157
|
+
bytes.push(0xe0 | point >> 12, 0x80 | point >> 6 & 0x3f, 0x80 | point & 0x3f);
|
|
158
|
+
} else {
|
|
159
|
+
bytes.push(0xf0 | point >> 18, 0x80 | point >> 12 & 0x3f, 0x80 | point >> 6 & 0x3f, 0x80 | point & 0x3f);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return bytes;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** The character-count field is wider once there is more to count. */
|
|
166
|
+
function characterCountBits(version) {
|
|
167
|
+
return version < 10 ? 8 : 16;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** The smallest version this data fits in at this level. */
|
|
171
|
+
function smallestVersion(byteLength, level) {
|
|
172
|
+
for (let version = MIN_VERSION; version <= MAX_VERSION; version++) {
|
|
173
|
+
const capacity = dataCodewords(version, level) * 8;
|
|
174
|
+
// 4 bits of mode indicator, then the character count, then the data.
|
|
175
|
+
const needed = 4 + characterCountBits(version) + byteLength * 8;
|
|
176
|
+
if (needed <= capacity) return version;
|
|
177
|
+
}
|
|
178
|
+
throw new Error(`Too much data for a QR code: ${byteLength} bytes will not fit at error correction level ${level}.`);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** Data codewords, padded and interleaved with their error correction. */
|
|
182
|
+
function codewords(bytes, version, level) {
|
|
183
|
+
const capacity = dataCodewords(version, level) * 8;
|
|
184
|
+
const buffer = new BitBuffer();
|
|
185
|
+
buffer.append(0b0100, 4); // byte mode
|
|
186
|
+
buffer.append(bytes.length, characterCountBits(version));
|
|
187
|
+
for (const byte of bytes) buffer.append(byte, 8);
|
|
188
|
+
|
|
189
|
+
// Terminator, then up to a byte boundary.
|
|
190
|
+
buffer.append(0, Math.min(4, capacity - buffer.bits.length));
|
|
191
|
+
buffer.append(0, (8 - buffer.bits.length % 8) % 8);
|
|
192
|
+
|
|
193
|
+
// Then the two alternating pad codewords, until full.
|
|
194
|
+
for (let pad = 0xec; buffer.bits.length < capacity; pad ^= 0xec ^ 0x11) {
|
|
195
|
+
buffer.append(pad, 8);
|
|
196
|
+
}
|
|
197
|
+
const data = new Uint8Array(buffer.bits.length / 8);
|
|
198
|
+
for (let i = 0; i < data.length; i++) {
|
|
199
|
+
let byte = 0;
|
|
200
|
+
for (let bit = 0; bit < 8; bit++) byte = byte << 1 | buffer.bits[i * 8 + bit];
|
|
201
|
+
data[i] = byte;
|
|
202
|
+
}
|
|
203
|
+
const blockCount = NUM_ERROR_CORRECTION_BLOCKS[level][version];
|
|
204
|
+
const eccPerBlock = ECC_CODEWORDS_PER_BLOCK[level][version];
|
|
205
|
+
const totalCodewords = Math.floor(rawDataModules(version) / 8);
|
|
206
|
+
const shortBlockLength = Math.floor(totalCodewords / blockCount);
|
|
207
|
+
// The last few blocks are one codeword longer, which is what makes the
|
|
208
|
+
// interleave below uneven.
|
|
209
|
+
const shortBlockCount = blockCount - totalCodewords % blockCount;
|
|
210
|
+
const divisor = generatorPolynomial(eccPerBlock);
|
|
211
|
+
const blocks = [];
|
|
212
|
+
const eccBlocks = [];
|
|
213
|
+
for (let i = 0, offset = 0; i < blockCount; i++) {
|
|
214
|
+
const length = shortBlockLength - eccPerBlock + (i < shortBlockCount ? 0 : 1);
|
|
215
|
+
const block = data.slice(offset, offset + length);
|
|
216
|
+
offset += length;
|
|
217
|
+
blocks.push(block);
|
|
218
|
+
eccBlocks.push(remainder(block, divisor));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Interleave: one codeword from each block in turn, then the same for the
|
|
222
|
+
// error correction. A burst of damage then falls across every block a little
|
|
223
|
+
// rather than destroying one entirely.
|
|
224
|
+
const result = [];
|
|
225
|
+
|
|
226
|
+
// The last block is the longest, so its length is the number of rounds.
|
|
227
|
+
for (let i = 0; i < blocks[blocks.length - 1].length; i++) {
|
|
228
|
+
for (const block of blocks) if (i < block.length) result.push(block[i]);
|
|
229
|
+
}
|
|
230
|
+
for (let i = 0; i < eccPerBlock; i++) {
|
|
231
|
+
for (const block of eccBlocks) result.push(block[i]);
|
|
232
|
+
}
|
|
233
|
+
return Uint8Array.from(result);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/* ------------------------------------------------------------------ *
|
|
237
|
+
* The matrix.
|
|
238
|
+
* ------------------------------------------------------------------ */
|
|
239
|
+
|
|
240
|
+
/** The eight mask patterns, by their index in the spec. */
|
|
241
|
+
const MASKS = [(x, y) => (x + y) % 2 === 0, (_x, y) => y % 2 === 0, x => x % 3 === 0, (x, y) => (x + y) % 3 === 0, (x, y) => (Math.floor(y / 2) + Math.floor(x / 3)) % 2 === 0, (x, y) => x * y % 2 + x * y % 3 === 0, (x, y) => (x * y % 2 + x * y % 3) % 2 === 0, (x, y) => ((x + y) % 2 + x * y % 3) % 2 === 0];
|
|
242
|
+
/**
|
|
243
|
+
* Encode `text` as a QR matrix.
|
|
244
|
+
*
|
|
245
|
+
* `version` is chosen to be the smallest that fits unless one is given. A
|
|
246
|
+
* fixed version is worth asking for when the content changes and the code
|
|
247
|
+
* should not visibly change size with it.
|
|
248
|
+
*/
|
|
249
|
+
export function encodeQr(text, {
|
|
250
|
+
errorCorrection = 'M',
|
|
251
|
+
version: requestedVersion
|
|
252
|
+
} = {}) {
|
|
253
|
+
const bytes = toUtf8(text);
|
|
254
|
+
const version = requestedVersion ?? smallestVersion(bytes.length, errorCorrection);
|
|
255
|
+
if (version < MIN_VERSION || version > MAX_VERSION) {
|
|
256
|
+
throw new Error(`QR version must be between ${MIN_VERSION} and ${MAX_VERSION}.`);
|
|
257
|
+
}
|
|
258
|
+
if (4 + characterCountBits(version) + bytes.length * 8 > dataCodewords(version, errorCorrection) * 8) {
|
|
259
|
+
throw new Error(`That data does not fit in QR version ${version} at level ${errorCorrection}.`);
|
|
260
|
+
}
|
|
261
|
+
const size = version * 4 + 17;
|
|
262
|
+
const modules = Array.from({
|
|
263
|
+
length: size
|
|
264
|
+
}, () => new Array(size).fill(false));
|
|
265
|
+
// Function patterns are not masked and take no data, so they are tracked
|
|
266
|
+
// separately rather than inferred from their position afterwards.
|
|
267
|
+
const reserved = Array.from({
|
|
268
|
+
length: size
|
|
269
|
+
}, () => new Array(size).fill(false));
|
|
270
|
+
const set = (x, y, dark) => {
|
|
271
|
+
modules[y][x] = dark;
|
|
272
|
+
reserved[y][x] = true;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
/* Finder patterns, and the separator around each. */
|
|
276
|
+
for (const [originX, originY] of [[0, 0], [size - 7, 0], [0, size - 7]]) {
|
|
277
|
+
for (let dy = -1; dy <= 7; dy++) {
|
|
278
|
+
for (let dx = -1; dx <= 7; dx++) {
|
|
279
|
+
const x = originX + dx;
|
|
280
|
+
const y = originY + dy;
|
|
281
|
+
if (x < 0 || x >= size || y < 0 || y >= size) continue;
|
|
282
|
+
// Distance from the finder's centre, as a square ring index: 0 and 1
|
|
283
|
+
// are the dark core, 2 is the light ring inside it, 3 is the dark
|
|
284
|
+
// border, and 4 is the separator — which is light, and is the reason
|
|
285
|
+
// this walks one module further out than the pattern itself.
|
|
286
|
+
const ring = Math.max(Math.abs(dx - 3), Math.abs(dy - 3));
|
|
287
|
+
set(x, y, ring !== 2 && ring <= 3);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* Timing patterns — the dotted lines joining the finders. */
|
|
293
|
+
for (let i = 0; i < size; i++) {
|
|
294
|
+
if (!reserved[6][i]) set(i, 6, i % 2 === 0);
|
|
295
|
+
if (!reserved[i][6]) set(6, i, i % 2 === 0);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/* Alignment patterns, everywhere except under a finder. */
|
|
299
|
+
const positions = alignmentPositions(version);
|
|
300
|
+
for (let i = 0; i < positions.length; i++) {
|
|
301
|
+
for (let j = 0; j < positions.length; j++) {
|
|
302
|
+
const corner = i === 0 && j === 0 || i === 0 && j === positions.length - 1 || i === positions.length - 1 && j === 0;
|
|
303
|
+
if (corner) continue;
|
|
304
|
+
for (let dy = -2; dy <= 2; dy++) {
|
|
305
|
+
for (let dx = -2; dx <= 2; dx++) {
|
|
306
|
+
set(positions[j] + dx, positions[i] + dy, Math.max(Math.abs(dx), Math.abs(dy)) !== 1);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/* Reserve the format areas; the bits go in after masking. */
|
|
313
|
+
for (let i = 0; i < 9; i++) {
|
|
314
|
+
if (!reserved[8][i]) set(i, 8, false);
|
|
315
|
+
if (!reserved[i][8]) set(8, i, false);
|
|
316
|
+
}
|
|
317
|
+
for (let i = 0; i < 8; i++) {
|
|
318
|
+
if (!reserved[8][size - 1 - i]) set(size - 1 - i, 8, false);
|
|
319
|
+
if (!reserved[size - 1 - i][8]) set(8, size - 1 - i, false);
|
|
320
|
+
}
|
|
321
|
+
// The dark module, which is always dark and is not part of anything.
|
|
322
|
+
set(8, size - 8, true);
|
|
323
|
+
|
|
324
|
+
/* Version information, for 7 and up. */
|
|
325
|
+
if (version >= 7) {
|
|
326
|
+
let rest = version;
|
|
327
|
+
for (let i = 0; i < 12; i++) rest = rest << 1 ^ (rest >>> 11) * 0x1f25;
|
|
328
|
+
const bits = (version << 12 | rest) >>> 0;
|
|
329
|
+
for (let i = 0; i < 18; i++) {
|
|
330
|
+
const dark = (bits >>> i & 1) === 1;
|
|
331
|
+
const a = size - 11 + i % 3;
|
|
332
|
+
const b = Math.floor(i / 3);
|
|
333
|
+
set(a, b, dark);
|
|
334
|
+
set(b, a, dark);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/* The data, walked in two-module columns, upwards then downwards. */
|
|
339
|
+
const data = codewords(bytes, version, errorCorrection);
|
|
340
|
+
let bit = 0;
|
|
341
|
+
for (let right = size - 1; right >= 1; right -= 2) {
|
|
342
|
+
// Column 6 is the vertical timing pattern; the walk skips over it.
|
|
343
|
+
if (right === 6) right = 5;
|
|
344
|
+
for (let vertical = 0; vertical < size; vertical++) {
|
|
345
|
+
for (let column = 0; column < 2; column++) {
|
|
346
|
+
const x = right - column;
|
|
347
|
+
const upward = (right + 1 & 2) === 0;
|
|
348
|
+
const y = upward ? size - 1 - vertical : vertical;
|
|
349
|
+
if (reserved[y][x]) continue;
|
|
350
|
+
|
|
351
|
+
// Past the end of the data the remainder bits are zero, which the
|
|
352
|
+
// spec allows and every reader expects.
|
|
353
|
+
modules[y][x] = bit < data.length * 8 && (data[bit >>> 3] >>> 7 - (bit & 7) & 1) === 1;
|
|
354
|
+
bit++;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/* Mask, score, keep the best. */
|
|
360
|
+
let bestMask = 0;
|
|
361
|
+
let bestPenalty = Infinity;
|
|
362
|
+
for (let mask = 0; mask < 8; mask++) {
|
|
363
|
+
applyMask(modules, reserved, mask, size);
|
|
364
|
+
writeFormat(modules, errorCorrection, mask, size);
|
|
365
|
+
const penalty = penaltyScore(modules, size);
|
|
366
|
+
if (penalty < bestPenalty) {
|
|
367
|
+
bestPenalty = penalty;
|
|
368
|
+
bestMask = mask;
|
|
369
|
+
}
|
|
370
|
+
// Masking is its own inverse, so undoing it is applying it again.
|
|
371
|
+
applyMask(modules, reserved, mask, size);
|
|
372
|
+
}
|
|
373
|
+
applyMask(modules, reserved, bestMask, size);
|
|
374
|
+
writeFormat(modules, errorCorrection, bestMask, size);
|
|
375
|
+
return {
|
|
376
|
+
modules,
|
|
377
|
+
size,
|
|
378
|
+
version
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
function applyMask(modules, reserved, mask, size) {
|
|
382
|
+
const test = MASKS[mask];
|
|
383
|
+
for (let y = 0; y < size; y++) {
|
|
384
|
+
for (let x = 0; x < size; x++) {
|
|
385
|
+
if (!reserved[y][x] && test(x, y)) modules[y][x] = !modules[y][x];
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/** The 15 format bits, BCH-protected and masked, in both of their places. */
|
|
391
|
+
function writeFormat(modules, level, mask, size) {
|
|
392
|
+
const data = FORMAT_BITS[level] << 3 | mask;
|
|
393
|
+
let rest = data;
|
|
394
|
+
for (let i = 0; i < 10; i++) rest = rest << 1 ^ (rest >>> 9) * 0x537;
|
|
395
|
+
const bits = ((data << 10 | rest) ^ 0x5412) >>> 0;
|
|
396
|
+
const at = i => (bits >>> i & 1) === 1;
|
|
397
|
+
|
|
398
|
+
// The copy around the top-left finder: down column 8, then along row 8.
|
|
399
|
+
// Indices are [y][x], and the two runs change different axes — which is the
|
|
400
|
+
// whole trap here.
|
|
401
|
+
for (let i = 0; i <= 5; i++) modules[i][8] = at(i);
|
|
402
|
+
modules[7][8] = at(6);
|
|
403
|
+
modules[8][8] = at(7);
|
|
404
|
+
modules[8][7] = at(8);
|
|
405
|
+
for (let i = 9; i < 15; i++) modules[8][14 - i] = at(i);
|
|
406
|
+
|
|
407
|
+
// And the split copy: along row 8 at the right edge, then down column 8 at
|
|
408
|
+
// the bottom.
|
|
409
|
+
for (let i = 0; i < 8; i++) modules[8][size - 1 - i] = at(i);
|
|
410
|
+
for (let i = 8; i < 15; i++) modules[size - 15 + i][8] = at(i);
|
|
411
|
+
modules[size - 8][8] = true;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/** The four penalty rules. Lower is a code more readers agree about. */
|
|
415
|
+
function penaltyScore(modules, size) {
|
|
416
|
+
let penalty = 0;
|
|
417
|
+
|
|
418
|
+
// 1 & 3 — runs of five or more, and the finder-like 1:1:3:1:1 sequence.
|
|
419
|
+
for (let axis = 0; axis < 2; axis++) {
|
|
420
|
+
for (let a = 0; a < size; a++) {
|
|
421
|
+
let runColour = false;
|
|
422
|
+
let runLength = 0;
|
|
423
|
+
const history = [0, 0, 0, 0, 0, 0, 0];
|
|
424
|
+
for (let b = 0; b < size; b++) {
|
|
425
|
+
const dark = axis === 0 ? modules[a][b] : modules[b][a];
|
|
426
|
+
if (dark === runColour) {
|
|
427
|
+
runLength++;
|
|
428
|
+
if (runLength === 5) penalty += 3;else if (runLength > 5) penalty += 1;
|
|
429
|
+
} else {
|
|
430
|
+
history.pop();
|
|
431
|
+
history.unshift(runLength);
|
|
432
|
+
if (!runColour && hasFinderPattern(history)) penalty += 40;
|
|
433
|
+
runColour = dark;
|
|
434
|
+
runLength = 1;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
history.pop();
|
|
438
|
+
history.unshift(runLength);
|
|
439
|
+
if (runColour) {
|
|
440
|
+
history.pop();
|
|
441
|
+
history.unshift(0);
|
|
442
|
+
}
|
|
443
|
+
if (hasFinderPattern(history)) penalty += 40;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// 2 — solid 2×2 blocks.
|
|
448
|
+
for (let y = 0; y < size - 1; y++) {
|
|
449
|
+
for (let x = 0; x < size - 1; x++) {
|
|
450
|
+
const corner = modules[y][x];
|
|
451
|
+
if (corner === modules[y][x + 1] && corner === modules[y + 1][x] && corner === modules[y + 1][x + 1]) {
|
|
452
|
+
penalty += 3;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
// 4 — the balance of dark to light across the whole code.
|
|
458
|
+
let dark = 0;
|
|
459
|
+
for (const row of modules) for (const module of row) if (module) dark++;
|
|
460
|
+
const total = size * size;
|
|
461
|
+
const deviation = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;
|
|
462
|
+
penalty += deviation * 10;
|
|
463
|
+
return penalty;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/** The 1:1:3:1:1 run ratio, with four light modules on one side of it. */
|
|
467
|
+
function hasFinderPattern(history) {
|
|
468
|
+
const middle = history[1];
|
|
469
|
+
if (middle <= 0 || history[2] !== middle || history[4] !== middle || history[5] !== middle) {
|
|
470
|
+
return false;
|
|
471
|
+
}
|
|
472
|
+
if (history[3] !== middle * 3) return false;
|
|
473
|
+
return Math.max(history[0], history[6]) >= middle * 4;
|
|
474
|
+
}
|
|
475
|
+
//# sourceMappingURL=qr-encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FORMAT_BITS","L","M","Q","H","ECC_CODEWORDS_PER_BLOCK","Int16Array","from","NUM_ERROR_CORRECTION_BLOCKS","MIN_VERSION","MAX_VERSION","rawDataModules","version","modules","alignmentCount","Math","floor","dataCodewords","level","alignmentPositions","count","size","step","ceil","positions","pos","length","unshift","multiply","a","b","result","i","generatorPolynomial","degree","Uint8Array","root","j","remainder","data","divisor","byte","factor","copyWithin","BitBuffer","bits","append","value","push","toUtf8","text","bytes","character","point","codePointAt","characterCountBits","smallestVersion","byteLength","capacity","needed","Error","codewords","buffer","min","pad","bit","blockCount","eccPerBlock","totalCodewords","shortBlockLength","shortBlockCount","blocks","eccBlocks","offset","block","slice","MASKS","x","y","_x","encodeQr","errorCorrection","requestedVersion","Array","fill","reserved","set","dark","originX","originY","dy","dx","ring","max","abs","corner","rest","right","vertical","column","upward","bestMask","bestPenalty","Infinity","mask","applyMask","writeFormat","penalty","penaltyScore","test","at","axis","runColour","runLength","history","pop","hasFinderPattern","row","module","total","deviation","middle"],"sourceRoot":"../../../../src","sources":["components/qr-code/qr-encode.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -43,6 +43,7 @@ export { Soundwave } from "./components/soundwave/index.js";
|
|
|
43
43
|
export { Direction, useDirection, useDirectionSign } from "./components/direction/index.js";
|
|
44
44
|
export { Fab } from "./components/fab/index.js";
|
|
45
45
|
export { Flow } from "./components/flow/index.js";
|
|
46
|
+
export { FunnelChart, useFunnelChart } from "./components/funnel-chart/index.js";
|
|
46
47
|
export { Frame } from "./components/frame/index.js";
|
|
47
48
|
export { GridItem } from "./components/grid-item/index.js";
|
|
48
49
|
export { HeatmapChart, useHeatmapChart, buildHeatmapCalendar } from "./components/heatmap-chart/index.js";
|
|
@@ -87,6 +88,7 @@ export { Message } from "./components/message/index.js";
|
|
|
87
88
|
export { Popover, usePopoverAnchor } from "./components/popover/index.js";
|
|
88
89
|
export { Post } from "./components/post/index.js";
|
|
89
90
|
export { Progress } from "./components/progress/index.js";
|
|
91
|
+
export { QRCode } from "./components/qr-code/index.js";
|
|
90
92
|
export { Questionnaire } from "./components/questionnaire/index.js";
|
|
91
93
|
export { RadioGroup } from "./components/radio-group/index.js";
|
|
92
94
|
export { Rating } from "./components/rating/index.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PanelUIProvider","useTheme","useThemeMode","PANEL_THEMES","PANEL_THEME_NAMES","PANEL_EXTRA_THEMES","Portal","PortalHost","PortalProvider","Scrim","hasBlur","Text","Collapse","KeyboardAvoider","AnimatedPressable","ScrollProgress","useScrollProgress","hasNativeUI","hasHaptics","selectionTick","Accordion","Alert","Avatar","Attachment","AreaChart","useAreaChart","Badge","BarChart","useBarChart","CandlestickChart","useCandlestickChart","BottomSheet","Breadcrumb","Button","ButtonGroup","ToggleButton","ToggleButtonGroup","useToggleButton","DatePicker","DateTimePicker","Dialog","Soundwave","Direction","useDirection","useDirectionSign","Fab","Flow","Frame","GridItem","HeatmapChart","useHeatmapChart","buildHeatmapCalendar","HexChart","useHexChart","Map","useMap","hasMapLibre","CARTO_SOURCE","RadarChart","useRadarChart","Select","SectionRail","Tabs","Table","Carousel","useCarouselState","Calendar","Card","Checkbox","Chip","useChip","ColorPicker","Combobox","ContextMenu","Drawer","EmptyState","Field","Form","useForm","useField","Input","InputGroup","NumberInput","OtpInput","Panelside","usePanelside","Pagination","paginationRange","PieChart","usePieChart","Textarea","TagInput","Item","Kpi","Label","LineChart","useLineChart","Loader","MarkdownEditor","Marker","Menu","MessageScroller","useMessageScroller","useMessageScrollerVisibility","Message","Popover","usePopoverAnchor","Post","Progress","Questionnaire","RadioGroup","Rating","RingChart","useRingChart","ScatterChart","useScatterChart","ScrollFade","Separator","Signature","hasSignatureFileSystem","hasSignatureRaster","Shimmer","Reasoning","Response","Sources","Task","CodeBlock","resolveLanguage","Plan","ScrollText","TextAnimation","ScrollCanvas","ThinkingOrb","Skeleton","Slider","Sortable","reorderItems","useSortableItem","Spinner","Steps","Surface","Swipe","useSwipeGroup","Switch","TimePicker","Timeline","Toast","ToastViewport","toast","useToast","Tree","Tooltip","Tour","Typography","AlertTriangleIcon","AppleIcon","ArrowDownIcon","ArrowUpIcon","ArrowUpRightIcon","BadgeCheckIcon","BellIcon","BookmarkIcon","BoldIcon","CalendarIcon","CardIcon","CheckCircleIcon","CheckIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","CircleIcon","CodeIcon","ClockIcon","CompassIcon","CopyIcon","CrosshairIcon","DownloadIcon","EllipsisIcon","EyeIcon","FacebookIcon","FileIcon","FolderIcon","FolderOpenIcon","GoogleIcon","HeartIcon","HeadingIcon","IconColorProvider","InfoIcon","ItalicIcon","ImageIcon","KeyboardIcon","LinkIcon","ListIcon","ListChecksIcon","ListOrderedIcon","LockIcon","MaximizeIcon","MenuIcon","MessageCircleIcon","MicIcon","MinusIcon","MoonIcon","PackageIcon","PaperclipIcon","PauseIcon","PencilIcon","PlayIcon","PlusIcon","PlusSquareIcon","QuoteIcon","ReceiptIcon","RepeatIcon","RotateCcwIcon","RotateCwIcon","SearchIcon","SendIcon","ShareNodesIcon","ShieldAlertIcon","ShieldCheckIcon","SparklesIcon","StarIcon","SunIcon","TrashIcon","UnlockIcon","XIcon","useIconColor","cn","formatColor","hsvToCss","hsvToHex","hsvToHsl","hsvToRgb","isValidColor","parseColor","rgbToHsv","clampTime","compareTime","displayHour","formatTime","isSameTime","isTimeInRange","meridiemLabels","minutesToTime","roundToStep","timeFromDate","timeToDate","timeToMinutes","timesOfDay"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PanelUIProvider","useTheme","useThemeMode","PANEL_THEMES","PANEL_THEME_NAMES","PANEL_EXTRA_THEMES","Portal","PortalHost","PortalProvider","Scrim","hasBlur","Text","Collapse","KeyboardAvoider","AnimatedPressable","ScrollProgress","useScrollProgress","hasNativeUI","hasHaptics","selectionTick","Accordion","Alert","Avatar","Attachment","AreaChart","useAreaChart","Badge","BarChart","useBarChart","CandlestickChart","useCandlestickChart","BottomSheet","Breadcrumb","Button","ButtonGroup","ToggleButton","ToggleButtonGroup","useToggleButton","DatePicker","DateTimePicker","Dialog","Soundwave","Direction","useDirection","useDirectionSign","Fab","Flow","FunnelChart","useFunnelChart","Frame","GridItem","HeatmapChart","useHeatmapChart","buildHeatmapCalendar","HexChart","useHexChart","Map","useMap","hasMapLibre","CARTO_SOURCE","RadarChart","useRadarChart","Select","SectionRail","Tabs","Table","Carousel","useCarouselState","Calendar","Card","Checkbox","Chip","useChip","ColorPicker","Combobox","ContextMenu","Drawer","EmptyState","Field","Form","useForm","useField","Input","InputGroup","NumberInput","OtpInput","Panelside","usePanelside","Pagination","paginationRange","PieChart","usePieChart","Textarea","TagInput","Item","Kpi","Label","LineChart","useLineChart","Loader","MarkdownEditor","Marker","Menu","MessageScroller","useMessageScroller","useMessageScrollerVisibility","Message","Popover","usePopoverAnchor","Post","Progress","QRCode","Questionnaire","RadioGroup","Rating","RingChart","useRingChart","ScatterChart","useScatterChart","ScrollFade","Separator","Signature","hasSignatureFileSystem","hasSignatureRaster","Shimmer","Reasoning","Response","Sources","Task","CodeBlock","resolveLanguage","Plan","ScrollText","TextAnimation","ScrollCanvas","ThinkingOrb","Skeleton","Slider","Sortable","reorderItems","useSortableItem","Spinner","Steps","Surface","Swipe","useSwipeGroup","Switch","TimePicker","Timeline","Toast","ToastViewport","toast","useToast","Tree","Tooltip","Tour","Typography","AlertTriangleIcon","AppleIcon","ArrowDownIcon","ArrowUpIcon","ArrowUpRightIcon","BadgeCheckIcon","BellIcon","BookmarkIcon","BoldIcon","CalendarIcon","CardIcon","CheckCircleIcon","CheckIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","CircleIcon","CodeIcon","ClockIcon","CompassIcon","CopyIcon","CrosshairIcon","DownloadIcon","EllipsisIcon","EyeIcon","FacebookIcon","FileIcon","FolderIcon","FolderOpenIcon","GoogleIcon","HeartIcon","HeadingIcon","IconColorProvider","InfoIcon","ItalicIcon","ImageIcon","KeyboardIcon","LinkIcon","ListIcon","ListChecksIcon","ListOrderedIcon","LockIcon","MaximizeIcon","MenuIcon","MessageCircleIcon","MicIcon","MinusIcon","MoonIcon","PackageIcon","PaperclipIcon","PauseIcon","PencilIcon","PlayIcon","PlusIcon","PlusSquareIcon","QuoteIcon","ReceiptIcon","RepeatIcon","RotateCcwIcon","RotateCwIcon","SearchIcon","SendIcon","ShareNodesIcon","ShieldAlertIcon","ShieldCheckIcon","SparklesIcon","StarIcon","SunIcon","TrashIcon","UnlockIcon","XIcon","useIconColor","cn","formatColor","hsvToCss","hsvToHex","hsvToHsl","hsvToRgb","isValidColor","parseColor","rgbToHsv","clampTime","compareTime","displayHour","formatTime","isSameTime","isTimeInRange","meridiemLabels","minutesToTime","roundToStep","timeFromDate","timeToDate","timeToMinutes","timesOfDay"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -610,4 +610,40 @@ export function columnValues(data, key) {
|
|
|
610
610
|
return typeof value === 'number' && !Number.isNaN(value) ? value : null;
|
|
611
611
|
});
|
|
612
612
|
}
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* One length of a funnel: a band symmetrical about a centre line, `head` wide
|
|
616
|
+
* at one end and `tail` wide at the other.
|
|
617
|
+
*
|
|
618
|
+
* Given as two half-extents about a middle rather than as four corners, because
|
|
619
|
+
* that is the shape of the data — a stage knows what it is worth and what the
|
|
620
|
+
* next one is worth, and the taper between them is the drop.
|
|
621
|
+
*
|
|
622
|
+
* `curve` is how far along the band the control points reach, as a fraction of
|
|
623
|
+
* its length. Past `0.5` the two reach beyond each other, which is what turns
|
|
624
|
+
* the join from a diagonal into the S the eye reads as a single continuous
|
|
625
|
+
* funnel rather than a stack of separate trapezoids; `0` gives the straight
|
|
626
|
+
* diagonal. The sides are the only curved part — the ends stay square, so a
|
|
627
|
+
* band's end lines up exactly with the next band's start.
|
|
628
|
+
*
|
|
629
|
+
* The run goes across, so `offset` and `length` are horizontal and the band is
|
|
630
|
+
* `head` and `tail` tall about `middle`.
|
|
631
|
+
*/
|
|
632
|
+
export function ribbonPath(offset, length, head, tail, middle, curve) {
|
|
633
|
+
'worklet';
|
|
634
|
+
|
|
635
|
+
if (length <= 0 || head <= 0 && tail <= 0) return '';
|
|
636
|
+
const start = offset;
|
|
637
|
+
const end = offset + length;
|
|
638
|
+
const topStart = middle - head;
|
|
639
|
+
const topEnd = middle - tail;
|
|
640
|
+
const bottomStart = middle + head;
|
|
641
|
+
const bottomEnd = middle + tail;
|
|
642
|
+
if (!(curve > 0)) {
|
|
643
|
+
return `M${start},${topStart}L${end},${topEnd}L${end},${bottomEnd}L${start},${bottomStart}Z`;
|
|
644
|
+
}
|
|
645
|
+
const near = start + length * curve;
|
|
646
|
+
const far = end - length * curve;
|
|
647
|
+
return `M${start},${topStart}` + `C${near},${topStart},${far},${topEnd},${end},${topEnd}` + `L${end},${bottomEnd}` + `C${far},${bottomEnd},${near},${bottomStart},${start},${bottomStart}` + `Z`;
|
|
648
|
+
}
|
|
613
649
|
//# sourceMappingURL=chart.js.map
|