mirror of
https://github.com/selfxyz/self.git
synced 2026-02-19 02:24:25 -05:00
QR code SDK Redesign (#1536)
* Refactor NFC scanner tests to use a global variable for platform OS, allowing dynamic switching between iOS and Android during tests. This change improves test isolation and avoids hoisting issues with jest.mock. * Triggering GitHub workflows * Add status animations and self logos * Update utilities and styles for statuses * Remove old LED implementation and occurences * Update Self QR Code with new design * Add status banner * Remove console and use QRcodeSteps in styles * Add ARIA and use Memo to prevent re-renders * Add refs for success and error callbacks * Use ref for self app in qrcode * Use selfapp ref consistently * Update connected state animtion * Skip 'parses Android response' test in nfcScanner --------- Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz> Co-authored-by: Javier Cortejoso <javier.cortejoso@gmail.com>
This commit is contained in:
@@ -101,3 +101,4 @@ We are actively looking for contributors. Please check the [open issues](https:/
|
||||
Thanks [Rémi](https://github.com/remicolin), [Florent](https://github.com/0xturboblitz), [Ayman](https://github.com/Nesopie), [Justin](https://github.com/transphorm), [Seshanth](https://github.com/seshanthS), [Nico](https://github.com/motemotech) and all other contributors for building Self.
|
||||
|
||||
Thanks [Aayush](https://twitter.com/yush_g), [Vivek](https://twitter.com/viv_boop), [Andy](https://twitter.com/AndyGuzmanEth) and [Vitalik](https://github.com/vbuterin) for contributing ideas and inspiring us to build this technology, and [PSE](https://pse.dev/) for supporting the initial work through grants!
|
||||
|
||||
|
||||
@@ -1,506 +0,0 @@
|
||||
{
|
||||
"v": "5.7.12",
|
||||
"fr": 24,
|
||||
"ip": 0,
|
||||
"op": 63,
|
||||
"w": 520,
|
||||
"h": 520,
|
||||
"nm": "Checklist 2",
|
||||
"ddd": 0,
|
||||
"assets": [],
|
||||
"layers": [
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 1,
|
||||
"ty": 4,
|
||||
"nm": "Checklist",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.667], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 50,
|
||||
"s": [100]
|
||||
},
|
||||
{ "t": 62, "s": [0] }
|
||||
],
|
||||
"ix": 11
|
||||
},
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": { "a": 0, "k": [259.587, 260.119, 0], "ix": 2, "l": 2 },
|
||||
"a": { "a": 0, "k": [297.587, 298.119, 0], "ix": 1, "l": 2 },
|
||||
"s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 }
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[54.754, -36.121],
|
||||
[-17.487, 36.12],
|
||||
[-54.754, -1.147]
|
||||
],
|
||||
"c": false
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "st",
|
||||
"c": { "a": 0, "k": [1, 1, 1, 1], "ix": 3 },
|
||||
"o": { "a": 0, "k": 100, "ix": 4 },
|
||||
"w": { "a": 0, "k": 23, "ix": 5 },
|
||||
"lc": 2,
|
||||
"lj": 2,
|
||||
"bm": 0,
|
||||
"nm": "Stroke 1",
|
||||
"mn": "ADBE Vector Graphic - Stroke",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [294.971, 298.679], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tm",
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "i": { "x": [0], "y": [1] }, "o": { "x": [0.333], "y": [0] }, "t": 24, "s": [100] },
|
||||
{ "t": 36, "s": [0] }
|
||||
],
|
||||
"ix": 1
|
||||
},
|
||||
"e": { "a": 0, "k": 100, "ix": 2 },
|
||||
"o": { "a": 0, "k": 0, "ix": 3 },
|
||||
"m": 1,
|
||||
"ix": 2,
|
||||
"nm": "Trim Paths 1",
|
||||
"mn": "ADBE Vector Filter - Trim",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 720,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 2,
|
||||
"ty": 4,
|
||||
"nm": "Cricle",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.667], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 50,
|
||||
"s": [100]
|
||||
},
|
||||
{ "t": 62, "s": [0] }
|
||||
],
|
||||
"ix": 11
|
||||
},
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": { "a": 0, "k": [260, 260, 0], "ix": 2, "l": 2 },
|
||||
"a": { "a": 0, "k": [-7.627, -7.691, 0], "ix": 1, "l": 2 },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.667, 0.667, 0.667], "y": [1, 1, 1] },
|
||||
"o": { "x": [0.167, 0.167, 0.167], "y": [0, 0, 0] },
|
||||
"t": 18,
|
||||
"s": [124.222, 124.222, 100]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0.667, 0.667, 0.667], "y": [1, 1, 1] },
|
||||
"o": { "x": [0.333, 0.333, 0.333], "y": [0, 0, 0] },
|
||||
"t": 20,
|
||||
"s": [134.222, 134.222, 100]
|
||||
},
|
||||
{
|
||||
"i": { "x": [0.667, 0.667, 0.667], "y": [1, 1, 1] },
|
||||
"o": { "x": [0.333, 0.333, 0.333], "y": [0, 0, 0] },
|
||||
"t": 22,
|
||||
"s": [114.222, 114.222, 100]
|
||||
},
|
||||
{ "t": 24, "s": [124.222, 124.222, 100] }
|
||||
],
|
||||
"ix": 6,
|
||||
"l": 2
|
||||
}
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"d": 1,
|
||||
"ty": "el",
|
||||
"s": { "a": 0, "k": [178.46, 178.46], "ix": 2 },
|
||||
"p": { "a": 0, "k": [0, 0], "ix": 3 },
|
||||
"nm": "Ellipse Path 1",
|
||||
"mn": "ADBE Vector Shape - Ellipse",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tm",
|
||||
"s": { "a": 0, "k": 0, "ix": 1 },
|
||||
"e": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0.239], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 0,
|
||||
"s": [0]
|
||||
},
|
||||
{ "t": 24, "s": [100] }
|
||||
],
|
||||
"ix": 2
|
||||
},
|
||||
"o": { "a": 0, "k": 0, "ix": 3 },
|
||||
"m": 1,
|
||||
"ix": 2,
|
||||
"nm": "Trim Paths 1",
|
||||
"mn": "ADBE Vector Filter - Trim",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "st",
|
||||
"c": { "a": 0, "k": [0.3137, 0.7569, 0.3294, 1], "ix": 3 },
|
||||
"o": { "a": 0, "k": 100, "ix": 4 },
|
||||
"w": { "a": 0, "k": 10, "ix": 5 },
|
||||
"lc": 2,
|
||||
"lj": 2,
|
||||
"bm": 0,
|
||||
"nm": "Stroke 1",
|
||||
"mn": "ADBE Vector Graphic - Stroke",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": { "a": 0, "k": [0.3137, 0.7569, 0.3294, 1], "ix": 4 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 22,
|
||||
"s": [0]
|
||||
},
|
||||
{ "t": 24, "s": [100] }
|
||||
],
|
||||
"ix": 5
|
||||
},
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [-7.627, -7.691], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Ellipse 1",
|
||||
"np": 4,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 0,
|
||||
"op": 720,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 3,
|
||||
"ty": 4,
|
||||
"nm": "Line",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "i": { "x": [0.667], "y": [1] }, "o": { "x": [0.333], "y": [0] }, "t": 28, "s": [0] },
|
||||
{
|
||||
"i": { "x": [0.667], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 39,
|
||||
"s": [100]
|
||||
},
|
||||
{ "t": 50, "s": [0] }
|
||||
],
|
||||
"ix": 11
|
||||
},
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": { "a": 0, "k": [260, 260, 0], "ix": 2, "l": 2 },
|
||||
"a": { "a": 0, "k": [298, 298, 0], "ix": 1, "l": 2 },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0, 0, 0.667], "y": [1, 1, 1] },
|
||||
"o": { "x": [0.333, 0.333, 0.333], "y": [0, 0, 0] },
|
||||
"t": 28,
|
||||
"s": [46, 46, 100]
|
||||
},
|
||||
{ "t": 50, "s": [100, 100, 100] }
|
||||
],
|
||||
"ix": 6,
|
||||
"l": 2
|
||||
}
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[-120.208, 0],
|
||||
[0, -120.208],
|
||||
[120.207, 0],
|
||||
[0, 120.208]
|
||||
],
|
||||
"o": [
|
||||
[120.207, 0],
|
||||
[0, 120.208],
|
||||
[-120.208, 0],
|
||||
[0, -120.208]
|
||||
],
|
||||
"v": [
|
||||
[0, -217.655],
|
||||
[217.655, 0],
|
||||
[0, 217.655],
|
||||
[-217.655, 0]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "st",
|
||||
"c": { "a": 0, "k": [0.6516, 0.8284, 0.6575, 1], "ix": 3 },
|
||||
"o": { "a": 0, "k": 100, "ix": 4 },
|
||||
"w": { "a": 0, "k": 2, "ix": 5 },
|
||||
"lc": 1,
|
||||
"lj": 1,
|
||||
"ml": 10,
|
||||
"bm": 0,
|
||||
"nm": "Stroke 1",
|
||||
"mn": "ADBE Vector Graphic - Stroke",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [297.587, 298.119], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 28,
|
||||
"op": 720,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
},
|
||||
{
|
||||
"ddd": 0,
|
||||
"ind": 4,
|
||||
"ty": 4,
|
||||
"nm": "Shadow",
|
||||
"sr": 1,
|
||||
"ks": {
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "i": { "x": [0.667], "y": [1] }, "o": { "x": [0.333], "y": [0] }, "t": 22, "s": [0] },
|
||||
{
|
||||
"i": { "x": [0.667], "y": [1] },
|
||||
"o": { "x": [0.333], "y": [0] },
|
||||
"t": 33,
|
||||
"s": [100]
|
||||
},
|
||||
{ "t": 44, "s": [0] }
|
||||
],
|
||||
"ix": 11
|
||||
},
|
||||
"r": { "a": 0, "k": 0, "ix": 10 },
|
||||
"p": { "a": 0, "k": [260, 260, 0], "ix": 2, "l": 2 },
|
||||
"a": { "a": 0, "k": [298, 298, 0], "ix": 1, "l": 2 },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"i": { "x": [0, 0, 0.667], "y": [1, 1, 1] },
|
||||
"o": { "x": [0.333, 0.333, 0.333], "y": [0, 0, 0] },
|
||||
"t": 22,
|
||||
"s": [60, 60, 100]
|
||||
},
|
||||
{ "t": 44, "s": [100, 100, 100] }
|
||||
],
|
||||
"ix": 6,
|
||||
"l": 2
|
||||
}
|
||||
},
|
||||
"ao": 0,
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"it": [
|
||||
{
|
||||
"ind": 0,
|
||||
"ty": "sh",
|
||||
"ix": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"i": [
|
||||
[-94.797, 0],
|
||||
[0, -94.797],
|
||||
[94.797, 0],
|
||||
[0, 94.798]
|
||||
],
|
||||
"o": [
|
||||
[94.797, 0],
|
||||
[0, 94.798],
|
||||
[-94.797, 0],
|
||||
[0, -94.797]
|
||||
],
|
||||
"v": [
|
||||
[0, -171.646],
|
||||
[171.646, 0],
|
||||
[0, 171.646],
|
||||
[-171.646, 0]
|
||||
],
|
||||
"c": true
|
||||
},
|
||||
"ix": 2
|
||||
},
|
||||
"nm": "Path 1",
|
||||
"mn": "ADBE Vector Shape - Group",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"c": { "a": 0, "k": [0.8936, 0.9464, 0.8954, 1], "ix": 4 },
|
||||
"o": { "a": 0, "k": 100, "ix": 5 },
|
||||
"r": 1,
|
||||
"bm": 0,
|
||||
"nm": "Fill 1",
|
||||
"mn": "ADBE Vector Graphic - Fill",
|
||||
"hd": false
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"p": { "a": 0, "k": [297.587, 298.119], "ix": 2 },
|
||||
"a": { "a": 0, "k": [0, 0], "ix": 1 },
|
||||
"s": { "a": 0, "k": [100, 100], "ix": 3 },
|
||||
"r": { "a": 0, "k": 0, "ix": 6 },
|
||||
"o": { "a": 0, "k": 100, "ix": 7 },
|
||||
"sk": { "a": 0, "k": 0, "ix": 4 },
|
||||
"sa": { "a": 0, "k": 0, "ix": 5 },
|
||||
"nm": "Transform"
|
||||
}
|
||||
],
|
||||
"nm": "Group 1",
|
||||
"np": 2,
|
||||
"cix": 2,
|
||||
"bm": 0,
|
||||
"ix": 1,
|
||||
"mn": "ADBE Vector Group",
|
||||
"hd": false
|
||||
}
|
||||
],
|
||||
"ip": 22,
|
||||
"op": 720,
|
||||
"st": 0,
|
||||
"bm": 0
|
||||
}
|
||||
],
|
||||
"markers": []
|
||||
}
|
||||
6
sdk/qrcode/animations/index.ts
Normal file
6
sdk/qrcode/animations/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import statusConnecting from './status-connecting.json' with { type: 'json' };
|
||||
import statusError from './status-error.json' with { type: 'json' };
|
||||
import statusFailed from './status-failed.json' with { type: 'json' };
|
||||
import statusSuccess from './status-success.json' with { type: 'json' };
|
||||
|
||||
export { statusConnecting, statusError, statusFailed, statusSuccess };
|
||||
386
sdk/qrcode/animations/status-connecting.json
Normal file
386
sdk/qrcode/animations/status-connecting.json
Normal file
File diff suppressed because one or more lines are too long
712
sdk/qrcode/animations/status-error.json
Normal file
712
sdk/qrcode/animations/status-error.json
Normal file
@@ -0,0 +1,712 @@
|
||||
{
|
||||
"nm": "newScene",
|
||||
"ddd": 0,
|
||||
"h": 93,
|
||||
"w": 93,
|
||||
"meta": { "g": "SVG to Lottie" },
|
||||
"layers": [
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [],
|
||||
"ind": 1
|
||||
},
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [46, 46.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [4, 11] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 3.5
|
||||
},
|
||||
{ "s": [100, 100], "t": 20 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 3.5
|
||||
},
|
||||
{ "s": [0, 0], "t": 20 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 3.5 },
|
||||
{ "s": [100], "t": 20 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [46, 56] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [4, 4] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 3
|
||||
},
|
||||
{ "s": [100, 100], "t": 17.5 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 3
|
||||
},
|
||||
{ "s": [0, 0], "t": 17.5 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 3 },
|
||||
{ "s": [100], "t": 17.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[46.3205, 31],
|
||||
[63.641, 61],
|
||||
[29, 61],
|
||||
[46.3205, 31]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0.9922, 0.8784, 0.2784] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 2.5
|
||||
},
|
||||
{ "s": [100, 100], "t": 15 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 2.5
|
||||
},
|
||||
{ "s": [0, 0], "t": 15 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 2.5 },
|
||||
{ "s": [100], "t": 15 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0.8000000000000043, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0.8000000000000043],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[62.42, 36.38],
|
||||
[62.42, 60.65],
|
||||
[60.98, 62.09],
|
||||
[36.71, 62.09],
|
||||
[16.79, 82.01],
|
||||
[64.78, 82.01],
|
||||
[82, 64.79],
|
||||
[82, 36.39],
|
||||
[62.42, 36.39],
|
||||
[62.42, 36.38]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 2
|
||||
},
|
||||
{ "s": [100, 100], "t": 12.5 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 2
|
||||
},
|
||||
{ "s": [0, 0], "t": 12.5 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 2 },
|
||||
{ "s": [100], "t": 12.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-0.8000000000000007, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, -0.8000000000000007],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[29.58, 30.69],
|
||||
[31.02, 29.25],
|
||||
[55.96, 29.25],
|
||||
[75.21, 10],
|
||||
[27.22, 10],
|
||||
[10, 27.22],
|
||||
[10, 55.55],
|
||||
[29.58, 55.55],
|
||||
[29.58, 30.68],
|
||||
[29.58, 30.69]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 1.5
|
||||
},
|
||||
{ "s": [100, 100], "t": 10 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 1.5
|
||||
},
|
||||
{ "s": [0, 0], "t": 10 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 1.5 },
|
||||
{ "s": [100], "t": 10 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [37, 55.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [54, 53] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 1
|
||||
},
|
||||
{ "s": [100, 100], "t": 7.5 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 1
|
||||
},
|
||||
{ "s": [0, 0], "t": 7.5 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 1 },
|
||||
{ "s": [100], "t": 7.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [55, 36.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [54, 53] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 0.5
|
||||
},
|
||||
{ "s": [100, 100], "t": 5 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 0.5
|
||||
},
|
||||
{ "s": [0, 0], "t": 5 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 0.5 },
|
||||
{ "s": [100], "t": 5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ind": 2,
|
||||
"parent": 1
|
||||
},
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [46.0817, 46.0817] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [92.1634, 92.1634] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [1, 1, 1] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 0
|
||||
},
|
||||
{ "s": [100, 100], "t": 2.5 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 0
|
||||
},
|
||||
{ "s": [0, 0], "t": 2.5 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 0 },
|
||||
{ "s": [100], "t": 2.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ind": 3,
|
||||
"parent": 1
|
||||
}
|
||||
],
|
||||
"v": "5.7.0",
|
||||
"fr": 60,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"assets": []
|
||||
}
|
||||
704
sdk/qrcode/animations/status-failed.json
Normal file
704
sdk/qrcode/animations/status-failed.json
Normal file
@@ -0,0 +1,704 @@
|
||||
{
|
||||
"nm": "newScene",
|
||||
"ddd": 0,
|
||||
"h": 93,
|
||||
"w": 93,
|
||||
"meta": { "g": "SVG to Lottie" },
|
||||
"layers": [
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [],
|
||||
"ind": 1
|
||||
},
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[52, 57.3333],
|
||||
[57.6667, 51.6666],
|
||||
[40.6667, 34.6666],
|
||||
[35, 40.3333],
|
||||
[52, 57.3333]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0.9373, 0.2667, 0.2667] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 3.428571428571429
|
||||
},
|
||||
{ "s": [100, 100], "t": 20 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 3.428571428571429
|
||||
},
|
||||
{ "s": [0, 0], "t": 20 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 3.428571428571429
|
||||
},
|
||||
{ "s": [100], "t": 20 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[57.6667, 40.3333],
|
||||
[52, 34.6666],
|
||||
[35, 51.6666],
|
||||
[40.6667, 57.3333],
|
||||
[57.6667, 40.3333]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0.9373, 0.2667, 0.2667] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 2.857142857142858
|
||||
},
|
||||
{ "s": [100, 100], "t": 17.142857142857142 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 2.857142857142858
|
||||
},
|
||||
{ "s": [0, 0], "t": 17.142857142857142 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 2.857142857142858
|
||||
},
|
||||
{ "s": [100], "t": 17.142857142857142 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0.8000000000000043, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0.8000000000000043],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[62.42, 36.38],
|
||||
[62.42, 60.65],
|
||||
[60.98, 62.09],
|
||||
[36.71, 62.09],
|
||||
[16.79, 82.01],
|
||||
[64.78, 82.01],
|
||||
[82, 64.79],
|
||||
[82, 36.39],
|
||||
[62.42, 36.39],
|
||||
[62.42, 36.38]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 2.285714285714286
|
||||
},
|
||||
{ "s": [100, 100], "t": 14.285714285714286 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 2.285714285714286
|
||||
},
|
||||
{ "s": [0, 0], "t": 14.285714285714286 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 2.285714285714286
|
||||
},
|
||||
{ "s": [100], "t": 14.285714285714286 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-0.8000000000000007, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, -0.8000000000000007],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[29.58, 30.69],
|
||||
[31.02, 29.25],
|
||||
[55.96, 29.25],
|
||||
[75.21, 10],
|
||||
[27.22, 10],
|
||||
[10, 27.22],
|
||||
[10, 55.55],
|
||||
[29.58, 55.55],
|
||||
[29.58, 30.68],
|
||||
[29.58, 30.69]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 1.714285714285714
|
||||
},
|
||||
{ "s": [100, 100], "t": 11.428571428571427 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 1.714285714285714
|
||||
},
|
||||
{ "s": [0, 0], "t": 11.428571428571427 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 1.714285714285714
|
||||
},
|
||||
{ "s": [100], "t": 11.428571428571427 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [37, 55.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [54, 53] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 1.142857142857143
|
||||
},
|
||||
{ "s": [100, 100], "t": 8.571428571428571 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 1.142857142857143
|
||||
},
|
||||
{ "s": [0, 0], "t": 8.571428571428571 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 1.142857142857143
|
||||
},
|
||||
{ "s": [100], "t": 8.571428571428571 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [55, 36.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [54, 53] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 0.571428571428571
|
||||
},
|
||||
{ "s": [100, 100], "t": 5.714285714285714 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 0.571428571428571
|
||||
},
|
||||
{ "s": [0, 0], "t": 5.714285714285714 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 0.571428571428571
|
||||
},
|
||||
{ "s": [100], "t": 5.714285714285714 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ind": 2,
|
||||
"parent": 1
|
||||
},
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [46.0817, 46.0817] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [92.1634, 92.1634] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [1, 1, 1] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 0
|
||||
},
|
||||
{ "s": [100, 100], "t": 2.857142857142857 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 0
|
||||
},
|
||||
{ "s": [0, 0], "t": 2.857142857142857 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 0 },
|
||||
{ "s": [100], "t": 2.857142857142857 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ind": 3,
|
||||
"parent": 1
|
||||
}
|
||||
],
|
||||
"v": "5.7.0",
|
||||
"fr": 60,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"assets": []
|
||||
}
|
||||
704
sdk/qrcode/animations/status-success.json
Normal file
704
sdk/qrcode/animations/status-success.json
Normal file
@@ -0,0 +1,704 @@
|
||||
{
|
||||
"nm": "newScene",
|
||||
"ddd": 0,
|
||||
"h": 93,
|
||||
"w": 93,
|
||||
"meta": { "g": "SVG to Lottie" },
|
||||
"layers": [
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [],
|
||||
"ind": 1
|
||||
},
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[49, 51.6666],
|
||||
[37.6667, 40.3333],
|
||||
[32, 46],
|
||||
[43.3333, 57.3333],
|
||||
[49, 51.6666]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 1, 0.7137] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 3.428571428571429
|
||||
},
|
||||
{ "s": [100, 100], "t": 20 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 3.428571428571429
|
||||
},
|
||||
{ "s": [0, 0], "t": 20 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 3.428571428571429
|
||||
},
|
||||
{ "s": [100], "t": 20 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[60.3333, 40.3334],
|
||||
[54.6667, 34.6667],
|
||||
[37.6667, 51.6667],
|
||||
[43.3333, 57.3334],
|
||||
[60.3333, 40.3334]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 1, 0.7137] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 2.857142857142858
|
||||
},
|
||||
{ "s": [100, 100], "t": 17.142857142857142 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 2.857142857142858
|
||||
},
|
||||
{ "s": [0, 0], "t": 17.142857142857142 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 2.857142857142858
|
||||
},
|
||||
{ "s": [100], "t": 17.142857142857142 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0.8000000000000043, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0.8000000000000043],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[62.42, 36.38],
|
||||
[62.42, 60.65],
|
||||
[60.98, 62.09],
|
||||
[36.71, 62.09],
|
||||
[16.79, 82.01],
|
||||
[64.78, 82.01],
|
||||
[82, 64.79],
|
||||
[82, 36.39],
|
||||
[62.42, 36.39],
|
||||
[62.42, 36.38]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 2.285714285714286
|
||||
},
|
||||
{ "s": [100, 100], "t": 14.285714285714286 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 2.285714285714286
|
||||
},
|
||||
{ "s": [0, 0], "t": 14.285714285714286 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 2.285714285714286
|
||||
},
|
||||
{ "s": [100], "t": 14.285714285714286 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"ks": {
|
||||
"a": 0,
|
||||
"k": {
|
||||
"c": true,
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-0.8000000000000007, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, -0.8000000000000007],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[29.58, 30.69],
|
||||
[31.02, 29.25],
|
||||
[55.96, 29.25],
|
||||
[75.21, 10],
|
||||
[27.22, 10],
|
||||
[10, 27.22],
|
||||
[10, 55.55],
|
||||
[29.58, 55.55],
|
||||
[29.58, 30.68],
|
||||
[29.58, 30.69]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 1.714285714285714
|
||||
},
|
||||
{ "s": [100, 100], "t": 11.428571428571427 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 1.714285714285714
|
||||
},
|
||||
{ "s": [0, 0], "t": 11.428571428571427 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 1.714285714285714
|
||||
},
|
||||
{ "s": [100], "t": 11.428571428571427 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [37, 55.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [54, 53] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 1.142857142857143
|
||||
},
|
||||
{ "s": [100, 100], "t": 8.571428571428571 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 1.142857142857143
|
||||
},
|
||||
{ "s": [0, 0], "t": 8.571428571428571 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 1.142857142857143
|
||||
},
|
||||
{ "s": [100], "t": 8.571428571428571 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [55, 36.5] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [54, 53] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [0, 0, 0] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 0.571428571428571
|
||||
},
|
||||
{ "s": [100, 100], "t": 5.714285714285714 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 0.571428571428571
|
||||
},
|
||||
{ "s": [0, 0], "t": 5.714285714285714 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0],
|
||||
"t": 0.571428571428571
|
||||
},
|
||||
{ "s": [100], "t": 5.714285714285714 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ind": 2,
|
||||
"parent": 1
|
||||
},
|
||||
{
|
||||
"ty": 4,
|
||||
"nm": "",
|
||||
"sr": 1,
|
||||
"st": 0,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"hd": false,
|
||||
"ddd": 0,
|
||||
"bm": 0,
|
||||
"hasMask": false,
|
||||
"ao": 0,
|
||||
"ks": {
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": { "a": 0, "k": [100, 100] },
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": { "a": 0, "k": [0, 0] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
"ef": [],
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"it": [
|
||||
{
|
||||
"ty": "rc",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"d": 1,
|
||||
"p": { "a": 0, "k": [46.0817, 46.0817] },
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"s": { "a": 0, "k": [92.1634, 92.1634] }
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"bm": 0,
|
||||
"hd": false,
|
||||
"nm": "",
|
||||
"c": { "a": 0, "k": [1, 1, 1] },
|
||||
"r": 1,
|
||||
"o": { "a": 0, "k": 100 }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"a": { "a": 0, "k": [0, 0] },
|
||||
"s": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [0, 0],
|
||||
"t": 0
|
||||
},
|
||||
{ "s": [100, 100], "t": 2.857142857142857 }
|
||||
]
|
||||
},
|
||||
"sk": { "a": 0, "k": 0 },
|
||||
"p": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{
|
||||
"o": { "x": 0.34, "y": 1.55 },
|
||||
"i": { "x": 0.65, "y": 1 },
|
||||
"s": [46.5, 46.5],
|
||||
"t": 0
|
||||
},
|
||||
{ "s": [0, 0], "t": 2.857142857142857 }
|
||||
]
|
||||
},
|
||||
"r": { "a": 0, "k": 0 },
|
||||
"sa": { "a": 0, "k": 0 },
|
||||
"o": {
|
||||
"a": 1,
|
||||
"k": [
|
||||
{ "o": { "x": 0.34, "y": 1.55 }, "i": { "x": 0.65, "y": 1 }, "s": [0], "t": 0 },
|
||||
{ "s": [100], "t": 2.857142857142857 }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ind": 3,
|
||||
"parent": 1
|
||||
}
|
||||
],
|
||||
"v": "5.7.0",
|
||||
"fr": 60,
|
||||
"op": 50,
|
||||
"ip": 0,
|
||||
"assets": []
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
6
sdk/qrcode/assets/self-logo-qr.svg
Normal file
6
sdk/qrcode/assets/self-logo-qr.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="92" height="92" viewBox="0 0 92 92" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none">
|
||||
<rect x="0" y="0" width="92" height="92" fill="white"/>
|
||||
<path d="M29.4862 38.0341C29.4862 32.8577 33.6281 28.6604 38.7362 28.6604H56.599L76.3837 8.61108H27.0606L9.3623 26.5461V56.0524H29.4862V38.0237V38.0341Z" fill="black"/>
|
||||
<path d="M63.2384 36.0864V53.4903C63.2384 58.6666 59.0965 62.864 53.9884 62.864H36.8142L16.3409 83.6111H65.664L83.3623 65.6761V36.0968H63.2384V36.0864Z" fill="black"/>
|
||||
<path d="M46.3726 37.3923H46.3623C41.6113 37.3923 37.7598 41.2959 37.7598 46.1111V46.1215C37.7598 50.9367 41.6113 54.8403 46.3623 54.8403H46.3726C51.1236 54.8403 54.9751 50.9367 54.9751 46.1215V46.1111C54.9751 41.2959 51.1236 37.3923 46.3726 37.3923Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 790 B |
5
sdk/qrcode/assets/self-logo.svg
Normal file
5
sdk/qrcode/assets/self-logo.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="47" height="46" viewBox="0 0 47 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.7814 13.2168C12.7814 12.7057 13.1992 12.2969 13.7214 12.2969H30.0017L42.5676 0H11.2408L0 11.0001V29.0973H12.7814V13.2104V13.2168Z" fill="white"/>
|
||||
<path d="M34.2186 16.8515V32.3552C34.2186 32.8663 33.8008 33.2751 33.2786 33.2751H17.4357L4.43236 46H35.7592L47 34.9999V16.8579H34.2186V16.8515Z" fill="white"/>
|
||||
<path d="M28.9703 17.6525H18.0362V28.3539H28.9703V17.6525Z" fill="#00FFB6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 500 B |
@@ -1,40 +0,0 @@
|
||||
import React from 'react';
|
||||
|
||||
import { QRcodeSteps } from '../utils/utils.js';
|
||||
|
||||
interface LEDProps {
|
||||
size?: number;
|
||||
connectionStatus?: number;
|
||||
}
|
||||
|
||||
const green = '#31F040';
|
||||
const blue = '#424AD8';
|
||||
const gray = '#95a5a6';
|
||||
|
||||
const LED: React.FC<LEDProps> = ({ size = 8, connectionStatus = QRcodeSteps.DISCONNECTED }) => {
|
||||
const getColor = () => {
|
||||
if (connectionStatus >= QRcodeSteps.MOBILE_CONNECTED) {
|
||||
return green;
|
||||
} else if (connectionStatus >= QRcodeSteps.WAITING_FOR_MOBILE) {
|
||||
return blue;
|
||||
} else {
|
||||
return gray;
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
width: `${size}px`,
|
||||
height: `${size}px`,
|
||||
borderRadius: '50%',
|
||||
backgroundColor: getColor(),
|
||||
boxShadow: `0 0 ${size * 1.5}px ${getColor()}`,
|
||||
transition: 'all 0.3s ease',
|
||||
marginBottom: '8px',
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default LED;
|
||||
67
sdk/qrcode/components/QRCode.tsx
Normal file
67
sdk/qrcode/components/QRCode.tsx
Normal file
@@ -0,0 +1,67 @@
|
||||
import Lottie from 'lottie-react';
|
||||
import { QRCodeSVG } from 'qrcode.react';
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { qrAnimationOverlayStyle, qrContainerStyle } from '../utils/styles.js';
|
||||
import { getStatusAnimation, getStatusIcon, QRcodeSteps } from '../utils/utils.js';
|
||||
|
||||
const LottieComponent = Lottie.default || Lottie;
|
||||
const QR_IMAGE_SIZE_RATIO = 0.32;
|
||||
|
||||
interface QRCodeProps {
|
||||
value: string;
|
||||
size: number;
|
||||
darkMode: boolean;
|
||||
proofStep: number;
|
||||
}
|
||||
|
||||
const QRCode = memo(({ value, size, darkMode, proofStep }: QRCodeProps) => {
|
||||
const isInitialState =
|
||||
proofStep === QRcodeSteps.DISCONNECTED || proofStep === QRcodeSteps.WAITING_FOR_MOBILE;
|
||||
|
||||
const isConnectingState =
|
||||
proofStep === QRcodeSteps.MOBILE_CONNECTED ||
|
||||
proofStep === QRcodeSteps.PROOF_GENERATION_STARTED ||
|
||||
proofStep === QRcodeSteps.PROOF_GENERATED;
|
||||
|
||||
const showAnimation = !isInitialState;
|
||||
|
||||
const statusIcon = getStatusIcon(proofStep);
|
||||
const bgColor = darkMode ? '#000000' : '#ffffff';
|
||||
const fgColor = darkMode ? '#ffffff' : '#000000';
|
||||
const imageSize = size * QR_IMAGE_SIZE_RATIO;
|
||||
|
||||
return (
|
||||
<div style={qrContainerStyle(size)}>
|
||||
<QRCodeSVG
|
||||
value={value}
|
||||
size={size}
|
||||
bgColor={bgColor}
|
||||
fgColor={fgColor}
|
||||
level="H"
|
||||
imageSettings={
|
||||
statusIcon
|
||||
? {
|
||||
src: statusIcon,
|
||||
height: imageSize,
|
||||
width: imageSize,
|
||||
excavate: true,
|
||||
}
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
{showAnimation && (
|
||||
<div style={qrAnimationOverlayStyle(imageSize)}>
|
||||
{/* @ts-expect-error Lottie typings don't match the default export shape */}
|
||||
<LottieComponent
|
||||
animationData={getStatusAnimation(proofStep)}
|
||||
loop={isConnectingState}
|
||||
speed={1}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
export default QRCode;
|
||||
@@ -1,19 +1,13 @@
|
||||
import type { SelfApp } from '@selfxyz/sdk-common';
|
||||
import { getUniversalLink, REDIRECT_URL, WS_DB_RELAYER } from '@selfxyz/sdk-common';
|
||||
import Lottie from 'lottie-react';
|
||||
import { QRCodeSVG } from 'qrcode.react';
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { BounceLoader } from 'react-spinners';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import CHECK_ANIMATION from '../animations/check_animation.json' with { type: 'json' };
|
||||
import X_ANIMATION from '../animations/x_animation.json' with { type: 'json' };
|
||||
import { containerStyle, ledContainerStyle, qrContainerStyle } from '../utils/styles.js';
|
||||
import { qrWrapperStyle } from '../utils/styles.js';
|
||||
import { QRcodeSteps } from '../utils/utils.js';
|
||||
import { initWebSocket } from '../utils/websocket.js';
|
||||
import LED from './LED.js';
|
||||
|
||||
const LottieComponent = Lottie.default || Lottie;
|
||||
import QRCode from './QRCode.js';
|
||||
import StatusBanner from './StatusBanner.js';
|
||||
|
||||
interface SelfQRcodeProps {
|
||||
selfApp: SelfApp;
|
||||
@@ -23,7 +17,8 @@ interface SelfQRcodeProps {
|
||||
websocketUrl?: string;
|
||||
size?: number;
|
||||
darkMode?: boolean;
|
||||
children?: React.ReactNode;
|
||||
showBorder?: boolean;
|
||||
showStatusText?: boolean;
|
||||
}
|
||||
|
||||
const SelfQRcodeWrapper = (props: SelfQRcodeProps) => {
|
||||
@@ -46,11 +41,24 @@ const SelfQRcode = ({
|
||||
websocketUrl = WS_DB_RELAYER,
|
||||
size = 300,
|
||||
darkMode = false,
|
||||
showBorder = true,
|
||||
showStatusText = true,
|
||||
}: SelfQRcodeProps) => {
|
||||
const [proofStep, setProofStep] = useState(QRcodeSteps.WAITING_FOR_MOBILE);
|
||||
const [sessionId, setSessionId] = useState('');
|
||||
const socketRef = useRef<ReturnType<typeof initWebSocket> | null>(null);
|
||||
|
||||
// Refs for callbacks to avoid unnecessary WebSocket reconnections.
|
||||
const onSuccessRef = useRef(onSuccess);
|
||||
const onErrorRef = useRef(onError);
|
||||
const selfAppRef = useRef(selfApp);
|
||||
|
||||
useEffect(() => {
|
||||
onSuccessRef.current = onSuccess;
|
||||
onErrorRef.current = onError;
|
||||
selfAppRef.current = selfApp;
|
||||
}, [onSuccess, onError, selfApp]);
|
||||
|
||||
useEffect(() => {
|
||||
setSessionId(uuidv4());
|
||||
}, []);
|
||||
@@ -61,13 +69,13 @@ const SelfQRcode = ({
|
||||
socketRef.current = initWebSocket(
|
||||
websocketUrl,
|
||||
{
|
||||
...selfApp,
|
||||
...selfAppRef.current,
|
||||
sessionId: sessionId,
|
||||
},
|
||||
type,
|
||||
setProofStep,
|
||||
onSuccess,
|
||||
onError
|
||||
() => onSuccessRef.current(),
|
||||
(data) => onErrorRef.current(data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -78,70 +86,30 @@ const SelfQRcode = ({
|
||||
socketRef.current = null;
|
||||
}
|
||||
};
|
||||
}, [sessionId, type, websocketUrl, onSuccess, selfApp]);
|
||||
}, [sessionId, type, websocketUrl]);
|
||||
|
||||
if (!sessionId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const renderProofStatus = () => (
|
||||
<div style={containerStyle}>
|
||||
<div style={ledContainerStyle}>
|
||||
<LED connectionStatus={proofStep} />
|
||||
</div>
|
||||
<div style={qrContainerStyle(size)}>
|
||||
{(() => {
|
||||
switch (proofStep) {
|
||||
case QRcodeSteps.PROOF_GENERATION_STARTED:
|
||||
case QRcodeSteps.PROOF_GENERATED:
|
||||
return <BounceLoader loading={true} size={200} color="#94FBAB" />;
|
||||
case QRcodeSteps.PROOF_GENERATION_FAILED:
|
||||
return (
|
||||
// @ts-expect-error Lottie typings don't match the default export shape
|
||||
<LottieComponent
|
||||
animationData={X_ANIMATION}
|
||||
style={{ width: 200, height: 200 }}
|
||||
onComplete={() => {
|
||||
setProofStep(QRcodeSteps.WAITING_FOR_MOBILE);
|
||||
}}
|
||||
loop={false}
|
||||
/>
|
||||
);
|
||||
case QRcodeSteps.PROOF_VERIFIED:
|
||||
return (
|
||||
// @ts-expect-error Lottie typings don't match the default export shape
|
||||
<LottieComponent
|
||||
animationData={CHECK_ANIMATION}
|
||||
style={{ width: 200, height: 200 }}
|
||||
onComplete={() => {
|
||||
setProofStep(QRcodeSteps.WAITING_FOR_MOBILE);
|
||||
}}
|
||||
loop={false}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<QRCodeSVG
|
||||
value={
|
||||
type === 'websocket'
|
||||
? `${REDIRECT_URL}?sessionId=${sessionId}`
|
||||
: getUniversalLink({
|
||||
...selfApp,
|
||||
sessionId: sessionId,
|
||||
})
|
||||
}
|
||||
size={size}
|
||||
bgColor={darkMode ? '#000000' : '#ffffff'}
|
||||
fgColor={darkMode ? '#ffffff' : '#000000'}
|
||||
/>
|
||||
);
|
||||
}
|
||||
})()}
|
||||
</div>
|
||||
const qrValue =
|
||||
type === 'websocket'
|
||||
? `${REDIRECT_URL}?sessionId=${sessionId}`
|
||||
: getUniversalLink({
|
||||
...selfAppRef.current,
|
||||
sessionId: sessionId,
|
||||
});
|
||||
|
||||
return (
|
||||
<div
|
||||
style={qrWrapperStyle(proofStep, showBorder)}
|
||||
role="img"
|
||||
aria-label="Self authentication QR code"
|
||||
>
|
||||
<QRCode value={qrValue} size={size} darkMode={darkMode} proofStep={proofStep} />
|
||||
{showStatusText && <StatusBanner proofStep={proofStep} qrSize={size} />}
|
||||
</div>
|
||||
);
|
||||
|
||||
return <div style={containerStyle}>{renderProofStatus()}</div>;
|
||||
};
|
||||
|
||||
// Also export other components/types that might be needed
|
||||
|
||||
24
sdk/qrcode/components/StatusBanner.tsx
Normal file
24
sdk/qrcode/components/StatusBanner.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import selfLogo from '../assets/self-logo.svg';
|
||||
import { statusBannerLogoStyle, statusBannerStyle } from '../utils/styles.js';
|
||||
import { getStatusText, QRcodeSteps } from '../utils/utils.js';
|
||||
|
||||
interface StatusBannerProps {
|
||||
proofStep: number;
|
||||
qrSize: number;
|
||||
}
|
||||
|
||||
const StatusBanner = memo(({ proofStep, qrSize }: StatusBannerProps) => {
|
||||
const showLogo =
|
||||
proofStep === QRcodeSteps.DISCONNECTED || proofStep === QRcodeSteps.WAITING_FOR_MOBILE;
|
||||
|
||||
return (
|
||||
<div style={statusBannerStyle(qrSize)} role="status" aria-live="polite">
|
||||
{showLogo && <img src={selfLogo} alt="Self Logo" style={statusBannerLogoStyle} />}
|
||||
{getStatusText(proofStep)}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
export default StatusBanner;
|
||||
@@ -21,11 +21,6 @@
|
||||
"import": "./dist/esm/index.js",
|
||||
"require": "./dist/cjs/index.cjs"
|
||||
},
|
||||
"./components/LED": {
|
||||
"types": "./dist/esm/components/LED.d.ts",
|
||||
"import": "./dist/esm/components/LED.js",
|
||||
"require": "./dist/cjs/components/LED.cjs"
|
||||
},
|
||||
"./components/SelfQRcode": {
|
||||
"types": "./dist/esm/components/SelfQRcode.d.ts",
|
||||
"import": "./dist/esm/components/SelfQRcode.js",
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
},
|
||||
"include": [
|
||||
"animations",
|
||||
"assets",
|
||||
"types",
|
||||
"index.ts",
|
||||
"components/**.tsx",
|
||||
"utils/*.ts"
|
||||
|
||||
@@ -8,7 +8,6 @@ const __dirname = path.dirname(__filename);
|
||||
|
||||
const entries = {
|
||||
index: 'index.ts',
|
||||
'components/LED': 'components/LED.tsx',
|
||||
'components/SelfQRcode': 'components/SelfQRcode.tsx',
|
||||
'utils/utils': 'utils/utils.ts',
|
||||
'utils/styles': 'utils/styles.ts',
|
||||
@@ -28,6 +27,10 @@ export default defineConfig([
|
||||
sourcemap: true,
|
||||
target: 'es2020',
|
||||
platform: 'neutral',
|
||||
loader: {
|
||||
'.svg': 'dataurl',
|
||||
},
|
||||
publicDir: path.resolve(__dirname, 'assets'),
|
||||
external: [
|
||||
/^react/,
|
||||
/^react-dom/,
|
||||
@@ -50,6 +53,10 @@ export default defineConfig([
|
||||
sourcemap: true,
|
||||
target: 'es2020',
|
||||
platform: 'neutral',
|
||||
loader: {
|
||||
'.svg': 'dataurl',
|
||||
},
|
||||
publicDir: path.resolve(__dirname, 'assets'),
|
||||
external: [
|
||||
/^react/,
|
||||
/^react-dom/,
|
||||
|
||||
4
sdk/qrcode/types/svg.d.ts
vendored
Normal file
4
sdk/qrcode/types/svg.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
declare module '*.svg' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
@@ -1,22 +1,68 @@
|
||||
const containerStyle: React.CSSProperties = {
|
||||
display: 'flex',
|
||||
import React from 'react';
|
||||
|
||||
import { QRcodeSteps } from './utils.js';
|
||||
|
||||
const getBorderColor = (step: number): string => {
|
||||
switch (step) {
|
||||
case QRcodeSteps.DISCONNECTED:
|
||||
case QRcodeSteps.WAITING_FOR_MOBILE:
|
||||
return '#E2E8F0';
|
||||
case QRcodeSteps.MOBILE_CONNECTED:
|
||||
case QRcodeSteps.PROOF_GENERATION_STARTED:
|
||||
case QRcodeSteps.PROOF_GENERATED:
|
||||
return '#3B82F6';
|
||||
case QRcodeSteps.PROOF_GENERATION_FAILED:
|
||||
return '#EF4444';
|
||||
case QRcodeSteps.PROOF_VERIFIED:
|
||||
return '#01BFFF';
|
||||
default:
|
||||
return '#E2E8F0';
|
||||
}
|
||||
};
|
||||
|
||||
export const qrAnimationOverlayStyle = (imageSize: number): React.CSSProperties => ({
|
||||
position: 'absolute',
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
transform: 'translate(-50%, -50%)',
|
||||
width: imageSize,
|
||||
height: imageSize,
|
||||
pointerEvents: 'none',
|
||||
});
|
||||
|
||||
export const qrContainerStyle = (size: number): React.CSSProperties => ({
|
||||
position: 'relative',
|
||||
width: size,
|
||||
height: size,
|
||||
});
|
||||
|
||||
export const qrWrapperStyle = (step: number, showBorder: boolean = true): React.CSSProperties => ({
|
||||
display: 'inline-flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
width: '100%',
|
||||
gap: '6px',
|
||||
padding: '3px',
|
||||
borderRadius: '10px',
|
||||
border: showBorder ? `6px solid ${getBorderColor(step)}` : 'none',
|
||||
backgroundColor: '#FFF',
|
||||
transition: 'border-color 0.3s ease',
|
||||
});
|
||||
|
||||
export const statusBannerLogoStyle: React.CSSProperties = {
|
||||
width: 28,
|
||||
height: 28,
|
||||
marginRight: 8,
|
||||
};
|
||||
|
||||
const ledContainerStyle: React.CSSProperties = {
|
||||
marginBottom: '4px',
|
||||
};
|
||||
|
||||
const qrContainerStyle = (size: number): React.CSSProperties => ({
|
||||
width: `${size}px`,
|
||||
height: `${size}px`,
|
||||
export const statusBannerStyle = (qrSize: number): React.CSSProperties => ({
|
||||
backgroundColor: '#000',
|
||||
color: '#fff',
|
||||
borderRadius: '5px',
|
||||
width: qrSize,
|
||||
fontWeight: '700',
|
||||
fontSize: '18px',
|
||||
height: '50px',
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
});
|
||||
|
||||
export { containerStyle };
|
||||
export { ledContainerStyle };
|
||||
export { qrContainerStyle };
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import { statusConnecting, statusError, statusFailed, statusSuccess } from '../animations/index.js';
|
||||
import selfLogoBlack from '../assets/self-logo-qr.svg';
|
||||
|
||||
export const QRcodeSteps = {
|
||||
DISCONNECTED: 0,
|
||||
WAITING_FOR_MOBILE: 1,
|
||||
@@ -7,3 +10,47 @@ export const QRcodeSteps = {
|
||||
PROOF_GENERATED: 5,
|
||||
PROOF_VERIFIED: 6,
|
||||
};
|
||||
|
||||
export const getStatusAnimation = (proofStep: number) => {
|
||||
switch (proofStep) {
|
||||
case QRcodeSteps.MOBILE_CONNECTED:
|
||||
case QRcodeSteps.PROOF_GENERATION_STARTED:
|
||||
case QRcodeSteps.PROOF_GENERATED:
|
||||
return statusConnecting;
|
||||
case QRcodeSteps.PROOF_VERIFIED:
|
||||
return statusSuccess;
|
||||
case QRcodeSteps.PROOF_GENERATION_FAILED:
|
||||
return statusFailed;
|
||||
default:
|
||||
return statusError;
|
||||
}
|
||||
};
|
||||
|
||||
export const getStatusIcon = (proofStep: number): string => {
|
||||
switch (proofStep) {
|
||||
case QRcodeSteps.DISCONNECTED:
|
||||
case QRcodeSteps.WAITING_FOR_MOBILE:
|
||||
return selfLogoBlack;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
};
|
||||
|
||||
export const getStatusText = (proofStep: number): string => {
|
||||
switch (proofStep) {
|
||||
case QRcodeSteps.DISCONNECTED:
|
||||
case QRcodeSteps.WAITING_FOR_MOBILE:
|
||||
return 'Prove your Self';
|
||||
case QRcodeSteps.MOBILE_CONNECTED:
|
||||
case QRcodeSteps.PROOF_GENERATION_STARTED:
|
||||
return 'Connected to Self';
|
||||
case QRcodeSteps.PROOF_GENERATED:
|
||||
return 'Proof Generated';
|
||||
case QRcodeSteps.PROOF_VERIFIED:
|
||||
return 'Proof Successful';
|
||||
case QRcodeSteps.PROOF_GENERATION_FAILED:
|
||||
return 'Proof Failed';
|
||||
default:
|
||||
return 'An error occurred';
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user