diff --git a/package-lock.json b/package-lock.json index e838e486..c8ac4360 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "digitalconsumer.iss", "version": "0.1.0", "dependencies": { + "@adyen/adyen-web": "^6.31.1", "axios": "^1.13.5", "axios-retry": "^3.5.0", "bootstrap": "^5.3", @@ -93,6 +94,18 @@ "dev": true, "license": "MIT" }, + "node_modules/@adyen/adyen-web": { + "version": "6.31.1", + "resolved": "https://registry.npmjs.org/@adyen/adyen-web/-/adyen-web-6.31.1.tgz", + "integrity": "sha512-vxeJW1bTvjXxYf6CkPQV8gbYIhm/hupcjjeoKkkBdxk7geW3qy18Jlco4/MuSeb88ctTRM3gebwFXpqF2NjBLQ==", + "license": "MIT", + "dependencies": { + "@types/applepayjs": "14.0.9", + "@types/googlepay": "0.7.10", + "classnames": "2.5.1", + "preact": "10.28.2" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "dev": true, @@ -3298,9 +3311,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz", - "integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", "cpu": [ "arm" ], @@ -3312,9 +3325,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz", - "integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", "cpu": [ "arm64" ], @@ -3326,9 +3339,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz", - "integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", "cpu": [ "arm64" ], @@ -3340,9 +3353,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz", - "integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", "cpu": [ "x64" ], @@ -3354,9 +3367,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz", - "integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", "cpu": [ "arm64" ], @@ -3368,9 +3381,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz", - "integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", "cpu": [ "x64" ], @@ -3382,9 +3395,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz", - "integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", "cpu": [ "arm" ], @@ -3396,9 +3409,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz", - "integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", "cpu": [ "arm" ], @@ -3410,9 +3423,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz", - "integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", "cpu": [ "arm64" ], @@ -3424,9 +3437,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz", - "integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", "cpu": [ "arm64" ], @@ -3438,9 +3451,23 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz", - "integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", "cpu": [ "loong64" ], @@ -3452,9 +3479,23 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz", - "integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", "cpu": [ "ppc64" ], @@ -3466,9 +3507,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz", - "integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", "cpu": [ "riscv64" ], @@ -3480,9 +3521,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz", - "integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", "cpu": [ "riscv64" ], @@ -3494,9 +3535,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz", - "integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", "cpu": [ "s390x" ], @@ -3508,9 +3549,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz", - "integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", "cpu": [ "x64" ], @@ -3522,9 +3563,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz", - "integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", "cpu": [ "x64" ], @@ -3535,10 +3576,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz", - "integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", "cpu": [ "arm64" ], @@ -3550,9 +3605,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz", - "integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", "cpu": [ "arm64" ], @@ -3564,9 +3619,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz", - "integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", "cpu": [ "ia32" ], @@ -3578,7 +3633,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.3", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", "cpu": [ "x64" ], @@ -3590,7 +3647,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.3", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", "cpu": [ "x64" ], @@ -4079,13 +4138,11 @@ "node": ">= 10" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } + "node_modules/@types/applepayjs": { + "version": "14.0.9", + "resolved": "https://registry.npmjs.org/@types/applepayjs/-/applepayjs-14.0.9.tgz", + "integrity": "sha512-xEprYbb0TEP/XIiDPbVnTYpDai8fTFpsQfVSfTd81Is2GOMUy7ie019eyX6Mz2ECxfjoUVKaiGSL577roIeHCg==", + "license": "MIT" }, "node_modules/@types/aria-query": { "version": "5.0.1", @@ -4245,6 +4302,12 @@ "@types/node": "*" } }, + "node_modules/@types/googlepay": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@types/googlepay/-/googlepay-0.7.10.tgz", + "integrity": "sha512-ByXjDfxEp87zsjw5cVsNKEeA+AIJYcWwJvRqPu85jO0Lp/FeG67csnf4mqbPaIxmdI6+Khp3v5I0yyjq9MrGhw==", + "license": "MIT" + }, "node_modules/@types/graceful-fs": { "version": "4.1.5", "dev": true, @@ -4643,13 +4706,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -4819,11 +4882,13 @@ } }, "node_modules/@vitest/coverage-v8/node_modules/minimatch": { - "version": "9.0.5", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -7331,6 +7396,12 @@ "dev": true, "license": "MIT" }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, "node_modules/clean-css": { "version": "5.3.1", "dev": true, @@ -8872,13 +8943,15 @@ } }, "node_modules/editorconfig": { - "version": "1.0.4", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.7.tgz", + "integrity": "sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==", "dev": true, "license": "MIT", "dependencies": { "@one-ini/wasm": "0.1.1", "commander": "^10.0.0", - "minimatch": "9.0.1", + "minimatch": "^9.0.1", "semver": "^7.5.3" }, "bin": { @@ -8905,11 +8978,13 @@ } }, "node_modules/editorconfig/node_modules/minimatch": { - "version": "9.0.1", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -11320,7 +11395,9 @@ } }, "node_modules/immutable": { - "version": "4.1.0", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", + "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==", "dev": true, "license": "MIT" }, @@ -14615,7 +14692,9 @@ } }, "node_modules/js-beautify/node_modules/minimatch": { - "version": "5.1.6", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -15627,7 +15706,9 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -17357,6 +17438,16 @@ "dev": true, "license": "MIT" }, + "node_modules/preact": { + "version": "10.28.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.2.tgz", + "integrity": "sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prebuild-install": { "version": "7.1.3", "dev": true, @@ -18027,7 +18118,9 @@ } }, "node_modules/rollup": { - "version": "4.52.3", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", "dependencies": { @@ -18041,28 +18134,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.3", - "@rollup/rollup-android-arm64": "4.52.3", - "@rollup/rollup-darwin-arm64": "4.52.3", - "@rollup/rollup-darwin-x64": "4.52.3", - "@rollup/rollup-freebsd-arm64": "4.52.3", - "@rollup/rollup-freebsd-x64": "4.52.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.3", - "@rollup/rollup-linux-arm-musleabihf": "4.52.3", - "@rollup/rollup-linux-arm64-gnu": "4.52.3", - "@rollup/rollup-linux-arm64-musl": "4.52.3", - "@rollup/rollup-linux-loong64-gnu": "4.52.3", - "@rollup/rollup-linux-ppc64-gnu": "4.52.3", - "@rollup/rollup-linux-riscv64-gnu": "4.52.3", - "@rollup/rollup-linux-riscv64-musl": "4.52.3", - "@rollup/rollup-linux-s390x-gnu": "4.52.3", - "@rollup/rollup-linux-x64-gnu": "4.52.3", - "@rollup/rollup-linux-x64-musl": "4.52.3", - "@rollup/rollup-openharmony-arm64": "4.52.3", - "@rollup/rollup-win32-arm64-msvc": "4.52.3", - "@rollup/rollup-win32-ia32-msvc": "4.52.3", - "@rollup/rollup-win32-x64-gnu": "4.52.3", - "@rollup/rollup-win32-x64-msvc": "4.52.3", + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" } }, @@ -18248,6 +18344,16 @@ "node": ">=16.13.2" } }, + "node_modules/sax": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", + "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/saxes": { "version": "6.0.0", "dev": true, @@ -19234,16 +19340,18 @@ "dev": true }, "node_modules/svgo": { - "version": "2.8.0", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", + "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", "dev": true, "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", "picocolors": "^1.0.0", + "sax": "^1.5.0", "stable": "^0.1.8" }, "bin": { @@ -20056,7 +20164,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 32e0fad3..c60c9e10 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "lint:inspect": "eslint --inspect-config" }, "dependencies": { + "@adyen/adyen-web": "^6.31.1", "axios": "^1.13.5", "axios-retry": "^3.5.0", "bootstrap": "^5.3", diff --git a/public/css/hop-styling.css b/public/css/hop-styling.css index 6b99fe79..bfe1f5f3 100644 --- a/public/css/hop-styling.css +++ b/public/css/hop-styling.css @@ -3,21 +3,28 @@ /* IMPORTANT: READ README.md in this folder! Do not edit .css file directly! */ /* IMPORTANT: READ README.md in this folder! Do not edit .css file directly! */ @import url("https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap"); +@font-face { + font-family: "Glyphicons Halflings"; + src: url(/fonts/glyphicons-halflings-regular.eot); + src: url(/fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"), url(/fonts/glyphicons-halflings-regular.woff2) format("woff2"), url(/fonts/glyphicons-halflings-regular.woff) format("woff"), url(/fonts/glyphicons-halflings-regular.ttf) format("truetype"), url(/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg"); +} body { font-family: Urbanist, Roboto, Arial, sans-serif; font-weight: 400; letter-spacing: 0.03em; - color: #000; + color: #4d4e53; margin: 0; background-color: white; - padding: 8px; + margin-bottom: 1rem; + font-size: 1rem; } body .validation-info { - display: none; + color: #db0020; } body .italicSmall { - font-style: normal; - font-size: 14px; + font-weight: normal; + font-style: italic; + font-size: 12px; } body span { line-height: 24px; @@ -25,75 +32,69 @@ body span { body a { color: #0070D1; text-decoration: none; + font-weight: 500; +} +body a:hover { + text-decoration: underline; + color: #167cac; } body .form-group { - display: flex; - flex-direction: column; + display: block; + position: relative; +} +body .headerlinecontainer { + color: #000; } body .headerlinecontainer .headerline1 { - font-size: 20px; - line-height: 32px; - font-weight: 400; - margin: 24px 0; - text-align: center; -} -body input, -body select { - margin-top: 4px; + margin-bottom: 0.75rem; + margin-top: 0rem; + font-weight: 600; + font-size: 1.25rem; + line-height: 1.375rem; +} +body .headerlinecontainer .headerline5v2 { + display: block; + padding: 0.75rem 0; + color: #db0020; + font-style: italic; + font-size: 12px; } body input, body select { + height: 2.8125rem; + border: solid 1px #b3b4b5; border-radius: 4px; - border: 1px solid #8E9292; - padding: 16px; - font-size: 16px; + box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2); + color: #525656; font-family: inherit; - letter-spacing: inherit; - color: #000; - background-color: #fff; + font-weight: normal; + font-style: normal; + font-stretch: normal; + font-size: 16px; + line-height: 1.56; + padding: 10px; + width: 100%; } body input:focus, body input:focus-visible, body select:focus, body select:focus-visible { - box-shadow: 0 0 0 2.5px #1574a1; - border: 1px solid transparent; + border: solid 2.5px #0070d1; outline: none; } -body input:disabled, body input.disabled, -body select:disabled, -body select.disabled { - background-color: #f5f5f5; - filter: grayscale(100%); -} -body input:disabled:hover, body input.disabled:hover, -body select:disabled:hover, -body select.disabled:hover { - box-shadow: 0 0 0 4px transparent; - border: 1px solid #8e9292; -} -body input:hover, -body select:hover { - border: 1px solid #8e9292; - box-shadow: 0 0 0 4px #9fcee6; -} body select { border-radius: 4px; - border: 1px solid #8E9292; - padding: 16px; - width: 100%; - background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%231474a2'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: 95% 50%; - background-size: 15px 9px; + background: url(/icons/select.png) no-repeat 98% #ffffff; + background-size: 10px 17px; appearance: none; font-size: 16px; color: #000; } -body .creditCardSpecific div { - padding: 8px 0; -} -body .creditCardSpecific div .headerlinecontainer { - display: none; +body h3 { + font-size: 1rem; + font-weight: 600; + margin-top: 1.375rem; + margin-bottom: 0.6875rem; + color: #000; } body .creditCardSpecific div label { font-weight: 500; @@ -124,87 +125,84 @@ body #cardExpirationContainer { body .optional-label span { display: none; } -body .optional-label:after { - content: " (optional)"; - font-weight: 300; - font-style: normal; - font-size: 15px; +body .buttonContainer #sghopcancelbutton { + float: left; } -body .buttonContainer { - height: 48px; +body .buttonContainer #sghopsubmitbutton { + float: right; } -body .buttonContainer button { - position: relative; - background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); - border: none; - border-radius: 8px; - color: #fff; - justify-content: center; - font-weight: 500; - font-size: 16px; - font-family: inherit; - letter-spacing: inherit; - height: 48px; +body .buttonContainer #sghopsubmitbutton.creditCardSpecific { + float: right; } -@media (hover: hover) { - body .buttonContainer button { - background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); - cursor: pointer; +@media (max-width: 500px) { + body .buttonContainer #sghopsubmitbutton.creditCardSpecific { + float: left; + width: 100%; } } -body .buttonContainer button:focus { - box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; +body .buttonContainer #selectPaymentTypeButton { + float: right; } -body .buttonContainer button:focus, body .buttonContainer button:focus-visible { - outline: none; - box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; - color: #fff; - background: linear-gradient(270deg, rgb(6, 87, 124) 0%, rgb(6, 87, 124) 100%); +@media (max-width: 500px) { + body .buttonContainer #selectPaymentTypeButton { + float: left; + width: 100%; + } } -body .buttonContainer button:disabled { - background: #e3e4e4 !important; - background: linear-gradient(270deg, #e3e4e4 0%, #e3e4e4 100%) !important; - color: #4d5151 !important; - font-weight: 400; - height: 48px; +body .buttonContainer .btn-success { + width: 99%; + height: 45px; border: none; - border-radius: 8px; + border-radius: 22.5px; + font-size: 16px; + line-height: 0.94; + font-weight: 600; + color: #ffffff; + background-color: #0c7e47; + border-color: #0a673a; + font-family: Urbanist; cursor: pointer; - pointer-events: all; } -body .buttonContainer button.has-loader { - color: #fff; - background: #06577c; - box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; - pointer-events: auto; +body .buttonContainer .btn-success:hover { + background-color: #084f2d; } -body .buttonContainer button.delay { - transition: background 0s 0s ease-in-out; +body .buttonContainer .btn-success:focus, body .buttonContainer .btn-success:active { + outline: none; + background-color: #0c7e47; + box-shadow: 0 0 0 3px #ffffff, 0 0 0 5.5px #0c7e47; } -body .has-error input, -body .has-error select { - border: 1px solid #d4281c; +body .has-error input.form-control, +body .has-error select.form-control { + border-color: #db0020; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } -body .has-error input:focus, -body .has-error select:focus { - box-shadow: 0 0 0 2.5px #fcbfbb; -} -body .has-error input:hover, -body .has-error select:hover { - border: 1px solid #d4281c; - box-shadow: 0 0 0 4px #fcbfbb; +body .has-error input.form-control:focus, +body .has-error select.form-control:focus { + box-shadow: none; } body .has-error select { - border: 1px solid #d4281c; - background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%23d4281c'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: 95% 50%; - background-size: 15px 9px; - appearance: none; + background-image: url(/icons/select-error.png); } body .has-error small { - margin-top: 4px; - color: #d4281c; + font-size: 1rem; + line-height: 1.56; + margin-bottom: 0.3125rem; + color: #db0020; +} +body .has-success .control-label { + color: #4d4e53; +} +body .has-success input.form-control, +body .has-success select.form-control { + border-color: #0c7e47; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +body .has-success input.form-control:focus, +body .has-success select.form-control:focus { + box-shadow: none; +} +body .has-success select { + background-image: url(/icons/select-success.png); } body .cc-error-container #alert-message { background-color: #fcbfbb; @@ -212,14 +210,17 @@ body .cc-error-container #alert-message { } #fmg-checkout-shared .form-group .list-group.radio .list-group-item { - border-radius: 10px; + border-radius: 5px; +} +#fmg-checkout-shared .form-group .list-group.radio .list-group-item.active { + box-shadow: 0 0 0 5px #b9d7e6; } #fmg-checkout-shared .form-group .list-group.radio .list-group-item label { padding: 12px 20px; } #fmg-checkout-shared #applepay-and-paypal-container { display: inline-flex; - width: 100%; + width: 80%; justify-content: space-between; } #fmg-checkout-shared #applepay-and-paypal-container #paypalParentDiv { @@ -227,38 +228,31 @@ body .cc-error-container #alert-message { } #fmg-checkout-shared #applepay-and-paypal-container .form-group { margin: 0; - width: 100%; + width: 48%; } -#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink { +#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item { + border-radius: 35px; +} +#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item#applepayParentLink { margin: 0; - padding: 10px 0; - background-color: #000000; + border: none; + box-shadow: none; } -#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink label { +#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item#applepayParentLink label { padding: 0; } -#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink label apple-pay-button { +#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item#applepayParentLink label apple-pay-button { + width: 100%; vertical-align: middle; -} -#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink.list-group-item { - box-shadow: none; - border-radius: 10px; - border: 1px solid #8E9292; -} -#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink:host { - --apple-pay-button-width: auto; + --apple-pay-button-height: 47px; + --apple-pay-button-border-radius: 35px; + --apple-pay-button-padding: 2px 0; } #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink { margin: 0; - padding: 2px 0; } #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink #paypalImage { - max-width: 50%; -} -#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink.list-group-item { - box-shadow: none; - border-radius: 10px; - border: 1px solid #8E9292; + max-width: 90px; } #fmg-checkout-shared #applepay-and-paypal-container.no-applepay .form-group { width: 100%; @@ -273,15 +267,19 @@ body .cc-error-container #alert-message { width: 100%; } #fmg-checkout-shared #applepay-and-paypal-container.no-applepay .form-group .list-group #paypalParentLink #paypalImage { - max-width: 25%; + max-width: 5.3125rem; } #fmg-checkout-shared #other-payments-container label { - display: inline-flex; + display: block; text-align: left; align-items: flex-start; justify-content: space-between; font-size: 16px; - font-weight: 500; + font-weight: 600; + line-height: 1.56; +} +#fmg-checkout-shared #other-payments-container label.control-label { + justify-content: start; } #fmg-checkout-shared #other-payments-container label span.paymentOptionText { margin: auto 0; @@ -294,35 +292,56 @@ body .cc-error-container #alert-message { #fmg-checkout-shared #other-payments-container #afterpayParentLink label > span:last-of-type { width: 0; } +#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink { + margin-bottom: 0; +} +@media (max-width: 33.9em) { + #fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink { + min-height: 3.5rem; + } +} +#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink label { + display: flex; +} +#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink label .paymentOptionText { + text-align: left; +} #fmg-checkout-shared #other-payments-container #creditCardParentDiv.active { - margin-bottom: 32px; + padding-bottom: 10px; border: 1px solid #0070D1; - border-radius: 10px; + border-radius: 5px; } #fmg-checkout-shared #other-payments-container #creditCardParentDiv.active > .paymentSelection #creditCardParentLink { - border-width: 0 0 2px 0; + min-height: unset; border-bottom-color: #0070D1; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } #fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages { + display: flex; + flex-direction: row; width: 50%; - text-align: right; + justify-content: flex-end; } -#fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages > img { - width: 20%; +#fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages img { + max-width: fit-content; + width: 25%; +} +#fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages img:not(:last-of-type) { + margin-right: 1%; } #fmg-checkout-shared #other-payments-container #creditCardParentDiv .creditCardSpecific { - padding: 0 16px; + padding: 0 2%; } #fmg-checkout-shared #other-payments-container #creditCardParentDiv .creditCardSpecific > .form-group { width: 100%; + margin-bottom: 0.5rem; } #fmg-checkout-shared #other-payments-container .italicSmall { margin-top: 10px; } #fmg-checkout-shared #other-payments-container .disclaimerContainerv2 { - margin-bottom: 32px; + margin: 1rem 0; } @media only screen and (max-device-width: 767px) { #fmg-checkout-shared #applepay-and-paypal-container { @@ -332,3 +351,26 @@ body .cc-error-container #alert-message { width: 100%; } } + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 38px; + height: 38px; + line-height: 38px; + text-align: center; + pointer-events: none; + top: 27px; +} +.form-control-feedback.glyphicon { + display: none; +} +.form-control-feedback.glyphicon-remove:before { + content: "\e014"; +} +.form-control-feedback.glyphicon-ok:before { + content: "\e013"; +} diff --git a/public/css/site-2020Styling.css b/public/css/site-2020Styling.css index ae2f004f..e235fc85 100644 --- a/public/css/site-2020Styling.css +++ b/public/css/site-2020Styling.css @@ -4,103 +4,16 @@ /* IMPORTANT: READ README.md in this folder! Do not edit .css file directly! */ /* Style the modal when PayPal button is selected */ #pageLoadingModal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.4); - display: flex; -} -#pageLoadingModal .modal-content { - margin: auto auto; -} -#pageLoadingModal p { - margin: 0; - text-transform: uppercase; - font-size: 14px; -} -#pageLoadingModal .modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - -webkit-overflow-scrolling: touch; - outline: 0; -} -#pageLoadingModal .modal-content { - position: relative; - background-color: #fff; - border-radius: 8px; - background-clip: padding-box; - outline: 0; - width: 176px; - height: 136px; - display: flex; - justify-content: center; - align-items: center; - background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 32'%3e%3cpath d='M22.39 27.313a3.53 3.53 0 0 0 7.058 0' fill='%23fff'/%3e%3cpath d='M22.39 27.313a3.53 3.53 0 0 0 7.058 0' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M54.459 27.313a3.527 3.527 0 0 0 7.054 0' fill='%23fff'/%3e%3cpath d='M54.459 27.313a3.527 3.527 0 0 0 7.054 0' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M42.06.8c8.08 0 11.89.935 11.89.935 3.58.576 5.696 7.207 5.696 7.207h.727c0-2.427 1.302-2.397 2.341-2 .723.292 1.363.76 1.86 1.361 1.319 1.547.465 1.674.465 1.674h-5.067l3.846 3.01v12.016c0 2.41-2.029 2.31-2.029 2.31H22.338s-2.029.1-2.029-2.31V12.996l3.84-3.009H19.07s-.853-.127.466-1.674a4.693 4.693 0 0 1 1.86-1.361c1.032-.397 2.341-.427 2.341 2h.736s2.117-6.64 5.696-7.21c0 0 3.81-.942 11.89-.942Z' fill='%23fff' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M42.06 8.847c7.924 0 14.685.511 14.685.511 0-2.585-2.38-6.011-2.38-6.011S50.4 2.519 42.06 2.519s-12.303.828-12.303.828-2.38 3.426-2.38 6.011c0 0 6.76-.51 14.683-.51Z' fill='%23DA291C' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M35.277 16.523a62.558 62.558 0 0 1 13.277 0m3.276-.439s2.384-2.257 8.608-2.257c0 0 1.179 2.657-2.54 3.37m-25.894-1.113s-2.387-2.257-8.611-2.257c0 0-1.16 2.579 2.543 3.37m-3.546 5.856s21.52 3.647 39.123 0' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: center center; - background-size: 96px; -} -#pageLoadingModal .modal-content:after { - content: ""; - border-radius: 50%; - position: absolute; - width: 5.5rem; - height: 5.5rem; - border: 0.45em solid #d4281c; - border-right-color: transparent; - animation: spinnerrotate 0.75s linear infinite; -} -@keyframes spinnerrotate { - 0% { - transform: rotate(0); - } - 100% { - transform: rotate(360deg); - } -} -#pageLoadingModal .modal-content p { - display: none; -} -#pageLoadingModal .modal-backdrop { - position: absolute; - top: 0; - right: 0; - left: 0; - background-color: #000000; -} -#pageLoadingModal .modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -#pageLoadingModal.hide { display: none; } .buy-backdrop { - background-color: rgba(0, 0, 0, 0.3) !important; -} -.buy-backdrop #afterpay__iframe-checkout-container { - width: 100%; + background-color: rgba(0, 0, 0, 0.8) !important; } .buy-backdrop #afterpay__iframe-checkout-container .style_closeWrapper__lIHJe { display: none; } -.buy-container-closer { - display: none; -} - @keyframes rotate { 0% { transform: rotate(0); diff --git a/public/fonts/glyphicons-halflings-regular.eot b/public/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 00000000..4a4ca865 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.eot differ diff --git a/public/fonts/glyphicons-halflings-regular.svg b/public/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 00000000..e3e2dc73 --- /dev/null +++ b/public/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/public/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 00000000..67fa00bf Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.ttf differ diff --git a/public/fonts/glyphicons-halflings-regular.woff b/public/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 00000000..8c54182a Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff differ diff --git a/public/fonts/glyphicons-halflings-regular.woff2 b/public/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 00000000..64539b54 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/public/icons/select-disabled.png b/public/icons/select-disabled.png new file mode 100644 index 00000000..03ac8316 Binary files /dev/null and b/public/icons/select-disabled.png differ diff --git a/public/icons/select-error.png b/public/icons/select-error.png new file mode 100644 index 00000000..9e971ee9 Binary files /dev/null and b/public/icons/select-error.png differ diff --git a/public/icons/select-success.png b/public/icons/select-success.png new file mode 100644 index 00000000..bdeb92f5 Binary files /dev/null and b/public/icons/select-success.png differ diff --git a/public/icons/select.png b/public/icons/select.png new file mode 100644 index 00000000..0845f753 Binary files /dev/null and b/public/icons/select.png differ diff --git a/public/scss/hop-styling.scss b/public/scss/hop-styling.scss index b238bada..7044fdd4 100644 --- a/public/scss/hop-styling.scss +++ b/public/scss/hop-styling.scss @@ -3,22 +3,30 @@ /* IMPORTANT: READ README.md in this folder! Do not edit .css file directly! */ /* IMPORTANT: READ README.md in this folder! Do not edit .css file directly! */ @import url("https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap"); + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url(/fonts/glyphicons-halflings-regular.eot); + src: url(/fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'), url(/fonts/glyphicons-halflings-regular.woff2) format('woff2'), url(/fonts/glyphicons-halflings-regular.woff) format('woff'), url(/fonts/glyphicons-halflings-regular.ttf) format('truetype'), url(/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg'); +} body { font-family: Urbanist, Roboto, Arial, sans-serif; font-weight: 400; letter-spacing: .03em; - color: #000; + color: #4d4e53; margin: 0; background-color: white; - padding: 8px; + margin-bottom: 1rem; + font-size: 1rem; .validation-info { - display: none; + color: #db0020 } .italicSmall { - font-style: normal; - font-size: 14px; + font-weight: normal; + font-style: italic; + font-size: 12px; } span { @@ -28,79 +36,77 @@ body { a { color: #0070D1; text-decoration: none; + font-weight: 500; + &:hover { + text-decoration: underline; + color: #167cac; + } } .form-group { - display: flex; - flex-direction: column; + display: block; + position: relative; } .headerlinecontainer { + color: #000; .headerline1 { - font-size: 20px; - line-height: 32px; - font-weight: 400; - margin: 24px 0; - text-align: center; + margin-bottom: .75rem; + margin-top: 0rem; + font-weight: 600; + font-size: 1.25rem; + line-height: 1.375rem; + } + .headerline5v2 { + display: block; + padding: .75rem 0; + color: #db0020; + font-style: italic; + font-size: 12px; } } input, select { - margin-top: 4px; - } - - input, - select { + height: 2.8125rem; + border: solid 1px #b3b4b5; border-radius: 4px; - border: 1px solid #8E9292; - padding: 16px; - font-size: 16px; + box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2); + color: #525656; font-family: inherit; - letter-spacing: inherit; - color: #000; - background-color: #fff; + font-weight: normal; + font-style: normal; + font-stretch: normal; + font-size: 16px; + line-height: 1.56; + padding: 10px; + width: 100%; &:focus, &:focus-visible { - box-shadow: 0 0 0 2.5px #1574a1; - border: 1px solid transparent; + border: solid 2.5px #0070d1; outline: none; } - &:disabled, - &.disabled { - background-color: #f5f5f5; - filter: grayscale(100%); - &:hover { - box-shadow: 0 0 0 4px transparent; - border: 1px solid #8e9292; - } - } - &:hover { - border: 1px solid #8e9292; - box-shadow: 0 0 0 4px #9fcee6; - } } select { border-radius: 4px; - border: 1px solid #8E9292; - padding: 16px; - width: 100%; - background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%231474a2'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: 95% 50%; - background-size: 15px 9px; + background: url(/icons/select.png) no-repeat 98% #ffffff;; + background-size: 10px 17px; appearance: none; font-size: 16px; color: #000; } + h3 { + font-size: 1rem; + font-weight: 600; + margin-top: 1.375rem; + margin-bottom: .6875rem; + color: #000; + } + .creditCardSpecific { div { - padding: 8px 0; - .headerlinecontainer { - display: none; - } label { font-weight: 500; } @@ -133,63 +139,57 @@ body { span { display: none; } - &:after { - content: " (optional)"; - font-weight: 300; - font-style: normal; - font-size: 15px; - } } .buttonContainer { - height: 48px; - button { - position: relative; - background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); + + #sghopcancelbutton { + float: left; + } + + #sghopsubmitbutton { + float: right; + } + + #sghopsubmitbutton.creditCardSpecific { + float: right; + + @media(max-width: 500px) { + float: left; + width: 100%; + } + } + + #selectPaymentTypeButton { + float: right; + + @media(max-width: 500px) { + float: left; + width: 100%; + } + } + .btn-success { + width: 99%; + height: 45px; border: none; - border-radius: 8px; - color: #fff; - justify-content: center; - font-weight: 500; + border-radius: 22.5px; font-size: 16px; - font-family: inherit; - letter-spacing: inherit; - height: 48px; - @media (hover: hover) { - background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); - cursor: pointer; + line-height: 0.94; + font-weight: 600; + color: #ffffff; + background-color: #0c7e47; + border-color: #0a673a; + font-family: Urbanist; + cursor: pointer; + + &:hover { + background-color: #084f2d; } - &:focus { - box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; - } - &:focus, // Mouse, touch, stylus focus - &:focus-visible { - // Keyboard focus for accessibility + &:focus, + &:active { outline: none; - box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; - color: #fff; - background: linear-gradient(270deg, rgba(6, 87, 124, 1) 0%, rgba(6, 87, 124, 1) 100%); - } - &:disabled { - background: #e3e4e4 !important; - background: linear-gradient(270deg, #e3e4e4 0%, #e3e4e4 100%) !important; - color: #4d5151 !important; - font-weight: 400; - height: 48px; - border: none; - border-radius: 8px; - cursor: pointer; - pointer-events: all; - } - &.has-loader { - color: #fff; - background: #06577c; - box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; - pointer-events: auto; - } - &.delay { - // fixes flicker while transitioning between states - transition: background 0s 0s ease-in-out; + background-color: #0c7e47; + box-shadow: 0 0 0 3px #ffffff, 0 0 0 5.5px #0c7e47; } } } @@ -198,26 +198,42 @@ body { .has-error { input, select { - border: 1px solid #d4281c; - &:focus { - box-shadow: 0 0 0 2.5px #fcbfbb; - } - &:hover { - border: 1px solid #d4281c; - box-shadow: 0 0 0 4px #fcbfbb; + &.form-control { + border-color: #db0020; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + &:focus { + box-shadow: none; + } } } select { - border: 1px solid #d4281c; - background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%23d4281c'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: 95% 50%; - background-size: 15px 9px; - appearance: none; + background-image: url(/icons/select-error.png); } small { - margin-top: 4px; - color: #d4281c; + font-size: 1rem; + line-height: 1.56; + margin-bottom: .3125rem; + color: #db0020; + } + } + + + .has-success { + .control-label { + color: #4d4e53 + } + input, + select { + &.form-control { + border-color: #0c7e47; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + &:focus { + box-shadow: none; + } + } + } + select { + background-image: url(/icons/select-success.png); } } @@ -234,7 +250,11 @@ body { .list-group { &.radio { .list-group-item { - border-radius: 10px; + border-radius: 5px; + + &.active { + box-shadow: 0 0 0 5px #b9d7e6; + } label { padding: 12px 20px; @@ -246,8 +266,7 @@ body { #applepay-and-paypal-container { display: inline-flex; - width: 100%; - + width: 80%; justify-content: space-between; #paypalParentDiv { @@ -256,49 +275,38 @@ body { .form-group { margin: 0; - width: 100%; + width: 48%; .list-group { &.paymentSelection { + .list-group-item { + border-radius: 35px; - #applepayParentLink { - - margin: 0; - padding: 10px 0; - background-color: #000000; - - label { - padding: 0; - - apple-pay-button { - vertical-align: middle; - } - } - - &.list-group-item { + &#applepayParentLink { + margin: 0; + border: none; box-shadow: none; - border-radius: 10px; - border: 1px solid #8E9292; - } - &:host { - --apple-pay-button-width: auto; + label { + padding: 0; + + apple-pay-button { + width: 100%; + vertical-align: middle; + --apple-pay-button-height: 47px; + --apple-pay-button-border-radius: 35px; + --apple-pay-button-padding: 2px 0; + } + } } } } #paypalParentLink { margin: 0; - padding: 2px 0; #paypalImage { - max-width: 50%; - } - - &.list-group-item { - box-shadow: none; - border-radius: 10px; - border: 1px solid #8E9292; + max-width: 90px; } } } @@ -324,7 +332,7 @@ body { #paypalParentLink { #paypalImage { - max-width: 25%; + max-width: 5.3125rem; } } } @@ -334,14 +342,19 @@ body { #other-payments-container { label { - display: inline-flex; + display: block; text-align: left; align-items: flex-start; justify-content: space-between; font-size: 16px; - font-weight: 500; + font-weight: 600; + line-height: 1.56; + + &.control-label { + justify-content: start; + } span { &.paymentOptionText { @@ -367,14 +380,28 @@ body { } #creditCardParentDiv { + #creditCardParentLink { + margin-bottom: 0; + + @media (max-width: 33.9em) { + min-height: 3.5rem; + } + + label { + display: flex; + .paymentOptionText { + text-align: left; + } + } + } &.active { - margin-bottom: 32px; + padding-bottom: 10px; border: 1px solid #0070D1; - border-radius: 10px; + border-radius: 5px; > .paymentSelection { #creditCardParentLink { - border-width: 0 0 2px 0; + min-height: unset; border-bottom-color: #0070D1; border-bottom-right-radius: 0; border-bottom-left-radius: 0; @@ -384,20 +411,28 @@ body { .paymentSelection { #creditCardImages { + display: flex; + flex-direction: row; width: 50%; - text-align: right; + justify-content: flex-end; - > img { - width: 20%; + img { + max-width: fit-content; + width: 25%; + + &:not(:last-of-type) { + margin-right: 1%; + } } } } .creditCardSpecific { - padding: 0 16px; + padding: 0 2%; > .form-group { width: 100%; + margin-bottom: .5rem; } } } @@ -407,7 +442,7 @@ body { } .disclaimerContainerv2 { - margin-bottom: 32px; + margin: 1rem 0; } } @@ -422,4 +457,27 @@ body { } } } +} + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 38px; + height: 38px; + line-height: 38px; + text-align: center; + pointer-events: none; + top: 27px; + &.glyphicon { + display: none; + } + &.glyphicon-remove:before { + content: "\e014"; + } + &.glyphicon-ok:before { + content: "\e013"; + } } \ No newline at end of file diff --git a/public/scss/site-2020Styling.scss b/public/scss/site-2020Styling.scss index 14cd2c28..fe1fff81 100644 --- a/public/scss/site-2020Styling.scss +++ b/public/scss/site-2020Styling.scss @@ -5,107 +5,20 @@ /* Style the modal when PayPal button is selected */ #pageLoadingModal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - width: 100%; - height: 100%; - background-color: rgba(0,0,0,0.40); - display: flex; - - .modal-content { - margin: auto auto; - } - - p { - margin: 0; - text-transform: uppercase; - font-size: 14px; - } - - .modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - -webkit-overflow-scrolling: touch; - outline: 0; - } - - .modal-content { - position: relative; - background-color: #fff; - border-radius: 8px; - background-clip: padding-box; - outline: 0; - width: 176px; - height: 136px; - display: flex; - justify-content: center; - align-items: center; - background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 32'%3e%3cpath d='M22.39 27.313a3.53 3.53 0 0 0 7.058 0' fill='%23fff'/%3e%3cpath d='M22.39 27.313a3.53 3.53 0 0 0 7.058 0' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M54.459 27.313a3.527 3.527 0 0 0 7.054 0' fill='%23fff'/%3e%3cpath d='M54.459 27.313a3.527 3.527 0 0 0 7.054 0' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M42.06.8c8.08 0 11.89.935 11.89.935 3.58.576 5.696 7.207 5.696 7.207h.727c0-2.427 1.302-2.397 2.341-2 .723.292 1.363.76 1.86 1.361 1.319 1.547.465 1.674.465 1.674h-5.067l3.846 3.01v12.016c0 2.41-2.029 2.31-2.029 2.31H22.338s-2.029.1-2.029-2.31V12.996l3.84-3.009H19.07s-.853-.127.466-1.674a4.693 4.693 0 0 1 1.86-1.361c1.032-.397 2.341-.427 2.341 2h.736s2.117-6.64 5.696-7.21c0 0 3.81-.942 11.89-.942Z' fill='%23fff' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M42.06 8.847c7.924 0 14.685.511 14.685.511 0-2.585-2.38-6.011-2.38-6.011S50.4 2.519 42.06 2.519s-12.303.828-12.303.828-2.38 3.426-2.38 6.011c0 0 6.76-.51 14.683-.51Z' fill='%23DA291C' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M35.277 16.523a62.558 62.558 0 0 1 13.277 0m3.276-.439s2.384-2.257 8.608-2.257c0 0 1.179 2.657-2.54 3.37m-25.894-1.113s-2.387-2.257-8.611-2.257c0 0-1.16 2.579 2.543 3.37m-3.546 5.856s21.52 3.647 39.123 0' stroke='%23000' stroke-width='.75' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: center center; - background-size: 96px; - &:after { - content: ''; - border-radius: 50%; - position: absolute; - width: 5.5rem; - height: 5.5rem; - border: 0.45em solid #d4281c; - border-right-color: transparent; - animation: spinnerrotate 0.75s linear infinite; - } - @keyframes spinnerrotate { - 0% { transform: rotate(0)} - 100% { transform: rotate(360deg)} - } - p { - display: none; - } - } - - .modal-backdrop { - position: absolute; - top: 0; - right: 0; - left: 0; - background-color: #000000; - &.fade { - opacity: 0; - filter: alpha(opacity=0); - } - } - - &.hide { - display: none; - } + display: none; } // AfterPay Styles .buy-backdrop { - background-color: rgba(0,0,0,.3)!important; + background-color: rgba(0,0,0,.8)!important; #afterpay__iframe-checkout-container { - width: 100%; .style_closeWrapper__lIHJe { display: none; } } } -.buy-container-closer { - display: none; -} - // Modal Spinner @keyframes rotate { diff --git a/src/constants/application-config.js b/src/constants/application-config.js index 1e5ee6d8..c8231ecb 100644 --- a/src/constants/application-config.js +++ b/src/constants/application-config.js @@ -26,7 +26,9 @@ const applicationConfig = Object.freeze({ FRONTEND_LOGGER_PATH: "/analytics/api/v1/logging", BAILOUT_ON_APPLICATION_ERROR: true, BAILOUT_ON_API_ERROR: true, - BAILOUT_ON_ROUTER_ERROR: true + BAILOUT_ON_ROUTER_ERROR: true, + ADYEN_CLIENT_KEY: process.env.VUE_APP_ADYEN_CLIENT_KEY, + ADYEN_ENVIRONMENT: process.env.VUE_APP_ADYEN_ENVIRONMENT }); export default applicationConfig; diff --git a/src/constants/bailoutCode.js b/src/constants/bailoutCode.js index f108570a..e6728697 100644 --- a/src/constants/bailoutCode.js +++ b/src/constants/bailoutCode.js @@ -1,3 +1,4 @@ +// When adding a new bailout, the Digital Consumer Order Service must also be updated to map the new bailout code to the SV2BailoutCode const bailoutCode = Object.freeze({ Unknown: 0, SaveSessionError: 1, @@ -15,7 +16,8 @@ const bailoutCode = Object.freeze({ VehicleYMMSLookupError: 13, ApplicationError: 14, ApiError: 15, - RouterError: 16 + RouterError: 16, + CoverageCancelledByUser: 17 }); export default bailoutCode; diff --git a/src/constants/bailoutMessage.js b/src/constants/bailoutMessage.js index 77292a1e..64ba4324 100644 --- a/src/constants/bailoutMessage.js +++ b/src/constants/bailoutMessage.js @@ -63,7 +63,7 @@ const bailoutMessage = Object.freeze({ }), HeavyTruckVehicle: (carId) => ({ code: bailoutCode.HeavyTruckVehicle, - message: `User selected a heavy truck vehicle. Car ID: ${carId}` + message: `User selected a big truck that Safelite cannot service. Car ID: ${carId}` }), NoPartsAvailable: () => ({ code: bailoutCode.NoPartsAvailable, @@ -93,7 +93,11 @@ const bailoutMessage = Object.freeze({ code: bailoutCode.VehicleYMMSLookupError, message: getMessage(year, make, model, style) }; - } + }, + CoverageCancelledByUser: () => ({ + code: bailoutCode.CoverageCancelledByUser, + message: 'User canceled claim on ITAC/No Comp coverage statement.' + }) }); export default bailoutMessage; diff --git a/src/constants/component-variants.js b/src/constants/component-variants.js index 7fd84311..d0253b6b 100644 --- a/src/constants/component-variants.js +++ b/src/constants/component-variants.js @@ -9,7 +9,3 @@ export const dropdownVariants = Object.freeze({ primary: 'primary', compact: 'compact' }); -export const modalPositions = Object.freeze({ - center: 'center', - edge: 'edge' -}); diff --git a/src/constants/cookie-names.js b/src/constants/cookie-names.js index 9ee326f4..9a19c39f 100644 --- a/src/constants/cookie-names.js +++ b/src/constants/cookie-names.js @@ -14,8 +14,7 @@ const cookieNames = Object.freeze({ // Existing Safelite.com cookies DXDEV: 'dxdev', - SESSION_ID: 'sid', - SESSION_KEY: 'skey' + SESSION_ID: 'sid' }); const cookieExpirations = Object.freeze({ diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index 057ef9e4..e322bb48 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -10,6 +10,7 @@ const PARTS_BASE_URL = '/parts/api/v1/parts'; const PRICE_BASE_URL = '/price/api/v1/price'; const SCHEDULE_BASE_URL = '/schedule/api/v1/schedule'; const VEHICLE_BASE_URL = '/vehicle/api/v1/vehicle'; +const PAYMENT_BASE_URL = '/payment/api/v1/payment'; const endpoints = Object.freeze({ GetRouteInfo: { @@ -239,6 +240,14 @@ const endpoints = Object.freeze({ GetPaymentSignature: { url: `${ORDER_BASE_URL}/sign`, method: 'POST' + }, + InitializeAdyenPayment: { + url: `${PAYMENT_BASE_URL}/payment/session/initialize-session`, + method: "POST", + }, + GetAdyenSessionResult: { + url: `${PAYMENT_BASE_URL}/payment/session/session-result`, + method: "POST", } }); diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 62e79340..2fa565e2 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -10,7 +10,7 @@ const errorMessages = Object.freeze({ PASSENGER_SIDE_OPTIONS_REQUIRED: 'Please select window', WINDSHIELD_DAMAGE_TYPE_REQUIRED: 'Please select windshield damage', WINDSHIELD_CHIP_COUNT_REQUIRED: 'Please select chip(s)', - WINDSHIELD_REPLACE_OPTIONS_REQUIRED: 'Please select windshield part', + WINDSHIELD_REPLACE_OPTIONS_REQUIRED: 'Select all windshield parts that need to be replaced', REPLACE_OPTIONS_REQUIRED: 'Please select rear window type', STREET_ADDRESS_REQUIRED: 'Street Address is required.', CITY_REQUIRED: 'City is required.', diff --git a/src/constants/experiments.js b/src/constants/experiments.js index f1d52ede..9e959331 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -1,7 +1,8 @@ const experimentUniverses = Object.freeze({ ISS_FUNNEL: 'ISSFunnel', ISS_FEATURETOGGLE_AREFEES_HIDDEN: 'NextGenISS_FeatureToggle_AreFeesHidden', - ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN: 'NextGenISS_FeatureToggle_AreFeesOverridden' + ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN: 'NextGenISS_FeatureToggle_AreFeesOverridden', + ADYEN_PAYMENT_TEST: 'NextGenAdyenPaymentTest' }); const experimentSettings = Object.freeze({ @@ -10,7 +11,8 @@ const experimentSettings = Object.freeze({ ISS_FEATURE_TOGGLE_IS_MOBILE_FEE_HIDDEN: 'HideMobileFee', ISS_FEATURE_TOGGLE_IS_MOBILE_FEE_OVERRIDDEN: 'OverrideMobileFee', ISS_FEATURE_TOGGLE_IS_RECYCLE_FEE_HIDDEN: 'HideRecycleFee', - ISS_FEATURE_TOGGLE_IS_RECYCLE_FEE_OVERRIDDEN: 'OverrideRecycleFee' + ISS_FEATURE_TOGGLE_IS_RECYCLE_FEE_OVERRIDDEN: 'OverrideRecycleFee', + ISS_ENABLE_ADYEN_V1: 'ISS_Enable_Adyen_V1' }); const experimentTriggers = Object.freeze({ diff --git a/src/constants/part-number-strings.js b/src/constants/part-number-strings.js index a72684f8..dbfa87ad 100644 --- a/src/constants/part-number-strings.js +++ b/src/constants/part-number-strings.js @@ -1,5 +1,6 @@ const partNumberStrings = Object.freeze({ - RECYCLE_FEE: 'RECYCLE FEE' + RECYCLE_FEE: 'RECYCLE FEE', + LABOR2: 'LABOR2', }); export default partNumberStrings; diff --git a/src/constants/progress-bar-mapper.js b/src/constants/progress-bar-mapper.js index c47c738a..f9b6b7e0 100644 --- a/src/constants/progress-bar-mapper.js +++ b/src/constants/progress-bar-mapper.js @@ -66,6 +66,14 @@ export const pageProgressMapper = { // No progress bar on this page percent: 0 }, + 'payment-page-adyen': { + // No progress bar on this page + percent: 0 + }, + 'payment-return-adyen': { + // No progress bar on this page + percent: 0 + }, 'tpa-search': { percent: 80 }, diff --git a/src/constants/vehicle-lookup-alert-types.js b/src/constants/vehicle-lookup-alert-types.js index 98961165..d2d88ee5 100644 --- a/src/constants/vehicle-lookup-alert-types.js +++ b/src/constants/vehicle-lookup-alert-types.js @@ -1,9 +1,9 @@ const vehicleLookupAlertTypes = Object.freeze({ NOT_FOUND: 'notFound', NOT_MATCHED: 'notMatched', + NO_SERVICE: 'noService', TWO_IDENTICAL_YMM_MATCHED: 'twoIdenticalYMMMatched', - PERFECT_MATCH: 'perfectMatch', - NO_SERVICE: 'noService' + PERFECT_MATCH: 'perfectMatch' }); export default vehicleLookupAlertTypes; diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue index d4be7797..9949c4e1 100644 --- a/src/digital-components/modal/modal.vue +++ b/src/digital-components/modal/modal.vue @@ -11,22 +11,19 @@ 'hidden.bs.modal': onModalClosed, 'shown.bs.modal': onModalOpened }"> -