Função Appisendrequest Resp e Spinner 1500ms Infinito Rodar 360deg

#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-color: transparent;

border: 0;

border-bottom: 1px solid black;

padding: 0px;

}

/* Fundo do Modal */

#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-color: rgb(0,0,0);

background-color: rgba(0,0,0,0.4);

opacity: unset;

z-index: 9999;

}

/* Conteúdo do Modal */

#data-verification-modal {

background-color: #fefefe;

margem: auto;

padding: 16px;

border: 1px solid #888;

width: 38%;

}

/* Botão de Fechar Modal */

.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;

}

/* Texto da Caixa de Seleção */

#data-verification-container p{

display: inline-block;

acolchoamento: 0;

margem: 0;

altura-da-linha: 24px;

acolchoamento-esquerdo: 10px;

alinhamento-vertical: top;

largura: calc(100% - 45px);

}

#data-verification-container a, #data-verification-container a:hover{

text-decoration: underline!important;

cor: #4285f4;

}

#data-verification-container input {

opacity: 0;

largura: 0;

altura: 0;

margem: 0;

acolchoamento: 0;

}

/* Ícone da Caixa de Seleção */

#data-verification-icon {

cursor: pointer;

position: relative;

margem: auto;

largura: 18px;

altura: 18px;

-webkit-tap-highlight-color: transparent;

transform: translate3d(0, 0, 0);

margem-topo: 2px;

}

#data-verification-icon:before {

content: "";

posição: 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;

deslocamento-do-traço: 0;

}

#data-verification-icon svg polyline {

array-do-traço: 22;

deslocamento-do-traço: 66;

}

#data-verification-icon:hover:before {

opacidade: 1;

}

#data-verification-container:hover #data-verification-icon svg {

traço: #4285f4;

}

#data-verification-icon.clicked svg {

traço: #4285f4;

}

#data-verification-icon.clicked svg path {

deslocamento-do-traço: 60;

transição: tudo 0.3s linear;

}

#data-verification-icon.clicked svg polyline {

deslocamento-do-traço: 42;

transição: tudo 0.2s linear;

atraso-da-transição: 0.15s;

}

/* Design de acessibilidade */

#data-verification-icon:focus, .data-verification-close:focus, #data-verification-container input:focus ~ #data-verification-icon svg, #data-verification-container a:focus {

sombra-da-caixa: 0 0 0 3px rgba(21, 156, 228, 0.4);

transição: tudo 0.3s facilidade;

contorno: nenhum;

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;

}

/* Alterações do Modal na resolução móvel */

@media only screen and (max-width: 600px) {

#data-verification-modal {

width: 90%;

}

}

/* Elemento de Carregamento */

.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 infinito linear;

-moz-animation: spinner 1500ms infinito linear;

-ms-animation: spinner 1500ms infinito linear;

-o-animation: spinner 1500ms infinito linear;

animation: spinner 1500ms infinito 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;

}

/* Animação */

@-webkit-keyframes spinner {

0% {

-webkit-transform: rodar(0deg);

-moz-transform: rodar(0deg);

-ms-transform: rodar(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: rodar(0deg);

-moz-transform: rodar(0deg);

-ms-transform: rodar(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: rodar(0deg);

-moz-transform: rodar(0deg);

-ms-transform: rodar(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: rodar(0deg);

-moz-transform: rodar(0deg);

-ms-transform: rodar(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);

}

}

Quando envia um pedido de acesso ao titular dos dados (DSAR) através da página de conformidade, o nosso fornecedor de conformidade Consentmo processa apenas o endereço IP e o endereço de e-mail para gerir o pedido. Este processamento limitado de dados é realizado para proteger a sua privacidade enquanto garante uma gestão eficiente do pedido. Para mais detalhes, consulte a política de processamento de dados da Consentmo.


Correção de dados

Se os dados da sua conta estiverem incorretos, pode facilmente atualizar ou corrigir as informações usando o link abaixo. Esta funcionalidade garante que os seus dados pessoais estão sempre precisos e atualizados, permitindo-lhe utilizar os nossos serviços sem problemas.

Portabilidade de dados

Pode descarregar todos os dados que armazenamos e utilizamos para proporcionar uma melhor experiência na nossa loja usando o link abaixo. Isto permite-lhe gerir completamente as suas informações e, se necessário, transferi-las para outros serviços. Esta funcionalidade é especialmente útil ao verificar o histórico de encomendas e informações pessoais de produtos como malas e carteiras femininas.

Acesso a dados pessoais

Pode solicitar um relatório abrangente que inclui todas as informações pessoais que armazenamos usando o link abaixo. Responderemos a este pedido dentro de 30 dias. Isto permite-lhe compreender claramente como os seus dados estão a ser utilizados.

Recusa de venda de informações pessoais a terceiros

Se não concordar com a recolha ou venda dos seus dados pessoais a terceiros, pode enviar um pedido. Esta opção respeita as suas definições de privacidade e protege-o contra partilha indesejada de dados.

Direito a ser esquecido

Se desejar eliminar os seus dados pessoais e outros dados relacionados da nossa loja, utilize esta opção. Note que este processo eliminará completamente a sua conta, impedindo qualquer acesso ou uso futuro. Esta é uma funcionalidade importante para apagar completamente a sua pegada digital.

Direito à limitação do tratamento

特定の状況下で、お客様の個人データの処理を制限または一時的に停止するよう要求できます。この権利は、お客様のデータが不正確である場合や、処理に異議を唱える場合に特に重要です。サポートが必要な場合は、stiledonnabags@gmail.comまでご連絡ください。

Direito de oposição

ダイレクトマーケティングや正当な利益に基づく処理など、特定のタイプのデータ処理に対して異議を唱える権利があります。この権利は、お客様が望まない目的でデータが使用されるのを防ぐために提供されています。異議の申し立てについては、stiledonnabags@gmail.comまでご連絡ください。

Informações de contacto

Para questões relativas aos seus dados pessoais ou direitos de privacidade, contacte o nosso Encarregado de Proteção de Dados (DPO). Comprometemo-nos a responder às suas perguntas de forma rápida e atenciosa.

Email: stiledonnabags@gmail.com

Endereço: Via Testulla 149, 95122 Catania Catania, Italy

Direito de apresentar uma reclamação

Se estiver insatisfeito com a forma como processamos os seus dados, tem o direito de apresentar uma reclamação junto da autoridade nacional de proteção de dados. Os seus direitos são a nossa prioridade máxima e garantimos que as suas preocupações serão devidamente tratadas.

/* DESLIZAR PARA CIMA */

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);

}

/* DESLIZAR PARA BAIXO */

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)

}

