APPI
#form-appi-edit-account-request, #form-appi-requests-request, #form-appi-personal-information-request, #form-appi-orders-request, #form-appi-personal-data-report-request, #form-appi-delete-account-request , #form-appi-do-not-sell-request { display: none; } #appi_page button { background-colour: transparent; border: 0; border-bottom: 1px solid black; padding: 0px; } /* Modal background */ #data-verification-background { display: none; position: fixed; z-index: 1; padding-top: calc(50vh - 83px); left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-colour: rgb(0,0,0); background-colour: rgba(0,0,0,0.4); opacity: unset; z-index: 9999; } /* Modal Content */ #data-verification-modal { background-color: #fefefe; margin: auto; padding: 16px; border: 1px solid #888; width: 38%; } /* Modal Close Button */ .data-verification-close { color: #aaaaaa; float: right; font-size: 28px; font-weight: bold; line-height: 17px; background-color: transparent; border: 0px; padding: 0px; } .data-verification-close:hover { color: #000; text-decoration: none; cursor: pointer; } /* Checkbox Text */ #data-verification-container p{ display: inline-block; padding: 0; margin: 0; line-height: 24px; padding-left: 10px; vertical-align: top; width: calc(100% - 45px); } #data-verification-container a, #data-verification-container a:hover{ text-decoration: underline!important; colour: #4285f4; } #data-verification-container input { opacity: 0; width: 0; height: 0; margin: 0; padding: 0; } /* Checkbox Icon */ #data-verification-icon { cursor: pointer; position: relative; margin: auto; width: 18px; height: 18px; -webkit-tap-highlight-color: transparent; transform: translate3d(0, 0, 0); margin-top: 2px; } #data-verification-icon:before { content: ""; position: absolute; top: -7px; left: -7px; width: 32px; height: 32px; border-radius: 50%; background: rgba(34,50,84,0.03); opacity: 0; transition: opacity 0.2s ease; } #data-verification-icon svg { position: relative; z-index: 1; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke: #c8ccd4; stroke-width: 1.5; transform: translate3d(0, 0, 0); transition: all 0.2s ease; } #data-verification-icon svg path { stroke-dasharray: 60; stroke-dashoffset: 0; } #data-verification-icon svg polyline { stroke-dasharray: 22; stroke-dashoffset: 66; } #data-verification-icon:hover:before { opacity: 1; } #data-verification-container:hover #data-verification-icon svg { stroke: #4285f4; } #data-verification-icon.clicked svg { stroke: #4285f4; } #data-verification-icon.clicked svg path { stroke-dashoffset: 60; transition: all 0.3s linear; } #data-verification-icon.clicked svg polyline { stroke-dashoffset: 42; transition: all 0.2s linear; transition-delay: 0.15s; } /* Accessibility design */ #data-verification-icon:focus, .data-verification-close:focus, #data-verification-container input:focus ~ #data-verification-icon svg, #data-verification-container a:focus { box-shadow: 0 0 0 3px rgba(21, 156, 228, 0.4); transition: all 0.3s ease; outline: none; transform: scale(1.06); } #appi_page .list-unstyled li button { cursor: pointer; } .show-isense { transition: opacity 400ms !important; } .hide-isense { opacity: 0 !important; transition: 0.4s ease-out; } /* Modal changes on mobile resolution*/ @media only screen and (max-width: 600px) { #data-verification-modal { width: 90%; } } /* Loading Element */ .loading { display: none; top:50vh; left:50vw; position:fixed; } .loading:not(:required):after { content: ''; display: block; font-size: 10px; width: 1em; height: 1em; margin-top: -0.5em; -webkit-animation: spinner 1500ms infinite linear; -moz-animation: spinner 1500ms infinite linear; -ms-animation: spinner 1500ms infinite linear; -o-animation: spinner 1500ms infinite linear; animation: spinner 1500ms infinite linear; border-radius: 0.5em; -webkit-box-shadow: rgba(255,255,255, 1) 1.5em 0 0 0, rgba(255,255,255, 1) 1.1em 1.1em 0 0, rgba(255,255,255, 1) 0 1.5em 0 0, rgba(255,255,255, 1) -1.1em 1.1em 0 0, rgba(255,255,255, 1) -1.5em 0 0 0, rgba(255,255,255, 1) -1.1em -1.1em 0 0, rgba(255,255,255, 1) 0 -1.5em 0 0, rgba(255,255,255, 1) 1.1em -1.1em 0 0; box-shadow: rgba(255,255,255, 1) 1.5em 0 0 0, rgba(255,255,255, 1) 1.1em 1.1em 0 0, rgba(255,255,255, 1) 0 1.5em 0 0, rgba(255,255,255, 1) -1.1em 1.1em 0 0, rgba(255,255,255, 1) -1.5em 0 0 0, rgba(255,255,255, 1) -1.1em -1.1em 0 0, rgba(255,255,255, 1) 0 -1.5em 0 0, rgba(255,255,255, 1) 1.1em -1.1em 0 0; } /* Animation */ @-webkit-keyframes spinner { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @-moz-keyframes spinner { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @-o-keyframes spinner { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes spinner { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } }
コンプライアンスページを通じてデータ主体アクセス要求(DSAR)を送信すると、当社のコンプライアンスプロバイダーであるConsentmoは、要求を処理するためにIPアドレスとメールアドレスのみを処理します。詳細については、Consentmoのデータ処理ポリシーをご覧ください。
データの訂正
アカウントデータが不正確な場合は、以下のリンクを使用して更新または修正してください。
- アカウント情報の編集
メールアドレスを入力して本人確認を行ってください
データポータビリティ
以下のリンクを使用して、当社のストアでより良い体験のために保存および使用するすべてのデータをダウンロードできます。
-
APPIリクエスト
メールアドレスを入力して本人確認を行ってください
-
個人情報
メールアドレスを入力して本人確認を行ってください
-
注文履歴
メールアドレスを入力して本人確認を行ってください
個人データへのアクセス
以下のリンクを使用して、当社が保存しているすべての個人情報を含むレポートを要求できます。30日以内に回答いたします。
- レポートを要求する
メールアドレスを入力して本人確認を行ってください
個人情報の第三者への販売拒否
個人情報の収集または第三者への販売に同意しない場合は、リクエストを送信できます。
- 個人情報を販売しない
メールアドレスを入力して本人確認を行ってください
忘れられる権利
当社のストアから個人データやその他のデータを削除する場合は、このオプションを使用してください。このプロセスによりアカウントが削除され、以後アクセスや使用ができなくなることにご注意ください。
- 個人データの削除を要求する
メールアドレスを入力して本人確認を行ってください
処理の制限の権利
特定の状況下で、個人データの処理を制限または一時的に停止するよう要求できます。サポートが必要な場合は、csandham91@gmail.comまでご連絡ください。
異議を唱える権利
ダイレクトマーケティングや正当な利益に基づく処理など、特定のタイプのデータ処理に対して異議を唱える権利があります。異議の申し立てについては、csandham91@gmail.comまでご連絡ください。
連絡先情報
個人データまたはプライバシーの権利に関するご質問は、データ保護責任者(DPO)までご連絡ください:
メール: csandham91@gmail.com
住所: 29 Abbotts Walk, FY7 6QG Fleetwood England, United Kingdom
苦情を申し立てる権利
当社の対応にご不満がある場合は、国の個人情報保護機関に苦情を申し立てる権利があります。
/* SLIDE UP */ let slideUp = (target, duration=500) => { target.style.transitionProperty = 'height, margin, padding'; target.style.transitionDuration = duration + 'ms'; target.style.boxSizing = 'border-box'; target.style.height = target.offsetHeight + 'px'; target.offsetHeight; target.style.overflow = 'hidden'; target.style.height = 0; target.style.paddingTop = 0; target.style.paddingBottom = 0; target.style.marginTop = 0; target.style.marginBottom = 0; window.setTimeout( () => { target.style.display = 'none'; target.style.removeProperty('height'); target.style.removeProperty('padding-top'); target.style.removeProperty('padding-bottom'); target.style.removeProperty('margin-top'); target.style.removeProperty('margin-bottom'); target.style.removeProperty('overflow'); target.style.removeProperty('transition-duration'); target.style.removeProperty('transition-property'); }, duration); } /* SLIDE DOWN */ let slideDown = (target, duration=500) => { setTimeout(function(){ target.style.removeProperty('display'); let display = window.getComputedStyle(target).display; if (display === 'none') display = 'block'; target.style.display = display; let height = target.offsetHeight; target.style.overflow = 'hidden'; target.style.height = 0; target.style.paddingTop = 0; target.style.paddingBottom = 0; target.style.marginTop = 0; target.style.marginBottom = 0; target.offsetHeight; target.style.boxSizing = 'border-box'; target.style.transitionProperty = "height, margin, padding"; target.style.transitionDuration = duration + 'ms'; target.style.height = height + 'px'; target.style.removeProperty('padding-top'); target.style.removeProperty('padding-bottom'); target.style.removeProperty('margin-top'); target.style.removeProperty('margin-bottom'); window.setTimeout( () => { target.style.removeProperty('height'); target.style.removeProperty('overflow'); target.style.removeProperty('transition-duration'); target.style.removeProperty('transition-property'); }, duration); }, 100) } /* TOOGLE */ var slideToggle = (target, duration = 500) => { if (window.getComputedStyle(target).display === 'none') { return slideDown(target, duration); } else { return slideUp(target, duration); } } /* FADE */ var toggleFadeiSense = (elem, show) => { if (show) { elem.style.display = "block"; setTimeout(function(){ elem.classList.add('show-isense'); elem.classList.remove('hide-isense'); },20) } else { elem.classList.remove('show-isense'); elem.classList.add('hide-isense'); setTimeout(() => { elem.style.display = 'none'; }, 400) } } var appiSlideUpAll = function() { slideUp(document.querySelector('#form-appi-edit-account-request'), 100); document.querySelector('#btn-appi-edit-account-request').setAttribute("aria-expanded", "false"); slideUp(document.querySelector('#form-appi-requests-request'), 100); document.querySelector('#btn-appi-requests-request').setAttribute("aria-expanded", "false"); slideUp(document.querySelector('#form-appi-personal-information-request'), 100); document.querySelector('#btn-appi-personal-information-request').setAttribute("aria-expanded", "false"); slideUp(document.querySelector('#form-appi-orders-request'), 100); document.querySelector('#btn-appi-orders-request').setAttribute("aria-expanded", "false"); slideUp(document.querySelector('#form-appi-personal-data-report-request'), 100); document.querySelector('#btn-appi-personal-data-report-request').setAttribute("aria-expanded", "false"); slideUp(document.querySelector('#form-appi-do-not-sell-request'), 100); document.querySelector('#btn-appi-do-not-sell-request').setAttribute("aria-expanded", "false"); slideUp(document.querySelector('#form-appi-delete-account-request'), 100); document.querySelector('#btn-appi-delete-account-request').setAttribute("aria-expanded", "false"); document.querySelector('#appi_page button').setAttribute("aria-expanded", "false"); }; var email, type, consentGiven = false; var verificationModalContent = '<div id="data-verification-background"><div class="loading"></div><div id="data-verification-modal"><button class="data-verification-close" aria-label="Close">×</button><div id="data-verification-container"><input type="checkbox" aria-labelledby="appi-modal-container-text"><label id="data-verification-icon" aria-label="Data verification icon"><svg width="18px" height="18px" viewBox="0 0 18 18"><path d="M1,9 L1,3.5 C1,2 2,1 3.5,1 L14.5,1 C16,1 17,2 17,3.5 L17,14.5 C17,16 16,17 14.5,17 L3.5,17 C2,17 1,16 1,14.5 L1,9 Z"></path></path><polyline points="1 9 7 14 15 4"></polyline></svg></label><p id="appi-modal-container-text">I give my consent on collecting my email and IP address for the purpose of processing this request. For more check <a href="https://www.consentmo.com/privacy-policy-terms-of-service/en" target="_blank" aria-label="Privacy Policy & Terms of Service link (opens in a new tab)">Privacy Policy & Terms of Service</a>.</p></div></div></div>'; var isEmailValid = function(email) { let regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (email == '' || email == undefined) { return false; } else { return regex.test(email); } } var appiSendRequest = function(callback) { fetch('https://www.cloudflare.com/cdn-cgi/trace', { method: 'GET' , headers: { 'Content-Type': 'text/plain', }, }) .then(resp => resp.text()) .then(resp => { if (!resp.error) { let ipInfo = resp; let formData = new FormData(); if (type === 'customer/do-not-sell') { isenseGDPR.Cookies.set('cookieconsent_preferences_disabled', 'analytics,marketing,functionality,', { expires: 365 }); isenseGDPR.Cookies.set('cookieconsent_status', 'accept_selected', { expires: 365 }); if (typeof window.Shopify.customerPrivacy !== 'undefined' && typeof window.Shopify.customerPrivacy.setTrackingConsent === 'function') { window.Shopify.customerPrivacy.setTrackingConsent( { "sale_of_data": false, }, () => { console.log('sale_of_data: false')} ); } else { console.log('Customer Privacy API is not defined in the current page'); } if (document.querySelector('.cc-window')) { document.querySelector('.cc-window').style.display = 'none'; } // reset popup text document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check <a href="https://www.consentmo.com/privacy-policy-terms-of-service/en" target="_blank">Privacy Policy & Terms of Service</a>.'; } formData.append('shop', Shopify.shop); formData.append('email', email); formData.append('type', type); formData.append('sourceOfRequest', 3); formData.append('ipAddress', ipInfo); formData.append('consentGiven', consentGiven); formData.append('page', 'appi'); formData.append('lang', Shopify.locale ? Shopify.locale : ''); formData.append('gtranslateLang', isenseGDPR.Cookies.get('googtrans') ? isenseGDPR.Cookies.get('googtrans') : ''); fetch('https://app.consentmo.com/gdprRequests/submitRequest', { method: 'POST', body: formData }) .then(resp => resp.json()) .then(resp => { if (!resp.error) { appiSlideUpAll(); if (resp.message.length) { alert(resp.message); } else { alert('Your request has been submitted successfully. Please check your email for more information.'); } } else { alert(resp.message); } if (typeof callback == 'function') { callback(resp); } }) .catch(error => { alert(error.message); }) } else { alert(resp.message); } }) } document.addEventListener("DOMContentLoaded", function() { //Append modal to body, because otherwise it will not stay centered(even if position is fixed) document.querySelector("body").insertAdjacentHTML( 'beforeend', verificationModalContent); let searchParams = new URLSearchParams(window.location.search); let param = searchParams.get('id'); if(param) { document.getElementById(param).scrollIntoView(); } // When the user clicks on <span> (x), close the modal document.querySelector('.data-verification-close').addEventListener('click', function(e) { e.preventDefault(); closeVerificationModal(); // Focus the button of the request type that was picked let appiForms = document.querySelectorAll('.form-appi-request'); appiForms.forEach(function(appiForm) { if (appiForm.style.display !== "none") { let appiFormLinks = appiForm.previousElementSibling.querySelectorAll('li'); if (appiFormLinks.length === 1) { appiFormLinks[0].querySelector('button').focus(); } } }); }); document.querySelector('#data-verification-icon, #data-verification-container p').addEventListener('click', function(e) { e.preventDefault(); // Detect a href's click, because it is overwritten. if(e.target.tagName === "A") { window.open(e.target.href, '_blank'); return; } document.querySelector('#data-verification-icon').classList.add("clicked"); setTimeout(()=>{ toggleFadeiSense(document.querySelector("#data-verification-modal"), false); document.querySelector('#data-verification-background .loading').style.display = 'inline-block'; consentGiven = true; appiSendRequest(function(resp) { consentGiven = false; closeVerificationModal(); }); }, 400); }); }); function openVerificationModal(){ if(!isEmailValid(email)) { alert('Invalid email'); return; } toggleFadeiSense(document.querySelector("#data-verification-modal"), true); toggleFadeiSense(document.querySelector('#data-verification-background'), true); document.querySelector('#data-verification-container input').focus(); } function closeVerificationModal(){ toggleFadeiSense(document.querySelector("#data-verification-background"), false); document.querySelector('#data-verification-icon').classList.remove("clicked"); document.querySelector('#data-verification-background .loading').style.display = 'none'; // Focus the button of the request type that was picked let appiForms = document.querySelectorAll('.form-appi-request'); appiForms.forEach(function(appiForm) { if (appiForm.style.display !== "none") { let appiFormLinks = appiForm.previousElementSibling.querySelectorAll('li'); if (appiFormLinks.length === 1) { appiFormLinks[0].querySelector('button').focus(); } else { // Focus logic for Data Portability requests appiFormLinks = appiForm.parentElement; if (appiFormLinks.nodeName === 'LI') { appiFormLinks.querySelector('button').focus(); } } } }); } document.querySelector('#btn-appi-edit-account-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-edit-account-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-edit-account-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-edit-account-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-edit-account-request-email').value; type = 'customer/edit'; appiSendRequest(function(resp) { consentGiven = true; }); }); document.querySelector('#btn-appi-requests-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-requests-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-requests-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-requests-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-requests-request-email').value; type = 'customer/requests'; appiSendRequest(function(resp) { consentGiven = true; }); }); document.querySelector('#btn-appi-personal-information-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-personal-information-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-personal-information-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-personal-information-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-personal-information-request-email').value; type = 'customer/personal_info'; appiSendRequest(function(resp) { consentGiven = true; }); }); document.querySelector('#btn-appi-orders-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-orders-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-orders-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-orders-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-orders-request-email').value; type = 'customer/orders'; appiSendRequest(function(resp) { consentGiven = true; }); }); document.querySelector('#btn-appi-personal-data-report-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-personal-data-report-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-personal-data-report-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-personal-data-report-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-personal-data-report-request-email').value; type = 'customer/report'; appiSendRequest(function(resp) { consentGiven = true; }); }); document.querySelector('#btn-appi-do-not-sell-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-do-not-sell-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-do-not-sell-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-do-not-sell-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-do-not-sell-request-email').value; type = 'customer/do-not-sell'; // Check if customer is logged in if (typeof __st !== "undefined" && __st.cid != undefined) { document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check <a href="https://www.consentmo.com/privacy-policy-terms-of-service/en" target="_blank">Privacy Policy & Terms of Service</a>.'; } else { document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check <a href="https://www.consentmo.com/privacy-policy-terms-of-service/en" target="_blank">Privacy Policy & Terms of Service</a>.</br> <b>Note:</b> If you are a guest user or you are not logged into your account, your opt-out choice will only be effective for this browser session.'; } appiSendRequest(function(resp) { consentGiven = true; }); }); document.querySelector('#btn-appi-delete-account-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; appiSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-appi-delete-account-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-appi-delete-account-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-appi-delete-account-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-delete-account-request-email').value; type = 'customer/delete'; appiSendRequest(function(resp) { consentGiven = true; }); }); // Keyboard navigation in data verification modal for accesibility document.querySelector('#data-verification-modal').addEventListener('keydown', function(e) { let isTabPressed = e.keyCode === 9 || e.key === "Tab" || e.code === "Tab"; let isEscapePressed = e.keyCode === 27 || e.key === "Escape" || e.code === "Escape"; let isSpacePressed = event.keyCode === 32 || e.key === " " || event.code === "Space"; let isEnterPressed = event.keyCode === 13 || e.key === "Enter" || event.code === "Enter"; let dataVerificationCloseButton = document.querySelector('.data-verification-close'); let dataVerificationCheckbox = document.querySelector('#data-verification-container input'); let dataVerificationLink = document.querySelector('#data-verification-container a'); // This function saves us the trouble of calling e.preventDefault() after every focusing let executeFocus = (focusElement) => {focusElement.focus();e.preventDefault();} if (isEscapePressed) { if (dataVerificationCloseButton) { dataVerificationCloseButton.click(); } } if (isSpacePressed || isEnterPressed) { if (document.activeElement === dataVerificationCheckbox) { document.querySelector('#data-verification-container #data-verification-icon').click(); } } if (isTabPressed) { if (e.shiftKey) { if (dataVerificationCloseButton && document.activeElement === dataVerificationCloseButton) { executeFocus(dataVerificationLink); } } else { if (dataVerificationLink && document.activeElement === dataVerificationLink) { executeFocus(dataVerificationCloseButton); } } } });
