@font-face { font-family: 'Aeonik-Regular'; src: url(https://assets.snapfinance.co.uk/retailerGenerator/Aeonik-Regular.woff) format('woff');}@font-face { font-family: 'Aeonik-Bold'; src: url(https://assets.snapfinance.co.uk/retailerGenerator/Aeonik-Bold.woff) format('woff');}(function () { const snapContainer = document.getElementById('snapfinance-page'); snapContainer.attachShadow({ mode: 'open' }); const loadingTemplateString = ' .snap__loading__icon__svg--st0 { fill: #ffffff; } .snap__loading__icon__svg--st1 { fill: #ffc94d; } .snap__loading__icon__svg--st2 { fill: #3d5cce; } .snap__loading__icon__svg--st3 { fill: #a191e7; } .snap__loading__icon__svg--st4 { fill: #0ba797; } .snap__loading { position: absolute; width: 100%; height: 1000px; background: white; z-index: 1; } .snap__loading__icon { position: absolute; top: 100px; left: 50%; transform: translate(-50%, -50%); width: 120px; height: 120px; } @keyframes snap-rotate { 100% { transform: rotate(360deg); } } .snap__loading__icon__svg { border-radius: 50%; background: white; box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); animation: snap-rotate 5s linear infinite; max-width: 150px; } '; const loadingDiv = document.createElement('div'); loadingDiv.innerHTML = loadingTemplateString; snapContainer.shadowRoot.appendChild(loadingDiv); fetch('https://developer.snapfinance.co.uk/api/retailer-page?data=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7Ik1FUkNIQU5UX0lEIjoiMzU0ODcyODciLCJNRVJDSEFOVF9OQU1FIjoiQmVkIEZhY3RvcnkgRGlyZWN0In0sImlhdCI6MTczMzkyODQ3NX0.k17WjeH5Odj2AKXzb4f-jG-mjXUTo4mGFWTZk1iQHiY') .then(async (res) => { const { template: pageTemplateString, scriptTemplate: scriptTemplateString } = await res.json(); const pageDiv = document.createElement('div'); pageDiv.innerHTML = pageTemplateString; snapContainer.shadowRoot.appendChild(pageDiv); const pageScript = document.createElement('script'); pageScript.innerHTML = scriptTemplateString; snapContainer.shadowRoot.appendChild(pageScript); }) .catch((error) => { const errorTemplateString = ' Oh, no! Snap Finance is experiencing some issues. Please, try refreshing the page after a few minutes. .snap__error h2.snap__h2 { font-family: "Aeonik-Bold", Arial, Helvetica, sans-serif; font-weight: bold; color: #062d4e; margin-top: 0; margin-bottom: 13px; line-height: 120%; text-align: center; } .snap__error .snap__p { font-family: "Aeonik-Regular", Arial, Helvetica, sans-serif; text-align: center; } '; const pageDiv = document.createElement('div'); pageDiv.innerHTML = errorTemplateString; snapContainer.shadowRoot.appendChild(pageDiv); }) .finally(() => { snapContainer.shadowRoot.removeChild( snapContainer.shadowRoot.firstElementChild ); });})();