diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b6222f3b5..9377af066 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -75,7 +75,6 @@ stages: steps: - checkout: self clean: true - - bash: cp applepay/apple-developer-merchantid-domain-association-nonprod.txt apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -135,7 +134,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -195,7 +193,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -255,7 +252,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-prod.txt public/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist diff --git a/jest.config.js b/jest.config.js index 3e5462315..e364ec3ee 100644 --- a/jest.config.js +++ b/jest.config.js @@ -32,7 +32,7 @@ module.exports = { testMatch: ["**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"], coverageThreshold: { global: { - statements: 77, + statements: 76, }, }, // Uncomment this to avoid the massive amount of warnings we are getting for onSubmit and onInvalidSubmit diff --git a/public/applepay/apple-developer-merchantid-domain-association-nonprod.txt b/public/applepay/apple-developer-merchantid-domain-association-nonprod.txt deleted file mode 100644 index f358f5b28..000000000 --- a/public/applepay/apple-developer-merchantid-domain-association-nonprod.txt +++ /dev/null @@ -1,74 +0,0 @@ -MIIQaQYJKoZIhvcNAQcCoIIQWjCCEFYCAQExCzAJBgUrDgMCGgUAMHgGCSqGSIb3DQEHAaBrBGl7 -InRlYW1JZCI6IlY4SFNZMzlOWjUiLCJkb21haW4iOiJ3d3ctdGVzdDIuc2FmZWxpdGUuY29tIiwi -ZGF0ZUNyZWF0ZWQiOiIyMDI0LTA3LTE4LDE0OjU1OjA1IiwidmVyc2lvbiI6MX2ggg0_MIIENDCC -AxygAwIBAgIIY_BW8s8iV_MwDQYJKoZIhvcNAQELBQAwczEtMCsGA1UEAwwkQXBwbGUgaVBob25l -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMjQwMTMwMTgzMjA1WhcNMjkw -MTI4MTgzMjA0WjBZMTUwMwYDVQQDDCxBcHBsZSBpUGhvbmUgT1MgUHJvdmlzaW9uaW5nIFByb2Zp -bGUgU2lnbmluZzETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC1FX_kJQ1chXPiyq7cbeqNGGn-pv_c_cwpLk2qcBWJD79H31jO -WFlKCB2xoQ229iBxUncHfWR_QmmLKHvyw0A9s3CBF8nkhi2ZVzd1wNTjtjcc2Dcm7kAsi3Hw7xRj -TOS_0S-HUEUdpxJxkbQX9sNJQHBt64923LXzwWH5JKwxWb5X_kqWxYoAlse5CjmYUeqATgKGEejt -eO1HxmV6-LAL1Ycpfmab7T296Dm6fUhkO-eIB1-efCGWkBQAV0BlJq7bo4O8jRv3o4VjOjf0rtDO -FG8RVCdSsGjLtGs-0gDEORTorEdwUlY2X54rPlOZpuOA0lN4N7tz35kMtxySmq9lAgMBAAGjgeUw -geIwDAYDVR0TAQH_BAIwADAfBgNVHSMEGDAWgBRv8ZUYYlzgyPHF7WwYyeDTZFKYIDBABggrBgEF -BQcBAQQ0MDIwMAYIKwYBBQUHMAGGJGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYWlwY2Ew -NzAvBgNVHR8EKDAmMCSgIqAghh5odHRwOi8vY3JsLmFwcGxlLmNvbS9haXBjYS5jcmwwHQYDVR0O -BBYEFCkAQ-DGkwX04nv_NdJ5BvpUl3YjMA4GA1UdDwEB_wQEAwIHgDAPBgkqhkiG92NkBjoEAgUA -MA0GCSqGSIb3DQEBCwUAA4IBAQBA51NbANKWAu-nYD7W27ilNY9YRzstmIC5_nOz1o_RTQR_Zbps -s1G8bzM-53F6OgL8MFI2ummWpXfSL2k_bX6Y_FtCYkoyWdF-rVexy0WeCkjeRgc1G14DGy5ontva -qGzENwiFoECYoxI4cBANSDVkhZNWBzfZ2lY4cCWo4U9oVyxYDBoWSd4_JTZzWNzlX3koj7kLA7vh -nPUW53hsEk_BsH5x10qy_tEBNOKPbh4vC3q0wbEyhk6_W5iEaE9nh0_Anrq0MfQJtIo91t4QKkvE -jcNN1OrFYpmYGevd0X3H99npvad4XiYUX2Pmf0Ro8ChhvcDhFeBAq_9h6HvAOUoMMIIERDCCAyyg -AwIBAgIIXGPK5Eo3U8kwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFw -cGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQD -Ew1BcHBsZSBSb290IENBMB4XDTE3MDUxMDIxMjczMFoXDTMwMTIzMTAwMDAwMFowczEtMCsGA1UE -AwwkQXBwbGUgaVBob25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJRWoBDz6DBIbH_L_cXvAege4XMHNjJi7ePXokzZM- -TzlHunW-88DS8Vmiqx_-CoY82S2aB_IOa7kpkRpfIgqL8XJYBa5MS0TFeaeAPLCI4IwMJ4RdGeWH -GTbL48V2t7D0QXJR9AVcg0uibaZRuPEm33terWUMxrKYUYy7fRtMwU7ICMfS7WQLtN0bjU9AfRuP -SJaSW_PQmH7ZvKQZDplhu0FdAcxbd3p9JNDc01P_w9zFlCy2Wk2OGCM5vdnGUj7R8vQliqEqh_3Y -DEYpUf_tF2yJJWuHv4ppFJ93n8MVt2iziEW9hOYGAkFkD60qKLgVyeCsp4q6cgQ0sniM-LKFAgMB -AAGjgewwgekwDwYDVR0TAQH_BAUwAwEB_zAfBgNVHSMEGDAWgBQr0GlHlHYJ_vRrjS5ApvdHTX8I -XjBEBggrBgEFBQcBAQQ4MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3Nw -MDMtYXBwbGVyb290Y2EwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9v -dC5jcmwwHQYDVR0OBBYEFG_xlRhiXODI8cXtbBjJ4NNkUpggMA4GA1UdDwEB_wQEAwIBBjAQBgoq -hkiG92NkBgISBAIFADANBgkqhkiG9w0BAQsFAAOCAQEAOs-smI2-kiAhCa2V87FcIfo2LVcgRHRz -ZJIIs5as922X-ls0OCfPEkbTPBHwB8mZkLHR6BEJpeOla2xjCD-eJfrVmZxM5uXOjrJNaOyLq6Oi -T4oRFT7cFCscxkS2b2fFW0-VKS2HXD_cgx53T-3aVKct5xOBwWPEVAsbSwpqKCII1DeSfH9nKF-v -PT-3rFkdODRkWu4zShlCRCnEyhhr4cFTLS30TcIV9jMyGHjxJm-KTeuUTKPo_w-zA4tl2usu2GVQ -n9yfit8xqIRU3FJSQdKyEx0xRkeIXz7uw_KMIwSV66yKPoJsBp8u44tDmmJbNA30mc8s7rpyhhkj -pfyOtTCCBLswggOjoAMCAQICAQIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNV -BAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw -FAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTA2MDQyNTIxNDAzNloXDTM1MDIwOTIxNDAzNlowYjEL -MAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA5JGpCR-R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQ -CdN_QaiY-dHKZpwkaxHQo7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm_IlA7pV -j01dDfFkNSMVSxVZHbOU9_acns9QusFYUGePCLQg98usLCBvcLY_ATCMt0PPD5098ytJKBrI_s61 -uQ7ZXhzWyz21Oq30Dw4AkguxIRYudNU8DdtiFqujcZJHU1XBry9Bs_j743DN5qNMRX4fTGtQlkGJ -xHRiCxCDQYczioGxMFjsWgQyjGizjx3eZXP_Z15lvEnYdp8zFGWhd5TJLQIDAQABo4IBejCCAXYw -DgYDVR0PAQH_BAQDAgEGMA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn-9GuNLkCm -90dNfwheMB8GA1UdIwQYMBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMIIBEQYDVR0gBIIBCDCCAQQw -ggEABgkqhkiG92NkBQEwgfIwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LmFwcGxlLmNvbS9hcHBs -ZWNhLzCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFu -eSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2Vy -dGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjANBgkqhkiG9w0BAQUFAAOCAQEAXDaZTC14 -t-2Mm9zzd5vydtJ3ME_BH4WDhRuZPUc38qmbQI4s1LGQEti-9HOb7tJkD8t5TzTYoj75eP9ryAfs -fTmDi1Mg0zjEsb-aTwpr_yv8WacFCXwXQFYRHnTTt4sjO0ej1W8k4uvRt3DfD0XhJ8rxbXjt57UX -F6jcfiI1yiXV2Q_Wa9SiJCMR96Gsj3OBYMYbWwkvkrL4REjwYDieFfU9JmcgijNq9w2Cz97roy_5 -U2pbZMBjM3f3OgcsVuvaDyEO2rpzGU-12TZ_wYdV2aeZuTJC-9jVcZ5-oVK3G72TQiQSKscPHbZN -nF5jyEuAF1CqitXa5PzQCQc3sHV1ITGCAoUwggKBAgEBMH8wczEtMCsGA1UEAwwkQXBwbGUgaVBo -b25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCGPwVvLPIlfzMAkGBSsOAwIa -BQCggdwwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNzE4MTQ1 -NTA1WjAjBgkqhkiG9w0BCQQxFgQUYwvDx1yr56NtJEdxh--NMv9wqDEwKQYJKoZIhvcNAQk0MRww -GjAJBgUrDgMCGgUAoQ0GCSqGSIb3DQEBAQUAMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcw -DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0G -CSqGSIb3DQEBAQUABIIBAJ6WUgCnMMT4q4LQjeOOpLWsXJRdns3b5aBEKoK3NIetn3I_bWo0wmX3 -Rxuy29Ljv_0bGC0PfcXyBXWtg1LQ4EzUpgpVK_IeZrlX6HcKwxgZwkejwVg009kTYNir-otXP1AM -YNfXsPA-woLAbo_Hx0MrN1EHgejqO8x5c9s7LpQQGJpVsD9Rq6sZ4VJftMtuTz4XwvU3Qypj7_RF -Drhh-MekYg6qG7aJMzOuftkDx2BWL7Sld77ViX1Qt8zZpyoI4RW4MIxH50ERwVYlpaoHYdnit3Ct -RZki8aS0kxFdxVY0pePF0k6h-5GbwceXATkXM4UY0-fAXqk11QevHKT8was diff --git a/public/applepay/apple-developer-merchantid-domain-association-prod.txt b/public/applepay/apple-developer-merchantid-domain-association-prod.txt deleted file mode 100644 index f358f5b28..000000000 --- a/public/applepay/apple-developer-merchantid-domain-association-prod.txt +++ /dev/null @@ -1,74 +0,0 @@ -MIIQaQYJKoZIhvcNAQcCoIIQWjCCEFYCAQExCzAJBgUrDgMCGgUAMHgGCSqGSIb3DQEHAaBrBGl7 -InRlYW1JZCI6IlY4SFNZMzlOWjUiLCJkb21haW4iOiJ3d3ctdGVzdDIuc2FmZWxpdGUuY29tIiwi -ZGF0ZUNyZWF0ZWQiOiIyMDI0LTA3LTE4LDE0OjU1OjA1IiwidmVyc2lvbiI6MX2ggg0_MIIENDCC -AxygAwIBAgIIY_BW8s8iV_MwDQYJKoZIhvcNAQELBQAwczEtMCsGA1UEAwwkQXBwbGUgaVBob25l -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMjQwMTMwMTgzMjA1WhcNMjkw -MTI4MTgzMjA0WjBZMTUwMwYDVQQDDCxBcHBsZSBpUGhvbmUgT1MgUHJvdmlzaW9uaW5nIFByb2Zp -bGUgU2lnbmluZzETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC1FX_kJQ1chXPiyq7cbeqNGGn-pv_c_cwpLk2qcBWJD79H31jO -WFlKCB2xoQ229iBxUncHfWR_QmmLKHvyw0A9s3CBF8nkhi2ZVzd1wNTjtjcc2Dcm7kAsi3Hw7xRj -TOS_0S-HUEUdpxJxkbQX9sNJQHBt64923LXzwWH5JKwxWb5X_kqWxYoAlse5CjmYUeqATgKGEejt -eO1HxmV6-LAL1Ycpfmab7T296Dm6fUhkO-eIB1-efCGWkBQAV0BlJq7bo4O8jRv3o4VjOjf0rtDO -FG8RVCdSsGjLtGs-0gDEORTorEdwUlY2X54rPlOZpuOA0lN4N7tz35kMtxySmq9lAgMBAAGjgeUw -geIwDAYDVR0TAQH_BAIwADAfBgNVHSMEGDAWgBRv8ZUYYlzgyPHF7WwYyeDTZFKYIDBABggrBgEF -BQcBAQQ0MDIwMAYIKwYBBQUHMAGGJGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYWlwY2Ew -NzAvBgNVHR8EKDAmMCSgIqAghh5odHRwOi8vY3JsLmFwcGxlLmNvbS9haXBjYS5jcmwwHQYDVR0O -BBYEFCkAQ-DGkwX04nv_NdJ5BvpUl3YjMA4GA1UdDwEB_wQEAwIHgDAPBgkqhkiG92NkBjoEAgUA -MA0GCSqGSIb3DQEBCwUAA4IBAQBA51NbANKWAu-nYD7W27ilNY9YRzstmIC5_nOz1o_RTQR_Zbps -s1G8bzM-53F6OgL8MFI2ummWpXfSL2k_bX6Y_FtCYkoyWdF-rVexy0WeCkjeRgc1G14DGy5ontva -qGzENwiFoECYoxI4cBANSDVkhZNWBzfZ2lY4cCWo4U9oVyxYDBoWSd4_JTZzWNzlX3koj7kLA7vh -nPUW53hsEk_BsH5x10qy_tEBNOKPbh4vC3q0wbEyhk6_W5iEaE9nh0_Anrq0MfQJtIo91t4QKkvE -jcNN1OrFYpmYGevd0X3H99npvad4XiYUX2Pmf0Ro8ChhvcDhFeBAq_9h6HvAOUoMMIIERDCCAyyg -AwIBAgIIXGPK5Eo3U8kwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFw -cGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQD -Ew1BcHBsZSBSb290IENBMB4XDTE3MDUxMDIxMjczMFoXDTMwMTIzMTAwMDAwMFowczEtMCsGA1UE -AwwkQXBwbGUgaVBob25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJRWoBDz6DBIbH_L_cXvAege4XMHNjJi7ePXokzZM- -TzlHunW-88DS8Vmiqx_-CoY82S2aB_IOa7kpkRpfIgqL8XJYBa5MS0TFeaeAPLCI4IwMJ4RdGeWH -GTbL48V2t7D0QXJR9AVcg0uibaZRuPEm33terWUMxrKYUYy7fRtMwU7ICMfS7WQLtN0bjU9AfRuP -SJaSW_PQmH7ZvKQZDplhu0FdAcxbd3p9JNDc01P_w9zFlCy2Wk2OGCM5vdnGUj7R8vQliqEqh_3Y -DEYpUf_tF2yJJWuHv4ppFJ93n8MVt2iziEW9hOYGAkFkD60qKLgVyeCsp4q6cgQ0sniM-LKFAgMB -AAGjgewwgekwDwYDVR0TAQH_BAUwAwEB_zAfBgNVHSMEGDAWgBQr0GlHlHYJ_vRrjS5ApvdHTX8I -XjBEBggrBgEFBQcBAQQ4MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3Nw -MDMtYXBwbGVyb290Y2EwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9v -dC5jcmwwHQYDVR0OBBYEFG_xlRhiXODI8cXtbBjJ4NNkUpggMA4GA1UdDwEB_wQEAwIBBjAQBgoq -hkiG92NkBgISBAIFADANBgkqhkiG9w0BAQsFAAOCAQEAOs-smI2-kiAhCa2V87FcIfo2LVcgRHRz -ZJIIs5as922X-ls0OCfPEkbTPBHwB8mZkLHR6BEJpeOla2xjCD-eJfrVmZxM5uXOjrJNaOyLq6Oi -T4oRFT7cFCscxkS2b2fFW0-VKS2HXD_cgx53T-3aVKct5xOBwWPEVAsbSwpqKCII1DeSfH9nKF-v -PT-3rFkdODRkWu4zShlCRCnEyhhr4cFTLS30TcIV9jMyGHjxJm-KTeuUTKPo_w-zA4tl2usu2GVQ -n9yfit8xqIRU3FJSQdKyEx0xRkeIXz7uw_KMIwSV66yKPoJsBp8u44tDmmJbNA30mc8s7rpyhhkj -pfyOtTCCBLswggOjoAMCAQICAQIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNV -BAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw -FAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTA2MDQyNTIxNDAzNloXDTM1MDIwOTIxNDAzNlowYjEL -MAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA5JGpCR-R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQ -CdN_QaiY-dHKZpwkaxHQo7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm_IlA7pV -j01dDfFkNSMVSxVZHbOU9_acns9QusFYUGePCLQg98usLCBvcLY_ATCMt0PPD5098ytJKBrI_s61 -uQ7ZXhzWyz21Oq30Dw4AkguxIRYudNU8DdtiFqujcZJHU1XBry9Bs_j743DN5qNMRX4fTGtQlkGJ -xHRiCxCDQYczioGxMFjsWgQyjGizjx3eZXP_Z15lvEnYdp8zFGWhd5TJLQIDAQABo4IBejCCAXYw -DgYDVR0PAQH_BAQDAgEGMA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn-9GuNLkCm -90dNfwheMB8GA1UdIwQYMBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMIIBEQYDVR0gBIIBCDCCAQQw -ggEABgkqhkiG92NkBQEwgfIwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LmFwcGxlLmNvbS9hcHBs -ZWNhLzCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFu -eSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2Vy -dGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjANBgkqhkiG9w0BAQUFAAOCAQEAXDaZTC14 -t-2Mm9zzd5vydtJ3ME_BH4WDhRuZPUc38qmbQI4s1LGQEti-9HOb7tJkD8t5TzTYoj75eP9ryAfs -fTmDi1Mg0zjEsb-aTwpr_yv8WacFCXwXQFYRHnTTt4sjO0ej1W8k4uvRt3DfD0XhJ8rxbXjt57UX -F6jcfiI1yiXV2Q_Wa9SiJCMR96Gsj3OBYMYbWwkvkrL4REjwYDieFfU9JmcgijNq9w2Cz97roy_5 -U2pbZMBjM3f3OgcsVuvaDyEO2rpzGU-12TZ_wYdV2aeZuTJC-9jVcZ5-oVK3G72TQiQSKscPHbZN -nF5jyEuAF1CqitXa5PzQCQc3sHV1ITGCAoUwggKBAgEBMH8wczEtMCsGA1UEAwwkQXBwbGUgaVBo -b25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCGPwVvLPIlfzMAkGBSsOAwIa -BQCggdwwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNzE4MTQ1 -NTA1WjAjBgkqhkiG9w0BCQQxFgQUYwvDx1yr56NtJEdxh--NMv9wqDEwKQYJKoZIhvcNAQk0MRww -GjAJBgUrDgMCGgUAoQ0GCSqGSIb3DQEBAQUAMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcw -DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0G -CSqGSIb3DQEBAQUABIIBAJ6WUgCnMMT4q4LQjeOOpLWsXJRdns3b5aBEKoK3NIetn3I_bWo0wmX3 -Rxuy29Ljv_0bGC0PfcXyBXWtg1LQ4EzUpgpVK_IeZrlX6HcKwxgZwkejwVg009kTYNir-otXP1AM -YNfXsPA-woLAbo_Hx0MrN1EHgejqO8x5c9s7LpQQGJpVsD9Rq6sZ4VJftMtuTz4XwvU3Qypj7_RF -Drhh-MekYg6qG7aJMzOuftkDx2BWL7Sld77ViX1Qt8zZpyoI4RW4MIxH50ERwVYlpaoHYdnit3Ct -RZki8aS0kxFdxVY0pePF0k6h-5GbwceXATkXM4UY0-fAXqk11QevHKT8was diff --git a/src/constants/analytics.js b/src/constants/analytics.js index b5b24660d..c3416edea 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -20,6 +20,7 @@ const GaActions = { VIF: "vif", SUBMITTED: "Submitted", DISPLAYED: "Displayed", + CASH_QUOTE_DISPLAYED: "Cash quote displayed", }; const GaLabels = { diff --git a/src/constants/application-config.js b/src/constants/application-config.js index d4a0ceb8c..a72b306d3 100644 --- a/src/constants/application-config.js +++ b/src/constants/application-config.js @@ -30,6 +30,7 @@ const applicationConfig = { OUTLOOK_CALENDAR: "https://outlook.office.com/calendar/deeplink/compose?path=/calendar/action/compose&rru=addevent", FRONTEND_LOGGER_PATH: "/analytics/api/v1/logging", + AFFILIATE_COOKIE_CONTAINING_NAME: "_Track", }; export { applicationConfig }; diff --git a/src/constants/dynamictext-mapper.js b/src/constants/dynamictext-mapper.js index 9191c8781..047aa2526 100644 --- a/src/constants/dynamictext-mapper.js +++ b/src/constants/dynamictext-mapper.js @@ -19,6 +19,7 @@ const customMappings = { { key: "Passenger Vent", transformedValue: "passenger side vent glass" }, { key: "Passenger Quarter", transformedValue: "passenger side quarter panel" }, { key: "Passenger SlideDoor", transformedValue: "passenger side sliding door" }, + { key: "Passenger SideDoor", transformedValue: "passenger side sliding door" }, ], }; diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index 2d4a823c2..43abf149c 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -37,11 +37,11 @@ const endpoints = { method: "POST", }, LookupVinByPlate: { - url: "/vehicle/api/v1/vehicle/lookup-by-plate", + url: "/vehicle/api/v1/vehicle/lookup-vin-by-plate", method: "POST", }, LookupVinByAddress: { - url: "/vehicle/api/v1/vehicle/lookup-by-address", + url: "/vehicle/api/v1/vehicle/lookup-vin-by-address", method: "POST", }, LookupVinByImage: { diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index 65cb13e9b..069079d35 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -93,6 +93,7 @@ const storeActions = { SAVE_CCTOKEN: "saveCCToken", SAVE_PAYPAL_TOKEN: "savePaypalToken", SAVE_NEXTGEN_SETTLED_AMOUNT: "saveNextGenSettledAmount", + SAVE_IS_RECAL_ACK_OPT_IN: "saveIsRecalAckOptIn", CREATE_SUBMITTED_ORDER: "createSubmittedOrder", RESET_SUBMITTED_ORDER: "resetSubmittedOrder", diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index b248ac150..494be36e3 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -60,6 +60,7 @@ const storeMutations = { Customer_Portal_Login_Token: "updateCustomerPortalLoginToken", LOCK_TOKEN: "updateLockToken", UPDATE_SETTLED_TENDER_AMOUNT: "updateSettledTenderAmount", + UPDATE_IS_RECAL_ACK_OPT_IN: "updateIsRecalAckOptIn", // EVENT BUS MUTATIONS ADD_EVENT_TO_BUS: "addEventToBus", @@ -110,6 +111,9 @@ const storeMutations = { RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE: "resetExternalParameterServiceZipState", RESET_EXTERNAL_PARAMETER_QUOTE_STATE: "resetExternalParameterQuoteState", RESET_IS_EXTERNAL_PARAMETER: "resetIsExternalParameter", + + //Affiliate Cookies + UPDATE_AFFILIATE_COOKIES: "updateAffiliateCookies", }; export { storeMutations }; diff --git a/src/fmg-components/cart/cart.spec.js b/src/fmg-components/cart/cart.spec.js index 3e1e9760f..10207c8bb 100644 --- a/src/fmg-components/cart/cart.spec.js +++ b/src/fmg-components/cart/cart.spec.js @@ -263,6 +263,49 @@ describe("cart.vue", () => { expect(found).toBe(true); }); + // Mobile Fee Cart Item + test("if there is mobile fee on the order, a mobile fee cart item should be added to the cart", () => { + // Arrange + const lineItems = { + glassParts: [], + supportingItems: [ + { + description: null, + id: "9ff98501-03a4-432b-884e-e4e28f884a2f", + kitPrice: 0, + laborAmount: 34.98, + partNumber: "MOBILE FEE", + partType: "MOBILE FEE", + salesTax: 2.62, + sellingPrice: 0, + }, + ], + vaps: [], + promos: [], + }; + + const availableVaps = []; + + // Act + const { wrapper } = setupMocks({ + props: { + modelValue: lineItems, + availableVaps: availableVaps, + }, + }); + + // Assert + expect(wrapper.vm.mobileFeeCartItem).not.toBeNull(); + expect(wrapper.vm.mobileFeeCartItem.subTotal).toEqual(34.98); + expect(wrapper.vm.mobileFeeCartItem.salesTax).toEqual(2.62); + + const found = + wrapper.vm.cartItems.findIndex( + (cartItem) => cartItem == wrapper.vm.mobileFeeCartItem + ) >= 0; + expect(found).toBe(true); + }); + // Service package discount Fee Cart Item test("if there is service package discount fee on the order, a service package discount cart item should be added to the cart", () => { // Arrange diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index a712b8127..a1ef90c50 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -377,6 +377,10 @@ export default { cartItems.push(this.suppliesRepairCartItem); } + if (this.mobileFeeCartItem) { + cartItems.push(this.mobileFeeCartItem); + } + if (this.servicePackageDiscountCartItem) { cartItems.push(this.servicePackageDiscountCartItem); } @@ -756,6 +760,39 @@ export default { return cartItem; }, + mobileFeeCartItemName() { + return this.getCmsContent("MobileServiceTextWidget", "Text"); + }, + mobileFeeCartItem() { + let cartItem = null; + const mobileFeeLineItem = this.supportingItems.find( + (lineItem) => lineItem.partType == partTypeStrings.MOBILE_FEE + ); + + if (mobileFeeLineItem) { + cartItem = { + name: this.mobileFeeCartItemName, + category: cartItemCategories.SUPPORTING_ITEMS, + cartItemType: cartItemTypes.MOBILE_FEE, + isDisplayed: true, + isRemovable: false, + subTotal: 0, + salesTax: 0, + lineItems: [], + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.MOBILE_FEE + ), + }; + mobileFeeLineItem.cartItemType = cartItem.cartItemType; + cartItem.lineItems.push(mobileFeeLineItem); + cartItem.subTotal += + (mobileFeeLineItem.kitPrice ?? 0) + + (mobileFeeLineItem.laborAmount ?? 0) + + (mobileFeeLineItem.sellingPrice ?? 0); + cartItem.salesTax += mobileFeeLineItem.salesTax ?? 0; + } + return cartItem; + }, servicePackageDiscountCartItemName() { return this.getCmsContent("ServicePackageDiscountTextWidget", "Text"); }, diff --git a/src/global-methods.js b/src/global-methods.js index c471a8c63..9426acede 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -98,15 +98,17 @@ export default { ); } - // Do not route to error logic when no wipers found or no promo found (404s) if (error.response.status != "404") { - //router.navigateError(); Emergency change for testing - skiener 03/12 - } + // Do not route to error logic when no wipers found or no promo found (404s) + router.navigateError(); - global.$logger.logError( - `${method}: ${endpoint}: ${error.message}`, - error.response - ); + // do not log 404 errors from services because we return NotFound + // when a service doesn't return an object + global.$logger.logError( + `${method}: ${endpoint}: ${error.message}`, + error.response + ); + } return reject(error.response); } diff --git a/src/helpers/duration-length-helper.js b/src/helpers/duration-length-helper.js new file mode 100644 index 000000000..cd57f2c4e --- /dev/null +++ b/src/helpers/duration-length-helper.js @@ -0,0 +1,15 @@ +export function getDisplayTextForDurationLength(durationMinimum, durationMaximum) { + const isLongAppointment = durationMaximum >= 120; + const isDurationRange = durationMinimum !== durationMaximum; + + const adjustedMinimum = isLongAppointment ? durationMinimum / 60 : durationMinimum; + const adjustedMaximum = isLongAppointment ? durationMaximum / 60 : durationMaximum; + + const durationText = isDurationRange + ? `${adjustedMinimum} - ${adjustedMaximum}` + : adjustedMinimum; + + const unitText = isLongAppointment ? "hours" : "minutes"; + + return `${durationText} ${unitText}`; +} diff --git a/src/helpers/duration-length-helper.spec.js b/src/helpers/duration-length-helper.spec.js new file mode 100644 index 000000000..b35585311 --- /dev/null +++ b/src/helpers/duration-length-helper.spec.js @@ -0,0 +1,24 @@ +import { getDisplayTextForDurationLength } from "@/helpers/duration-length-helper"; + +describe("damage-length-helper.js", () => { + it("Should return the expected duration for the appointment in hours", () => { + // Arrange / Act + const durationMinimum = 60; + const durationMaximum = 120; + + const duration = getDisplayTextForDurationLength(durationMinimum, durationMaximum); + + // Assert + expect(duration).toEqual("1 - 2 hours"); + }); + it("Should return the expected duration for the appointment in minutes", () => { + // Arrange / Act + const durationMinimum = 30; + const durationMaximum = 45; + + const duration = getDisplayTextForDurationLength(durationMinimum, durationMaximum); + + // Assert + expect(duration).toEqual("30 - 45 minutes"); + }); +}); diff --git a/src/helpers/heritage-integration/cookie-helper.js b/src/helpers/heritage-integration/cookie-helper.js index 579993795..1b7b551ca 100644 --- a/src/helpers/heritage-integration/cookie-helper.js +++ b/src/helpers/heritage-integration/cookie-helper.js @@ -210,6 +210,17 @@ export function refreshCookieExpiration(name, expirationTime) { } } +export function getAffiliateCookies() { + const affiliateCookies = []; + const cookieContainingName = applicationConfig.AFFILIATE_COOKIE_CONTAINING_NAME; + const affiliateCookiesAll = getCookiesContainingName(cookieContainingName); + affiliateCookiesAll?.forEach((cookieName) => { + const cookieValue = getCookieValueByName(cookieName); + affiliateCookies.push({ CookieName: cookieName, CookieValue: cookieValue }); + }); + return affiliateCookies; +} + /* =========================== = PRIVATE FUNCTIONS = @@ -292,3 +303,15 @@ function getCookieValueByName(name) { function isLocalhost() { return location.hostname.includes("localhost"); } + +function getCookiesContainingName(name) { + const allCookies = document.cookie.split(";"); + const matchingCookies = []; + for (const cookie of allCookies) { + const [cookieName, cookieValue] = cookie.trim().split("="); + if (cookieName.includes(name)) { + matchingCookies.push(cookieName); + } + } + return matchingCookies; +} diff --git a/src/helpers/heritage-integration/cookie-helper.spec.js b/src/helpers/heritage-integration/cookie-helper.spec.js index 34ae00b86..a18906381 100644 --- a/src/helpers/heritage-integration/cookie-helper.spec.js +++ b/src/helpers/heritage-integration/cookie-helper.spec.js @@ -11,9 +11,15 @@ import { setSessionIdIfUnset, isCookieSet, refreshCookieExpiration, + getAffiliateCookies, } from "@/helpers/heritage-integration/cookie-helper.js"; import { cookieNames } from "@/constants/cookie-names"; -import { removeAllTestCookies, setupCookies, setupCrypto } from "@/helpers/unit-test-helper"; +import { + removeAllTestCookies, + setupCookies, + setupCrypto, + setupAffiliateCookies, +} from "@/helpers/unit-test-helper"; import { deleteFunnelCookie } from "./cookie-helper"; const randomUUID = "68d89736-c277-46f1-8fee-c3dacdb23c08"; @@ -431,3 +437,21 @@ describe("cookies", () => { }); }); }); +describe("getAffiliateCookies", () => { + it("should return an empty array if no affiliate cookies are found", () => { + setupAffiliateCookies({}); + expect(getAffiliateCookies()).toEqual([]); + }); + + it("should return an array of affiliate cookies when they are present", () => { + setupAffiliateCookies({ + CookieName: "affiliate_cookie1_Track", + CookieValue: "value_of_affiliate_cookie1", + }); + + const expectedCookies = [ + { CookieName: "affiliate_cookie1_Track", CookieValue: "value_of_affiliate_cookie1" }, + ]; + expect(getAffiliateCookies()).toEqual(expectedCookies); + }); +}); diff --git a/src/helpers/unit-test-helper.js b/src/helpers/unit-test-helper.js index 2cd580df0..7c3c9ed4e 100644 --- a/src/helpers/unit-test-helper.js +++ b/src/helpers/unit-test-helper.js @@ -139,6 +139,10 @@ export function setupCookies({ funnelCookieValue = "", includeHeritageCookie = t }); } +export function setupAffiliateCookies(cookie) { + setCookieProperties({ [cookie.CookieName]: cookie.CookieValue }, { isSecure: false }); +} + export function setupCrypto(mockValue) { global.crypto = { randomUUID: jest.fn(), diff --git a/src/layouts/confirmation/confirmation.spec.js b/src/layouts/confirmation/confirmation.spec.js index 0d8a1b273..a079fab83 100644 --- a/src/layouts/confirmation/confirmation.spec.js +++ b/src/layouts/confirmation/confirmation.spec.js @@ -1,6 +1,6 @@ // Components import confirmation from "@/layouts/confirmation/confirmation.vue"; -import { AppointmentTypeStrings } from "@/constants/schedule-constants"; +import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants"; import { applicationConfig } from "@/constants/application-config.js"; // Supporting Files @@ -25,6 +25,8 @@ beforeEach(() => { startTime: "09:00", endTime: "10:00", routeCode: "000", + jobMaxMinutes: "120", + jobMinMinutes: "60", }, lineItems: { glassParts: [ @@ -360,6 +362,69 @@ describe("computed properties...", () => { // Assert expect(testValue).toEqual("test1,
test, AZ 12345"); }); + test("Appointment Duration should return text in expected format.", () => { + //Arrange + + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: 1 - 2 hours"); + }); + test("Appointment Duration should return with correct duration values in expected format for hours.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 120; + store.getters.submittedOrder.schedule.jobMinMinutes = 60; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: 1 - 2 hours"); + }); + test("Appointment Duration should return with correct duration values in expected format for minutes.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 45; + store.getters.submittedOrder.schedule.jobMinMinutes = 30; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: 30 - 45 minutes"); + }); + + test("Appointment Duration should return with All Day.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 45; + store.getters.submittedOrder.schedule.jobMinMinutes = 30; + store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.ALL_DAY_DROP_OFF; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: All Day"); + }); + + test("Appointment Duration should return with Overnight.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 45; + store.getters.submittedOrder.schedule.jobMinMinutes = 30; + store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.OVERNIGHT_DROP_OFF; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: Overnight"); + }); }); function setupMocks({ customMountOptions }) { diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 39ba55f17..b46154756 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -42,6 +42,12 @@ :scheduleEndTime="ScheduleEndTime" />
+ +
@@ -82,6 +88,7 @@ import vehicleBanner from "@/fmg-components/vehicle-banner/vehicle-banner"; import navbar from "@/fmg-components/nav-bar/nav-bar"; import addToCalendar from "@/layouts/confirmation/add-to-calendar/add-to-calendar"; import cart from "@/fmg-components/cart/cart"; +import textBlock from "@/digital-components/text-block/text-block"; //Supporting files import baseMixin from "@/mixins/base-mixin.js"; @@ -89,7 +96,7 @@ import analyticsMixin from "@/mixins/analytics-mixin"; import store from "@/store"; import { storeActions } from "@/constants/store-actions"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; -import { AppointmentTypeStrings } from "@/constants/schedule-constants"; +import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants"; import { settleAllPromises } from "@/helpers/layout-helper"; import { applicationConfig } from "@/constants/application-config.js"; import { convertDateStringToDate } from "@/layouts/schedule/helpers/schedule-helper"; @@ -97,6 +104,7 @@ import { deepClone } from "@/helpers/object-helper"; import { Form } from "vee-validate"; import { get12HourTimeFormat, get12HourTimeMobileFormat } from "@/helpers/date-helper"; import { coverageStatus } from "@/constants/insurance"; +import { getDisplayTextForDurationLength } from "@/helpers/duration-length-helper"; export default { name: "confirmation", @@ -315,6 +323,28 @@ export default { isPia() { return store.getters.submittedOrder?.payment.isPia; }, + AppointmentDuration() { + const durationMaximum = store.getters.submittedOrder?.schedule?.jobMaxMinutes; + const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes; + const durationLengthString = "Duration: "; + if ( + store.getters.submittedOrder?.schedule?.routeCode.includes( + RouteCodeFlags.ALL_DAY_DROP_OFF + ) + ) { + return durationLengthString.concat("All Day"); + } else if ( + store.getters.submittedOrder?.schedule?.routeCode.includes( + RouteCodeFlags.OVERNIGHT_DROP_OFF + ) + ) { + return durationLengthString.concat("Overnight"); + } else { + return durationLengthString.concat( + getDisplayTextForDurationLength(durationMinimum, durationMaximum) + ); + } + }, }, methods: { arePagePrerequisitesValid() { @@ -365,6 +395,7 @@ export default { vehicleBanner, addToCalendar, cart, + textBlock, }, }; diff --git a/src/layouts/payment-method/payment-method-question/payment-method-question.vue b/src/layouts/payment-method/payment-method-question/payment-method-question.vue index 9991e6093..a2974d7ef 100644 --- a/src/layouts/payment-method/payment-method-question/payment-method-question.vue +++ b/src/layouts/payment-method/payment-method-question/payment-method-question.vue @@ -9,10 +9,8 @@ :answers="paymentMethodAnswerData" isRequired :validationRules="validationRules" - :hasRecal="hasRecal" :showApplePay="showApplePay" :isInsurance="isInsurance" - :isPiaEnabled="isPiaEnabled" v-model="selectedMethod" textPosition="text-start" /> @@ -21,8 +19,6 @@