Add tracking of user's network connectivity.

This commit is contained in:
Spencer Ofwiti 2021-04-02 15:31:10 +03:00
parent d914f6b2b8
commit 0aa1b83ed2
6 changed files with 340 additions and 54 deletions

241
package-lock.json generated
View File

@ -18,6 +18,7 @@
"@angular/platform-browser": "~10.2.0",
"@angular/platform-browser-dynamic": "~10.2.0",
"@angular/router": "~10.2.0",
"@angular/service-worker": "~10.2.0",
"@popperjs/core": "^2.5.4",
"angular-datatables": "^9.0.2",
"block-syncer": "^0.2.4",
@ -28,6 +29,7 @@
"datatables.net": "^1.10.22",
"datatables.net-dt": "^1.10.22",
"ethers": "^5.0.31",
"http-server": "^0.12.3",
"jquery": "^3.5.1",
"mocha": "^8.2.1",
"moolb": "^0.1.0",
@ -511,11 +513,15 @@
}
},
"node_modules/@angular/common": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.1.tgz",
"integrity": "sha512-aJtgokgWxibd7wGmktHm0uYkR/lOrbcStrn6Qisj/PIJf9xTGXYFB0yusnk103aiuBfCIKq+Wl0ZGc1s81Okaw==",
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.4.tgz",
"integrity": "sha512-bBfsLJNDQaC2OI1mReDJuSZ/uBb7Pf3HVpRmlQKNIPllIxqX1hLH8I3Plodrns9m32JMJ6FMsQthcP0KMdRCJA==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": "10.2.4",
"rxjs": "^6.5.3"
}
},
"node_modules/@angular/compiler": {
@ -770,11 +776,15 @@
}
},
"node_modules/@angular/core": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.1.tgz",
"integrity": "sha512-zt9G5Ei1nxB6yVJqpiH7K6npaiEUrPWlDCq6vwXeJbmO3tbw2WWiqD55Wkx5hRfysY43swC5j7VveNytHidkkQ==",
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.4.tgz",
"integrity": "sha512-5xpAvmZwD9nZ8eWx10urjibqEeePGEiFXVMEn3IaJWgfdOcMmeSoioW9JUllT3w85+DlNVWbRbhz0YfE9a4jyw==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"rxjs": "^6.5.3",
"zone.js": "~0.10.3"
}
},
"node_modules/@angular/forms": {
@ -817,6 +827,21 @@
"tslib": "^2.0.0"
}
},
"node_modules/@angular/service-worker": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-10.2.4.tgz",
"integrity": "sha512-1miQ5iNKPDelY11qpsU/4LyQcZce5zTRoYj8Qw7JfFQo9NG01HxcQs+FXoFbs1ZggmUIJS9L2C3++Sp9hVhu+A==",
"dependencies": {
"tslib": "^2.0.0"
},
"bin": {
"ngsw-config": "ngsw-config.js"
},
"peerDependencies": {
"@angular/common": "10.2.4",
"@angular/core": "10.2.4"
}
},
"node_modules/@babel/code-frame": {
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
@ -4030,7 +4055,6 @@
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
"dev": true,
"dependencies": {
"lodash": "^4.17.14"
}
@ -4300,6 +4324,14 @@
"node": "^4.5.0 || >= 5.9"
}
},
"node_modules/basic-auth": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz",
"integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
@ -5844,7 +5876,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true,
"engines": {
"node": ">=0.1.90"
}
@ -6188,6 +6219,14 @@
"node": ">= 0.10"
}
},
"node_modules/corser": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
"integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/cosmiconfig": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
@ -7161,6 +7200,20 @@
"safer-buffer": "^2.1.0"
}
},
"node_modules/ecstatic": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz",
"integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==",
"dependencies": {
"he": "^1.1.1",
"mime": "^1.6.0",
"minimist": "^1.1.0",
"url-join": "^2.0.5"
},
"bin": {
"ecstatic": "lib/ecstatic.js"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@ -7795,8 +7848,7 @@
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
"node_modules/events": {
"version": "3.2.0",
@ -8399,7 +8451,6 @@
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz",
"integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==",
"dev": true,
"engines": {
"node": ">=4.0"
}
@ -9088,7 +9139,6 @@
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"dependencies": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
@ -9259,6 +9309,30 @@
"node": ">=0.10.0"
}
},
"node_modules/http-server": {
"version": "0.12.3",
"resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz",
"integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==",
"dependencies": {
"basic-auth": "^1.0.3",
"colors": "^1.4.0",
"corser": "^2.0.1",
"ecstatic": "^3.3.2",
"http-proxy": "^1.18.0",
"minimist": "^1.2.5",
"opener": "^1.5.1",
"portfinder": "^1.0.25",
"secure-compare": "3.0.1",
"union": "~0.5.0"
},
"bin": {
"hs": "bin/http-server",
"http-server": "bin/http-server"
},
"engines": {
"node": ">=6"
}
},
"node_modules/http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@ -13377,6 +13451,14 @@
"node": ">=8"
}
},
"node_modules/opener": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
"integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
"bin": {
"opener": "bin/opener-bin.js"
}
},
"node_modules/openpgp": {
"version": "4.10.10",
"resolved": "https://registry.npmjs.org/openpgp/-/openpgp-4.10.10.tgz",
@ -14128,7 +14210,6 @@
"version": "1.0.28",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
"integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
"dev": true,
"dependencies": {
"async": "^2.6.2",
"debug": "^3.1.1",
@ -14142,7 +14223,6 @@
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"dependencies": {
"ms": "^2.1.1"
}
@ -15928,8 +16008,7 @@
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"node_modules/resolve": {
"version": "1.18.1",
@ -16344,6 +16423,11 @@
"node": ">=10.0.0"
}
},
"node_modules/secure-compare": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
"integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM="
},
"node_modules/select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@ -18416,6 +18500,17 @@
"node": ">=4"
}
},
"node_modules/union": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
"integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==",
"dependencies": {
"qs": "^6.4.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@ -18574,6 +18669,11 @@
"querystring": "0.2.0"
}
},
"node_modules/url-join": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz",
"integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg="
},
"node_modules/url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
@ -20620,9 +20720,9 @@
}
},
"node_modules/y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
},
"node_modules/yaeti": {
"version": "0.0.6",
@ -21077,9 +21177,9 @@
}
},
"@angular/common": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.1.tgz",
"integrity": "sha512-aJtgokgWxibd7wGmktHm0uYkR/lOrbcStrn6Qisj/PIJf9xTGXYFB0yusnk103aiuBfCIKq+Wl0ZGc1s81Okaw==",
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.4.tgz",
"integrity": "sha512-bBfsLJNDQaC2OI1mReDJuSZ/uBb7Pf3HVpRmlQKNIPllIxqX1hLH8I3Plodrns9m32JMJ6FMsQthcP0KMdRCJA==",
"requires": {
"tslib": "^2.0.0"
}
@ -21281,9 +21381,9 @@
}
},
"@angular/core": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.1.tgz",
"integrity": "sha512-zt9G5Ei1nxB6yVJqpiH7K6npaiEUrPWlDCq6vwXeJbmO3tbw2WWiqD55Wkx5hRfysY43swC5j7VveNytHidkkQ==",
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.4.tgz",
"integrity": "sha512-5xpAvmZwD9nZ8eWx10urjibqEeePGEiFXVMEn3IaJWgfdOcMmeSoioW9JUllT3w85+DlNVWbRbhz0YfE9a4jyw==",
"requires": {
"tslib": "^2.0.0"
}
@ -21328,6 +21428,14 @@
"tslib": "^2.0.0"
}
},
"@angular/service-worker": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-10.2.4.tgz",
"integrity": "sha512-1miQ5iNKPDelY11qpsU/4LyQcZce5zTRoYj8Qw7JfFQo9NG01HxcQs+FXoFbs1ZggmUIJS9L2C3++Sp9hVhu+A==",
"requires": {
"tslib": "^2.0.0"
}
},
"@babel/code-frame": {
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
@ -24145,7 +24253,6 @@
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
"dev": true,
"requires": {
"lodash": "^4.17.14"
}
@ -24371,6 +24478,11 @@
"integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
"dev": true
},
"basic-auth": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz",
"integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ="
},
"batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
@ -25689,8 +25801,7 @@
"colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
},
"combined-stream": {
"version": "1.0.8",
@ -25991,6 +26102,11 @@
"vary": "^1"
}
},
"corser": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
"integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c="
},
"cosmiconfig": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
@ -26812,6 +26928,17 @@
"safer-buffer": "^2.1.0"
}
},
"ecstatic": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz",
"integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==",
"requires": {
"he": "^1.1.1",
"mime": "^1.6.0",
"minimist": "^1.1.0",
"url-join": "^2.0.5"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@ -27374,8 +27501,7 @@
"eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
"events": {
"version": "3.2.0",
@ -27884,8 +28010,7 @@
"follow-redirects": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz",
"integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==",
"dev": true
"integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA=="
},
"for-in": {
"version": "1.0.2",
@ -28462,7 +28587,6 @@
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"requires": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
@ -28610,6 +28734,23 @@
}
}
},
"http-server": {
"version": "0.12.3",
"resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz",
"integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==",
"requires": {
"basic-auth": "^1.0.3",
"colors": "^1.4.0",
"corser": "^2.0.1",
"ecstatic": "^3.3.2",
"http-proxy": "^1.18.0",
"minimist": "^1.2.5",
"opener": "^1.5.1",
"portfinder": "^1.0.25",
"secure-compare": "3.0.1",
"union": "~0.5.0"
}
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@ -31953,6 +32094,11 @@
"is-wsl": "^2.1.1"
}
},
"opener": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
"integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A=="
},
"openpgp": {
"version": "4.10.10",
"resolved": "https://registry.npmjs.org/openpgp/-/openpgp-4.10.10.tgz",
@ -32578,7 +32724,6 @@
"version": "1.0.28",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
"integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
"dev": true,
"requires": {
"async": "^2.6.2",
"debug": "^3.1.1",
@ -32589,7 +32734,6 @@
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
@ -34100,8 +34244,7 @@
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"resolve": {
"version": "1.18.1",
@ -34444,6 +34587,11 @@
"node-gyp-build": "^4.2.0"
}
},
"secure-compare": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
"integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM="
},
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@ -36202,6 +36350,14 @@
"integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
"dev": true
},
"union": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
"integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==",
"requires": {
"qs": "^6.4.0"
}
},
"union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@ -36347,6 +36503,11 @@
}
}
},
"url-join": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz",
"integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg="
},
"url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
@ -38098,9 +38259,9 @@
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
},
"yaeti": {
"version": "0.0.6",

View File

@ -1 +1,9 @@
<nav class="navbar navbar-dark bg-dark">
<h1 class="navbar-brand">
<strong *ngIf="noInternetConnection" style="color: red;">OFFLINE </strong>
<img *ngIf="noInternetConnection" width="20rem" src="assets/images/no-wifi.svg" alt="Internet Disconnected">
<strong *ngIf="!noInternetConnection" style="color: lawngreen;">ONLINE </strong>
<img *ngIf="!noInternetConnection" width="20rem" src="assets/images/wifi.svg" alt="Internet Connected">
</h1>
</nav>
<router-outlet (activate)="onResize(mediaQuery)"></router-outlet>

View File

@ -14,14 +14,16 @@ export class AppComponent implements OnInit {
readyStateTarget: number = 3;
readyState: number = 0;
mediaQuery = window.matchMedia('(max-width: 768px)');
noInternetConnection: boolean;
constructor(
private authService: AuthService,
private transactionService: TransactionService,
private loggingService: LoggingService,
private errorDialogService: ErrorDialogService
private errorDialogService: ErrorDialogService,
private swUpdate: SwUpdate
) {
this.handleNetworkChange();
(async () => {
await this.authService.mutableKeyStore.loadKeyring();
this.authService.getPublicKeys()
@ -80,4 +82,13 @@ export class AppComponent implements OnInit {
const conversion = event.detail.tx;
await this.transactionService.setConversion(conversion, 100);
}
handleNetworkChange(): void {
if (navigator.onLine) {
this.noInternetConnection = false;
} else {
this.noInternetConnection = true;
}
console.log(this.noInternetConnection);
}
}

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 512.115 512.115" style="enable-background:new 0 0 512.115 512.115;" xml:space="preserve" width="512" height="512">
<g>
<g>
<circle style="fill:#29B6F6;" cx="255.998" cy="374.496" r="32.133"/>
</g>
<g>
<path style="fill:#0288D1;" d="M259.46,342.551c20.068,21.447,2.961,57.089-26.924,53.889 c19.876,21.242,55.595,7.028,55.595-21.944C288.131,357.92,275.578,344.279,259.46,342.551z"/>
</g>
<g>
<path style="fill:#29B6F6;" d="M346.922,272.908c-14.694-11.793-31.719-20.793-50.261-26.198l28.056-28.056 c16.135,6.633,31.112,15.523,44.53,26.284c8.351,6.698,9.121,19.122,1.552,26.692C364.338,278.09,354.061,278.637,346.922,272.908 z M142.75,244.938c-8.351,6.698-9.122,19.122-1.552,26.692c6.109,6.254,16.525,7.178,23.876,1.278 c20.705-16.617,46.037-27.689,73.723-30.964l35.859-35.859C226.255,201.114,179.36,215.576,142.75,244.938z M300.683,180.058 l29.253-29.253c-79.639-25.044-168.342-8.412-234.2,47.892c-7.97,6.814-8.541,18.928-1.127,26.343 c6.568,6.568,17.121,7.079,24.173,1.035C169.978,182.203,237.359,166.36,300.683,180.058z M417.388,225.04L417.388,225.04 c7.415-7.415,6.844-19.529-1.127-26.343c-13.028-11.138-27.232-20.936-42.385-29.203l-26.573,26.573 c16.623,8.005,32.044,18.125,45.912,30.008C400.267,232.119,410.82,231.608,417.388,225.04z M301.029,320.497 c6.604,4.525,15.912,4.623,22.908-2.005c7.88-7.88,6.751-21.016-2.422-27.343c-14.592-10.065-31.606-16.847-49.967-19.326 l-37.95,37.95C255.78,303.279,280.628,306.519,301.029,320.497z"/>
</g>
<g>
<path style="fill:#0288D1;" d="M416.261,198.697c-13.028-11.138-27.232-20.936-42.385-29.203l-7.388,7.388 c10.471,6.54,20.429,13.825,29.774,21.814c9.055,7.741,8.317,21.88-1.529,28.533c6.982,4.781,16.543,3.922,22.655-2.19v0 C424.802,217.626,424.231,205.511,416.261,198.697z"/>
</g>
<g>
<path style="fill:#0288D1;" d="M369.247,244.938c-13.418-10.761-28.395-19.651-44.53-26.284l-6.327,6.327 c10.973,5.621,21.316,12.306,30.857,19.957c9.462,7.589,8.937,22.091-1.089,28.871c7.054,4.744,16.544,3.917,22.64-2.178 C378.368,264.06,377.598,251.635,369.247,244.938z"/>
</g>
<g>
<path style="fill:#0288D1;" d="M321.515,291.148c-14.592-10.065-31.606-16.847-49.967-19.326l-3.48,3.48 c12.072,3.483,23.341,8.875,33.447,15.846c10.331,7.126,10.2,22.482-0.221,29.513c6.595,4.357,15.745,4.365,22.643-2.17 C331.817,310.612,330.688,297.475,321.515,291.148z"/>
</g>
<path style="fill:#FF7043;" d="M437.077,75.038c-100.046-100.044-261.982-100.057-362.039,0 c-100.044,100.042-100.058,261.98,0,362.039c100.046,100.044,261.981,100.057,362.04,0 C537.121,337.031,537.135,175.096,437.077,75.038z M411.392,142.645c1.856-1.856,4.94-1.582,6.444,0.568 c54.271,77.582,45.249,184.719-22.326,252.297c-67.579,67.576-174.715,76.599-252.298,22.326c-2.15-1.504-2.423-4.589-0.568-6.444 L411.392,142.645z M94.274,368.912C5.205,241.953,93.085,58.843,256.057,58.843c40.925,0,79.777,12.225,112.855,35.431 c2.147,1.506,2.42,4.588,0.565,6.443L100.717,369.478C98.862,371.332,95.78,371.059,94.274,368.912z"/>
<path style="fill:#E64A19;" d="M349.926,17.756c141.317,87.019,164.005,282.465,47.152,399.321 c-74.64,74.638-183.463,93.269-274.888,57.282c97.36,59.953,228.457,49.147,314.888-37.282 C568.531,305.621,519.601,84.544,349.926,17.756z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 511.999 511.999" style="enable-background:new 0 0 511.999 511.999;" xml:space="preserve">
<g>
<path style="fill:#1DE8F1;" d="M492.177,102.686C424.371,55.882,342.761,30.98,256.657,30.98h-1.501
c-85.808,0.3-167.516,25.203-235.324,71.707c-10.497,7.501-17.701,18.902-19.499,31.503c-1.501,12.3,2.098,24.903,10.2,34.504
c15.301,18.001,42.305,21.601,61.504,8.1c52.505-36.302,116.214-55.504,183.119-55.805h1.501
c67.206,0,130.808,19.202,183.313,55.805c19.506,13.501,46.505,9.902,61.507-8.1C518.58,148.59,514.379,117.988,492.177,102.686z"
/>
<path style="fill:#1DE8F1;" d="M402.169,195.994c-42.906-29.402-93.609-45.004-147.014-45.004s-105.109,15.602-147.714,45.004
C85.84,210.695,82.24,241.298,98.142,261.4c14.1,18.003,39.302,21.901,58.203,9.001c28.201-19.201,64.009-28.802,98.809-28.802
s69.608,9.601,97.809,28.802c19.202,12.901,44.103,9.002,58.504-9.001C427.37,240.998,423.169,210.395,402.169,195.994z"/>
<path style="fill:#1DE8F1;" d="M325.66,286.903c-21.301-10.502-45.901-15.602-70.505-15.602s-50.205,5.099-71.506,15.602
c-15.902,7.501-24.901,23.701-24.901,40.203c0,9.902,3.296,20.101,10.196,28.503c13.203,16.201,36.705,21.303,54.706,12.3
c9.303-4.499,20.404-6.9,31.504-6.9c11.101,0,22.202,2.401,31.504,6.9c18.001,9.002,40.503,3.9,53.706-12.3
C358.663,333.108,351.463,299.203,325.66,286.903z"/>
<path style="fill:#1DE8F1;" d="M255.155,391.012c-24.904,0-46.004,20.101-46.004,45.004s21.1,45.004,46.004,45.004
s45.004-20.101,45.004-45.004S280.06,391.012,255.155,391.012z"/>
</g>
<g>
<path style="fill:#1BD9DE;" d="M300.159,436.016c0,24.903-20.1,45.004-45.004,45.004v-90.008
C280.06,391.012,300.159,411.114,300.159,436.016z"/>
<path style="fill:#1BD9DE;" d="M340.365,355.61c-13.203,16.201-35.705,21.303-53.706,12.3c-9.303-4.499-20.404-6.9-31.504-6.9
v-89.708c24.604,0,49.205,5.099,70.505,15.602C351.463,299.203,358.663,333.108,340.365,355.61z"/>
<path style="fill:#1BD9DE;" d="M411.468,261.4c-14.4,18.003-39.302,21.901-58.504,9.001
c-28.201-19.201-63.009-28.802-97.809-28.802V150.99c53.406,0,104.109,15.602,147.014,45.004
C423.169,210.395,427.37,240.998,411.468,261.4z"/>
<path style="fill:#1BD9DE;" d="M501.476,168.693c-15.001,18.001-42.001,21.601-61.507,8.1
c-52.505-36.602-116.107-55.805-183.313-55.805h-1.501V30.979h1.501c86.104,0,167.714,24.903,235.521,71.707
C514.379,117.988,518.58,148.59,501.476,168.693z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -2,11 +2,21 @@
@import "~bootstrap/dist/css/bootstrap.css";
@import "https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap";
html, body { height: 100%; }
body {
font-family: 'Roboto', sans-serif;
margin: 0;
font-family: Roboto, 'Roboto', "Helvetica Neue", sans-serif;
background: #fafafa;
}
.full-width, table {
width: 100%;
}
.bg-dark {
background: #313a46;
}
p {
font-family: 'Roboto', sans-serif;
font-size: 1.1em;
@ -136,7 +146,10 @@ a, a:hover, a:focus {
ul ul a {
font-size: 0.9em !important;
padding-left: 30px !important;
background: #6d7fcc;
}
li.breadcrumb-item.active, footer.footer {
color: black;
}
a[data-toggle="collapse"] {
@ -345,14 +358,3 @@ button {
}
}
html, body { height: 100%; }
body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }
.full-width, table {
width: 100%;
}
li.breadcrumb-item.active, footer.footer {
color: black;
}