added fontawsome localy
@ -70,11 +70,10 @@ app.use('/api/user', middleware.auth, require('./routes/user'));
|
|||||||
|
|
||||||
app.use('/api/token', middleware.auth, require('./routes/token'));
|
app.use('/api/token', middleware.auth, require('./routes/token'));
|
||||||
|
|
||||||
(async function(){
|
if(app.conf.proxmox){
|
||||||
|
(async function(){
|
||||||
app.api = await pvejs(app.conf.proxmox);
|
app.api = await pvejs(app.conf.proxmox);
|
||||||
})()
|
setInterval(async function(){
|
||||||
|
|
||||||
setInterval(async function(){
|
|
||||||
try{
|
try{
|
||||||
let res = await app.api.GET({path: '/cluster/resources'});
|
let res = await app.api.GET({path: '/cluster/resources'});
|
||||||
let types = {};
|
let types = {};
|
||||||
@ -92,7 +91,11 @@ setInterval(async function(){
|
|||||||
console.error('proxmox pub', error)
|
console.error('proxmox pub', error)
|
||||||
}
|
}
|
||||||
|
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
})()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Catch 404 and forward to error handler. If none of the above routes are
|
// Catch 404 and forward to error handler. If none of the above routes are
|
||||||
// used, this is what will be called.
|
// used, this is what will be called.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
userModel: 'ldap', // pam, redis, ldap
|
userModel: 'ldap', // pam, redis, ldap
|
||||||
ldap: {
|
ldap: {
|
||||||
url: 'ldap://192.168.1.55:389,
|
url: 'ldap://192.168.1.55:389',
|
||||||
bindDN: 'cn=ldapclient service,ou=people,dc=theta42,dc=com',
|
bindDN: 'cn=ldapclient service,ou=people,dc=theta42,dc=com',
|
||||||
bindPassword: '__IN SRECREST FILE__',
|
bindPassword: '__IN SRECREST FILE__',
|
||||||
userBase: 'ou=people,dc=theta42,dc=com',
|
userBase: 'ou=people,dc=theta42,dc=com',
|
||||||
@ -14,13 +14,13 @@ module.exports = {
|
|||||||
p2p: {
|
p2p: {
|
||||||
listenPort: 7575
|
listenPort: 7575
|
||||||
},
|
},
|
||||||
proxmox: {
|
// proxmox: {
|
||||||
host: "__IN SRECREST FILE__",//this can be an ip or FQDN
|
// host: "__IN SRECREST FILE__",//this can be an ip or FQDN
|
||||||
authInfo: {
|
// authInfo: {
|
||||||
username: "__IN SRECREST FILE__",//this must include the username@realm
|
// username: "__IN SRECREST FILE__",//this must include the username@realm
|
||||||
apiToken: "__IN SRECREST FILE__"//In the future, i would like this to be encrypted
|
// apiToken: "__IN SRECREST FILE__"//In the future, i would like this to be encrypted
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
vpnSite: {
|
vpnSite: {
|
||||||
id: "__IN SRECREST FILE__",
|
id: "__IN SRECREST FILE__",
|
||||||
name: "__IN SRECREST FILE__",
|
name: "__IN SRECREST FILE__",
|
||||||
|
12749
nodejs/public/css/all.css
Normal file
5
nodejs/public/css/all.min.css
vendored
Normal file
15
nodejs/public/css/brands.css
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-brands-400.eot");
|
||||||
|
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-weight: 400; }
|
5
nodejs/public/css/brands.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
|
5603
nodejs/public/css/duotone.css
Normal file
5
nodejs/public/css/duotone.min.css
vendored
Normal file
7105
nodejs/public/css/fontawesome.css
vendored
Normal file
5
nodejs/public/css/fontawesome.min.css
vendored
Normal file
15
nodejs/public/css/light.css
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-light-300.eot");
|
||||||
|
src: url("../webfonts/fa-light-300.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-light-300.woff2") format("woff2"), url("../webfonts/fa-light-300.woff") format("woff"), url("../webfonts/fa-light-300.ttf") format("truetype"), url("../webfonts/fa-light-300.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.fal {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 300; }
|
5
nodejs/public/css/light.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:300;font-display:block;src:url(../webfonts/fa-light-300.eot);src:url(../webfonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.woff) format("woff"),url(../webfonts/fa-light-300.ttf) format("truetype"),url(../webfonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:"Font Awesome 5 Pro";font-weight:300}
|
15
nodejs/public/css/regular.css
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-regular-400.eot");
|
||||||
|
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.far {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 400; }
|
5
nodejs/public/css/regular.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Pro";font-weight:400}
|
16
nodejs/public/css/solid.css
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-solid-900.eot");
|
||||||
|
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
|
||||||
|
|
||||||
|
.fa,
|
||||||
|
.fas {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 900; }
|
5
nodejs/public/css/solid.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}
|
371
nodejs/public/css/svg-with-js.css
Normal file
@ -0,0 +1,371 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
svg:not(:root).svg-inline--fa {
|
||||||
|
overflow: visible; }
|
||||||
|
|
||||||
|
.svg-inline--fa {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: inherit;
|
||||||
|
height: 1em;
|
||||||
|
overflow: visible;
|
||||||
|
vertical-align: -.125em; }
|
||||||
|
.svg-inline--fa.fa-lg {
|
||||||
|
vertical-align: -.225em; }
|
||||||
|
.svg-inline--fa.fa-w-1 {
|
||||||
|
width: 0.0625em; }
|
||||||
|
.svg-inline--fa.fa-w-2 {
|
||||||
|
width: 0.125em; }
|
||||||
|
.svg-inline--fa.fa-w-3 {
|
||||||
|
width: 0.1875em; }
|
||||||
|
.svg-inline--fa.fa-w-4 {
|
||||||
|
width: 0.25em; }
|
||||||
|
.svg-inline--fa.fa-w-5 {
|
||||||
|
width: 0.3125em; }
|
||||||
|
.svg-inline--fa.fa-w-6 {
|
||||||
|
width: 0.375em; }
|
||||||
|
.svg-inline--fa.fa-w-7 {
|
||||||
|
width: 0.4375em; }
|
||||||
|
.svg-inline--fa.fa-w-8 {
|
||||||
|
width: 0.5em; }
|
||||||
|
.svg-inline--fa.fa-w-9 {
|
||||||
|
width: 0.5625em; }
|
||||||
|
.svg-inline--fa.fa-w-10 {
|
||||||
|
width: 0.625em; }
|
||||||
|
.svg-inline--fa.fa-w-11 {
|
||||||
|
width: 0.6875em; }
|
||||||
|
.svg-inline--fa.fa-w-12 {
|
||||||
|
width: 0.75em; }
|
||||||
|
.svg-inline--fa.fa-w-13 {
|
||||||
|
width: 0.8125em; }
|
||||||
|
.svg-inline--fa.fa-w-14 {
|
||||||
|
width: 0.875em; }
|
||||||
|
.svg-inline--fa.fa-w-15 {
|
||||||
|
width: 0.9375em; }
|
||||||
|
.svg-inline--fa.fa-w-16 {
|
||||||
|
width: 1em; }
|
||||||
|
.svg-inline--fa.fa-w-17 {
|
||||||
|
width: 1.0625em; }
|
||||||
|
.svg-inline--fa.fa-w-18 {
|
||||||
|
width: 1.125em; }
|
||||||
|
.svg-inline--fa.fa-w-19 {
|
||||||
|
width: 1.1875em; }
|
||||||
|
.svg-inline--fa.fa-w-20 {
|
||||||
|
width: 1.25em; }
|
||||||
|
.svg-inline--fa.fa-pull-left {
|
||||||
|
margin-right: .3em;
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-pull-right {
|
||||||
|
margin-left: .3em;
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-border {
|
||||||
|
height: 1.5em; }
|
||||||
|
.svg-inline--fa.fa-li {
|
||||||
|
width: 2em; }
|
||||||
|
.svg-inline--fa.fa-fw {
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.fa-layers {
|
||||||
|
display: inline-block;
|
||||||
|
height: 1em;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: -.125em;
|
||||||
|
width: 1em; }
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-text, .fa-layers-counter {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fa-layers-text {
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-counter {
|
||||||
|
background-color: #ff253a;
|
||||||
|
border-radius: 1em;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #fff;
|
||||||
|
height: 1.5em;
|
||||||
|
line-height: 1;
|
||||||
|
max-width: 5em;
|
||||||
|
min-width: 1.5em;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: .25em;
|
||||||
|
right: 0;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
top: 0;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-right {
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
top: auto;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: bottom right;
|
||||||
|
transform-origin: bottom right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-left {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
top: auto;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: bottom left;
|
||||||
|
transform-origin: bottom left; }
|
||||||
|
|
||||||
|
.fa-layers-top-right {
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-top-left {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
top: 0;
|
||||||
|
-webkit-transform: scale(0.25);
|
||||||
|
transform: scale(0.25);
|
||||||
|
-webkit-transform-origin: top left;
|
||||||
|
transform-origin: top left; }
|
||||||
|
|
||||||
|
.fa-lg {
|
||||||
|
font-size: 1.33333em;
|
||||||
|
line-height: 0.75em;
|
||||||
|
vertical-align: -.0667em; }
|
||||||
|
|
||||||
|
.fa-xs {
|
||||||
|
font-size: .75em; }
|
||||||
|
|
||||||
|
.fa-sm {
|
||||||
|
font-size: .875em; }
|
||||||
|
|
||||||
|
.fa-1x {
|
||||||
|
font-size: 1em; }
|
||||||
|
|
||||||
|
.fa-2x {
|
||||||
|
font-size: 2em; }
|
||||||
|
|
||||||
|
.fa-3x {
|
||||||
|
font-size: 3em; }
|
||||||
|
|
||||||
|
.fa-4x {
|
||||||
|
font-size: 4em; }
|
||||||
|
|
||||||
|
.fa-5x {
|
||||||
|
font-size: 5em; }
|
||||||
|
|
||||||
|
.fa-6x {
|
||||||
|
font-size: 6em; }
|
||||||
|
|
||||||
|
.fa-7x {
|
||||||
|
font-size: 7em; }
|
||||||
|
|
||||||
|
.fa-8x {
|
||||||
|
font-size: 8em; }
|
||||||
|
|
||||||
|
.fa-9x {
|
||||||
|
font-size: 9em; }
|
||||||
|
|
||||||
|
.fa-10x {
|
||||||
|
font-size: 10em; }
|
||||||
|
|
||||||
|
.fa-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.fa-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: 2.5em;
|
||||||
|
padding-left: 0; }
|
||||||
|
.fa-ul > li {
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
.fa-li {
|
||||||
|
left: -2em;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 2em;
|
||||||
|
line-height: inherit; }
|
||||||
|
|
||||||
|
.fa-border {
|
||||||
|
border: solid 0.08em #eee;
|
||||||
|
border-radius: .1em;
|
||||||
|
padding: .2em .25em .15em; }
|
||||||
|
|
||||||
|
.fa-pull-left {
|
||||||
|
float: left; }
|
||||||
|
|
||||||
|
.fa-pull-right {
|
||||||
|
float: right; }
|
||||||
|
|
||||||
|
.fa.fa-pull-left,
|
||||||
|
.fas.fa-pull-left,
|
||||||
|
.far.fa-pull-left,
|
||||||
|
.fal.fa-pull-left,
|
||||||
|
.fab.fa-pull-left {
|
||||||
|
margin-right: .3em; }
|
||||||
|
|
||||||
|
.fa.fa-pull-right,
|
||||||
|
.fas.fa-pull-right,
|
||||||
|
.far.fa-pull-right,
|
||||||
|
.fal.fa-pull-right,
|
||||||
|
.fab.fa-pull-right {
|
||||||
|
margin-left: .3em; }
|
||||||
|
|
||||||
|
.fa-spin {
|
||||||
|
-webkit-animation: fa-spin 2s infinite linear;
|
||||||
|
animation: fa-spin 2s infinite linear; }
|
||||||
|
|
||||||
|
.fa-pulse {
|
||||||
|
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||||
|
animation: fa-spin 1s infinite steps(8); }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
.fa-rotate-90 {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
||||||
|
-webkit-transform: rotate(90deg);
|
||||||
|
transform: rotate(90deg); }
|
||||||
|
|
||||||
|
.fa-rotate-180 {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
transform: rotate(180deg); }
|
||||||
|
|
||||||
|
.fa-rotate-270 {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
||||||
|
-webkit-transform: rotate(270deg);
|
||||||
|
transform: rotate(270deg); }
|
||||||
|
|
||||||
|
.fa-flip-horizontal {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
||||||
|
-webkit-transform: scale(-1, 1);
|
||||||
|
transform: scale(-1, 1); }
|
||||||
|
|
||||||
|
.fa-flip-vertical {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||||
|
-webkit-transform: scale(1, -1);
|
||||||
|
transform: scale(1, -1); }
|
||||||
|
|
||||||
|
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||||
|
-webkit-transform: scale(-1, -1);
|
||||||
|
transform: scale(-1, -1); }
|
||||||
|
|
||||||
|
:root .fa-rotate-90,
|
||||||
|
:root .fa-rotate-180,
|
||||||
|
:root .fa-rotate-270,
|
||||||
|
:root .fa-flip-horizontal,
|
||||||
|
:root .fa-flip-vertical,
|
||||||
|
:root .fa-flip-both {
|
||||||
|
-webkit-filter: none;
|
||||||
|
filter: none; }
|
||||||
|
|
||||||
|
.fa-stack {
|
||||||
|
display: inline-block;
|
||||||
|
height: 2em;
|
||||||
|
position: relative;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-stack-1x,
|
||||||
|
.fa-stack-2x {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-1x {
|
||||||
|
height: 1em;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-2x {
|
||||||
|
height: 2em;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-inverse {
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.sr-only {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px; }
|
||||||
|
|
||||||
|
.sr-only-focusable:active, .sr-only-focusable:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto; }
|
||||||
|
|
||||||
|
.svg-inline--fa .fa-primary {
|
||||||
|
fill: var(--fa-primary-color, currentColor);
|
||||||
|
opacity: 1;
|
||||||
|
opacity: var(--fa-primary-opacity, 1); }
|
||||||
|
|
||||||
|
.svg-inline--fa .fa-secondary {
|
||||||
|
fill: var(--fa-secondary-color, currentColor);
|
||||||
|
opacity: 0.4;
|
||||||
|
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-swap-opacity .fa-primary {
|
||||||
|
opacity: 0.4;
|
||||||
|
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-swap-opacity .fa-secondary {
|
||||||
|
opacity: 1;
|
||||||
|
opacity: var(--fa-primary-opacity, 1); }
|
||||||
|
|
||||||
|
.svg-inline--fa mask .fa-primary,
|
||||||
|
.svg-inline--fa mask .fa-secondary {
|
||||||
|
fill: black; }
|
||||||
|
|
||||||
|
.fad.fa-inverse {
|
||||||
|
color: #fff; }
|
5
nodejs/public/css/svg-with-js.min.css
vendored
Normal file
2172
nodejs/public/css/v4-shims.css
Normal file
5
nodejs/public/css/v4-shims.min.css
vendored
Normal file
10951
nodejs/public/js/all.js
Normal file
5
nodejs/public/js/all.min.js
vendored
Normal file
577
nodejs/public/js/brands.js
Normal file
5
nodejs/public/js/brands.min.js
vendored
Normal file
998
nodejs/public/js/conflict-detection.js
Normal file
@ -0,0 +1,998 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||||
|
(factory((global['fontawesome-pro-conflict-detection'] = {})));
|
||||||
|
}(this, (function (exports) { 'use strict';
|
||||||
|
|
||||||
|
function _typeof(obj) {
|
||||||
|
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
||||||
|
_typeof = function (obj) {
|
||||||
|
return typeof obj;
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
_typeof = function (obj) {
|
||||||
|
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return _typeof(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _WINDOW = {};
|
||||||
|
var _DOCUMENT = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (typeof window !== 'undefined') _WINDOW = window;
|
||||||
|
if (typeof document !== 'undefined') _DOCUMENT = document;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
var _ref = _WINDOW.navigator || {},
|
||||||
|
_ref$userAgent = _ref.userAgent,
|
||||||
|
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
|
||||||
|
|
||||||
|
var WINDOW = _WINDOW;
|
||||||
|
var DOCUMENT = _DOCUMENT;
|
||||||
|
var IS_BROWSER = !!WINDOW.document;
|
||||||
|
var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
|
||||||
|
var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
|
||||||
|
|
||||||
|
var functions = [];
|
||||||
|
|
||||||
|
var listener = function listener() {
|
||||||
|
DOCUMENT.removeEventListener('DOMContentLoaded', listener);
|
||||||
|
loaded = 1;
|
||||||
|
functions.map(function (fn) {
|
||||||
|
return fn();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var loaded = false;
|
||||||
|
|
||||||
|
if (IS_DOM) {
|
||||||
|
loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
|
||||||
|
if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
function domready (fn) {
|
||||||
|
if (!IS_DOM) return;
|
||||||
|
loaded ? setTimeout(fn, 0) : functions.push(fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
function report (_ref) {
|
||||||
|
var nodesTested = _ref.nodesTested,
|
||||||
|
nodesFound = _ref.nodesFound;
|
||||||
|
var timedOutTests = {};
|
||||||
|
|
||||||
|
for (var key in nodesFound) {
|
||||||
|
if (!(nodesTested.conflict[key] || nodesTested.noConflict[key])) {
|
||||||
|
timedOutTests[key] = nodesFound[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var conflictsCount = Object.keys(nodesTested.conflict).length;
|
||||||
|
|
||||||
|
if (conflictsCount > 0) {
|
||||||
|
console.info("%cConflict".concat(conflictsCount > 1 ? 's' : '', " found:"), 'color: darkred; font-size: large');
|
||||||
|
var data = {};
|
||||||
|
|
||||||
|
for (var _key in nodesTested.conflict) {
|
||||||
|
var item = nodesTested.conflict[_key];
|
||||||
|
data[_key] = {
|
||||||
|
'tagName': item.tagName,
|
||||||
|
'src/href': item.src || item.href || 'n/a',
|
||||||
|
'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
console.table(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
var noConflictsCount = Object.keys(nodesTested.noConflict).length;
|
||||||
|
|
||||||
|
if (noConflictsCount > 0) {
|
||||||
|
console.info("%cNo conflict".concat(noConflictsCount > 1 ? 's' : '', " found with ").concat(noConflictsCount == 1 ? 'this' : 'these', ":"), 'color: green; font-size: large');
|
||||||
|
var _data = {};
|
||||||
|
|
||||||
|
for (var _key2 in nodesTested.noConflict) {
|
||||||
|
var _item = nodesTested.noConflict[_key2];
|
||||||
|
_data[_key2] = {
|
||||||
|
'tagName': _item.tagName,
|
||||||
|
'src/href': _item.src || _item.href || 'n/a',
|
||||||
|
'innerText excerpt': _item.innerText && _item.innerText !== '' ? _item.innerText.slice(0, 200) + '...' : '(empty)'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
console.table(_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
var timeOutCount = Object.keys(timedOutTests).length;
|
||||||
|
|
||||||
|
if (timeOutCount > 0) {
|
||||||
|
console.info("%cLeftovers--we timed out before collecting test results for ".concat(timeOutCount == 1 ? 'this' : 'these', ":"), 'color: blue; font-size: large');
|
||||||
|
var _data2 = {};
|
||||||
|
|
||||||
|
for (var _key3 in timedOutTests) {
|
||||||
|
var _item2 = timedOutTests[_key3];
|
||||||
|
_data2[_key3] = {
|
||||||
|
'tagName': _item2.tagName,
|
||||||
|
'src/href': _item2.src || _item2.href || 'n/a',
|
||||||
|
'innerText excerpt': _item2.innerText && _item2.innerText !== '' ? _item2.innerText.slice(0, 200) + '...' : '(empty)'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
console.table(_data2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
||||||
|
|
||||||
|
function createCommonjsModule(fn, module) {
|
||||||
|
return module = { exports: {} }, fn(module, module.exports), module.exports;
|
||||||
|
}
|
||||||
|
|
||||||
|
var md5 = createCommonjsModule(function (module) {
|
||||||
|
|
||||||
|
(function ($) {
|
||||||
|
/**
|
||||||
|
* Add integers, wrapping at 2^32.
|
||||||
|
* This uses 16-bit operations internally to work around bugs in interpreters.
|
||||||
|
*
|
||||||
|
* @param {number} x First integer
|
||||||
|
* @param {number} y Second integer
|
||||||
|
* @returns {number} Sum
|
||||||
|
*/
|
||||||
|
|
||||||
|
function safeAdd(x, y) {
|
||||||
|
var lsw = (x & 0xffff) + (y & 0xffff);
|
||||||
|
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||||
|
return msw << 16 | lsw & 0xffff;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Bitwise rotate a 32-bit number to the left.
|
||||||
|
*
|
||||||
|
* @param {number} num 32-bit number
|
||||||
|
* @param {number} cnt Rotation count
|
||||||
|
* @returns {number} Rotated number
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bitRotateLeft(num, cnt) {
|
||||||
|
return num << cnt | num >>> 32 - cnt;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Basic operation the algorithm uses.
|
||||||
|
*
|
||||||
|
* @param {number} q q
|
||||||
|
* @param {number} a a
|
||||||
|
* @param {number} b b
|
||||||
|
* @param {number} x x
|
||||||
|
* @param {number} s s
|
||||||
|
* @param {number} t t
|
||||||
|
* @returns {number} Result
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5cmn(q, a, b, x, s, t) {
|
||||||
|
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Basic operation the algorithm uses.
|
||||||
|
*
|
||||||
|
* @param {number} a a
|
||||||
|
* @param {number} b b
|
||||||
|
* @param {number} c c
|
||||||
|
* @param {number} d d
|
||||||
|
* @param {number} x x
|
||||||
|
* @param {number} s s
|
||||||
|
* @param {number} t t
|
||||||
|
* @returns {number} Result
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5ff(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Basic operation the algorithm uses.
|
||||||
|
*
|
||||||
|
* @param {number} a a
|
||||||
|
* @param {number} b b
|
||||||
|
* @param {number} c c
|
||||||
|
* @param {number} d d
|
||||||
|
* @param {number} x x
|
||||||
|
* @param {number} s s
|
||||||
|
* @param {number} t t
|
||||||
|
* @returns {number} Result
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5gg(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Basic operation the algorithm uses.
|
||||||
|
*
|
||||||
|
* @param {number} a a
|
||||||
|
* @param {number} b b
|
||||||
|
* @param {number} c c
|
||||||
|
* @param {number} d d
|
||||||
|
* @param {number} x x
|
||||||
|
* @param {number} s s
|
||||||
|
* @param {number} t t
|
||||||
|
* @returns {number} Result
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5hh(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Basic operation the algorithm uses.
|
||||||
|
*
|
||||||
|
* @param {number} a a
|
||||||
|
* @param {number} b b
|
||||||
|
* @param {number} c c
|
||||||
|
* @param {number} d d
|
||||||
|
* @param {number} x x
|
||||||
|
* @param {number} s s
|
||||||
|
* @param {number} t t
|
||||||
|
* @returns {number} Result
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5ii(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
||||||
|
*
|
||||||
|
* @param {Array} x Array of little-endian words
|
||||||
|
* @param {number} len Bit length
|
||||||
|
* @returns {Array<number>} MD5 Array
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function binlMD5(x, len) {
|
||||||
|
/* append padding */
|
||||||
|
x[len >> 5] |= 0x80 << len % 32;
|
||||||
|
x[(len + 64 >>> 9 << 4) + 14] = len;
|
||||||
|
var i;
|
||||||
|
var olda;
|
||||||
|
var oldb;
|
||||||
|
var oldc;
|
||||||
|
var oldd;
|
||||||
|
var a = 1732584193;
|
||||||
|
var b = -271733879;
|
||||||
|
var c = -1732584194;
|
||||||
|
var d = 271733878;
|
||||||
|
|
||||||
|
for (i = 0; i < x.length; i += 16) {
|
||||||
|
olda = a;
|
||||||
|
oldb = b;
|
||||||
|
oldc = c;
|
||||||
|
oldd = d;
|
||||||
|
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||||
|
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||||
|
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||||
|
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||||
|
a = safeAdd(a, olda);
|
||||||
|
b = safeAdd(b, oldb);
|
||||||
|
c = safeAdd(c, oldc);
|
||||||
|
d = safeAdd(d, oldd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [a, b, c, d];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Convert an array of little-endian words to a string
|
||||||
|
*
|
||||||
|
* @param {Array<number>} input MD5 Array
|
||||||
|
* @returns {string} MD5 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function binl2rstr(input) {
|
||||||
|
var i;
|
||||||
|
var output = '';
|
||||||
|
var length32 = input.length * 32;
|
||||||
|
|
||||||
|
for (i = 0; i < length32; i += 8) {
|
||||||
|
output += String.fromCharCode(input[i >> 5] >>> i % 32 & 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Convert a raw string to an array of little-endian words
|
||||||
|
* Characters >255 have their high-byte silently ignored.
|
||||||
|
*
|
||||||
|
* @param {string} input Raw input string
|
||||||
|
* @returns {Array<number>} Array of little-endian words
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function rstr2binl(input) {
|
||||||
|
var i;
|
||||||
|
var output = [];
|
||||||
|
output[(input.length >> 2) - 1] = undefined;
|
||||||
|
|
||||||
|
for (i = 0; i < output.length; i += 1) {
|
||||||
|
output[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var length8 = input.length * 8;
|
||||||
|
|
||||||
|
for (i = 0; i < length8; i += 8) {
|
||||||
|
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculate the MD5 of a raw string
|
||||||
|
*
|
||||||
|
* @param {string} s Input string
|
||||||
|
* @returns {string} Raw MD5 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function rstrMD5(s) {
|
||||||
|
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculates the HMAC-MD5 of a key and some data (raw strings)
|
||||||
|
*
|
||||||
|
* @param {string} key HMAC key
|
||||||
|
* @param {string} data Raw input string
|
||||||
|
* @returns {string} Raw MD5 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function rstrHMACMD5(key, data) {
|
||||||
|
var i;
|
||||||
|
var bkey = rstr2binl(key);
|
||||||
|
var ipad = [];
|
||||||
|
var opad = [];
|
||||||
|
var hash;
|
||||||
|
ipad[15] = opad[15] = undefined;
|
||||||
|
|
||||||
|
if (bkey.length > 16) {
|
||||||
|
bkey = binlMD5(bkey, key.length * 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i += 1) {
|
||||||
|
ipad[i] = bkey[i] ^ 0x36363636;
|
||||||
|
opad[i] = bkey[i] ^ 0x5c5c5c5c;
|
||||||
|
}
|
||||||
|
|
||||||
|
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
|
||||||
|
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Convert a raw string to a hex string
|
||||||
|
*
|
||||||
|
* @param {string} input Raw input string
|
||||||
|
* @returns {string} Hex encoded string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function rstr2hex(input) {
|
||||||
|
var hexTab = '0123456789abcdef';
|
||||||
|
var output = '';
|
||||||
|
var x;
|
||||||
|
var i;
|
||||||
|
|
||||||
|
for (i = 0; i < input.length; i += 1) {
|
||||||
|
x = input.charCodeAt(i);
|
||||||
|
output += hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Encode a string as UTF-8
|
||||||
|
*
|
||||||
|
* @param {string} input Input string
|
||||||
|
* @returns {string} UTF8 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function str2rstrUTF8(input) {
|
||||||
|
return unescape(encodeURIComponent(input));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Encodes input string as raw MD5 string
|
||||||
|
*
|
||||||
|
* @param {string} s Input string
|
||||||
|
* @returns {string} Raw MD5 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function rawMD5(s) {
|
||||||
|
return rstrMD5(str2rstrUTF8(s));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Encodes input string as Hex encoded string
|
||||||
|
*
|
||||||
|
* @param {string} s Input string
|
||||||
|
* @returns {string} Hex encoded string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function hexMD5(s) {
|
||||||
|
return rstr2hex(rawMD5(s));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculates the raw HMAC-MD5 for the given key and data
|
||||||
|
*
|
||||||
|
* @param {string} k HMAC key
|
||||||
|
* @param {string} d Input string
|
||||||
|
* @returns {string} Raw MD5 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function rawHMACMD5(k, d) {
|
||||||
|
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculates the Hex encoded HMAC-MD5 for the given key and data
|
||||||
|
*
|
||||||
|
* @param {string} k HMAC key
|
||||||
|
* @param {string} d Input string
|
||||||
|
* @returns {string} Raw MD5 string
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function hexHMACMD5(k, d) {
|
||||||
|
return rstr2hex(rawHMACMD5(k, d));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculates MD5 value for a given string.
|
||||||
|
* If a key is provided, calculates the HMAC-MD5 value.
|
||||||
|
* Returns a Hex encoded string unless the raw argument is given.
|
||||||
|
*
|
||||||
|
* @param {string} string Input string
|
||||||
|
* @param {string} [key] HMAC key
|
||||||
|
* @param {boolean} raw Raw oytput switch
|
||||||
|
* @returns {string} MD5 output
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5(string, key, raw) {
|
||||||
|
if (!key) {
|
||||||
|
if (!raw) {
|
||||||
|
return hexMD5(string);
|
||||||
|
}
|
||||||
|
|
||||||
|
return rawMD5(string);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!raw) {
|
||||||
|
return hexHMACMD5(key, string);
|
||||||
|
}
|
||||||
|
|
||||||
|
return rawHMACMD5(key, string);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (module.exports) {
|
||||||
|
module.exports = md5;
|
||||||
|
} else {
|
||||||
|
$.md5 = md5;
|
||||||
|
}
|
||||||
|
})(commonjsGlobal);
|
||||||
|
});
|
||||||
|
|
||||||
|
function md5ForNode(node) {
|
||||||
|
if (null === node || 'object' !== _typeof(node)) return undefined;
|
||||||
|
|
||||||
|
if (node.src) {
|
||||||
|
return md5(node.src);
|
||||||
|
} else if (node.href) {
|
||||||
|
return md5(node.href);
|
||||||
|
} else if (node.innerText && '' !== node.innerText) {
|
||||||
|
// eslint-disable-line yoda
|
||||||
|
return md5(node.innerText);
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var diagScriptId = 'fa-kits-diag';
|
||||||
|
var nodeUnderTestId = 'fa-kits-node-under-test';
|
||||||
|
var md5Attr = 'data-md5';
|
||||||
|
var detectionIgnoreAttr = 'data-fa-detection-ignore';
|
||||||
|
var timeoutAttr = 'data-fa-detection-timeout';
|
||||||
|
var resultsCollectionMaxWaitAttr = 'data-fa-detection-results-collection-max-wait';
|
||||||
|
|
||||||
|
var silenceErrors = function silenceErrors(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
};
|
||||||
|
|
||||||
|
function pollUntil(_ref) {
|
||||||
|
var _ref$fn = _ref.fn,
|
||||||
|
fn = _ref$fn === void 0 ? function () {
|
||||||
|
return true;
|
||||||
|
} : _ref$fn,
|
||||||
|
_ref$initialDuration = _ref.initialDuration,
|
||||||
|
initialDuration = _ref$initialDuration === void 0 ? 1 : _ref$initialDuration,
|
||||||
|
_ref$maxDuration = _ref.maxDuration,
|
||||||
|
maxDuration = _ref$maxDuration === void 0 ? WINDOW.FontAwesomeDetection.timeout : _ref$maxDuration,
|
||||||
|
_ref$showProgress = _ref.showProgress,
|
||||||
|
showProgress = _ref$showProgress === void 0 ? false : _ref$showProgress,
|
||||||
|
progressIndicator = _ref.progressIndicator;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
// eslint-disable-line compat/compat
|
||||||
|
function poll(duration, cumulativeDuration) {
|
||||||
|
setTimeout(function () {
|
||||||
|
var result = fn();
|
||||||
|
|
||||||
|
if (showProgress) {
|
||||||
|
console.info(progressIndicator);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!!result) {
|
||||||
|
// eslint-disable-line no-extra-boolean-cast
|
||||||
|
resolve(result);
|
||||||
|
} else {
|
||||||
|
var nextDuration = 250;
|
||||||
|
var nextCumulativeDuration = nextDuration + cumulativeDuration;
|
||||||
|
|
||||||
|
if (nextCumulativeDuration <= maxDuration) {
|
||||||
|
poll(nextDuration, nextCumulativeDuration);
|
||||||
|
} else {
|
||||||
|
reject('timeout'); // eslint-disable-line prefer-promise-reject-errors
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, duration);
|
||||||
|
}
|
||||||
|
|
||||||
|
poll(initialDuration, 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function detectWebfontConflicts() {
|
||||||
|
var linkTags = Array.from(DOCUMENT.getElementsByTagName('link')).filter(function (t) {
|
||||||
|
return !t.hasAttribute(detectionIgnoreAttr);
|
||||||
|
});
|
||||||
|
var styleTags = Array.from(DOCUMENT.getElementsByTagName('style')).filter(function (t) {
|
||||||
|
if (t.hasAttribute(detectionIgnoreAttr)) {
|
||||||
|
return false;
|
||||||
|
} // If the browser has loaded the FA5 CSS, let's not test that <style> element.
|
||||||
|
// Its enough that we'll be testing for traces of the corresponding JS being loaded, and testing
|
||||||
|
// this <style> would only produce a false negative anyway.
|
||||||
|
|
||||||
|
|
||||||
|
if (WINDOW.FontAwesomeConfig && t.innerText.match(new RegExp("svg:not\\(:root\\)\\.".concat(WINDOW.FontAwesomeConfig.replacementClass)))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
function runDiag(scriptOrLinkTag, md5) {
|
||||||
|
var diagFrame = DOCUMENT.createElement('iframe'); // Using "visibility: hidden; position: absolute" instead of "display: none;" because
|
||||||
|
// Firefox will not return the expected results for getComputedStyle if our iframe has display: none.
|
||||||
|
|
||||||
|
diagFrame.setAttribute('style', 'visibility: hidden; position: absolute; height: 0; width: 0;');
|
||||||
|
var testIconId = 'fa-test-icon-' + md5;
|
||||||
|
var iTag = DOCUMENT.createElement('i');
|
||||||
|
iTag.setAttribute('class', 'fa fa-coffee');
|
||||||
|
iTag.setAttribute('id', testIconId);
|
||||||
|
var diagScript = DOCUMENT.createElement('script');
|
||||||
|
diagScript.setAttribute('id', diagScriptId); // WARNING: this function will be toString()'d and assigned to innerText of the diag script
|
||||||
|
// element that we'll be putting into a diagnostic iframe.
|
||||||
|
// That means that this code won't compile until after the outer script has run and injected
|
||||||
|
// this code into the iframe. There are some compile time errors that might occur there.
|
||||||
|
// For example, using single line (double-slash) comments like this one inside that function
|
||||||
|
// will probably cause it to choke. Chrome will show an error like this:
|
||||||
|
// Uncaught SyntaxError: Unexpected end of input
|
||||||
|
|
||||||
|
var diagScriptFun = function diagScriptFun(nodeUnderTestId, testIconId, md5, parentOrigin) {
|
||||||
|
parent.FontAwesomeDetection.__pollUntil({
|
||||||
|
fn: function fn() {
|
||||||
|
var iEl = document.getElementById(testIconId);
|
||||||
|
var computedStyle = window.getComputedStyle(iEl);
|
||||||
|
var fontFamily = computedStyle.getPropertyValue('font-family');
|
||||||
|
|
||||||
|
if (!!fontFamily.match(/FontAwesome/) || !!fontFamily.match(/Font Awesome 5/)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).then(function () {
|
||||||
|
var node = document.getElementById(nodeUnderTestId);
|
||||||
|
parent.postMessage({
|
||||||
|
type: 'fontawesome-conflict',
|
||||||
|
technology: 'webfont',
|
||||||
|
href: node.href,
|
||||||
|
innerText: node.innerText,
|
||||||
|
tagName: node.tagName,
|
||||||
|
md5: md5
|
||||||
|
}, parentOrigin);
|
||||||
|
}).catch(function (e) {
|
||||||
|
var node = document.getElementById(nodeUnderTestId);
|
||||||
|
|
||||||
|
if (e === 'timeout') {
|
||||||
|
parent.postMessage({
|
||||||
|
type: 'no-conflict',
|
||||||
|
technology: 'webfont',
|
||||||
|
href: node.src,
|
||||||
|
innerText: node.innerText,
|
||||||
|
tagName: node.tagName,
|
||||||
|
md5: md5
|
||||||
|
}, parentOrigin);
|
||||||
|
} else {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var parentOrigin = WINDOW.location.origin === 'file://' ? '*' : WINDOW.location.origin;
|
||||||
|
diagScript.innerText = "(".concat(diagScriptFun.toString(), ")('").concat(nodeUnderTestId, "', '").concat(testIconId || 'foo', "', '").concat(md5, "', '").concat(parentOrigin, "');");
|
||||||
|
|
||||||
|
diagFrame.onload = function () {
|
||||||
|
diagFrame.contentWindow.addEventListener('error', silenceErrors, true);
|
||||||
|
diagFrame.contentDocument.head.appendChild(diagScript);
|
||||||
|
diagFrame.contentDocument.head.appendChild(scriptOrLinkTag);
|
||||||
|
diagFrame.contentDocument.body.appendChild(iTag);
|
||||||
|
};
|
||||||
|
|
||||||
|
domready(function () {
|
||||||
|
return DOCUMENT.body.appendChild(diagFrame);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var cssByMD5 = {};
|
||||||
|
|
||||||
|
for (var i = 0; i < linkTags.length; i++) {
|
||||||
|
var linkUnderTest = DOCUMENT.createElement('link');
|
||||||
|
linkUnderTest.setAttribute('id', nodeUnderTestId);
|
||||||
|
linkUnderTest.setAttribute('href', linkTags[i].href);
|
||||||
|
linkUnderTest.setAttribute('rel', linkTags[i].rel);
|
||||||
|
var md5ForLink = md5ForNode(linkTags[i]);
|
||||||
|
linkUnderTest.setAttribute(md5Attr, md5ForLink);
|
||||||
|
cssByMD5[md5ForLink] = linkTags[i];
|
||||||
|
runDiag(linkUnderTest, md5ForLink);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var _i = 0; _i < styleTags.length; _i++) {
|
||||||
|
var styleUnderTest = DOCUMENT.createElement('style');
|
||||||
|
styleUnderTest.setAttribute('id', nodeUnderTestId);
|
||||||
|
var md5ForStyle = md5ForNode(styleTags[_i]);
|
||||||
|
styleUnderTest.setAttribute(md5Attr, md5ForStyle);
|
||||||
|
styleUnderTest.innerText = styleTags[_i].innerText;
|
||||||
|
cssByMD5[md5ForStyle] = styleTags[_i];
|
||||||
|
runDiag(styleUnderTest, md5ForStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
return cssByMD5;
|
||||||
|
}
|
||||||
|
|
||||||
|
function detectSvgConflicts(currentScript) {
|
||||||
|
var scripts = Array.from(DOCUMENT.scripts).filter(function (t) {
|
||||||
|
return !t.hasAttribute(detectionIgnoreAttr) && t !== currentScript;
|
||||||
|
});
|
||||||
|
var scriptsByMD5 = {};
|
||||||
|
|
||||||
|
var _loop = function _loop(scriptIdx) {
|
||||||
|
var diagFrame = DOCUMENT.createElement('iframe');
|
||||||
|
diagFrame.setAttribute('style', 'display:none;');
|
||||||
|
var scriptUnderTest = DOCUMENT.createElement('script');
|
||||||
|
scriptUnderTest.setAttribute('id', nodeUnderTestId);
|
||||||
|
var md5ForScript = md5ForNode(scripts[scriptIdx]);
|
||||||
|
scriptUnderTest.setAttribute(md5Attr, md5ForScript);
|
||||||
|
scriptsByMD5[md5ForScript] = scripts[scriptIdx];
|
||||||
|
|
||||||
|
if (scripts[scriptIdx].src !== '') {
|
||||||
|
scriptUnderTest.src = scripts[scriptIdx].src;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scripts[scriptIdx].innerText !== '') {
|
||||||
|
scriptUnderTest.innerText = scripts[scriptIdx].innerText;
|
||||||
|
}
|
||||||
|
|
||||||
|
scriptUnderTest.async = true;
|
||||||
|
var diagScript = DOCUMENT.createElement('script');
|
||||||
|
diagScript.setAttribute('id', diagScriptId);
|
||||||
|
var parentOrigin = WINDOW.location.origin === 'file://' ? '*' : WINDOW.location.origin;
|
||||||
|
|
||||||
|
var diagScriptFun = function diagScriptFun(nodeUnderTestId, md5, parentOrigin) {
|
||||||
|
parent.FontAwesomeDetection.__pollUntil({
|
||||||
|
fn: function fn() {
|
||||||
|
return !!window.FontAwesomeConfig;
|
||||||
|
}
|
||||||
|
}).then(function () {
|
||||||
|
var scriptNode = document.getElementById(nodeUnderTestId);
|
||||||
|
parent.postMessage({
|
||||||
|
type: 'fontawesome-conflict',
|
||||||
|
technology: 'js',
|
||||||
|
src: scriptNode.src,
|
||||||
|
innerText: scriptNode.innerText,
|
||||||
|
tagName: scriptNode.tagName,
|
||||||
|
md5: md5
|
||||||
|
}, parentOrigin);
|
||||||
|
}).catch(function (e) {
|
||||||
|
var scriptNode = document.getElementById(nodeUnderTestId);
|
||||||
|
|
||||||
|
if (e === 'timeout') {
|
||||||
|
parent.postMessage({
|
||||||
|
type: 'no-conflict',
|
||||||
|
src: scriptNode.src,
|
||||||
|
innerText: scriptNode.innerText,
|
||||||
|
tagName: scriptNode.tagName,
|
||||||
|
md5: md5
|
||||||
|
}, parentOrigin);
|
||||||
|
} else {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
diagScript.innerText = "(".concat(diagScriptFun.toString(), ")('").concat(nodeUnderTestId, "', '").concat(md5ForScript, "', '").concat(parentOrigin, "');");
|
||||||
|
|
||||||
|
diagFrame.onload = function () {
|
||||||
|
diagFrame.contentWindow.addEventListener('error', silenceErrors, true);
|
||||||
|
diagFrame.contentDocument.head.appendChild(diagScript);
|
||||||
|
diagFrame.contentDocument.head.appendChild(scriptUnderTest);
|
||||||
|
};
|
||||||
|
|
||||||
|
domready(function () {
|
||||||
|
return DOCUMENT.body.appendChild(diagFrame);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var scriptIdx = 0; scriptIdx < scripts.length; scriptIdx++) {
|
||||||
|
_loop(scriptIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
return scriptsByMD5;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setDoneResults(_ref2) {
|
||||||
|
var nodesTested = _ref2.nodesTested,
|
||||||
|
nodesFound = _ref2.nodesFound;
|
||||||
|
WINDOW.FontAwesomeDetection = WINDOW.FontAwesomeDetection || {};
|
||||||
|
WINDOW.FontAwesomeDetection.nodesTested = nodesTested;
|
||||||
|
WINDOW.FontAwesomeDetection.nodesFound = nodesFound;
|
||||||
|
WINDOW.FontAwesomeDetection.detectionDone = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function conflictDetection() {
|
||||||
|
var report$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
|
||||||
|
var nodesTested = {
|
||||||
|
conflict: {},
|
||||||
|
noConflict: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
WINDOW.onmessage = function (e) {
|
||||||
|
if (WINDOW.location.origin === 'file://' || e.origin === WINDOW.location.origin) {
|
||||||
|
if (e && e.data) {
|
||||||
|
if (e.data.type === 'fontawesome-conflict') {
|
||||||
|
nodesTested.conflict[e.data.md5] = e.data;
|
||||||
|
} else if (e.data.type === 'no-conflict') {
|
||||||
|
nodesTested.noConflict[e.data.md5] = e.data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var scriptsToTest = detectSvgConflicts(DOCUMENT.currentScript);
|
||||||
|
var cssToTest = detectWebfontConflicts();
|
||||||
|
|
||||||
|
var nodesFound = _objectSpread({}, scriptsToTest, cssToTest);
|
||||||
|
|
||||||
|
var testCount = Object.keys(scriptsToTest).length + Object.keys(cssToTest).length; // The resultsCollectionMaxWait allows for the time between when the tests running under
|
||||||
|
// child iframes call postMessage with their results, and when the parent window
|
||||||
|
// receives and handles those events with window.onmessage.
|
||||||
|
// Making it configurable allows us to test the scenario where this timeout is exceeded.
|
||||||
|
// Naming it something very different from "timeout" is to help avoid the potential ambiguity between
|
||||||
|
// these two timeout-related settings.
|
||||||
|
|
||||||
|
var masterTimeout = WINDOW.FontAwesomeDetection.timeout + WINDOW.FontAwesomeDetection.resultsCollectionMaxWait;
|
||||||
|
console.group('Font Awesome Detector');
|
||||||
|
|
||||||
|
if (testCount === 0) {
|
||||||
|
console.info('%cAll Good!', 'color: green; font-size: large');
|
||||||
|
console.info('We didn\'t find anything that needs testing for conflicts. Ergo, no conflicts.');
|
||||||
|
} else {
|
||||||
|
console.info("Testing ".concat(testCount, " possible conflicts."));
|
||||||
|
console.info("We'll wait about ".concat(Math.round(WINDOW.FontAwesomeDetection.timeout / 10) / 100, " seconds while testing these and\n") + "then up to another ".concat(Math.round(WINDOW.FontAwesomeDetection.resultsCollectionMaxWait / 10) / 100, " to allow the browser time\n") + "to accumulate the results. But we'll probably be outta here way before then.\n\n");
|
||||||
|
console.info("You can adjust those durations by assigning values to these attributes on the <script> element that loads this detection:");
|
||||||
|
console.info("\t%c".concat(timeoutAttr, "%c: milliseconds to wait for each test before deciding whether it's a conflict."), 'font-weight: bold;', 'font-size: normal;');
|
||||||
|
console.info("\t%c".concat(resultsCollectionMaxWaitAttr, "%c: milliseconds to wait for the browser to accumulate test results before giving up."), 'font-weight: bold;', 'font-size: normal;');
|
||||||
|
pollUntil({
|
||||||
|
// Give this overall timer a little extra cushion
|
||||||
|
maxDuration: masterTimeout,
|
||||||
|
showProgress: true,
|
||||||
|
progressIndicator: 'waiting...',
|
||||||
|
fn: function fn() {
|
||||||
|
return Object.keys(nodesTested.conflict).length + Object.keys(nodesTested.noConflict).length >= testCount;
|
||||||
|
}
|
||||||
|
}).then(function () {
|
||||||
|
console.info('DONE!');
|
||||||
|
setDoneResults({
|
||||||
|
nodesTested: nodesTested,
|
||||||
|
nodesFound: nodesFound
|
||||||
|
});
|
||||||
|
report$$1({
|
||||||
|
nodesTested: nodesTested,
|
||||||
|
nodesFound: nodesFound
|
||||||
|
});
|
||||||
|
console.groupEnd();
|
||||||
|
}).catch(function (e) {
|
||||||
|
if (e === 'timeout') {
|
||||||
|
console.info('TIME OUT! We waited until we got tired. Here\'s what we found:');
|
||||||
|
setDoneResults({
|
||||||
|
nodesTested: nodesTested,
|
||||||
|
nodesFound: nodesFound
|
||||||
|
});
|
||||||
|
report$$1({
|
||||||
|
nodesTested: nodesTested,
|
||||||
|
nodesFound: nodesFound
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.info('Whoops! We hit an error:', e);
|
||||||
|
console.info('Here\'s what we\'d found up until that error:');
|
||||||
|
setDoneResults({
|
||||||
|
nodesTested: nodesTested,
|
||||||
|
nodesFound: nodesFound
|
||||||
|
});
|
||||||
|
report$$1({
|
||||||
|
nodesTested: nodesTested,
|
||||||
|
nodesFound: nodesFound
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
console.groupEnd();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} // Allow clients to access, and in some cases, override some properties
|
||||||
|
|
||||||
|
var initialConfig = WINDOW.FontAwesomeDetection || {}; // These can be overridden
|
||||||
|
|
||||||
|
var _default = {
|
||||||
|
report: report,
|
||||||
|
timeout: +(DOCUMENT.currentScript.getAttribute(timeoutAttr) || "2000"),
|
||||||
|
resultsCollectionMaxWait: +(DOCUMENT.currentScript.getAttribute(resultsCollectionMaxWaitAttr) || "5000")
|
||||||
|
};
|
||||||
|
|
||||||
|
var _config = _objectSpread({}, _default, initialConfig, {
|
||||||
|
// These cannot be overridden
|
||||||
|
__pollUntil: pollUntil,
|
||||||
|
md5ForNode: md5ForNode,
|
||||||
|
detectionDone: false,
|
||||||
|
nodesTested: null,
|
||||||
|
nodesFound: null
|
||||||
|
});
|
||||||
|
|
||||||
|
WINDOW.FontAwesomeDetection = _config;
|
||||||
|
|
||||||
|
var PRODUCTION = function () {
|
||||||
|
try {
|
||||||
|
return process.env.NODE_ENV === 'production';
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}();
|
||||||
|
|
||||||
|
function bunker(fn) {
|
||||||
|
try {
|
||||||
|
fn();
|
||||||
|
} catch (e) {
|
||||||
|
if (!PRODUCTION) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bunker(function () {
|
||||||
|
if (IS_BROWSER && IS_DOM) {
|
||||||
|
conflictDetection(window.FontAwesomeDetection.report);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
exports.conflictDetection = conflictDetection;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
})));
|
5
nodejs/public/js/conflict-detection.min.js
vendored
Normal file
1979
nodejs/public/js/duotone.js
Normal file
5
nodejs/public/js/duotone.min.js
vendored
Normal file
2478
nodejs/public/js/fontawesome.js
Normal file
5
nodejs/public/js/fontawesome.min.js
vendored
Normal file
1979
nodejs/public/js/light.js
Normal file
5
nodejs/public/js/light.min.js
vendored
Normal file
1979
nodejs/public/js/regular.js
Normal file
5
nodejs/public/js/regular.min.js
vendored
Normal file
1979
nodejs/public/js/solid.js
Normal file
5
nodejs/public/js/solid.min.js
vendored
Normal file
68
nodejs/public/js/v4-shims.js
Normal file
5
nodejs/public/js/v4-shims.min.js
vendored
Normal file
19
nodejs/public/less/_animated.less
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// Animated Icons
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-spin {
|
||||||
|
animation: fa-spin 2s infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-pulse {
|
||||||
|
animation: fa-spin 1s infinite steps(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
16
nodejs/public/less/_bordered-pulled.less
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Bordered & Pulled
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-border {
|
||||||
|
border-radius: .1em;
|
||||||
|
border: solid .08em @fa-border-color;
|
||||||
|
padding: .2em .25em .15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-pull-left { float: left; }
|
||||||
|
.@{fa-css-prefix}-pull-right { float: right; }
|
||||||
|
|
||||||
|
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||||
|
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||||
|
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||||
|
}
|
12
nodejs/public/less/_core.less
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// Base Class Definition
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}, .fas, .far, .fal, .fad, .fab {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-rendering: auto;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
6
nodejs/public/less/_fixed-width.less
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
// Fixed Width Icons
|
||||||
|
// -------------------------
|
||||||
|
.@{fa-css-prefix}-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: (20em / 16);
|
||||||
|
}
|
2302
nodejs/public/less/_icons.less
Normal file
27
nodejs/public/less/_larger.less
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Icon Sizes
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.larger(@factor) when (@factor > 0) {
|
||||||
|
.larger((@factor - 1));
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-@{factor}x {
|
||||||
|
font-size: (@factor * 1em);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* makes the font 33% larger relative to the icon container */
|
||||||
|
.@{fa-css-prefix}-lg {
|
||||||
|
font-size: (4em / 3);
|
||||||
|
line-height: (3em / 4);
|
||||||
|
vertical-align: -.0667em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-xs {
|
||||||
|
font-size: .75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-sm {
|
||||||
|
font-size: .875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.larger(10);
|
18
nodejs/public/less/_list.less
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// List Icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: (@fa-li-width * 5/4);
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
|
> li { position: relative; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-li {
|
||||||
|
left: -@fa-li-width;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: @fa-li-width;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
56
nodejs/public/less/_mixins.less
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// Mixins
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.fa-icon() {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-icon-rotate(@degrees, @rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
|
||||||
|
transform: rotate(@degrees);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-icon-flip(@horiz, @vert, @rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
|
||||||
|
transform: scale(@horiz, @vert);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Only display content to screen readers. A la Bootstrap 4.
|
||||||
|
//
|
||||||
|
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||||
|
|
||||||
|
.sr-only() {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0,0,0,0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||||
|
//
|
||||||
|
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||||
|
//
|
||||||
|
// Credit: HTML5 Boilerplate
|
||||||
|
|
||||||
|
.sr-only-focusable() {
|
||||||
|
&:active,
|
||||||
|
&:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
24
nodejs/public/less/_rotated-flipped.less
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Rotated & Flipped Icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
|
||||||
|
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
|
||||||
|
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
|
||||||
|
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
|
||||||
|
.@{fa-css-prefix}-flip-both, .@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
|
||||||
|
|
||||||
|
// Hook for IE8-9
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
:root {
|
||||||
|
.@{fa-css-prefix}-rotate-90,
|
||||||
|
.@{fa-css-prefix}-rotate-180,
|
||||||
|
.@{fa-css-prefix}-rotate-270,
|
||||||
|
.@{fa-css-prefix}-flip-horizontal,
|
||||||
|
.@{fa-css-prefix}-flip-vertical,
|
||||||
|
.@{fa-css-prefix}-flip-both {
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
|
}
|
5
nodejs/public/less/_screen-reader.less
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Screen Readers
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.sr-only { .sr-only(); }
|
||||||
|
.sr-only-focusable { .sr-only-focusable(); }
|
2066
nodejs/public/less/_shims.less
Normal file
22
nodejs/public/less/_stacked.less
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// Stacked Icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack {
|
||||||
|
display: inline-block;
|
||||||
|
height: 2em;
|
||||||
|
line-height: 2em;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
|
||||||
|
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
|
||||||
|
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
|
2314
nodejs/public/less/_variables.less
Normal file
23
nodejs/public/less/brands.less
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-brands-400.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
1916
nodejs/public/less/duotone.less
Normal file
16
nodejs/public/less/fontawesome.less
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
@import "_mixins.less";
|
||||||
|
@import "_core.less";
|
||||||
|
@import "_larger.less";
|
||||||
|
@import "_fixed-width.less";
|
||||||
|
@import "_list.less";
|
||||||
|
@import "_bordered-pulled.less";
|
||||||
|
@import "_animated.less";
|
||||||
|
@import "_rotated-flipped.less";
|
||||||
|
@import "_stacked.less";
|
||||||
|
@import "_icons.less";
|
||||||
|
@import "_screen-reader.less";
|
23
nodejs/public/less/light.less
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-light-300.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-light-300.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-light-300.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-light-300.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-light-300.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fal {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
23
nodejs/public/less/regular.less
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-regular-400.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.far {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
24
nodejs/public/less/solid.less
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-solid-900.eot');
|
||||||
|
src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa,
|
||||||
|
.fas {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
6
nodejs/public/less/v4-shims.less
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import '_variables.less';
|
||||||
|
@import '_shims.less';
|
4086
nodejs/public/metadata/categories.yml
Normal file
172069
nodejs/public/metadata/icons.json
Normal file
41070
nodejs/public/metadata/icons.yml
Normal file
2317
nodejs/public/metadata/shims.json
Normal file
298
nodejs/public/metadata/shims.yml
Normal file
@ -0,0 +1,298 @@
|
|||||||
|
area-chart:
|
||||||
|
name: chart-area
|
||||||
|
arrow-circle-o-down:
|
||||||
|
name: arrow-alt-circle-down
|
||||||
|
prefix: far
|
||||||
|
arrow-circle-o-left:
|
||||||
|
name: arrow-alt-circle-left
|
||||||
|
prefix: far
|
||||||
|
arrow-circle-o-right:
|
||||||
|
name: arrow-alt-circle-right
|
||||||
|
prefix: far
|
||||||
|
arrow-circle-o-up:
|
||||||
|
name: arrow-alt-circle-up
|
||||||
|
prefix: far
|
||||||
|
arrows:
|
||||||
|
name: arrows-alt
|
||||||
|
arrows-alt:
|
||||||
|
name: expand-arrows-alt
|
||||||
|
arrows-h:
|
||||||
|
name: arrows-alt-h
|
||||||
|
arrows-v:
|
||||||
|
name: arrows-alt-v
|
||||||
|
bar-chart:
|
||||||
|
name: chart-bar
|
||||||
|
prefix: far
|
||||||
|
bitbucket-square:
|
||||||
|
name: bitbucket
|
||||||
|
prefix: fab
|
||||||
|
calendar:
|
||||||
|
name: calendar-alt
|
||||||
|
calendar-o:
|
||||||
|
name: calendar
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-down:
|
||||||
|
name: caret-square-down
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-left:
|
||||||
|
name: caret-square-left
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-right:
|
||||||
|
name: caret-square-right
|
||||||
|
prefix: far
|
||||||
|
caret-square-o-up:
|
||||||
|
name: caret-square-up
|
||||||
|
prefix: far
|
||||||
|
cc:
|
||||||
|
name: closed-captioning
|
||||||
|
prefix: far
|
||||||
|
chain-broken:
|
||||||
|
name: unlink
|
||||||
|
circle-o-notch:
|
||||||
|
name: circle-notch
|
||||||
|
circle-thin:
|
||||||
|
name: circle
|
||||||
|
prefix: far
|
||||||
|
clipboard:
|
||||||
|
prefix: far
|
||||||
|
clone:
|
||||||
|
prefix: far
|
||||||
|
cloud-download:
|
||||||
|
name: cloud-download-alt
|
||||||
|
cloud-upload:
|
||||||
|
name: cloud-upload-alt
|
||||||
|
code-fork:
|
||||||
|
name: code-branch
|
||||||
|
comment-alt:
|
||||||
|
name: comment-dots
|
||||||
|
prefix: far
|
||||||
|
commenting:
|
||||||
|
name: comment-dots
|
||||||
|
compass:
|
||||||
|
prefix: far
|
||||||
|
compress:
|
||||||
|
name: compress-alt
|
||||||
|
copyright:
|
||||||
|
prefix: far
|
||||||
|
creative-commons:
|
||||||
|
prefix: fab
|
||||||
|
credit-card:
|
||||||
|
prefix: far
|
||||||
|
credit-card-alt:
|
||||||
|
name: credit-card
|
||||||
|
cutlery:
|
||||||
|
name: utensils
|
||||||
|
diamond:
|
||||||
|
name: gem
|
||||||
|
prefix: far
|
||||||
|
eercast:
|
||||||
|
name: sellcast
|
||||||
|
prefix: fab
|
||||||
|
eur:
|
||||||
|
name: euro-sign
|
||||||
|
exchange:
|
||||||
|
name: exchange-alt
|
||||||
|
expand:
|
||||||
|
name: expand-alt
|
||||||
|
external-link:
|
||||||
|
name: external-link-alt
|
||||||
|
external-link-square:
|
||||||
|
name: external-link-square-alt
|
||||||
|
eye:
|
||||||
|
prefix: far
|
||||||
|
eye-dropper:
|
||||||
|
name: eye-dropper
|
||||||
|
prefix: far
|
||||||
|
eye-slash:
|
||||||
|
prefix: far
|
||||||
|
eyedropper:
|
||||||
|
name: eye-dropper
|
||||||
|
facebook:
|
||||||
|
name: facebook-f
|
||||||
|
prefix: fab
|
||||||
|
facebook-official:
|
||||||
|
name: facebook
|
||||||
|
prefix: fab
|
||||||
|
file-text:
|
||||||
|
name: file-alt
|
||||||
|
files-o:
|
||||||
|
name: copy
|
||||||
|
prefix: far
|
||||||
|
floppy-o:
|
||||||
|
name: save
|
||||||
|
prefix: far
|
||||||
|
gbp:
|
||||||
|
name: pound-sign
|
||||||
|
glass:
|
||||||
|
name: glass-martini
|
||||||
|
google-plus:
|
||||||
|
name: google-plus-g
|
||||||
|
prefix: fab
|
||||||
|
google-plus-circle:
|
||||||
|
name: google-plus
|
||||||
|
prefix: fab
|
||||||
|
google-plus-official:
|
||||||
|
name: google-plus
|
||||||
|
prefix: fab
|
||||||
|
hand-o-down:
|
||||||
|
name: hand-point-down
|
||||||
|
prefix: far
|
||||||
|
hand-o-left:
|
||||||
|
name: hand-point-left
|
||||||
|
prefix: far
|
||||||
|
hand-o-right:
|
||||||
|
name: hand-point-right
|
||||||
|
prefix: far
|
||||||
|
hand-o-up:
|
||||||
|
name: hand-point-up
|
||||||
|
prefix: far
|
||||||
|
header:
|
||||||
|
name: heading
|
||||||
|
id-badge:
|
||||||
|
prefix: far
|
||||||
|
ils:
|
||||||
|
name: shekel-sign
|
||||||
|
inr:
|
||||||
|
name: rupee-sign
|
||||||
|
intersex:
|
||||||
|
name: transgender
|
||||||
|
jpy:
|
||||||
|
name: yen-sign
|
||||||
|
krw:
|
||||||
|
name: won-sign
|
||||||
|
level-down:
|
||||||
|
name: level-down-alt
|
||||||
|
level-up:
|
||||||
|
name: level-up-alt
|
||||||
|
life-ring:
|
||||||
|
prefix: far
|
||||||
|
line-chart:
|
||||||
|
name: chart-line
|
||||||
|
linkedin:
|
||||||
|
name: linkedin-in
|
||||||
|
prefix: fab
|
||||||
|
linkedin-square:
|
||||||
|
name: linkedin
|
||||||
|
prefix: fab
|
||||||
|
list-alt:
|
||||||
|
prefix: far
|
||||||
|
long-arrow-down:
|
||||||
|
name: long-arrow-alt-down
|
||||||
|
long-arrow-left:
|
||||||
|
name: long-arrow-alt-left
|
||||||
|
long-arrow-right:
|
||||||
|
name: long-arrow-alt-right
|
||||||
|
long-arrow-up:
|
||||||
|
name: long-arrow-alt-up
|
||||||
|
map-marker:
|
||||||
|
name: map-marker-alt
|
||||||
|
meanpath:
|
||||||
|
name: font-awesome
|
||||||
|
prefix: fab
|
||||||
|
mobile:
|
||||||
|
name: mobile-alt
|
||||||
|
money:
|
||||||
|
name: money-bill-alt
|
||||||
|
prefix: far
|
||||||
|
object-group:
|
||||||
|
prefix: far
|
||||||
|
object-ungroup:
|
||||||
|
prefix: far
|
||||||
|
paste:
|
||||||
|
prefix: far
|
||||||
|
pencil:
|
||||||
|
name: pencil-alt
|
||||||
|
pencil-square:
|
||||||
|
name: pen-square
|
||||||
|
pencil-square-o:
|
||||||
|
name: edit
|
||||||
|
prefix: far
|
||||||
|
picture:
|
||||||
|
name: image
|
||||||
|
pie-chart:
|
||||||
|
name: chart-pie
|
||||||
|
refresh:
|
||||||
|
name: sync
|
||||||
|
registered:
|
||||||
|
prefix: far
|
||||||
|
repeat:
|
||||||
|
name: redo
|
||||||
|
rub:
|
||||||
|
name: ruble-sign
|
||||||
|
scissors:
|
||||||
|
name: cut
|
||||||
|
shield:
|
||||||
|
name: shield-alt
|
||||||
|
sign-in:
|
||||||
|
name: sign-in-alt
|
||||||
|
sign-out:
|
||||||
|
name: sign-out-alt
|
||||||
|
sliders:
|
||||||
|
name: sliders-h
|
||||||
|
sort-alpha-asc:
|
||||||
|
name: sort-alpha-down
|
||||||
|
sort-alpha-desc:
|
||||||
|
name: sort-alpha-down-alt
|
||||||
|
sort-amount-asc:
|
||||||
|
name: sort-amount-down
|
||||||
|
sort-amount-desc:
|
||||||
|
name: sort-amount-down-alt
|
||||||
|
sort-asc:
|
||||||
|
name: sort-up
|
||||||
|
sort-desc:
|
||||||
|
name: sort-down
|
||||||
|
sort-numeric-asc:
|
||||||
|
name: sort-numeric-down
|
||||||
|
sort-numeric-desc:
|
||||||
|
name: sort-numeric-down-alt
|
||||||
|
spoon:
|
||||||
|
name: utensil-spoon
|
||||||
|
star-half-empty:
|
||||||
|
name: star-half
|
||||||
|
star-half-full:
|
||||||
|
name: star-half
|
||||||
|
support:
|
||||||
|
name: life-ring
|
||||||
|
prefix: far
|
||||||
|
tablet:
|
||||||
|
name: tablet-alt
|
||||||
|
tachometer:
|
||||||
|
name: tachometer-alt
|
||||||
|
television:
|
||||||
|
name: tv
|
||||||
|
thumb-tack:
|
||||||
|
name: thumbtack
|
||||||
|
thumbs-o-down:
|
||||||
|
name: thumbs-down
|
||||||
|
prefix: far
|
||||||
|
thumbs-o-up:
|
||||||
|
name: thumbs-up
|
||||||
|
prefix: far
|
||||||
|
ticket:
|
||||||
|
name: ticket-alt
|
||||||
|
trash:
|
||||||
|
name: trash-alt
|
||||||
|
trash-o:
|
||||||
|
name: trash-alt
|
||||||
|
prefix: far
|
||||||
|
try:
|
||||||
|
name: lira-sign
|
||||||
|
usd:
|
||||||
|
name: dollar-sign
|
||||||
|
video-camera:
|
||||||
|
name: video
|
||||||
|
vimeo:
|
||||||
|
name: vimeo-v
|
||||||
|
prefix: fab
|
||||||
|
volume-control-phone:
|
||||||
|
name: phone-volume
|
||||||
|
wheelchair-alt:
|
||||||
|
name: accessible-icon
|
||||||
|
prefix: fab
|
||||||
|
window-maximize:
|
||||||
|
prefix: far
|
||||||
|
window-restore:
|
||||||
|
prefix: far
|
||||||
|
youtube-play:
|
||||||
|
name: youtube
|
||||||
|
prefix: fab
|
796
nodejs/public/metadata/sponsors.yml
Normal file
@ -0,0 +1,796 @@
|
|||||||
|
accusoft:
|
||||||
|
icons:
|
||||||
|
- accusoft
|
||||||
|
label: Accusoft
|
||||||
|
url: 'https://www.accusoft.com'
|
||||||
|
administrator-technology:
|
||||||
|
icons:
|
||||||
|
- stream
|
||||||
|
label: Administrator Technology
|
||||||
|
url: 'https://administrator.de'
|
||||||
|
adversal:
|
||||||
|
icons:
|
||||||
|
- adversal
|
||||||
|
label: Adversal
|
||||||
|
url: 'https://www.adversal.com'
|
||||||
|
affiliatetheme:
|
||||||
|
icons:
|
||||||
|
- affiliatetheme
|
||||||
|
label: affiliatetheme
|
||||||
|
url: 'https://affiliatetheme.io/en'
|
||||||
|
algolia:
|
||||||
|
icons:
|
||||||
|
- algolia
|
||||||
|
label: Algolia
|
||||||
|
url: 'http://www.algolia.com'
|
||||||
|
amazon-web-services:
|
||||||
|
icons:
|
||||||
|
- aws
|
||||||
|
label: Amazon Web Services
|
||||||
|
url: 'https://aws.amazon.com'
|
||||||
|
amilia:
|
||||||
|
icons:
|
||||||
|
- amilia
|
||||||
|
label: Amilia
|
||||||
|
url: 'http://www.amilia.com'
|
||||||
|
angry-creative:
|
||||||
|
icons:
|
||||||
|
- angrycreative
|
||||||
|
label: Angry Creative
|
||||||
|
url: 'https://angrycreative.se'
|
||||||
|
app-signal:
|
||||||
|
icons:
|
||||||
|
- stroopwafel
|
||||||
|
label: AppSignal
|
||||||
|
url: 'https://appsignal.com'
|
||||||
|
apper-systems-ab:
|
||||||
|
icons:
|
||||||
|
- apper
|
||||||
|
label: Apper Systems AB
|
||||||
|
url: 'http://www.apper.com'
|
||||||
|
'asymmetrik,ltd':
|
||||||
|
icons:
|
||||||
|
- asymmetrik
|
||||||
|
label: 'Asymmetrik, Ltd.'
|
||||||
|
url: 'http://asymmetrik.com'
|
||||||
|
ausmed-education:
|
||||||
|
icons:
|
||||||
|
- user-nurse
|
||||||
|
label: Ausmed Education
|
||||||
|
url: 'https://www.ausmed.com.au'
|
||||||
|
avianex:
|
||||||
|
icons:
|
||||||
|
- avianex
|
||||||
|
label: avianex
|
||||||
|
url: 'https://www.avianex.de'
|
||||||
|
bi-mobject:
|
||||||
|
icons:
|
||||||
|
- bimobject
|
||||||
|
label: BIMobject
|
||||||
|
url: 'http://bimobject.com'
|
||||||
|
bity:
|
||||||
|
icons:
|
||||||
|
- bity
|
||||||
|
label: Bity
|
||||||
|
url: 'http://bity.com'
|
||||||
|
blackpulp-designs:
|
||||||
|
icons:
|
||||||
|
- pray
|
||||||
|
label: Blackpulp Designs
|
||||||
|
url: 'https://www.blackpulp.com'
|
||||||
|
blissbook:
|
||||||
|
icons:
|
||||||
|
- pen-fancy
|
||||||
|
label: Blissbook
|
||||||
|
url: 'https://blissbook.com'
|
||||||
|
büromöbel-experte-gmb-h &co-kg:
|
||||||
|
icons:
|
||||||
|
- buromobelexperte
|
||||||
|
label: Büromöbel-Experte GmbH & Co. KG.
|
||||||
|
url: 'https://www.bueromoebel-experte.de'
|
||||||
|
c-panel:
|
||||||
|
icons:
|
||||||
|
- cpanel
|
||||||
|
label: cPanel
|
||||||
|
url: 'http://cpanel.com'
|
||||||
|
centercode:
|
||||||
|
icons:
|
||||||
|
- centercode
|
||||||
|
label: Centercode
|
||||||
|
url: 'https://www.centercode.com'
|
||||||
|
cibltd:
|
||||||
|
icons:
|
||||||
|
- drum-steelpan
|
||||||
|
label: Comprehensive Insurance Brokers Limited
|
||||||
|
url: 'http://www.cibltd.com'
|
||||||
|
clear-blue-technologies:
|
||||||
|
icons:
|
||||||
|
- solar-panel
|
||||||
|
label: Clear Blue Technologies
|
||||||
|
url: 'http://www.clearbluetechnologies.com'
|
||||||
|
cloudscale-ch:
|
||||||
|
icons:
|
||||||
|
- cloudscale
|
||||||
|
label: cloudscale.ch
|
||||||
|
url: 'https://www.cloudscale.ch'
|
||||||
|
cloudsmith:
|
||||||
|
icons:
|
||||||
|
- cloudsmith
|
||||||
|
label: Cloudsmith
|
||||||
|
url: 'https://cloudsmith.io'
|
||||||
|
cloudversify:
|
||||||
|
icons:
|
||||||
|
- cloudversify
|
||||||
|
label: cloudversify
|
||||||
|
url: 'https://www.cloudversify.com'
|
||||||
|
cuttlefish:
|
||||||
|
icons:
|
||||||
|
- cuttlefish
|
||||||
|
label: Cuttlefish
|
||||||
|
url: 'http://wearecuttlefish.com'
|
||||||
|
cymedica:
|
||||||
|
icons:
|
||||||
|
- wave-square
|
||||||
|
label: CyMedica
|
||||||
|
url: 'https://www.cymedicaortho.com'
|
||||||
|
darren-wiebe:
|
||||||
|
icons:
|
||||||
|
- church
|
||||||
|
label: Darren Wiebe
|
||||||
|
deploy-dog:
|
||||||
|
icons:
|
||||||
|
- deploydog
|
||||||
|
label: deploy.dog
|
||||||
|
url: 'http://deploy.dog'
|
||||||
|
deskpro:
|
||||||
|
icons:
|
||||||
|
- deskpro
|
||||||
|
label: Deskpro
|
||||||
|
url: 'http://www.deskpro.com'
|
||||||
|
discourse:
|
||||||
|
icons:
|
||||||
|
- discourse
|
||||||
|
label: Discourse
|
||||||
|
url: 'https://discourse.org'
|
||||||
|
doc-hub:
|
||||||
|
icons:
|
||||||
|
- dochub
|
||||||
|
label: DocHub
|
||||||
|
url: 'https://dochub.com'
|
||||||
|
draft2-digital:
|
||||||
|
icons:
|
||||||
|
- draft2digital
|
||||||
|
label: Draft2Digital
|
||||||
|
url: 'http://draft2digital.com'
|
||||||
|
dyalog-apl:
|
||||||
|
icons:
|
||||||
|
- dyalog
|
||||||
|
label: Dyalog APL
|
||||||
|
url: 'http://www.dyalog.com'
|
||||||
|
econopublish:
|
||||||
|
icons:
|
||||||
|
- hat-cowboy-side
|
||||||
|
label: EconoPublish
|
||||||
|
url: 'https://www.econopublish.com'
|
||||||
|
firstdraft:
|
||||||
|
icons:
|
||||||
|
- firstdraft
|
||||||
|
label: firstdraft
|
||||||
|
url: 'http://www.firstdraft.com'
|
||||||
|
fleetplan:
|
||||||
|
icons:
|
||||||
|
- helicopter
|
||||||
|
label: FLEETPLAN
|
||||||
|
url: 'https://www.fleetplan.net'
|
||||||
|
getaroom:
|
||||||
|
icons:
|
||||||
|
- archway
|
||||||
|
- dumbbell
|
||||||
|
- hotel
|
||||||
|
- map-marked
|
||||||
|
- map-marked-alt
|
||||||
|
- monument
|
||||||
|
- spa
|
||||||
|
- swimmer
|
||||||
|
- swimming-pool
|
||||||
|
label: getaroom
|
||||||
|
url: 'https://www.getaroom.com'
|
||||||
|
git-kraken:
|
||||||
|
icons:
|
||||||
|
- gitkraken
|
||||||
|
label: GitKraken
|
||||||
|
url: 'https://www.gitkraken.com'
|
||||||
|
gofore:
|
||||||
|
icons:
|
||||||
|
- gofore
|
||||||
|
label: Gofore
|
||||||
|
url: 'http://gofore.com'
|
||||||
|
'gripfire,inc':
|
||||||
|
icons:
|
||||||
|
- gripfire
|
||||||
|
label: 'Gripfire, Inc.'
|
||||||
|
url: 'http://gripfire.io'
|
||||||
|
harvard-medical-school:
|
||||||
|
icons:
|
||||||
|
- allergies
|
||||||
|
- ambulance
|
||||||
|
- band-aid
|
||||||
|
- briefcase-medical
|
||||||
|
- burn
|
||||||
|
- capsules
|
||||||
|
- diagnoses
|
||||||
|
- dna
|
||||||
|
- file-medical
|
||||||
|
- file-medical-alt
|
||||||
|
- first-aid
|
||||||
|
- heart
|
||||||
|
- heartbeat
|
||||||
|
- hospital
|
||||||
|
- hospital-alt
|
||||||
|
- hospital-symbol
|
||||||
|
- id-card-alt
|
||||||
|
- notes-medical
|
||||||
|
- pills
|
||||||
|
- plus
|
||||||
|
- prescription-bottle
|
||||||
|
- prescription-bottle-alt
|
||||||
|
- procedures
|
||||||
|
- smoking
|
||||||
|
- stethoscope
|
||||||
|
- syringe
|
||||||
|
- tablets
|
||||||
|
- thermometer
|
||||||
|
- user-md
|
||||||
|
- vial
|
||||||
|
- vials
|
||||||
|
- weight
|
||||||
|
- x-ray
|
||||||
|
label: Harvard Medical School
|
||||||
|
url: 'https://hms.harvard.edu'
|
||||||
|
hips:
|
||||||
|
icons:
|
||||||
|
- hips
|
||||||
|
label: Hips
|
||||||
|
url: 'https://hips.com'
|
||||||
|
hire-a-helper:
|
||||||
|
icons:
|
||||||
|
- archive
|
||||||
|
- blanket
|
||||||
|
- box-alt
|
||||||
|
- box-fragile
|
||||||
|
- box-full
|
||||||
|
- box-open
|
||||||
|
- box-up
|
||||||
|
- boxes-alt
|
||||||
|
- container-storage
|
||||||
|
- couch
|
||||||
|
- dolly
|
||||||
|
- dolly-empty
|
||||||
|
- fragile
|
||||||
|
- lamp
|
||||||
|
- loveseat
|
||||||
|
- people-carry
|
||||||
|
- person-carry
|
||||||
|
- person-dolly
|
||||||
|
- person-dolly-empty
|
||||||
|
- ramp-loading
|
||||||
|
- route
|
||||||
|
- sign
|
||||||
|
- suitcase
|
||||||
|
- tape
|
||||||
|
- truck-container
|
||||||
|
- truck-couch
|
||||||
|
- truck-loading
|
||||||
|
- truck-moving
|
||||||
|
- truck-ramp
|
||||||
|
- wine-glass
|
||||||
|
label: HireAHelper
|
||||||
|
url: 'https://www.hireahelper.com'
|
||||||
|
hornbill:
|
||||||
|
icons:
|
||||||
|
- hornbill
|
||||||
|
label: Hornbill
|
||||||
|
url: 'https://www.hornbill.com'
|
||||||
|
hotjar:
|
||||||
|
icons:
|
||||||
|
- hotjar
|
||||||
|
label: Hotjar
|
||||||
|
url: 'https://www.hotjar.com'
|
||||||
|
hub-spot:
|
||||||
|
icons:
|
||||||
|
- hubspot
|
||||||
|
label: HubSpot
|
||||||
|
url: 'http://www.HubSpot.com'
|
||||||
|
in-site-systems:
|
||||||
|
icons:
|
||||||
|
- toolbox
|
||||||
|
label: InSite Systems
|
||||||
|
url: 'https://www.insitesystems.com'
|
||||||
|
inspira-bvba:
|
||||||
|
icons:
|
||||||
|
- chess-knight
|
||||||
|
label: Inspira bvba
|
||||||
|
url: 'https://www.inspira.be'
|
||||||
|
joe-emison:
|
||||||
|
icons:
|
||||||
|
- blender-phone
|
||||||
|
label: Joe Emison
|
||||||
|
joget:
|
||||||
|
icons:
|
||||||
|
- joget
|
||||||
|
label: Joget
|
||||||
|
url: 'http://www.joget.org'
|
||||||
|
jon-galloway:
|
||||||
|
icons:
|
||||||
|
- crow
|
||||||
|
label: Jon Galloway
|
||||||
|
kevin-barone:
|
||||||
|
icons:
|
||||||
|
- file-contract
|
||||||
|
label: Kevin Barone
|
||||||
|
key-cdn:
|
||||||
|
icons:
|
||||||
|
- keycdn
|
||||||
|
label: KeyCDN
|
||||||
|
url: 'https://www.keycdn.com'
|
||||||
|
korvue:
|
||||||
|
icons:
|
||||||
|
- korvue
|
||||||
|
label: Korvue
|
||||||
|
url: 'https://korvue.com'
|
||||||
|
max-elman:
|
||||||
|
icons:
|
||||||
|
- frog
|
||||||
|
label: Max Elman
|
||||||
|
med-apps:
|
||||||
|
icons:
|
||||||
|
- medapps
|
||||||
|
label: MedApps
|
||||||
|
url: 'http://medapps.com.au'
|
||||||
|
medapps:
|
||||||
|
icons:
|
||||||
|
- book-medical
|
||||||
|
- book-user
|
||||||
|
- books-medical
|
||||||
|
- clinic-medical
|
||||||
|
- clipboard-user
|
||||||
|
- comment-alt-medical
|
||||||
|
- comment-medical
|
||||||
|
- crutch
|
||||||
|
- crutches
|
||||||
|
- disease
|
||||||
|
- files-medical
|
||||||
|
- head-side-brain
|
||||||
|
- head-side-medical
|
||||||
|
- hospital-user
|
||||||
|
- hospitals
|
||||||
|
- laptop-medical
|
||||||
|
- pager
|
||||||
|
- stretcher
|
||||||
|
- user-md-chat
|
||||||
|
- users-medical
|
||||||
|
- walker
|
||||||
|
label: MedApps
|
||||||
|
url: 'https://medapps.com.au'
|
||||||
|
megaport:
|
||||||
|
icons:
|
||||||
|
- megaport
|
||||||
|
label: Megaport
|
||||||
|
url: 'https://www.megaport.com'
|
||||||
|
mix:
|
||||||
|
icons:
|
||||||
|
- mix
|
||||||
|
label: Mix
|
||||||
|
url: 'http://mix.com'
|
||||||
|
mizuni:
|
||||||
|
icons:
|
||||||
|
- mizuni
|
||||||
|
label: Mizuni
|
||||||
|
url: 'http://www.mizuni.com'
|
||||||
|
mrt:
|
||||||
|
icons:
|
||||||
|
- medrt
|
||||||
|
label: MRT
|
||||||
|
url: 'https://medrt.co.jp'
|
||||||
|
mylogin-info:
|
||||||
|
icons:
|
||||||
|
- user-shield
|
||||||
|
label: mylogin.info
|
||||||
|
url: 'https://www.mylogin.info'
|
||||||
|
napster:
|
||||||
|
icons:
|
||||||
|
- napster
|
||||||
|
label: Napster
|
||||||
|
url: 'http://www.napster.com'
|
||||||
|
nimblr:
|
||||||
|
icons:
|
||||||
|
- nimblr
|
||||||
|
label: Nimblr
|
||||||
|
url: 'https://nimblr.ai'
|
||||||
|
nompse:
|
||||||
|
icons:
|
||||||
|
- chalkboard
|
||||||
|
- chalkboard-teacher
|
||||||
|
label: Nomp.se
|
||||||
|
url: 'https://nomp.se'
|
||||||
|
ns8:
|
||||||
|
icons:
|
||||||
|
- ns8
|
||||||
|
label: NS8
|
||||||
|
url: 'https://www.ns8.com'
|
||||||
|
nutritionix:
|
||||||
|
icons:
|
||||||
|
- nutritionix
|
||||||
|
label: Nutritionix
|
||||||
|
url: 'http://www.nutritionix.com'
|
||||||
|
page4-corporation:
|
||||||
|
icons:
|
||||||
|
- page4
|
||||||
|
label: page4 Corporation
|
||||||
|
url: 'https://en.page4.com'
|
||||||
|
pal-fed:
|
||||||
|
icons:
|
||||||
|
- palfed
|
||||||
|
label: PalFed
|
||||||
|
url: 'https://www.palfed.com'
|
||||||
|
pcsg:
|
||||||
|
icons:
|
||||||
|
- horse-head
|
||||||
|
label: PCSG
|
||||||
|
url: 'https://www.pcsg.de'
|
||||||
|
phabricator:
|
||||||
|
icons:
|
||||||
|
- phabricator
|
||||||
|
label: Phabricator
|
||||||
|
url: 'http://phacility.com'
|
||||||
|
promo-wizard:
|
||||||
|
icons:
|
||||||
|
- hat-wizard
|
||||||
|
label: Promo Wizard
|
||||||
|
url: 'https://promowizard.co.uk'
|
||||||
|
pulse-eight:
|
||||||
|
icons:
|
||||||
|
- volume-mute
|
||||||
|
label: Pulse-Eight
|
||||||
|
url: 'https://pulse-eight.com'
|
||||||
|
purely-interactive:
|
||||||
|
icons:
|
||||||
|
- kiwi-bird
|
||||||
|
label: Purely Interactive
|
||||||
|
url: 'https://www.purelyinteractive.ca'
|
||||||
|
pushed:
|
||||||
|
icons:
|
||||||
|
- pushed
|
||||||
|
label: Pushed
|
||||||
|
url: 'https://pushed.co'
|
||||||
|
quin-scape:
|
||||||
|
icons:
|
||||||
|
- quinscape
|
||||||
|
label: QuinScape
|
||||||
|
url: 'https://www.quinscape.de'
|
||||||
|
reacteurope:
|
||||||
|
icons:
|
||||||
|
- reacteurope
|
||||||
|
label: ReactEurope
|
||||||
|
url: 'https://www.react-europe.org'
|
||||||
|
readme-io:
|
||||||
|
icons:
|
||||||
|
- readme
|
||||||
|
label: Readme.io
|
||||||
|
url: 'http://readme.io'
|
||||||
|
red-river:
|
||||||
|
icons:
|
||||||
|
- red-river
|
||||||
|
label: red river
|
||||||
|
url: 'https://river.red'
|
||||||
|
replyd:
|
||||||
|
icons:
|
||||||
|
- replyd
|
||||||
|
label: replyd
|
||||||
|
resolving:
|
||||||
|
icons:
|
||||||
|
- resolving
|
||||||
|
label: Resolving
|
||||||
|
url: 'https://resolving.com'
|
||||||
|
rev-io:
|
||||||
|
icons:
|
||||||
|
- rev
|
||||||
|
label: Rev.io
|
||||||
|
url: 'https://rev.io'
|
||||||
|
rock-rms:
|
||||||
|
icons:
|
||||||
|
- rockrms
|
||||||
|
label: Rock RMS
|
||||||
|
url: 'http://rockrms.com'
|
||||||
|
rocket-chat:
|
||||||
|
icons:
|
||||||
|
- comment
|
||||||
|
- comment-alt
|
||||||
|
- comment-alt-check
|
||||||
|
- comment-alt-dots
|
||||||
|
- comment-alt-edit
|
||||||
|
- comment-alt-exclamation
|
||||||
|
- comment-alt-lines
|
||||||
|
- comment-alt-minus
|
||||||
|
- comment-alt-plus
|
||||||
|
- comment-alt-slash
|
||||||
|
- comment-alt-smile
|
||||||
|
- comment-alt-times
|
||||||
|
- comment-check
|
||||||
|
- comment-dots
|
||||||
|
- comment-edit
|
||||||
|
- comment-exclamation
|
||||||
|
- comment-lines
|
||||||
|
- comment-minus
|
||||||
|
- comment-plus
|
||||||
|
- comment-slash
|
||||||
|
- comment-smile
|
||||||
|
- comment-times
|
||||||
|
- comments
|
||||||
|
- comments-alt
|
||||||
|
- frown
|
||||||
|
- meh
|
||||||
|
- phone
|
||||||
|
- phone-plus
|
||||||
|
- phone-slash
|
||||||
|
- poo
|
||||||
|
- quote-left
|
||||||
|
- quote-right
|
||||||
|
- rocketchat
|
||||||
|
- smile
|
||||||
|
- smile-plus
|
||||||
|
- video
|
||||||
|
- video-plus
|
||||||
|
- video-slash
|
||||||
|
label: Rocket.Chat
|
||||||
|
url: 'https://rocket.chat'
|
||||||
|
rodney-oliver:
|
||||||
|
icons:
|
||||||
|
- folder-minus
|
||||||
|
- folder-plus
|
||||||
|
label: Rodney Oliver
|
||||||
|
schlix:
|
||||||
|
icons:
|
||||||
|
- schlix
|
||||||
|
label: SCHLIX
|
||||||
|
url: 'http://schlix.com'
|
||||||
|
search-eng-in:
|
||||||
|
icons:
|
||||||
|
- searchengin
|
||||||
|
label: SearchEng.in
|
||||||
|
url: 'http://searcheng.in'
|
||||||
|
service-stack:
|
||||||
|
icons:
|
||||||
|
- servicestack
|
||||||
|
label: ServiceStack
|
||||||
|
url: 'https://servicestack.net'
|
||||||
|
shawn-storie:
|
||||||
|
icons:
|
||||||
|
- teeth
|
||||||
|
- teeth-open
|
||||||
|
label: Shawn Storie
|
||||||
|
shopware:
|
||||||
|
icons:
|
||||||
|
- shopware
|
||||||
|
label: Shopware
|
||||||
|
url: 'https://shopware.de'
|
||||||
|
shp:
|
||||||
|
icons:
|
||||||
|
- school
|
||||||
|
label: SHP
|
||||||
|
url: 'http://shp.com'
|
||||||
|
silicon-barn-inc:
|
||||||
|
icons:
|
||||||
|
- project-diagram
|
||||||
|
label: Silicon Barn Inc
|
||||||
|
url: 'https://siliconbarn.com'
|
||||||
|
sistrix:
|
||||||
|
icons:
|
||||||
|
- sistrix
|
||||||
|
label: SISTRIX
|
||||||
|
url: 'https://www.sistrix.de'
|
||||||
|
smup:
|
||||||
|
icons:
|
||||||
|
- shoe-prints
|
||||||
|
label: Smup
|
||||||
|
url: 'https://www.atomsoftware.com.au'
|
||||||
|
speakap:
|
||||||
|
icons:
|
||||||
|
- speakap
|
||||||
|
label: Speakap
|
||||||
|
url: 'https://speakap.com'
|
||||||
|
stay-linked:
|
||||||
|
icons:
|
||||||
|
- barcode-alt
|
||||||
|
- barcode-read
|
||||||
|
- barcode-scan
|
||||||
|
- box
|
||||||
|
- box-check
|
||||||
|
- boxes
|
||||||
|
- clipboard-check
|
||||||
|
- clipboard-list
|
||||||
|
- conveyor-belt
|
||||||
|
- conveyor-belt-alt
|
||||||
|
- dolly
|
||||||
|
- dolly-empty
|
||||||
|
- dolly-flatbed
|
||||||
|
- dolly-flatbed-alt
|
||||||
|
- dolly-flatbed-empty
|
||||||
|
- forklift
|
||||||
|
- hand-holding-box
|
||||||
|
- hand-receiving
|
||||||
|
- inventory
|
||||||
|
- pallet
|
||||||
|
- pallet-alt
|
||||||
|
- scanner
|
||||||
|
- scanner-keyboard
|
||||||
|
- scanner-touchscreen
|
||||||
|
- shipping-fast
|
||||||
|
- shipping-timed
|
||||||
|
- tablet-rugged
|
||||||
|
- truck
|
||||||
|
- warehouse
|
||||||
|
- warehouse-alt
|
||||||
|
label: StayLinked
|
||||||
|
url: 'https://www.staylinked.com'
|
||||||
|
sticker-mule:
|
||||||
|
icons:
|
||||||
|
- sticker-mule
|
||||||
|
label: Sticker Mule
|
||||||
|
url: 'https://stickermule.com'
|
||||||
|
studio-vinari:
|
||||||
|
icons:
|
||||||
|
- studiovinari
|
||||||
|
label: Studio Vinari
|
||||||
|
url: 'https://studiovinari.com'
|
||||||
|
supple:
|
||||||
|
icons:
|
||||||
|
- ad
|
||||||
|
- analytics
|
||||||
|
- badge-check
|
||||||
|
- badge-dollar
|
||||||
|
- badge-percent
|
||||||
|
- bullhorn
|
||||||
|
- bullseye
|
||||||
|
- bullseye-arrow
|
||||||
|
- bullseye-pointer
|
||||||
|
- comment-alt-dollar
|
||||||
|
- comment-dollar
|
||||||
|
- comments-alt-dollar
|
||||||
|
- comments-dollar
|
||||||
|
- envelope-open-dollar
|
||||||
|
- envelope-open-text
|
||||||
|
- funnel-dollar
|
||||||
|
- gift-card
|
||||||
|
- lightbulb-dollar
|
||||||
|
- lightbulb-exclamation
|
||||||
|
- lightbulb-on
|
||||||
|
- lightbulb-slash
|
||||||
|
- mail-bulk
|
||||||
|
- megaphone
|
||||||
|
- poll
|
||||||
|
- poll-h
|
||||||
|
- search-dollar
|
||||||
|
- search-location
|
||||||
|
- supple
|
||||||
|
- user-crown
|
||||||
|
- users-crown
|
||||||
|
label: Supple
|
||||||
|
url: 'https://supple.com.au'
|
||||||
|
the-red-yeti:
|
||||||
|
icons:
|
||||||
|
- the-red-yeti
|
||||||
|
label: The Red Yeti
|
||||||
|
url: 'http://theredyeti.com'
|
||||||
|
the-us-sunnah-foundation:
|
||||||
|
icons:
|
||||||
|
- book-heart
|
||||||
|
- box-heart
|
||||||
|
- box-usd
|
||||||
|
- dollar-sign
|
||||||
|
- donate
|
||||||
|
- dove
|
||||||
|
- gift
|
||||||
|
- globe
|
||||||
|
- hand-heart
|
||||||
|
- hand-holding-heart
|
||||||
|
- hand-holding-seedling
|
||||||
|
- hand-holding-usd
|
||||||
|
- hand-holding-water
|
||||||
|
- hands-heart
|
||||||
|
- hands-helping
|
||||||
|
- hands-usd
|
||||||
|
- handshake
|
||||||
|
- handshake-alt
|
||||||
|
- heart
|
||||||
|
- heart-circle
|
||||||
|
- heart-square
|
||||||
|
- home-heart
|
||||||
|
- leaf
|
||||||
|
- leaf-heart
|
||||||
|
- parachute-box
|
||||||
|
- piggy-bank
|
||||||
|
- ribbon
|
||||||
|
- seedling
|
||||||
|
- usd-circle
|
||||||
|
- usd-square
|
||||||
|
label: The us-Sunnah Foundation
|
||||||
|
url: 'https://www.ussunnah.org'
|
||||||
|
themeco:
|
||||||
|
icons:
|
||||||
|
- themeco
|
||||||
|
label: Themeco
|
||||||
|
url: 'https://theme.co'
|
||||||
|
think-peaks:
|
||||||
|
icons:
|
||||||
|
- think-peaks
|
||||||
|
label: Think Peaks
|
||||||
|
url: 'https://thinkpeaks.com/'
|
||||||
|
typo3:
|
||||||
|
icons:
|
||||||
|
- typo3
|
||||||
|
label: Typo3
|
||||||
|
url: 'https://typo3.org'
|
||||||
|
uniregistry:
|
||||||
|
icons:
|
||||||
|
- uniregistry
|
||||||
|
label: Uniregistry
|
||||||
|
url: 'https://uniregistry.com'
|
||||||
|
us-sunnah-foundation:
|
||||||
|
icons:
|
||||||
|
- ussunnah
|
||||||
|
label: us-Sunnah Foundation
|
||||||
|
url: 'https://www.ussunnah.org'
|
||||||
|
vaadin:
|
||||||
|
icons:
|
||||||
|
- vaadin
|
||||||
|
label: Vaadin
|
||||||
|
url: 'http://vaadin.com'
|
||||||
|
via:
|
||||||
|
icons:
|
||||||
|
- car-crash
|
||||||
|
- draw-circle
|
||||||
|
- draw-polygon
|
||||||
|
- draw-square
|
||||||
|
- house-damage
|
||||||
|
- layer-group
|
||||||
|
- layer-minus
|
||||||
|
- layer-plus
|
||||||
|
- skull-crossbones
|
||||||
|
- user-injured
|
||||||
|
label: VIA Traffic Software Solutions
|
||||||
|
url: 'https://www.via.software'
|
||||||
|
victor-costan:
|
||||||
|
icons:
|
||||||
|
- otter
|
||||||
|
label: Staphany Park and Victor Costan
|
||||||
|
vnv:
|
||||||
|
icons:
|
||||||
|
- vnv
|
||||||
|
label: VNV
|
||||||
|
url: 'https://www.vnv.ch'
|
||||||
|
weedable:
|
||||||
|
icons:
|
||||||
|
- bong
|
||||||
|
- cannabis
|
||||||
|
- hippo
|
||||||
|
- joint
|
||||||
|
- mortar-pestle
|
||||||
|
- prescription
|
||||||
|
label: Weedable
|
||||||
|
url: 'https://www.weedable.com'
|
||||||
|
whmcs:
|
||||||
|
icons:
|
||||||
|
- whmcs
|
||||||
|
label: WHMCS
|
||||||
|
url: 'https://www.whmcs.com'
|
||||||
|
workrails:
|
||||||
|
icons:
|
||||||
|
- briefcase
|
||||||
|
label: WorkRails
|
||||||
|
url: 'https://www.workrails.com'
|
||||||
|
wpressr:
|
||||||
|
icons:
|
||||||
|
- wpressr
|
||||||
|
label: wpressr
|
||||||
|
url: 'https://wpressr.com'
|
20
nodejs/public/scss/_animated.scss
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Animated Icons
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-spin {
|
||||||
|
animation: fa-spin 2s infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-pulse {
|
||||||
|
animation: fa-spin 1s infinite steps(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
20
nodejs/public/scss/_bordered-pulled.scss
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Bordered & Pulled
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-border {
|
||||||
|
border: solid .08em $fa-border-color;
|
||||||
|
border-radius: .1em;
|
||||||
|
padding: .2em .25em .15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-pull-left { float: left; }
|
||||||
|
.#{$fa-css-prefix}-pull-right { float: right; }
|
||||||
|
|
||||||
|
.#{$fa-css-prefix},
|
||||||
|
.fas,
|
||||||
|
.far,
|
||||||
|
.fal,
|
||||||
|
.fab {
|
||||||
|
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||||
|
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||||
|
}
|
21
nodejs/public/scss/_core.scss
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Base Class Definition
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix},
|
||||||
|
.fas,
|
||||||
|
.far,
|
||||||
|
.fal,
|
||||||
|
.fad,
|
||||||
|
.fab {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-rendering: auto;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
%fa-icon {
|
||||||
|
@include fa-icon;
|
||||||
|
}
|
6
nodejs/public/scss/_fixed-width.scss
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
// Fixed Width Icons
|
||||||
|
// -------------------------
|
||||||
|
.#{$fa-css-prefix}-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: $fa-fw-width;
|
||||||
|
}
|
2302
nodejs/public/scss/_icons.scss
Normal file
23
nodejs/public/scss/_larger.scss
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Icon Sizes
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
// makes the font 33% larger relative to the icon container
|
||||||
|
.#{$fa-css-prefix}-lg {
|
||||||
|
font-size: (4em / 3);
|
||||||
|
line-height: (3em / 4);
|
||||||
|
vertical-align: -.0667em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-xs {
|
||||||
|
font-size: .75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-sm {
|
||||||
|
font-size: .875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@for $i from 1 through 10 {
|
||||||
|
.#{$fa-css-prefix}-#{$i}x {
|
||||||
|
font-size: $i * 1em;
|
||||||
|
}
|
||||||
|
}
|
18
nodejs/public/scss/_list.scss
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// List Icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: $fa-li-width * 5/4;
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
|
> li { position: relative; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-li {
|
||||||
|
left: -$fa-li-width;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: $fa-li-width;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
56
nodejs/public/scss/_mixins.scss
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// Mixins
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
@mixin fa-icon {
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin fa-icon-rotate($degrees, $rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
|
||||||
|
transform: rotate($degrees);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin fa-icon-flip($horiz, $vert, $rotation) {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
|
||||||
|
transform: scale($horiz, $vert);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Only display content to screen readers. A la Bootstrap 4.
|
||||||
|
//
|
||||||
|
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||||
|
|
||||||
|
@mixin sr-only {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||||
|
//
|
||||||
|
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||||
|
//
|
||||||
|
// Credit: HTML5 Boilerplate
|
||||||
|
|
||||||
|
@mixin sr-only-focusable {
|
||||||
|
&:active,
|
||||||
|
&:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
24
nodejs/public/scss/_rotated-flipped.scss
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Rotated & Flipped Icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
|
||||||
|
.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
|
||||||
|
.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
|
||||||
|
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
|
||||||
|
.#{$fa-css-prefix}-flip-both, .#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }
|
||||||
|
|
||||||
|
// Hook for IE8-9
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
:root {
|
||||||
|
.#{$fa-css-prefix}-rotate-90,
|
||||||
|
.#{$fa-css-prefix}-rotate-180,
|
||||||
|
.#{$fa-css-prefix}-rotate-270,
|
||||||
|
.#{$fa-css-prefix}-flip-horizontal,
|
||||||
|
.#{$fa-css-prefix}-flip-vertical,
|
||||||
|
.#{$fa-css-prefix}-flip-both {
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
|
}
|
5
nodejs/public/scss/_screen-reader.scss
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Screen Readers
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.sr-only { @include sr-only; }
|
||||||
|
.sr-only-focusable { @include sr-only-focusable; }
|
2066
nodejs/public/scss/_shims.scss
Normal file
31
nodejs/public/scss/_stacked.scss
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Stacked Icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-stack {
|
||||||
|
display: inline-block;
|
||||||
|
height: 2em;
|
||||||
|
line-height: 2em;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: ($fa-fw-width*2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-stack-1x,
|
||||||
|
.#{$fa-css-prefix}-stack-2x {
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-stack-1x {
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-stack-2x {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-inverse {
|
||||||
|
color: $fa-inverse;
|
||||||
|
}
|
2319
nodejs/public/scss/_variables.scss
Normal file
23
nodejs/public/scss/brands.scss
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: $fa-font-display;
|
||||||
|
src: url('#{$fa-font-path}/fa-brands-400.eot');
|
||||||
|
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||||
|
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
1916
nodejs/public/scss/duotone.scss
Normal file
16
nodejs/public/scss/fontawesome.scss
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
@import 'core';
|
||||||
|
@import 'larger';
|
||||||
|
@import 'fixed-width';
|
||||||
|
@import 'list';
|
||||||
|
@import 'bordered-pulled';
|
||||||
|
@import 'animated';
|
||||||
|
@import 'rotated-flipped';
|
||||||
|
@import 'stacked';
|
||||||
|
@import 'icons';
|
||||||
|
@import 'screen-reader';
|
23
nodejs/public/scss/light.scss
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
font-display: $fa-font-display;
|
||||||
|
src: url('#{$fa-font-path}/fa-light-300.eot');
|
||||||
|
src: url('#{$fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$fa-font-path}/fa-light-300.woff2') format('woff2'),
|
||||||
|
url('#{$fa-font-path}/fa-light-300.woff') format('woff'),
|
||||||
|
url('#{$fa-font-path}/fa-light-300.ttf') format('truetype'),
|
||||||
|
url('#{$fa-font-path}/fa-light-300.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fal {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
23
nodejs/public/scss/regular.scss
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: $fa-font-display;
|
||||||
|
src: url('#{$fa-font-path}/fa-regular-400.eot');
|
||||||
|
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||||
|
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.far {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
24
nodejs/public/scss/solid.scss
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: $fa-font-display;
|
||||||
|
src: url('#{$fa-font-path}/fa-solid-900.eot');
|
||||||
|
src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||||
|
url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||||
|
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||||
|
url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa,
|
||||||
|
.fas {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
6
nodejs/public/scss/v4-shims.scss
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 5.14.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
*/
|
||||||
|
@import 'variables';
|
||||||
|
@import 'shims';
|
1354
nodejs/public/sprites/brands.svg
Normal file
After Width: | Height: | Size: 448 KiB |
5561
nodejs/public/sprites/duotone.svg
Normal file
After Width: | Height: | Size: 1.4 MiB |
5560
nodejs/public/sprites/light.svg
Normal file
After Width: | Height: | Size: 1.6 MiB |
5560
nodejs/public/sprites/regular.svg
Normal file
After Width: | Height: | Size: 1.4 MiB |
5560
nodejs/public/sprites/solid.svg
Normal file
After Width: | Height: | Size: 1.2 MiB |
1
nodejs/public/svgs/brands/500px.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
nodejs/public/svgs/brands/accessible-icon.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"/></svg>
|
After Width: | Height: | Size: 775 B |
1
nodejs/public/svgs/brands/accusoft.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"/></svg>
|
After Width: | Height: | Size: 852 B |
1
nodejs/public/svgs/brands/acquisitions-incorporated.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
nodejs/public/svgs/brands/adn.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"/></svg>
|
After Width: | Height: | Size: 267 B |
1
nodejs/public/svgs/brands/adobe.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M315.5 64h170.9v384L315.5 64zm-119 0H25.6v384L196.5 64zM256 206.1L363.5 448h-73l-30.7-76.8h-78.7L256 206.1z"/></svg>
|
After Width: | Height: | Size: 187 B |
1
nodejs/public/svgs/brands/adversal.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
nodejs/public/svgs/brands/affiliatetheme.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"/></svg>
|
After Width: | Height: | Size: 404 B |
1
nodejs/public/svgs/brands/airbnb.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z"/></svg>
|
After Width: | Height: | Size: 849 B |
1
nodejs/public/svgs/brands/algolia.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"/></svg>
|
After Width: | Height: | Size: 907 B |
1
nodejs/public/svgs/brands/alipay.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"/></svg>
|
After Width: | Height: | Size: 745 B |