/* ALTERNAR */

var slideToggle = (target, duration = 500) => {

if (window.getComputedStyle(target).display === 'none') {

return slideDown(target, duration);

} else {

return slideUp(target, duration);

}

}

/* DESVANECER */

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 = '

Dou o meu consentimento para a recolha do meu email e endereço IP para efeitos de processamento deste pedido. Para mais informações consulte a Política de Privacidade &amp Termos de Serviço.

';

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('A API de Privacidade do Cliente não está definida na página atual');

}

if (document.querySelector('.cc-window')) {

document.querySelector('.cc-window').style.display = 'none';

}

// redefinir texto do popup

document.querySelector('#appi-modal-container-text').innerHTML = 'Dou o meu consentimento para a recolha do meu email e endereço IP para efeitos de processamento deste pedido. Para mais informações consulte Política de Privacidade &amp Termos de Serviço.';

}

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://gdpr.apps.isenselabs.com/gdprRequests/submitRequest', {

método: 'POST',

body: formData

})

.then(resp => resp.json())

.then(resp => {

if (!resp.error) {

appiSlideUpAll();

if (resp.message.length) {

alert(resp.message);

} else {

alert('O seu pedido foi enviado com sucesso. Por favor, verifique o seu email para mais informações.');

}

} else {

alert(resp.message);

}

if (typeof callback == 'function') {

callback(resp);

}

})

.catch(error => {

alert(error.message);

})

}

else {

alert(resp.message);

}

})

}

//Adicionar modal ao body, porque caso contrário não ficará centrado (mesmo que a posição seja fixa)

document.querySelector("body").insertAdjacentHTML( 'beforeend', verificationModalContent);

document.addEventListener("DOMContentLoaded", function() {

let searchParams = new URLSearchParams(window.location.search);

let param = searchParams.get('id');

if(param) {

document.getElementById(param).scrollIntoView();

}

// Quando o utilizador clicar em (x), fechar o modal

document.querySelector('.data-verification-close').addEventListener('click', function(e) {

e.preventDefault();

closeVerificationModal();

// Focar o botão do tipo de pedido que foi selecionado

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();

// Detectar clique num href, porque está sobrescrito.

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('Email inválido');

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';

// Focar o botão do tipo de pedido que foi selecionado

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 {

// Lógica de foco para pedidos de Portabilidade de Dados

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';

// Verificar se o cliente está ligado

if (__st.cid != undefined) {

document.querySelector('#appi-modal-container-text').innerHTML = 'Dou o meu consentimento para a recolha do meu email e endereço IP para efeitos de processamento deste pedido. Para mais informações consulte Política de Privacidade &amp Termos de Serviço.';

} else {

document.querySelector('#appi-modal-container-text').innerHTML = 'Dou o meu consentimento para a recolha do meu email e endereço IP para efeitos de processamento deste pedido. Para mais informações consulte Política de Privacidade &amp Termos de Serviço. Aviso: Se for um utilizador convidado ou não estiver ligado à sua conta, a sua escolha de exclusão só será eficaz para esta sessão do navegador.';

}

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;

});

});

// Navegação por teclado no modal de verificação de dados para acessibilidade

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');

// Esta função poupa-nos o incómodo de chamar e.preventDefault() após cada foco

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);

}

}

}

});