@miden-npm/angular 2.1.7 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -898,118 +898,43 @@ const urlValidator = () => {
898
898
  };
899
899
  };
900
900
 
901
- var CardSchemes;
902
- (function (CardSchemes) {
903
- CardSchemes[CardSchemes["Visa"] = 1] = "Visa";
904
- CardSchemes[CardSchemes["MasterCard"] = 2] = "MasterCard";
905
- CardSchemes[CardSchemes["Verve"] = 3] = "Verve";
906
- CardSchemes[CardSchemes["MastercardAndVisa"] = 4] = "MastercardAndVisa";
907
- CardSchemes[CardSchemes["AmericanExpress"] = 5] = "AmericanExpress";
908
- CardSchemes[CardSchemes["Discover"] = 6] = "Discover";
909
- CardSchemes[CardSchemes["JCB"] = 7] = "JCB";
910
- CardSchemes[CardSchemes["DinersClub"] = 8] = "DinersClub";
911
- CardSchemes[CardSchemes["Maestro"] = 9] = "Maestro";
912
- CardSchemes[CardSchemes["UnionPay"] = 10] = "UnionPay";
913
- CardSchemes[CardSchemes["UnionPay3DS"] = 11] = "UnionPay3DS";
914
- CardSchemes[CardSchemes["UnionPayNon3DS"] = 12] = "UnionPayNon3DS";
915
- CardSchemes[CardSchemes["UATP"] = 13] = "UATP";
916
- CardSchemes[CardSchemes["PayPak"] = 14] = "PayPak";
917
- CardSchemes[CardSchemes["Jaywan"] = 15] = "Jaywan";
918
- CardSchemes[CardSchemes["Mada"] = 16] = "Mada";
919
- CardSchemes[CardSchemes["MadaVisa"] = 17] = "MadaVisa";
920
- CardSchemes[CardSchemes["MadaMastercard"] = 18] = "MadaMastercard";
921
- CardSchemes[CardSchemes["Unknown"] = 19] = "Unknown";
922
- })(CardSchemes || (CardSchemes = {}));
923
- // ---------- Generic scheme regexes ----------
924
- const VISA_RE = /^4\d{12}(\d{3}){0,2}$/; // 13, 16, 19 digits
925
- const MC_RE = /^(?:5[1-5]\d{14}|2(?:2(?:2[1-9]|[3-9]\d)|[3-6]\d{2}|7(?:[01]\d|20))\d{12})(?:\d{0,3})?$/; // 16-19
926
- const AMEX_RE = /^(34|37)\d{13}$/; // 15
927
- const DISCOVER_RE = /^(?:6011|65|64[4-9]|622(?:12[6-9]|1[3-9]\d|[2-8]\d{2}|9(?:0\d|1\d|2[0-5])))\d{12,15}$/; // 16-19
928
- const JCB_RE = /^(?:35(?:2[8-9]|[3-8]\d))\d{12,15}$/; // 16-19
929
- const DINERS_RE = /^(?:3(?:0[0-5]\d|095|6\d|[89]\d))\d{11,13}$/; // 14-16
930
- const MAESTRO_RE = /^(?:50|5[6-9]|6[0-9])\d{10,17}$/; // 12-19
931
- const UNIONPAY_RE = /^62\d{14,17}$/; // 16-19
932
- const UATP_RE = /^1\d{14}$/; // 15
933
- // ---------- Known local/test BINs ----------
934
- const VERVE_BIN6_RANGES = [
935
- [506099, 506198],
936
- [650002, 650027],
937
- ];
938
- const VERVE_BIN6_SINGLES = new Set([507865, 507866]);
939
- const PAYPAK_BIN6 = new Set([220545, 220543]);
940
- const JAYWAN_BIN7 = new Set([6690109]);
941
- const MADA_ONLY_BIN6 = new Set([968209, 873646]);
942
- const MADA_VISA_BIN6 = new Set([422818, 486094]);
943
- const MADA_MC_BIN6 = new Set([529741, 543357]);
944
- const UNIONPAY_3DS_BIN6 = new Set([620108]);
945
- const UNIONPAY_NON3DS_BIN6 = new Set([621423]);
946
- function cardType(cardNumber) {
947
- const scheme = detect(cardNumber);
948
- return CardSchemes[scheme]; // numeric enum reverse mapping -> name
949
- }
950
- function detect(cardNumber) {
951
- if (!cardNumber || !cardNumber.trim())
952
- return CardSchemes.Unknown;
953
- // Normalize: digits only
954
- const digits = cardNumber.replace(/\D/g, '');
955
- if (digits.length < 12 || digits.length > 19)
956
- return CardSchemes.Unknown;
957
- // ---------- 1) Exact local/test BIN routing FIRST ----------
958
- if (digits.length >= 6) {
959
- const bin6 = parseInt(digits.slice(0, 6), 10);
960
- // mada-only
961
- if (MADA_ONLY_BIN6.has(bin6) && digits.length >= 16 && digits.length <= 19)
962
- return CardSchemes.Mada;
963
- // mada Visa
964
- if (MADA_VISA_BIN6.has(bin6) && VISA_RE.test(digits))
965
- return CardSchemes.MadaVisa;
966
- // mada Mastercard
967
- if (MADA_MC_BIN6.has(bin6) && MC_RE.test(digits))
968
- return CardSchemes.MadaMastercard;
969
- // PayPak
970
- if (PAYPAK_BIN6.has(bin6) && digits.length === 16)
971
- return CardSchemes.PayPak;
972
- // UnionPay test BINs with 3DS status
973
- if (UNIONPAY_3DS_BIN6.has(bin6) && UNIONPAY_RE.test(digits))
974
- return CardSchemes.UnionPay3DS;
975
- if (UNIONPAY_NON3DS_BIN6.has(bin6) && UNIONPAY_RE.test(digits))
976
- return CardSchemes.UnionPayNon3DS;
977
- // Verve
978
- if (isVerve(bin6, digits.length))
979
- return CardSchemes.Verve;
980
- }
981
- if (digits.length >= 7) {
982
- const bin7 = parseInt(digits.slice(0, 7), 10);
983
- // Jaywan
984
- if (JAYWAN_BIN7.has(bin7) && digits.length === 16)
985
- return CardSchemes.Jaywan;
986
- }
987
- // ---------- 2) Generic schemes ----------
988
- if (UATP_RE.test(digits))
989
- return CardSchemes.UATP;
990
- if (AMEX_RE.test(digits))
991
- return CardSchemes.AmericanExpress;
992
- if (DISCOVER_RE.test(digits))
993
- return CardSchemes.Discover;
994
- if (JCB_RE.test(digits))
995
- return CardSchemes.JCB;
996
- if (DINERS_RE.test(digits))
997
- return CardSchemes.DinersClub;
998
- if (MC_RE.test(digits))
999
- return CardSchemes.MasterCard;
1000
- if (VISA_RE.test(digits))
1001
- return CardSchemes.Visa;
1002
- if (UNIONPAY_RE.test(digits))
1003
- return CardSchemes.UnionPay;
1004
- if (MAESTRO_RE.test(digits))
1005
- return CardSchemes.Maestro;
1006
- return CardSchemes.Unknown;
1007
- }
1008
- function isVerve(bin6, length) {
1009
- if (length < 16 || length > 19)
1010
- return false;
1011
- const inRange = VERVE_BIN6_RANGES.some(([start, end]) => bin6 >= start && bin6 <= end);
1012
- return inRange || VERVE_BIN6_SINGLES.has(bin6);
901
+ /**
902
+ * Detects the card type based on the card number
903
+ * @param cardNumber - The card number (can include spaces)
904
+ * @returns The detected card type as a string
905
+ */
906
+ function cardTypeHandler(cardNumber) {
907
+ // Remove spaces and non-digits
908
+ const cleanNumber = cardNumber.replace(/\s/g, "").replace(/\D/g, "");
909
+ // Visa
910
+ if (/^4/.test(cleanNumber)) {
911
+ return "Visa";
912
+ }
913
+ // MasterCard
914
+ if (/^5[1-5]/.test(cleanNumber) || /^2[2-7]/.test(cleanNumber)) {
915
+ return "MasterCard";
916
+ }
917
+ // American Express
918
+ if (/^3[47]/.test(cleanNumber)) {
919
+ return "AmericanExpress";
920
+ }
921
+ // Discover
922
+ if (/^6(?:011|5)/.test(cleanNumber)) {
923
+ return "Discover";
924
+ }
925
+ // JCB
926
+ if (/^35/.test(cleanNumber)) {
927
+ return "JCB";
928
+ }
929
+ // Diners Club
930
+ if (/^3[0689]/.test(cleanNumber)) {
931
+ return "DinersClub";
932
+ }
933
+ // Verve (Nigerian card)
934
+ if (/^506/.test(cleanNumber)) {
935
+ return "Verve";
936
+ }
937
+ return "Unknown";
1013
938
  }
1014
939
 
1015
940
  class InputComponent {
@@ -1794,6 +1719,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1794
1719
  type: Input
1795
1720
  }] } });
1796
1721
 
