From e9666458c483d4b895e01b241d0207e6047fb00c Mon Sep 17 00:00:00 2001 From: Linus Aarnio <42450444+linusaarnio@users.noreply.github.com> Date: Thu, 16 Dec 2021 18:41:37 +0100 Subject: [PATCH] Select an image to display for credit cards based on the brand. (#537) Co-authored-by: Hinton --- angular/src/components/icon.component.ts | 23 +++++++++ angular/src/images/cards/amex-dark.png | Bin 0 -> 773 bytes angular/src/images/cards/amex-light.png | Bin 0 -> 773 bytes angular/src/images/cards/diners_club-dark.png | Bin 0 -> 783 bytes .../src/images/cards/diners_club-light.png | Bin 0 -> 713 bytes angular/src/images/cards/discover-dark.png | Bin 0 -> 808 bytes angular/src/images/cards/discover-light.png | Bin 0 -> 830 bytes angular/src/images/cards/jcb-dark.png | Bin 0 -> 836 bytes angular/src/images/cards/jcb-light.png | Bin 0 -> 798 bytes angular/src/images/cards/maestro-dark.png | Bin 0 -> 752 bytes angular/src/images/cards/maestro-light.png | Bin 0 -> 820 bytes angular/src/images/cards/mastercard-dark.png | Bin 0 -> 737 bytes angular/src/images/cards/mastercard-light.png | Bin 0 -> 757 bytes angular/src/images/cards/union_pay-dark.png | Bin 0 -> 1255 bytes angular/src/images/cards/union_pay-light.png | Bin 0 -> 1245 bytes angular/src/images/cards/visa-dark.png | Bin 0 -> 548 bytes angular/src/images/cards/visa-light.png | Bin 0 -> 590 bytes angular/src/scss/icons.scss | 44 ++++++++++++++++++ 18 files changed, 67 insertions(+) create mode 100644 angular/src/images/cards/amex-dark.png create mode 100644 angular/src/images/cards/amex-light.png create mode 100644 angular/src/images/cards/diners_club-dark.png create mode 100644 angular/src/images/cards/diners_club-light.png create mode 100644 angular/src/images/cards/discover-dark.png create mode 100644 angular/src/images/cards/discover-light.png create mode 100644 angular/src/images/cards/jcb-dark.png create mode 100644 angular/src/images/cards/jcb-light.png create mode 100644 angular/src/images/cards/maestro-dark.png create mode 100644 angular/src/images/cards/maestro-light.png create mode 100644 angular/src/images/cards/mastercard-dark.png create mode 100644 angular/src/images/cards/mastercard-light.png create mode 100644 angular/src/images/cards/union_pay-dark.png create mode 100644 angular/src/images/cards/union_pay-light.png create mode 100644 angular/src/images/cards/visa-dark.png create mode 100644 angular/src/images/cards/visa-light.png create mode 100644 angular/src/scss/icons.scss diff --git a/angular/src/components/icon.component.ts b/angular/src/components/icon.component.ts index a32948cbae1..d30ce20e8ca 100644 --- a/angular/src/components/icon.component.ts +++ b/angular/src/components/icon.component.ts @@ -18,6 +18,21 @@ const IconMap: any = { "fa-apple": String.fromCharCode(0xf179), }; +/** + * Provides a mapping from supported card brands to + * the filenames of icon that should be present in images/cards folder of clients. + */ +const cardIcons: Record = { + Visa: "card-visa", + Mastercard: "card-mastercard", + Amex: "card-amex", + Discover: "card-discover", + "Diners Club": "card-diners-club", + JCB: "card-jcb", + Maestro: "card-maestro", + UnionPay: "card-union-pay", +}; + @Component({ selector: "app-vault-icon", templateUrl: "icon.component.html", @@ -59,6 +74,7 @@ export class IconComponent implements OnChanges { break; case CipherType.Card: this.icon = "fa-credit-card"; + this.setCardIcon(); break; case CipherType.Identity: this.icon = "fa-id-card-o"; @@ -102,4 +118,11 @@ export class IconComponent implements OnChanges { this.image = null; } } + + private setCardIcon() { + const brand = this.cipher.card.brand; + if (this.imageEnabled && brand in cardIcons) { + this.icon = "credit-card-icon " + cardIcons[brand]; + } + } } diff --git a/angular/src/images/cards/amex-dark.png b/angular/src/images/cards/amex-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1b075975dbcdcd2f24465c3718497d2999758f GIT binary patch literal 773 zcmV+g1N!`lP)>;Q4j|NsABrr;oh)PT6=-|hK8l-j@C z^B{uM5PH$?_WYp9?Vrl*&*b(ni`Rd+=Wws&kiqG%)9_H8-A|p}&*k-x!0H5^x&i~zSRde&X?s-=3?091tkTsX)KDa=@Si@{V$T40&LuDFL=X zo~sLB;(Bg)3WWIq?#>oIbYoQ2)YbQNHoD-%APS-*sVC1(&xPd(8>}sJ1{!6eLZ3SeOQ5b@feB@j=lru%v)@Ma^kHhP{m>#!QtLmhL-IbQ2{yRfxkICV1qz`*b2x1&dwRJ z=2YsF94mz@VmbH$6!4j-59YoTlp@CgcU|UB5q4A_lzx!9JU82UT_QyCqMTvkEvXG)qRPCMiV9_MQ4V&2c}khGNQ zMfZu?_JW@KI8k+KlIiqLyZNEINZTjX;k|!D@BM!O8;ZSS7+?&300000NkvXXu0mjf D##w7Z literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/amex-light.png b/angular/src/images/cards/amex-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1b075975dbcdcd2f24465c3718497d2999758f GIT binary patch literal 773 zcmV+g1N!`lP)>;Q4j|NsABrr;oh)PT6=-|hK8l-j@C z^B{uM5PH$?_WYp9?Vrl*&*b(ni`Rd+=Wws&kiqG%)9_H8-A|p}&*k-x!0H5^x&i~zSRde&X?s-=3?091tkTsX)KDa=@Si@{V$T40&LuDFL=X zo~sLB;(Bg)3WWIq?#>oIbYoQ2)YbQNHoD-%APS-*sVC1(&xPd(8>}sJ1{!6eLZ3SeOQ5b@feB@j=lru%v)@Ma^kHhP{m>#!QtLmhL-IbQ2{yRfxkICV1qz`*b2x1&dwRJ z=2YsF94mz@VmbH$6!4j-59YoTlp@CgcU|UB5q4A_lzx!9JU82UT_QyCqMTvkEvXG)qRPCMiV9_MQ4V&2c}khGNQ zMfZu?_JW@KI8k+KlIiqLyZNEINZTjX;k|!D@BM!O8;ZSS7+?&300000NkvXXu0mjf D##w7Z literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/diners_club-dark.png b/angular/src/images/cards/diners_club-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d23233eb868ab2853671392b7aabcd55d6a0b9 GIT binary patch literal 783 zcmV+q1MvKbP)?x` z5oetiUye1B%E8|6qRi)myxvu!(kDSxqRr!V_ec7GI5Yv)ZT^a|59>N7}NDvq&D< zY8hzFoQ3iM&45xKy~ZVA%KSCq?}m8P7{NtKc{>I~i_i6Yp!(1#+0IodLP0E~tWZ*d zXcU@ngo>+)Py~>Slb|yxho%sudlR4tgy#;%BT{6A5(v=gO9APf1*!qQcYX2O zPrs9Q2$i)NdIRaU@g*q01F1;&gwnwXaS&cNAP9Be`lNH*1iisebPz%*BPAK2wEMGw zzacoPk^sZUAr41+VG6;%Z5$Cw#-Rwp_PU}6VM!tB+c+bN9#Nvaz-qGgslf>gyqSE>L`_Sg|veoOM(@A3h000Pd zQchC<-_O5*Umy^g&-vK^00Iq3L_t(o!|m5=bE_Z_24I>?;}W?DqN$g*|NmDWJ44tV zP)QD%IWuSaeoG8bc2N--W0%vB7v*qfKY4%S#d&*QpvAdei*j3}3p;cESrz7!^AkJp zTUDGJKQhj*<71flS)B+ZFENP$BKA(VPj(helU;1(!^!z5tD zHuMb*`C|%&bI>3(Y(vhURoO-mmNb#xwxPzCt098$lK_m|gj#=0twA5jBzMvFyOdqB-jcn7!D21@OZcCc!T9k!k2VLkcIuO#yJqQQb6-l(D9{JdA#HD)| z=^%PuXCU0fC=qSDLOG(!Krv7s?P^CsQ~xjf?0*LxU-Q0p vV5ir-L7v&=HSe@9e9K;PK9n)X(}l4=&6Si7S+2pm00000NkvXXu0mjfGeTH0 literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/discover-dark.png b/angular/src/images/cards/discover-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed6f6f942264a62e11813df4e2ed85411705f81 GIT binary patch literal 808 zcmV+@1K0eCP)u#OXKj6ehL@S1%goNPv$pc`^GQxsUPLxYO;tQWNxr|rzGW$nRWMdsVLLcG z;&LR|+1qwaGn!d0)@~-t%+HF9l1Mx`aCCX5T`Z)gs%l9!f>AQEVJymOC~HYIN0}H2 z0000HbW%=J0N=lrU?33h*Ux~@uYi9*5C%cQNdN!>DoI2^R9M69*I9GgKnw@)4JG90 zDQhp*HU?9h`$+ozzgs1F92aIN>8u}`8U7E9VLiW<iXpDDP!fh=-#3ZT*C8YyGqgZv6GOC$?$=ouQ*Dson!<(6^_E#!@@Fr*CaNzB(N z_(6=rj(7x!Z#2X00nwpD6oKbU+!I7mwl?7=#M-7r$2kjuBp@j)UGDwY8g}6O~ zuz?`A8bgkufsTJd4hw0yt0-V)-~^K18KM|6LvsmP2i4SY(A;u2BO5|_3YmbGAxqa= z8kdvv02ZdLvz+sQWFj48*3@bT>7t^RWkI9%p&2UrB52sOkL_1et8F0f{a!loxbGm! z%0hP_r5G0w`7CUvQcnh)N&}@kkcJQ3x`ED9ni85A!yr+0oxT0^q2B)g3Yzx>Wy@Zm z`7TLR56tXm(g$?llOGRd?W?HbnRrN;c&H{O9+D>&4`mBtqM`Ybdy0mnm}n@I$;3jN z*)+MF2ld`sUX#D(Q4Ow7_ds*GmQU*WN-5IN^?X;OyNi`%$7x&2)q*bl%ih!rLEi01 mhEHe4%Rd+ok6*t2Amlgxq9NYlwX%u;0000P)X8-^I3v^OWQvlz;AP~=hU|-LFw=t%^0006pNkl8nPdRNEhFD|LcS z&JERB#cS1V5UmNv)Y zbB7y#_Xryky@H~QtrTgOWYQ()GNt(8b_-4A0n(D4W~XfTpz%1bw?AjCS=uPupJ|%b z&Oq4BR&KW+7a4c|gqU55S=PU<$gW`S|OP;Vri@r8P`8!X8es^{Vf6$9zZyHMlJ^V-u03wl2<>LO?zIzje| z(HzJ}vQX+OXs*w+`+5BK{raQ%@q#n$5l`93<%J*9Xf=c2Ck1=YrAl7PApigX07*qo IM6N<$g0_C7tN;K2 literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/jcb-dark.png b/angular/src/images/cards/jcb-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb484d91e5a7302b07365ebbfe47e8cd06f4633 GIT binary patch literal 836 zcmV-K1H1f*P)u$J(B_rB+}PRMcB#|L%+5)T z!?Clr=c}`qnVyP`lG0^#V`ptVK}o7<>d^oI01I?dPE!Ei&%a*~fFK}%e^WtB#sB~T z{z*hZR9M69*Vl5JKoo%CwTe?X0z-rWv9>}-y~~bUdQaZ}b+Sv5V82=x|NGm@)Pg8+p&bqsbplcXx#CjubyPYgV9UcfYk%8_y zdB~J_pjYsPfpCX`W}J}6Kob_~azY{lsZY=Yf;JjyOd&T^EsSw*;{S9Av^`4;xF8Kk zeHkXo3U>7fl*wF{fTC8)!dZkqPN0Bn{gw{1k`PY!|2&3H$&qY2oRx&;owPkPqk~-% zav4b1^)-D(H&P`iZKMZ0(EAK@chAx65gE1|&=5$MG34I^N$Y4ThK!9zoj%ay7y>0i z+$)87BIp)Fq_>7P0NSM}gN5mYC#q`gK1h=U(Qx2snh_%~{4kAoZEislR`OrAZXbYT zQS{{LRQ57U>xA>GdAM++cNBD!Zpnfih7NE4skG|}suh~DkpGX+n1y-_bjt~84CDX< z1@M~(l7WE~2C~g}0tX}y8AyRVv|PjW-yyF*fE={=203VXW5QRV2r|-!5QTe57EU%b z%^bnSkHWv&lTtmfANKzOYS!a4&~ZIb3$^RH)7E#(rnMT?nC6Q%LVo~LqTQs{{F>_k O0000#@5ju-+3QJ-!_HS{hO^jkymjaF=)x{Rq{iWJymsO2_4niE zh{ufc_W1kp^7GZ%x8Az*`t;M1&40KXXQvlz;AP|7hU|-MAf0kZ9oB#j;>`6pHR9M69*I9F_FciS?XtnLV z_e4=-5f@qn#9iywy}et%|3~VHk)~z_3ylx$wEq_d9)6QB90mv>gXnsAZbwlx@+>2)Po(>qRR~5t>F( z)K0sitK_ZmS6h!st7J&$4i`rJ(21Ay_zJQByHAFoK6La8#{4B+XsX$t+=VL?Sb^Srr*>= z-_VDI92qhs=qV*Ml%cK!wNgT!1g$}W{-%SPunV~z2^zy*NI1LDx(mCI-%Ex@PTa5# z*sKw^ybb{yx8iQB&-Z!!5uo5OP@eYHp#eQ6#l!qTo{~b2(m_R~pigP;aDUmXlVdd| cUn~&v3^hLOTPN|%xBvhE07*qoM6N<$f=djcb^rhX literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/maestro-dark.png b/angular/src/images/cards/maestro-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4879b56fc47f68985a2e8e49a4cccbce928393 GIT binary patch literal 752 zcmV> z001vDJuomkFfc$bG(0afJuWmnFEc$aGd(ahIxjRmFfu(YGCeRbIxjRm>i`=7q2G3M zz(y@O29wLY4I?8@Wzz;91De$=J4fIH9!rDEG>y?aiqHm=%5QeU35~!Heyo#MmmOVs zDMC?!9WK-d9}k<`9hKKuf5;4mwh?%u6mggrYK|IXgrZ1-sX%wo8bCTQJ6000kkQchDq0N)@G&%c20pD^!WU@)amw738O0kug)K~z}7?bnA= z!Y}~F@un0I9O=fQGHe0avWJL!y#EtP^`I5L){c0dcl;mVcOjz*93etFMdOsrBnTlK zN$@moeAb3|8o$E?;f^VbQiMxVCJ7v6QNnKb0po-17%PCY>rSGZcPmrRCyFE+0H4R@#$pNP;UjRw90Oadj z%QBV>Z)gUbSK00yNM%oG1e`nhvtkWM3lB&UL38=5I)F|M3{8O3lh<7Vsf{2!pqmYJ zkA?)HA)KL2MG2%MXbPY=2ZFz?g`gSSLr!Q1ln^9>E?v+Wnj`=zQ6MQO^x%T(aiDnw zs1LVMggK(s2&>ir5IiBb;r9{V+4(3tyPrqv?>j{WeEP?}r@t2X^iu^6$!|bbh%aQ% z=L>0iezP^SaGq=5r20#kTcqo8ixdnt_gcvcf73pNxM`g#+k?{H>9VkW#ySCBBg({0 zX#;9!mfTF+2=zY7SKaTUWv6UoYPqHV=cnHu`W-061`@b56DLDBfoI?xB-s4RJ~$yO ih>)XXEQU`DE93*8%LLh0NtU<(0000+1?I1V(-{bt>;_yIJzvuVw`TY>5;Y)+d><}sZ{Qcka`}OwspxpE8?(pK~=}^Au zFtg<}jnO-b&~J9a_K=&CSC^|kb^h=1kk;`)xaSX>+Z~nH`oG5YfQ_O^g7j~H@lRs! zFhwo zuuN$}hfD2)nsLA)hVx?n@xp;VYbe-0g0bXAh1T6I@*z8S?FlVzEe zT1H5yP){0rcTG_}|VDgy-G~Tmg9mNg#VJXblY#fRe!wNLc9A1)cLi zoe7``wkJqyT9VQ`_X~a#848J71l@4-| y2vMu2O>iV*_q5aLvghqCn~>!gU$edx?IB;CRP+I%fo)a*0000> z001vDJuomkFfc$bGd(XfJuovmFEl(aGd(UeJuWgmFElX#ixEjV=`Fq3I4 zpl~YQkss3rAKwEV?F<+ChY|Wm2mNmb{Zj+}Spi{AG=^d>xqBtB5GC;$6I4ewpKmJC ziXrnR5c+}-_A(6ocnkMC3T;&~Y9un57b?gKA?<_}ZZap!&177zwSmyIh+GW;f}L zH?e;zXKKJK&n!e;#7#D%6Zeud1V)pS2iKFawaBssz%5sH5Bsn TcbISa00000NkvXXu0mjfUKKLh literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/mastercard-light.png b/angular/src/images/cards/mastercard-light.png new file mode 100644 index 0000000000000000000000000000000000000000..f87ae25911d375f66a2f00dd473a6392abfee7fa GIT binary patch literal 757 zcmVh16MpsDtdoArQ=_^LPUAUEs~Dfc!D`bP)-ZwCES1O8b7{pZH~)tmdyjqy-o`nzHC zDHib=6aMYg^?!}|utxlN3;p4^_^-J3kDL3?jr4GT^JZ`FFh=^2AqhP(q5uE@3UpFV zQvl!3Umy^_fWLpPic@C*00GfSL_t(o!|m7EQo=A42H*e!N_%L!XbZJPcEN>Ra9`g4 zp=_A}g#HOgxX>B?%UpbubJC;EY3-al#@D%pvbA$iYjSDQkG?iss+VV ziSjH>je>IObjpZ|>QIg7Fi`Ob{Q)TOTF%IF+Ara1jF-y3Y5K#yy))!FU2PGoIUlkI zroN2d-w6sWZ7rRMDpmBgn0!0b>S~+$80(1)w?S%;4fo5#)&`6z54#rZ0dT07adaObJ5)a2{eq*rke% zAbDlDwr2>n@!BtI15g=2xJ5l<6#)4VvH)brA#*QCylm>FjUn`oKBIk_-IOgq-nS(P zxd56-KS-Se2zUER+UrNWMeu1PuM9&$7i>03W!J*<=oL*#Iw1_v7a#uq{xOY+8fs}MMoYuq z++Hm;z8)q{otfe8?IMMMB{N47FkSHW_R{9%z{=Q(y}LzXjkVU)n8m|YZp!b=a9$#R?8!e{I%%;xEK$Vdv zOM4S`b@Xm?3`}koEn_26Rf!=#J2E?imb3V$s&tB~4_|WfQC3hVQSm}aD?de!B`%sH zEdB8C`_t5Ht*Rr1fE{pdB`jYpIYI9wEu5ARxcJ zu$I~Y00T2gL_t(o!|j(>bJIW+Mg>VIS?OD|uo9@tE$#+vV_FhQ=)L#ed-?wlteAmo z%Zn)X3k+w*^4l5j@m{TD7{wi>ozG7d8RQf81suWVa`}T8_@=1 zaYpun zNGH0j7aboJ9mt6G=tTSVqHUw1x8t5$?AMoe&>Cf5HjxgBJzb&#iKa`mGb7R^I`Yej zNJNQ_R;%Z&!_}+0L>1xLBI0ABb0iv1)I~MD4Ar)tNE9OqZ1hGwXJ|w+iK^(Pm!p%3 zZZHAK0z{LENJNQF;IO(}wC=vTo|s8#)hs5VX%3R`Ib#5GY%FokxWgsm6}25nlt~1f zSC=P;p}5lVYe~HUKZN3xgezRc0bIDJVfPU*wnn1yMAvZAvW6HA@wAN4N3B#cQA)5} zh791f0x8j}Krq{mY{vFv?njiUt3>B7;_eEr`zY4yA(}NbFQ-mNK&?d;m!}Xg4_IQX zkP%U$Ye4k`u39JY28|m08ZI?aYbdA3TsTU!8?giz_IcU4`2aVf3n%J!9n10ZT;Xr*}I8yc*mz?*d z{Pu$i8BzYAJ%(TIz(ZPBxE@>^?Fs_gjuRsNy{J)NUcSOQO6)#bq=*YGuMxE8C5Jp$~S#QkEMl^3M%;ueThHu%5`6=IPH_t5?#uwCV?}T=F Ra!&vN002ovPDHLkV1lCmMkoLP literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/union_pay-light.png b/angular/src/images/cards/union_pay-light.png new file mode 100644 index 0000000000000000000000000000000000000000..2d75aa9070de5b32bc5efc83b242ddec1ba135af GIT binary patch literal 1245 zcmV<31S0#1P)n4C6Ngl#2A?h15}y>)UmzK`ozYPqrCaH zxK(eK5o&Y_J!|t{WwaeJ{_yeq)YVmQm-T#s6L@!~9yXJsy@|fNWPG4SVvRD5iD_7S z5M*;RDq4dnNc`dA-pJ6Sy2p~Fyy~g0N`RC1i;uc^|GR>6WO5& zRs9d0394O><<+%h=wve1u~2O~C-URAmdLHgB%RsgAnu5yoclx)PYykbJ2$k{1<9bM z9J(2Yo}{3AGN>qrw&Kv86!iGdKTTfIixX5t3IfVhQ5OQrRFNKoGF4C z$SUek9@j}glSxQaRK?3^nUhsi1g$d^5)hJ*sAvWo(K7XWMbAkIMUEvPT@F=qxfOhl zmig(e!|hfjXlSi`Uei8px3*1EfWxt}sT0FA9b)PxnN32XqIuvOU)JWq)9457%EAKt z7I^FqKpE()Wmzy7I`9Z_rBE%Go5I6rnVZ7fr|5;)^if&H9>NC7O|X)!cR;&fgu;VC z2unhuq8$!J746_dh&yvvair%b-Vb5ojS|APz z7V3ziA5E-)hF8=^(B4D@*`y4;4#TL!F-R0k3dt+l^RXN>P^NWTClsz#aKR%gia|pw z>icN714dw3P6uusHgATC%`pxQe~Oj^tp%@xV)RAZM%e*{K7ia5G_;}$u&@af0Iy4V zQ5J*EsR6`NkhCHpRVrG=FipcGJceQNp3TAMeWai>Zu+E|hE6wVBAyi5kX0mJ*Rm9( z&`uosev+-R3n}zI4jrBZ(&f;@`FKZPPtcJohfu3diF`T8C-P2Dr#bl-{yqL@pmB9E zJG7*ZD5K|dg1n@R@iXnxM5ZkAGwnH^vU#qKWMjrh#}wr!|Gozv9!)d500000NkvXX Hu0mjfHGyZg literal 0 HcmV?d00001 diff --git a/angular/src/images/cards/visa-dark.png b/angular/src/images/cards/visa-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0705b68e7d47f7c94d982aa8ba2d26eab61b4054 GIT binary patch literal 548 zcmV+<0^9wGP)u!+K}pNZ&#|+%V`pvh^7D#} zlBA}pmzkb@fQ8uE+rGcUeSn5mT48W>d2n-i*xA~Ghql`Q000SeQchC<-@kxgAP~>b zB|4OJ0004VNklBM(ojF65jiDU+) zRNppqNsms6?l-!u+nqt+TqgCZqate6vka(FR7e$6K^0U%ML||W6vaD>1&?0aHrn(c z2U_=mW#BjRZlh@!0*AT*vVxg-GiFOW1G~+#^GviFcN`0uXooG^Bg<}H665+pb~&f> zVGpp2d>%v&nUPr2!fRqfb2?iNw8mZ-J_M)^hxm^Dg&iJw(1>adw3>Kb5X|9%g5C1{ zR~{sTnkCi<6d@WUbH>8G6ujg?@Wt$7LnK^dRFfqQ@`185AVlx6)f70IpqIhWJsY$> zVa|f|kS4sR)Tna73l(){L1+>hj=8U7y==V{dkjg(8z3}fPXm+{GBSe6vH0rW03q*| zUa9quqvHrz3le2PmU9O9JI9I7#hJ;3nUTi){-Akd|J5H`1yxW5eGsTA!+EH-45(9m mnQz*1U)iGWc@5LFy;462ua(aA6>O;h0000iOwztgq`TC|okMaNj z01R|ePE!EizaS9LfM3slU|=QdAB6w_0gFjQK~z}7?U&1zgCGos8Ef0QfaO+Et7zZ< zB`5i5-Lk;VoZ(+E5XqN>Fg*t$MEljKBAu^-b^1`n`Zy7YIMc026Omf+t<+N%>Z#O4 ze5y$nYf_C+>Q)ZADOEugR6!MVD9GHQ*NSEa13qmb^k)B%13i|Gq#ZAMnguy@U6j(< z4q}oUXwqj(TO(~7dFF{|99HBD>12m3dq#$~c@B)f8=`Zb*2g8n&hmMXw1|wrPR=y$ zY-oJtmIpo3S!hZEREs1QhmWvhM;_Fpnt-F0G|q4)cSgZ(Xuah@+^CU#HACUzK+W8g@DyV|~5vV!ly>=FtV_uL~(H`@rJ?@pw`ZOV07*qoM6N<$f@Y&2-T(jq literal 0 HcmV?d00001 diff --git a/angular/src/scss/icons.scss b/angular/src/scss/icons.scss new file mode 100644 index 00000000000..4d2ea4594e4 --- /dev/null +++ b/angular/src/scss/icons.scss @@ -0,0 +1,44 @@ +$card-icons-base: "~@bitwarden/jslib-angular/src/images/cards/"; +$card-icons: ( + "visa": $card-icons-base + "visa-light.png", + "amex": $card-icons-base + "amex-light.png", + "diners-club": $card-icons-base + "diners_club-light.png", + "discover": $card-icons-base + "discover-light.png", + "jcb": $card-icons-base + "jcb-light.png", + "maestro": $card-icons-base + "maestro-light.png", + "mastercard": $card-icons-base + "mastercard-light.png", + "union-pay": $card-icons-base + "union_pay-light.png", +); + +$card-icons-dark: ( + "visa": $card-icons-base + "visa-dark.png", + "amex": $card-icons-base + "amex-dark.png", + "diners-club": $card-icons-base + "diners_club-dark.png", + "discover": $card-icons-base + "discover-dark.png", + "jcb": $card-icons-base + "jcb-dark.png", + "maestro": $card-icons-base + "maestro-dark.png", + "mastercard": $card-icons-base + "mastercard-dark.png", + "union-pay": $card-icons-base + "union_pay-dark.png", +); + +.credit-card-icon { + display: block; // Resolves the parent container being slighly to big + height: 19px; + width: 24px; + background-size: contain; + background-repeat: no-repeat; +} + +@each $name, $url in $card-icons { + .card-#{$name} { + background-image: url("#{$url}"); + } +} + +@each $theme in $dark-icon-themes { + @each $name, $url in $card-icons-dark { + .#{$theme} .card-#{$name} { + background-image: url("#{$url}"); + } + } +}