1722
+ class IconAmexComponent {
1723
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconAmexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1724
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconAmexComponent, isStandalone: true, selector: "icon-amex", ngImport: i0, template: "<svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 -10.769 60 60\"\n enable-background=\"new 0 0 780 500\"\n version=\"1.1\"\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path width=\"780\" height=\"500\" fill=\"#2557D6\" d=\"M0 0h60v38.462H0z\" />\n <path\n d=\"M0.019 18.13h2.88l0.649 -1.501h1.454l0.647 1.501h5.667v-1.147l0.506 1.153h2.942l0.506 -1.169v1.165h14.083l-0.006 -2.463h0.273c0.191 0.006 0.246 0.023 0.246 0.325v2.139h7.284v-0.574c0.588 0.301 1.502 0.574 2.704 0.574h3.064l0.656 -1.501h1.454l0.641 1.501h5.905v-1.425l0.894 1.425h4.732V8.706h-4.683v1.113l-0.655 -1.113h-4.806v1.113l-0.602 -1.113H39.965c-1.087 0 -2.042 0.145 -2.813 0.55v-0.55h-4.479v0.55c-0.491 -0.417 -1.16 -0.55 -1.904 -0.55H14.405l-1.098 2.434 -1.127 -2.434H7.022v1.113l-0.567 -1.113H2.061L0.019 13.187zm18.18 -1.359h-1.728l-0.006 -5.292 -2.444 5.292h-1.48l-2.45 -5.296v5.296h-3.429l-0.647 -1.507h-3.51l-0.654 1.507H0.019l3.018 -6.756h2.505l2.867 6.397V10.014h2.751l2.206 4.583 2.026 -4.583h2.807zm-12.761 -2.909 -1.154 -2.694 -1.147 2.694zm19.639 2.909H19.445V10.014h5.631v1.407h-3.946v1.218h3.851v1.385h-3.851v1.349h3.946zm7.936 -4.937a1.905 1.905 0 0 1 -1.188 1.801c0.369 0.135 0.684 0.372 0.834 0.569 0.238 0.336 0.279 0.636 0.279 1.24v1.327h-1.7l-0.006 -0.852c0 -0.406 0.041 -0.991 -0.266 -1.317 -0.246 -0.237 -0.622 -0.289 -1.228 -0.289h-1.81v2.458h-1.685V10.014h3.877c0.862 0 1.496 0.022 2.041 0.324 0.533 0.302 0.853 0.743 0.853 1.496m-2.131 1.003c-0.232 0.135 -0.505 0.139 -0.834 0.139H28v-1.501h2.075c0.293 0 0.601 0.013 0.799 0.122 0.218 0.099 0.354 0.308 0.354 0.598 0 0.295 -0.129 0.533 -0.347 0.642m4.834 3.933h-1.72V10.014h1.72zm19.966 0h-2.389l-3.195 -5.072V16.77H46.665l-0.656 -1.507h-3.502l-0.636 1.507h-1.973c-0.819 0 -1.857 -0.173 -2.444 -0.748 -0.593 -0.574 -0.9 -1.351 -0.9 -2.579 0 -1.002 0.184 -1.918 0.908 -2.642 0.545 -0.539 1.399 -0.788 2.56 -0.788h1.632v1.448h-1.599c-0.615 0 -0.963 0.087 -1.297 0.4 -0.287 0.284 -0.484 0.823 -0.484 1.53 0 0.724 0.15 1.246 0.464 1.587 0.26 0.268 0.731 0.348 1.175 0.348h0.757l2.376 -5.314h2.526l2.854 6.391V10.014h2.567l2.963 4.705v-4.705h1.726zm-10.246 -2.909 -1.167 -2.693 -1.16 2.693zm14.541 13.698c-0.409 0.574 -1.207 0.865 -2.288 0.865h-3.256V26.975h3.242c0.322 0 0.546 -0.041 0.682 -0.168a0.585 0.585 0 0 0 0.2 -0.441c0 -0.197 -0.082 -0.353 -0.206 -0.447 -0.122 -0.103 -0.3 -0.15 -0.594 -0.15 -1.583 -0.051 -3.557 0.047 -3.557 -2.092 0 -0.98 0.649 -2.012 2.418 -2.012h3.357v-1.345h-3.12c-0.942 0 -1.625 0.216 -2.11 0.552v-0.552h-4.614c-0.738 0 -1.604 0.175 -2.014 0.552v-0.552h-8.24v0.552c-0.655 -0.453 -1.762 -0.552 -2.273 -0.552h-5.435v0.552c-0.519 -0.481 -1.673 -0.552 -2.376 -0.552H23.712l-1.392 1.444 -1.304 -1.444H11.93v9.43H20.845l1.435 -1.466 1.351 1.466 5.495 0.004v-2.219h0.54c0.729 0.011 1.589 -0.018 2.348 -0.332v2.545h4.533v-2.458h0.218c0.279 0 0.306 0.011 0.306 0.278v2.179h13.77c0.874 0 1.788 -0.214 2.294 -0.604v0.604h4.367c0.909 0 1.796 -0.122 2.472 -0.434v-1.757zm-27.303 -3.627c0 1.877 -1.462 2.265 -2.936 2.265H27.635v2.267h-3.276l-2.075 -2.237 -2.157 2.237H13.45V21.706h6.779l2.074 2.216 2.144 -2.216h5.386c1.337 0 2.841 0.355 2.841 2.227m-13.402 3.111h-4.144v-1.345h3.701v-1.379h-3.701V23.09h4.226l1.844 1.97zm6.678 0.774 -2.588 -2.753 2.588 -2.666zm3.828 -3.005h-2.179v-1.721h2.198c0.609 0 1.031 0.237 1.031 0.829 0 0.585 -0.403 0.892 -1.05 0.892m11.412 -3.106h5.626v1.397h-3.947v1.228h3.851v1.379h-3.851v1.345l3.947 0.006v1.403H41.189zm-2.163 3.618c0.375 0.133 0.682 0.37 0.826 0.568 0.238 0.33 0.273 0.638 0.28 1.234v1.34h-1.692v-0.846c0 -0.406 0.041 -1.008 -0.273 -1.323 -0.246 -0.242 -0.622 -0.3 -1.236 -0.3h-1.802v2.469h-1.694V21.706h3.892c0.854 0 1.475 0.036 2.028 0.319 0.532 0.308 0.867 0.73 0.867 1.501a1.895 1.895 0 0 1 -1.194 1.798m-0.953 -0.855c-0.226 0.128 -0.504 0.14 -0.832 0.14h-2.048v-1.518h2.075c0.3 0 0.601 0.006 0.804 0.122 0.218 0.11 0.349 0.319 0.349 0.608s-0.131 0.522 -0.349 0.648m15.217 0.43c0.329 0.326 0.504 0.736 0.504 1.432 0 1.454 -0.948 2.132 -2.648 2.132h-3.283V27.015h3.27c0.32 0 0.546 -0.041 0.689 -0.168 0.116 -0.104 0.199 -0.257 0.199 -0.441 0 -0.197 -0.09 -0.353 -0.206 -0.447 -0.129 -0.103 -0.306 -0.15 -0.6 -0.15 -1.577 -0.051 -3.55 0.047 -3.55 -2.091 0 -0.981 0.642 -2.012 2.41 -2.012h3.38v1.438h-3.092c-0.306 0 -0.506 0.011 -0.675 0.122 -0.184 0.11 -0.253 0.272 -0.253 0.486 0 0.255 0.157 0.428 0.369 0.503 0.178 0.059 0.369 0.076 0.656 0.076l0.907 0.024c0.915 0.021 1.543 0.173 1.925 0.543m6.689 -1.809h-3.072c-0.306 0 -0.51 0.011 -0.682 0.122 -0.178 0.11 -0.246 0.272 -0.246 0.486 0 0.255 0.15 0.428 0.368 0.503 0.178 0.059 0.369 0.076 0.649 0.076l0.913 0.024c0.922 0.022 1.537 0.173 1.913 0.544 0.069 0.051 0.11 0.11 0.157 0.168z\"\n fill=\"#fff\"\n />\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1725
+ }
1726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconAmexComponent, decorators: [{
1727
+ type: Component,
1728
+ args: [{ selector: 'icon-amex', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 -10.769 60 60\"\n enable-background=\"new 0 0 780 500\"\n version=\"1.1\"\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path width=\"780\" height=\"500\" fill=\"#2557D6\" d=\"M0 0h60v38.462H0z\" />\n <path\n d=\"M0.019 18.13h2.88l0.649 -1.501h1.454l0.647 1.501h5.667v-1.147l0.506 1.153h2.942l0.506 -1.169v1.165h14.083l-0.006 -2.463h0.273c0.191 0.006 0.246 0.023 0.246 0.325v2.139h7.284v-0.574c0.588 0.301 1.502 0.574 2.704 0.574h3.064l0.656 -1.501h1.454l0.641 1.501h5.905v-1.425l0.894 1.425h4.732V8.706h-4.683v1.113l-0.655 -1.113h-4.806v1.113l-0.602 -1.113H39.965c-1.087 0 -2.042 0.145 -2.813 0.55v-0.55h-4.479v0.55c-0.491 -0.417 -1.16 -0.55 -1.904 -0.55H14.405l-1.098 2.434 -1.127 -2.434H7.022v1.113l-0.567 -1.113H2.061L0.019 13.187zm18.18 -1.359h-1.728l-0.006 -5.292 -2.444 5.292h-1.48l-2.45 -5.296v5.296h-3.429l-0.647 -1.507h-3.51l-0.654 1.507H0.019l3.018 -6.756h2.505l2.867 6.397V10.014h2.751l2.206 4.583 2.026 -4.583h2.807zm-12.761 -2.909 -1.154 -2.694 -1.147 2.694zm19.639 2.909H19.445V10.014h5.631v1.407h-3.946v1.218h3.851v1.385h-3.851v1.349h3.946zm7.936 -4.937a1.905 1.905 0 0 1 -1.188 1.801c0.369 0.135 0.684 0.372 0.834 0.569 0.238 0.336 0.279 0.636 0.279 1.24v1.327h-1.7l-0.006 -0.852c0 -0.406 0.041 -0.991 -0.266 -1.317 -0.246 -0.237 -0.622 -0.289 -1.228 -0.289h-1.81v2.458h-1.685V10.014h3.877c0.862 0 1.496 0.022 2.041 0.324 0.533 0.302 0.853 0.743 0.853 1.496m-2.131 1.003c-0.232 0.135 -0.505 0.139 -0.834 0.139H28v-1.501h2.075c0.293 0 0.601 0.013 0.799 0.122 0.218 0.099 0.354 0.308 0.354 0.598 0 0.295 -0.129 0.533 -0.347 0.642m4.834 3.933h-1.72V10.014h1.72zm19.966 0h-2.389l-3.195 -5.072V16.77H46.665l-0.656 -1.507h-3.502l-0.636 1.507h-1.973c-0.819 0 -1.857 -0.173 -2.444 -0.748 -0.593 -0.574 -0.9 -1.351 -0.9 -2.579 0 -1.002 0.184 -1.918 0.908 -2.642 0.545 -0.539 1.399 -0.788 2.56 -0.788h1.632v1.448h-1.599c-0.615 0 -0.963 0.087 -1.297 0.4 -0.287 0.284 -0.484 0.823 -0.484 1.53 0 0.724 0.15 1.246 0.464 1.587 0.26 0.268 0.731 0.348 1.175 0.348h0.757l2.376 -5.314h2.526l2.854 6.391V10.014h2.567l2.963 4.705v-4.705h1.726zm-10.246 -2.909 -1.167 -2.693 -1.16 2.693zm14.541 13.698c-0.409 0.574 -1.207 0.865 -2.288 0.865h-3.256V26.975h3.242c0.322 0 0.546 -0.041 0.682 -0.168a0.585 0.585 0 0 0 0.2 -0.441c0 -0.197 -0.082 -0.353 -0.206 -0.447 -0.122 -0.103 -0.3 -0.15 -0.594 -0.15 -1.583 -0.051 -3.557 0.047 -3.557 -2.092 0 -0.98 0.649 -2.012 2.418 -2.012h3.357v-1.345h-3.12c-0.942 0 -1.625 0.216 -2.11 0.552v-0.552h-4.614c-0.738 0 -1.604 0.175 -2.014 0.552v-0.552h-8.24v0.552c-0.655 -0.453 -1.762 -0.552 -2.273 -0.552h-5.435v0.552c-0.519 -0.481 -1.673 -0.552 -2.376 -0.552H23.712l-1.392 1.444 -1.304 -1.444H11.93v9.43H20.845l1.435 -1.466 1.351 1.466 5.495 0.004v-2.219h0.54c0.729 0.011 1.589 -0.018 2.348 -0.332v2.545h4.533v-2.458h0.218c0.279 0 0.306 0.011 0.306 0.278v2.179h13.77c0.874 0 1.788 -0.214 2.294 -0.604v0.604h4.367c0.909 0 1.796 -0.122 2.472 -0.434v-1.757zm-27.303 -3.627c0 1.877 -1.462 2.265 -2.936 2.265H27.635v2.267h-3.276l-2.075 -2.237 -2.157 2.237H13.45V21.706h6.779l2.074 2.216 2.144 -2.216h5.386c1.337 0 2.841 0.355 2.841 2.227m-13.402 3.111h-4.144v-1.345h3.701v-1.379h-3.701V23.09h4.226l1.844 1.97zm6.678 0.774 -2.588 -2.753 2.588 -2.666zm3.828 -3.005h-2.179v-1.721h2.198c0.609 0 1.031 0.237 1.031 0.829 0 0.585 -0.403 0.892 -1.05 0.892m11.412 -3.106h5.626v1.397h-3.947v1.228h3.851v1.379h-3.851v1.345l3.947 0.006v1.403H41.189zm-2.163 3.618c0.375 0.133 0.682 0.37 0.826 0.568 0.238 0.33 0.273 0.638 0.28 1.234v1.34h-1.692v-0.846c0 -0.406 0.041 -1.008 -0.273 -1.323 -0.246 -0.242 -0.622 -0.3 -1.236 -0.3h-1.802v2.469h-1.694V21.706h3.892c0.854 0 1.475 0.036 2.028 0.319 0.532 0.308 0.867 0.73 0.867 1.501a1.895 1.895 0 0 1 -1.194 1.798m-0.953 -0.855c-0.226 0.128 -0.504 0.14 -0.832 0.14h-2.048v-1.518h2.075c0.3 0 0.601 0.006 0.804 0.122 0.218 0.11 0.349 0.319 0.349 0.608s-0.131 0.522 -0.349 0.648m15.217 0.43c0.329 0.326 0.504 0.736 0.504 1.432 0 1.454 -0.948 2.132 -2.648 2.132h-3.283V27.015h3.27c0.32 0 0.546 -0.041 0.689 -0.168 0.116 -0.104 0.199 -0.257 0.199 -0.441 0 -0.197 -0.09 -0.353 -0.206 -0.447 -0.129 -0.103 -0.306 -0.15 -0.6 -0.15 -1.577 -0.051 -3.55 0.047 -3.55 -2.091 0 -0.981 0.642 -2.012 2.41 -2.012h3.38v1.438h-3.092c-0.306 0 -0.506 0.011 -0.675 0.122 -0.184 0.11 -0.253 0.272 -0.253 0.486 0 0.255 0.157 0.428 0.369 0.503 0.178 0.059 0.369 0.076 0.656 0.076l0.907 0.024c0.915 0.021 1.543 0.173 1.925 0.543m6.689 -1.809h-3.072c-0.306 0 -0.51 0.011 -0.682 0.122 -0.178 0.11 -0.246 0.272 -0.246 0.486 0 0.255 0.15 0.428 0.368 0.503 0.178 0.059 0.369 0.076 0.649 0.076l0.913 0.024c0.922 0.022 1.537 0.173 1.913 0.544 0.069 0.051 0.11 0.11 0.157 0.168z\"\n fill=\"#fff\"\n />\n</svg>\n" }]
1729
+ }] });
1730
+
1731
+ class IconJcbComponent {
1732
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconJcbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1733
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconJcbComponent, isStandalone: true, selector: "icon-jcb", ngImport: i0, template: "<svg\n version=\"1.1\"\n id=\"Layer_1\"\n xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 56.25 35.325\"\n enable-background=\"new 0 0 750 471\"\n xml:space=\"preserve\"\n>\n <title>Slice 1</title>\n <desc>Created with Sketch.</desc>\n <g>\n <path\n id=\"path3494\"\n sketch:type=\"MSShapeGroup\"\n fill=\"#FFFFFF\"\n d=\"M46.293 26.007c0 3.121 -2.53 5.652 -5.652 5.652H9.957V9.318c0 -3.122 2.53 -5.653 5.652 -5.653h30.684v22.342z\"\n />\n <path\n id=\"path3496_1_\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"824.7424\"\n y1=\"333.7813\"\n x2=\"825.7424\"\n y2=\"333.7813\"\n gradientTransform=\"matrix(132.8743 0 0 -323.0226 -109129.531 108054.602)\"\n d=\"\"\n >\n <stop offset=\"0\" style=\"stop-color: #007b40\" />\n <stop offset=\"1\" style=\"stop-color: #55b330\" />\n </path>\n <path\n id=\"path3496\"\n sketch:type=\"MSShapeGroup\"\n fill=\"url(#path3496_1_)\"\n d=\"M36.289 18.153c0.876 0.019 1.758 -0.039 2.631 0.03 0.884 0.165 1.097 1.503 0.312 1.942 -0.536 0.289 -1.172 0.108 -1.753 0.158H36.289zm3.138 -2.411c0.195 0.687 -0.468 1.304 -1.13 1.21h-2.008c0.014 -0.648 -0.028 -1.352 0.02 -1.966 0.804 0.023 1.616 -0.046 2.416 0.036 0.343 0.086 0.631 0.369 0.701 0.72m4.832 -10.193c0.037 1.313 0.005 2.695 0.016 4.034 -0.002 5.445 0.005 10.89 -0.004 16.334 -0.035 2.041 -1.844 3.814 -3.87 3.854 -2.028 0.008 -4.057 0.001 -6.086 0.004v-8.231c2.21 -0.011 4.422 0.023 6.631 -0.017 1.025 -0.064 2.148 -0.741 2.195 -1.869 0.121 -1.133 -0.947 -1.916 -1.961 -2.04 -0.39 -0.01 -0.378 -0.114 0 -0.159 0.967 -0.209 1.727 -1.21 1.442 -2.212 -0.243 -1.054 -1.408 -1.462 -2.377 -1.46 -1.976 -0.013 -3.953 -0.002 -5.93 -0.006 0.013 -1.537 -0.027 -3.075 0.021 -4.611 0.157 -2.004 2.011 -3.656 4.009 -3.62q2.957 0 5.914 0\"\n />\n <path\n id=\"path3498_1_\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"824.7551\"\n y1=\"333.7822\"\n x2=\"825.7484\"\n y2=\"333.7822\"\n gradientTransform=\"matrix(133.4307 0 0 -323.0203 -109887.688 108053.82)\"\n d=\"\"\n >\n <stop offset=\"0\" style=\"stop-color: #1d2970\" />\n <stop offset=\"1\" style=\"stop-color: #006dba\" />\n </path>\n <path\n id=\"path3498\"\n sketch:type=\"MSShapeGroup\"\n fill=\"url(#path3498_1_)\"\n d=\"M11.981 9.378c0.05 -2.037 1.867 -3.796 3.89 -3.826 2.021 -0.006 4.042 -0.001 6.063 -0.003 -0.006 6.816 0.011 13.633 -0.008 20.449 -0.078 2.013 -1.874 3.738 -3.876 3.773 -2.025 0.007 -4.05 0.001 -6.074 0.003V21.266c1.967 0.465 4.029 0.662 6.036 0.354 1.199 -0.193 2.512 -0.782 2.918 -2.026 0.299 -1.064 0.131 -2.184 0.175 -3.277v-2.537h-3.472c-0.016 1.678 0.032 3.359 -0.025 5.034 -0.094 1.03 -1.114 1.685 -2.085 1.65 -1.205 0.013 -3.592 -0.873 -3.592 -0.873 -0.006 -3.144 0.035 -7.08 0.052 -10.213\"\n />\n <path\n id=\"path3500_1_\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"824.7424\"\n y1=\"333.7813\"\n x2=\"825.741\"\n y2=\"333.7813\"\n gradientTransform=\"matrix(132.9583 0 0 -323.0276 -109347.922 108056.266)\"\n d=\"\"\n >\n <stop offset=\"0\" style=\"stop-color: #6e2b2f\" />\n <stop offset=\"1\" style=\"stop-color: #e30138\" />\n </path>\n <path\n id=\"path3500\"\n sketch:type=\"MSShapeGroup\"\n fill=\"url(#path3500_1_)\"\n d=\"M23.229 14.804c-0.183 0.039 -0.037 -0.623 -0.084 -0.873 0.012 -1.586 -0.026 -3.174 0.021 -4.759 0.156 -2.012 2.024 -3.669 4.03 -3.622h5.908c-0.006 6.816 0.011 13.633 -0.008 20.449 -0.078 2.013 -1.874 3.737 -3.876 3.773 -2.025 0.008 -4.05 0.001 -6.075 0.003V20.453c1.383 1.135 3.262 1.311 4.985 1.314 1.299 0 2.59 -0.201 3.851 -0.5V19.559c-1.421 0.708 -3.093 1.158 -4.668 0.751 -1.099 -0.274 -1.897 -1.336 -1.879 -2.47 -0.127 -1.18 0.564 -2.425 1.723 -2.776 1.439 -0.451 3.008 -0.106 4.357 0.48 0.289 0.151 0.582 0.339 0.467 -0.144v-1.342c-2.256 -0.537 -4.658 -0.734 -6.925 -0.15 -0.656 0.185 -1.295 0.466 -1.828 0.897\"\n />\n </g>\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1734
+ }
1735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconJcbComponent, decorators: [{
1736
+ type: Component,
1737
+ args: [{ selector: 'icon-jcb', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n version=\"1.1\"\n id=\"Layer_1\"\n xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 56.25 35.325\"\n enable-background=\"new 0 0 750 471\"\n xml:space=\"preserve\"\n>\n <title>Slice 1</title>\n <desc>Created with Sketch.</desc>\n <g>\n <path\n id=\"path3494\"\n sketch:type=\"MSShapeGroup\"\n fill=\"#FFFFFF\"\n d=\"M46.293 26.007c0 3.121 -2.53 5.652 -5.652 5.652H9.957V9.318c0 -3.122 2.53 -5.653 5.652 -5.653h30.684v22.342z\"\n />\n <path\n id=\"path3496_1_\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"824.7424\"\n y1=\"333.7813\"\n x2=\"825.7424\"\n y2=\"333.7813\"\n gradientTransform=\"matrix(132.8743 0 0 -323.0226 -109129.531 108054.602)\"\n d=\"\"\n >\n <stop offset=\"0\" style=\"stop-color: #007b40\" />\n <stop offset=\"1\" style=\"stop-color: #55b330\" />\n </path>\n <path\n id=\"path3496\"\n sketch:type=\"MSShapeGroup\"\n fill=\"url(#path3496_1_)\"\n d=\"M36.289 18.153c0.876 0.019 1.758 -0.039 2.631 0.03 0.884 0.165 1.097 1.503 0.312 1.942 -0.536 0.289 -1.172 0.108 -1.753 0.158H36.289zm3.138 -2.411c0.195 0.687 -0.468 1.304 -1.13 1.21h-2.008c0.014 -0.648 -0.028 -1.352 0.02 -1.966 0.804 0.023 1.616 -0.046 2.416 0.036 0.343 0.086 0.631 0.369 0.701 0.72m4.832 -10.193c0.037 1.313 0.005 2.695 0.016 4.034 -0.002 5.445 0.005 10.89 -0.004 16.334 -0.035 2.041 -1.844 3.814 -3.87 3.854 -2.028 0.008 -4.057 0.001 -6.086 0.004v-8.231c2.21 -0.011 4.422 0.023 6.631 -0.017 1.025 -0.064 2.148 -0.741 2.195 -1.869 0.121 -1.133 -0.947 -1.916 -1.961 -2.04 -0.39 -0.01 -0.378 -0.114 0 -0.159 0.967 -0.209 1.727 -1.21 1.442 -2.212 -0.243 -1.054 -1.408 -1.462 -2.377 -1.46 -1.976 -0.013 -3.953 -0.002 -5.93 -0.006 0.013 -1.537 -0.027 -3.075 0.021 -4.611 0.157 -2.004 2.011 -3.656 4.009 -3.62q2.957 0 5.914 0\"\n />\n <path\n id=\"path3498_1_\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"824.7551\"\n y1=\"333.7822\"\n x2=\"825.7484\"\n y2=\"333.7822\"\n gradientTransform=\"matrix(133.4307 0 0 -323.0203 -109887.688 108053.82)\"\n d=\"\"\n >\n <stop offset=\"0\" style=\"stop-color: #1d2970\" />\n <stop offset=\"1\" style=\"stop-color: #006dba\" />\n </path>\n <path\n id=\"path3498\"\n sketch:type=\"MSShapeGroup\"\n fill=\"url(#path3498_1_)\"\n d=\"M11.981 9.378c0.05 -2.037 1.867 -3.796 3.89 -3.826 2.021 -0.006 4.042 -0.001 6.063 -0.003 -0.006 6.816 0.011 13.633 -0.008 20.449 -0.078 2.013 -1.874 3.738 -3.876 3.773 -2.025 0.007 -4.05 0.001 -6.074 0.003V21.266c1.967 0.465 4.029 0.662 6.036 0.354 1.199 -0.193 2.512 -0.782 2.918 -2.026 0.299 -1.064 0.131 -2.184 0.175 -3.277v-2.537h-3.472c-0.016 1.678 0.032 3.359 -0.025 5.034 -0.094 1.03 -1.114 1.685 -2.085 1.65 -1.205 0.013 -3.592 -0.873 -3.592 -0.873 -0.006 -3.144 0.035 -7.08 0.052 -10.213\"\n />\n <path\n id=\"path3500_1_\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"824.7424\"\n y1=\"333.7813\"\n x2=\"825.741\"\n y2=\"333.7813\"\n gradientTransform=\"matrix(132.9583 0 0 -323.0276 -109347.922 108056.266)\"\n d=\"\"\n >\n <stop offset=\"0\" style=\"stop-color: #6e2b2f\" />\n <stop offset=\"1\" style=\"stop-color: #e30138\" />\n </path>\n <path\n id=\"path3500\"\n sketch:type=\"MSShapeGroup\"\n fill=\"url(#path3500_1_)\"\n d=\"M23.229 14.804c-0.183 0.039 -0.037 -0.623 -0.084 -0.873 0.012 -1.586 -0.026 -3.174 0.021 -4.759 0.156 -2.012 2.024 -3.669 4.03 -3.622h5.908c-0.006 6.816 0.011 13.633 -0.008 20.449 -0.078 2.013 -1.874 3.737 -3.876 3.773 -2.025 0.008 -4.05 0.001 -6.075 0.003V20.453c1.383 1.135 3.262 1.311 4.985 1.314 1.299 0 2.59 -0.201 3.851 -0.5V19.559c-1.421 0.708 -3.093 1.158 -4.668 0.751 -1.099 -0.274 -1.897 -1.336 -1.879 -2.47 -0.127 -1.18 0.564 -2.425 1.723 -2.776 1.439 -0.451 3.008 -0.106 4.357 0.48 0.289 0.151 0.582 0.339 0.467 -0.144v-1.342c-2.256 -0.537 -4.658 -0.734 -6.925 -0.15 -0.656 0.185 -1.295 0.466 -1.828 0.897\"\n />\n </g>\n</svg>\n" }]
1738
+ }] });
1739
+
1740
+ class IconMastercardComponent {
1741
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconMastercardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1742
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconMastercardComponent, isStandalone: true, selector: "icon-mastercard", ngImport: i0, template: "<svg width=\"22\" height=\"22\" viewBox=\"0 -4.069 36.188 36.188\" xmlns=\"http://www.w3.org/2000/svg\">\n <title>mastercard</title>\n <g>\n <path\n d=\"M6.554 27.988v-1.864c0 -0.715 -0.435 -1.18 -1.149 -1.18 -0.375 0 -0.776 0.124 -1.056 0.525 -0.217 -0.342 -0.525 -0.525 -0.994 -0.525a1.055 1.055 0 0 0 -0.9 0.435v-0.375h-0.59v2.982h0.59v-1.706c0 -0.525 0.31 -0.776 0.745 -0.776s0.683 0.28 0.683 0.776v1.709h0.59v-1.709c0 -0.525 0.31 -0.776 0.745 -0.776s0.683 0.28 0.683 0.776v1.709Z\"\n />\n\n <g>\n <path fill=\"#ff5f00\" d=\"M12.736 2.392H23.515V19.973H12.736V2.392z\" />\n <path\n d=\"M13.823 11.182a11.213 11.213 0 0 1 4.255 -8.791 11.182 11.182 0 1 0 0 17.581 11.213 11.213 0 0 1 -4.255 -8.791\"\n fill=\"#eb001b\"\n />\n <path\n d=\"M36.189 11.182a11.171 11.171 0 0 1 -18.075 8.791 11.207 11.207 0 0 0 0 -17.581 11.171 11.171 0 0 1 18.075 8.791\"\n fill=\"#f79e1b\"\n />\n </g>\n </g>\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1743
+ }
1744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconMastercardComponent, decorators: [{
1745
+ type: Component,
1746
+ args: [{ selector: 'icon-mastercard', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg width=\"22\" height=\"22\" viewBox=\"0 -4.069 36.188 36.188\" xmlns=\"http://www.w3.org/2000/svg\">\n <title>mastercard</title>\n <g>\n <path\n d=\"M6.554 27.988v-1.864c0 -0.715 -0.435 -1.18 -1.149 -1.18 -0.375 0 -0.776 0.124 -1.056 0.525 -0.217 -0.342 -0.525 -0.525 -0.994 -0.525a1.055 1.055 0 0 0 -0.9 0.435v-0.375h-0.59v2.982h0.59v-1.706c0 -0.525 0.31 -0.776 0.745 -0.776s0.683 0.28 0.683 0.776v1.709h0.59v-1.709c0 -0.525 0.31 -0.776 0.745 -0.776s0.683 0.28 0.683 0.776v1.709Z\"\n />\n\n <g>\n <path fill=\"#ff5f00\" d=\"M12.736 2.392H23.515V19.973H12.736V2.392z\" />\n <path\n d=\"M13.823 11.182a11.213 11.213 0 0 1 4.255 -8.791 11.182 11.182 0 1 0 0 17.581 11.213 11.213 0 0 1 -4.255 -8.791\"\n fill=\"#eb001b\"\n />\n <path\n d=\"M36.189 11.182a11.171 11.171 0 0 1 -18.075 8.791 11.207 11.207 0 0 0 0 -17.581 11.171 11.171 0 0 1 18.075 8.791\"\n fill=\"#f79e1b\"\n />\n </g>\n </g>\n</svg>\n" }]
1747
+ }] });
1748
+
1749
+ class IconVerveComponent {
1750
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconVerveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1751
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconVerveComponent, isStandalone: true, selector: "icon-verve", ngImport: i0, template: "<svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 -10.463 56.25 56.25\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <desc>Created with Sketch.</desc>\n <defs />\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"verve\" fill-rule=\"nonzero\">\n <path\n id=\"Rectangle-path\"\n fill=\"#00425F\"\n x=\"0\"\n y=\"0\"\n width=\"750\"\n height=\"471\"\n rx=\"40\"\n d=\"M3 0H53.25A3 3 0 0 1 56.25 3V32.325A3 3 0 0 1 53.25 35.325H3A3 3 0 0 1 0 32.325V3A3 3 0 0 1 3 0z\"\n />\n <path\n id=\"Oval\"\n fill=\"#EE312A\"\n cx=\"156.26347\"\n cy=\"215.5\"\n r=\"115.26347\"\n d=\"M20.365 16.162A8.645 8.645 0 0 1 11.72 24.807A8.645 8.645 0 0 1 3.075 16.162A8.645 8.645 0 0 1 20.365 16.162z\"\n />\n <path\n d=\"M11.72 19.865c-1.933 -4.383 -3.351 -8.477 -3.351 -8.477H5.404s1.804 5.255 5.156 11.827h2.32c3.351 -6.572 5.156 -11.827 5.156 -11.827h-2.964s-1.418 4.094 -3.351 8.477\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"M53.103 19.32h-5.8s0.129 1.933 2.707 1.933c1.289 0 2.578 -0.387 2.578 -0.387l0.258 2.062s-1.289 0.516 -3.093 0.516c-2.578 0 -4.897 -1.289 -4.897 -4.897 0 -2.835 1.804 -4.64 4.382 -4.64 3.866 0 4.124 3.866 3.866 5.413m-3.995 -3.609c-1.675 0 -1.804 1.804 -1.804 1.804h3.609s-0.129 -1.804 -1.804 -1.804\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"m33.175 16.256 0.387 -2.062s-2.986 -0.906 -5.413 0.773v8.248h2.578l0 -6.702c1.031 -0.773 2.449 -0.258 2.449 -0.258\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"M26.131 19.32h-5.8s0.129 1.933 2.707 1.933c1.289 0 2.578 -0.387 2.578 -0.387l0.258 2.062s-1.289 0.516 -3.093 0.516c-2.578 0 -4.897 -1.289 -4.897 -4.897 0 -2.835 1.804 -4.64 4.382 -4.64 3.866 0 4.124 3.866 3.866 5.413m-3.995 -3.609c-1.675 0 -1.804 1.804 -1.804 1.804h3.609s-0.129 -1.804 -1.804 -1.804\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"M39.435 20.124a40.102 40.102 0 0 1 -1.933 -6.008l-2.577 0s1.289 4.976 3.48 9.099h2.062c2.191 -4.123 3.48 -9.098 3.48 -9.098H41.369a40.125 40.125 0 0 1 -1.933 6.006\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n </g>\n </g>\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1752
+ }
1753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconVerveComponent, decorators: [{
1754
+ type: Component,
1755
+ args: [{ selector: 'icon-verve', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 -10.463 56.25 56.25\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <desc>Created with Sketch.</desc>\n <defs />\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"verve\" fill-rule=\"nonzero\">\n <path\n id=\"Rectangle-path\"\n fill=\"#00425F\"\n x=\"0\"\n y=\"0\"\n width=\"750\"\n height=\"471\"\n rx=\"40\"\n d=\"M3 0H53.25A3 3 0 0 1 56.25 3V32.325A3 3 0 0 1 53.25 35.325H3A3 3 0 0 1 0 32.325V3A3 3 0 0 1 3 0z\"\n />\n <path\n id=\"Oval\"\n fill=\"#EE312A\"\n cx=\"156.26347\"\n cy=\"215.5\"\n r=\"115.26347\"\n d=\"M20.365 16.162A8.645 8.645 0 0 1 11.72 24.807A8.645 8.645 0 0 1 3.075 16.162A8.645 8.645 0 0 1 20.365 16.162z\"\n />\n <path\n d=\"M11.72 19.865c-1.933 -4.383 -3.351 -8.477 -3.351 -8.477H5.404s1.804 5.255 5.156 11.827h2.32c3.351 -6.572 5.156 -11.827 5.156 -11.827h-2.964s-1.418 4.094 -3.351 8.477\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"M53.103 19.32h-5.8s0.129 1.933 2.707 1.933c1.289 0 2.578 -0.387 2.578 -0.387l0.258 2.062s-1.289 0.516 -3.093 0.516c-2.578 0 -4.897 -1.289 -4.897 -4.897 0 -2.835 1.804 -4.64 4.382 -4.64 3.866 0 4.124 3.866 3.866 5.413m-3.995 -3.609c-1.675 0 -1.804 1.804 -1.804 1.804h3.609s-0.129 -1.804 -1.804 -1.804\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"m33.175 16.256 0.387 -2.062s-2.986 -0.906 -5.413 0.773v8.248h2.578l0 -6.702c1.031 -0.773 2.449 -0.258 2.449 -0.258\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"M26.131 19.32h-5.8s0.129 1.933 2.707 1.933c1.289 0 2.578 -0.387 2.578 -0.387l0.258 2.062s-1.289 0.516 -3.093 0.516c-2.578 0 -4.897 -1.289 -4.897 -4.897 0 -2.835 1.804 -4.64 4.382 -4.64 3.866 0 4.124 3.866 3.866 5.413m-3.995 -3.609c-1.675 0 -1.804 1.804 -1.804 1.804h3.609s-0.129 -1.804 -1.804 -1.804\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n <path\n d=\"M39.435 20.124a40.102 40.102 0 0 1 -1.933 -6.008l-2.577 0s1.289 4.976 3.48 9.099h2.062c2.191 -4.123 3.48 -9.098 3.48 -9.098H41.369a40.125 40.125 0 0 1 -1.933 6.006\"\n id=\"Shape\"\n fill=\"#FFFFFF\"\n />\n </g>\n </g>\n</svg>\n" }]
1756
+ }] });
1757
+
1758
+ class IconVisaComponent {
1759
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconVisaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1760
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconVisaComponent, isStandalone: true, selector: "icon-visa", ngImport: i0, template: "<svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 56.25 35.325\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n>\n <title>visa</title>\n <g id=\"visa\">\n <path\n fill=\"#0E4595\"\n d=\"m20.865 25.067 2.502 -14.682h4.002l-2.504 14.682z\"\n />\n <path\n fill=\"#0E4595\"\n d=\"M39.323 10.702c-0.793 -0.297 -2.035 -0.617 -3.587 -0.617 -3.954 0 -6.74 1.991 -6.764 4.845 -0.022 2.11 1.989 3.287 3.507 3.989 1.558 0.72 2.081 1.179 2.074 1.821 -0.01 0.984 -1.244 1.434 -2.394 1.434 -1.602 0 -2.453 -0.223 -3.767 -0.771l-0.516 -0.233 -0.562 3.287c0.935 0.41 2.663 0.765 4.458 0.783 4.207 0 6.938 -1.969 6.969 -5.016 0.015 -1.67 -1.051 -2.941 -3.36 -3.989 -1.399 -0.679 -2.255 -1.132 -2.246 -1.82 0 -0.61 0.725 -1.263 2.292 -1.263 1.309 -0.02 2.257 0.265 2.995 0.563l0.359 0.169z\"\n />\n <path\n fill=\"#0E4595\"\n d=\"M49.621 10.385h-3.092c-0.958 0 -1.675 0.261 -2.096 1.218L38.49 25.058h4.202s0.687 -1.809 0.842 -2.206c0.459 0 4.542 0.006 5.125 0.006 0.12 0.514 0.487 2.2 0.487 2.2h3.713zm-4.906 9.481c0.331 -0.846 1.595 -4.104 1.595 -4.104 -0.024 0.039 0.329 -0.85 0.531 -1.401l0.271 1.266s0.766 3.505 0.926 4.24h-3.322z\"\n />\n <path\n fill=\"#0E4595\"\n d=\"m3.441 10.385 -0.051 0.305c1.582 0.383 2.995 0.937 4.232 1.627l3.551 12.727 4.234 -0.005 6.3 -14.654h-4.239L13.55 20.397l-0.417 -2.035a6.6 6.6 0 0 0 -0.063 -0.189l-1.362 -6.549c-0.242 -0.93 -0.945 -1.207 -1.814 -1.24z\"\n />\n </g>\n</svg>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1761
+ }
1762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconVisaComponent, decorators: [{
1763
+ type: Component,
1764
+ args: [{ selector: 'icon-visa', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 56.25 35.325\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n>\n <title>visa</title>\n <g id=\"visa\">\n <path\n fill=\"#0E4595\"\n d=\"m20.865 25.067 2.502 -14.682h4.002l-2.504 14.682z\"\n />\n <path\n fill=\"#0E4595\"\n d=\"M39.323 10.702c-0.793 -0.297 -2.035 -0.617 -3.587 -0.617 -3.954 0 -6.74 1.991 -6.764 4.845 -0.022 2.11 1.989 3.287 3.507 3.989 1.558 0.72 2.081 1.179 2.074 1.821 -0.01 0.984 -1.244 1.434 -2.394 1.434 -1.602 0 -2.453 -0.223 -3.767 -0.771l-0.516 -0.233 -0.562 3.287c0.935 0.41 2.663 0.765 4.458 0.783 4.207 0 6.938 -1.969 6.969 -5.016 0.015 -1.67 -1.051 -2.941 -3.36 -3.989 -1.399 -0.679 -2.255 -1.132 -2.246 -1.82 0 -0.61 0.725 -1.263 2.292 -1.263 1.309 -0.02 2.257 0.265 2.995 0.563l0.359 0.169z\"\n />\n <path\n fill=\"#0E4595\"\n d=\"M49.621 10.385h-3.092c-0.958 0 -1.675 0.261 -2.096 1.218L38.49 25.058h4.202s0.687 -1.809 0.842 -2.206c0.459 0 4.542 0.006 5.125 0.006 0.12 0.514 0.487 2.2 0.487 2.2h3.713zm-4.906 9.481c0.331 -0.846 1.595 -4.104 1.595 -4.104 -0.024 0.039 0.329 -0.85 0.531 -1.401l0.271 1.266s0.766 3.505 0.926 4.24h-3.322z\"\n />\n <path\n fill=\"#0E4595\"\n d=\"m3.441 10.385 -0.051 0.305c1.582 0.383 2.995 0.937 4.232 1.627l3.551 12.727 4.234 -0.005 6.3 -14.654h-4.239L13.55 20.397l-0.417 -2.035a6.6 6.6 0 0 0 -0.063 -0.189l-1.362 -6.549c-0.242 -0.93 -0.945 -1.207 -1.814 -1.24z\"\n />\n </g>\n</svg>" }]
1765
+ }] });
1766
+
1767
+ class IconDiscoverComponent {
1768
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconDiscoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1769
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconDiscoverComponent, isStandalone: true, selector: "icon-discover", ngImport: i0, template: "<svg\n fill=\"#000000\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 -0.45 2.7 2.7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M2.52 1.8H0.18A0.18 0.18 0 0 1 0 1.62V0.18A0.18 0.18 0 0 1 0.18 0h2.34A0.18 0.18 0 0 1 2.7 0.18v1.44a0.18 0.18 0 0 1 -0.18 0.18M1.433 0.72a0.193 0.193 0 1 0 0 0.386 0.193 0.193 0 0 0 0 -0.386m0.175 0.011 0.153 0.369h0.038l0.155 -0.369h-0.076l-0.097 0.241 -0.096 -0.241h-0.076zm-0.898 0.256 -0.045 0.044c0.025 0.041 0.069 0.068 0.12 0.068l0.005 0h0q0.004 0 0.008 0c0.064 0 0.116 -0.052 0.116 -0.116v-0.003c0 -0.057 -0.024 -0.083 -0.103 -0.112 -0.042 -0.016 -0.054 -0.026 -0.054 -0.045 0 -0.023 0.022 -0.04 0.052 -0.04a0.073 0.073 0 0 1 0.056 0.029l0 0 0.037 -0.048a0.155 0.155 0 0 0 -0.104 -0.04h-0.002l-0.007 0c-0.057 0 -0.104 0.046 -0.105 0.103v0c0 0.05 0.022 0.075 0.088 0.099 0.019 0.006 0.035 0.013 0.05 0.021l-0.002 -0.001a0.043 0.043 0 0 1 0.021 0.037v0a0.051 0.051 0 0 1 -0.051 0.051l-0.004 0h0c-0.033 0 -0.062 -0.019 -0.075 -0.047l0 -0.001zm0.417 -0.264h-0.001a0.191 0.191 0 0 0 -0.134 0.055 0.187 0.187 0 0 0 0.132 0.32h0.002c0.032 0 0.062 -0.008 0.089 -0.021l-0.001 0.001v-0.082c-0.021 0.024 -0.051 0.039 -0.085 0.039l-0.004 0a0.117 0.117 0 0 1 -0.117 -0.124v0l0 -0.004c0 -0.065 0.052 -0.118 0.117 -0.119H1.125c0.035 0 0.066 0.016 0.088 0.04l0 0v-0.083a0.176 0.176 0 0 0 -0.086 -0.022h-0.001zm1.174 0.223h0.009l0.097 0.144h0.086l-0.113 -0.151a0.096 0.096 0 0 0 0.082 -0.102v0c0 -0.067 -0.046 -0.106 -0.127 -0.106h-0.104v0.359h0.07v-0.144zM1.986 0.731v0.359h0.199v-0.061H2.056v-0.097h0.124v-0.061H2.056v-0.08h0.129v-0.061zm-1.417 0v0.359h0.07V0.731zm-0.329 0v0.359h0.103q0.005 0 0.01 0a0.188 0.188 0 0 0 0.118 -0.042l0 0a0.181 0.181 0 0 0 0.065 -0.138v-0.002a0.178 0.178 0 0 0 -0.194 -0.178l0.001 0zm0.089 0.299h-0.019v-0.238h0.019a0.128 0.128 0 0 1 0.096 0.029l0 0c0.024 0.022 0.039 0.054 0.039 0.089v0.001c0 0.035 -0.015 0.067 -0.039 0.09l0 0a0.132 0.132 0 0 1 -0.097 0.029l0.001 0zm1.992 -0.133h-0.02v-0.109h0.022c0.044 0 0.067 0.018 0.067 0.053 0 0.036 -0.024 0.056 -0.069 0.056z\"\n />\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1770
+ }
1771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconDiscoverComponent, decorators: [{
1772
+ type: Component,
1773
+ args: [{ selector: 'icon-discover', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n fill=\"#000000\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 -0.45 2.7 2.7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M2.52 1.8H0.18A0.18 0.18 0 0 1 0 1.62V0.18A0.18 0.18 0 0 1 0.18 0h2.34A0.18 0.18 0 0 1 2.7 0.18v1.44a0.18 0.18 0 0 1 -0.18 0.18M1.433 0.72a0.193 0.193 0 1 0 0 0.386 0.193 0.193 0 0 0 0 -0.386m0.175 0.011 0.153 0.369h0.038l0.155 -0.369h-0.076l-0.097 0.241 -0.096 -0.241h-0.076zm-0.898 0.256 -0.045 0.044c0.025 0.041 0.069 0.068 0.12 0.068l0.005 0h0q0.004 0 0.008 0c0.064 0 0.116 -0.052 0.116 -0.116v-0.003c0 -0.057 -0.024 -0.083 -0.103 -0.112 -0.042 -0.016 -0.054 -0.026 -0.054 -0.045 0 -0.023 0.022 -0.04 0.052 -0.04a0.073 0.073 0 0 1 0.056 0.029l0 0 0.037 -0.048a0.155 0.155 0 0 0 -0.104 -0.04h-0.002l-0.007 0c-0.057 0 -0.104 0.046 -0.105 0.103v0c0 0.05 0.022 0.075 0.088 0.099 0.019 0.006 0.035 0.013 0.05 0.021l-0.002 -0.001a0.043 0.043 0 0 1 0.021 0.037v0a0.051 0.051 0 0 1 -0.051 0.051l-0.004 0h0c-0.033 0 -0.062 -0.019 -0.075 -0.047l0 -0.001zm0.417 -0.264h-0.001a0.191 0.191 0 0 0 -0.134 0.055 0.187 0.187 0 0 0 0.132 0.32h0.002c0.032 0 0.062 -0.008 0.089 -0.021l-0.001 0.001v-0.082c-0.021 0.024 -0.051 0.039 -0.085 0.039l-0.004 0a0.117 0.117 0 0 1 -0.117 -0.124v0l0 -0.004c0 -0.065 0.052 -0.118 0.117 -0.119H1.125c0.035 0 0.066 0.016 0.088 0.04l0 0v-0.083a0.176 0.176 0 0 0 -0.086 -0.022h-0.001zm1.174 0.223h0.009l0.097 0.144h0.086l-0.113 -0.151a0.096 0.096 0 0 0 0.082 -0.102v0c0 -0.067 -0.046 -0.106 -0.127 -0.106h-0.104v0.359h0.07v-0.144zM1.986 0.731v0.359h0.199v-0.061H2.056v-0.097h0.124v-0.061H2.056v-0.08h0.129v-0.061zm-1.417 0v0.359h0.07V0.731zm-0.329 0v0.359h0.103q0.005 0 0.01 0a0.188 0.188 0 0 0 0.118 -0.042l0 0a0.181 0.181 0 0 0 0.065 -0.138v-0.002a0.178 0.178 0 0 0 -0.194 -0.178l0.001 0zm0.089 0.299h-0.019v-0.238h0.019a0.128 0.128 0 0 1 0.096 0.029l0 0c0.024 0.022 0.039 0.054 0.039 0.089v0.001c0 0.035 -0.015 0.067 -0.039 0.09l0 0a0.132 0.132 0 0 1 -0.097 0.029l0.001 0zm1.992 -0.133h-0.02v-0.109h0.022c0.044 0 0.067 0.018 0.067 0.053 0 0.036 -0.024 0.056 -0.069 0.056z\"\n />\n</svg>\n" }]
1774
+ }] });
1775
+
1776
+ class IconDinersComponent {
1777
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconDinersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1778
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconDinersComponent, isStandalone: true, selector: "icon-diners", ngImport: i0, template: "<svg\n version=\"1.1\"\n id=\"Layer_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 1.8 1.8\"\n enable-background=\"new 0 0 24 24\"\n xmlSpace=\"preserve\"\n>\n <path\n fill=\"#FAFAFA\"\n d=\"M1.5 1.5H0.3c-0.083 0 -0.15 -0.068 -0.15 -0.15V0.45c0 -0.083 0.068 -0.15 0.15 -0.15h1.2c0.083 0 0.15 0.068 0.15 0.15v0.9c0 0.083 -0.068 0.15 -0.15 0.15\"\n />\n <path\n opacity=\"0.12\"\n fill=\"#020202\"\n d=\"M1.5 0.3H0.3c-0.083 0 -0.15 0.068 -0.15 0.15v0.9c0 0.083 0.068 0.15 0.15 0.15h1.2c0.083 0 0.15 -0.068 0.15 -0.15V0.45c0 -0.083 -0.068 -0.15 -0.15 -0.15m0.075 1.05c0 0.045 -0.03 0.075 -0.075 0.075H0.3c-0.045 0 -0.075 -0.03 -0.075 -0.075V0.45c0 -0.045 0.03 -0.075 0.075 -0.075h1.2c0.045 0 0.075 0.03 0.075 0.075z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"#303F9F\"\n d=\"M1.05 1.125h-0.3c-0.128 0 -0.225 -0.098 -0.225 -0.225s0.098 -0.225 0.225 -0.225h0.3c0.128 0 0.225 0.098 0.225 0.225s-0.098 0.225 -0.225 0.225\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"#FFFFFF\"\n d=\"M0.75 0.75c-0.083 0 -0.15 0.068 -0.15 0.15s0.068 0.15 0.15 0.15 0.15 -0.068 0.15 -0.15 -0.068 -0.15 -0.15 -0.15m0 0.225c-0.045 0 -0.075 -0.03 -0.075 -0.075s0.03 -0.075 0.075 -0.075 0.075 0.03 0.075 0.075 -0.03 0.075 -0.075 0.075\"\n />\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1779
+ }
1780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconDinersComponent, decorators: [{
1781
+ type: Component,
1782
+ args: [{ selector: 'icon-diners', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n version=\"1.1\"\n id=\"Layer_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 1.8 1.8\"\n enable-background=\"new 0 0 24 24\"\n xmlSpace=\"preserve\"\n>\n <path\n fill=\"#FAFAFA\"\n d=\"M1.5 1.5H0.3c-0.083 0 -0.15 -0.068 -0.15 -0.15V0.45c0 -0.083 0.068 -0.15 0.15 -0.15h1.2c0.083 0 0.15 0.068 0.15 0.15v0.9c0 0.083 -0.068 0.15 -0.15 0.15\"\n />\n <path\n opacity=\"0.12\"\n fill=\"#020202\"\n d=\"M1.5 0.3H0.3c-0.083 0 -0.15 0.068 -0.15 0.15v0.9c0 0.083 0.068 0.15 0.15 0.15h1.2c0.083 0 0.15 -0.068 0.15 -0.15V0.45c0 -0.083 -0.068 -0.15 -0.15 -0.15m0.075 1.05c0 0.045 -0.03 0.075 -0.075 0.075H0.3c-0.045 0 -0.075 -0.03 -0.075 -0.075V0.45c0 -0.045 0.03 -0.075 0.075 -0.075h1.2c0.045 0 0.075 0.03 0.075 0.075z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"#303F9F\"\n d=\"M1.05 1.125h-0.3c-0.128 0 -0.225 -0.098 -0.225 -0.225s0.098 -0.225 0.225 -0.225h0.3c0.128 0 0.225 0.098 0.225 0.225s-0.098 0.225 -0.225 0.225\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"#FFFFFF\"\n d=\"M0.75 0.75c-0.083 0 -0.15 0.068 -0.15 0.15s0.068 0.15 0.15 0.15 0.15 -0.068 0.15 -0.15 -0.068 -0.15 -0.15 -0.15m0 0.225c-0.045 0 -0.075 -0.03 -0.075 -0.075s0.03 -0.075 0.075 -0.075 0.075 0.03 0.075 0.075 -0.03 0.075 -0.075 0.075\"\n />\n</svg>\n" }]
1783
+ }] });
1784
+
1785
+ class CardTypeComponent {
1786
+ cardType = '';
1787
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CardTypeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1788
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CardTypeComponent, isStandalone: true, selector: "base-card-type", inputs: { cardType: "cardType" }, ngImport: i0, template: "@if (cardType) {\n <div class=\"bg-white p-1 rounded border flex justify-center items-center text-center\">\n @switch (cardType) {\n @case ('americanexpress') {\n <icon-amex />\n }\n @case ('mastercard') {\n <icon-mastercard />\n }\n @case ('visa') {\n <icon-visa />\n }\n @case ('discover') {\n <icon-discover />\n }\n @case ('jcb') {\n <icon-jcb />\n }\n @case ('verve') {\n <icon-verve />\n }\n @case ('dinersclub') {\n <icon-diners />\n }\n }\n </div>\n}\n", dependencies: [{ kind: "component", type: IconAmexComponent, selector: "icon-amex" }, { kind: "component", type: IconJcbComponent, selector: "icon-jcb" }, { kind: "component", type: IconMastercardComponent, selector: "icon-mastercard" }, { kind: "component", type: IconVerveComponent, selector: "icon-verve" }, { kind: "component", type: IconVisaComponent, selector: "icon-visa" }, { kind: "component", type: IconDiscoverComponent, selector: "icon-discover" }, { kind: "component", type: IconDinersComponent, selector: "icon-diners" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1789
+ }
1790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CardTypeComponent, decorators: [{
1791
+ type: Component,
1792
+ args: [{ selector: 'base-card-type', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1793
+ IconAmexComponent,
1794
+ IconJcbComponent,
1795
+ IconMastercardComponent,
1796
+ IconVerveComponent,
1797
+ IconVisaComponent,
1798
+ IconDiscoverComponent,
1799
+ IconDinersComponent,
1800
+ ], template: "@if (cardType) {\n <div class=\"bg-white p-1 rounded border flex justify-center items-center text-center\">\n @switch (cardType) {\n @case ('americanexpress') {\n <icon-amex />\n }\n @case ('mastercard') {\n <icon-mastercard />\n }\n @case ('visa') {\n <icon-visa />\n }\n @case ('discover') {\n <icon-discover />\n }\n @case ('jcb') {\n <icon-jcb />\n }\n @case ('verve') {\n <icon-verve />\n }\n @case ('dinersclub') {\n <icon-diners />\n }\n }\n </div>\n}\n" }]
1801
+ }], propDecorators: { cardType: [{
1802
+ type: Input
1803
+ }] } });
1804
+
1797
1805
  class ResourceService {
1798
1806
  http;
1799
1807
  constructor(http) {
@@ -1916,7 +1924,7 @@ class CheckoutService {
1916
1924
  });
1917
1925
  const apiKey = {
1918
1926
  buzapay: 'api/v1/checkout/card-payment/validate-otp',
1919
- miden: '',
1927
+ miden: 'api/v1/accrual/card/validate-otp',
1920
1928
  };
1921
1929
  return this.http.post(`${baseUrl}/${apiKey[caller]}`, rest, {
1922
1930
  headers,
@@ -1933,7 +1941,7 @@ class CheckoutService {
1933
1941
  });
1934
1942
  const apiKey = {
1935
1943
  buzapay: 'api/v1/checkout/card-payment/resend-otp',
1936
- miden: '',
1944
+ miden: 'api/v1/accrual/card/resend-otp',
1937
1945
  };
1938
1946
  return this.http.post(`${baseUrl}/${apiKey[caller]}`, rest, {
1939
1947
  headers,
@@ -2093,7 +2101,7 @@ class PayByCardComponent {
2093
2101
  cardNo: new FormControl('', [Validators.required]),
2094
2102
  expireDate: new FormControl('', [Validators.required]),
2095
2103
  cvv: new FormControl('', [Validators.required]),
2096
- cardPin: new FormControl(''), // Only required for Verve cards
2104
+ cardPin: new FormControl('', this.paymentObject.currency === 'NGN' ? [Validators.required] : []),
2097
2105
  });
2098
2106
  otpForm = new FormGroup({
2099
2107
  otp: new FormControl('', [Validators.required]),
@@ -2116,18 +2124,7 @@ class PayByCardComponent {
2116
2124
  return formatAmount(this.paymentObject.amount, this.paymentObject.currency);
2117
2125
  }
2118
2126
  cardNumberInputHandler(event) {
2119
- this.cardType = cardType(event);
2120
- this.updatePinValidation();
2121
- }
2122
- updatePinValidation() {
2123
- const cardPinControl = this.payForm.get('cardPin');
2124
- if (this.cardType === 'Verve') {
2125
- cardPinControl?.setValidators([Validators.required]);
2126
- }
2127
- else {
2128
- cardPinControl?.clearValidators();
2129
- }
2130
- cardPinControl?.updateValueAndValidity();
2127
+ this.cardType = cardTypeHandler(event);
2131
2128
  }
2132
2129
  async getAllCountries() {
2133
2130
  this.loadingCountries = true;
@@ -2342,7 +2339,7 @@ class PayByCardComponent {
2342
2339
  cvv: this.payForm.value.cvv ?? '',
2343
2340
  cardScheme: this.cardType,
2344
2341
  nameOnCard: this.payForm.value.customerName ?? '',
2345
- ...(this.cardType === 'Verve' && { pin: this.payForm.value.cardPin ?? '' }),
2342
+ ...(this.paymentObject.currency === 'NGN' && { pin: this.payForm.value.cardPin ?? '' }),
2346
2343
  };
2347
2344
  // Get billing details from the form control
2348
2345
  const billingDetails = {
@@ -2593,7 +2590,7 @@ class PayByCardComponent {
2593
2590
  }).sort((a, b) => a.label.localeCompare(b.label));
2594
2591
  }
2595
2592
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PayByCardComponent, deps: [{ token: ResourceService }, { token: i0.ChangeDetectorRef }, { token: CheckoutService }, { token: EncryptService }, { token: i4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
2596
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PayByCardComponent, isStandalone: true, selector: "pay-by-card", inputs: { secretKey: "secretKey", environment: "environment", caller: "caller", paymentObject: "paymentObject" }, outputs: { paymentAuthorized: "paymentAuthorized", onError: "onError" }, ngImport: i0, template: "@if (threeDSOpen) {\n <div class=\"fixed inset-0 z-50 flex items-center justify-center bg-white p-4\">\n <iframe\n title=\"Miden 3DS\"\n [src]=\"threeDSIframeSrc\"\n class=\"w-full h-full\"\n sandbox=\"allow-forms allow-scripts allow-same-origin allow-top-navigation\"\n ></iframe>\n </div>\n} @else {\n <div class=\"flex flex-col gap-6\">\n <!-- Billing Details -->\n @if (formIndex === 0) {\n <form [formGroup]=\"billingForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"address1\"\n label=\"Address Line 1\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'address1', 'Address Line 1') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input formControlName=\"address2\" label=\"Address Line 2\"></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"country\"\n label=\"Select Country\"\n [required]=\"true\"\n [options]=\"countries\"\n [loading]=\"loadingCountries\"\n [validationError]=\"getError('billing', 'country', 'Country') || ''\"\n (onSelectChange)=\"getCountryStates($event)\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"state\"\n label=\"Select State\"\n [required]=\"true\"\n [options]=\"countryStates\"\n [loading]=\"loadingStates\"\n [validationError]=\"getError('billing', 'state', 'State') || ''\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"city\"\n label=\"City\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'city', 'City') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"postalCode\"\n label=\"Postal Code\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'postalCode', 'Postal Code') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"emailAddress\"\n label=\"Email\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'emailAddress', 'Email Address') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-phone-number-input\n [value]=\"billingForm.get('phoneNumber')?.value ?? ''\"\n [phoneCodeOptions]=\"phoneCodeOptions\"\n [defaultCountryCode]=\"defaultCountryCode\"\n label=\"Phone number\"\n [preventPaste]=\"true\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'phoneNumber', 'Phone Number') || ''\"\n (codeChange)=\"onCodeChange($event)\"\n (valueChange)=\"onPhoneChange($event)\"\n ></base-phone-number-input>\n </div>\n </div>\n </form>\n }\n\n <!-- Card Details -->\n @if (formIndex === 1) {\n <form [formGroup]=\"payForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"customerName\"\n label=\"Card Name\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'customerName', 'Customer Name') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"cardNo\"\n label=\"Card Number\"\n [required]=\"true\"\n mask=\"0000 0000 0000 0000 000\"\n placeholder=\"0000 0000 0000 0000\"\n [preventPaste]=\"true\"\n [validationError]=\"getError('pay', 'cardNo', 'Card Number') || ''\"\n (onInputChange)=\"cardNumberInputHandler($event)\"\n ></base-input>\n </div>\n <base-input\n formControlName=\"expireDate\"\n label=\"Expiry Date\"\n [required]=\"true\"\n mask=\"00/00\"\n placeholder=\"00/00\"\n [validationError]=\"getError('pay', 'expireDate', 'Expiry Date') || ''\"\n ></base-input>\n <base-input\n formControlName=\"cvv\"\n label=\"CVV\"\n [required]=\"true\"\n mask=\"000\"\n placeholder=\"000\"\n [validationError]=\"getError('pay', 'cvv', 'CVV') || ''\"\n ></base-input>\n\n @if (cardType === 'Verve') {\n <base-input\n formControlName=\"cardPin\"\n label=\"Card Pin\"\n type=\"password\"\n placeholder=\"0000\"\n mask=\"0000\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'cardPin', 'Card Pin') || ''\"\n ></base-input>\n <!-- <div class=\"text-sm text-blue-600 mb-4\">\n <i class=\"fas fa-info-circle mr-1\"></i>\n Pin is required for Verve cards\n </div> -->\n }\n </div>\n </form>\n }\n\n <!-- Verve OTP Verification -->\n @if (formIndex === 2) {\n <form [formGroup]=\"otpForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"otp\"\n label=\"OTP\"\n [required]=\"true\"\n [validationError]=\"getError('otp', 'otp', 'OTP') || ''\"\n ></base-input>\n </div>\n </div>\n <p class=\"text-primary text-sm mt-2\">\n Didn't get OTP?\n <span\n [class]=\"isSendingOtp ? '' : 'underline cursor-pointer'\"\n (click)=\"isSendingOtp ? null : resendOtp()\"\n >{{ isSendingOtp ? 'Sending...' : 'Resend OTP' }}</span\n >\n </p>\n </form>\n }\n\n <div class=\"flex items-center justify-between gap-4 mt-6 w-full\">\n @if (formIndex < 2) {\n <div class=\"w-1/2\">\n <base-button\n label=\"Previous\"\n type=\"secondary\"\n [caller]=\"caller\"\n (onClick)=\"goBack()\"\n ></base-button>\n </div>\n }\n @if (formIndex < 2) {\n <div [class]=\"formIndex === 0 ? 'w-full' : 'w-1/2'\">\n <base-button\n [label]=\"formIndex === 0 ? 'Proceed' : 'Pay ' + formatAmountHandler\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isMakingPayment\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n @if (formIndex === 2) {\n <div class=\"w-full\">\n <base-button\n label=\"Validate OTP\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isValidatingOtp\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "base-button", inputs: ["label", "type", "caller", "size", "paddingClassX", "disabled", "loading", "customClass"], outputs: ["onClick"] }, { kind: "component", type: InputComponent, selector: "base-input", inputs: ["label", "type", "placeholder", "validationError", "hint", "mask", "rules", "isAmountInput", "required", "disabled", "loading", "showCopyIcon", "preventPaste", "showBottomText"], outputs: ["onInputChange", "onInputBlur"] }, { kind: "component", type: SelectComponent, selector: "base-select", inputs: ["options", "placeholder", "hasSearch", "disabled", "loading", "validationError", "label", "hint", "required", "itemImageType", "showBottomText"], outputs: ["onSelectChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: PhoneNumberInputComponent, selector: "base-phone-number-input", inputs: ["phoneCodeOptions", "value", "label", "required", "disabled", "loading", "validationError", "hint", "defaultCountryCode", "preventPaste", "showCopyIcon", "containerClassName", "inputClassName", "placeholder"], outputs: ["valueChange", "codeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2593
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PayByCardComponent, isStandalone: true, selector: "pay-by-card", inputs: { secretKey: "secretKey", environment: "environment", caller: "caller", paymentObject: "paymentObject" }, outputs: { paymentAuthorized: "paymentAuthorized", onError: "onError" }, ngImport: i0, template: "@if (threeDSOpen) {\n <div class=\"fixed inset-0 z-50 flex items-center justify-center bg-white p-4\">\n <iframe\n title=\"Miden 3DS\"\n [src]=\"threeDSIframeSrc\"\n class=\"w-full h-full\"\n sandbox=\"allow-forms allow-scripts allow-same-origin allow-top-navigation\"\n ></iframe>\n </div>\n} @else {\n <div class=\"flex flex-col gap-6\">\n <!-- Billing Details -->\n @if (formIndex === 0) {\n <form [formGroup]=\"billingForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"address1\"\n label=\"Address Line 1\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'address1', 'Address Line 1') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input formControlName=\"address2\" label=\"Address Line 2\"></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"country\"\n label=\"Select Country\"\n [required]=\"true\"\n [options]=\"countries\"\n [loading]=\"loadingCountries\"\n [validationError]=\"getError('billing', 'country', 'Country') || ''\"\n (onSelectChange)=\"getCountryStates($event)\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"state\"\n label=\"Select State\"\n [required]=\"true\"\n [options]=\"countryStates\"\n [loading]=\"loadingStates\"\n [validationError]=\"getError('billing', 'state', 'State') || ''\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"city\"\n label=\"City\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'city', 'City') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"postalCode\"\n label=\"Postal Code\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'postalCode', 'Postal Code') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"emailAddress\"\n label=\"Email\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'emailAddress', 'Email Address') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-phone-number-input\n [value]=\"billingForm.get('phoneNumber')?.value ?? ''\"\n [phoneCodeOptions]=\"phoneCodeOptions\"\n [defaultCountryCode]=\"defaultCountryCode\"\n label=\"Phone number\"\n [preventPaste]=\"true\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'phoneNumber', 'Phone Number') || ''\"\n (codeChange)=\"onCodeChange($event)\"\n (valueChange)=\"onPhoneChange($event)\"\n ></base-phone-number-input>\n </div>\n </div>\n </form>\n }\n\n <!-- Card Details -->\n @if (formIndex === 1) {\n <form [formGroup]=\"payForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"customerName\"\n label=\"Card Name\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'customerName', 'Customer Name') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"cardNo\"\n label=\"Card Number\"\n [required]=\"true\"\n mask=\"0000 0000 0000 0000 000\"\n placeholder=\"0000 0000 0000 0000\"\n [preventPaste]=\"true\"\n [validationError]=\"getError('pay', 'cardNo', 'Card Number') || ''\"\n (onInputChange)=\"cardNumberInputHandler($event)\"\n >\n <div slot=\"suffix\">\n <base-card-type [cardType]=\"cardType.toLowerCase()\"></base-card-type>\n </div>\n </base-input>\n </div>\n <base-input\n formControlName=\"expireDate\"\n label=\"Expiry Date\"\n [required]=\"true\"\n mask=\"00/00\"\n placeholder=\"00/00\"\n [validationError]=\"getError('pay', 'expireDate', 'Expiry Date') || ''\"\n ></base-input>\n <base-input\n formControlName=\"cvv\"\n label=\"CVV\"\n [required]=\"true\"\n mask=\"000\"\n placeholder=\"000\"\n [validationError]=\"getError('pay', 'cvv', 'CVV') || ''\"\n ></base-input>\n\n @if (paymentObject.currency === 'NGN') {\n <base-input\n formControlName=\"cardPin\"\n label=\"Card Pin\"\n type=\"password\"\n placeholder=\"0000\"\n mask=\"0000\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'cardPin', 'Card Pin') || ''\"\n ></base-input>\n }\n </div>\n </form>\n }\n\n <!-- Verve OTP Verification -->\n @if (formIndex === 2) {\n <form [formGroup]=\"otpForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"otp\"\n label=\"OTP\"\n [required]=\"true\"\n [validationError]=\"getError('otp', 'otp', 'OTP') || ''\"\n ></base-input>\n </div>\n </div>\n <p class=\"text-primary text-sm mt-2\">\n Didn't get OTP?\n <span\n [class]=\"isSendingOtp ? '' : 'underline cursor-pointer'\"\n (click)=\"isSendingOtp ? null : resendOtp()\"\n >{{ isSendingOtp ? 'Sending...' : 'Resend OTP' }}</span\n >\n </p>\n </form>\n }\n\n <div class=\"flex items-center justify-between gap-4 mt-6 w-full\">\n @if (formIndex < 2) {\n <div class=\"w-1/2\">\n <base-button\n label=\"Previous\"\n type=\"secondary\"\n [caller]=\"caller\"\n (onClick)=\"goBack()\"\n ></base-button>\n </div>\n }\n @if (formIndex < 2) {\n <div [class]=\"formIndex === 0 ? 'w-full' : 'w-1/2'\">\n <base-button\n [label]=\"formIndex === 0 ? 'Proceed' : 'Pay ' + formatAmountHandler\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isMakingPayment\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n @if (formIndex === 2) {\n <div class=\"w-full\">\n <base-button\n label=\"Validate OTP\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isValidatingOtp\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "base-button", inputs: ["label", "type", "caller", "size", "paddingClassX", "disabled", "loading", "customClass"], outputs: ["onClick"] }, { kind: "component", type: InputComponent, selector: "base-input", inputs: ["label", "type", "placeholder", "validationError", "hint", "mask", "rules", "isAmountInput", "required", "disabled", "loading", "showCopyIcon", "preventPaste", "showBottomText"], outputs: ["onInputChange", "onInputBlur"] }, { kind: "component", type: SelectComponent, selector: "base-select", inputs: ["options", "placeholder", "hasSearch", "disabled", "loading", "validationError", "label", "hint", "required", "itemImageType", "showBottomText"], outputs: ["onSelectChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: PhoneNumberInputComponent, selector: "base-phone-number-input", inputs: ["phoneCodeOptions", "value", "label", "required", "disabled", "loading", "validationError", "hint", "defaultCountryCode", "preventPaste", "showCopyIcon", "containerClassName", "inputClassName", "placeholder"], outputs: ["valueChange", "codeChange"] }, { kind: "component", type: CardTypeComponent, selector: "base-card-type", inputs: ["cardType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2597
2594
  }
2598
2595
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PayByCardComponent, decorators: [{
2599
2596
  type: Component,
@@ -2603,7 +2600,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2603
2600
  SelectComponent,
2604
2601
  ReactiveFormsModule,
2605
2602
  PhoneNumberInputComponent,
2606
- ], template: "@if (threeDSOpen) {\n <div class=\"fixed inset-0 z-50 flex items-center justify-center bg-white p-4\">\n <iframe\n title=\"Miden 3DS\"\n [src]=\"threeDSIframeSrc\"\n class=\"w-full h-full\"\n sandbox=\"allow-forms allow-scripts allow-same-origin allow-top-navigation\"\n ></iframe>\n </div>\n} @else {\n <div class=\"flex flex-col gap-6\">\n <!-- Billing Details -->\n @if (formIndex === 0) {\n <form [formGroup]=\"billingForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"address1\"\n label=\"Address Line 1\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'address1', 'Address Line 1') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input formControlName=\"address2\" label=\"Address Line 2\"></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"country\"\n label=\"Select Country\"\n [required]=\"true\"\n [options]=\"countries\"\n [loading]=\"loadingCountries\"\n [validationError]=\"getError('billing', 'country', 'Country') || ''\"\n (onSelectChange)=\"getCountryStates($event)\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"state\"\n label=\"Select State\"\n [required]=\"true\"\n [options]=\"countryStates\"\n [loading]=\"loadingStates\"\n [validationError]=\"getError('billing', 'state', 'State') || ''\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"city\"\n label=\"City\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'city', 'City') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"postalCode\"\n label=\"Postal Code\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'postalCode', 'Postal Code') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"emailAddress\"\n label=\"Email\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'emailAddress', 'Email Address') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-phone-number-input\n [value]=\"billingForm.get('phoneNumber')?.value ?? ''\"\n [phoneCodeOptions]=\"phoneCodeOptions\"\n [defaultCountryCode]=\"defaultCountryCode\"\n label=\"Phone number\"\n [preventPaste]=\"true\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'phoneNumber', 'Phone Number') || ''\"\n (codeChange)=\"onCodeChange($event)\"\n (valueChange)=\"onPhoneChange($event)\"\n ></base-phone-number-input>\n </div>\n </div>\n </form>\n }\n\n <!-- Card Details -->\n @if (formIndex === 1) {\n <form [formGroup]=\"payForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"customerName\"\n label=\"Card Name\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'customerName', 'Customer Name') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"cardNo\"\n label=\"Card Number\"\n [required]=\"true\"\n mask=\"0000 0000 0000 0000 000\"\n placeholder=\"0000 0000 0000 0000\"\n [preventPaste]=\"true\"\n [validationError]=\"getError('pay', 'cardNo', 'Card Number') || ''\"\n (onInputChange)=\"cardNumberInputHandler($event)\"\n ></base-input>\n </div>\n <base-input\n formControlName=\"expireDate\"\n label=\"Expiry Date\"\n [required]=\"true\"\n mask=\"00/00\"\n placeholder=\"00/00\"\n [validationError]=\"getError('pay', 'expireDate', 'Expiry Date') || ''\"\n ></base-input>\n <base-input\n formControlName=\"cvv\"\n label=\"CVV\"\n [required]=\"true\"\n mask=\"000\"\n placeholder=\"000\"\n [validationError]=\"getError('pay', 'cvv', 'CVV') || ''\"\n ></base-input>\n\n @if (cardType === 'Verve') {\n <base-input\n formControlName=\"cardPin\"\n label=\"Card Pin\"\n type=\"password\"\n placeholder=\"0000\"\n mask=\"0000\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'cardPin', 'Card Pin') || ''\"\n ></base-input>\n <!-- <div class=\"text-sm text-blue-600 mb-4\">\n <i class=\"fas fa-info-circle mr-1\"></i>\n Pin is required for Verve cards\n </div> -->\n }\n </div>\n </form>\n }\n\n <!-- Verve OTP Verification -->\n @if (formIndex === 2) {\n <form [formGroup]=\"otpForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"otp\"\n label=\"OTP\"\n [required]=\"true\"\n [validationError]=\"getError('otp', 'otp', 'OTP') || ''\"\n ></base-input>\n </div>\n </div>\n <p class=\"text-primary text-sm mt-2\">\n Didn't get OTP?\n <span\n [class]=\"isSendingOtp ? '' : 'underline cursor-pointer'\"\n (click)=\"isSendingOtp ? null : resendOtp()\"\n >{{ isSendingOtp ? 'Sending...' : 'Resend OTP' }}</span\n >\n </p>\n </form>\n }\n\n <div class=\"flex items-center justify-between gap-4 mt-6 w-full\">\n @if (formIndex < 2) {\n <div class=\"w-1/2\">\n <base-button\n label=\"Previous\"\n type=\"secondary\"\n [caller]=\"caller\"\n (onClick)=\"goBack()\"\n ></base-button>\n </div>\n }\n @if (formIndex < 2) {\n <div [class]=\"formIndex === 0 ? 'w-full' : 'w-1/2'\">\n <base-button\n [label]=\"formIndex === 0 ? 'Proceed' : 'Pay ' + formatAmountHandler\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isMakingPayment\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n @if (formIndex === 2) {\n <div class=\"w-full\">\n <base-button\n label=\"Validate OTP\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isValidatingOtp\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n </div>\n </div>\n}\n" }]
2603
+ CardTypeComponent,
2604
+ ], template: "@if (threeDSOpen) {\n <div class=\"fixed inset-0 z-50 flex items-center justify-center bg-white p-4\">\n <iframe\n title=\"Miden 3DS\"\n [src]=\"threeDSIframeSrc\"\n class=\"w-full h-full\"\n sandbox=\"allow-forms allow-scripts allow-same-origin allow-top-navigation\"\n ></iframe>\n </div>\n} @else {\n <div class=\"flex flex-col gap-6\">\n <!-- Billing Details -->\n @if (formIndex === 0) {\n <form [formGroup]=\"billingForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"address1\"\n label=\"Address Line 1\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'address1', 'Address Line 1') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input formControlName=\"address2\" label=\"Address Line 2\"></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"country\"\n label=\"Select Country\"\n [required]=\"true\"\n [options]=\"countries\"\n [loading]=\"loadingCountries\"\n [validationError]=\"getError('billing', 'country', 'Country') || ''\"\n (onSelectChange)=\"getCountryStates($event)\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-select\n formControlName=\"state\"\n label=\"Select State\"\n [required]=\"true\"\n [options]=\"countryStates\"\n [loading]=\"loadingStates\"\n [validationError]=\"getError('billing', 'state', 'State') || ''\"\n ></base-select>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"city\"\n label=\"City\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'city', 'City') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2 sm:col-span-1\">\n <base-input\n formControlName=\"postalCode\"\n label=\"Postal Code\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'postalCode', 'Postal Code') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"emailAddress\"\n label=\"Email\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'emailAddress', 'Email Address') || ''\"\n ></base-input>\n </div>\n\n <div class=\"col-span-2\">\n <base-phone-number-input\n [value]=\"billingForm.get('phoneNumber')?.value ?? ''\"\n [phoneCodeOptions]=\"phoneCodeOptions\"\n [defaultCountryCode]=\"defaultCountryCode\"\n label=\"Phone number\"\n [preventPaste]=\"true\"\n [required]=\"true\"\n [validationError]=\"getError('billing', 'phoneNumber', 'Phone Number') || ''\"\n (codeChange)=\"onCodeChange($event)\"\n (valueChange)=\"onPhoneChange($event)\"\n ></base-phone-number-input>\n </div>\n </div>\n </form>\n }\n\n <!-- Card Details -->\n @if (formIndex === 1) {\n <form [formGroup]=\"payForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"customerName\"\n label=\"Card Name\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'customerName', 'Customer Name') || ''\"\n ></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"cardNo\"\n label=\"Card Number\"\n [required]=\"true\"\n mask=\"0000 0000 0000 0000 000\"\n placeholder=\"0000 0000 0000 0000\"\n [preventPaste]=\"true\"\n [validationError]=\"getError('pay', 'cardNo', 'Card Number') || ''\"\n (onInputChange)=\"cardNumberInputHandler($event)\"\n >\n <div slot=\"suffix\">\n <base-card-type [cardType]=\"cardType.toLowerCase()\"></base-card-type>\n </div>\n </base-input>\n </div>\n <base-input\n formControlName=\"expireDate\"\n label=\"Expiry Date\"\n [required]=\"true\"\n mask=\"00/00\"\n placeholder=\"00/00\"\n [validationError]=\"getError('pay', 'expireDate', 'Expiry Date') || ''\"\n ></base-input>\n <base-input\n formControlName=\"cvv\"\n label=\"CVV\"\n [required]=\"true\"\n mask=\"000\"\n placeholder=\"000\"\n [validationError]=\"getError('pay', 'cvv', 'CVV') || ''\"\n ></base-input>\n\n @if (paymentObject.currency === 'NGN') {\n <base-input\n formControlName=\"cardPin\"\n label=\"Card Pin\"\n type=\"password\"\n placeholder=\"0000\"\n mask=\"0000\"\n [required]=\"true\"\n [validationError]=\"getError('pay', 'cardPin', 'Card Pin') || ''\"\n ></base-input>\n }\n </div>\n </form>\n }\n\n <!-- Verve OTP Verification -->\n @if (formIndex === 2) {\n <form [formGroup]=\"otpForm\">\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input\n formControlName=\"otp\"\n label=\"OTP\"\n [required]=\"true\"\n [validationError]=\"getError('otp', 'otp', 'OTP') || ''\"\n ></base-input>\n </div>\n </div>\n <p class=\"text-primary text-sm mt-2\">\n Didn't get OTP?\n <span\n [class]=\"isSendingOtp ? '' : 'underline cursor-pointer'\"\n (click)=\"isSendingOtp ? null : resendOtp()\"\n >{{ isSendingOtp ? 'Sending...' : 'Resend OTP' }}</span\n >\n </p>\n </form>\n }\n\n <div class=\"flex items-center justify-between gap-4 mt-6 w-full\">\n @if (formIndex < 2) {\n <div class=\"w-1/2\">\n <base-button\n label=\"Previous\"\n type=\"secondary\"\n [caller]=\"caller\"\n (onClick)=\"goBack()\"\n ></base-button>\n </div>\n }\n @if (formIndex < 2) {\n <div [class]=\"formIndex === 0 ? 'w-full' : 'w-1/2'\">\n <base-button\n [label]=\"formIndex === 0 ? 'Proceed' : 'Pay ' + formatAmountHandler\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isMakingPayment\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n @if (formIndex === 2) {\n <div class=\"w-full\">\n <base-button\n label=\"Validate OTP\"\n type=\"primary\"\n [caller]=\"caller\"\n [loading]=\"isValidatingOtp\"\n (onClick)=\"proceedHandler()\"\n ></base-button>\n </div>\n }\n </div>\n </div>\n}\n" }]
2607
2605
  }], ctorParameters: () => [{ type: ResourceService }, { type: i0.ChangeDetectorRef }, { type: CheckoutService }, { type: EncryptService }, { type: i4.DomSanitizer }], propDecorators: { secretKey: [{
2608
2606
  type: Input
2609
2607
  }], environment: [{
@@ -2742,9 +2740,10 @@ class PayByStableCoinComponent {
2742
2740
  this.loadingStableCoins = true;
2743
2741
  await this.resource.getStableCoins(this.environment, this.caller).subscribe({
2744
2742
  next: async (response) => {
2743
+ const newResponse = this.caller === 'buzapay' ? response.data : response.stableCoins;
2745
2744
  if (response?.isSuccessful) {
2746
2745
  this.stableCoins =
2747
- response.data?.map((c) => ({
2746
+ newResponse?.map((c) => ({
2748
2747
  label: c.name,
2749
2748
  value: c.name,
2750
2749
  })) ?? [];
@@ -3112,5 +3111,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3112
3111
  * Generated bundle index. Do not edit.
3113
3112
  */
3114
3113
 
3115
- export { BZP_CONFIG, BZP_CORRELATION_ID, BackComponent, ButtonComponent, COUNTRIES, CardComponent, CardSchemes, CheckoutService, CircleCountdownComponent, CopyComponent, CurrencyAmountComponent, EncryptService, HintComponent, IconArrowSwapComponent, IconBuzapayIconComponent, IconCardsComponent, IconCheckCircleComponent, IconChevronDownComponent, IconChevronLeftComponent, IconChevronUpComponent, IconCloseComponent, IconCoinComponent, IconCopySuccessComponent, IconCourthouseComponent, IconLoaderComponent, IconLockComponent, IconMidenLogoComponent, IconQrCodeComponent, IconUsdcComponent, IconUsdtComponent, ImageComponent, InputComponent, InputErrorComponent, LabelInfoComponent, MidenPGAngular, PayByCardComponent, PayByStableCoinComponent, PayByTransferComponent, RadioGroupComponent, ResourceService, SelectComponent, SuccessComponent, apiBaseUrl, buildDeviceInformation, cardType, checkObjectTruthy, currencySign, detect, formatAmount, getBaseAppUrl, getBaseUrl, getQueryParams, getValidationErrorMessage, provideMidenPG, restrictToNumericKeys, toastConfig, truncateString, urlValidator };
3114
+ export { BZP_CONFIG, BZP_CORRELATION_ID, BackComponent, ButtonComponent, COUNTRIES, CardComponent, CheckoutService, CircleCountdownComponent, CopyComponent, CurrencyAmountComponent, EncryptService, HintComponent, IconArrowSwapComponent, IconBuzapayIconComponent, IconCardsComponent, IconCheckCircleComponent, IconChevronDownComponent, IconChevronLeftComponent, IconChevronUpComponent, IconCloseComponent, IconCoinComponent, IconCopySuccessComponent, IconCourthouseComponent, IconLoaderComponent, IconLockComponent, IconMidenLogoComponent, IconQrCodeComponent, IconUsdcComponent, IconUsdtComponent, ImageComponent, InputComponent, InputErrorComponent, LabelInfoComponent, MidenPGAngular, PayByCardComponent, PayByStableCoinComponent, PayByTransferComponent, RadioGroupComponent, ResourceService, SelectComponent, SuccessComponent, apiBaseUrl, buildDeviceInformation, cardTypeHandler, checkObjectTruthy, currencySign, formatAmount, getBaseAppUrl, getBaseUrl, getQueryParams, getValidationErrorMessage, provideMidenPG, restrictToNumericKeys, toastConfig, truncateString, urlValidator };
3116
3115
  //# sourceMappingURL=miden-npm-angular.mjs.map