CINXE.COM
Vodafone Portugal - 5G, Telemóveis, Internet, Televisão
<!DOCTYPE HTML> <html lang="pt" class="js"> <head> <link rel="apple-touch-icon" sizes="180x180" href="https://www.vodafone.pt/content/dam/favicon/apple-touch-icon.png"/> <link rel="icon" type="image/png" sizes="32x32" href="https://www.vodafone.pt/content/dam/favicon/favicon-32x32.png"/> <link rel="icon" type="image/png" sizes="16x16" href="https://www.vodafone.pt/content/dam/favicon/favicon-16x16.png"/> <link rel="icon" type="image/png" sizes="48x48" href="https://www.vodafone.pt/content/dam/favicon/favicon-48x48.png"/> <link rel="icon" type="image/png" sizes="96x96" href="https://www.vodafone.pt/content/dam/favicon/favicon-96x96.png"/> <link rel="icon" type="image/svg+xml" href="https://www.vodafone.pt/content/dam/favicon/favicon.svg"/> <link rel="manifest" href="https://www.vodafone.pt/content/dam/favicon/site.webmanifest"/> <meta name="msapplication-TileColor" content="#da532c"/> <meta name="theme-color" content="#ffffff"/> <title>Vodafone Portugal - 5G, Telemóveis, Internet, Televisão</title> <meta name="description" content="O seu operador de comunicações: rede 5G, pacotes Tv Net Voz com fibra, loja online com os últimos telemóveis, internet móvel e muito mais."/> <meta name="template" content="content-page"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta http-equiv="x-ua-compatible" content="ie=edge"/> <meta name="robots" content="index, follow"/> <meta name="facebook-domain-verification" content="mlc10vfgj9nqugld6evszm4l2rkzwc"/> <link rel="canonical"/> <link rel="amphtml"/> <meta name="Title" content="Vodafone Portugal - Telemóveis, Internet, Televisão"/> <meta property="og:image" content="https://www.vodafone.pt/content/dam/digital-sites/outros/vodafone-social-media-card-1200x630.jpg"/> <meta name="byside" content="site-hp"/> <meta property="og:title" content="Vodafone Portugal - 5G, Telemóveis, Internet, Televisão"/> <meta property="og:description" content="O seu operador de comunicações: rede 5G, pacotes Tv Net Voz com fibra, loja online com os últimos telemóveis, internet móvel e muito mais."/> <meta property="og:type" content="website"/> <meta property="og:site_name" content="Vodafone Portugal"/> <meta property="og:locale" content="pt_PT"/> <meta property="twitter:card" content="summary"/> <meta property="twitter:title" content="Vodafone Portugal - 5G, Telemóveis, Internet, Televisão"/> <meta property="twitter:description" content="O seu operador de comunicações: rede 5G, pacotes Tv Net Voz com fibra, loja online com os últimos telemóveis, internet móvel e muito mais."/> <meta property="twitter:image" content="https://www.vodafone.pt/content/dam/digital-sites/outros/vodafone-social-media-card-1200x630.jpg"/> <script>var pagePath="/content/digital-sites/pt/particulares/";var canonicalUrl="";var canonicalPath='https://www.vodafone.pt';var eshopPath='https://loja.vodafone.pt';var imageTumbPath='https://www.vodafone.pt';if(pagePath.indexOf('digital-sites')>-1){if(pagePath.indexOf('particulares')>-1){if(pagePath.split('particulares')[1].length>1){canonicalPath+=pagePath.split("content/digital-sites/pt/particulares")[1]+'.html';imageTumbPath+=pagePath.split("content/digital-sites/pt/particulares")[1]+'.thumb.800.480.png';}else{imageTumbPath+='/particulares.thumb.800.480.png';}}else if(pagePath.indexOf('default')>-1){if(pagePath.split('default')[1].length>1){canonicalPath+=pagePath.split("content/digital-sites/pt/default")[1]+'.html';imageTumbPath+=pagePath.split("content/digital-sites/pt/default")[1]+'.thumb.800.480.png';}else{imageTumbPath+='/default.thumb.800.480.png';}}else if(pagePath.indexOf('ajuda/artigosTopico')>-1){var pagePathVanity=window.location.pathname;canonicalPath+=pagePathVanity.trim();if(pagePathVanity.indexOf('.html')>-1){imageTumbPath+=pagePathVanity.split('.html')[0].trim()+'.thumb.800.480.png';}else{imageTumbPath+=pagePathVanity+'.thumb.800.480.png';}}else if(pagePath.split('content/digital-sites/pt')[1]&&pagePath.split('content/digital-sites/pt')[1].length>1){canonicalPath+=pagePath.split("content/digital-sites/pt")[1]+'.html';imageTumbPath+=pagePath.split("content/digital-sites/pt")[1]+'.thumb.800.480.png';}}else if(pagePath.indexOf('digital-myvodafone')>-1){var van="/";canonicalPath=van;imageTumbPath="";}else{canonicalPath+='/'+pagePath.split("/pt/")[1]+'.html';imageTumbPath+='/'+pagePath.split("/pt/")[1]+'.thumb.800.480.png';}document.querySelector("link[rel='canonical']").setAttribute('href',canonicalPath);if(document.querySelector("meta[property='og:url']")!=null&&document.querySelector("meta[property='og:url']").getAttribute('content')=="url_default"){document.querySelector("meta[property='og:url']").setAttribute('content',canonicalPath);document.querySelector("meta[property='og:url']").setAttribute('id','metaUrlId');}else if(document.querySelector("meta[property='og:url']")!=null){document.querySelector("meta[property='og:url']").setAttribute('id','metaUrlId');}if(document.querySelector("meta[property='og:image']")!=null&&document.querySelector("meta[property='og:image']").getAttribute('content')=="image_default"){document.querySelector("meta[property='og:image']").setAttribute('content',imageTumbPath);}if(canonicalUrl){document.querySelector("link[rel='canonical']").setAttribute('href',canonicalUrl);}</script> <link rel="preload" as="font" type="font/woff2" href="/apps/digital-commons/clientlibs/clientlib-site/resources/fonts/vodafone-light.woff2" crossorigin="anonymous"/> <link rel="preload" as="font" type="font/woff2" href="/apps/digital-commons/clientlibs/clientlib-site/resources/fonts/vodafone-regular.woff2" crossorigin="anonymous"/> <link rel="preload" as="font" type="font/woff2" href="/apps/digital-commons/clientlibs/clientlib-site/resources/fonts/vodafone-bold.woff2" crossorigin="anonymous"/> <link rel="stylesheet" href="/apps/digital-commons/clientlib-all-css.min.d71503dab270d79a4dbb06aa9628a1a7.css" type="text/css"> <script src="/etc.clientlibs/digital-commons/clientlibs/vendor/bodymovin.min.js"></script> <script src="/etc.clientlibs/clientlibs/granite/jquery.min.js"></script> <script src="/etc.clientlibs/digital-commons/clientlibs/vendor/crypto-js.min.js"></script> <script src="/apps/digital-commons/clientlib-all.min.js"></script> <script src="/etc.clientlibs/digital-commons/clientlibs/common/stores/basketStore.min.js"></script> <script src="/etc.clientlibs/digital-commons/clientlibs/common/stores/siteContextStore.min.js"></script> <script src="/etc.clientlibs/digital-commons/clientlibs/common/stores/navigationStore.min.js"></script> <!-- fix $CQ AEM 6.5 dependencies issue --> <script src="/etc.clientlibs/foundation/clientlibs/jquery.min.js"></script> <script src="/etc.clientlibs/foundation/clientlibs/shared.min.js"></script> <!-- fix $CQ AEM 6.5 dependencies issue --> <!--/ BYSIDE /--> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_byside/clientlibs.min.js"></script> <script type="text/javascript">(function(){window.ContextHub=window.ContextHub||{};ContextHub.Paths=ContextHub.Paths||{};ContextHub.Paths.CONTEXTHUB_PATH="/etc/cloudsettings/default/contexthub";ContextHub.Paths.RESOURCE_PATH="\/content\/digital\u002Dsites\/pt\/particulares\/_jcr_content\/contexthub";ContextHub.Paths.SEGMENTATION_PATH="\/etc\/segmentation\/contexthub";ContextHub.Paths.CQ_CONTEXT_PATH="";ContextHub.Constants=ContextHub.Constants||{};ContextHub.Constants.ANONYMOUS_HOME="/home/users/H/HZgHXq3vSIvbXLQEH_R6";ContextHub.Constants.MODE="no-ui";}());</script><script src="/etc/cloudsettings/default/contexthub.kernel.js" type="text/javascript"></script> <script src="https://tags.vodafone.pt/pt-universal/prod/utag.sync.js" defer></script> <!--SP-WIDGET--> <script src="https://cdn.sp-selfservice.com/cs/embed/107/sp-content-widget.js" type="text/javascript"></script> <script>var propertiesPath="/content/digital-sites/pt/particulares/";var tealiumBus=new Vue();var utag_data={page_name:this.navigation.methods.getAnalyticsPage(),page_section:this.navigation.methods.getAnalyticsSection()};var siteContext="default";var globalEnvironment="PRD";var isNotLocalEnvironment=globalEnvironment!=='LOCAL';</script> <div id="svgHtml"></div> <script src="/etc.clientlibs/digital-commons/clientlibs/vendor/svg-html.min.js"></script> </head> <body class="mouse-active preload window-scroll" data-js="_preload, _mouseActive, _docs, _windowScroll, _fixed"> <a href="#content" class="jumper">Skip to content</a> <!-- Click to Call Experience Fragment --> <div class="content" id="content"> <script src="/apps/digital-commons/clientlib-nvcmp.min.js"></script> <script src="/apps/digital-commons/clientlib-vcmp.min.js"></script> <!--<sly data-sly-resource="cookie"></sly>--> <div class="root responsivegrid"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_experienceFragment aem-GridColumn aem-GridColumn--default--12"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_navigation aem-GridColumn aem-GridColumn--default--12"> <script>pageTitle="Vodafone Portugal - 5G, Telemóveis, Internet, Televisão";</script> <div class="vf"> <nav class="header"> <div class="section section--mine-shaft flush--top flush--bottom"> <div class="spring"> <ul id="navigationLevelZero" class="menu-navigation__top no-gutter--all"> <input type="hidden" id="zeroLevelInput" data-zero="[{"text":"Particulares","linkURL":"","target":"","paramOnClick":"","selected":true,"subEntries":false,"zeroLevelSubEntries":[]},{"text":"Business","linkURL":"https://www.vodafone.pt/business.html","target":"","paramOnClick":"","selected":false,"subEntries":false,"zeroLevelSubEntries":[{"text":"Profissionais","linkURL":"_","target":"","paramOnClick":"","context":"","selected":false},{"text":"PME's","linkURL":"/content/digital-sites/pt/repositorio/evangelispl/NAVIGATION-WS10/business-ws10.html","target":"","paramOnClick":"","context":"","selected":false},{"text":"Corporate","linkURL":"_","target":"","paramOnClick":"","context":"","selected":false}]},{"text":"A Vodafone","linkURL":"https://www.vodafone.pt/a-vodafone.html","target":"","paramOnClick":"","selected":false,"subEntries":false,"zeroLevelSubEntries":[]}]" data-first="{"text":"Estado da Rede","linkURL":"https://www.vodafone.pt/info/estado-da-rede.html","target":"","paramOnClick":""}" data-second="{"text":"Condições de Oferta de Serviços","linkURL":"https://www.vodafone.pt/info/termos-condicoes.html","target":"","paramOnClick":""}"/> <template v-for="(zero, z) in zeroLevel"> <li class="hide--sm hide--md" v-if="zero.text"> <a :href="zero.linkURL ? zero.linkURL : null" :target="zero.target ? zero.target : null" :onclick="zero.paramOnClick ? zero.paramOnClick : null" @click="headerTealiumRequest(upperLevelMenuActionId, zero.text)" class="menu-navigation__link--slim" :class="{'navigation__site--active': zero.selected}"> {{zero.text}} </a> <template v-if="zero.subEntries"> <template v-for="sub in zero.zeroLevelSubEntries"> <span class="menu-navigation__top--display"> <a :href="sub.linkURL ? sub.linkURL : null" :target="sub.target ? sub.target : null" :onclick="sub.paramOnClick ? sub.paramOnClick : null" @click="(toggleSubEntry(sub), headerTealiumRequest(upperLevelMenuActionId, sub.text))" class="menu-navigation__top--block" :class="{'menu-navigation__top--block-active': isSelected(sub) }"> {{sub.text}} </a> </span> </template> </template> </li> </template> <template v-if="firstEntry.text"> <li class="menu-navigation__context"> <span class="menu-navigation__top--section-right"> <svg focusable="false" aria-hidden="true" class="icon icon--extra-small icon--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-network"> </use> </svg> <a role="button" :aria-label="firstEntry.text" :href="firstEntry.linkURL ? firstEntry.linkURL : null" :target="firstEntry.target ? firstEntry.target : null" :onclick="firstEntry.paramOnClick ? firstEntry.paramOnClick : null" @click="headerTealiumRequest(rightSideMenuActionId, firstEntry.text)"> {{firstEntry.text}} </a> </span> </li> </template> <template v-if="secondEntry.text"> <li class="hide--sm hide--md"> <span class="menu-navigation__top--section-right"> <svg viewBox="0 0 192 192" class="icon icon--extra-small"> <line id="afa0dea2-fdb5-4188-b127-0390bcfc2413" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="124" y1="84" x2="92" y2="84"></line> <line id="fca2dd7d-8243-463f-9694-d76870f6b696" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="76" y1="84" x2="68" y2="84"></line> <line id="c0f6faeb-1130-48f3-b62a-bcd83c3abeaf" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="124" y1="108" x2="92" y2="108"></line> <line id="_x39_f9d3ac1-3527-469f-b7cc-d7b4a8af09e5" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="76" y1="108" x2="68" y2="108"></line> <line id="_x30_e845ff5-6eb9-4522-9631-9073c7db3199" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="124" y1="132" x2="92" y2="132"></line> <line id="_x39_0b7f6c8-8095-43f3-848c-53ffec273712" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="76" y1="132" x2="68" y2="132"></line> <path fill="none" stroke="#ffffff" stroke-width="8" stroke-linejoin="round" d="M148,52l-32-32H56c-6.627,0-12,5.373-12,12v128 c0,6.627,5.373,12,12,12h80c6.627,0,12-5.373,12-12V52z"> </path> <polyline fill="none" stroke="#ffffff" stroke-width="8" stroke-linejoin="round" points="116,20.23 116,52 148,52 "></polyline> </svg> <a role="button" :aria-label="secondEntry.text" :href="secondEntry.linkURL ? secondEntry.linkURL : null" :target="secondEntry.target ? secondEntry.target : null" :onclick="secondEntry.paramOnClick ? secondEntry.paramOnClick : null" @click="headerTealiumRequest(rightSideMenuActionId, secondEntry.text)"> {{secondEntry.text}} </a> </span> </li> </template> </ul> </div> </div> <div class="js-navigation-static navigation-static" style="height: 0px;"> </div> <div id="headerMenu" class="menu-navigation" data-js="_navigation"> <div class="spring menu-navigation__white"> <nav role="navigation"> <ul class="menu-navigation__list menu-navigation__spring"> <li class="menu-navigation__item menu-navigation__item--brand"> <div class="brand brand__logo"> <a role="button" href="https://www.vodafone.pt/" target="_self"> <span class="icon icon--fill icon--large " style="width: 48px; height: 48px;"> <svg id="e52eb7e4-d5c9-48ac-9673-45b02cdb0493" data-name="55671e39-cefa-46bf-b0c9-8ca4a8831d80" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 192"><circle id="e59f7850-209c-49b6-932b-d92b9ddb2e2b" data-name="3b6eeea0-d9a3-4e8f-8337-993d6a52ca63" cx="96" cy="96" r="96" fill="#e60000"/><path id="b738ebc5-5ac0-4e37-a8a8-f1f8eceedf02" data-name="79849975-131f-4aec-9367-219fecbac6d4" d="M96.74,149.53c-26.37.1-53.82-22.37-53.93-58.57,0-23.91,12.83-46.92,29.32-60.59C88.22,17.1,110.24,8.51,130.22,8.44a23.94,23.94,0,0,1,6.9.77c-17.46,3.63-31.37,19.88-31.31,38.32a10.38,10.38,0,0,0,.12,1.57c29.24,7.06,42.5,24.73,42.58,49.16S129.33,149.43,96.74,149.53Z" fill="#fff"/></svg> </span> <span class="visually-hidden"></span> </a> </div> </li> <div id="navigation" class="menu-navigation__labels"> <navigation-menu json="/content/dam/digital-sites/ws10/navigation-ws10/particulares.json" zero-level="[{"text":"Particulares","linkURL":"","target":"","paramOnClick":"","selected":true,"subEntries":false,"zeroLevelSubEntries":[]},{"text":"Business","linkURL":"https://www.vodafone.pt/business.html","target":"","paramOnClick":"","selected":false,"subEntries":false,"zeroLevelSubEntries":[{"text":"Profissionais","linkURL":"_","target":"","paramOnClick":"","context":"","selected":false},{"text":"PME's","linkURL":"/content/digital-sites/pt/repositorio/evangelispl/NAVIGATION-WS10/business-ws10.html","target":"","paramOnClick":"","context":"","selected":false},{"text":"Corporate","linkURL":"_","target":"","paramOnClick":"","context":"","selected":false}]},{"text":"A Vodafone","linkURL":"https://www.vodafone.pt/a-vodafone.html","target":"","paramOnClick":"","selected":false,"subEntries":false,"zeroLevelSubEntries":[]}]" second-entry="{"text":"Condições de Oferta de Serviços","linkURL":"https://www.vodafone.pt/info/termos-condicoes.html","target":"","paramOnClick":""}"> </navigation-menu> </div> <div class="menu-navigation__context"> <template> <div> The current path is: {{ currentPath }} </div> </template> <div id="login--header" class="menu-navigation__context" v-cloak> <div class="menu-navigation__context" style="display: inline-flex;"> <li class="menu-navigation__context--action mini-basket" :class="{'mini-basket--active': miniBasketVisible}"> <a v-if="showBasketIcon" class="menu-navigation__link menu-navigation__link--icon" :class="{'mini-basket__link': miniBasketVisible}" @click="(goToShoppingBasket(), headerTealiumRequest('Event Click Header Right Utility Menu', 'Carrinho'))"> <span class="visually-hidden">Carrinho de compras</span> <span class="menu-navigation__basket" v-if="showItems"> {{counter ? counter : itemsNumber}} <span class="visually-hidden">items</span> </span> <svg focusable="false" aria-hidden="true" class="icon icon--small menu-navigation__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-shopping-trolley"></use> </svg> </a> <a v-else id="basket-loading" class="menu-navigation__link menu-navigation__link--icon"></a> <small v-if="showBasketIcon" class="menu-navigation__context--label" @click="(goToShoppingBasket(), headerTealiumRequest('Event Click Header Right Utility Menu', 'Carrinho'))">Carrinho</small> <mini-basket v-if="isDigitalSites" ref="miniBasket" :visible="miniBasketVisible" :close="closeMiniBasketEvent" :set-items-number="setItemsNumber" :toggle-mini-basket="toggleMiniBasket"></mini-basket> <div :ref="CONSTANTS.NOTIFICATION_BASKET" class="mini-basket__prompt mini-basket__prompt--reminder hide"> <div class="mini-basket__header"> <div class="grid"> <div class="grid__item grid__item--1/6"> <a class="position--relative cursor__auto"> <span class="visually-hidden">Carrinho de compras</span> <span class="navigation__basket"> <span class="visually-hidden">produto</span> </span> <svg focusable="false" aria-hidden="true" class="icon icon--small navigation__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-shopping-trolley"></use> </svg> </a> </div> <div class="grid__item grid__item--5/6"> <div class="heading heading--5 heading--bold heading--trailing heading--leading"> <span class="mini-basket__notification--description align--middle"> {{i18nLabels.basketNotEmpty}} </span> </div> <p>{{i18nLabels.reminderDescription}}</p> <div class="cart__tooltip"> <a v-on:click="redirectNotEmptyBasket" class="button button--primary button--small mini-basket__footer__button no-gutter--bottom">{{i18nLabels.goToCart}}</a> </div> </div> </div> <div class="mini-basket__header__close"> <svg v-on:click="closeNotification()" focusable="false" aria-hidden="true" class="icon icon--extra-extra-small mini-basket__header__close--icon"> <use xlink:href="#icon-close"></use> </svg> </div> </div> </div> </li> <li class="menu-navigation__context--action"> <a class="menu-navigation__link menu-navigation__link--icon " @click="(openDialog(), headerTealiumRequest('Event Click Header Right Utility Menu', 'Pesquisa'))"> <span class="visually-hidden">Pesquisar</span> <svg focusable="false" aria-hidden="true" class="icon icon--small menu-navigation__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-search"></use> </svg> </a> <small class="menu-navigation__context--label" @click="(openDialog(), headerTealiumRequest('Event Click Header Right Utility Menu', 'Pesquisa'))">Pesquisa</small> <!--TODO:meter o link no context(ficheiros xml)--> </li> <li v-if="ativeLogin && typeof userFavorite === 'undefined'" class="menu-navigation__context--action login-nudge " :class="{'login-nudge--active' : showNudge && !hasInteractions && !scrolled}" v-click-outside="closeEvent"> <a atf_id="click--icon" class="menu-navigation__link menu-navigation__link--icon login-nudge__link" @click="(openLoginDialog(), headerTealiumRequest('Event Click Header Right Utility Menu', 'Login'))"> <span class="visually-hidden">My Vodafone Menu</span> <svg focusable="false" aria-hidden="true" class="icon icon--small menu-navigation__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-my-vodafone"/> </svg> </a> <small class="menu-navigation__context--label" @click="(openLoginDialog(), headerTealiumRequest('Event Click Header Right Utility Menu', 'Login'))">Login</small> <div v-if="showNudge" class="js-login-nudge-prompt login-nudge__prompt" :class="{'login-nudge--hide' : showNudge && (hasInteractions || scrolled)}"> <a class="button button--primary button--full-width login-nudge__login no-gutter--sm-bottom" @click="sayYes">{{i18nLabels.loginButton}}</a> <a class="link link--body small" @click="notOpenAgain">{{i18nLabels.notOpenAgainButton}}</a> </div> </li> <logged-user-menu v-if="!ativeLogin" ref="loggedUserMenu" links="{"linkTitle":"Homepage My Vodafone", "pathURL":"/home.html", "newTab":"false", "linkId":"homepage"},{"linkTitle":"Extratos e Consumos","pathURL":"/extratos-consumos.html","newTab":"false","newTab@Delete":"false","linkId":"extract-consumptions","linkSegments":"profile-extract-consumptions"},{"linkTitle":"Saldo e Carregamentos","pathURL":"/saldo-movimentos.html","newTab":"false","newTab@Delete":"false","linkId":"billing-prepaid","linkSegments":"profile-prepaid"},{"linkTitle":"Faturas e Pagamentos","pathURL":"/faturacao.html","newTab":"false","newTab@Delete":"false","linkId":"billing","linkSegments":"profile-pospaid"},{"linkTitle":"Meus Produtos e Serviços","pathURL":"/produtos-servicos.html","newTab":"false","newTab@Delete":"false","linkId":"my-products-and-services","linkSegments":""},{"linkTitle":"Gerir Cartão SIM","pathURL":"/definicoes/gerir-sim.html","newTab":"false","newTab@Delete":"false","linkId":"SIM","linkSegments":""},{"linkTitle":"Clube Viva","pathURL":"/content/digital-sites/pt/loja/clube-viva","newTab":"true","newTab@Delete":"","linkId":"ClubViva","linkSegments":"profile-consumer"},{"linkTitle":"Tarifários e Serviços","pathURL":"/tarifarios-servicos.html","newTab":"false","newTab@Delete":"false","linkId":"offers-and-extras","linkSegments":""},{"linkTitle":"Serviços Empresariais","pathURL":"/servicos-empresariais.html","newTab":"false","newTab@Delete":"false","linkId":"business-services","linkSegments":"profile-business-services"},{"linkTitle":"Relatórios","pathURL":"/my/relatorios","newTab":"true","newTab@Delete":"true","linkId":"download-center","linkSegments":"profile-account|profile-business|profile-consumer"},{"linkTitle":"Gestão de Acessos","pathURL":"/my/gestao-acessos","newTab":"true","newTab@Delete":"","linkId":"gestao-acessos","linkSegments":"profile-account"},{"linkTitle":"Definições","pathURL":"/definicoes.html","newTab":"false","newTab@Delete":"false","linkId":"Settings","linkSegments":""},{"linkTitle":"Logout", "pathURL":"/logout.html", "newTab":"false", "linkId":"logout"}" :user-favorite="userFavorite" :close-menu="closeMenu"></logged-user-menu> <generic-toaster-component></generic-toaster-component> </div> </div> <script id="miniBasket" type="text/x-template" xmlns:v-on="http://www.w3.org/1999/xhtml"> <div> <transition name="mini-basket__slide"> <div class="mini-basket__prompt" :class="[counter>=2 ? 'mini-basket__two-or-more': '', successProductAdded ? '' : 'mini-basket__resume']" v-if="visible"> <div class="mini-basket__header"> <div class="mini-basket__notification"> <div class="mini-basket__notification--content"> <span class="half-gutter--right align--middle mini-basket__notification--icon"> <svg height="25px" viewBox="0 0 196 196"> <circle stroke-width="8" stroke-linejoin="round" stroke-linecap="round" stroke="none" fill="#428600" r="92" cy="96" cx="96"></circle> <polyline points="133.46 73.45 84.91 122 60 97.09" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"></polyline> </svg> </span> <span class="align--middle mini-basket__notification--description">{{ successProductAdded ? i18n.productAddedToCart : i18n.notEmptyBasketTitle}}</span> </div> </div> <div @click="closeMiniBasket" class="mini-basket__header__close"> <svg focusable="false" aria-hidden="true" class="icon icon--extra-small mini-basket__header__close--icon"> <use xlink:href="#icon-close"></use> </svg> </div> </div> <template v-if="isLoading"> <loading-spinner :small="true" /> </template> <div v-else> <div class="mini-basket__content"> <div class="mini-basket__content__empty" v-if="counter<=0"> <svg class="icon mini-basket__content__empty--icon" viewBox="0 0 192 192"> <symbol id="_x30_6979d89-d591-4b28-b7b6-a4fa49a13fc3" viewBox="-96 -96 192 192"><circle id="_x32_5a071e1-a24e-48d3-8ad1-944920ba0020_2_" fill="none" stroke="#E60000" stroke-width="4" stroke-linecap="round" stroke-miterlimit="10" cx="-8" cy="56" r="14"></circle><circle id="_x30_2280ee8-828f-4b27-8a31-3a4aa9e52c22_2_" fill="none" stroke="#E60000" stroke-width="4" stroke-linecap="round" stroke-miterlimit="10" cx="40" cy="56" r="14"></circle><polyline fill="none" stroke="#666666" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" points="-78,-70 -52,-70 -20,22 52,22 78,-50 -45.04,-50 "></polyline></symbol> <use xlink:href="#_x30_6979d89-d591-4b28-b7b6-a4fa49a13fc3" width="192" height="192" id="ffef29f4-6a23-451b-ac33-9ea1df639421" x="-96" y="-96" transform="matrix(1 0 0 1 96 96)" overflow="visible"></use> </svg> <div class="mini-basket__content__empty--big-label"> {{i18n.emptyBasketPrimaryMessage}} </div> <div class="mini-basket__content__empty--small-label"> {{i18n.emptyBasketSecondaryMessage}} </div> </div> <div class="scrollbar__gray" :class="[(basket.cartItems && basket.cartItems.length) > 2 ? 'mini-basket__scrollbar' : 'no-scrollbar']"> <div class="force-overflow"> <template v-if="product.eshopProductDTO" v-for="(product, index) in basket.cartItems"> <ul class="mini-basket__items"> <li :id="'item-'+product.id" class="mini-basket__item"> <div :id="'item-'+product.id+'-content'"> <a v-if="isAnyShippingMethodAvailable" class="mini-basket__item__delete half-gutter--left" @click="removeProductFromBasket(product)"> <svg focusable="false" aria-hidden="true" class="icon icon--extra-small mini-basket__item__delete--icon"> <use xlink:href="#icon-delete"></use> </svg> </a> <div class="mini-basket__item__content" :style="checkHasInsurance(product) ? 'border-bottom: none' : ''"> <a :href="product.eshopProductDTO.variants[0].pageLink" class="mini-basket__item__photo-wrapper"> <img v-if="product.eshopProductDTO.variants[0].imageSrc" :src="setRendition(product.eshopProductDTO.variants[0].imageSrc, CONSTANTS.IMG_RENDITION_140x100)" :alt="product.eshopProductDTO.variants[0].name" class="mini-basket__item__photo"> </a> <div class="mini-basket__item__inner-content"> <a :href="product.eshopProductDTO.variants[0].pageLink" class="mini-basket__item__title" v-html="getProductName(product.eshopProductDTO)"> </a> <ul class="mini-basket__item__specs"> <li class="mini-basket__item__spec" v-if="product.eshopProductDTO.variants[0].color && product.eshopProductDTO.variants[0].color!==''"> <div class="mini-basket__item__spec__title"> {{i18n.notEmptyBasketColor}} </div> <div class="mini-basket__item__spec__value"> {{product.eshopProductDTO.variants[0].color}} </div> </li> <li class="mini-basket__item__spec" v-if="product.eshopProductDTO.variants[0].storage && product.eshopProductDTO.variants[0].storage!==''"> <div class="mini-basket__item__spec__title"> {{i18n.notEmptyBasketStorage}} </div> <div class="mini-basket__item__spec__value"> {{product.eshopProductDTO.variants[0].storage}} </div> </li> <li class="mini-basket__item__spec"> <div class="mini-basket__item__spec__title"> {{i18n.notEmptyBasketQuantity}} </div> <div class="mini-basket__item__spec__value"> {{product.quantity}} </div> </li> </ul> </div> </div> </div> </li> <div v-if="checkHasInsurance(product)" class="mini-basket__item"> <a v-if="isAnyShippingMethodAvailable" class="mini-basket__item__delete half-gutter--left" @click="removeInsuranceFromBasket(product)"> <svg focusable="false" aria-hidden="true" class="icon icon--extra-small mini-basket__item__delete--icon"> <use xlink:href="#icon-delete"></use> </svg> </a> <div class="mini-basket__item__content"> <a class="mini-basket__item__photo-wrapper"> <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M20.4 39.35L20.1885 38.8967L20.1764 38.9028L20.4 39.35ZM19.4 39.35L19.6237 38.9026L19.6114 38.8969L19.4 39.35ZM19.2 1.55L19.4616 1.97609L19.4696 1.9712L19.4774 1.96603L19.2 1.55ZM21 1.55L21.2833 1.13794L21.2773 1.13397L21 1.55ZM32 5.35L31.975 5.84938L31.9875 5.85H32V5.35ZM39 5.35H39.5V4.85H39V5.35ZM13.1536 17.7964C12.9583 17.6012 12.6417 17.6012 12.4464 17.7964C12.2512 17.9917 12.2512 18.3083 12.4464 18.5036L13.1536 17.7964ZM18.2 23.55L17.8464 23.9036C17.9402 23.9973 18.0674 24.05 18.2 24.05C18.3326 24.05 18.4598 23.9973 18.5536 23.9036L18.2 23.55ZM28.9536 13.5036C29.1488 13.3083 29.1488 12.9917 28.9536 12.7964C28.7583 12.6012 28.4417 12.6012 28.2464 12.7964L28.9536 13.5036ZM38.5 6.15C38.5 18.1318 34.6418 25.9683 30.4418 30.9788C26.235 35.9974 21.661 38.2098 20.1886 38.8969L20.6114 39.8031C22.139 39.0902 26.865 36.8026 31.2082 31.6212C35.5582 26.4317 39.5 18.3682 39.5 6.15H38.5ZM20.1764 38.9028C19.9992 38.9914 19.9332 39 19.9 39C19.8668 39 19.8008 38.9914 19.6236 38.9028L19.1764 39.7972C19.3992 39.9086 19.6332 40 19.9 40C20.1668 40 20.4008 39.9086 20.6236 39.7972L20.1764 38.9028ZM19.6114 38.8969C18.1413 38.2108 13.6172 35.9991 9.46004 30.981C5.3094 25.9708 1.5 18.1336 1.5 6.15H0.5C0.5 18.3664 4.3906 26.4292 8.68996 31.619C12.9828 36.8009 17.6587 39.0892 19.1886 39.8031L19.6114 38.8969ZM1.5 6.15C1.5 5.77171 1.589 5.6335 1.65544 5.57155C1.73601 5.49642 1.90286 5.41994 2.27312 5.39582C2.63699 5.37212 3.10545 5.40314 3.70887 5.45628C4.30002 5.50833 5.00529 5.57988 5.79704 5.62422C8.99634 5.80338 13.654 5.54216 19.4616 1.97609L18.9384 1.12391C13.346 4.55784 8.90366 4.79662 5.85296 4.62578C5.08221 4.58262 4.4031 4.51354 3.7966 4.46013C3.20236 4.4078 2.65988 4.36851 2.20813 4.39793C1.76277 4.42694 1.3093 4.52702 0.973465 4.84017C0.623504 5.1665 0.5 5.62829 0.5 6.15H1.5ZM19.4774 1.96603C19.712 1.80957 19.9172 1.75 20.1 1.75C20.2828 1.75 20.488 1.80957 20.7227 1.96603L21.2773 1.13397C20.912 0.890431 20.5172 0.75 20.1 0.75C19.6828 0.75 19.288 0.890431 18.9227 1.13397L19.4774 1.96603ZM20.7167 1.96202C23.9862 4.2098 27.8745 5.64435 31.975 5.84938L32.025 4.85062C28.1255 4.65565 24.4138 3.2902 21.2833 1.13798L20.7167 1.96202ZM32 5.85H39V4.85H32V5.85ZM38.5 5.35V6.15H39.5V5.35H38.5ZM12.4464 18.5036L17.8464 23.9036L18.5536 23.1964L13.1536 17.7964L12.4464 18.5036ZM18.5536 23.9036L28.9536 13.5036L28.2464 12.7964L17.8464 23.1964L18.5536 23.9036Z" fill="#0D0D0D"/> </svg> </a> <div class="mini-basket__item__inner-content"> <a class="mini-basket__item__title" v-html="insuranceProperty(product, 'name')"> </a> <ul class="mini-basket__item__specs"> <li class="mini-basket__item__spec"> <div class="mini-basket__item__spec__title"> {{i18n.notEmptyBasketQuantity}} </div> <div class="mini-basket__item__spec__value"> {{insuranceProperty(product, 'quantity')}} </div> </li> </ul> </div> </div> </div> </ul> </template> </div> </div> </div> <div class="mini-basket__footer" @click=""> <div v-if="counter>0"> <div class="mini-basket__footer__total-price"> <div class="grid"> <div class="grid__item grid__item--1/2"> <span class="heading heading--6 heading--regular no-gutter--top"> <b>{{i18n.notEmptyBasketTotal}}</b>{{CONSTANTS.SPACE + i18n.notEmptyBasketTotalComplement}} <label v-if="isBusinessContext" class="small">{{i18n.excludeVAT}}</label><br> <span class="small">{{counter}} <label v-if="counter === 1">{{i18n.notEmptyBasketProduct}}</label> <label v-else>{{i18n.notEmptyBasketProducts}}</label> </span> </span> </div> <label class="grid__item grid__item--1/2 align--right"> <span class="heading heading--6 heading--regular no-gutter--top"> <b>{{formatPrice(getCartTotalEURValueBasedOnSiteContext(basket.cartTotalPrice, isBusinessContext))}}</b> <label v-if="isCVBasket"> <br><b>{{i18n.notEmptyBasketPlus + CONSTANTS.SPACE}}{{getCartTotalPOINTSValue(basket.cartTotalPrice)}}</b> {{CONSTANTS.SPACE + i18n.notEmptyBasketPoints}} </label> </span> </label> </div> </div> <div class="cart__tooltip"> <!--div class="cart__tooltip--message"> Mensagem editável </div--> <a v-on:click="redirectNotEmptyBasket" class="button button--primary button--full-width mini-basket__footer__button" :class="{'button--disabled': !isAnyShippingMethodAvailable}"> {{i18n.notEmptyBasketButton}} </a> </div> <div class="grid half-gutter--top" v-if="!isAnyShippingMethodAvailable"> <div class="grid__item grid__item--1/11"> <span class="icon icon--fill icon--small"> <svg viewBox="0 0 192 192"><symbol id="ab60b1d0-e126-40d6-8297-93da8c0b8b6d" viewBox="-96 -96 192 192"><path id="ee1f5584-8941-4af1-9904-60ee2b8edcdf_2_" fill="none" stroke="#666666" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d=" M74.34,41.49C82.92,56.7,75.9,70,58.74,70H-58.73c-17.16,0-24.19-13.3-15.6-28.51L-15.6-66.64c8.55-14.75,22.53-15.53,31.21,0 L74.34,41.49z"></path><line id="f0d8af6f-07b5-4e3d-ba5f-e8cb77db5008_2_" fill="none" stroke="#E60000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" x1="0" y1="-38" x2="0" y2="22"></line><circle fill="none" stroke="#E60000" stroke-width="4" stroke-miterlimit="10" cx="0" cy="40" r="2"></circle></symbol><use xlink:href="#ab60b1d0-e126-40d6-8297-93da8c0b8b6d" width="192" height="192" id="ad8b8c14-7e84-4c26-b1d0-9131d9b15ca7" x="-96" y="-96" transform="matrix(1 0 0 1 96 96)" overflow="visible"></use></svg> </span> </div> <div class="grid__item grid__item--10/11 grid__item--gutter small"> <small>Estamos a melhorar a Loja Online. De momento não é possível continuar com a sua comprar, tente novamente mais tarde.</small> </div> </div> </div> <a v-else class="button button--primary button--full-width mini-basket__footer__button" v-on:click="redirectEmptyBasket">{{i18n.emptyBasketButton}}</a> </div> </div> </div> </transition> </div> </script> <script src="/etc.clientlibs/digital-eshop/components/content/commerce/vf_miniBasket/clientlibs.min.js"></script> <script id="loadingSpinner" type="text/x-template"> <div :class="['loading__spinner', {'loading__spinner--wide': wide, 'loading__spinner--mdwind': mdwind, 'loading__spinner--file-upload-container': fucont, 'loading__spinner--calendar-container': calcont}]"> <img :class="['loading__spinner--image', {'loading__spinner--small': small, 'loading__spinner--medium': medium, 'loading__spinner--tiny': tiny, 'loading__spinner--extra-tiny': exttiny, 'loading__spinner--tiny-center': tinyc, 'loading__spinner--comparator': comparator}]" src="/content/dam/digital-commons/loading-spinner.svg" /> </div> </script> <style scoped>.loading__spinner{height:300px;position:relative;width:300px}.loading__spinner--wide{width:100%}.loading__spinner--image{width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading__spinner--small{transform:scale(.8,.8);top:0;left:0}.loading__spinner--medium{transform:scale(.8,.8);top:0;left:70%}.loading__spinner--mdwind{height:192px;transform:translate(0,-23%)}.loading__spinner--tiny{transform:scale(.5,.5);top:0;left:70%}.loading__spinner--file-upload-container{height:74px;transform:translate(-50%,-164%)}.loading__spinner--extra-tiny{transform:scale(.17,.17);height:260px}.loading__spinner--tiny-center{transform:scale(.5,.5);top:0;left:0}.loading__spinner--calendar-container{height:100px;transform:translate(0,-100%)}.loading__spinner--comparator{transform:translate(-50%,-50%) scale(.5,.5);top:50%;left:50%;max-width:unset}</style> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_loadingSpinner/clientlibs.min.js"></script> <script id="genericToasterCmp" type="text/x-template"> <div class="toaster alert-toaster" :class="toasterShow?'toaster--show':''"> <div class="spring"> <div style="position: relative"> <div class="alert validation__warning alert-toaster__warning" :class="toasterCssType"> <div class="alert-toaster__caption"> <span class="caption__media caption__media--top alert__media"> <svg focusable="false" aria-hidden="true" class="icon icon--small toaster__icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" v-bind="{'xlink:href':'#'+toasterIconType}"></use> </svg> </span> <span class="caption__text caption__text--top alert__text"> <p class="no-gutter--top"><strong class="validation__details js-validation-details">{{toasterTitle}}</strong></p> </span> <span class="alert-toaster__caption--close align--right" @click="closeToaster()"> <svg height="35px" id="close" data-name="ICON" viewBox="0 0 192 192"><line id="91c3244b-a44b-4462-ad78-3b291975bc24" data-name="<Pfad>" x1="48" y1="144" x2="144" y2="48" fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"></line><line id="dcc09f5c-b82c-4d96-b38b-0540c6362512" data-name="<Pfad>" x1="144" y1="144" x2="48" y2="48" fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"></line></svg> </span> <div class="alert-toaster__description" v-html="toasterMsg"></div> </div> </div> </div> </div> </div> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_genericToaster/clientlibs.min.js"></script> <script id="LoggedUserMenuCmp" type="text/x-template"> <li atf_id="portal_navigation" @click="goToMyAccount" class="menu-navigation__context--action user-menu"> <a id="logged--user--menu--photo" class="menu-navigation__link menu-navigation__link--icon"></a> <a v-if="userPhoto !== ''" class="menu-navigation__link menu-navigation__link--icon" aria-haspopup="true"> <span class="visually-hidden">My Vodafone Menu</span> <div v-if="!hasUserPhoto && !isMenuOpen && !isMenuPopUp && userPhoto !== ''" class="user-menu__image user-menu__image--icon"> <svg focusable="false" aria-hidden="true" class="icon icon--small"> <use v-bind="{'xlink:href':'#'+userPhoto}"/> </svg> </div> <!--Change to new classes--> <div v-if="hasUserPhoto && !isMenuOpen && !isMenuPopUp && userPhoto !== ''" class="navigation__icon navigation__toggle" > <img :src="'data:image/png;base64,' + userPhoto" class="user-menu__image"> </div> <div v-if="isMenuOpen || isMenuPopUp" class="navigation__icon--active navigation__user--close"> <svg focusable="false" aria-hidden="true" class="icon icon--small navigation__icon"> <use xlink:href="#icon-close"></use> </svg> </div> </a> <small v-if="userPhoto !== '' && !isMenuOpen && !isMenuPopUp" class="menu-navigation__context--label">A minha conta</small> </li> </script> <div id="search--overlay" class="js-dialog dialog js-dialog-display" :class="{ 'dialog--display': dialogSearch }"> <div class="spring dialog__close-spring"> <a role="button" aria-label="Close search dialog" class="js-dialog-close dialog__close" @click="dialogSearchClose"> <svg focusable="false" aria-hidden="true" class="icon icon--small dialog__icon"> <use xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">Close dialog</span> </a> </div> <div class="js-dialog-content dialog__content" style="display: block;"> <div id="ajax" class="ajax"> <div class="section section--mine-shaft"> <p class="heading heading--4 heading--light heading--center heading--trailing"> {{searchOverlayHeading}} </p> <div class="search-snack"> <div action="" data-js="_sayt, _validation" class="align-center space--bottom sayt validation form js-dynamic-content-listener" novalidate="novalidate"> <div class="spring"> <div id="search-overlay"> <div class="col-md-12"> <div id="cludo-search-content-form" class="search-snack__input" role="search"> <div class="search-form-inner"> <div class="search-form-input"> <input name="searchrequest" id="cludo-search-content-form-input" type="search" :placeholder="searchOverlayMessage" value="" title="Type search term" autocomplete="off" aria-autocomplete="list" aria-haspopup="true" v-on:keydown.capture.enter="pressedEnter()"/> <button type="button" v-on:click.capture="clickSearch" title="Search" class="button button--primary button--primary--dark"> <label class="cludo-sr-only">Procurar</label> <img alt="Lupa de Pesquisa" src="https://customer.cludo.com/assets/1977/10229/img/icons/main_icn_Search.svg"/> </button> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <script src="/etc.clientlibs/digital-commons/components/content/structure/vf_search/clientlibs.min.js"></script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_captcha/clientlibs.min.js"></script> <div id="recaptchaV3Component"> <div id="recapctchaComponent" v-show="isLoaded" class="g-recaptcha" data-callback="onSubmit" data-size="invisible"></div> </div> <div id="login--login"> <div id="login--overlay" class="dialog" :class="{'dialog--display': dialogDisplayed}"> <div class="spring dialog__close-spring"> <a role="button" :aria-label="login_close_dialog_aria_label" class="dialog__close" @click="closeDialog"> <svg focusable="false" aria-hidden="true" class="icon icon--small dialog__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">{{login_close_dialog_span}}</span> </a> </div> <div class="dialog__content" style="display: block;"> <div id="ajax" class="ajax"> <h2 class="heading heading--light heading--2 heading--center">{{login_page_title}}</h2> <!-- TABS SECTION --> <div class="tabs tabs--dark tabs--full"> <div class="tabs__navigation-wrapper"> <nav class="tabs__navigation tabs__navigation--fixed" role="tablist"> <a @click="changeTab(1)" ref="loginTab" class="tabs__tab" :class="{'tabs__tab--active' : activeTab === 1}" role="tab">{{login_navigation_title}} </a> <a @click="changeTab(2)" ref="registerTab" class="tabs__tab" :class="{'tabs__tab--active' : activeTab === 2}" role="tab">{{register_navigation_title}} </a> </nav> </div> <div v-if="activeTab === 1" id="login-register-login" class="tabs__content"> <div class="spring spring--sm"> <div> <div class="login__framer"> <ul id="login-register-login-list" ref="loginComponentForm" class="list list--reset login__frames" :class="{'login__frames--first': recoverDisplayed,'login__frames--last': isInactiveEmail || lockedMessageDisplayed}"> <!-- Forgot your password --> <li class="login__frame login__frame--first"> <form role="form" class="form validation" :class="{'hide': formSubmitDisplayed}"> <fieldset> <legend class="heading heading--3 no-gutter--all"> {{forgot_password_question}} </legend> <p class="login__text" v-html="forgot_password_message"></p> <label class="form__row" for="login__name--reset"> <span class="form__label">{{login_name_reset_number}}</span> <alert-msg-component arrow="true" v-show="invalidUserRecoverName && !isRecoveryPhoneNumber" :error-messages="[login_form_invalid_username_msg]"></alert-msg-component> <alert-msg-component v-show="invalidUnavailableServices" :error-messages="[login_form_unavailable_services_msg1, login_form_unavailable_services_msg2]"></alert-msg-component> <alert-msg-component arrow="true" v-show="invalidSubmitEmptyRecover" :error-messages="[login_form_invalid_username_recover_empty_msg]"></alert-msg-component> <alert-msg-component arrow="true" v-show="isRecoveryPhoneNumber" :use-html="true" :error-messages="[forgot_password_alert_sms]"></alert-msg-component> <input type="text" id="login__name--reset" name="login__name" v-model="user.usernamerecover" @focusOut="validateInput('username-recover')" @input="validateFieldChange" :placeholder="login_name_reset_number_placeholder" class="form__input" :class="{'form__input--error': borderUsernameRecoverField}"/> </label> <div class="form__row form__row--medium"> <button-with-loader type="submit" button-id="recover--password--button" class="button button--primary button--primary--dark button--full-width" @click="handlerSubmitRecoverLogin" :button-text="forgot_password_next" :disabled="user.usernamerecover.length === 0 || invalidSubmitEmptyRecover" :loading="recoverPasswordButtonLoading"> </button-with-loader> </div> <div class="form__row form__row--slim"> <button type="reset" class="button button--secondary button--secondary--dark button--full-width" @click="handlerCancelRecoverLogin"> {{forgot_password_cancel}} </button> </div> </fieldset> </form> <!-- Recover Password Success --> <form role="form" class="form validation" :class="{'hide': formSuccessDisplayed}"> <fieldset> <legend class="heading heading--3 no-gutter--all"> {{forgot_password_second_title}} </legend> <p class="login__text" v-show="SMS">{{forgot_password_second_text_sms}}</p> <p class="login__text" v-show="EMAIL">{{forgot_password_second_text_email}}</p> <div class="form__row form__row--medium"> <button class="button button--primary button--primary--dark button--full-width" @click="recoverSuccessLogin">{{forgot_password_next}} </button> </div> </fieldset> </form> </li> <!-- Login --> <li class="login__frame"> <form method="post" role="form" class="form validation"> <fieldset> <legend class="visually-hidden">{{login_label}}</legend> <alert-msg-component v-show="isActivation && isSuccessfulActivation" :message-type="'alert--success'" :icon-type="'icon-tick-outline-light'" :error-title="login_form_activation_success_title_msg" :error-messages="[login_form_activation_success_content_msg]"></alert-msg-component> <alert-msg-component v-show="isResendActivation" :message-type="'alert--success'" :icon-type="'icon-tick-outline-light'" :error-title="login_form_resend_email_title_msg" :error-messages="[login_form_resend_email_content_msg]"></alert-msg-component> <alert-msg-component v-show="resetSuccessful" :message-type="'alert--success'" :icon-type="'icon-tick-outline-light'" :error-title="login_form_reset_success_title_msg" :error-messages="[login_form_reset_success_msg]"></alert-msg-component> <alert-msg-component v-show="invalidSubmit" :error-messages="[login_form_invalid_login_msg1, login_form_invalid_login_msg2]"></alert-msg-component> <alert-msg-component v-show="invalidUnavailableServices || decryptError" :error-messages="[login_form_unavailable_services_msg1, login_form_unavailable_services_msg2]"></alert-msg-component> <alert-msg-component v-show="invalidLinkChangeEmail" :error-messages="[login_form_reset_error_email_msg, login_form_reset_error_three_msg]"></alert-msg-component> <div v-show="!invalidLinkChangeEmail"> <label class="form__row form__row--leading" for="login__name"> <span class="form__label">{{login_form_name_label}}</span> <alert-msg-component arrow="true" v-show="invalidUserName" :error-messages="[login_form_invalid_username_msg]"></alert-msg-component> <input type="text" ref="formLoginName" id="login__name" name="login__name" v-model="user.username" @focusOut="validateInput('username')" @input="validateFieldChange" :placeholder="login_form_name_placeholder" required="" class="form__input" :class="{'form__input--error': borderUsernameField}"/> </label> <label class="form__row" for="login__password"> <span class="form__label">{{login_form_password_label}}</span> <alert-msg-component arrow="true" v-show="invalidPassword" :error-messages="[login_form_invalid_password_msg]"></alert-msg-component> <input type="password" ref="formLoginPassword" id="login__password" name="login__password" v-model="user.password" @focusOut="validateInput('password')" @input="validateFieldChange" :placeholder="login_form_password_placeholder" required="" class="form__input" :class="{'form__input--error': borderPasswordField}"/> </label> <div> <label class="form__row" for="login__remember-me" style="display:inline-block"/> <input type="checkbox" id="login__remember-me" v-model="checked" name="login__remember-me" class="form__checkbox"/> <span class="form__label form__label--checkable form__label--checkable--ruled">{{login_form_remember_me}}</span> </div> <div class="form__row form__row--medium gutter--bottom"> <button-with-loader type="submit" button-id="login--button" class="button button--primary button--primary--dark button--full-width" @click="clickLogin" :button-text="login_form_submit" :disabled="invalidUserNameField || !user.username || (!user.password && user.password.length < 1)" :loading="loginButtonLoading"> </button-with-loader> </div> <div class="login__controls"> <div class="align--center"> <a id="login-register-recover-button" role="button" :aria-label="login_form_recover_button_aria_label" class="link link--body link--body--dark" @click="recoverLogin">{{login_form_recover_button}} </a> <a ref="loginRegisterBlockButton" role="button" class="link link--body link--body--dark"></a> </div> </div> </div> <div v-show="invalidLinkChangeEmail"> <div class="form__row form__row--medium gutter--bottom"> <button type="submit" class="button button--secondary button--secondary--dark button--full-width" @click="backToLogin">{{login_form_back_to_login_button}} </button> </div> </div> </fieldset> </form> </li> <!-- Recover your password --> <li class="login__frame login__frame--last"> <div v-show="isInactiveEmail"> <form role="form" method="post" class="form validation"> <fieldset> <!-- Validation Message --> <alert-msg-component v-show="isFailedResend" :error-title="login_form_resend_email_failure_title_msg" :error-messages="[login_form_resend_email_failure_content_msg]"></alert-msg-component> <alert-msg-component v-show="!isFailedResend" :error-title="login_form_inactive_email_title_msg" :message-type="'alert--info'" :icon-type="'icon-info-circle-light'" :error-messages="[login_form_inactive_email_content_msg]"></alert-msg-component> <!-- END Validation Message --> <div class="form__row form__row--medium"> <button-with-loader type="reset" button-id="resend--inactive--email--button" class="button button--primary button--primary--dark button--full-width" @click="handleResendFromInactiveEmail" :button-text="login_form_activation_resend_button" :loading="resendInactiveEmailButtonLoading"> </button-with-loader> </div> <div class="form__row form__row--slim"> <button @click="handleBackToLoginFromInactiveEmail" type="reset" class="button button--secondary button--secondary--dark button--full-width"> {{login_form_activation_back_to_login_button}} </button> </div> </fieldset> </form> </div> <div v-show="!isInactiveEmail && lockedMessageDisplayed"> <form role="form" class="form validation"> <fieldset> <alert-msg-component :error-title="login_user_blocked_msg_title" :error-messages="[login_user_blocked_msg1, login_user_blocked_msg2]"></alert-msg-component> <div class="form__row"> <button class="button button--primary button--primary--dark button--full-width" @click="recoverLogin">{{login_recover_password}} </button> </div> </fieldset> </form> </div> </li> </ul> </div> </div> </div> </div> <div v-if="activeTab === 2" id="login-register-register" class="tabs__content"> <div class="spring spring--sm"> <div class="login__framer"> <ul class="list list--reset login__frames" :class="{'login__frames--first': !(isActivation && isFailedActivation) && !preventLoading, 'login__frames--last':register.onCreate}"> <li class="login__frame login__frame--first"> <form class="form validation"> <alert-msg-component v-show="!register.validEmail" :error-title="login_form_resend_email_failure_title_msg" :error-messages="[login_form_create_email_already_exists]"></alert-msg-component> <fieldset> <div class="form__row form__row--leading" atf_id="new--register--name"> <span class="form__label form__label--required">{{login_form_create_user_name}}</span> <div class="grid grid--half-gutter"> <div class="grid__item grid__item--half-gutter grid__item--1/2"> <input type="text" :placeholder="login_form_create_user_first_name" maxlength="50" @change="runCreateValidations" v-model="register.firstName" class="form__input"/> </div> <div class="grid__item grid__item--half-gutter grid__item--1/2"> <input type="text" :placeholder="login_form_create_user_last_name" maxlength="50" @change="runCreateValidations" v-model="register.lastName" class="form__input"/> </div> </div> </div> <div class="form__row" atf_id="new--register--date"> <date-component :initial-date="initialDate" v-model="register.birthDate" :years-options="yearsOptions" :allow-future-dates="false" :allow-today-dates="false" :label-description="edit_profile_birthday_day"></date-component> </div> <div class="form__row" atf_id="new--register--email"> <span class="form__label form__label--required">{{login_form_create_user_email}}</span> <alert-msg-component arrow="true" v-show="register.invalidEmail" :error-messages="[edit_profile_invalid_email]"></alert-msg-component> <input type="text" :placeholder="login_form_create_user_email_placehold" @change="runEmailValidation" class="form__input" v-model="register.email" :disabled="preRegister" :class="{'disabled' : preRegister}"/> <small>{{login_form_create_email_login_text}}</small> </div> <div v-if="!register.invalidEmail && register.validEmail && register.email.length > 0 && !preRegister" class="form__row" atf_id="new--register--email2"> <span class="form__label form__label--required">{{login_form_create_user_email_confirmation}}</span> <alert-msg-component arrow="true" v-show="register.invalidEmailConfirmation" :error-messages="[edit_profile_invalid_email_confirmation]"></alert-msg-component> <input type="text" :placeholder="login_form_create_user_email_confirmation_placehold" @change="runEmailConfirmationValidation" class="form__input" v-model="register.emailConfirmation"/> </div> <div class="form__row" atf_id="new--register--phone"> <span class="form__label form__label--required">{{login_form_create_user_phone_number}}</span> <alert-msg-component arrow="true" v-show="register.invalidServiceId" :error-messages="[login_form_create_serviceId_invalid_msg]"></alert-msg-component> <alert-msg-component arrow="true" v-show="register.unauthorizedService" :error-messages="[login_form_create_unauthorized_service_msg]"></alert-msg-component> <alert-msg-component arrow="true" v-show="register.notValidService" :error-messages="[login_form_create_not_valid_service_msg]"></alert-msg-component> <input :placeholder="login_form_create_user_phone_number_placehold" v-model="register.serviceId" @change="runServiceNumberValidation" maxlength="9" onkeypress='return ( event.charCode == 0 ) || ( event.charCode >= 48 && event.charCode <= 57)' class="form__input"/> </div> <div class="form__row" atf_id='new--register--password'> <span class="form__label form__label--required">{{login_form_create_user_password}}</span> <alert-msg-component arrow="true" v-show="register.invalidNewPassword" :error-messages="[login_form_reset_error_validate_field_invalid_char_msg]"></alert-msg-component> <alert-msg-component arrow="true" v-show="register.passwordToShort" :error-messages="[login_form_create_password_to_short]"></alert-msg-component> <input type="password" :placeholder="login_form_create_user_password_placehold" v-model="register.password" @change="matchPasswordOnCreate" class="form__input"/> <password-strenght-component :on-invalid-new-password="onInvalidNewPassword" :message-level-one="register.passwordLabelOne" :new-password="register.password"></password-strenght-component> </div> <div class="form__row" atf_id='new--register--password2'> <span class="form__label form__label--required">{{login_form_create_user_confirm_password}}</span> <alert-msg-component arrow="true" v-show="register.invalidConfirmationNewPassword" :error-messages="[login_form_create_password_match]"></alert-msg-component> <input type="password" :placeholder="login_form_create_user_confirm_password_placehold" v-model="register.passwordConfirmation" @change="matchPasswordOnCreate" class="form__input"/> </div> <div class="form__row"> {{login_form_create_user_confirm_label}} <a target="_blank" href="https://www.vodafone.pt/info/termos-condicoes/my-vodafone-no-pc.html"><u> {{login_form_create_user_terms_conditions}}</u> </a> {{login_form_create_user_vigentes}} </div> <div class="form__row" atf_id='new--register--confirm'> <button-with-loader type="submit" button-id="create--user--button" class="button button--primary button--primary--dark button--full-width" @click="createUser" :button-text="login_form_create_user_confirm_btn" :disabled="!readyToSearch" :loading="createUserButtonLoading"> </button-with-loader> </div> </fieldset> </form> </li> <li class="login__frame"> <form role="form" method="post" class="form validation"> <fieldset> <!-- Validation Message --> <alert-msg-component v-show="isFailedResend" :error-title="login_form_resend_email_failure_title_msg" :error-messages="[login_form_resend_email_failure_content_msg]"></alert-msg-component> <alert-msg-component v-show="!isFailedResend" :error-title="login_form_activation_failure_title_msg" :error-messages="[login_form_activation_failure_content_msg]"></alert-msg-component> <!-- Register User--> <alert-msg-component v-show="register.creationError" :error-title="login_form_activation_failure_title_msg" :error-messages="preRegister? [login_form_create_error_msg_preRegister] : [login_form_create_error_msg]"></alert-msg-component> <alert-msg-component v-show="register.creationSuccess" :error-title="login_form_create_success_title" :error-messages="[login_form_create_success_msg]"></alert-msg-component> <!-- END Validation Message --> <div class="form__row form__row--medium"> <button-with-loader type="reset" button-id="resend--activation--button" class="button button--primary button--primary--dark button--full-width" @click="handleResendFromActivationFailure" :button-text="login_form_activation_resend_button" :loading="resendActivationButtonLoading"> </button-with-loader> </div> <div class="form__row form__row--slim"> <button @click="handleBackToLoginFromActivationFailure" type="reset" class="button button--secondary button--secondary--dark button--full-width"> {{login_form_activation_back_to_login_button}} </button> </div> </fieldset> </form> </li> <li class="login__frame login__frame--last"> <form role="form" method="post" class="form validation"> <fieldset> <!-- Register User--> <alert-msg-component v-show="register.creationError" :error-title="login_form_activation_failure_title_msg" :error-messages="preRegister ? [login_form_create_error_msg_preRegister] : [login_form_create_error_msg]"></alert-msg-component> <alert-msg-component v-if="register.creationSuccess" :message-type="'alert--success'" :icon-type="'icon-tick-outline-light'" :error-title="login_form_create_success_title" :error-messages="[register.created_success]"></alert-msg-component> <alert-msg-component v-if="register.creationSuccessWithPorfolio" :message-type="'alert--success'" :icon-type="'icon-tick-outline-light'" :error-title="login_form_create_success_title" :error-messages="[register.created_success_with_portfolio]"></alert-msg-component> <!-- END Validation Message --> <div class="form__row form__row--slim"> <button @click="handleContinueOnCreate" type="reset" class="button button--primary button--primary--dark button--full-width"> {{login_form_create_continue_button}} </button> </div> </fieldset> </form> </li> </ul> </div> </div> </div> </div> </div> </div> </div> <!-- MyVodafone change password page --> <div class="dialog" :class="{'dialog--display': dialogResetDisplayed}"> <div class="spring dialog__close-spring"> <a role="button" :aria-label="login_close_dialog_aria_label" class="dialog__close" @click="closeResetDialog" :class="{'hide': resetButtonHidden}"> <svg focusable="false" aria-hidden="true" class="icon icon--small dialog__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">{{login_close_dialog_span}}</span> </a> </div> <div class="dialog__content"> <h2 class="heading heading--light heading--2 heading--center">{{login_form_reset_title}}</h2> <div class="dialog__change-pass"> <div class="spring spring--sm"> <form role="form" class="form validation" :class="{'hide': formResetHidden}"> <fieldset> <label class="form__row form__row--leading"> <alert-msg-component v-show="equalLastThree" :error-messages="[login_form_reset_information_one_msg]"></alert-msg-component> <span class="form__label">{{login_form_reset_first_field}}</span> <alert-msg-component arrow="true" v-show="invalidNewPassword" :error-messages="[login_form_reset_error_validate_field_invalid_char_msg]"></alert-msg-component> <input type="password" id="change-pass-password" name="change-pass-password" v-model="user.newpassword" @focusOut="matchPassword" class="form__input"/> <password-strenght-component :on-invalid-new-password="onInvalidNewPasswordReset" :new-password="user.newpassword"></password-strenght-component> </label> <label class="form__row"> <span class="form__label">{{login_form_reset_second_field}}</span> <alert-msg-component arrow="true" v-show="invalidConfirmNewPassword" :error-messages="[login_form_reset_error_match_msg]"></alert-msg-component> <input type="password" id="change-pass-confirm" name="change-pass-confirm" v-model="user.newconfirmpassword" @focusOut="matchPassword" class="form__input"/> </label> <div class="form__row form__row--medium gutter--bottom"> <button-with-loader type="submit" button-id="reset--password--continue--button" class="button button--primary button--primary--dark button--full-width" @click="resetPasswordFromBackoffice ? resetPasswordBackOffice($event) : resetPassword($event)" :button-text="login_form_reset_continue_button" :loading="resetPasswordContinueButtonLoading" :disabled="!(this.user.newpassword && this.user.newpassword.length >= 8 && this.user.newconfirmpassword && this.user.newconfirmpassword.length >= 8)"> </button-with-loader> </div> </fieldset> </form> <fieldset :class="{'hide': errorResetHidden}"> <label class="form__row" for="login__name--reset"> <alert-msg-component :error-title="login_form_reset_error_validate_field_invalid_email_key_msg_title" :error-messages="[login_form_reset_error_validate_field_invalid_email_key_msg_one, login_form_reset_error_validate_field_invalid_email_key_msg_two]"></alert-msg-component> </label> <div class="form__row form__row--medium"> <button type="submit" class="button button--primary button--primary--dark button--full-width" @click="toRecoverLogin"> {{login_form_reset_error_validate_field_invalid_key_recover_button}} </button> </div> <div class="form__row form__row--slim"> <button class="button button--secondary button--secondary--dark button--full-width" @click="toLogin">{{login_form_reset_error_validate_field_invalid_key_to_login_button}} </button> </div> </fieldset> </div> </div> </div> </div> </div> <script id="alertMessagesCmp" type="text/x-template"> <div role="alert" class="alert" :class="[{ 'alert--arrow': arrow }, defaultAlertClass]"> <div class="caption"> <div :class="'caption__media caption__media--'+iconPosition+' alert__media'"> <svg :class="'icon icon--small icon--'+iconColor"> <use xmlns:xlink="http://www.w3.org/1999/xlink" v-bind="{'xlink:href':'#'+iconType}"></use> </svg> </div> <div :class="'caption__text caption__text--'+textPosition+' alert__text'"> <p v-if="!notUsingTitle" class="validation__details js-validation-details heading heading--5 heading--bold heading--no-gutter"> {{defaultErrorTitle}} </p> <slot></slot> <div v-if="!defaultSlot"> <ul class="js-validation-listing list list--reset validation__listing" > <li class="list__item" v-for="msg in defaultErrorMessages">{{msg}}</li> </ul> </div> </div> </div> </div> </script> <!-- Define Template --> <script id="passwordStrenghtCmp" type="text/x-template"> <div class="password-checker" v-bind:class="passwordChecker"> {{messages.login_form_reset_security_field}} <div class="password-checker__bars"> <div class="password-checker__bar password-checker__bar--l0"></div> <div class="password-checker__bar password-checker__bar--l1"></div> <div class="password-checker__bar password-checker__bar--l2"></div> <div class="password-checker__bar password-checker__bar--l3"></div> <div class="password-checker__bar password-checker__bar--l4"></div> </div> {{messages.login_form_reset_information_one_msg}} {{messages.login_form_reset_information_two_msg}} </div> </script> <!-- Define Template --> <script id="date-component-template" type="text/x-template"> <div class="form__row form__label"> <span class="form__label">{{dateLabels.title}}</span> <alert-msg-component :background="alertMessageColor" arrow="true" v-show="!isValidDate" :error-messages="[dateLabels.invalidDateMessage]"></alert-msg-component> <div class="grid grid--half-gutter"> <div class="grid__item grid__item--half-gutter grid__item--1/3"> <days-autocomplete v-model="daySelected" :orderBy="'id'" :options="days" :label="'value'" :max-height="'300px'" :placeholder="'Dia'"></days-autocomplete> </div> <div class="grid__item grid__item--half-gutter grid__item--1/3"> <months-autocomplete v-model="monthSelected" :orderBy="'id'" :options="months" :label="'value'" :max-height="'300px'" :placeholder="'Mês'"></months-autocomplete> </div> <div class="grid__item grid__item--half-gutter grid__item--1/3"> <years-autocomplete v-model="yearSelected" :orderBy="'id'" :options="years" :label="'value'" :max-height="'300px'" :placeholder="'Ano'"></years-autocomplete> </div> </div> <small v-if="smallMessage !== ''">{{smallMessage}}</small> </div> </script> <!-- Define Template --> <script id="days-autocomplete-template" type="text/x-template"> <div :dir="dir" class="v-dropdown v-select" :class="dropdownClasses"> <div ref="toggle" @mousedown.prevent="toggleDropdown" :class="['dropdown-toggle', 'clearfix']"> <slot v-for="option in valueAsArray" name="selected-option-container" :option="option" :deselect="deselect" :multiple="multiple" :disabled="disabled"> <span class="selected-tag" :key="option.index"> <slot name="selected-option" v-bind="option">{{getOptionLabel(option)}}</slot> <button v-if="multiple" :disabled="disabled" @click="deselect(option)" type="button" class="close" aria-label="Remove option"> <span aria-hidden="true">×</span> </button> </span> </slot> <input ref="search" v-model="search" @keydown.delete="maybeDeleteValue" @keyup.esc="onEscape" @keydown.up.prevent="typeAheadUp" @keydown.down.prevent="typeAheadDown" @keydown.enter.prevent="onSearchBlur" @blur="onSearchBlur" @focus="onSearchFocus" type="search" class="form-control" autocomplete="false" :disabled="disabled" :placeholder="searchPlaceholder" :tabindex="tabindex" :readonly="!searchable" :style="{ width: isValueEmpty ? '100%' : 'auto' }" :id="inputId" aria-label="Search for option"> <i v-if="!noDrop" ref="openIndicator" role="presentation" class="open-indicator"></i> <slot name="spinner"> <div class="spinner" v-show="mutableLoading">Loading...</div> </slot> </div> <transition :name="transition"> <ul ref="dropdownMenu" v-if="dropdownOpen" class="dropdown-menu" :style="{ 'max-height': maxHeight }"> <li v-for="(option, index) in filteredOptions" :key="index" :class="{ active: isOptionSelected(option), highlight: index === typeAheadPointer }" @mouseover="typeAheadPointer = index"> <a @mousedown.prevent="select(option)"> <slot name="option" v-bind="option"> {{ getOptionLabel(option) }} </slot> </a> </li> </ul> </transition> </div> </script> <!-- Define Template --> <script id="months-autocomplete-template" type="text/x-template"> <div :dir="dir" class="v-dropdown v-select" :class="dropdownClasses"> <div ref="toggle" @mousedown.prevent="toggleDropdown" :class="['dropdown-toggle', 'clearfix']"> <slot v-for="option in valueAsArray" name="selected-option-container" :option="option" :deselect="deselect" :multiple="multiple" :disabled="disabled"> <span class="selected-tag" :key="option.index"> <slot name="selected-option" v-bind="option">{{getOptionLabel(option)}}</slot> <button v-if="multiple" :disabled="disabled" @click="deselect(option)" type="button" class="close" aria-label="Remove option"> <span aria-hidden="true">×</span> </button> </span> </slot> <input ref="search" v-model="search" @keydown.delete="maybeDeleteValue" @keyup.esc="onEscape" @keydown.up.prevent="typeAheadUp" @keydown.down.prevent="typeAheadDown" @keydown.enter.prevent="onSearchBlur" @blur="onSearchBlur" @focus="onSearchFocus" type="search" class="form-control" autocomplete="false" :disabled="disabled" :placeholder="searchPlaceholder" :tabindex="tabindex" :readonly="!searchable" :style="{ width: isValueEmpty ? '100%' : 'auto' }" :id="inputId" aria-label="Search for option"> <i v-if="!noDrop" ref="openIndicator" role="presentation" class="open-indicator"></i> <slot name="spinner"> <div class="spinner" v-show="mutableLoading">Loading...</div> </slot> </div> <transition :name="transition"> <ul ref="dropdownMenu" v-if="dropdownOpen" class="dropdown-menu" :style="{ 'max-height': maxHeight }"> <li v-for="(option, index) in filteredOptions" :key="index" :class="{ active: isOptionSelected(option), highlight: index === typeAheadPointer }" @mouseover="typeAheadPointer = index"> <a @mousedown.prevent="select(option)"> <slot name="option" v-bind="option"> {{ getOptionLabel(option) }} </slot> </a> </li> </ul> </transition> </div> </script> <!-- Define Template --> <script id="years-autocomplete-template" type="text/x-template"> <div :dir="dir" class="v-dropdown v-select" :class="dropdownClasses"> <div ref="toggle" @mousedown.prevent="toggleDropdown" :class="['dropdown-toggle', 'clearfix']"> <slot v-for="option in valueAsArray" name="selected-option-container" :option="option" :deselect="deselect" :multiple="multiple" :disabled="disabled"> <span class="selected-tag" :key="option.index"> <slot name="selected-option" v-bind="option">{{getOptionLabel(option)}}</slot> <button v-if="multiple" :disabled="disabled" @click="deselect(option)" type="button" class="close" aria-label="Remove option"> <span aria-hidden="true">×</span> </button> </span> </slot> <input ref="search" v-model="search" @keydown.delete="maybeDeleteValue" @keyup.esc="onEscape" @keydown.up.prevent="typeAheadUp" @keydown.down.prevent="typeAheadDown" @keydown.enter.prevent="onSearchBlur" @blur="onSearchBlur" @focus="onSearchFocus" type="search" class="form-control" autocomplete="false" :disabled="disabled" :placeholder="searchPlaceholder" :tabindex="tabindex" :readonly="!searchable" :style="{ width: isValueEmpty ? '100%' : 'auto' }" :id="inputId" aria-label="Search for option"> <i v-if="!noDrop" ref="openIndicator" role="presentation" class="open-indicator"></i> <slot name="spinner"> <div class="spinner" v-show="mutableLoading">Loading...</div> </slot> </div> <transition :name="transition"> <ul ref="dropdownMenu" v-if="dropdownOpen" class="dropdown-menu" :style="{ 'max-height': maxHeight }"> <li v-for="(option, index) in filteredOptions" :key="index" :class="{ active: isOptionSelected(option), highlight: index === typeAheadPointer }" @mouseover="typeAheadPointer = index"> <a @mousedown.prevent="select(option)"> <slot name="option" v-bind="option"> {{ getOptionLabel(option) }} </slot> </a> </li> </ul> </transition> </div> </script> <script id="buttonWithLoaderCmp" type="text/x-template"> <button v-if="e2eVbu" :id="innerButtonId" class="button" type="button" @click="$emit('click', $event)" :class="[{'button--loading': loading},{'button-disabled': disabled}, classes]" :disabled="disabled"> <span :class="{'no-visible': loading}">{{ buttonText }}</span> <slot></slot> </button> <button v-else :id="innerButtonId" class="button" type="button" @click="$emit('click', $event)" :class="[{'button--loading': loading},{'button--disabled': disabled}, classes]" :disabled="disabled"> <span :class="{'no-visible': loading}">{{ buttonText }}</span> <slot></slot> </button> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_buttonWithLoader/clientlibs.min.js"></script> <div id="choose-basket" class="dialog" xmlns:v-on="http://www.w3.org/1999/xhtml"> <div class="dialog__close dialog__content" v-if="visible" v-cloak> <div class="dialog dialog--flexible-transparency dialog--fadeIn"> <div class="spring dialog--position"> <div class="section section--white card--border"> <div class="spring dialog__close-spring"> <div v-on:click="closeDialog" class="js-tooltip-close tooltip--pop-up dialog__close cart-persistency__close"> <svg class="icon icon--small dialog__icon"> <use xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">{{i18n.closeDialog}}</span> </div> </div> <div class="card__content"> <div class="network__content"> <h2 class="heading heading--2 align--center gutter--top"> <b>{{i18n.youHaveTwoCarts}}</b> </h2> <h3 class="heading heading--3 align--center gutter--top"> {{i18n.chooseOne}} </h3> <div class="spring cart-persistency__content"> <div class="grid"> <div class="grid__item grid__item--1/2 grid__item--sm-1/1 grid__item--gutter half-gutter--bottom" v-for="(basket, index) in data"> <div class="align--center"> <div class="cart-persistency section--wild-sand"> <div v-for="item in basket.cartItems"> <!-- PACK --> <div class="grid half-gutter--top" v-if="isPackItem(item)"> <div class="grid__item grid__item--1/1 align--left"> <span class="font-color--dusty-gray half-gutter--right">{{item.quantity}}{{CONSTANTS.TIMES}}</span> <span class="display--inline-block choose-basket-prod-name" v-html="item.eshopProductDTO.name ? item.eshopProductDTO.name : item.eshopProductDTO.title"></span> </div> <div v-for="product in item.eshopProductDTO.variants[0].packProducts"> <div class="grid__item grid__item--1/1 align--left"> <span class="cart-persistency__item--pack">{{product.name}}</span> </div> <div class="grid__item grid__item--4/7 align--left"> <span class="cart-persistency__item--characteristics" v-if="product.color">{{i18n.color}} {{CONSTANTS.SPACE}} {{product.color}}</span><br/> <span class="cart-persistency__item--characteristics" v-if="product.storage">{{i18n.storage}} {{CONSTANTS.SPACE}} {{product.storage}}</span> </div> <div class="grid__item grid__item--3/7 align--right"> <span class="cart-persistency__item--points">{{i18n.included}}</span> </div> </div> <div class="grid__item grid__item--1/1 align--right" v-if="isCVItem(item)"> <span class="cart-persistency__item--price">{{formatPrice(getItemEURValue(item))}}</span> {{CONSTANTS.SPACE}} {{CONSTANTS.PLUS}} {{CONSTANTS.SPACE}} {{getItemPOINTSValue(item)}} {{CONSTANTS.SPACE}} <span class="cart-persistency__item--points">{{CONSTANTS.SPACE}}{{i18n.points}}</span> </div> <div class="grid__item grid__item--1/1 align--right" v-else> <span class="cart-persistency__item--price">{{checkIfFreePrice(getItemEURValue(item),item.eshopProductDTO.variants[0].packProducts[0].productType)}}</span> </div> </div> <!-- ITEM --> <div class="grid half-gutter--top" v-else> <div class="grid__item grid__item--1/1 align--left"> <span class="font-color--dusty-gray half-gutter--right">{{item.quantity}}{{CONSTANTS.TIMES}}</span> <span class="display--inline-block choose-basket-prod-name" v-html="item.eshopProductDTO.name ? item.eshopProductDTO.name : item.eshopProductDTO.title"></span> </div> <div class="grid__item grid__item--3/7 align--left"> <span class="cart-persistency__item--characteristics" v-if="item.eshopProductDTO.variants[0].color"> {{i18n.color}} {{CONSTANTS.SPACE}} {{item.eshopProductDTO.variants[0].color}} </span><br/> <span class="cart-persistency__item--characteristics" v-if="item.eshopProductDTO.variants[0].storage"> {{i18n.storage}} {{CONSTANTS.SPACE}} {{item.eshopProductDTO.variants[0].storage}} </span> </div> <div class="grid__item grid__item--4/7 align--right" v-if="isCVItem(item)"> <span class="cart-persistency__item--price">{{formatPrice(getItemEURValue(item))}}</span> {{CONSTANTS.SPACE}} {{CONSTANTS.PLUS}} {{CONSTANTS.SPACE}} {{getItemPOINTSValue(item)}} {{CONSTANTS.SPACE}} <span class="cart-persistency__item--points">{{CONSTANTS.SPACE}}{{i18n.points}}</span> </div> <div class="grid__item grid__item--4/7 align--right" v-else> <span class="cart-persistency__item--price">{{checkIfFreePrice(getItemEURValue(item),item.eshopProductDTO.productType)}}</span> </div> </div> </div> <div class="grid gutter--top"> <button-with-loader :button-id="'chooseBtn'+index" class="button button--primary" @click="selectBasket(basket.id)" :button-text="i18n.selectCart" :loading="basket.isLoading"> </button-with-loader> </div> </div> </div> </div> </div> </div> <div class="spring align--center half-gutter--top cart-persistency__item--characteristics"> {{i18n.afterSelectionDesc}} </div> </div> </div> </div> </div> </div> </div> </div> <script id="buttonWithLoaderCmp" type="text/x-template"> <button v-if="e2eVbu" :id="innerButtonId" class="button" type="button" @click="$emit('click', $event)" :class="[{'button--loading': loading},{'button-disabled': disabled}, classes]" :disabled="disabled"> <span :class="{'no-visible': loading}">{{ buttonText }}</span> <slot></slot> </button> <button v-else :id="innerButtonId" class="button" type="button" @click="$emit('click', $event)" :class="[{'button--loading': loading},{'button--disabled': disabled}, classes]" :disabled="disabled"> <span :class="{'no-visible': loading}">{{ buttonText }}</span> <slot></slot> </button> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_chooseBasket/clientlibs.min.js"></script> </div> </ul> </nav> </div> </div> </nav> </div> <template id="navigationMenu"> <div> <div class="display--flex hide--sm hide--md position--relative" v-cloak> <template v-for="(first, i) in array"> <li class="menu-navigation__item--conditions align"> <div :class="{'menu-navigation__item--section' : first.beginNewSection}"></div> <a class="menu-navigation__link first-level" :class="{'menu-navigation__link--active': active.desktop.first === i}" aria-haspopup="true" :onclick="first.paramOnClick ? first.paramOnClick : null" @click="first.secondLevel ? openSecondLevel(i, first.text) : headerTealiumRequest(openSecondLevelActionId, first.text)" :href="first.linkTo && !first.secondLevel ? first.linkTo : null" :target="first.target && !first.secondLevel ? first.target : null" :title="first.title"> {{first.text}} <span class="visually-hidden">{{first.text}}</span> </a> </li> </template> <transition name="slide-fade"> <div v-if="active.desktop.first > -1" class="menu-navigation__level--second" :data-level="active.desktop.second != -1 ? 'menu-tertiary' : ''"> <template v-for="(first, i) in array"> <template v-if="active.desktop.first === i"> <ul class="menu-navigation__list menu-navigation__scrollable menu-navigation__container" role="navigation" v-if="first.secondLevel"> <li> <template v-for="(second, j) in first.secondLevel"> <a class="menu-navigation__level--second-content" v-if="validRule(second)" :onclick="performSecondOnClick(second)" @click="onAnchorClickHandler(second, 'linkTo', () => { second.thirdLevel ? openThirdLevel(j, second.text) : headerTealiumRequest(openThirdLevelActionId, second.text); },!second.thirdLevel)" :title="second.title"> <span class="menu-navigation__link" :class="{'menu-navigation__link--active': active.desktop.second === j}">{{second.text}}</span> <span class="visually-hidden">{{second.text}}</span> <svg v-if="second.thirdLevel && second.linkTo || second.rule" focusable="false" aria-hidden="true" class="icon icon--extra-small icon--mine-shaft"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"> </use> </svg> </a> </template> </li> </ul> <transition name="slide-fade"> <div v-if="active.desktop.second > -1" class="menu-navigation__level--third menu-navigation__scrollable menu-navigation__scrollable--third menu-navigation__level--third-active"> <nav v-for="(second, j) in first.secondLevel"> <ul class="list--reset" v-if="second.thirdLevel && active.desktop.second === j"> <li class="half-gutter--bottom" v-if="second.TextForLinkOnThirdLevel"> <a :onclick="second.paramOnClick ? second.paramOnClick : null" @click="onAnchorClickHandler(second, 'linkTo', () => { headerTealiumRequest(thirdLevelActionId, second.TextForLinkOnThirdLevel); })" :title="second.title" class="font-color--red">{{second.TextForLinkOnThirdLevel}}</a> </li> <li v-for="(third, k) in second.thirdLevel" :class="{'flush--top flush--bottom': third.backgroundImagePath, 'border--bottom-silver': !third.backgroundImagePath && (k === second.thirdLevel.length - 1 || (second.thirdLevel.length > k+1 && !second.thirdLevel[k+1].backgroundImagePath))}"> <a :onclick="third.paramOnClick ? third.paramOnClick : null" @click="onAnchorClickHandler(third, 'linkTo', () => { this.headerTealiumRequest(openThirdLevelActionId, !third.backgroundImagePath ? third.text : `\:Highlight`); })" :title="third.title"> <template v-if="!third.backgroundImagePath"> <span v-html="third.text"></span> </template> <template v-else> <div class="hero menu-navigation__level--third-image"> <div class="background background--cover hero__background hero__background--no-tint"> <picture> <source :data-srcset="third.backgroundImagePath" :srcset="third.backgroundImagePath"/> <img :data-srcset="third.backgroundImagePath" alt="Image description" :srcset="third.backgroundImagePath" :src="third.backgroundImagePath" class="lazyloaded"/> </picture> <noscript> <img :src="third.backgroundImagePath" alt=""/> </noscript> </div> <div class="hero__band"> <h6 class="heading heading--6 heading--light hero__heading align--left gutter--left" v-html="third.text"> </h6> </div> </div> </template> </a> </li> </ul> </nav> </div> </transition> <a class="menu-navigation__level--second-closed" @click="closeAll()"> <svg focusable="false" aria-hidden="true" class="icon icon--white icon--extra-small icon--thick"> <use xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">Close Menu</span> </a> </template> </template> <div class="menu-navigation__overlay" @click="closeAll()"></div> </div> </transition> </div> <li data-layout-type="mobile-menu" class="no-gutter--left menu-navigation__item hide--lg"> <a class="menu-navigation__link menu-navigation__link--nav" :class="{'menu-navigation__link--active': active.mobile.zero === 1}" @click="openHamburger()" aria-haspopup="true"> <svg focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-menu"></use> </svg> <small class="half-gutter--left align--middle">Menu</small> </a> <div class="mobile-menu" v-show="active.mobile.zero != -1"> <div class="menu-navigation__level--second" :class="{'menu-navigation__level--second-close': active.mobile.zero === 0}"> <nav> <ul class="menu-navigation__scrollable"> <div v-if="zeroLevelArrayActive" class="business-tabs__menu"> <li v-for="sub in zeroLevelArrayActive"> <a :onclick="sub.paramOnClick ? sub.paramOnClick : null" @click="onAnchorClickHandler(sub, 'linkURL', () => { toggleSubEntry(sub); headerLevelZeroTealiumRequest(upperLevelMenuActionId, sub.text); })" :class="selectedJson === sub.context ? 'business-tabs__menu active' : null"> {{sub.text}} </a> </li> </div> <template v-for="(first, i) in array"> <li class="menu-navigation__item"> <a class="menu-navigation__link" :onclick="first.paramOnClick ? first.paramOnClick : null" @click="onAnchorClickHandler(first, 'linkTo', () => { first.secondLevel ? openSecondLevelMobile(i, first.text) : headerTealiumRequest(openSecondLevelActionId, first.text) }, !first.secondLevel)" :title="first.title" :class="{'menu-navigation__link--subnav': first.linkTo}" aria-expanded="false" aria-selected="false" tabindex="0" role="tab" aria-haspopup="false">{{first.text}} <span class="visually-hidden">{{first.text}}</span> <svg v-if="first.secondLevel && first.linkTo" focusable="false" aria-hidden="true" class="icon icon--extra-small icon--red icon--thick float--right"> <use xlink:href="#icon-chevron-right"></use> </svg> </a> <section v-if="first.secondLevel" class="menu-navigation__level--third" :class="{'menu-navigation__level--third-active': active.mobile.first === i}"> <nav> <ul class="menu-navigation__scrollable"> <li> <a @click="returnTo(1)"> <svg focusable="false" aria-hidden="true" class="icon icon--small icon--thick"> <use xlink:href="#icon-arrow-left"></use> </svg> <span class="half-gutter--left align--middle">{{first.text}}</span> </a> </li> <template v-for="(second, j) in first.secondLevel"> <li v-if="validRule(second)"> <a :onclick="performSecondOnClick(second)" @click="onAnchorClickHandler(second, 'linkTo', () => { second.thirdLevel ? openThirdLevelMobile(j, second.text) : headerTealiumRequest(openThirdLevelActionId, second.text) }, !second.thirdLevel)" :title="second.title"> {{second.text}} <svg v-if="second.thirdLevel && second.linkTo || second.rule" focusable="false" aria-hidden="true" class="icon icon--extra-small icon--red icon--thick float--right"> <use xlink:href="#icon-chevron-right"></use> </svg> </a> <section v-if="second.thirdLevel && active.mobile.second === j" class="menu-navigation__level--fourth menu-navigation__level--fourth-active"> <nav> <ul class="list--reset"> <li> <a @click="returnTo(2)"> <svg focusable="false" aria-hidden="true" class="icon icon--small icon--thick"> <use xlink:href="#icon-arrow-left"></use> </svg> <span class="half-gutter--left align--middle">{{second.text}}</span> </a> </li> <li v-if="second.TextForLinkOnThirdLevel"> <a :onclick="second.paramOnClick ? second.paramOnClick : null" @click="onAnchorClickHandler(second, 'linkTo', () => { headerTealiumRequest(thirdLevelActionId, second.TextForLinkOnThirdLevel) })" :title="second.title" class="font-color--red">{{second.TextForLinkOnThirdLevel}}</a> </li> <li v-for="(third, k) in second.thirdLevel" :class="{'flush--top flush--bottom': third.backgroundImagePath, 'border--bottom-silver': !third.backgroundImagePath && (k === second.thirdLevel.length - 1 || (second.thirdLevel.length > k+1 && !second.thirdLevel[k+1].backgroundImagePath))}"> <a :onclick="third.paramOnClick ? third.paramOnClick : null" @click="onAnchorClickHandler(third, 'linkTo', () => { headerTealiumRequest(thirdLevelActionId, third.text) })" :title="third.title"> <template v-if="!third.backgroundImagePath"> <span v-html="third.text"></span> </template> <template v-else> <div class="hero menu-navigation__level--fourth-image"> <div class="background background--cover hero__background hero__background--no-tint"> <picture> <source v-if="third.backgroundImagePath" :data-srcset="third.backgroundImagePath" :srcset="third.backgroundImagePath" media="(min-width: 970px)"/> <source v-if="third.backgroundImagePathTablet" :data-srcset="third.backgroundImagePathTablet" :srcset="third.backgroundImagePathTablet" media="(min-width: 640px)"/> <source v-if="third.backgroundImagePathMobile" :data-srcset="third.backgroundImagePathMobile" :srcset="third.backgroundImagePathMobile"/> <img :data-srcset="third.backgroundImagePath" alt="Image description" :src="third.backgroundImagePath" class="lazyloaded width--100"/> </picture> <noscript> <img :src="third.backgroundImagePath" alt=""/> </noscript> </div> <div class="hero__band"> <h6 class="heading heading--6 heading--light hero__heading align--left gutter--left" v-html="third.text"> </h6> </div> </div> </template> </a> </li> </ul> </nav> </section> </li> </template> </ul> </nav> </section> </li> </template> <template v-for="(zero, z) in zeroLevelArrayInactive"> <li class="menu-navigation__global--options" :class="{'gutter--top': z === 0, 'border--bottom-silver': z === zeroLevelArrayInactive.length - 1}"> <a :onclick="zero.paramOnClick ? zero.paramOnClick : null" @click="onAnchorClickHandler(zero, 'linkURL', () => { headerLevelZeroTealiumRequest(upperLevelMenuActionId, zero.text) })"> Ir para {{zero.text}} </a> </li> </template> <li class="half-gutter--top"> <div> <svg viewBox="0 0 192 192" class="icon icon--small icon--sub menu-navigation__global--icon"> <line id="afa0dea2-fdb5-4188-b127-0390bcfc2413" fill="none" stroke="#333333" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="124" y1="84" x2="92" y2="84"></line> <line id="fca2dd7d-8243-463f-9694-d76870f6b696" fill="none" stroke="#333333" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="76" y1="84" x2="68" y2="84"></line> <line id="c0f6faeb-1130-48f3-b62a-bcd83c3abeaf" fill="none" stroke="#333333" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="124" y1="108" x2="92" y2="108"></line> <line id="_x39_f9d3ac1-3527-469f-b7cc-d7b4a8af09e5" fill="none" stroke="#333333" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="76" y1="108" x2="68" y2="108"></line> <line id="_x30_e845ff5-6eb9-4522-9631-9073c7db3199" fill="none" stroke="#333333" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="124" y1="132" x2="92" y2="132"></line> <line id="_x39_0b7f6c8-8095-43f3-848c-53ffec273712" fill="none" stroke="#333333" stroke-width="8" stroke-linecap="round" stroke-miterlimit="10" x1="76" y1="132" x2="68" y2="132"></line> <path fill="none" stroke="#333333" stroke-width="8" stroke-linejoin="round" d="M148,52l-32-32H56c-6.627,0-12,5.373-12,12v128 c0,6.627,5.373,12,12,12h80c6.627,0,12-5.373,12-12V52z"> </path> <polyline fill="none" stroke="#333333" stroke-width="8" stroke-linejoin="round" points="116,20.23 116,52 148,52 "></polyline> </svg> <a class="menu-navigation__global--sub" :onclick="secondEntryObject.paramOnClick ? secondEntryObject.paramOnClick : null" @click="onAnchorClickHandler(secondEntryObject, 'linkURL', () => { headerLevelZeroTealiumRequest(rightSideMenuActionId, secondEntryObject.text) })" role="button" :aria-label="secondEntryObject.text"> {{secondEntryObject.text}} </a> </div> </li> </ul> </nav> <a @click="closeAllMobile()" class="menu-navigation__level--second-closed"> <svg focusable="false" aria-hidden="true" class="icon icon--white icon--extra-small icon--thick"> <use xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">Close Menu</span> </a> <div class="menu-navigation__overlay" @click="closeAllMobile()"></div> </div> </div> </li> </div> </template> <script src="/etc.clientlibs/digital-commons/components/content/structure/ws10/vf_navigation/vf_headerMenu/clientlibs.min.js"></script> <script src="/etc.clientlibs/digital-commons/components/content/structure/ws10/vf_navigation/clientlibs.min.js"></script> </div> </div> </div></div> </div> <div class="responsivegrid aem-GridColumn--default--none aem-GridColumn aem-GridColumn--default--12 aem-GridColumn--offset--default--0"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_experienceFragment aem-GridColumn aem-GridColumn--default--12"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_dataBindingOverlay aem-GridColumn aem-GridColumn--default--12"> <script>bindingOverlay={};bindingOverlay.titleOnline="Online";bindingOverlay.turnOffE2E="";bindingOverlay.buttonTitle="Aderir";bindingOverlay.buttonStyles="class";bindingOverlay.titleC2C="Por telefone";bindingOverlay.display="default";bindingOverlay.buttonStyleClass="button--primary";bindingOverlay.buttonColorPicker="#e60000";bindingOverlay.buttonTextColorPicker="rgb(255,255,255)";bindingOverlay.pathURL="/content/digital-sites/pt/particulares/pedido-adesao.html";bindingOverlay.pathURLE2ERed="/content/digital-sites/pt/particulares/telemoveis/tarifarios/red/aderir.html";bindingOverlay.turnOffC2C="";bindingOverlayId="overlay-binding";</script> <div id="bindingOverlay" @click.self="closeDialog" class="js-dialog dialog js-dialog-display dialog--flexible-transparency" :class="{ 'dialog--fadeIn': dialogDataBinding }"> <input type="hidden" ref="listOnline" data-options="{"svgInlineOnline":"<svg viewBox=\"0 0 192 192\"><polyline points=\"169.95 33.95 88 120 50 82\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><path d=\"M166,66.1v87.55A12.35,12.35,0,0,1,153.65,166H38.35A12.35,12.35,0,0,1,26,153.65V38.35A12.35,12.35,0,0,1,38.35,26H149.87\" transform=\"translate(0 0)\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path></svg>","onlineLabels":"Simples e rápido"},{"svgInlineOnline":"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 192 192\"><defs><symbol id=\"1cf0b788-6cbc-4b64-b37e-ae9d414a68d2\" data-name=\"24_7_support_ic_mid\" viewBox=\"0 0 192 192\"><path d=\"M124.78,164.08a75.19,75.19,0,1,1,24.67-17.3l-.39.44A39,39,0,0,0,170,174c-16.56,1.41-34,1.51-45.22-9.92Z\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path><g id=\"1e34744a-3749-409c-a85d-21993cb9a70f\" data-name=\"ICON\"><line x1=\"87.6\" y1=\"80\" x2=\"87.6\" y2=\"112\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></line><polyline points=\"92.78 103.04 70.78 103.04 87.6 80\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><polyline points=\"124.78 80 142.78 80 128.78 112\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><line x1=\"98.03\" y1=\"112\" x2=\"117.53\" y2=\"77\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></line><path d=\"M47.22,86c2.5-4,11.92-7.95,16-2,8,11.67-15.28,11.59-15.28,28H65.28\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path></g></symbol></defs><g id=\"b2aad964-bdbc-46c7-8506-8476d2b9a258\" data-name=\"ICON\"><use id=\"ec186812-5566-47c5-8aa2-62f604cbeae9\" data-name=\"24_7_support_ic_mid\" width=\"192\" height=\"192\" transform=\"translate(0 0)\" xlink:href=\"#1cf0b788-6cbc-4b64-b37e-ae9d414a68d2\"></use></g></svg>","onlineLabels":"Disponível 24 horas"}"/> <input type="hidden" ref="listC2C" data-options="{"svgInlineC2C":"<svg viewBox=\"0 0 32 32\" fill=\"none\"><path d=\"M6.46243 5H9.86761C10.5701 5 11.2212 5.3686 11.5826 5.97101L13.1966 8.66098C13.6688 9.44793 13.5447 10.4552 12.8958 11.1042L10.5621 13.4379C10.233 13.767 10.1747 14.2784 10.4337 14.6651C11.1475 15.7309 12.6279 17.821 14 19C15.2583 20.0812 17.3372 21.1794 18.373 21.6959C18.7484 21.8831 19.1972 21.8028 19.4938 21.5062L21.126 19.874C21.6616 19.3384 22.454 19.1513 23.1726 19.3909L26.6324 20.5442C27.4491 20.8164 28 21.5807 28 22.4415V25.6459C28 26.4637 27.4972 27.1932 26.6958 27.3561C24.1503 27.8734 18.14 28.2611 11 23C3.57949 17.5323 4.09062 9.62402 4.66994 6.42387C4.82509 5.56684 5.59147 5 6.46243 5Z\" stroke=\"#14142B\" stroke-width=\"1.5\"></path></svg>","labelsC2C":"Ligamos-lhe grátis"},{"svgInlineC2C":"<svg viewBox=\"0 0 24 24\"><path style=\"fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:4;\" d=\"M 122 122.25 L 96 96.25 L 96 44.25 \" transform=\"matrix(0.125,0,0,0.125,0,0)\"></path><path style=\"fill:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:4;\" d=\"M 172 96 C 172 137.96875 137.96875 172 96 172 C 54.03125 172 20 137.96875 20 96 C 20 54.03125 54.03125 20 96 20 L 172 20 Z M 172 96 \" transform=\"matrix(0.125,0,0,0.125,0,0)\"></path></svg>","labelsC2C":"Dias úteis das 9h às 23h<br><small>Fim de semana e feriados das 10h às 22h</small>"}"/> <input type="hidden" ref="listE2E" data-options="{"cardIdE2E":"internet-movel-clientes-vodafone"},{"cardIdE2E":"internet-movel-novos-clientes"},{"cardIdE2E":"voz-fixa-1"},{"cardIdE2E":"voz-fixa-2"},{"cardIdE2E":"voz-fixa-3"},{"cardIdE2E":"2018-internet-movel"},{"cardIdE2E":"pacotes-c2c"},{"cardIdE2E":"c2c-plano-saude"},{"cardIdE2E":"oferta-movel-flash"},{"cardIdE2E":"btn-upgrade"},{"cardIdE2E":"btn-num-moveis"},{"cardIdE2E":"fttr2"},{"cardIdE2E":"fttr3"},{"cardIdE2E":"fttr4"},{"cardIdE2E":"tv-net"},{"cardIdE2E":"red-col-2"},{"cardIdE2E":"fibra-4-light-family-protocolos"},{"cardIdE2E":"fibra-4-light-protocolos"},{"cardIdE2E":"fibra-3-light-protocolos"},{"cardIdE2E":"fibra-3-plus-c2c"},{"cardIdE2E":"fibra-3-light-c2c"},{"cardIdE2E":"fibra-4-light-family-c2c"},{"cardIdE2E":"fibra-3-plus-protocolos"},{"cardIdE2E":"fibra-4-play-infinity-protocolos"},{"cardIdE2E":"red-acores"},{"cardIdE2E":"red-acores-1"},{"cardIdE2E":"red-madeira"},{"cardIdE2E":"red-madeira-1"},{"cardIdE2E":"red-acores-btl"},{"cardIdE2E":"red-madeira-btl"},{"cardIdE2E":"red-madeira-btl1"},{"cardIdE2E":"canais-premium"},{"cardIdE2E":"fibra-4-light"},{"cardIdE2E":"fibra-4-play"},{"cardIdE2E":"fibra-4-light-family"},{"cardIdE2E":"fibra-4-plus-family"},{"cardIdE2E":"fibra-4-play-family"},{"cardIdE2E":"fibra-4-gold-family"},{"cardIdE2E":"red-infinity-giga-btl2"},{"cardIdE2E":"fibra4-plus-desporto"},{"cardIdE2E":"fibra4-light-family-desporto"},{"cardIdE2E":"oferta-ott"},{"cardIdE2E":"oferta-nr-moveis"},{"cardIdE2E":"oferta"},{"cardIdE2E":"fibra-4-light-promo"},{"cardIdE2E":"fibra-4-plus-promo"},{"cardIdE2E":"fttr-oferta"}"/> <input type="hidden" ref="listTurnedOffC2C"/> <div class="dialog__content" @click.self="closeDialog"> <div class="section section__gutter no-gutter--sm-all"> <div class="spring"> </div> </div> <div class="container grid spring" :class="redimension"> <div class="dialog__close-spring form__row--large" @click.self="closeDialog"> <a v-on:click="closeDialog" role="button" aria-label="Close Dialog" class="dialog__close"> <svg focusable="false" aria-hidden="true" class="icon icon--small dialog__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">Close Binding Overlay</span> </a> </div> <div v-if="onlyE2E" class="onlyE2E overlay-binding__header grid__item grid__item--1/1 grid__item--align-center" style="background-color: ;"> <h5 class="heading heading--5 heading--center heading--regular heading--leading overlay-binding__options-heading" style="color : #FFF;"> Adira já e garanta a melhor oferta. </h5> <span style="color : ;"> </span> </div> <div v-else-if="onlyC2C" class="onlyC2C overlay-binding__header grid__item grid__item--1/1 grid__item--align-center" style="background-color: ;"> <h5 class="heading heading--5 heading--center heading--regular heading--leading overlay-binding__options-heading" style="color : #FFF;"> Conheça as ofertas que temos para si. </h5> <span style="color : ;"> </span> </div> <div v-else class="overlay-binding__header grid__item grid__item--1/1 grid__item--align-center" style="background-color: ;"> <h5 class="heading heading--5 heading--center heading--regular heading--leading overlay-binding__options-heading" style="color : #fff;"> Conheça as ofertas que temos para si. Adira já! </h5> <span style="color : ;"> </span> </div> <div class="overlay-binding__options-container grid grid__item--1/1"> <div class="overlay-binding__options overlay-binding__options-colorE2E grid__item grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1 grid__item--align-center" style="background-color : #ebebeb;" v-if="!turnOffE2E && defaultDisplay && cardIdDisplayE2E"> <h4 class="heading heading--4 heading--center heading--bold heading--leading overlay-binding__options-heading" style="color : ;"> {{ onlineTitle }} </h4> <ul class="list list--reset align--left"> <li class="heading heading--6 heading--no-gutter" v-for="item in onlineSvgList"> <div class="icon icon--small icon--bottom"> <span v-html="item.svgInlineOnline"></span> </div> <span style="color : rgb(0,0,0);" v-html="item.onlineLabels"></span> </li> </ul> <a class="button button--full-width overlay-binding__options-button" :style="buttonStyleColor" :class="buttonStyleClass" :href="pathURL" target="_self" @click="saveResults" @click.right="saveResults" @click.middle="saveResults">{{ buttonTitle }}</a> </div> <div class="overlay-binding__options grid__item grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1 grid__item--align-center" style="background-color : ;" v-if="!turnOffC2C && cardIdDisplayC2C"> <h3 class="heading heading--4 heading--center heading--bold heading--leading overlay-binding__options-heading" style="color : ;">{{ c2cTitle }} </h3> <ul class="list list--reset align--left"> <li class="heading heading--6 heading--no-gutter" v-for="item in c2cSvgList"> <div class="icon icon--small icon--bottom"> <span v-html="item.svgInlineC2C"></span> </div> <span style="color : ;" v-html="item.labelsC2C"></span> </li> </ul> <div id="bySideId"> </div> </div> <div class="overlay-binding__options overlay-binding__options-colorE2E grid__item grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1 grid__item--align-center" style="background-color : #ebebeb;" v-if="!turnOffE2E && !defaultDisplay && cardIdDisplayE2E"> <h4 class="heading heading--4 heading--center heading--bold heading--leading overlay-binding__options-heading" style="color : ;"> {{ onlineTitle }} </h4> <ul class="list list--reset align--left"> <li class="heading heading--6 heading--no-gutter" v-for="item in onlineSvgList"> <div class="icon icon--small icon--bottom"> <span v-html="item.svgInlineOnline"></span> </div> <span style="color : rgb(0,0,0);" v-html="item.onlineLabels"></span> </li> </ul> <a class="button button--full-width overlay-binding__options-button" :style="buttonStyleColor" :class="buttonStyleClass" :href="pathURL" target="_self">{{ buttonTitle }}</a> </div> </div> </div> </div> </div> <script src="/etc.clientlibs/digital-commons/components/content/authored/vf_dataBindingOverlay/clientlibs.min.js"></script> </div> </div> </div></div> </div> <div class="vf_flexibleOverlay aem-GridColumn aem-GridColumn--default--12"> <script>flexOverlay={};flexOverlayID="natal22";flexOverlay.mainSelect="color";flexOverlay.pallet="dialog--mine-shaft";flexOverlay.colorPicker="rgba(0,0,0,0.75)";flexOverlay.mainSelectFrame="color";flexOverlay.springFrame="";flexOverlay.framePallet="section--white";flexOverlay.frameColorPicker="rgba(0,0,0,0)";flexOverlay.frameBorderRadius={};flexOverlay.frameBorderRadius.topLeft="0";flexOverlay.frameBorderRadius.topRight="0";flexOverlay.frameBorderRadius.bottomLeft="0";flexOverlay.frameBorderRadius.bottomRight="0";</script> <div id="flexibleOverlay-natal22" @click.self="closeOverlay" class="dialog--flexible" :style="overlayStyle" :class="{'dialog--fadeIn': overlayIsOpen}"> <div class="dialog__content" @click.self="closeOverlay"> <div class="section section__gutter hide--sm"> <div class="spring"> <div class="xfpage page"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "></div> </div> </div> </div> <div id="frame-natal22" @click.self="closeOverlay" class="section section__gutter dialog--pad"> <div :class="flexOverlay.springFrame" @click.self="closeOverlay"> <div class="dialog__close-spring" @click.self="closeOverlay"> <a v-on:click="closeOverlay" role="button" aria-label="Close Dialog" class="dialog__close"> <svg focusable="false" aria-hidden="true" class="icon icon--small dialog__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">Close dialog</span> </a> </div> <div id="section-card-natal22" class="section section--card" :style="frameStyle"> <div v-if="'video-natal' === expFragID"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_video vf_parent_component aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="spring spring--md " style="color : #333333;"> <div id="video--" class="video-stream--fix"> <div class="video-stream video-stream--paused"> <div id="youtubeplayer-thumbnail-a1zesVBH5yc"> <img id="ytThumbId" alt="Vodafone Tv" onload="setSizeYt('a1zesVBH5yc', '', '');" class="js-video-stream-video video-stream__video" onclick="playPauseYoutube('a1zesVBH5yc', 'https://www.youtube-nocookie.com/embed/a1zesVBH5yc?rel=0&controls=1&showinfo=0&autoplay=0&enablejsapi=1', 'true');;" role="application" aria-label="video" src="https://img.youtube.com/vi/a1zesVBH5yc/maxresdefault.jpg"/> <button class="js-video-stream-toggle video-stream__toggle video-stream__toggle--red" onclick="playPauseYoutube('a1zesVBH5yc', 'https://www.youtube-nocookie.com/embed/a1zesVBH5yc?rel=0&controls=1&showinfo=0&autoplay=0&enablejsapi=1', 'true');;" aria-label="Play"> <svg focusable="false" aria-hidden="true" class="icon icon--small video-stream__toggle-icon video-stream__toggle-icon--play font-color--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <svg focusable="false" aria-hidden="true" class="icon icon--small video-stream__toggle-icon video-stream__toggle-icon--pause font-color--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-pause"></use> </svg> </button> </div> <div id="youtube-player-div-a1zesVBH5yc" class="video-stream__container video-stream__container--wide" style="display:none;"> </div> </div> </div> </div> </div> <script src="/etc.clientlibs/digital-myvodafone/components/content/authored/vf_parent_component/clientlibs.min.js"></script> <script src="/etc.clientlibs/digital-commons/components/content/vf_parent_component/clientlibs.min.js"></script> </div> </div> </div></div> </div> </div> </div> </div> </div> </div> <script id="alertMessagesCmp" type="text/x-template"> <div role="alert" class="alert" :class="[{ 'alert--arrow': arrow }, defaultAlertClass]"> <div class="caption"> <div :class="'caption__media caption__media--'+iconPosition+' alert__media'"> <svg :class="'icon icon--small icon--'+iconColor"> <use xmlns:xlink="http://www.w3.org/1999/xlink" v-bind="{'xlink:href':'#'+iconType}"></use> </svg> </div> <div :class="'caption__text caption__text--'+textPosition+' alert__text'"> <p v-if="!notUsingTitle" class="validation__details js-validation-details heading heading--5 heading--bold heading--no-gutter"> {{defaultErrorTitle}} </p> <slot></slot> <div v-if="!defaultSlot"> <ul class="js-validation-listing list list--reset validation__listing" > <li class="list__item" v-for="msg in defaultErrorMessages">{{msg}}</li> </ul> </div> </div> </div> </div> </script> <script src="/etc.clientlibs/digital-commons/components/content/authored/vf_flexibleOverlay/clientlibs.min.js"></script> </div> <div class="vf_heroBannerWS10Parent aem-GridColumn aem-GridColumn--default--12"> <div class="hero-banner-parent__singleElement"> <div id="spinner"></div> <div id="heroBanner-parentDiv" class="hide"> <div class="vf_heroBannerWS10"> <script>bannerId="hp";isEditMode="false";isEditModeActivated="true";showProgressControls="false";</script> <input type="hidden" data-herobanner="[{"bannerElementId":"bf","bannerElementTitle":"Tv Net Voz + Móvel com 100 GB de dados móveis","bannerElementTitleMobile":"","bannerProgressBarLabel":"Black Friday desconto €8","hasVideo":false,"desktopImage":"/content/dam/digital-sites/campanhas/campanhas-black-friday-fixo-a-hb0-760x400.png","mobileImage":"/content/dam/digital-sites/campanhas/campanhas-black-friday-fixo-a-hb0m-640x240.png","desktopVideoMp4":"","mobileVideoMp4":"","altTag":"Saiba mais","bannerButtonCTATitle":"Saiba mais","bannerButtonCTAParamOnClick":"","bannerButtonCTAURL":"/content/digital-sites/pt/particulares/pacotes.html?i_id=herobanner-bf24-1#familia","bannerButtonCTATarget":"_self"},{"bannerElementId":"2p","bannerElementTitle":"Internet em casa a preços Black Friday","bannerElementTitleMobile":"Internet em casa a preços Black Friday","bannerProgressBarLabel":"Black Friday Net Voz","hasVideo":false,"desktopImage":"/content/dam/digital-sites/campanhas/campanhas-hb0-bf-2p-760x400.png","mobileImage":"/content/dam/digital-sites/campanhas/campanhas-hb0m-bf-2p-640x240.png","desktopVideoMp4":"","mobileVideoMp4":"","altTag":"Saiba mais","bannerButtonCTATitle":"Saiba mais","bannerButtonCTAParamOnClick":"","bannerButtonCTAURL":"/content/digital-sites/pt/particulares/pacotes.html?i_id=herobanner-bf24-3#net-voz","bannerButtonCTATarget":"_self"},{"bannerElementId":"redinfinity","bannerElementTitle":"Dados ilimitados a um preço imbatível","bannerElementTitleMobile":"Dados ilimitados a um preço imbatível","bannerProgressBarLabel":"Black Friday tarifário móvel","hasVideo":false,"desktopImage":"/content/dam/digital-sites/campanhas/campanhas-black-friday-24-red-infinity-hb0.png","mobileImage":"/content/dam/digital-sites/campanhas/campanhas-black-friday-24-red-infinity-hb0m.png","desktopVideoMp4":"","mobileVideoMp4":"","altTag":"Saiba mais","bannerButtonCTATitle":"Saiba mais","bannerButtonCTAParamOnClick":"","bannerButtonCTAURL":"/content/digital-sites/pt/particulares/telemoveis/tarifarios/red.html?i_id=herobanner-redinfinity-homepage-4#","bannerButtonCTATarget":"_self"}]" id="hidden-hero-banner-hp"/> <div id="heroBanner-hp" class="hero-banner hide" ref="heroBanner" v-if="items.length > 0" v-cloak> <div :class="isEditMode && isEditModeActivated ? 'hero-banner__container--editMode' : 'hero-banner__container' "> <div :class="isEditMode && isEditModeActivated ? 'hero-banner__track--editMode' : 'hero-banner__track'" ref="heroTrack"> <div :class="{ 'hero-banner__item': index != currentItem && !isEditMode, 'hero-banner__item--editMode': isEditMode && isEditModeActivated, 'hero-banner__item--active': index === currentItem, }" v-for="(item, index) in items" :key="index" :id="item.bannerElementId" ref="heroItems" :style="items.length > 1 ? {...getSlideStyles(index), 'cursor': 'pointer'} : {}" @click="onHeroBannerClick(item.bannerButtonCTAParamOnClick, item.bannerButtonCTAURL, item.bannerButtonCTATarget)"> <div class="hero-banner__cta"> <div class="hero-banner__cta--content"> <div class="heading--3 heading--no-gutter hide--sm hide--md" style="padding-bottom: 40px" v-cloak> {{item.bannerElementTitle}} </div> <div class="heading--3 heading--no-gutter hide--sm hide--lg" style="padding-bottom: 20px" v-cloak> {{item.bannerElementTitle}} </div> <div class="heading--3 heading--no-gutter hide--md hide--lg" style="padding-bottom: 16px" v-cloak> {{item.bannerElementTitleMobile ? item.bannerElementTitleMobile : item.bannerElementTitle}} </div> <a :href="item.bannerButtonCTAURL ? item.bannerButtonCTAURL : null" :onclick="item.bannerButtonCTAParamOnClick" :target="item.bannerButtonCTATarget" class="button button--primary hide--sm hide--md" v-cloak> {{item.bannerButtonCTATitle}} </a> <a :href="item.bannerButtonCTAURL ? item.bannerButtonCTAURL : null" :onclick="item.bannerButtonCTAParamOnClick" :target="item.bannerButtonCTATarget" class="button button--primary hide--lg" style="width: auto; margin: auto;" v-cloak> {{item.bannerButtonCTATitle}} </a> </div> </div> <div :class="isEditMode && isEditModeActivated ? 'hero-banner__canvas--editMode' : 'hero-banner__canvas'"> <div v-if="item.hasVideo" @mouseover="isHoverVideo = true" @mouseleave="isHoverVideo = false"> <video v-if="item.hasVideo" :id="isMobile ? item.mobileVideoMp4 : item.desktopVideoMp4" playsinline class="video-stream__video video-stream__video--center" role="application" aria-label="video" :poster="item.mobileImage"> <source :src="isMobile ? item.mobileVideoMp4 : item.desktopVideoMp4" type="video/mp4"/> </video> <transition name="back-to-top-fade"> <div v-if="isHoverVideo" class="hero-banner__video-overlay" @click.self="togglePlay"> <button v-if="item.hasVideo" @click="togglePlay" class="js-video-stream-toggle video-stream__toggle video-stream__toggle--transparent" aria-label="Play"> <svg v-if="isPaused" focusable="false" aria-hidden="true" class="icon icon--large video-stream__toggle-icon video-stream__toggle-icon--play"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <svg v-else viewBox="0 0 192 192" focusable="false" aria-hidden="true" class="icon icon--extra-large video-stream__toggle-icon video-stream__toggle-icon--pause" style="display: block"> <path fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M113.88,136.24"></path> <path fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M113.88,55.76"></path> <line fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" x1="76" y1="60" x2="76" y2="132"></line> <circle fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" cx="96" cy="96" r="76"></circle> <line fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" x1="116" y1="60" x2="116" y2="132"></line> </svg> </button> <button v-if="item.hasVideo" @click="toggleSound" aria-label="Mute" class="video-stream__toggle video-stream__toggle--transparent video-stream__toggle hero-banner__sound-icon"> <svg v-if="isMuted" viewBox="0 0 192 192" class="icon icon--large video-stream__toggle-icon"> <line id="_x39_3ff4d18-3497-45db-b877-d4ab9e8b4a69" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" x1="46.66" y1="158.59" x2="171.84" y2="33.41"></line> <path fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M87.94,124H40.06 C33.399,124,28,118.601,28,111.94V80.06C28,73.399,33.399,68,40.06,68H88l52-48v152l-52-48H87.94z"> </path> </svg> <svg v-else viewBox="0 0 192 192" focusable="false" aria-hidden="true" class="icon icon--large video-stream__toggle-icon"> <path fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M72,124H32.06 C25.399,124,20,118.601,20,111.94V80.06C20,73.399,25.399,68,32.06,68h40l52-48v152l-52-48H72z"> </path> <path id="cb5bd2e1-58ca-4ca4-a427-b1942b004e08" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d=" M150.73,64c17.688,17.69,17.688,46.37,0,64.06l0,0"></path> <path id="b7a2fcf9-a9aa-47f3-a79b-c35b830a3d3b" fill="none" stroke="#ffffff" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d=" M140.11,76.66c10.745,10.742,10.747,28.16,0.005,38.905c-0.002,0.002-0.003,0.003-0.005,0.005l0,0"> </path> </svg> </button> </div> </transition> </div> <div v-else-if="isIe11" class="carousel__ie11-images"> <div :style="{backgroundImage: `url('')`}" class="carousel__ie11-mobile-bg"> </div> <div :style="{backgroundImage: `url('')`}" class="carousel__ie11-desktop-bg"></div> </div> <div v-else class="background__image lazyload"> <picture class="hero-banner__picture-wrapper" data-loaded="false"> <source :data-src="item.mobileImage + '/jcr:content/renditions/cq5dam.web.640.1000.' + getImgType(item.mobileImage)" media="(max-width: 640px)"/> <source :data-src="item.desktopImage + '/jcr:content/renditions/cq5dam.web.950.1000.' + getImgType(item.desktopImage)" media="(max-width: 950px)"/> <source :data-src="item.desktopImage + '/jcr:content/renditions/cq5dam.web.1200.1000.' + getImgType(item.desktopImage)" media="(max-width: 1200px)"/> <img :data-src="item.desktopImage + '/jcr:content/renditions/cq5dam.web.1920.1000.' + getImgType(item.desktopImage)" :alt="item.altTag || ''"/> </picture> </div> </div> </div> </div> </div> <div class="hero-banner__progress-outer" v-if="items.length > 1"> <div v-if="showProgressControls !== 'false'" @click="goToPrevious()" class="hero-banner__progress-controls hero-banner__progress-controls--left"> <svg focusable="false" aria-hidden="true" class="icon hero-banner__chevron"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-left"></use> </svg> <span class="grid__item--middle">Anterior</span> </div> <div :class="['hero-banner__progress-container', {'hero-banner__progress-container__hideControls': showProgressControls === 'false'}]" ref="progressContainer"> <div class="hero-banner__progress-inner" ref="progressWrapper"> <progress-bar v-for="(item, index) in items" ref="progressBars" :caption="isTablet ? truncateString(item.bannerProgressBarLabel, 32) : item.bannerProgressBarLabel" :key="'progress-bar-' + index" :is-active="index === currentItem" :class="{'progress-bar--animation-disabled': disabledElements.includes(index)}" :style="animateProgressBars && !isMobile && progressBarStyles" :value="progressValue" @click="() => goToSlide(index)"> </progress-bar> </div> </div> <div v-if="showProgressControls !== 'false'" @click="goToNext()" class="hero-banner__progress-controls hero-banner__progress-controls--right"> <span class="grid__item--middle">Seguinte</span> <svg focusable="false" aria-hidden="true" class="icon hero-banner__chevron"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"></use> </svg> </div> </div> </div> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_progressBar/clientlibs.min.js"></script> <script src="/etc.clientlibs/digital-commons/components/content/authored/vf_heroBannerWS10/clientlibs.min.js"></script> </div> </div> </div> <script src="/etc.clientlibs/digital-commons/components/content/authored/vf_heroBannerWS10Parent/clientlibs.min.js"></script> </div> <div class="vf_experienceFragment aem-GridColumn aem-GridColumn--default--12"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_grid vf_parent_component aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div id="quick-links" class="grid "> <div class="grid__item grid__item--middle grid__item--align-center grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_quickLinks"> <nav v-show="editor || ready" class="quicklinks__gradient quicklinks__gradient--sm flush--all"> <h2 class="visually-hidden">Quicklinks</h2> <div class="spring spring--sm-flush"> <div class="quicklinks__hidden-scrollbar"> <nav class="quicklinks__navigation "> <a profile-id="quick-link-pacotes" v-show="editor || ready" href="/pacotes.html?i_id=quicklinks-tvnetvoz-1" class="js-quicklinks-item quicklinks__item quicklinks__hover" target="_self" role="button" aria-label="Pacotes" onclick="; tealium_clicksHP.methods.handleQuickLinksClick(undefined) "> <div class="quicklinks__icon quicklinks__svg"> <span class="icon icon--extra-large "><svg viewBox="0 0 24 24"><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 64.875 148 L 124.53125 148 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 42.34375 132 L 140 132 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 96 148 L 96 132 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 156 151.96875 L 164 151.96875 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 152 96 L 180 96 L 180 156 C 180 162.625 174.625 168 168 168 L 152 168 C 145.375 168 140 162.625 140 156 L 140 108 C 140 101.375 145.375 96 152 96 Z M 152 96 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 105.5 99.875 C 100.25 94.65625 91.75 94.65625 86.5 99.875 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 115 87.9375 C 104.46875 77.4375 87.4375 77.4375 76.9375 87.9375 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 124.53125 75.875 C 108.75 60.15625 83.25 60.15625 67.46875 75.875 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 96 112 Z M 96 112 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 28 92.75 L 28 61 C 28 51.625 35.625 44 45 44 L 164 44 L 164 94.4375 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 140 131.96875 L 42.34375 131.96875 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%, 100%, 100%);stroke-opacity:1;stroke-miterlimit:4;" d="M 51.21875 145.90625 L 58 143.5625 C 59.6875 143.3125 61.25 143.5625 62 144.4375 C 63.09375 145.6875 72 156.90625 72.8125 157.90625 C 73.59375 158.875 73.375 160.90625 71.40625 162.34375 C 69.46875 163.75 59.78125 169.90625 57.25 169 C 54.75 168.09375 44 164.28125 30.40625 137.78125 C 16.8125 111.28125 20.09375 100.6875 20.84375 98.15625 C 21.625 95.625 32.15625 91.25 34.5 90.5625 C 36.84375 89.875 38.59375 91 39 92.1875 C 39.40625 93.375 43.1875 107.125 43.59375 108.65625 C 43.875 109.71875 43.15625 111.125 41.9375 112.25 C 40.6875 113.375 35.78125 117.71875 35.78125 117.71875 C 35.78125 117.71875 36.78125 122.125 41.78125 131.90625 C 44.09375 136.625 51.21875 145.90625 51.21875 145.90625 Z M 51.21875 145.90625 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%, 100%, 100%);fill-opacity:1;" d="M 12.5 14 C 12.5 14.277344 12.277344 14.5 12 14.5 C 11.722656 14.5 11.5 14.277344 11.5 14 C 11.5 13.722656 11.722656 13.5 12 13.5 C 12.277344 13.5 12.5 13.722656 12.5 14 Z M 12.5 14 "></path></svg></span> <span class="visually-hidden"></span> </div> <span class="quicklinks__heading">Pacotes</span> </a> <a profile-id="quick-link-telemoveis" v-show="editor || ready" href="/loja/telemoveis.html?i_id=quicklinks-hp-site-telemoveis-2&segment=consumer" class="js-quicklinks-item quicklinks__item quicklinks__hover" target="_self" role="button" aria-label="Telemóveis" onclick="; tealium_clicksHP.methods.handleQuickLinksClick(undefined) "> <div class="quicklinks__icon quicklinks__svg"> <span class="icon icon--extra-large "><svg viewBox="0 0 24 24"><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 56 156.4375 L 80 156.4375 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 10;" d="M 94 171.46875 L 42.3125 171.90625 C 34.40625 171.90625 28 165.0625 28 157.15625 L 28 50.46875 C 28 42.5625 34.40625 36.15625 42.3125 36.15625 L 108.3125 36.15625 L 108.3125 157.15625 C 108.3125 165.0625 101.90625 171.46875 94 171.46875 Z M 94 171.46875 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 120 140.65625 L 135.625 140.65625 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 10;" d="M 83.625 34.6875 C 83.59375 30.90625 85.125 27.25 87.8125 24.5625 C 90.46875 21.875 94.125 20.375 97.90625 20.375 L 163.90625 20.375 L 163.90625 141.375 C 163.90625 149.28125 157.5 155.6875 149.625 155.6875 L 109.4375 156.03125 " transform="matrix(0.125,0,0,0.125,0,0)"></path></svg></span> <span class="visually-hidden"></span> </div> <span class="quicklinks__heading">Telemóveis</span> </a> <a profile-id="quick-link-promocoes" v-show="editor || ready" href="/promocoes.html?i_id=quicklinks-novidadespromocoes-3" class="js-quicklinks-item quicklinks__item quicklinks__hover" target="_self" role="button" aria-label="Promoções" onclick="; tealium_clicksHP.methods.handleQuickLinksClick(undefined) "> <div class="quicklinks__icon quicklinks__svg"> <span class="icon icon--extra-large "><svg viewBox="0 0 24 24"><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 30.75 92.125 L 161.25 92.125 C 162.78125 92.125 164 93.34375 164 94.875 L 164 148.125 C 164 156.9375 156.84375 164.125 148 164.125 L 44 164.125 C 35.15625 164.125 28 156.9375 28 148.125 L 28 94.875 C 28 93.34375 29.21875 92.125 30.75 92.125 Z M 30.75 92.125 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 172 84.125 C 172 88.53125 168.40625 92.125 164 92.125 L 28 92.125 C 23.59375 92.125 20 88.53125 20 84.125 L 20 76.125 C 20 71.6875 23.59375 68.125 28 68.125 L 172 68.125 Z M 172 84.125 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 51.625 32.15625 L 64 32.15625 C 75.03125 32.15625 84 41.09375 84 52.15625 L 84 68.15625 L 55.6875 68.15625 C 44.625 68.15625 35.6875 59.1875 35.6875 48.15625 C 35.6875 39.34375 42.8125 32.1875 51.625 32.15625 Z M 51.625 32.15625 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 128.0075 32.135 L 156.32 32.135 L 156.32 48.135 C 156.32 59.1975 147.35125 68.135 136.32 68.135 L 124.0075 68.135 C 115.16375 68.135 108.0075 60.97875 108.0075 52.135 C 108.0075 41.10375 116.945 32.135 128.0075 32.135 Z M 128.0075 32.135 " transform="matrix(-0.125,-0.000000000000000015,0.000000000000000015,-0.125,33.04,12.5325)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 84 68.125 L 108 68.125 L 108 164.125 L 84 164.125 Z M 84 68.125 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 96 44.46875 C 102.625 44.46875 108 49.84375 108 56.46875 L 108 68.125 L 84 68.125 L 84 56.46875 C 84 49.84375 89.375 44.46875 96 44.46875 Z M 96 44.46875 " transform="matrix(0.125,0,0,0.125,0,0)"></path></svg></span> <span class="visually-hidden"></span> </div> <span class="quicklinks__heading">Promoções</span> </a> <a profile-id="quick-link-red" v-show="editor || ready" href="/telemoveis/tarifarios/red.html?i_id=quicklinks-red-4" class="js-quicklinks-item quicklinks__item quicklinks__hover" target="_self" role="button" aria-label="Tarifário Red" onclick="; tealium_clicksHP.methods.handleQuickLinksClick(undefined) "> <div class="quicklinks__icon quicklinks__svg"> <span class="icon icon--extra-large "><svg viewBox="0 0 24 24"><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 84 156 L 108 156 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 10;" d="M 68 20 L 140 20 L 140 156 C 140 164.84375 132.84375 172 124 172 L 68 172 C 59.15625 172 52 164.84375 52 156 L 52 36 C 52 27.15625 59.15625 20 68 20 Z M 68 20 " transform="matrix(0.125,0,0,0.125,0,0)"></path></svg></span> <span class="visually-hidden"></span> </div> <span class="quicklinks__heading">Tarifário Red</span> </a> <a profile-id="quick-link-my-vodafone" v-show="editor || ready" href="https://my.vodafone.pt/main.html?i_id=quicklinks-myvodafone-5" class="js-quicklinks-item quicklinks__item quicklinks__hover" target="_self" role="button" aria-label="My Vodafone" onclick="; tealium_clicksHP.methods.handleQuickLinksClick(undefined) "> <div class="quicklinks__icon quicklinks__svg"> <span class="icon icon--extra-large "><svg viewBox="0 0 24 24"><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 37.40625 168 C 37.40625 129.09375 63.65625 97.5625 96 97.5625 C 128.34375 97.5625 154.59375 129.09375 154.59375 168 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: butt; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 129.0625 61.28125 C 129.0625 79.53125 114.25 94.34375 96 94.34375 C 77.75 94.34375 62.9375 79.53125 62.9375 61.28125 C 62.9375 43 77.75 28.1875 96 28.1875 L 129.0625 28.1875 Z M 129.0625 61.28125 " transform="matrix(0.125,0,0,0.125,0,0)"></path></svg></span> <span class="visually-hidden"></span> </div> <span class="quicklinks__heading">My Vodafone</span> </a> </nav> </div> </div> </nav> <script src="/etc.clientlibs/digital-commons/components/content/authored/vf_quickLinks/clientlibs/smoothScroll.min.js"></script> </div> </div> </div> </div> </div> </div> </div></div> </div> <div class="vf_discoveryCardGrid vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section--wild-sand flush--bottom "> <div class="spring "> <div id="discoveryCardCmp-" class="discovery-card__grid gutter--bottom"> <div> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_theDiscoveryCard vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom "> <div id="discoveryCardCmp-destaque-1"> <div> <div class="discovery-card__grid gutter--bottom"> <a class="discovery-card discovery-card__big-tile section--white" href="/pacotes.html?i_id=hpsite-destaque-exclusiva-online-1#3p"> <div class="discovery-card__big-tile-image"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source srcset="/content/dam/digital-sites/campanhas/campanhas-blackFriday-3p-voucher-discovery-l-mobile-320x185.png" media="(max-width: 320px)"/> <source srcset="/content/dam/digital-sites/campanhas/campanhas-blackFriday-3p-voucher-discovery-l-mobile-320x185.png" media="(max-width: 640px)"/> <img data-srcset="/content/dam/digital-sites/campanhas/campanhas-blackfriday-3p-voucher-discovery-l-desktop-640x440.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="Vodafone Black Friday 29,5 € + voucher 150 loja online" title="Back Friday: 29,5" class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-sites/campanhas/campanhas-blackfriday-3p-voucher-discovery-l-desktop-640x440.png" alt="Vodafone Black Friday 29,5 € + voucher 150 loja online" title="Back Friday: 29,5"/> </noscript> </div> </div> </div> <div class="discovery-card__big-tile-body"> <div class="discovery-card__big-tile-body-heading"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <h1 class="heading heading--3 heading--bold no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Tv Net Voz desde €29,5/mês </span> </span> </h1> </div> </div> <div class="discovery-card__big-tile-body-copy"> Adira a um pacote Tv Net Voz da Vodafone por apenas €29,5/mês com oferta de um voucher de €150 para usar na loja online da Vodafone. </div> <div class="discovery-card__link font-color--red"> <span>Saber mais </span> <div class="icon icon--small discovery-card__link-svg"> <svg viewBox="0 0 192 192"> <polyline id="_x32_59e14f8-3d8b-4ae1-b945-69f9c598b490" fill="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" points=" 62,28 130,96 62,164 "></polyline> </svg> </div> </div> </div> </a> </div> </div> </div> </div> <script src="/etc.clientlibs/digital-commons/components/content/vf_parent_component_coral3/clientlibs.min.js"></script> </div> </div> </div></div> </div> </div> <div> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_theDiscoveryCard vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom "> <div id="discoveryCardCmp-destaque-2"> <div> <div class="discovery-card__grid gutter--bottom"> <a class="discovery-card discovery-card__small-tile section--white" href="/loja/black-friday-equipamentos.html?i_id=hpsite-destaque-black-friday-samsung-2&segment=consumer&brand=Samsung"> <div class="discovery-card__small-tile-image"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source srcset="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-s24ultra-160-200.png" media="(max-width: 320px)"/> <source srcset="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-s24ultra-160-200.png" media="(max-width: 640px)"/> <img data-srcset="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-s24ultra-320-320.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="Imagem do Samsung Galaxy S24 Ultra preto com um selo de desconto de €635" title="Black Friday - Loja Online Vodafone" class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-s24ultra-320-320.png" alt="Imagem do Samsung Galaxy S24 Ultra preto com um selo de desconto de €635" title="Black Friday - Loja Online Vodafone"/> </noscript> </div> </div> </div> <div class="discovery-card__small-tile-body"> <div class="discovery-card__small-tile-body-heading"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <h4 class="heading heading--4 heading--bold no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Agarre esta oportunidade </span> </span> </h4> </div> </div> <div class="discovery-card__small-tile-body-copy"> Poupe até €635 no Samsung Galaxy S24 Ultra com os seus pontos Clube Viva. </div> <div class="discovery-card__link font-color--red"> <span>Saiba mais </span> <div class="icon icon--small discovery-card__link-svg"> <svg viewBox="0 0 192 192"> <polyline id="_x32_59e14f8-3d8b-4ae1-b945-69f9c598b490" fill="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" points=" 62,28 130,96 62,164 "></polyline> </svg> </div> </div> </div> </a> </div> </div> </div> </div> </div> </div> </div></div> </div> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_theDiscoveryCard vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom "> <div id="discoveryCardCmp-destaque-2"> <div> <div class="discovery-card__grid gutter--bottom"> <a class="discovery-card discovery-card__small-tile section--white" href="/loja/black-friday-equipamentos.html?i_id=hpsite-destaque-black-friday-google-pixel-3&segment=consumer&brand=Google%20Pixel"> <div class="discovery-card__small-tile-image"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source srcset="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-mobile-google8a-160-200.png" media="(max-width: 320px)"/> <source srcset="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-mobile-google8a-160-200.png" media="(max-width: 640px)"/> <img data-srcset="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-google8a-320-320.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="Imagem do Google Pixel 8a preto com um selo de desconto de €250" title="Black Friday - Loja Online Vodafone" class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-eshop/campanhas/campanhas-black-friday-discovery-s-google8a-320-320.png" alt="Imagem do Google Pixel 8a preto com um selo de desconto de €250" title="Black Friday - Loja Online Vodafone"/> </noscript> </div> </div> </div> <div class="discovery-card__small-tile-body"> <div class="discovery-card__small-tile-body-heading"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <h4 class="heading heading--4 heading--bold no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Google Pixel imperdível na Black Friday </span> </span> </h4> </div> </div> <div class="discovery-card__small-tile-body-copy"> Aproveite a oportunidade de adquirir um Google Pixel 8a ao melhor preço. </div> <div class="discovery-card__link font-color--red"> <span>Saiba mais </span> <div class="icon icon--small discovery-card__link-svg"> <svg viewBox="0 0 192 192"> <polyline id="_x32_59e14f8-3d8b-4ae1-b945-69f9c598b490" fill="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" points=" 62,28 130,96 62,164 "></polyline> </svg> </div> </div> </div> </a> </div> </div> </div> </div> </div> </div> </div></div> </div> </div> </div> </div> </div> </div> <div class="vf_grid vf_parent_component aem-GridColumn aem-GridColumn--default--12"> <div class="section section--black " style="border-radius: 0px"> <div class="spring "> <div class="grid grid--gutter "> <div class="grid__item grid__item--gutter grid__item--middle grid__item--align-left grid__item--sm-1/1 grid__item--md-4/7 grid__item--4/7"> <div class="vf_heading vf_parent_component"> <div class="section section__flush flush--top flush--bottom " style="background-color: ; color : #FFFFFF; border-radius: 0px;"> <h2 class="heading heading--3 heading--light no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Adira a um pacote Super Fibra Vodafone </span> </span> </h2> </div> </div> <div class="vf_heading vf_parent_component"> <div class="section section__flush flush--half " style="background-color: ; color : #FFFFFF; border-radius: 0px;"> <p class="heading heading--6 heading--regular no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Com o novo Smart Router com Wi-Fi 7 </span> </span> </p> </div> </div> <div class="vf_button vf_parent_component"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <script>buttonId="button-38121";button="";</script> <div id="button-38121" button="{"type":"button","title":"Saiba mais","titleMobile":"","target":"_self","url":"/content/digital-sites/pt/particulares/pacotes/internet.html?i_id=homepage-central","param":"undefined","fullWidth":"false","buttonStyles":"class","buttonCssClass":"button--tertiary","buttonBorder":"undefined","borderStylePicker":"none","borderWidthPicker":"0","buttonBackgroundColor":"undefined","buttonSize":"medium","opacitySelect":"undefined","anchorLink":"undefined","buttonInlineSvg":false,"svgPosition":"left","boldClass":"","borderClass":"button--border","fullWidthClass":"","tealiumClick":"falseTealium","sizeClass":"button","mobileBorderClass":"button--border"}"></div> <script type="text/javascript" src="/etc.clientlibs/digital-commons/components/content/authored/vf_button/clientlibs.b1f44d92e21dc5840b660580e38d469c.js"></script> </div> </div> </div> <div class="grid__item grid__item--gutter grid__item--middle grid__item--align-center grid__item--sm-1/1 grid__item--md-3/7 grid__item--3/7"> <div class="vf_image vf_parent_component"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source data-srcset="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png/jcr:content/renditions/cq5dam.web.320.1000.png" media="(max-width: 320px)"/> <source data-srcset="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png/jcr:content/renditions/cq5dam.web.400.1000.png" media="(max-width: 400px)"/> <source data-srcset="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png/jcr:content/renditions/cq5dam.web.640.1000.png" media="(max-width: 640px)"/> <source data-srcset="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png/jcr:content/renditions/cq5dam.web.950.1000.png" media="(max-width: 950px)"/> <source data-srcset="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png/jcr:content/renditions/cq5dam.web.1200.1000.png" media="(max-width: 1200px)"/> <img data-srcset="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="router vodafone com tecnologia wi-fi 7" title="Super fibra" class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-sites/campanhas/campanhas-black-friday-wifi7-outubro-m-640x400.png" alt="router vodafone com tecnologia wi-fi 7" title="Super fibra"/> </noscript> </div> </div> </div> </div> </div> </div> </div> </div> <div class="vf_discoveryCardGrid vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section--wild-sand flush--half-bottom "> <div class="spring "> <div id="discoveryCardCmp-" class="discovery-card__grid gutter--bottom"> <div> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_theDiscoveryCard vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom "> <div id="discoveryCardCmp-destaque-4"> <div> <div class="discovery-card__grid gutter--bottom"> <a class="discovery-card discovery-card__big-tile section--white" href="/internet-movel.html?i_id=hpsite-campanha-black-friday-mbb-4#pos-pago"> <div class="discovery-card__big-tile-image"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source srcset="/content/dam/digital-eshop/campanhas/campnhass-discovery-l-mobile-bf-blm-pos-pago-320x185.png" media="(max-width: 320px)"/> <source srcset="/content/dam/digital-eshop/campanhas/campnhass-discovery-l-mobile-bf-blm-pos-pago-320x185.png" media="(max-width: 640px)"/> <img data-srcset="/content/dam/digital-eshop/campanhas/campanhas-discovery-l-desktop-bf-blm-pos-pago-640x440.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="Imagem de um portátil, de um tablet e de um hotspot com o selo de desconto de €16/mês" title="Internet Móvel - Vodafone Portugal " class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-eshop/campanhas/campanhas-discovery-l-desktop-bf-blm-pos-pago-640x440.png" alt="Imagem de um portátil, de um tablet e de um hotspot com o selo de desconto de €16/mês" title="Internet Móvel - Vodafone Portugal "/> </noscript> </div> </div> </div> <div class="discovery-card__big-tile-body"> <div class="discovery-card__big-tile-body-heading"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <h3 class="heading heading--3 heading--bold no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Internet com todo o tráfego incluído </span> </span> </h3> </div> </div> <div class="discovery-card__big-tile-body-copy"> <center>Adira ao tarifário de internet móvel por apenas €16/mês.</center> </div> <div class="discovery-card__link font-color--red"> <span>Saiba mais</span> <div class="icon icon--small discovery-card__link-svg"> <svg viewBox="0 0 192 192"> <polyline id="_x32_59e14f8-3d8b-4ae1-b945-69f9c598b490" fill="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" points=" 62,28 130,96 62,164 "></polyline> </svg> </div> </div> </div> </a> </div> </div> </div> </div> </div> </div> </div></div> </div> </div> <div> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_theDiscoveryCard vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom "> <div id="discoveryCardCmp-destaque-2"> <div> <div class="discovery-card__grid gutter--bottom"> <a class="discovery-card discovery-card__small-tile section--white" href="/loja/telemoveis.html?i_id=hpsite-destaque-xiaomi-week-5&segment=consumer&name=Xiaomi%2014T#catalogo-telemoveis"> <div class="discovery-card__small-tile-image"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source srcset="/content/dam/digital-sites/campanhas/campanhas-discovery-s-mobile-160x200-xiaomi14T-2.png" media="(max-width: 320px)"/> <source srcset="/content/dam/digital-sites/campanhas/campanhas-discovery-s-mobile-160x200-xiaomi14T-2.png" media="(max-width: 640px)"/> <img data-srcset="/content/dam/digital-sites/campanhas/campanhas-discovery-s-desktop-320x320-xiaomi14T-1.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="Imagem do novo Xiaomi 14T frente e verso na cor preta" title="Xiaomi 14T - Loja Online Vodafone" class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-sites/campanhas/campanhas-discovery-s-desktop-320x320-xiaomi14T-1.png" alt="Imagem do novo Xiaomi 14T frente e verso na cor preta" title="Xiaomi 14T - Loja Online Vodafone"/> </noscript> </div> </div> </div> <div class="discovery-card__small-tile-body"> <div class="discovery-card__small-tile-body-heading"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <h4 class="heading heading--4 heading--bold no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Xiaomi 14T Series </span> </span> </h4> </div> </div> <div class="discovery-card__small-tile-body-copy"> Aproveite descontos até €325 com pontos Clube Viva. </div> <div class="discovery-card__link font-color--red"> <span>Saiba mais </span> <div class="icon icon--small discovery-card__link-svg"> <svg viewBox="0 0 192 192"> <polyline id="_x32_59e14f8-3d8b-4ae1-b945-69f9c598b490" fill="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" points=" 62,28 130,96 62,164 "></polyline> </svg> </div> </div> </div> </a> </div> </div> </div> </div> </div> </div> </div></div> </div> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_theDiscoveryCard vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom "> <div id="discoveryCardCmp-destaque-2"> <div> <div class="discovery-card__grid gutter--bottom"> <a class="discovery-card discovery-card__small-tile section--white" href="/loja/marcas/apple.html?i_id=hpsite-destaque-apple-iphone16-6&segment=consumer"> <div class="discovery-card__small-tile-image"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="segmentation--container"> <picture> <source srcset="/content/dam/digital-sites/campanhas/campanhas-iphone16pro-discovery-s-Mobile-160x200.png" media="(max-width: 320px)"/> <source srcset="/content/dam/digital-sites/campanhas/campanhas-iphone16pro-discovery-s-Mobile-160x200.png" media="(max-width: 640px)"/> <img data-srcset="/content/dam/digital-sites/campanhas/campanhas-iphone16pro-discovery-s-desktop-320x320.png/jcr:content/renditions/cq5dam.web.1920.1000.png" alt="Imagem frontal e traseira do iPhone 16 sobre um fundo vermelho" title="iPhone 16 - Loja Online Vodafone" class=" segmentation__image--resize lazyload"/> </picture> <noscript> <img src="/content/dam/digital-sites/campanhas/campanhas-iphone16pro-discovery-s-desktop-320x320.png" alt="Imagem frontal e traseira do iPhone 16 sobre um fundo vermelho" title="iPhone 16 - Loja Online Vodafone"/> </noscript> </div> </div> </div> <div class="discovery-card__small-tile-body"> <div class="discovery-card__small-tile-body-heading"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <h4 class="heading heading--4 heading--bold no-gutter--all" style="color : ;"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Profundamente poderosos </span> </span> </h4> </div> </div> <div class="discovery-card__small-tile-body-copy"> Os novos iPhone 16 já chegaram e estão com descontos exclusivos para clientes Vodafone no Clube Viva. </div> <div class="discovery-card__link font-color--red"> <span>Saiba mais </span> <div class="icon icon--small discovery-card__link-svg"> <svg viewBox="0 0 192 192"> <polyline id="_x32_59e14f8-3d8b-4ae1-b945-69f9c598b490" fill="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" points=" 62,28 130,96 62,164 "></polyline> </svg> </div> </div> </div> </a> </div> </div> </div> </div> </div> </div> </div></div> </div> </div> </div> </div> </div> </div> <div class="vf_simpleTabs vf_parent_component aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom section__gutter--half--top " style="border-radius: 0px;"> <script>componentId="equipamentos";colorPicked="#E60000";tabSpinner="true";defaultTabId="";applySmoothScroll="";tabsType="light_bkground";</script> <input id="fadeIn" type="hidden"/> <div> <div id="spinner" style="display:block;"></div> <div class="simpTabs" id="equipamentos" style="opacity:0;" isEditMode="false"> <section class="section "> <div> <div class="js-tabs tabs " data-classes="active=tabs__tab--active tabs__tab--active" data-js="_simpleTabs" id="container-equipamentos"> <div class="tabs__navigation-wrapper"> <nav class="js-tabs-navigation tabs__navigation tabs__navigation--fixed " id="nav-equipamentos"> <a class="js-tabs-tab tabs__tab " href="#pacotes" id="#pacotes" onclick="checkEqualHeightsSimpleT('pacotes', '#E60000'); "> Pacotes </a> <a class="js-tabs-tab tabs__tab " href="#telemoveis" id="#telemoveis" onclick="checkEqualHeightsSimpleT('telemoveis', '#E60000'); "> Telemóveis </a> <a class="js-tabs-tab tabs__tab " href="#acessorios" id="#acessorios" onclick="checkEqualHeightsSimpleT('acessorios', '#E60000'); "> Acessórios </a> <a class="js-tabs-tab tabs__tab " href="#cartoes" id="#cartoes" onclick="checkEqualHeightsSimpleT('cartoes', '#E60000'); "> Cartões </a> </nav> </div> <div class=" tabs__navigation--fixed-reset" id="div-equipamentos"> <div class="js-tabs-content tabs__content" id="pacotes"> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_grid vf_parent_component aem-GridColumn aem-GridColumn--default--12"> <div class="section section--wild-sand flush--half-top " style="border-radius: 0px"> <div class="grid "> <div class="grid__item grid__item--top grid__item--align-center grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_dataBindingOverlay aem-GridColumn aem-GridColumn--default--12"> <script>bindingOverlay={};bindingOverlay.titleOnline="Online";bindingOverlay.turnOffE2E="";bindingOverlay.buttonTitle="Aderir";bindingOverlay.buttonStyles="class";bindingOverlay.titleC2C="Por telefone";bindingOverlay.display="default";bindingOverlay.buttonStyleClass="button--primary";bindingOverlay.buttonColorPicker="#e60000";bindingOverlay.buttonTextColorPicker="rgb(255,255,255)";bindingOverlay.pathURL="/content/digital-sites/pt/particulares/pedido-adesao.html";bindingOverlay.pathURLE2ERed="";bindingOverlay.turnOffC2C="";bindingOverlayId="overlay-binding";</script> <div id="bindingOverlay" @click.self="closeDialog" class="js-dialog dialog js-dialog-display dialog--flexible-transparency" :class="{ 'dialog--fadeIn': dialogDataBinding }"> <input type="hidden" ref="listOnline" data-options="{"svgInlineOnline":"<svg viewBox=\"0 0 192 192\"><polyline points=\"169.95 33.95 88 120 50 82\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><path d=\"M166,66.1v87.55A12.35,12.35,0,0,1,153.65,166H38.35A12.35,12.35,0,0,1,26,153.65V38.35A12.35,12.35,0,0,1,38.35,26H149.87\" transform=\"translate(0 0)\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path></svg>","onlineLabels":"Simples e rápido"},{"svgInlineOnline":"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 192 192\"><defs><symbol id=\"1cf0b788-6cbc-4b64-b37e-ae9d414a68d2\" data-name=\"24_7_support_ic_mid\" viewBox=\"0 0 192 192\"><path d=\"M124.78,164.08a75.19,75.19,0,1,1,24.67-17.3l-.39.44A39,39,0,0,0,170,174c-16.56,1.41-34,1.51-45.22-9.92Z\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path><g id=\"1e34744a-3749-409c-a85d-21993cb9a70f\" data-name=\"ICON\"><line x1=\"87.6\" y1=\"80\" x2=\"87.6\" y2=\"112\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></line><polyline points=\"92.78 103.04 70.78 103.04 87.6 80\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><polyline points=\"124.78 80 142.78 80 128.78 112\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><line x1=\"98.03\" y1=\"112\" x2=\"117.53\" y2=\"77\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></line><path d=\"M47.22,86c2.5-4,11.92-7.95,16-2,8,11.67-15.28,11.59-15.28,28H65.28\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path></g></symbol></defs><g id=\"b2aad964-bdbc-46c7-8506-8476d2b9a258\" data-name=\"ICON\"><use id=\"ec186812-5566-47c5-8aa2-62f604cbeae9\" data-name=\"24_7_support_ic_mid\" width=\"192\" height=\"192\" transform=\"translate(0 0)\" xlink:href=\"#1cf0b788-6cbc-4b64-b37e-ae9d414a68d2\"></use></g></svg>","onlineLabels":"Disponível 24 horas"}"/> <input type="hidden" ref="listC2C" data-options="{"svgInlineC2C":"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 192 192\"><defs><symbol id=\"e089978e-ef4f-410b-b545-a2ba1fc49219\" data-name=\"Landline_or_Call_ic+_mid\" viewBox=\"0 0 192 192\"><g id=\"bbf6e5fb-6818-4cea-b36d-5920b90c48ec\" data-name=\"ICON\"><line x1=\"29.16\" y1=\"29.15\" x2=\"62.6\" y2=\"78.87\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></line><line x1=\"116.33\" y1=\"130.04\" x2=\"162.78\" y2=\"162.8\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></line></g><path id=\"fa174262-3f4d-4fbc-93f7-cd56a6233530\" data-name=\"<Pfad>\" d=\"M116.33,130l13.19-10c3.48-1.79,7.07-2.22,9.23-.89,3.28,2,30.75,20.4,33.07,22s3.38,6.25.13,10.75-18.15,22.26-24.39,22-32.21-1-80.68-49.75S18.13,49.8,18,43.63,36.08,23,40.68,19.89s9.26-1.91,10.87.32c1.82,2.54,19.73,29.93,21.7,33.07,1.34,2.15.81,5.7-1.06,9.12S62.6,78.87,62.6,78.87s5.25,9.05,23.15,27.05C94.26,114.65,116.33,130,116.33,130Z\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></path></symbol></defs><g id=\"528c2205-80ab-476a-bea3-b798f80aa753\" data-name=\"ICON\"><use id=\"5382086d-b9f7-429e-824f-30d9fdc4ad32\" data-name=\"Landline_or_Call_ic+_mid\" width=\"192\" height=\"192\" transform=\"translate(0 0)\" xlink:href=\"#e089978e-ef4f-410b-b545-a2ba1fc49219\"></use></g></svg>","labelsC2C":"Ligamos-lhe grátis"},{"svgInlineC2C":"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 192 192\"><defs><symbol id=\"5116a2bd-634b-491a-b526-1978160287df\" data-name=\"Clock_or_Timed_ic_mid\" viewBox=\"0 0 192 192\"><polyline points=\"150 96 96 96 96 42\" fill=\"none\" stroke=\"#e60000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></polyline><circle cx=\"96\" cy=\"96\" r=\"78\" fill=\"none\" stroke=\"#666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"4\"></circle></symbol></defs><g id=\"295160c2-6a6d-45e7-b5e2-af8e1dce7d8d\" data-name=\"ICON\"><use id=\"53eb1f60-d517-4e13-9f1f-915ad9b1441c\" data-name=\"Clock_or_Timed_ic_mid\" width=\"192\" height=\"192\" transform=\"translate(0 0)\" xlink:href=\"#5116a2bd-634b-491a-b526-1978160287df\"></use></g></svg>","labelsC2C":"Disponível entre as 9h e as 23h<br><small>Fim de Semana e feriados das 10h às 22h</small>"}"/> <input type="hidden" ref="listE2E" data-options="{"cardIdE2E":"fibra-4-gold-family"},{"cardIdE2E":"fibra-4-gold"},{"cardIdE2E":"fibra-4-plus-2"},{"cardIdE2E":"fibra-4-plus-3"},{"cardIdE2E":"fibra-4-plus-4"},{"cardIdE2E":"fibra-4-plus-5"},{"cardIdE2E":"fibra-4-infinity-gold-3"},{"cardIdE2E":"fibra-4-infinity-2"},{"cardIdE2E":"fibra-4-play-5"},{"cardIdE2E":"fibra-4-gold-4"},{"cardIdE2E":"fibra-4-plus-6"},{"cardIdE2E":"fibra-4-gold-family-2"},{"cardIdE2E":"fibra-4-plus-flash-1"},{"cardIdE2E":"fibra-4-plus-flash-2"},{"cardIdE2E":"fibra-4-plus-flash-4"},{"cardIdE2E":"fibra-4-plus-flash-3"},{"cardIdE2E":"fibra-4-plus-deco"},{"cardIdE2E":"fibra-4-plus-flash-3"},{"cardIdE2E":"fibra-4-promo-plus"},{"cardIdE2E":"fibra-3-gold-7"},{"cardIdE2E":"fibra-3-plus-2"},{"cardIdE2E":"fibra-3-play-4"},{"cardIdE2E":"internet-movel-clientes-vodafone"},{"cardIdE2E":"internet-movel-novos-clientes"},{"cardIdE2E":"voz-fixa-1"},{"cardIdE2E":"voz-fixa-2"},{"cardIdE2E":"voz-fixa-3"},{"cardIdE2E":"2018-internet-movel"},{"cardIdE2E":"pacotes-c2c"},{"cardIdE2E":"c2c-plano-saude"},{"cardIdE2E":"fibra-4-plus-8"},{"cardIdE2E":"fibra-4-promo-plus-2"},{"cardIdE2E":"fibra-4-especial-online-plus"},{"cardIdE2E":"fibra-4-play-3"},{"cardIdE2E":"vodafone-madeira-10g"},{"cardIdE2E":"fibra-3-plus-ze-c2c"},{"cardIdE2E":"fibra-4-promo-c2c"},{"cardIdE2E":"fibra-4-plus-ze-c2c"},{"cardIdE2E":"fibra-4-plus-ze-3-c2c"},{"cardIdE2E":"oferta-movel-flash"},{"cardIdE2E":"fibra-4-bf-c2c"},{"cardIdE2E":"red-infinity-giga-new"},{"cardIdE2E":"red-protocolos"},{"cardIdE2E":"red-camp-desconto"},{"cardIdE2E":"red-camp-desconto-1"},{"cardIdE2E":"red-protocolos-1"},{"cardIdE2E":"red-infinity"},{"cardIdE2E":"red-acores"},{"cardIdE2E":"red-madeira"},{"cardIdE2E":"vodafone-acores-5g"},{"cardIdE2E":"vodafone-acores-10g"},{"cardIdE2E":"vodafone-madeira-5g"},{"cardIdE2E":"vodafone-madeira-10g"},{"cardIdE2E":"fibra-4-gaming-1"},{"cardIdE2E":"red-10-gb"},{"cardIdE2E":"fibra-4-super-series-2"},{"cardIdE2E":"fibra-3-gaming-1"},{"cardIdE2E":"fibra-4-plus-6"},{"cardIdE2E":"btl-red-5gb"},{"cardIdE2E":"btl-red-5gb-2"},{"cardIdE2E":"btl-red-10gb"},{"cardIdE2E":"btl-red-10gb-2"},{"cardIdE2E":"btl-red-infinity"},{"cardIdE2E":"btl-red-infinity-2"},{"cardIdE2E":"btl-red-infinity-giga"},{"cardIdE2E":"btl-red-infinity-giga-2"},{"cardIdE2E":"fibra-3-gold-2"},{"cardIdE2E":"btn-cliente-vodafone"}"/> <input type="hidden" ref="listTurnedOffC2C"/> <div class="dialog__content" @click.self="closeDialog"> <div class="section section__gutter no-gutter--sm-all"> <div class="spring"> </div> </div> <div class="container grid spring" :class="redimension"> <div class="dialog__close-spring form__row--large" @click.self="closeDialog"> <a v-on:click="closeDialog" role="button" aria-label="Close Dialog" class="dialog__close"> <svg focusable="false" aria-hidden="true" class="icon icon--small dialog__icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close"></use> </svg> <span class="visually-hidden">Close Binding Overlay</span> </a> </div> <div v-if="onlyE2E" class="onlyE2E overlay-binding__header grid__item grid__item--1/1 grid__item--align-center" style="background-color: ;"> <h5 class="heading heading--5 heading--center heading--regular heading--leading overlay-binding__options-heading" style="color : #FFF;"> Adira já e garanta a melhor oferta. </h5> <span style="color : ;"> </span> </div> <div v-else-if="onlyC2C" class="onlyC2C overlay-binding__header grid__item grid__item--1/1 grid__item--align-center" style="background-color: ;"> <h5 class="heading heading--5 heading--center heading--regular heading--leading overlay-binding__options-heading" style="color : #FFF;"> Conheça as ofertas que temos para si. </h5> <span style="color : ;"> </span> </div> <div v-else class="overlay-binding__header grid__item grid__item--1/1 grid__item--align-center" style="background-color: ;"> <h5 class="heading heading--5 heading--center heading--regular heading--leading overlay-binding__options-heading" style="color : #fff;"> Conheça as ofertas que temos para si. Adira já! </h5> <span style="color : ;"> </span> </div> <div class="overlay-binding__options-container grid grid__item--1/1"> <div class="overlay-binding__options overlay-binding__options-colorE2E grid__item grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1 grid__item--align-center" style="background-color : #ebebeb;" v-if="!turnOffE2E && defaultDisplay && cardIdDisplayE2E"> <h4 class="heading heading--4 heading--center heading--bold heading--leading overlay-binding__options-heading" style="color : ;"> {{ onlineTitle }} </h4> <ul class="list list--reset align--left"> <li class="heading heading--6 heading--no-gutter" v-for="item in onlineSvgList"> <div class="icon icon--small icon--bottom"> <span v-html="item.svgInlineOnline"></span> </div> <span style="color : rgb(0,0,0);" v-html="item.onlineLabels"></span> </li> </ul> <a class="button button--full-width overlay-binding__options-button" :style="buttonStyleColor" :class="buttonStyleClass" :href="pathURL" target="_self" @click="saveResults" @click.right="saveResults" @click.middle="saveResults">{{ buttonTitle }}</a> </div> <div class="overlay-binding__options grid__item grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1 grid__item--align-center" style="background-color : ;" v-if="!turnOffC2C && cardIdDisplayC2C"> <h3 class="heading heading--4 heading--center heading--bold heading--leading overlay-binding__options-heading" style="color : ;">{{ c2cTitle }} </h3> <ul class="list list--reset align--left"> <li class="heading heading--6 heading--no-gutter" v-for="item in c2cSvgList"> <div class="icon icon--small icon--bottom"> <span v-html="item.svgInlineC2C"></span> </div> <span style="color : ;" v-html="item.labelsC2C"></span> </li> </ul> <div id="bySideId"> </div> </div> <div class="overlay-binding__options overlay-binding__options-colorE2E grid__item grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1 grid__item--align-center" style="background-color : #ebebeb;" v-if="!turnOffE2E && !defaultDisplay && cardIdDisplayE2E"> <h4 class="heading heading--4 heading--center heading--bold heading--leading overlay-binding__options-heading" style="color : ;"> {{ onlineTitle }} </h4> <ul class="list list--reset align--left"> <li class="heading heading--6 heading--no-gutter" v-for="item in onlineSvgList"> <div class="icon icon--small icon--bottom"> <span v-html="item.svgInlineOnline"></span> </div> <span style="color : rgb(0,0,0);" v-html="item.onlineLabels"></span> </li> </ul> <a class="button button--full-width overlay-binding__options-button" :style="buttonStyleColor" :class="buttonStyleClass" :href="pathURL" target="_self">{{ buttonTitle }}</a> </div> </div> </div> </div> </div> </div> </div> </div></div> </div> </div> <div class="grid__item grid__item--top grid__item--align-left grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_grid vf_parent_component"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div class="spring grid__item--align-center " style="color : #333333;"> <div id="carousel-pacotes" class="grid grid--gutter "> <div class="grid__item grid__item--gutter grid__item--top grid__item--align-left grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_dataBindingV2 vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--half "> <div id="databinding-fibra-3-light" ref="databinding" class=" binding_vTwo"> <div :class="{ 'hide': !isLoaded }" v-cloak> <div class="binding_vTwo--card-tag"> <div style="background-color:#000000; color: #ffffff;" class="binding_vTwo--campaign-tag"> Black Friday | Desconto €5/mês </div> </div> <input id="databinding-fibra-3-light-dialogProperties" type="hidden" data-dialog="{"jsonTab":{"id":"fibra-3-light","jsonPath":"/content/dam/digital-sites/cardinali/jsons/3p/fibra-3-light.json","darkTheme":"","spinnerCard":"","bySide":"true","campaignElements":[{"campaignName":"Black Friday | Desconto €5/mês","campaignColor":"#000000","campaignTextColor":"#ffffff"}]},"buttonTab":{"hideKnowMoreButtonOnCard":"","enableTravellers":"","title":"Aderir","titleConfigurator":"Aderir","pathURL":"","paramOnClick":"$(\"#fibra-3-light\").empty();dataBindingOverlay.openDialog(\"fibra-3-light\",\"?i_id=fibra-3-light\");bwc_loadCardOfferPlaceholder(\"fibra-3-light\");","target":"_self","pathURLConfigurator":"","paramOnClickConfigurator":"$(\"#fibra-3-light\").empty();dataBindingOverlay.openDialog(\"fibra-3-light\",\"?i_id=fibra-3-light\");bwc_loadCardOfferPlaceholder(\"fibra-3-light\");","offersLinkTo":"","offersScrollTo":"","targetConfigurator":"_self","priceSectionPosition":"bottom"},"secondaryButtonTab":{"showSecondaryButtonOnCard":"true","titleSecondaryButton":"Saber mais","pathURLSecondaryButton":"/content/digital-sites/pt/particulares/pacotes/configurador.html","paramOnClickSecondaryButton":"","targetSecondaryButton":"_self"},"landingPagesTab":{"bottomBarActivated":"","htmlBottomBar":""}}" data-value="{"description":"fibra3 Light","descriptionE2E":"fibra3 Light","idSB":"BU246 - TvB+Cld200+N200-1G+V com Tvbox","idBaseCECE":"Fibra3 Light_24M_ANG_051124","formType":"cbu-standard","isBestOffer":false,"baseValue":43.5,"basePreviousValue":43.5,"omnitureTracking":"fibra-3-light","binding":{"selection":"block","options":[{"id":1,"price":0,"amountE2E":24,"selected":true,"display":false,"description":"24 meses","descriptionE2E":"24"}]},"offer":{"selection":"block","options":[{"id":1,"idOptCECE":"Desc. €14/mês/4m - Exclusivo Online","price":-14,"isMonthly":true,"selected":true,"display":true,"showOnCard":"true","overridePreviousPrice":0,"description":"Desconto online €14 x 4 meses","descriptionHeader":"€43,5/mês após 4 meses","descriptionSubtitle":"Durante 4 meses","descriptionE2E":"Vantagem de adesão: desconto Black Friday","discountTime":4},{"id":2,"idOptCECE":"Desc. €5/mês/24m_Camp","price":-5,"isMonthly":true,"selected":false,"display":true,"showOnCard":true,"overridePreviousPrice":0,"description":"Desconto Black Friday €5 x 24 meses","descriptionSubtitle":"Durante 24 meses","descriptionE2E":"Vantagem de adesão: desconto","discountTime":24}],"optionsE2E":[{"id":1,"idOptCECE":"Voucher €150 Online","isMonthly":false,"description":"Voucher €150 em loja online","descriptionCard":["Voucher €150 em loja online"],"image":["<img src=\"/content/dam/digital-sites/cardinali/icons/voucher-loja-100.png\"/>"],"price":150,"offerId":"Marcador Campanha Exclusiva Online: Voucher Eur150 - MCEO4","onlineExclusive":true},{"id":2,"idOptCECE":"Desconto Fidelização 3P PR","isMonthly":false,"description":"Desconto incluído na mensalidade: ","price":16.81,"discountTime":24},{"id":3,"isMonthly":false,"description":"Ativação: ","price":0,"previousPriceE2E":134},{"id":4,"idOptCECE":"Oferta Instalação - Novo Cliente","isMonthly":false,"description":"Instalação: ","previousPriceE2E":167,"price":0}]},"television":{"channels":"140","selection":"block","ottPill":{"description":"1 Serviço incluído","backgroundColor":"#FECB00","textColor":"black"},"ott":[{"id":1,"idOptCECE":"140+AP (3m)","description":"<b>Amazon Prime</b>","descriptionE2E":"Amazon Prime","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":true,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["prime"]},{"id":2,"idOptCECE":"140+MAX (3m)","description":"<b>Max</b>","descriptionE2E":"Max","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["hbo"]},{"id":3,"idOptCECE":"140+Disney+(3m)","description":"<b>Disney +</b>","descriptionE2E":"Disney +","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["disney"]}],"options":[{"id":1,"description":"<b>VBox</b>","descriptionE2E":"VBox","selected":true,"disabled":false,"tvBoxE2E":true,"price":0,"info":{"notes":[{"id":1,"idNotesCECE":"Vbox","description":"Tv Box com qualidade de imagem 4K e comando com acesso direto a plataformas de streaming.","descriptionE2E":""}]}},{"id":2,"description":"<b>Box TV PLAY</b>","descriptionE2E":"Box TV PLAY","selected":false,"tvBoxE2E":true,"price":5,"pill":{"description":"Imperdível","backgroundColor":"#FECB00","textColor":"black"},"link":{"description":"Saber Mais","url":"https://www.vodafone.pt/pacotes/televisao/tv-box/vodafone-tv-play.html","target":"_blank"},"info":{"notes":[{"id":1,"idNotesCECE":"Upgrade Box Vodafone TV PLAY €5","description":"Tv Box com colunas e sistema de som Dolby Atmos embutidas, tecnologia de som Bang&Olufsen, Assistente de Voz mãos livres “Hey Google”, Google Play Store, Chromecast built in, ligação por Wi-Fi ao Smart Router e comando Bluetooth.","descriptionE2E":""}]}}]},"internet":{"selection":"block","options":[{"id":1,"idOptCECE":"500/100","description":"500/100 Mbps <s><small>200/100 Mbps</small></s> ","descriptionE2E":"Velocidade 500/100Mbps","price":0,"selected":true,"display":true,"hideGrantedSpeedOnSummary":false,"guaranteedSpeedLabel":"Velocidade Garantida","downloadE2E":{"speed":500,"unit":"Mbps"},"uploadE2E":{"speed":100,"unit":"Mbps"},"info":{"notes":[{"id":1,"description":"<s>200/100 Mbps</s>","descriptionE2E":"Velocidade Garantida"},{"id":2,"description":"Smart Router","descriptionE2E":"Smart Router"}]}}]},"phone":{"selection":"block","options":[{"id":1,"idOptCECE":"Voz fixa Ilimitado s/ TLF incluído","description":"Rede fixa 24 horas e 31 países internacionais","descriptionE2E":"Chamadas incluídas","selected":true,"display":true,"price":0,"purE2E":"sites.cards.pur_label_fixo","info":{"notes":[{"id":1,"description":"Não inclui o equipamento"}]}}]},"prime":{"selection":"block","options":[{"id":1,"descriptionE2E":"Amazon Prime durante 3 meses","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/amazon-prime.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Entregas grátis até 48 horas, Prime Video, Prime Gaming e Amazon Photos."}]}}]},"disney":{"selection":"block","options":[{"id":1,"descriptionE2E":"Disney+ durante 3 meses","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/disneyplus.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Inclui séries e filmes da Disney, Pixar, Marvel, Star Wars, National Geographic e Star."}]}}]},"hbo":{"selection":"block","options":[{"id":1,"descriptionE2E":"Max durante 3 meses","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/hbomax.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Inclui séries e filmes da HBO, Max Originals, Warner Bros, DC e Cartoon Network."}]}}]}}" data-path="/content/dam/digital-sites/cardinali/jsons/3p/fibra-3-light.json" data-cardId="fibra-3-light" data-buttonData="{"id":"fibra-3-light","href":"","paramOnClick":"$(\"#fibra-3-light\").empty();dataBindingOverlay.openDialog(\"fibra-3-light\",\"?i_id=fibra-3-light\");bwc_loadCardOfferPlaceholder(\"fibra-3-light\");","target":"_self","title":"Aderir"}" ref="dialogPropertiesRef"/> <div :class="['card-wrapper', {'cw-dark': isDarkTheme, 'bottom-border-no-offer': !offersDisplayed}]" style="border: 2px solid #000000;border-radius: 0 6px 6px 6px;"> <div class="binding_vTwo--card"> <div id="databinding-fibra-3-light-cardData" class="binding_vTwo--card--container"> <div class="binding_vTwo--card--offer"> <div :class="['binding_vTwo--card--offer-section price--section', { 'bottom-border': offersDisplayed }]"> <!--CARD NAME | PRICE | CROSSED PRICE--> <div> <div :class="['card-name', { 'bc-card-name-dark' : isDarkTheme, 'hide': !dataJSON.description }]" v-html="dataJSON.description"></div> <div class="card-price-wrapper"> <div v-if="totalPrice" :class="[dataJSON.description ? 'card-price' : 'card-price-without-card-name', { 'bc-card-price-dark' : isDarkTheme }]"> <span :id="getCardPriceId" class="notranslate">{{processPriceLabel(totalPrice)}}</span><span class="bundle-month__unit">/mês</span> </div> <div v-if="descriptionHeader"> <span :class="['card-risked-price', { 'bc-card-risked-price-dark' : isDarkTheme }]" v-html="descriptionHeader"></span> </div> <div v-else-if="totalPreviousPrice && totalPrice < totalPreviousPrice" :class="['card-risked-price', 'strike', { 'bc-card-risked-price-dark' : isDarkTheme }]"> <span v-html="processPriceLabel(totalPreviousPrice)"></span>/mês </div> </div> </div> <!--BUTTON ACTIONS (MOBILE)--> <div class="buttons-wrapper"> <div :class="['card--mobile__flex-display', 'card-button', {'bc-card-button-dark' : isDarkTheme}]"> <binding-submit-button id="fibra-3-light" :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-light_primary","href":"","paramOnClick":"$(\"#fibra-3-light\").empty();dataBindingOverlay.openDialog(\"fibra-3-light\",\"?i_id=fibra-3-light\");bwc_loadCardOfferPlaceholder(\"fibra-3-light\");","enableTravellers":"","target":"_self","title":"Aderir"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" binding-type="CBU" :is-mobile="true"> </binding-submit-button> </div> <div :class="['card--mobile__flex-display', 'card-button', {'bc-card-button-tertiary-dark' : isDarkTheme}]"> <binding-submit-button :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-light_secondary","href":"/content/digital-sites/pt/particulares/pacotes/configurador.html","paramOnClick":"","target":"_self","title":"Saber mais"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" :tertiary="true" binding-type="CBU"> </binding-submit-button> </div> </div> </div> <!--SERVICES SECTION--> <div :class="['binding_vTwo--card--offer-section', { 'bottom-border': offersDisplayed }]"> <!-- INTERNET SERVICE--> <div v-if="internetOptionSelected || isRedCard" :class="['card-offer-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg"> <svg v-if="!isDarkTheme && !isRedCard" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.51172 9.5C7.75391 4.25 16.2656 4.25 21.5117 9.5" stroke="url(#paint0_linear_859_164822_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5.26172 12.5C7.0625 10.6992 9.50391 9.6875 12.0469 9.6875C14.5938 9.6875 17.0352 10.6992 18.8359 12.5" stroke="url(#paint1_linear_859_164822_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.08594 15.4844C10.2617 13.3047 13.7969 13.3047 15.9766 15.4844" stroke="url(#paint2_linear_859_164822_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.5117 19.0312C12.5117 19.3086 12.2852 19.5312 12.0117 19.5312C11.7344 19.5312 11.5117 19.3086 11.5117 19.0312C11.5117 18.7539 11.7344 18.5312 12.0117 18.5312C12.2852 18.5312 12.5117 18.7539 12.5117 19.0312Z" stroke="url(#paint3_linear_859_164822_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.3242 19.0312C12.3242 19.2031 12.1836 19.3438 12.0117 19.3438C11.8359 19.3438 11.6992 19.2031 11.6992 19.0312C11.6992 18.8594 11.8359 18.7188 12.0117 18.7188C12.1836 18.7188 12.3242 18.8594 12.3242 19.0312Z" fill="url(#paint4_linear_859_164822_fibra-3-light)" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.1367 19.0312C12.1367 19.1016 12.0781 19.1562 12.0117 19.1562C11.9414 19.1562 11.8867 19.1016 11.8867 19.0312C11.8867 18.9609 11.9414 18.9062 12.0117 18.9062C12.0781 18.9062 12.1367 18.9609 12.1367 19.0312Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/> <defs> <linearGradient id="paint0_linear_859_164822_fibra-3-light" x1="2.6849" y1="7.3404" x2="21.4634" y2="6.36798" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_859_164822_fibra-3-light" x1="5.38544" y1="10.9574" x2="18.8014" y2="10.2626" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint2_linear_859_164822_fibra-3-light" x1="8.15786" y1="14.5878" x2="15.9565" y2="14.1838" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint3_linear_859_164822_fibra-3-light" x1="11.5208" y1="18.9828" x2="12.5117" y2="18.9721" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint4_linear_859_164822_fibra-3-light" x1="11.7049" y1="19.001" x2="12.3242" y2="18.9943" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else-if="isRedCard && !isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M15.25 11.9634C14.9739 11.9634 14.75 12.1873 14.75 12.4634C14.75 12.7396 14.9739 12.9634 15.25 12.9634V11.9634ZM17 12.4634H17.5C17.5 12.1873 17.2761 11.9634 17 11.9634V12.4634ZM17 13.9634H16.5C16.5 13.9682 16.5001 13.9729 16.5002 13.9777L17 13.9634ZM16.125 15.1509L16.2567 15.6333L16.2595 15.6325L16.125 15.1509ZM16.3712 10.1359C16.5009 10.3797 16.8037 10.4721 17.0475 10.3423C17.2912 10.2125 17.3836 9.9097 17.2538 9.66596L16.3712 10.1359ZM10.48 9.76207C10.7562 9.76207 10.98 9.53821 10.98 9.26207C10.98 8.98593 10.7562 8.76207 10.48 8.76207V9.76207ZM7.93752 9.26207V8.76207C7.66138 8.76207 7.43752 8.98593 7.43752 9.26207H7.93752ZM7.93752 11.8871H7.43752C7.43752 12.0589 7.52574 12.2187 7.67114 12.3102C7.81654 12.4017 7.99875 12.4122 8.15368 12.3379L7.93752 11.8871ZM8.21127 11.7558L8.01586 11.2956C8.00887 11.2986 8.00195 11.3017 7.9951 11.305L8.21127 11.7558ZM8.05247 14.4642C7.84379 14.2834 7.52801 14.3059 7.34716 14.5146C7.16632 14.7233 7.18888 15.0391 7.39756 15.2199L8.05247 14.4642ZM21.5 12.2559H21H21.5ZM12 2.75586V2.25586V2.75586ZM21.5 2.75586H22V2.25586H21.5V2.75586ZM15.25 12.9634H17V11.9634H15.25V12.9634ZM16.5 12.4634V13.9634H17.5V12.4634H16.5ZM16.5002 13.9777C16.5046 14.1333 16.4569 14.286 16.3645 14.4113L17.1696 15.0045C17.3943 14.6995 17.5106 14.328 17.4998 13.9492L16.5002 13.9777ZM16.3645 14.4113C16.2722 14.5366 16.1405 14.6275 15.9906 14.6694L16.2595 15.6325C16.6244 15.5306 16.9448 15.3096 17.1696 15.0045L16.3645 14.4113ZM15.9933 14.6686C15.5022 14.8026 14.8829 14.8732 14.4079 14.6224C13.9874 14.4004 13.5 13.8213 13.5 12.2134H12.5C12.5 14.0093 13.0576 15.0402 13.9409 15.5067C14.7696 15.9443 15.7128 15.7817 16.2567 15.6333L15.9933 14.6686ZM13.5 12.2134C13.5 11.3651 13.6907 10.8085 13.9379 10.4505C14.1824 10.0964 14.5066 9.90041 14.8479 9.81128C15.1968 9.72017 15.5641 9.74162 15.8648 9.83222C16.1872 9.92936 16.338 10.0737 16.3712 10.1359L17.2538 9.66596C17.0407 9.26569 16.5919 9.0069 16.1533 8.87474C15.6929 8.73604 15.1379 8.70202 14.5952 8.84372C14.045 8.9874 13.5084 9.31248 13.115 9.88227C12.7243 10.4481 12.5 11.218 12.5 12.2134H13.5ZM10.48 8.76207H7.93752V9.76207H10.48V8.76207ZM7.43752 9.26207V11.8871H8.43752V9.26207H7.43752ZM8.15368 12.3379L8.42743 12.2067L7.9951 11.305L7.72135 11.4362L8.15368 12.3379ZM8.40668 12.2161C8.62697 12.1225 8.86828 12.0896 9.10557 12.1208L9.23582 11.1293C8.82161 11.0749 8.40039 11.1323 8.01586 11.2956L8.40668 12.2161ZM9.10557 12.1208C9.34286 12.152 9.56749 12.2461 9.75615 12.3933L10.3714 11.605C10.0421 11.348 9.65003 11.1837 9.23582 11.1293L9.10557 12.1208ZM9.75615 12.3933C9.94481 12.5406 10.0906 12.7356 10.1785 12.9583L11.1087 12.5912C10.9553 12.2026 10.7008 11.8621 10.3714 11.605L9.75615 12.3933ZM10.1785 12.9583C10.2663 13.1809 10.293 13.423 10.2558 13.6594L11.2436 13.815C11.3086 13.4023 11.262 12.9798 11.1087 12.5912L10.1785 12.9583ZM10.2558 13.6594C10.2185 13.8958 10.1187 14.1179 9.96666 14.3027L10.7389 14.9381C11.0043 14.6154 11.1786 14.2277 11.2436 13.815L10.2558 13.6594ZM9.96666 14.3027C9.81461 14.4876 9.61587 14.6283 9.39108 14.7105L9.73419 15.6497C10.1266 15.5064 10.4735 15.2607 10.7389 14.9381L9.96666 14.3027ZM9.39108 14.7105C9.16628 14.7926 8.9236 14.813 8.68822 14.7697L8.50731 15.7532C8.91818 15.8288 9.34179 15.7931 9.73419 15.6497L9.39108 14.7105ZM8.68822 14.7697C8.45284 14.7264 8.23333 14.621 8.05247 14.4642L7.39756 15.2199C7.71327 15.4935 8.09643 15.6777 8.50731 15.7532L8.68822 14.7697ZM21 12.2559C21 14.0359 20.4722 15.7759 19.4832 17.256L20.3147 17.8116C21.4135 16.1671 22 14.2337 22 12.2559H21ZM19.4832 17.256C18.4943 18.736 17.0887 19.8896 15.4442 20.5708L15.8268 21.4947C17.6541 20.7378 19.2159 19.4561 20.3147 17.8116L19.4832 17.256ZM15.4442 20.5708C13.7996 21.252 11.99 21.4302 10.2442 21.0829L10.0491 22.0637C11.9889 22.4496 13.9996 22.2515 15.8268 21.4947L15.4442 20.5708ZM10.2442 21.0829C8.49836 20.7357 6.89472 19.8785 5.63604 18.6198L4.92894 19.3269C6.32746 20.7255 8.10929 21.6779 10.0491 22.0637L10.2442 21.0829ZM5.63604 18.6198C4.37737 17.3611 3.5202 15.7575 3.17294 14.0117L2.19215 14.2068C2.578 16.1466 3.53041 17.9284 4.92894 19.3269L5.63604 18.6198ZM3.17294 14.0117C2.82567 12.2658 3.0039 10.4562 3.68509 8.81171L2.76121 8.42903C2.00433 10.2563 1.8063 12.267 2.19215 14.2068L3.17294 14.0117ZM3.68509 8.81171C4.36628 7.16717 5.51983 5.76157 6.99987 4.77263L6.4443 3.94116C4.79981 5.03998 3.51809 6.60176 2.76121 8.42903L3.68509 8.81171ZM6.99987 4.77263C8.47991 3.7837 10.22 3.25586 12 3.25586V2.25586C10.0222 2.25586 8.08879 2.84235 6.4443 3.94116L6.99987 4.77263ZM12 3.25586H21.5V2.25586H12V3.25586ZM21 2.75586V12.2559H22V2.75586H21Z" fill="url(#paint0_linear_1743_2252_fibra-3-light)"/> <defs> <linearGradient id="paint0_linear_1743_2252_fibra-3-light" x1="2.5" y1="21.7559" x2="21.5" y2="2.75586" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else-if="isRedCard && isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M15.25 11.7076C14.9739 11.7076 14.75 11.9314 14.75 12.2076C14.75 12.4837 14.9739 12.7076 15.25 12.7076V11.7076ZM17 12.2076H17.5C17.5 11.9314 17.2761 11.7076 17 11.7076V12.2076ZM17 13.7076H16.5C16.5 13.7123 16.5001 13.7171 16.5002 13.7218L17 13.7076ZM16.125 14.8951L16.2567 15.3774L16.2595 15.3767L16.125 14.8951ZM16.3712 9.88006C16.5009 10.1238 16.8037 10.2162 17.0475 10.0864C17.2912 9.95664 17.3836 9.65384 17.2538 9.4101L16.3712 9.88006ZM10.48 9.50621C10.7562 9.50621 10.98 9.28235 10.98 9.00621C10.98 8.73007 10.7562 8.50621 10.48 8.50621V9.50621ZM7.93752 9.00621V8.50621C7.66138 8.50621 7.43752 8.73007 7.43752 9.00621H7.93752ZM7.93752 11.6312H7.43752C7.43752 11.803 7.52574 11.9628 7.67114 12.0543C7.81654 12.1459 7.99875 12.1563 8.15368 12.0821L7.93752 11.6312ZM8.21127 11.5L8.01586 11.0397C8.00887 11.0427 8.00195 11.0458 7.9951 11.0491L8.21127 11.5ZM8.05247 14.2084C7.84379 14.0275 7.52801 14.0501 7.34716 14.2588C7.16632 14.4674 7.18888 14.7832 7.39756 14.9641L8.05247 14.2084ZM21.5 12H21H21.5ZM12 2.5V2V2.5ZM21.5 2.5H22V2H21.5V2.5ZM15.25 12.7076H17V11.7076H15.25V12.7076ZM16.5 12.2076V13.7076H17.5V12.2076H16.5ZM16.5002 13.7218C16.5046 13.8775 16.4569 14.0301 16.3645 14.1554L17.1696 14.7486C17.3943 14.4436 17.5106 14.0721 17.4998 13.6933L16.5002 13.7218ZM16.3645 14.1554C16.2722 14.2808 16.1405 14.3716 15.9906 14.4135L16.2595 15.3767C16.6244 15.2748 16.9448 15.0537 17.1696 14.7486L16.3645 14.1554ZM15.9933 14.4127C15.5022 14.5468 14.8829 14.6174 14.4079 14.3665C13.9874 14.1445 13.5 13.5654 13.5 11.9576H12.5C12.5 13.7535 13.0576 14.7844 13.9409 15.2508C14.7696 15.6884 15.7128 15.5259 16.2567 15.3774L15.9933 14.4127ZM13.5 11.9576C13.5 11.1093 13.6907 10.5527 13.9379 10.1946C14.1824 9.84057 14.5066 9.64455 14.8479 9.55542C15.1968 9.46431 15.5641 9.48576 15.8648 9.57636C16.1872 9.6735 16.338 9.81783 16.3712 9.88006L17.2538 9.4101C17.0407 9.00983 16.5919 8.75104 16.1533 8.61888C15.6929 8.48018 15.1379 8.44616 14.5952 8.58787C14.045 8.73154 13.5084 9.05662 13.115 9.62641C12.7243 10.1922 12.5 10.9621 12.5 11.9576H13.5ZM10.48 8.50621H7.93752V9.50621H10.48V8.50621ZM7.43752 9.00621V11.6312H8.43752V9.00621H7.43752ZM8.15368 12.0821L8.42743 11.9508L7.9951 11.0491L7.72135 11.1804L8.15368 12.0821ZM8.40668 11.9602C8.62697 11.8667 8.86828 11.8338 9.10557 11.8649L9.23582 10.8735C8.82161 10.819 8.40039 10.8765 8.01586 11.0397L8.40668 11.9602ZM9.10557 11.8649C9.34286 11.8961 9.56749 11.9902 9.75615 12.1375L10.3714 11.3492C10.0421 11.0921 9.65003 10.9279 9.23582 10.8735L9.10557 11.8649ZM9.75615 12.1375C9.94481 12.2847 10.0906 12.4798 10.1785 12.7024L11.1087 12.3353C10.9553 11.9467 10.7008 11.6062 10.3714 11.3492L9.75615 12.1375ZM10.1785 12.7024C10.2663 12.925 10.293 13.1671 10.2558 13.4035L11.2436 13.5591C11.3086 13.1465 11.262 12.7239 11.1087 12.3353L10.1785 12.7024ZM10.2558 13.4035C10.2185 13.6399 10.1187 13.8621 9.96666 14.0469L10.7389 14.6822C11.0043 14.3596 11.1786 13.9718 11.2436 13.5591L10.2558 13.4035ZM9.96666 14.0469C9.81461 14.2317 9.61587 14.3725 9.39108 14.4546L9.73419 15.3939C10.1266 15.2505 10.4735 15.0048 10.7389 14.6822L9.96666 14.0469ZM9.39108 14.4546C9.16628 14.5367 8.9236 14.5572 8.68822 14.5139L8.50731 15.4974C8.91818 15.573 9.34179 15.5372 9.73419 15.3939L9.39108 14.4546ZM8.68822 14.5139C8.45284 14.4706 8.23333 14.3651 8.05247 14.2084L7.39756 14.9641C7.71327 15.2377 8.09643 15.4218 8.50731 15.4974L8.68822 14.5139ZM21 12C21 13.78 20.4722 15.5201 19.4832 17.0001L20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12H21ZM19.4832 17.0001C18.4943 18.4802 17.0887 19.6337 15.4442 20.3149L15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557L19.4832 17.0001ZM15.4442 20.3149C13.7996 20.9961 11.99 21.1743 10.2442 20.8271L10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388L15.4442 20.3149ZM10.2442 20.8271C8.49836 20.4798 6.89472 19.6226 5.63604 18.364L4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079L10.2442 20.8271ZM5.63604 18.364C4.37737 17.1053 3.5202 15.5016 3.17294 13.7558L2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711L5.63604 18.364ZM3.17294 13.7558C2.82567 12.01 3.0039 10.2004 3.68509 8.55585L2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509L3.17294 13.7558ZM3.68509 8.55585C4.36628 6.91131 5.51983 5.50571 6.99987 4.51677L6.4443 3.6853C4.79981 4.78412 3.51809 6.34591 2.76121 8.17317L3.68509 8.55585ZM6.99987 4.51677C8.47991 3.52784 10.22 3 12 3V2C10.0222 2 8.08879 2.58649 6.4443 3.6853L6.99987 4.51677ZM12 3H21.5V2H12V3ZM21 2.5V12H22V2.5H21Z" fill="#F06666"/> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.51172 9.5C7.75391 4.25 16.2656 4.25 21.5117 9.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5.26172 12.5C7.0625 10.6992 9.50391 9.6875 12.0469 9.6875C14.5938 9.6875 17.0352 10.6992 18.8359 12.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.08594 15.4844C10.2617 13.3047 13.7969 13.3047 15.9766 15.4844" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.5117 19.0312C12.5117 19.3086 12.2852 19.5312 12.0117 19.5312C11.7344 19.5312 11.5117 19.3086 11.5117 19.0312C11.5117 18.7539 11.7344 18.5312 12.0117 18.5312C12.2852 18.5312 12.5117 18.7539 12.5117 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.3242 19.0312C12.3242 19.2031 12.1836 19.3438 12.0117 19.3438C11.8359 19.3438 11.6992 19.2031 11.6992 19.0312C11.6992 18.8594 11.8359 18.7188 12.0117 18.7188C12.1836 18.7188 12.3242 18.8594 12.3242 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.1367 19.0312C12.1367 19.1016 12.0781 19.1562 12.0117 19.1562C11.9414 19.1562 11.8867 19.1016 11.8867 19.0312C11.8867 18.9609 11.9414 18.9062 12.0117 18.9062C12.0781 18.9062 12.1367 18.9609 12.1367 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> </svg> </span> <span v-if="isRedCard" :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Dados</span> <span v-else :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Net</span> <!-- INTERNET SERVICE (PILL)--> </div> <!-- NOT RED --> <div v-if="!isRedCard" :class="['card--offer--content-subtitle', 'card--desktop__table-display', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span class="card--offer--content-subtitle-speed" v-html="internetOptionSelected.downloadE2E.speed"></span> <span v-if="internetOptionSelected.downloadE2E.unit != internetOptionSelected.uploadE2E.unit" v-html="internetOptionSelected.downloadE2E.unit"></span> <span>/</span> <span class="card--offer--content-subtitle-unit" v-html="internetOptionSelected.uploadE2E.speed"></span> {{ internetOptionSelected.uploadE2E.unit }} </div> <div v-if="!isRedCard" class="card--offer--content-infoNotes"> <div v-if="internetOptionSelected.info.notes" v-for="internetInfoNotes in internetOptionSelected.info.notes"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="internetInfoNotes.description"></span> </div> </div> <!-- RED --> <div v-if="isRedCard" :class="['card--offer--content-subtitle', 'card--desktop__table-display', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-if="dataAmountDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed"> <span v-html="dataAmountDescription[addNumberSelectedLength]"></span> </span> </div> <div v-if="isRedCard && dataAmountObject" class="card--offer--content-infoNotes"> <div v-if="dataAmountObject" v-for="dataInfoNotes in dataAmountObject"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="dataInfoNotes.description"></span> </div> </div> </div> <!-- TELEVISION SERVICE--> <div v-if="televisionOptionSelected && !isRedCard" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg"> <svg v-if="!isDarkTheme" width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 15.5H15" stroke="url(#paint0_linear_1148_40647_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10 15.5V13.5" stroke="url(#paint1_linear_1148_40647_fibra-3-light)" stroke-linejoin="round"/> <path d="M2.5 0.5H19.5V11.5C19.5 12.6055 18.6055 13.5 17.5 13.5H2.5C1.39453 13.5 0.5 12.6055 0.5 11.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="url(#paint2_linear_1148_40647_fibra-3-light)" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M10.1523 11.0312C10.1523 11.1172 10.0859 11.1836 10 11.1836C9.91406 11.1836 9.84766 11.1172 9.84766 11.0312C9.84766 10.9453 9.91406 10.8789 10 10.8789C10.0859 10.8789 10.1523 10.9453 10.1523 11.0312Z" stroke="url(#paint3_linear_1148_40647_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.6562 11.0312C10.6562 11.3945 10.3633 11.6875 10 11.6875C9.63672 11.6875 9.34375 11.3945 9.34375 11.0312C9.34375 10.668 9.63672 10.375 10 10.375C10.3633 10.375 10.6562 10.668 10.6562 11.0312Z" fill="url(#paint4_linear_1148_40647_fibra-3-light)"/> <defs> <linearGradient id="paint0_linear_1148_40647_fibra-3-light" x1="5.09115" y1="15.9515" x2="14.8883" y2="14.9002" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_1148_40647_fibra-3-light" x1="10.0091" y1="14.4031" x2="11.0001" y2="14.3977" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint2_linear_1148_40647_fibra-3-light" x1="0.673177" y1="6.3699" x2="19.4975" y2="6.07465" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint3_linear_1148_40647_fibra-3-light" x1="9.85043" y1="11.0165" x2="10.1523" y2="11.0132" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint4_linear_1148_40647_fibra-3-light" x1="9.35571" y1="10.9676" x2="10.6562" y2="10.9537" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7 19.5H17" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 19.5V17.5" stroke="#F06666" stroke-linejoin="round"/> <path d="M4.5 4.5H21.5V15.5C21.5 16.6055 20.6055 17.5 19.5 17.5H4.5C3.39453 17.5 2.5 16.6055 2.5 15.5V6.5C2.5 5.39453 3.39453 4.5 4.5 4.5Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M12.1523 15.0312C12.1523 15.1172 12.0859 15.1836 12 15.1836C11.9141 15.1836 11.8477 15.1172 11.8477 15.0312C11.8477 14.9453 11.9141 14.8789 12 14.8789C12.0859 14.8789 12.1523 14.9453 12.1523 15.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.6562 15.0312C12.6562 15.3945 12.3633 15.6875 12 15.6875C11.6367 15.6875 11.3438 15.3945 11.3438 15.0312C11.3438 14.668 11.6367 14.375 12 14.375C12.3633 14.375 12.6562 14.668 12.6562 15.0312Z" fill="#F06666"/> </svg> </span> <span :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Tv</span> <!-- TELEVISION SERVICE (PILL)--> <span v-if="televisionOptionSelected.pill && televisionOptionSelected.pill.description" class="card-content__pill" :style="{'backgroundColor': televisionOptionSelected.pill.backgroundColor, 'color': televisionOptionSelected.pill.textColor}" v-html="televisionOptionSelected.pill.description"> </span> </div> <!-- TELEVISION (SUBTITLE)--> <div :class="['card--offer--content-subtitle', 'television-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span class="card--offer--content-subtitle-speed bc-offer-subtitle-dark" v-html="televisionOptionSelected.description"></span> </div> <!-- TELEVISION (INFO NOTES)--> <div v-if="hasOttsOptionsToSelect" class="card--offer--content-ottLabel"> <div class="card--offer--content-infoNotes"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]">{{i18n.ottGenericLabel}}</span> </div> </div> <!-- TELEVISION OTTs (OPTIONS) --> <div class="card--offer--content-infoNotes"> <!-- OTT OPTION (SELECTABLE) --> <div v-if="(televisionOttSelected || televisionOtts) && hasOttsOptionsToSelect"> <div class="television--offers--content"> <div class="television--offers"> <template v-for="(item, index) in televisionOtts"> <div v-if="!item.included" :class="['ott--option--box', {'selected' : item.selected, 'bc-ott-option-dark' : isDarkTheme}]" @click="selectOpt('television', item, index, 'ott')"> <div :class="{'ott--images--wrapper': item.children.length > 1}"> <template v-for="ottChildren in item.children"> <div v-for="ottChildrenOption in dataJSON[ottChildren]?.options" v-if="dataJSON[ottChildren]?.options" class="television--offers--img" v-html="ottChildrenOption.description"></div> </template> </div> <span v-html="item.timeAbbreviation"></span> </div> </template> </div> </div> </div> <!-- OTT OPTION (NOT SELECTABLE) --> <div v-if="(televisionOttSelected || televisionOtts) && !hasOttsOptionsToSelect"> <div class="television--offers--content"> <div class="television--offers"> <template v-for="(item, index) in televisionOtts"> <template v-for="ottChildren in item.children"> <template v-for="ottChildrenOpt in dataJSON[ottChildren].options"> <div class="television--offers--img" v-html="ottChildrenOpt.description"></div> </template> </template> <template v-if="index != televisionOtts.length - 1"> <span>ou</span> </template> </template> </div> </div> <span :class="['television--offers--time', {'bc-ott-option-dark' : isDarkTheme}]" v-html="televisionOttSelected.time"></span> </div> </div> </div> <!-- MOBILE SERVICE--> <div v-if="addNumberSelected && addNumberSelectedLength >= 0 && mobileDetailsDescription" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span v-if="!isRedCard" class="card--offer--heading--svg mobile"> <svg v-if="!isDarkTheme" width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.5 17.5H7.5" stroke="url(#paint0_linear_1454_6764_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2.5 0.5H11.5V17.5C11.5 18.6055 10.6055 19.5 9.5 19.5H2.5C1.39453 19.5 0.5 18.6055 0.5 17.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="url(#paint1_linear_1454_6764_fibra-3-light)" stroke-miterlimit="10" stroke-linecap="round"/> <defs> <linearGradient id="paint0_linear_1454_6764_fibra-3-light" x1="4.52734" y1="17.9515" x2="7.49725" y2="17.8559" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_1454_6764_fibra-3-light" x1="0.60026" y1="9.07908" x2="11.5008" y2="9.01136" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.5 17.5H7.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2.5 0.5H11.5V17.5C11.5 18.6055 10.6055 19.5 9.5 19.5H2.5C1.39453 19.5 0.5 18.6055 0.5 17.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> </svg> </span> <span v-if="isRedCard" class="card--offer--heading--svg" style="width: 24px;"> <svg v-if="!isDarkTheme" width="24" height="24" viewBox="0 0 24 24" style="flex-shrink: 0;" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7.00021 19.5549H10.0002M15.0002 17.5825H16.9515M10.4515 4.33624C10.4513 4.10129 10.4975 3.86861 10.5873 3.65152C10.6771 3.43442 10.8089 3.23717 10.975 3.07103C11.1411 2.9049 11.3384 2.77315 11.5555 2.68331C11.7726 2.59348 12.0053 2.54732 12.2402 2.54749H20.4902V17.6725C20.4902 18.1469 20.3018 18.6019 19.9663 18.9373C19.6308 19.2728 19.1759 19.4612 18.7015 19.4612L13.679 19.5025M11.7502 21.4337L5.29022 21.4887C4.30272 21.4887 3.50146 20.6325 3.50146 19.645V6.30871C3.50146 5.83452 3.68975 5.37974 4.02494 5.04432C4.36012 4.7089 4.81478 4.5203 5.28897 4.51996H13.539V19.645C13.539 19.8799 13.4927 20.1125 13.4028 20.3295C13.3129 20.5465 13.1812 20.7437 13.0151 20.9098C12.849 21.0759 12.6518 21.2077 12.4347 21.2976C12.2177 21.3874 11.9851 21.4337 11.7502 21.4337Z" stroke="url(#paint0_linear_249_85781_fibra-3-light)" stroke-miterlimit="10" stroke-linecap="round"/> <defs> <linearGradient id="paint0_linear_249_85781_fibra-3-light" x1="3.50146" y1="21.4887" x2="22.3312" y2="4.60001" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.99997 19.5549H9.99997M15 17.5825H16.9512M10.4512 4.33624C10.4511 4.10129 10.4972 3.86861 10.587 3.65152C10.6769 3.43442 10.8086 3.23717 10.9748 3.07103C11.1409 2.9049 11.3382 2.77315 11.5552 2.68331C11.7723 2.59348 12.005 2.54732 12.24 2.54749H20.49V17.6725C20.49 18.1469 20.3015 18.6019 19.9661 18.9373C19.6306 19.2728 19.1756 19.4612 18.7012 19.4612L13.6787 19.5025M11.75 21.4337L5.28997 21.4887C4.30247 21.4887 3.50122 20.6325 3.50122 19.645V6.30871C3.50122 5.83452 3.68951 5.37974 4.02469 5.04432C4.35988 4.7089 4.81453 4.5203 5.28872 4.51996H13.5387V19.645C13.5387 19.8799 13.4925 20.1125 13.4026 20.3295C13.3127 20.5465 13.1809 20.7437 13.0148 20.9098C12.8487 21.0759 12.6515 21.2077 12.4345 21.2976C12.2175 21.3874 11.9849 21.4337 11.75 21.4337Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> </svg> </span> <span v-if="isRedCard" :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Voz</span> <span v-else :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Móvel</span> </div> <div :id="getMobileSubtitleId" v-if="!isRedCard" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-html="addNumberSelected.description"></span> <span v-if="mobileDetailsDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed" v-html="mobileDetailsDescription[addNumberSelectedLength]"></span> </div> <div :id="getMobileSubtitleId" v-if="isRedCard" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-if="mobileDetailsDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed" v-html="mobileDetailsDescription[addNumberSelectedLength]"></span> </div> <div class="card--offer--content-infoNotes"> <div v-if="isRedCard && voiceAmountObject"> <div v-if="voiceAmountObject" v-for="voiceInfoNotes in voiceAmountObject"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="voiceInfoNotes.description"></span> </div> </div> <div v-if="!isRedCard" class="mobile--numbers"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="addNumberSelected.information"></span> </div> </div> </div> <!-- RED SIM CARD SECTION--> <div v-if="addNumberSelected && addNumberSelectedLength >= 0 && mobileDetailsDescription && isRedCard" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg" style="width: fit-content;"> <svg v-if="!isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M6.5 19.5935V5.01846C6.50033 4.44503 6.72827 3.89518 7.13375 3.4897C7.53922 3.08423 8.08907 2.85629 8.6625 2.85596H14L17.5 6.25596V19.5935C17.4997 20.1669 17.2717 20.7167 16.8663 21.1222C16.4608 21.5277 15.9109 21.7556 15.3375 21.756H8.6625C8.08907 21.7556 7.53922 21.5277 7.13375 21.1222C6.72827 20.7167 6.50033 20.1669 6.5 19.5935Z" stroke="url(#paint0_linear_973_7589_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.5 10.7559H10.5C9.94772 10.7559 9.5 11.2037 9.5 11.7559V17.7559C9.5 18.3082 9.94772 18.7559 10.5 18.7559H13.5C14.0523 18.7559 14.5 18.3082 14.5 17.7559V11.7559C14.5 11.2037 14.0523 10.7559 13.5 10.7559Z" stroke="url(#paint1_linear_973_7589_fibra-3-light)" stroke-linecap="round" stroke-linejoin="round"/> <defs> <linearGradient id="paint0_linear_973_7589_fibra-3-light" x1="6.5" y1="21.756" x2="22.9334" y2="12.1915" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_973_7589_fibra-3-light" x1="6.5" y1="21.756" x2="22.9334" y2="12.1915" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M6.5 19.5935V5.01846C6.50033 4.44503 6.72827 3.89518 7.13375 3.4897C7.53922 3.08423 8.08907 2.85629 8.6625 2.85596H14L17.5 6.25596V19.5935C17.4997 20.1669 17.2717 20.7167 16.8663 21.1222C16.4608 21.5277 15.9109 21.7556 15.3375 21.756H8.6625C8.08907 21.7556 7.53922 21.5277 7.13375 21.1222C6.72827 20.7167 6.50033 20.1669 6.5 19.5935Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.5 10.7559H10.5C9.94772 10.7559 9.5 11.2037 9.5 11.7559V17.7559C9.5 18.3082 9.94772 18.7559 10.5 18.7559H13.5C14.0523 18.7559 14.5 18.3082 14.5 17.7559V11.7559C14.5 11.2037 14.0523 10.7559 13.5 10.7559Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">SIM</span> </span> </div> <div v-if="addNumberSelected.description" :id="getMobileSubtitleId" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-html="addNumberSelected.description"></span> </div> <div v-if="addNumberSelected.information" class="card--offer--content-infoNotes"> <div class="mobile--numbers"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="addNumberSelected.information"></span> </div> </div> </div> </div> <!--BUTTON ACTIONS (DESKTOP)--> <div class="buttons-wrapper buttons-wrapper--mobile"> <div :class="['card--desktop__flex-display', 'card-button', {'bc-card-button-dark' : isDarkTheme}]"> <binding-submit-button id="fibra-3-light" :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-light_primary","href":"","paramOnClick":"$(\"#fibra-3-light\").empty();dataBindingOverlay.openDialog(\"fibra-3-light\",\"?i_id=fibra-3-light\");bwc_loadCardOfferPlaceholder(\"fibra-3-light\");","enableTravellers":"","target":"_self","title":"Aderir"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" binding-type="CBU"> </binding-submit-button> </div> <div :class="['card--desktop__flex-display', 'card-button', {'bc-card-button-tertiary-dark' : isDarkTheme}]"> <binding-submit-button :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-light_secondary","href":"/content/digital-sites/pt/particulares/pacotes/configurador.html","paramOnClick":"","target":"_self","title":"Saber mais"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" :tertiary="true" binding-type="CBU"> </binding-submit-button> </div> </div> </div> </div> </div> <!-- MEMBERSHIP ADVANTAGES --> <div v-if="offersDisplayed || voucherData" :class="['binding_vTwo--card--membershipAdvantage', { 'bc-advantage-dark': isDarkTheme }]"> <div class="binding_vTwo--card--membershipAdvantage--sectionTitle"> <span :class="[{'bc-advantage-title-dark' : isDarkTheme}]">Escolha uma vantagem</span> </div> <div class="binding_vTwo--card--membershipAdvantage--sectionOffers"> <div v-for="offer in offersDisplayed"> <div :class="['binding_vTwo--card--membershipAdvantage--sectionOffers--options', {'selected' : offer.selected, 'bc-offers-dark':isDarkTheme}]" @click="selectOpt('offer', offer)" v-cloak> {{processStringLabel(offer.description)}} </div> </div> </div> <div v-if="voucherData" class="binding_vTwo--card--membershipAdvantage--sectionVoucher"> <div :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--wrapper', {'binding_vTwo--card--membershipAdvantage--sectionVoucher--new--direction': !hasVoucherDescriptionCard}]"> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--wrapper--plus"> <span :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--plus', {'bc-voucher-dark' : isDarkTheme }]">+</span> <span v-if="i18n.onlineExclusiveLabel != ''" :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--exclusive', {'bc-voucher-exclusive-dark' : isDarkTheme }]" v-html="i18n.onlineExclusiveLabel"></span> </div> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--items"> <template v-if="hasVoucherDescriptionCard"> <template v-for="(data, index) in makeVoucherDescription()"> <span v-if="data.image" :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--img', {'bc-voucher-dark' : isDarkTheme }]" v-html="data.image"></span> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--description"><span :class="[{'bc-voucher-dark' : isDarkTheme }]" v-html="data.description"></span></div> <span :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--plus', {'bc-voucher-dark' : isDarkTheme }]" v-if="offersDisplayed && index < makeVoucherDescription().length - 1">+</span> </template> </template> <template v-else> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--description"><span :class="[{'bc-voucher-dark' : isDarkTheme }]">{{makeVoucherDescription()}}</span></div> </template> </div> </div> </div> </div> </div> </div> <div id="databinding-fibra-3-light-spinner" v-show="!isLoaded"> <div id="vf-loading-spinner-68478" class="vf-loading-spinner vf-loading-spinner--default"> <img src="/content/dam/digital-commons/loading-spinner.svg" class="vf-loading-spinner--img vf-loading-spinner--img--default"/> </div> </div> </div> <script id="bindingSubmitButton" type="text/x-template"> <a :id="generateId" v-if="!dialogHtmlAttributes.enableTravellers" :class="{'button button--primary binding--summary__cta__button no-gutter--all' : !tertiary, 'button button--data-binding--nav no-gutter--all' : tertiary}" @click="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" @click.right="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" @click.middle="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" :href="dialogHtmlAttributes.href ? dialogHtmlAttributes.href : 'javascript:void(0)'" :target="dialogHtmlAttributes.target"> {{dialogHtmlAttributes.title}} </a> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_bindingSubmitButton/clientlibs.min.js"></script> <script type="text/javascript" onload="loadComponent('fibra-3-light');" src="/etc.clientlibs/digital-commons/components/content/authored/vf_dataBindingV2/clientlibs.5dc456039c4d0123f65e360f64bf6439.js"></script> <link rel="stylesheet" href="/etc.clientlibs/digital-commons/components/content/authored/vf_dataBindingV2/clientlibs.min.97160e1a1b6030e4ede0ce480a8a7fb1.css" type="text/css"> </div> </div> </div> </div></div> </div> </div> <div class="grid__item grid__item--gutter grid__item--top grid__item--align-left grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_dataBindingV2 vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--half "> <div id="databinding-fibra-3-plus" ref="databinding" class=" binding_vTwo"> <div :class="{ 'hide': !isLoaded }" v-cloak> <div class="binding_vTwo--card-tag"> <div style="background-color:#000000; color: #ffffff;" class="binding_vTwo--campaign-tag"> Black Friday | Desconto €5/mês </div> </div> <input id="databinding-fibra-3-plus-dialogProperties" type="hidden" data-dialog="{"jsonTab":{"id":"fibra-3-plus","jsonPath":"/content/dam/digital-sites/cardinali/jsons/3p/fibra-3-plus.json","darkTheme":"","spinnerCard":"","bySide":"true","campaignElements":[{"campaignName":"Black Friday | Desconto €5/mês","campaignColor":"#000000","campaignTextColor":"#ffffff"}]},"buttonTab":{"hideKnowMoreButtonOnCard":"","enableTravellers":"","title":"Aderir","titleConfigurator":"Aderir","pathURL":"","paramOnClick":"$(\"#fibra-3-plus\").empty();dataBindingOverlay.openDialog(\"fibra-3-plus\",\"?i_id=fibra-3-plus\", null, \"fixo\");bwc_loadCardOfferPlaceholder(\"fibra-3-plus\"); ","target":"_self","pathURLConfigurator":"","paramOnClickConfigurator":"$(\"#fibra-3-plus\").empty();dataBindingOverlay.openDialog(\"fibra-3-plus\",\"?i_id=fibra-3-plus\", null, \"fixo\");bwc_loadCardOfferPlaceholder(\"fibra-3-plus\"); ","offersLinkTo":"","offersScrollTo":"","targetConfigurator":"_self","priceSectionPosition":"bottom"},"secondaryButtonTab":{"showSecondaryButtonOnCard":"true","titleSecondaryButton":"Saber mais","pathURLSecondaryButton":"/content/digital-sites/pt/particulares/pacotes/configurador.html","paramOnClickSecondaryButton":"","targetSecondaryButton":"_self"},"landingPagesTab":{"bottomBarActivated":"","htmlBottomBar":""}}" data-value="{"description":"fibra3 Plus","descriptionE2E":"fibra3 Plus","idSB":"BU247 - TvB+Cld200+N200-1G+V HT com Tvbox","idBaseCECE":"Fibra3 Plus_24M_ANG_051124","formType":"cbu-standard","isBestOffer":false,"baseValue":46.5,"basePreviousValue":46.5,"omnitureTracking":"fibra-3-plus","binding":{"selection":"block","options":[{"id":1,"price":0,"amountE2E":24,"selected":true,"display":false,"description":"24 meses","descriptionE2E":"24"}]},"offer":{"selection":"block","options":[{"id":1,"idOptCECE":"Desc. €5/mês/24m_Camp","price":-5,"isMonthly":true,"selected":true,"display":true,"showOnCard":"true","overridePreviousPrice":0,"description":"Desconto Black Friday €5 x 24 meses","descriptionSubtitle":"Durante 24 meses","descriptionE2E":"Vantagem de adesão: desconto Black Friday","discountTime":24}],"optionsE2E":[{"id":1,"idOptCECE":"Voucher €150 Online","isMonthly":false,"description":"Voucher €150 em loja online","descriptionCard":["Voucher €150 em loja online"],"image":["<img src=\"/content/dam/digital-sites/cardinali/icons/voucher-loja-100.png\"/>"],"price":150,"offerId":"Marcador Campanha Exclusiva Online: Voucher Eur150 - MCEO4","onlineExclusive":true},{"id":2,"idOptCECE":"Desconto Fidelização 3P PR","isMonthly":false,"description":"Desconto incluído na mensalidade: ","price":16.81,"discountTime":24},{"id":3,"isMonthly":false,"description":"Ativação: ","price":0,"previousPriceE2E":134},{"id":4,"idOptCECE":"Oferta Instalação - Novo Cliente","isMonthly":false,"description":"Instalação: ","previousPriceE2E":167,"price":0}]},"television":{"channels":"140","selection":"block","ottPill":{"description":"1 Serviço incluído","backgroundColor":"#FECB00","textColor":"black"},"ott":[{"id":1,"idOptCECE":"140+AP (3m)","description":"<b>Amazon Prime</b>","descriptionE2E":"Amazon Prime","time":"durante 3 meses","timeAbbreviation":"3 meses","timeE2E":"durante 3 meses","selected":true,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["prime"]},{"id":2,"idOptCECE":"140+MAX (3m)","description":"<b>Max</b>","descriptionE2E":"Max","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["hbo"]},{"id":3,"idOptCECE":"140+Disney+(3m)","description":"<b>Disney+</b>","descriptionE2E":"Disney+","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["disney"]}],"options":[{"id":1,"description":"<b>VBox Smart</b>","descriptionE2E":"VBox Smart","selected":true,"disabled":false,"tvBoxE2E":true,"price":0,"info":{"notes":[{"id":1,"idNotesCECE":"VBox SMART","description":"Tv Box com qualidade de imagem 4K, Google Play Store, Chromecast built in, ligação por Wi-Fi ao Smart Router e comando Bluetooth com tecla Assistente Google para pesquisa inteligente por voz.","descriptionE2E":""}]}},{"id":2,"description":"<b>Box TV PLAY</b>","descriptionE2E":"Box TV PLAY","selected":false,"tvBoxE2E":true,"price":5,"link":{"description":"Saber Mais","url":"https://www.vodafone.pt/pacotes/televisao/tv-box/vodafone-tv-play.html","target":"_blank"},"info":{"notes":[{"id":1,"idNotesCECE":"Upgrade Box Vodafone TV PLAY €5","description":"Tv Box com colunas e sistema de som Dolby Atmos embutidas, tecnologia de som Bang&Olufsen, Assistente de Voz mãos livres “Hey Google”, Google Play Store, Chromecast built in, ligação por Wi-Fi ao Smart Router e comando Bluetooth.","descriptionE2E":""}]}}]},"internet":{"selection":"block","options":[{"id":1,"idOptCECE":"1Gbps/400","description":"1 Gbps/400 Mbps <s><small>500/100 Mbps</small></s> ","descriptionE2E":"Velocidade 1 Gbps/400 Mbps","price":0,"selected":true,"display":true,"hideGrantedSpeedOnSummary":true,"guaranteedSpeedLabel":"","downloadE2E":{"speed":1,"unit":"Gbps"},"uploadE2E":{"speed":400,"unit":"Mbps"},"info":{"notes":[{"id":1,"description":"<s>500/100 Mbps</s>","descriptionE2E":""},{"id":2,"description":"Smart Router com Wi-Fi 6","descriptionE2E":"Smart Router com Wi-Fi 6"}]}}]},"phone":{"selection":"block","options":[{"id":1,"idOptCECE":"Voz fixa Ilimitado s/ TLF incluído","description":"Rede fixa 24 horas e 31 países internacionais","descriptionE2E":"Chamadas incluídas","selected":true,"display":true,"price":0,"purE2E":"sites.cards.pur_label_fixo","info":{"notes":[{"id":1,"description":"Não inclui o equipamento"}]}}]},"prime":{"selection":"block","options":[{"id":1,"descriptionE2E":"Amazon Prime","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/amazon-prime.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Entregas grátis até 48 horas, Prime Video, Prime Gaming e Amazon Photos."}]}}]},"disney":{"selection":"block","options":[{"id":1,"descriptionE2E":"Disney+","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/disneyplus.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Inclui séries e filmes da Disney, Pixar, Marvel, Star Wars, National Geographic e Star."}]}}]},"hbo":{"selection":"block","options":[{"id":1,"descriptionE2E":"Max","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/hbomax.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Inclui séries e filmes da HBO, Max Originals, Warner Bros, DC e Cartoon Network."}]}}]}}" data-path="/content/dam/digital-sites/cardinali/jsons/3p/fibra-3-plus.json" data-cardId="fibra-3-plus" data-buttonData="{"id":"fibra-3-plus","href":"","paramOnClick":"$(\"#fibra-3-plus\").empty();dataBindingOverlay.openDialog(\"fibra-3-plus\",\"?i_id=fibra-3-plus\", null, \"fixo\");bwc_loadCardOfferPlaceholder(\"fibra-3-plus\"); ","target":"_self","title":"Aderir"}" ref="dialogPropertiesRef"/> <div :class="['card-wrapper', {'cw-dark': isDarkTheme, 'bottom-border-no-offer': !offersDisplayed}]" style="border: 2px solid #000000;border-radius: 0 6px 6px 6px;"> <div class="binding_vTwo--card"> <div id="databinding-fibra-3-plus-cardData" class="binding_vTwo--card--container"> <div class="binding_vTwo--card--offer"> <div :class="['binding_vTwo--card--offer-section price--section', { 'bottom-border': offersDisplayed }]"> <!--CARD NAME | PRICE | CROSSED PRICE--> <div> <div :class="['card-name', { 'bc-card-name-dark' : isDarkTheme, 'hide': !dataJSON.description }]" v-html="dataJSON.description"></div> <div class="card-price-wrapper"> <div v-if="totalPrice" :class="[dataJSON.description ? 'card-price' : 'card-price-without-card-name', { 'bc-card-price-dark' : isDarkTheme }]"> <span :id="getCardPriceId" class="notranslate">{{processPriceLabel(totalPrice)}}</span><span class="bundle-month__unit">/mês</span> </div> <div v-if="descriptionHeader"> <span :class="['card-risked-price', { 'bc-card-risked-price-dark' : isDarkTheme }]" v-html="descriptionHeader"></span> </div> <div v-else-if="totalPreviousPrice && totalPrice < totalPreviousPrice" :class="['card-risked-price', 'strike', { 'bc-card-risked-price-dark' : isDarkTheme }]"> <span v-html="processPriceLabel(totalPreviousPrice)"></span>/mês </div> </div> </div> <!--BUTTON ACTIONS (MOBILE)--> <div class="buttons-wrapper"> <div :class="['card--mobile__flex-display', 'card-button', {'bc-card-button-dark' : isDarkTheme}]"> <binding-submit-button id="fibra-3-plus" :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-plus_primary","href":"","paramOnClick":"$(\"#fibra-3-plus\").empty();dataBindingOverlay.openDialog(\"fibra-3-plus\",\"?i_id=fibra-3-plus\", null, \"fixo\");bwc_loadCardOfferPlaceholder(\"fibra-3-plus\"); ","enableTravellers":"","target":"_self","title":"Aderir"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" binding-type="CBU" :is-mobile="true"> </binding-submit-button> </div> <div :class="['card--mobile__flex-display', 'card-button', {'bc-card-button-tertiary-dark' : isDarkTheme}]"> <binding-submit-button :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-plus_secondary","href":"/content/digital-sites/pt/particulares/pacotes/configurador.html","paramOnClick":"","target":"_self","title":"Saber mais"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" :tertiary="true" binding-type="CBU"> </binding-submit-button> </div> </div> </div> <!--SERVICES SECTION--> <div :class="['binding_vTwo--card--offer-section', { 'bottom-border': offersDisplayed }]"> <!-- INTERNET SERVICE--> <div v-if="internetOptionSelected || isRedCard" :class="['card-offer-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg"> <svg v-if="!isDarkTheme && !isRedCard" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.51172 9.5C7.75391 4.25 16.2656 4.25 21.5117 9.5" stroke="url(#paint0_linear_859_164822_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5.26172 12.5C7.0625 10.6992 9.50391 9.6875 12.0469 9.6875C14.5938 9.6875 17.0352 10.6992 18.8359 12.5" stroke="url(#paint1_linear_859_164822_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.08594 15.4844C10.2617 13.3047 13.7969 13.3047 15.9766 15.4844" stroke="url(#paint2_linear_859_164822_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.5117 19.0312C12.5117 19.3086 12.2852 19.5312 12.0117 19.5312C11.7344 19.5312 11.5117 19.3086 11.5117 19.0312C11.5117 18.7539 11.7344 18.5312 12.0117 18.5312C12.2852 18.5312 12.5117 18.7539 12.5117 19.0312Z" stroke="url(#paint3_linear_859_164822_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.3242 19.0312C12.3242 19.2031 12.1836 19.3438 12.0117 19.3438C11.8359 19.3438 11.6992 19.2031 11.6992 19.0312C11.6992 18.8594 11.8359 18.7188 12.0117 18.7188C12.1836 18.7188 12.3242 18.8594 12.3242 19.0312Z" fill="url(#paint4_linear_859_164822_fibra-3-plus)" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.1367 19.0312C12.1367 19.1016 12.0781 19.1562 12.0117 19.1562C11.9414 19.1562 11.8867 19.1016 11.8867 19.0312C11.8867 18.9609 11.9414 18.9062 12.0117 18.9062C12.0781 18.9062 12.1367 18.9609 12.1367 19.0312Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/> <defs> <linearGradient id="paint0_linear_859_164822_fibra-3-plus" x1="2.6849" y1="7.3404" x2="21.4634" y2="6.36798" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_859_164822_fibra-3-plus" x1="5.38544" y1="10.9574" x2="18.8014" y2="10.2626" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint2_linear_859_164822_fibra-3-plus" x1="8.15786" y1="14.5878" x2="15.9565" y2="14.1838" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint3_linear_859_164822_fibra-3-plus" x1="11.5208" y1="18.9828" x2="12.5117" y2="18.9721" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint4_linear_859_164822_fibra-3-plus" x1="11.7049" y1="19.001" x2="12.3242" y2="18.9943" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else-if="isRedCard && !isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M15.25 11.9634C14.9739 11.9634 14.75 12.1873 14.75 12.4634C14.75 12.7396 14.9739 12.9634 15.25 12.9634V11.9634ZM17 12.4634H17.5C17.5 12.1873 17.2761 11.9634 17 11.9634V12.4634ZM17 13.9634H16.5C16.5 13.9682 16.5001 13.9729 16.5002 13.9777L17 13.9634ZM16.125 15.1509L16.2567 15.6333L16.2595 15.6325L16.125 15.1509ZM16.3712 10.1359C16.5009 10.3797 16.8037 10.4721 17.0475 10.3423C17.2912 10.2125 17.3836 9.9097 17.2538 9.66596L16.3712 10.1359ZM10.48 9.76207C10.7562 9.76207 10.98 9.53821 10.98 9.26207C10.98 8.98593 10.7562 8.76207 10.48 8.76207V9.76207ZM7.93752 9.26207V8.76207C7.66138 8.76207 7.43752 8.98593 7.43752 9.26207H7.93752ZM7.93752 11.8871H7.43752C7.43752 12.0589 7.52574 12.2187 7.67114 12.3102C7.81654 12.4017 7.99875 12.4122 8.15368 12.3379L7.93752 11.8871ZM8.21127 11.7558L8.01586 11.2956C8.00887 11.2986 8.00195 11.3017 7.9951 11.305L8.21127 11.7558ZM8.05247 14.4642C7.84379 14.2834 7.52801 14.3059 7.34716 14.5146C7.16632 14.7233 7.18888 15.0391 7.39756 15.2199L8.05247 14.4642ZM21.5 12.2559H21H21.5ZM12 2.75586V2.25586V2.75586ZM21.5 2.75586H22V2.25586H21.5V2.75586ZM15.25 12.9634H17V11.9634H15.25V12.9634ZM16.5 12.4634V13.9634H17.5V12.4634H16.5ZM16.5002 13.9777C16.5046 14.1333 16.4569 14.286 16.3645 14.4113L17.1696 15.0045C17.3943 14.6995 17.5106 14.328 17.4998 13.9492L16.5002 13.9777ZM16.3645 14.4113C16.2722 14.5366 16.1405 14.6275 15.9906 14.6694L16.2595 15.6325C16.6244 15.5306 16.9448 15.3096 17.1696 15.0045L16.3645 14.4113ZM15.9933 14.6686C15.5022 14.8026 14.8829 14.8732 14.4079 14.6224C13.9874 14.4004 13.5 13.8213 13.5 12.2134H12.5C12.5 14.0093 13.0576 15.0402 13.9409 15.5067C14.7696 15.9443 15.7128 15.7817 16.2567 15.6333L15.9933 14.6686ZM13.5 12.2134C13.5 11.3651 13.6907 10.8085 13.9379 10.4505C14.1824 10.0964 14.5066 9.90041 14.8479 9.81128C15.1968 9.72017 15.5641 9.74162 15.8648 9.83222C16.1872 9.92936 16.338 10.0737 16.3712 10.1359L17.2538 9.66596C17.0407 9.26569 16.5919 9.0069 16.1533 8.87474C15.6929 8.73604 15.1379 8.70202 14.5952 8.84372C14.045 8.9874 13.5084 9.31248 13.115 9.88227C12.7243 10.4481 12.5 11.218 12.5 12.2134H13.5ZM10.48 8.76207H7.93752V9.76207H10.48V8.76207ZM7.43752 9.26207V11.8871H8.43752V9.26207H7.43752ZM8.15368 12.3379L8.42743 12.2067L7.9951 11.305L7.72135 11.4362L8.15368 12.3379ZM8.40668 12.2161C8.62697 12.1225 8.86828 12.0896 9.10557 12.1208L9.23582 11.1293C8.82161 11.0749 8.40039 11.1323 8.01586 11.2956L8.40668 12.2161ZM9.10557 12.1208C9.34286 12.152 9.56749 12.2461 9.75615 12.3933L10.3714 11.605C10.0421 11.348 9.65003 11.1837 9.23582 11.1293L9.10557 12.1208ZM9.75615 12.3933C9.94481 12.5406 10.0906 12.7356 10.1785 12.9583L11.1087 12.5912C10.9553 12.2026 10.7008 11.8621 10.3714 11.605L9.75615 12.3933ZM10.1785 12.9583C10.2663 13.1809 10.293 13.423 10.2558 13.6594L11.2436 13.815C11.3086 13.4023 11.262 12.9798 11.1087 12.5912L10.1785 12.9583ZM10.2558 13.6594C10.2185 13.8958 10.1187 14.1179 9.96666 14.3027L10.7389 14.9381C11.0043 14.6154 11.1786 14.2277 11.2436 13.815L10.2558 13.6594ZM9.96666 14.3027C9.81461 14.4876 9.61587 14.6283 9.39108 14.7105L9.73419 15.6497C10.1266 15.5064 10.4735 15.2607 10.7389 14.9381L9.96666 14.3027ZM9.39108 14.7105C9.16628 14.7926 8.9236 14.813 8.68822 14.7697L8.50731 15.7532C8.91818 15.8288 9.34179 15.7931 9.73419 15.6497L9.39108 14.7105ZM8.68822 14.7697C8.45284 14.7264 8.23333 14.621 8.05247 14.4642L7.39756 15.2199C7.71327 15.4935 8.09643 15.6777 8.50731 15.7532L8.68822 14.7697ZM21 12.2559C21 14.0359 20.4722 15.7759 19.4832 17.256L20.3147 17.8116C21.4135 16.1671 22 14.2337 22 12.2559H21ZM19.4832 17.256C18.4943 18.736 17.0887 19.8896 15.4442 20.5708L15.8268 21.4947C17.6541 20.7378 19.2159 19.4561 20.3147 17.8116L19.4832 17.256ZM15.4442 20.5708C13.7996 21.252 11.99 21.4302 10.2442 21.0829L10.0491 22.0637C11.9889 22.4496 13.9996 22.2515 15.8268 21.4947L15.4442 20.5708ZM10.2442 21.0829C8.49836 20.7357 6.89472 19.8785 5.63604 18.6198L4.92894 19.3269C6.32746 20.7255 8.10929 21.6779 10.0491 22.0637L10.2442 21.0829ZM5.63604 18.6198C4.37737 17.3611 3.5202 15.7575 3.17294 14.0117L2.19215 14.2068C2.578 16.1466 3.53041 17.9284 4.92894 19.3269L5.63604 18.6198ZM3.17294 14.0117C2.82567 12.2658 3.0039 10.4562 3.68509 8.81171L2.76121 8.42903C2.00433 10.2563 1.8063 12.267 2.19215 14.2068L3.17294 14.0117ZM3.68509 8.81171C4.36628 7.16717 5.51983 5.76157 6.99987 4.77263L6.4443 3.94116C4.79981 5.03998 3.51809 6.60176 2.76121 8.42903L3.68509 8.81171ZM6.99987 4.77263C8.47991 3.7837 10.22 3.25586 12 3.25586V2.25586C10.0222 2.25586 8.08879 2.84235 6.4443 3.94116L6.99987 4.77263ZM12 3.25586H21.5V2.25586H12V3.25586ZM21 2.75586V12.2559H22V2.75586H21Z" fill="url(#paint0_linear_1743_2252_fibra-3-plus)"/> <defs> <linearGradient id="paint0_linear_1743_2252_fibra-3-plus" x1="2.5" y1="21.7559" x2="21.5" y2="2.75586" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else-if="isRedCard && isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M15.25 11.7076C14.9739 11.7076 14.75 11.9314 14.75 12.2076C14.75 12.4837 14.9739 12.7076 15.25 12.7076V11.7076ZM17 12.2076H17.5C17.5 11.9314 17.2761 11.7076 17 11.7076V12.2076ZM17 13.7076H16.5C16.5 13.7123 16.5001 13.7171 16.5002 13.7218L17 13.7076ZM16.125 14.8951L16.2567 15.3774L16.2595 15.3767L16.125 14.8951ZM16.3712 9.88006C16.5009 10.1238 16.8037 10.2162 17.0475 10.0864C17.2912 9.95664 17.3836 9.65384 17.2538 9.4101L16.3712 9.88006ZM10.48 9.50621C10.7562 9.50621 10.98 9.28235 10.98 9.00621C10.98 8.73007 10.7562 8.50621 10.48 8.50621V9.50621ZM7.93752 9.00621V8.50621C7.66138 8.50621 7.43752 8.73007 7.43752 9.00621H7.93752ZM7.93752 11.6312H7.43752C7.43752 11.803 7.52574 11.9628 7.67114 12.0543C7.81654 12.1459 7.99875 12.1563 8.15368 12.0821L7.93752 11.6312ZM8.21127 11.5L8.01586 11.0397C8.00887 11.0427 8.00195 11.0458 7.9951 11.0491L8.21127 11.5ZM8.05247 14.2084C7.84379 14.0275 7.52801 14.0501 7.34716 14.2588C7.16632 14.4674 7.18888 14.7832 7.39756 14.9641L8.05247 14.2084ZM21.5 12H21H21.5ZM12 2.5V2V2.5ZM21.5 2.5H22V2H21.5V2.5ZM15.25 12.7076H17V11.7076H15.25V12.7076ZM16.5 12.2076V13.7076H17.5V12.2076H16.5ZM16.5002 13.7218C16.5046 13.8775 16.4569 14.0301 16.3645 14.1554L17.1696 14.7486C17.3943 14.4436 17.5106 14.0721 17.4998 13.6933L16.5002 13.7218ZM16.3645 14.1554C16.2722 14.2808 16.1405 14.3716 15.9906 14.4135L16.2595 15.3767C16.6244 15.2748 16.9448 15.0537 17.1696 14.7486L16.3645 14.1554ZM15.9933 14.4127C15.5022 14.5468 14.8829 14.6174 14.4079 14.3665C13.9874 14.1445 13.5 13.5654 13.5 11.9576H12.5C12.5 13.7535 13.0576 14.7844 13.9409 15.2508C14.7696 15.6884 15.7128 15.5259 16.2567 15.3774L15.9933 14.4127ZM13.5 11.9576C13.5 11.1093 13.6907 10.5527 13.9379 10.1946C14.1824 9.84057 14.5066 9.64455 14.8479 9.55542C15.1968 9.46431 15.5641 9.48576 15.8648 9.57636C16.1872 9.6735 16.338 9.81783 16.3712 9.88006L17.2538 9.4101C17.0407 9.00983 16.5919 8.75104 16.1533 8.61888C15.6929 8.48018 15.1379 8.44616 14.5952 8.58787C14.045 8.73154 13.5084 9.05662 13.115 9.62641C12.7243 10.1922 12.5 10.9621 12.5 11.9576H13.5ZM10.48 8.50621H7.93752V9.50621H10.48V8.50621ZM7.43752 9.00621V11.6312H8.43752V9.00621H7.43752ZM8.15368 12.0821L8.42743 11.9508L7.9951 11.0491L7.72135 11.1804L8.15368 12.0821ZM8.40668 11.9602C8.62697 11.8667 8.86828 11.8338 9.10557 11.8649L9.23582 10.8735C8.82161 10.819 8.40039 10.8765 8.01586 11.0397L8.40668 11.9602ZM9.10557 11.8649C9.34286 11.8961 9.56749 11.9902 9.75615 12.1375L10.3714 11.3492C10.0421 11.0921 9.65003 10.9279 9.23582 10.8735L9.10557 11.8649ZM9.75615 12.1375C9.94481 12.2847 10.0906 12.4798 10.1785 12.7024L11.1087 12.3353C10.9553 11.9467 10.7008 11.6062 10.3714 11.3492L9.75615 12.1375ZM10.1785 12.7024C10.2663 12.925 10.293 13.1671 10.2558 13.4035L11.2436 13.5591C11.3086 13.1465 11.262 12.7239 11.1087 12.3353L10.1785 12.7024ZM10.2558 13.4035C10.2185 13.6399 10.1187 13.8621 9.96666 14.0469L10.7389 14.6822C11.0043 14.3596 11.1786 13.9718 11.2436 13.5591L10.2558 13.4035ZM9.96666 14.0469C9.81461 14.2317 9.61587 14.3725 9.39108 14.4546L9.73419 15.3939C10.1266 15.2505 10.4735 15.0048 10.7389 14.6822L9.96666 14.0469ZM9.39108 14.4546C9.16628 14.5367 8.9236 14.5572 8.68822 14.5139L8.50731 15.4974C8.91818 15.573 9.34179 15.5372 9.73419 15.3939L9.39108 14.4546ZM8.68822 14.5139C8.45284 14.4706 8.23333 14.3651 8.05247 14.2084L7.39756 14.9641C7.71327 15.2377 8.09643 15.4218 8.50731 15.4974L8.68822 14.5139ZM21 12C21 13.78 20.4722 15.5201 19.4832 17.0001L20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12H21ZM19.4832 17.0001C18.4943 18.4802 17.0887 19.6337 15.4442 20.3149L15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557L19.4832 17.0001ZM15.4442 20.3149C13.7996 20.9961 11.99 21.1743 10.2442 20.8271L10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388L15.4442 20.3149ZM10.2442 20.8271C8.49836 20.4798 6.89472 19.6226 5.63604 18.364L4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079L10.2442 20.8271ZM5.63604 18.364C4.37737 17.1053 3.5202 15.5016 3.17294 13.7558L2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711L5.63604 18.364ZM3.17294 13.7558C2.82567 12.01 3.0039 10.2004 3.68509 8.55585L2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509L3.17294 13.7558ZM3.68509 8.55585C4.36628 6.91131 5.51983 5.50571 6.99987 4.51677L6.4443 3.6853C4.79981 4.78412 3.51809 6.34591 2.76121 8.17317L3.68509 8.55585ZM6.99987 4.51677C8.47991 3.52784 10.22 3 12 3V2C10.0222 2 8.08879 2.58649 6.4443 3.6853L6.99987 4.51677ZM12 3H21.5V2H12V3ZM21 2.5V12H22V2.5H21Z" fill="#F06666"/> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.51172 9.5C7.75391 4.25 16.2656 4.25 21.5117 9.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5.26172 12.5C7.0625 10.6992 9.50391 9.6875 12.0469 9.6875C14.5938 9.6875 17.0352 10.6992 18.8359 12.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.08594 15.4844C10.2617 13.3047 13.7969 13.3047 15.9766 15.4844" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.5117 19.0312C12.5117 19.3086 12.2852 19.5312 12.0117 19.5312C11.7344 19.5312 11.5117 19.3086 11.5117 19.0312C11.5117 18.7539 11.7344 18.5312 12.0117 18.5312C12.2852 18.5312 12.5117 18.7539 12.5117 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.3242 19.0312C12.3242 19.2031 12.1836 19.3438 12.0117 19.3438C11.8359 19.3438 11.6992 19.2031 11.6992 19.0312C11.6992 18.8594 11.8359 18.7188 12.0117 18.7188C12.1836 18.7188 12.3242 18.8594 12.3242 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.1367 19.0312C12.1367 19.1016 12.0781 19.1562 12.0117 19.1562C11.9414 19.1562 11.8867 19.1016 11.8867 19.0312C11.8867 18.9609 11.9414 18.9062 12.0117 18.9062C12.0781 18.9062 12.1367 18.9609 12.1367 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> </svg> </span> <span v-if="isRedCard" :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Dados</span> <span v-else :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Net</span> <!-- INTERNET SERVICE (PILL)--> </div> <!-- NOT RED --> <div v-if="!isRedCard" :class="['card--offer--content-subtitle', 'card--desktop__table-display', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span class="card--offer--content-subtitle-speed" v-html="internetOptionSelected.downloadE2E.speed"></span> <span v-if="internetOptionSelected.downloadE2E.unit != internetOptionSelected.uploadE2E.unit" v-html="internetOptionSelected.downloadE2E.unit"></span> <span>/</span> <span class="card--offer--content-subtitle-unit" v-html="internetOptionSelected.uploadE2E.speed"></span> {{ internetOptionSelected.uploadE2E.unit }} </div> <div v-if="!isRedCard" class="card--offer--content-infoNotes"> <div v-if="internetOptionSelected.info.notes" v-for="internetInfoNotes in internetOptionSelected.info.notes"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="internetInfoNotes.description"></span> </div> </div> <!-- RED --> <div v-if="isRedCard" :class="['card--offer--content-subtitle', 'card--desktop__table-display', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-if="dataAmountDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed"> <span v-html="dataAmountDescription[addNumberSelectedLength]"></span> </span> </div> <div v-if="isRedCard && dataAmountObject" class="card--offer--content-infoNotes"> <div v-if="dataAmountObject" v-for="dataInfoNotes in dataAmountObject"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="dataInfoNotes.description"></span> </div> </div> </div> <!-- TELEVISION SERVICE--> <div v-if="televisionOptionSelected && !isRedCard" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg"> <svg v-if="!isDarkTheme" width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 15.5H15" stroke="url(#paint0_linear_1148_40647_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10 15.5V13.5" stroke="url(#paint1_linear_1148_40647_fibra-3-plus)" stroke-linejoin="round"/> <path d="M2.5 0.5H19.5V11.5C19.5 12.6055 18.6055 13.5 17.5 13.5H2.5C1.39453 13.5 0.5 12.6055 0.5 11.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="url(#paint2_linear_1148_40647_fibra-3-plus)" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M10.1523 11.0312C10.1523 11.1172 10.0859 11.1836 10 11.1836C9.91406 11.1836 9.84766 11.1172 9.84766 11.0312C9.84766 10.9453 9.91406 10.8789 10 10.8789C10.0859 10.8789 10.1523 10.9453 10.1523 11.0312Z" stroke="url(#paint3_linear_1148_40647_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.6562 11.0312C10.6562 11.3945 10.3633 11.6875 10 11.6875C9.63672 11.6875 9.34375 11.3945 9.34375 11.0312C9.34375 10.668 9.63672 10.375 10 10.375C10.3633 10.375 10.6562 10.668 10.6562 11.0312Z" fill="url(#paint4_linear_1148_40647_fibra-3-plus)"/> <defs> <linearGradient id="paint0_linear_1148_40647_fibra-3-plus" x1="5.09115" y1="15.9515" x2="14.8883" y2="14.9002" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_1148_40647_fibra-3-plus" x1="10.0091" y1="14.4031" x2="11.0001" y2="14.3977" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint2_linear_1148_40647_fibra-3-plus" x1="0.673177" y1="6.3699" x2="19.4975" y2="6.07465" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint3_linear_1148_40647_fibra-3-plus" x1="9.85043" y1="11.0165" x2="10.1523" y2="11.0132" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint4_linear_1148_40647_fibra-3-plus" x1="9.35571" y1="10.9676" x2="10.6562" y2="10.9537" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7 19.5H17" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 19.5V17.5" stroke="#F06666" stroke-linejoin="round"/> <path d="M4.5 4.5H21.5V15.5C21.5 16.6055 20.6055 17.5 19.5 17.5H4.5C3.39453 17.5 2.5 16.6055 2.5 15.5V6.5C2.5 5.39453 3.39453 4.5 4.5 4.5Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M12.1523 15.0312C12.1523 15.1172 12.0859 15.1836 12 15.1836C11.9141 15.1836 11.8477 15.1172 11.8477 15.0312C11.8477 14.9453 11.9141 14.8789 12 14.8789C12.0859 14.8789 12.1523 14.9453 12.1523 15.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.6562 15.0312C12.6562 15.3945 12.3633 15.6875 12 15.6875C11.6367 15.6875 11.3438 15.3945 11.3438 15.0312C11.3438 14.668 11.6367 14.375 12 14.375C12.3633 14.375 12.6562 14.668 12.6562 15.0312Z" fill="#F06666"/> </svg> </span> <span :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Tv</span> <!-- TELEVISION SERVICE (PILL)--> <span v-if="televisionOptionSelected.pill && televisionOptionSelected.pill.description" class="card-content__pill" :style="{'backgroundColor': televisionOptionSelected.pill.backgroundColor, 'color': televisionOptionSelected.pill.textColor}" v-html="televisionOptionSelected.pill.description"> </span> </div> <!-- TELEVISION (SUBTITLE)--> <div :class="['card--offer--content-subtitle', 'television-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span class="card--offer--content-subtitle-speed bc-offer-subtitle-dark" v-html="televisionOptionSelected.description"></span> </div> <!-- TELEVISION (INFO NOTES)--> <div v-if="hasOttsOptionsToSelect" class="card--offer--content-ottLabel"> <div class="card--offer--content-infoNotes"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]">{{i18n.ottGenericLabel}}</span> </div> </div> <!-- TELEVISION OTTs (OPTIONS) --> <div class="card--offer--content-infoNotes"> <!-- OTT OPTION (SELECTABLE) --> <div v-if="(televisionOttSelected || televisionOtts) && hasOttsOptionsToSelect"> <div class="television--offers--content"> <div class="television--offers"> <template v-for="(item, index) in televisionOtts"> <div v-if="!item.included" :class="['ott--option--box', {'selected' : item.selected, 'bc-ott-option-dark' : isDarkTheme}]" @click="selectOpt('television', item, index, 'ott')"> <div :class="{'ott--images--wrapper': item.children.length > 1}"> <template v-for="ottChildren in item.children"> <div v-for="ottChildrenOption in dataJSON[ottChildren]?.options" v-if="dataJSON[ottChildren]?.options" class="television--offers--img" v-html="ottChildrenOption.description"></div> </template> </div> <span v-html="item.timeAbbreviation"></span> </div> </template> </div> </div> </div> <!-- OTT OPTION (NOT SELECTABLE) --> <div v-if="(televisionOttSelected || televisionOtts) && !hasOttsOptionsToSelect"> <div class="television--offers--content"> <div class="television--offers"> <template v-for="(item, index) in televisionOtts"> <template v-for="ottChildren in item.children"> <template v-for="ottChildrenOpt in dataJSON[ottChildren].options"> <div class="television--offers--img" v-html="ottChildrenOpt.description"></div> </template> </template> <template v-if="index != televisionOtts.length - 1"> <span>ou</span> </template> </template> </div> </div> <span :class="['television--offers--time', {'bc-ott-option-dark' : isDarkTheme}]" v-html="televisionOttSelected.time"></span> </div> </div> </div> <!-- MOBILE SERVICE--> <div v-if="addNumberSelected && addNumberSelectedLength >= 0 && mobileDetailsDescription" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span v-if="!isRedCard" class="card--offer--heading--svg mobile"> <svg v-if="!isDarkTheme" width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.5 17.5H7.5" stroke="url(#paint0_linear_1454_6764_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2.5 0.5H11.5V17.5C11.5 18.6055 10.6055 19.5 9.5 19.5H2.5C1.39453 19.5 0.5 18.6055 0.5 17.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="url(#paint1_linear_1454_6764_fibra-3-plus)" stroke-miterlimit="10" stroke-linecap="round"/> <defs> <linearGradient id="paint0_linear_1454_6764_fibra-3-plus" x1="4.52734" y1="17.9515" x2="7.49725" y2="17.8559" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_1454_6764_fibra-3-plus" x1="0.60026" y1="9.07908" x2="11.5008" y2="9.01136" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.5 17.5H7.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2.5 0.5H11.5V17.5C11.5 18.6055 10.6055 19.5 9.5 19.5H2.5C1.39453 19.5 0.5 18.6055 0.5 17.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> </svg> </span> <span v-if="isRedCard" class="card--offer--heading--svg" style="width: 24px;"> <svg v-if="!isDarkTheme" width="24" height="24" viewBox="0 0 24 24" style="flex-shrink: 0;" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7.00021 19.5549H10.0002M15.0002 17.5825H16.9515M10.4515 4.33624C10.4513 4.10129 10.4975 3.86861 10.5873 3.65152C10.6771 3.43442 10.8089 3.23717 10.975 3.07103C11.1411 2.9049 11.3384 2.77315 11.5555 2.68331C11.7726 2.59348 12.0053 2.54732 12.2402 2.54749H20.4902V17.6725C20.4902 18.1469 20.3018 18.6019 19.9663 18.9373C19.6308 19.2728 19.1759 19.4612 18.7015 19.4612L13.679 19.5025M11.7502 21.4337L5.29022 21.4887C4.30272 21.4887 3.50146 20.6325 3.50146 19.645V6.30871C3.50146 5.83452 3.68975 5.37974 4.02494 5.04432C4.36012 4.7089 4.81478 4.5203 5.28897 4.51996H13.539V19.645C13.539 19.8799 13.4927 20.1125 13.4028 20.3295C13.3129 20.5465 13.1812 20.7437 13.0151 20.9098C12.849 21.0759 12.6518 21.2077 12.4347 21.2976C12.2177 21.3874 11.9851 21.4337 11.7502 21.4337Z" stroke="url(#paint0_linear_249_85781_fibra-3-plus)" stroke-miterlimit="10" stroke-linecap="round"/> <defs> <linearGradient id="paint0_linear_249_85781_fibra-3-plus" x1="3.50146" y1="21.4887" x2="22.3312" y2="4.60001" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.99997 19.5549H9.99997M15 17.5825H16.9512M10.4512 4.33624C10.4511 4.10129 10.4972 3.86861 10.587 3.65152C10.6769 3.43442 10.8086 3.23717 10.9748 3.07103C11.1409 2.9049 11.3382 2.77315 11.5552 2.68331C11.7723 2.59348 12.005 2.54732 12.24 2.54749H20.49V17.6725C20.49 18.1469 20.3015 18.6019 19.9661 18.9373C19.6306 19.2728 19.1756 19.4612 18.7012 19.4612L13.6787 19.5025M11.75 21.4337L5.28997 21.4887C4.30247 21.4887 3.50122 20.6325 3.50122 19.645V6.30871C3.50122 5.83452 3.68951 5.37974 4.02469 5.04432C4.35988 4.7089 4.81453 4.5203 5.28872 4.51996H13.5387V19.645C13.5387 19.8799 13.4925 20.1125 13.4026 20.3295C13.3127 20.5465 13.1809 20.7437 13.0148 20.9098C12.8487 21.0759 12.6515 21.2077 12.4345 21.2976C12.2175 21.3874 11.9849 21.4337 11.75 21.4337Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> </svg> </span> <span v-if="isRedCard" :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Voz</span> <span v-else :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Móvel</span> </div> <div :id="getMobileSubtitleId" v-if="!isRedCard" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-html="addNumberSelected.description"></span> <span v-if="mobileDetailsDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed" v-html="mobileDetailsDescription[addNumberSelectedLength]"></span> </div> <div :id="getMobileSubtitleId" v-if="isRedCard" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-if="mobileDetailsDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed" v-html="mobileDetailsDescription[addNumberSelectedLength]"></span> </div> <div class="card--offer--content-infoNotes"> <div v-if="isRedCard && voiceAmountObject"> <div v-if="voiceAmountObject" v-for="voiceInfoNotes in voiceAmountObject"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="voiceInfoNotes.description"></span> </div> </div> <div v-if="!isRedCard" class="mobile--numbers"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="addNumberSelected.information"></span> </div> </div> </div> <!-- RED SIM CARD SECTION--> <div v-if="addNumberSelected && addNumberSelectedLength >= 0 && mobileDetailsDescription && isRedCard" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg" style="width: fit-content;"> <svg v-if="!isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M6.5 19.5935V5.01846C6.50033 4.44503 6.72827 3.89518 7.13375 3.4897C7.53922 3.08423 8.08907 2.85629 8.6625 2.85596H14L17.5 6.25596V19.5935C17.4997 20.1669 17.2717 20.7167 16.8663 21.1222C16.4608 21.5277 15.9109 21.7556 15.3375 21.756H8.6625C8.08907 21.7556 7.53922 21.5277 7.13375 21.1222C6.72827 20.7167 6.50033 20.1669 6.5 19.5935Z" stroke="url(#paint0_linear_973_7589_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.5 10.7559H10.5C9.94772 10.7559 9.5 11.2037 9.5 11.7559V17.7559C9.5 18.3082 9.94772 18.7559 10.5 18.7559H13.5C14.0523 18.7559 14.5 18.3082 14.5 17.7559V11.7559C14.5 11.2037 14.0523 10.7559 13.5 10.7559Z" stroke="url(#paint1_linear_973_7589_fibra-3-plus)" stroke-linecap="round" stroke-linejoin="round"/> <defs> <linearGradient id="paint0_linear_973_7589_fibra-3-plus" x1="6.5" y1="21.756" x2="22.9334" y2="12.1915" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_973_7589_fibra-3-plus" x1="6.5" y1="21.756" x2="22.9334" y2="12.1915" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M6.5 19.5935V5.01846C6.50033 4.44503 6.72827 3.89518 7.13375 3.4897C7.53922 3.08423 8.08907 2.85629 8.6625 2.85596H14L17.5 6.25596V19.5935C17.4997 20.1669 17.2717 20.7167 16.8663 21.1222C16.4608 21.5277 15.9109 21.7556 15.3375 21.756H8.6625C8.08907 21.7556 7.53922 21.5277 7.13375 21.1222C6.72827 20.7167 6.50033 20.1669 6.5 19.5935Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.5 10.7559H10.5C9.94772 10.7559 9.5 11.2037 9.5 11.7559V17.7559C9.5 18.3082 9.94772 18.7559 10.5 18.7559H13.5C14.0523 18.7559 14.5 18.3082 14.5 17.7559V11.7559C14.5 11.2037 14.0523 10.7559 13.5 10.7559Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">SIM</span> </span> </div> <div v-if="addNumberSelected.description" :id="getMobileSubtitleId" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-html="addNumberSelected.description"></span> </div> <div v-if="addNumberSelected.information" class="card--offer--content-infoNotes"> <div class="mobile--numbers"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="addNumberSelected.information"></span> </div> </div> </div> </div> <!--BUTTON ACTIONS (DESKTOP)--> <div class="buttons-wrapper buttons-wrapper--mobile"> <div :class="['card--desktop__flex-display', 'card-button', {'bc-card-button-dark' : isDarkTheme}]"> <binding-submit-button id="fibra-3-plus" :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-plus_primary","href":"","paramOnClick":"$(\"#fibra-3-plus\").empty();dataBindingOverlay.openDialog(\"fibra-3-plus\",\"?i_id=fibra-3-plus\", null, \"fixo\");bwc_loadCardOfferPlaceholder(\"fibra-3-plus\"); ","enableTravellers":"","target":"_self","title":"Aderir"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" binding-type="CBU"> </binding-submit-button> </div> <div :class="['card--desktop__flex-display', 'card-button', {'bc-card-button-tertiary-dark' : isDarkTheme}]"> <binding-submit-button :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-3-plus_secondary","href":"/content/digital-sites/pt/particulares/pacotes/configurador.html","paramOnClick":"","target":"_self","title":"Saber mais"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" :tertiary="true" binding-type="CBU"> </binding-submit-button> </div> </div> </div> </div> </div> <!-- MEMBERSHIP ADVANTAGES --> <div v-if="offersDisplayed || voucherData" :class="['binding_vTwo--card--membershipAdvantage', { 'bc-advantage-dark': isDarkTheme }]"> <div class="binding_vTwo--card--membershipAdvantage--sectionTitle"> <span :class="[{'bc-advantage-title-dark' : isDarkTheme}]">Escolha uma vantagem</span> </div> <div class="binding_vTwo--card--membershipAdvantage--sectionOffers"> <div v-for="offer in offersDisplayed"> <div :class="['binding_vTwo--card--membershipAdvantage--sectionOffers--options', {'selected' : offer.selected, 'bc-offers-dark':isDarkTheme}]" @click="selectOpt('offer', offer)" v-cloak> {{processStringLabel(offer.description)}} </div> </div> </div> <div v-if="voucherData" class="binding_vTwo--card--membershipAdvantage--sectionVoucher"> <div :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--wrapper', {'binding_vTwo--card--membershipAdvantage--sectionVoucher--new--direction': !hasVoucherDescriptionCard}]"> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--wrapper--plus"> <span :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--plus', {'bc-voucher-dark' : isDarkTheme }]">+</span> <span v-if="i18n.onlineExclusiveLabel != ''" :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--exclusive', {'bc-voucher-exclusive-dark' : isDarkTheme }]" v-html="i18n.onlineExclusiveLabel"></span> </div> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--items"> <template v-if="hasVoucherDescriptionCard"> <template v-for="(data, index) in makeVoucherDescription()"> <span v-if="data.image" :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--img', {'bc-voucher-dark' : isDarkTheme }]" v-html="data.image"></span> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--description"><span :class="[{'bc-voucher-dark' : isDarkTheme }]" v-html="data.description"></span></div> <span :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--plus', {'bc-voucher-dark' : isDarkTheme }]" v-if="offersDisplayed && index < makeVoucherDescription().length - 1">+</span> </template> </template> <template v-else> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--description"><span :class="[{'bc-voucher-dark' : isDarkTheme }]">{{makeVoucherDescription()}}</span></div> </template> </div> </div> </div> </div> </div> </div> <div id="databinding-fibra-3-plus-spinner" v-show="!isLoaded"> <div id="vf-loading-spinner-3101" class="vf-loading-spinner vf-loading-spinner--default"> <img src="/content/dam/digital-commons/loading-spinner.svg" class="vf-loading-spinner--img vf-loading-spinner--img--default"/> </div> </div> </div> <script id="bindingSubmitButton" type="text/x-template"> <a :id="generateId" v-if="!dialogHtmlAttributes.enableTravellers" :class="{'button button--primary binding--summary__cta__button no-gutter--all' : !tertiary, 'button button--data-binding--nav no-gutter--all' : tertiary}" @click="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" @click.right="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" @click.middle="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" :href="dialogHtmlAttributes.href ? dialogHtmlAttributes.href : 'javascript:void(0)'" :target="dialogHtmlAttributes.target"> {{dialogHtmlAttributes.title}} </a> </script> <script type="text/javascript" onload="loadComponent('fibra-3-plus');" src="/etc.clientlibs/digital-commons/components/content/authored/vf_dataBindingV2/clientlibs.5dc456039c4d0123f65e360f64bf6439.js"></script> </div> </div> </div> </div></div> </div> </div> <div class="grid__item grid__item--gutter grid__item--top grid__item--align-left grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_experienceFragment"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_dataBindingV2 vf_parent_component_coral3 aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--half "> <div id="databinding-fibra-4-light" ref="databinding" class=" binding_vTwo"> <div :class="{ 'hide': !isLoaded }" v-cloak> <div class="binding_vTwo--card-tag"> <div style="background-color:#000000; color: #ffffff;" class="binding_vTwo--campaign-tag"> Black Friday | Desconto €8/mês + 100 GB </div> </div> <input id="databinding-fibra-4-light-dialogProperties" type="hidden" data-dialog="{"jsonTab":{"id":"fibra-4-light","jsonPath":"/content/dam/digital-sites/cardinali/jsons/4p/fibra-4-light.json","darkTheme":"","spinnerCard":"","bySide":"true","campaignElements":[{"campaignName":"Black Friday | Desconto €8/mês + 100 GB","campaignColor":"#000000","campaignTextColor":"#ffffff"}]},"buttonTab":{"hideKnowMoreButtonOnCard":"","enableTravellers":"","title":"Aderir","titleConfigurator":"Aderir","pathURL":"","paramOnClick":"$(\"#fibra-4-light\").empty();dataBindingOverlay.openDialog(\"fibra-4-light\",\"?i_id=fibra-4-light\");bwc_loadCardOfferPlaceholder(\"fibra-4-light\");","target":"_self","pathURLConfigurator":"","paramOnClickConfigurator":"$(\"#fibra-4-light\").empty();dataBindingOverlay.openDialog(\"fibra-4-light\",\"?i_id=fibra-4-light\");bwc_loadCardOfferPlaceholder(\"fibra-4-light\");","offersLinkTo":"","offersScrollTo":"","targetConfigurator":"_self","priceSectionPosition":"top"},"secondaryButtonTab":{"showSecondaryButtonOnCard":"","titleSecondaryButton":"","pathURLSecondaryButton":"","paramOnClickSecondaryButton":"","targetSecondaryButton":"_self"},"landingPagesTab":{"bottomBarActivated":"","htmlBottomBar":""}}" data-value="{"description":"fibra4 Light","descriptionE2E":"fibra4 Light","idSB":"BT089 - TvT+Cld200+N200-1G+V+MV3500m4GB","formType":"cbu-standard","isBestOffer":true,"baseValue":63.9,"basePreviousValue":63.9,"omnitureTracking":"fibra-4-light","binding":{"selection":"block","options":[{"id":1,"price":0,"amountE2E":24,"selected":true,"display":false,"description":"24 meses","descriptionE2E":"24"}]},"offer":{"selection":"block","options":[{"id":1,"idOptCECE":"","price":-8,"isMonthly":true,"selected":true,"display":true,"showOnCard":true,"overridePreviousPrice":0,"description":"Desconto Black Friday €8 x 24 meses","descriptionSubtitle":"Durante 24 meses","descriptionE2E":"Vantagem de adesão: desconto","discountTime":24},{"id":2,"idOptCECE":"Desc. €14/mês/5m_4P - Exclusivo Online","price":-14,"isMonthly":true,"selected":false,"display":true,"showOnCard":false,"overridePreviousPrice":0,"description":"Desconto €14 x 5m","descriptionHeader":"€63,9/mês após 5 meses","descriptionSubtitle":"Durante 5 meses","descriptionE2E":"Vantagem de adesão: desconto","discountTime":5},{"id":3,"idOptCECE":"Desc. €3/mês/24m_Camp","price":-3,"isMonthly":true,"selected":false,"display":true,"showOnCard":false,"overridePreviousPrice":0,"description":"Desconto €3 x 24m","descriptionSubtitle":"Durante 24 meses","descriptionE2E":"Vantagem de adesão: desconto","discountTime":24},{"id":4,"idOptCECE":"1ª Mensalidade","price":0,"overridePreviousPrice":0,"isMonthly":true,"description":"Oferta 1ª mensalidade","descriptionSubtitle":"","descriptionE2E":"Vantagem de adesão: 1 Mensalidade","display":true,"showOnCard":false,"selected":false},{"id":5,"idOptCECE":"Super Wi-Fi Extra/24m","price":0,"overridePreviousPrice":0,"isMonthly":false,"discountTime":24,"description":"Extender Wi-Fi","descriptionSubtitle":"Oferta de Extender Wi-Fi, no valor de €2,49/mês, durante 24 meses","descriptionE2E":"Vantagem de adesão: Extender Wi-Fi","display":true,"showOnCard":false,"selected":false}],"optionsE2E":[{"id":1,"idOptCECE":"Voucher €100 Online","isMonthly":false,"description":"Voucher €150 em loja online","descriptionCard":["Voucher €150 em loja online"],"image":["<img src=\"/content/dam/digital-sites/cardinali/icons/voucher-loja-100.png\"/>"],"price":150,"offerId":"Marcador Campanha Exclusiva Online: Voucher Eur150 - MCEO4","onlineExclusive":true},{"id":2,"idOptCECE":"Desconto Fidelização 4P PR","isMonthly":false,"description":"Desconto incluído na mensalidade: ","price":33.67,"discountTime":24},{"id":3,"description":"Desconto incluído na mensalidade, por cada cartão móvel ","price":8.41,"isMonthly":false,"discountTime":24,"redOffer":true},{"id":4,"isMonthly":false,"description":"Ativação: ","price":0,"previousPriceE2E":134},{"id":5,"idOptCECE":"Oferta Instalação - Novo Cliente","isMonthly":false,"description":"Instalação: ","previousPriceE2E":167,"price":0}]},"television":{"channels":"170","selection":"block","ottPill":{"description":"1 Serviço incluído","backgroundColor":"#FECB00","textColor":"black"},"ott":[{"id":1,"idOptCECE":"170+AP(3m)","description":"<b>Amazon Prime</b>","descriptionE2E":"Amazon Prime","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"included":true,"info":{"notes":[{"id":1,"description":"Caso escolha Amazon Prime 3 meses, receberá 3 meses adicionais, ficando com um total de 6 meses do serviço Amazon Prime. Se escolher Max ou Disney+, terá acesso a 3 meses do serviço Amazon Prime."}]},"children":["prime"]},{"id":2,"idOptCECE":"170+AP(24m)","description":"<b>Amazon Prime</b>","descriptionE2E":"Amazon Prime","time":"durante 3 meses","timeE2E":"durante 6 meses","timeAbbreviation":"3 meses","selected":true,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["prime"]},{"id":3,"idOptCECE":"170+MAX(24m)","description":"<b>Max</b>","descriptionE2E":"Max","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["hbo"]},{"id":4,"idOptCECE":"170+Disney+(24m)","description":"<b>Disney +</b>","descriptionE2E":"Disney +","time":"durante 3 meses","timeE2E":"durante 3 meses","timeAbbreviation":"3 meses","selected":false,"display":true,"info":{"notes":[{"id":1,"description":""}]},"children":["disney"]}],"options":[{"id":1,"description":"<b>VBox</b>","descriptionE2E":"VBox","selected":true,"disabled":false,"tvBoxE2E":true,"price":0,"info":{"notes":[{"id":1,"idNotesCECE":"VBox","description":"Tv Box com qualidade de imagem 4K e comando com acesso direto a plataformas de streaming.","descriptionE2E":""}]}},{"id":2,"description":"<b>Box TV PLAY</b>","descriptionE2E":"Box TV PLAY","selected":false,"tvBoxE2E":true,"price":5,"link":{"description":"Saber Mais","url":"https://www.vodafone.pt/pacotes/televisao/tv-box/vodafone-tv-play.html","target":"_blank"},"info":{"notes":[{"id":1,"idNotesCECE":"Upgrade Box Vodafone TV PLAY €5","description":"Tv Box com colunas e sistema de som Dolby Atmos embutidas, tecnologia de som Bang&Olufsen, Assistente de Voz mãos livres “Hey Google”, Google Play Store, Chromecast built in, ligação por Wi-Fi ao Smart Router e comando Bluetooth.","descriptionE2E":""}]}}]},"internet":{"selection":"block","options":[{"id":1,"idOptCECE":"200/100","description":"500/100 Mbps <s class='small'>200/100 Mbps</s>","descriptionE2E":"Velocidade 500/100 Mbps","price":0,"selected":true,"display":true,"hideGrantedSpeedOnSummary":false,"guaranteedSpeedLabel":"Velocidade Garantida","downloadE2E":{"speed":500,"unit":"Mbps"},"uploadE2E":{"speed":100,"unit":"Mbps"},"info":{"notes":[{"id":1,"description":"<s>200/100 Mbps</s> ","descriptionE2E":""},{"id":2,"description":"Smart Router com Wi-Fi 6 ","descriptionE2E":"Smart Router com Wi-Fi 6 "}]}}]},"phone":{"selection":"block","options":[{"id":1,"idOptCECE":"Voz fixa Ilimitado s/ TLF incluído","description":"Rede fixa 24 horas e 31 países internacionais","descriptionE2E":"Chamadas incluídas","selected":true,"display":true,"price":0,"purE2E":"sites.cards.pur_label_fixo","info":{"notes":[{"id":1,"description":"Não inclui o equipamento"}]}}]},"addnumber":{"selection":"block","hideAddNumberHeader":false,"options":[{"id":1,"description":"1 número","information":"<s>5GB</s>","price":0,"selected":true,"display":true,"relations":{"numberConfigs":[{"id":1,"display":true,"expanded":true}],"redData":[{"id":1,"display":true},{"id":2,"display":true}]},"info":{"notes":[{"id":1,"description":""}]}}]},"numberConfigs":{"selection":"expandable","options":[{"id":1,"price":0,"quantityForAverage":1,"description":"1 número","display":true,"expanded":true,"children":["redData"]}]},"redData":{"selection":"block","options":[{"id":1,"idOptCECE":"5GB+5GB Plus","idOptCECEAdicional":"5GB+5GB Plus Ad","description":"100GB","descriptionE2E":"3.500 min + 3.500 SMS/MMS","purE2E":"sites.cards.pur_label_fibra4_5GB","speedSubtitle":"100GB","isInfinity":true,"selected":true,"display":true,"disabled":false,"price":0,"relations":{"redData":[{"id":1,"display":true},{"id":2,"display":true},{"id":3,"display":true},{"id":4,"display":true}]},"info":{"notes":[{"id":1,"description":"3.500 min. + 3.500 SMS/MMS"}]}},{"id":2,"idBaseOptCECE":"Fibra4 Light_ 20GB_24M_ANG_260924","idSB":"BT090 - TvT+Cld200+N200-1G+V+MV3500m10GB_Plus","idOptCECE":"20GB_PGM44","idOptCECEAdicional":"20GB_PGM44_ad","description":"10GB","descriptionE2E":"3.500 min + 3.500 SMS/MMS","purE2E":"sites.cards.pur_label_fibra4_10GB","speedSubtitle":"10GB","selected":false,"display":true,"price":2,"info":{"notes":[{"id":1,"description":"3.500 min. + 3.500 SMS/MMS"}]}}]},"boost":{"selection":"block","isActive":false,"isOTT":false,"outsideTitle":"Quer duplicar a velocidade de internet fixa e os dados móveis?","insideTitle":"Aditivo","options":[{"id":1,"selected":false,"price":3,"content":[{"top":"500/100Mbps","bottom":"<s>200/100Mbps</s>"},{"top":"10GB","bottom":"<s>5GB</s>"}],"relations":{"internet":[{"id":1,"selected":true,"idOptCECE":"500/100","description":"<b>500/100Mbps</b> <s><small> 200/100Mbps </small></s>","descriptionE2E":"Velocidade 500/100Mbps","hideGrantedSpeedOnSummary":true,"guaranteedSpeedLabel":"","downloadE2E":{"speed":500,"unit":"Mbps"},"uploadE2E":{"speed":100,"unit":"Mbps"},"info":{"notes":[{"id":1,"description":"<s>200/100 Mbps<s>","descriptionE2E":""}]}}],"redData":[{"id":1,"selected":false,"disabled":true},{"id":2,"idBaseOptCECE":"Fibra4 Light_ 20GB_24M_ANG_260924","idSB":"BT091 - TvT+Cld200+N200-1G+V+MV3500m10GB_Play","selected":true,"price":0}]}}]},"prime":{"selection":"block","options":[{"id":1,"descriptionE2E":"Amazon Prime durante 3 meses","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/amazon-prime.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Entregas grátis até 48 horas, Prime Video, Prime Gaming e Amazon Photos."}]}}]},"disney":{"selection":"block","options":[{"id":1,"descriptionE2E":"Disney+ durante 3 meses","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/disneyplus.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Inclui séries e filmes da Disney, Pixar, Marvel, Star Wars, National Geographic e Star."}]}}]},"hbo":{"selection":"block","options":[{"id":1,"descriptionE2E":"Max durante 3 meses","description":"<img src=\"/content/dam/digital-sites/cardinali/icons/hbomax.svg\"/>","price":0,"info":{"notes":[{"id":1,"description":"Inclui séries e filmes da HBO, Max Originals, Warner Bros, DC e Cartoon Network."}]}}]}}" data-path="/content/dam/digital-sites/cardinali/jsons/4p/fibra-4-light.json" data-cardId="fibra-4-light" data-buttonData="{"id":"fibra-4-light","href":"","paramOnClick":"$(\"#fibra-4-light\").empty();dataBindingOverlay.openDialog(\"fibra-4-light\",\"?i_id=fibra-4-light\");bwc_loadCardOfferPlaceholder(\"fibra-4-light\");","target":"_self","title":"Aderir"}" ref="dialogPropertiesRef"/> <div :class="['card-wrapper', {'cw-dark': isDarkTheme, 'bottom-border-no-offer': !offersDisplayed}]" style="border: 2px solid #000000;border-radius: 0 6px 6px 6px;"> <div class="binding_vTwo--card"> <div id="databinding-fibra-4-light-cardData" class="binding_vTwo--card--container"> <div class="binding_vTwo--card--offer"> <div :class="['binding_vTwo--card--offer-section price--section', { 'bottom-border': offersDisplayed }]"> <!--CARD NAME | PRICE | CROSSED PRICE--> <div> <div :class="['card-name', { 'bc-card-name-dark' : isDarkTheme, 'hide': !dataJSON.description }]" v-html="dataJSON.description"></div> <div class="card-price-wrapper"> <div v-if="totalPrice" :class="[dataJSON.description ? 'card-price' : 'card-price-without-card-name', { 'bc-card-price-dark' : isDarkTheme }]"> <span :id="getCardPriceId" class="notranslate">{{processPriceLabel(totalPrice)}}</span><span class="bundle-month__unit">/mês</span> </div> <div v-if="descriptionHeader"> <span :class="['card-risked-price', { 'bc-card-risked-price-dark' : isDarkTheme }]" v-html="descriptionHeader"></span> </div> <div v-else-if="totalPreviousPrice && totalPrice < totalPreviousPrice" :class="['card-risked-price', 'strike', { 'bc-card-risked-price-dark' : isDarkTheme }]"> <span v-html="processPriceLabel(totalPreviousPrice)"></span>/mês </div> </div> </div> <!--BUTTON ACTIONS (MOBILE)--> <div class="buttons-wrapper"> <div :class="['card--mobile__flex-display', 'card-button', {'bc-card-button-dark' : isDarkTheme}]"> <binding-submit-button id="fibra-4-light" :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-4-light_primary","href":"","paramOnClick":"$(\"#fibra-4-light\").empty();dataBindingOverlay.openDialog(\"fibra-4-light\",\"?i_id=fibra-4-light\");bwc_loadCardOfferPlaceholder(\"fibra-4-light\");","enableTravellers":"","target":"_self","title":"Aderir"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" binding-type="CBU" :is-mobile="true"> </binding-submit-button> </div> </div> </div> <!--SERVICES SECTION--> <div :class="['binding_vTwo--card--offer-section', { 'bottom-border': offersDisplayed }]"> <!-- INTERNET SERVICE--> <div v-if="internetOptionSelected || isRedCard" :class="['card-offer-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg"> <svg v-if="!isDarkTheme && !isRedCard" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.51172 9.5C7.75391 4.25 16.2656 4.25 21.5117 9.5" stroke="url(#paint0_linear_859_164822_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5.26172 12.5C7.0625 10.6992 9.50391 9.6875 12.0469 9.6875C14.5938 9.6875 17.0352 10.6992 18.8359 12.5" stroke="url(#paint1_linear_859_164822_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.08594 15.4844C10.2617 13.3047 13.7969 13.3047 15.9766 15.4844" stroke="url(#paint2_linear_859_164822_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.5117 19.0312C12.5117 19.3086 12.2852 19.5312 12.0117 19.5312C11.7344 19.5312 11.5117 19.3086 11.5117 19.0312C11.5117 18.7539 11.7344 18.5312 12.0117 18.5312C12.2852 18.5312 12.5117 18.7539 12.5117 19.0312Z" stroke="url(#paint3_linear_859_164822_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.3242 19.0312C12.3242 19.2031 12.1836 19.3438 12.0117 19.3438C11.8359 19.3438 11.6992 19.2031 11.6992 19.0312C11.6992 18.8594 11.8359 18.7188 12.0117 18.7188C12.1836 18.7188 12.3242 18.8594 12.3242 19.0312Z" fill="url(#paint4_linear_859_164822_fibra-4-light)" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.1367 19.0312C12.1367 19.1016 12.0781 19.1562 12.0117 19.1562C11.9414 19.1562 11.8867 19.1016 11.8867 19.0312C11.8867 18.9609 11.9414 18.9062 12.0117 18.9062C12.0781 18.9062 12.1367 18.9609 12.1367 19.0312Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/> <defs> <linearGradient id="paint0_linear_859_164822_fibra-4-light" x1="2.6849" y1="7.3404" x2="21.4634" y2="6.36798" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_859_164822_fibra-4-light" x1="5.38544" y1="10.9574" x2="18.8014" y2="10.2626" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint2_linear_859_164822_fibra-4-light" x1="8.15786" y1="14.5878" x2="15.9565" y2="14.1838" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint3_linear_859_164822_fibra-4-light" x1="11.5208" y1="18.9828" x2="12.5117" y2="18.9721" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint4_linear_859_164822_fibra-4-light" x1="11.7049" y1="19.001" x2="12.3242" y2="18.9943" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else-if="isRedCard && !isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M15.25 11.9634C14.9739 11.9634 14.75 12.1873 14.75 12.4634C14.75 12.7396 14.9739 12.9634 15.25 12.9634V11.9634ZM17 12.4634H17.5C17.5 12.1873 17.2761 11.9634 17 11.9634V12.4634ZM17 13.9634H16.5C16.5 13.9682 16.5001 13.9729 16.5002 13.9777L17 13.9634ZM16.125 15.1509L16.2567 15.6333L16.2595 15.6325L16.125 15.1509ZM16.3712 10.1359C16.5009 10.3797 16.8037 10.4721 17.0475 10.3423C17.2912 10.2125 17.3836 9.9097 17.2538 9.66596L16.3712 10.1359ZM10.48 9.76207C10.7562 9.76207 10.98 9.53821 10.98 9.26207C10.98 8.98593 10.7562 8.76207 10.48 8.76207V9.76207ZM7.93752 9.26207V8.76207C7.66138 8.76207 7.43752 8.98593 7.43752 9.26207H7.93752ZM7.93752 11.8871H7.43752C7.43752 12.0589 7.52574 12.2187 7.67114 12.3102C7.81654 12.4017 7.99875 12.4122 8.15368 12.3379L7.93752 11.8871ZM8.21127 11.7558L8.01586 11.2956C8.00887 11.2986 8.00195 11.3017 7.9951 11.305L8.21127 11.7558ZM8.05247 14.4642C7.84379 14.2834 7.52801 14.3059 7.34716 14.5146C7.16632 14.7233 7.18888 15.0391 7.39756 15.2199L8.05247 14.4642ZM21.5 12.2559H21H21.5ZM12 2.75586V2.25586V2.75586ZM21.5 2.75586H22V2.25586H21.5V2.75586ZM15.25 12.9634H17V11.9634H15.25V12.9634ZM16.5 12.4634V13.9634H17.5V12.4634H16.5ZM16.5002 13.9777C16.5046 14.1333 16.4569 14.286 16.3645 14.4113L17.1696 15.0045C17.3943 14.6995 17.5106 14.328 17.4998 13.9492L16.5002 13.9777ZM16.3645 14.4113C16.2722 14.5366 16.1405 14.6275 15.9906 14.6694L16.2595 15.6325C16.6244 15.5306 16.9448 15.3096 17.1696 15.0045L16.3645 14.4113ZM15.9933 14.6686C15.5022 14.8026 14.8829 14.8732 14.4079 14.6224C13.9874 14.4004 13.5 13.8213 13.5 12.2134H12.5C12.5 14.0093 13.0576 15.0402 13.9409 15.5067C14.7696 15.9443 15.7128 15.7817 16.2567 15.6333L15.9933 14.6686ZM13.5 12.2134C13.5 11.3651 13.6907 10.8085 13.9379 10.4505C14.1824 10.0964 14.5066 9.90041 14.8479 9.81128C15.1968 9.72017 15.5641 9.74162 15.8648 9.83222C16.1872 9.92936 16.338 10.0737 16.3712 10.1359L17.2538 9.66596C17.0407 9.26569 16.5919 9.0069 16.1533 8.87474C15.6929 8.73604 15.1379 8.70202 14.5952 8.84372C14.045 8.9874 13.5084 9.31248 13.115 9.88227C12.7243 10.4481 12.5 11.218 12.5 12.2134H13.5ZM10.48 8.76207H7.93752V9.76207H10.48V8.76207ZM7.43752 9.26207V11.8871H8.43752V9.26207H7.43752ZM8.15368 12.3379L8.42743 12.2067L7.9951 11.305L7.72135 11.4362L8.15368 12.3379ZM8.40668 12.2161C8.62697 12.1225 8.86828 12.0896 9.10557 12.1208L9.23582 11.1293C8.82161 11.0749 8.40039 11.1323 8.01586 11.2956L8.40668 12.2161ZM9.10557 12.1208C9.34286 12.152 9.56749 12.2461 9.75615 12.3933L10.3714 11.605C10.0421 11.348 9.65003 11.1837 9.23582 11.1293L9.10557 12.1208ZM9.75615 12.3933C9.94481 12.5406 10.0906 12.7356 10.1785 12.9583L11.1087 12.5912C10.9553 12.2026 10.7008 11.8621 10.3714 11.605L9.75615 12.3933ZM10.1785 12.9583C10.2663 13.1809 10.293 13.423 10.2558 13.6594L11.2436 13.815C11.3086 13.4023 11.262 12.9798 11.1087 12.5912L10.1785 12.9583ZM10.2558 13.6594C10.2185 13.8958 10.1187 14.1179 9.96666 14.3027L10.7389 14.9381C11.0043 14.6154 11.1786 14.2277 11.2436 13.815L10.2558 13.6594ZM9.96666 14.3027C9.81461 14.4876 9.61587 14.6283 9.39108 14.7105L9.73419 15.6497C10.1266 15.5064 10.4735 15.2607 10.7389 14.9381L9.96666 14.3027ZM9.39108 14.7105C9.16628 14.7926 8.9236 14.813 8.68822 14.7697L8.50731 15.7532C8.91818 15.8288 9.34179 15.7931 9.73419 15.6497L9.39108 14.7105ZM8.68822 14.7697C8.45284 14.7264 8.23333 14.621 8.05247 14.4642L7.39756 15.2199C7.71327 15.4935 8.09643 15.6777 8.50731 15.7532L8.68822 14.7697ZM21 12.2559C21 14.0359 20.4722 15.7759 19.4832 17.256L20.3147 17.8116C21.4135 16.1671 22 14.2337 22 12.2559H21ZM19.4832 17.256C18.4943 18.736 17.0887 19.8896 15.4442 20.5708L15.8268 21.4947C17.6541 20.7378 19.2159 19.4561 20.3147 17.8116L19.4832 17.256ZM15.4442 20.5708C13.7996 21.252 11.99 21.4302 10.2442 21.0829L10.0491 22.0637C11.9889 22.4496 13.9996 22.2515 15.8268 21.4947L15.4442 20.5708ZM10.2442 21.0829C8.49836 20.7357 6.89472 19.8785 5.63604 18.6198L4.92894 19.3269C6.32746 20.7255 8.10929 21.6779 10.0491 22.0637L10.2442 21.0829ZM5.63604 18.6198C4.37737 17.3611 3.5202 15.7575 3.17294 14.0117L2.19215 14.2068C2.578 16.1466 3.53041 17.9284 4.92894 19.3269L5.63604 18.6198ZM3.17294 14.0117C2.82567 12.2658 3.0039 10.4562 3.68509 8.81171L2.76121 8.42903C2.00433 10.2563 1.8063 12.267 2.19215 14.2068L3.17294 14.0117ZM3.68509 8.81171C4.36628 7.16717 5.51983 5.76157 6.99987 4.77263L6.4443 3.94116C4.79981 5.03998 3.51809 6.60176 2.76121 8.42903L3.68509 8.81171ZM6.99987 4.77263C8.47991 3.7837 10.22 3.25586 12 3.25586V2.25586C10.0222 2.25586 8.08879 2.84235 6.4443 3.94116L6.99987 4.77263ZM12 3.25586H21.5V2.25586H12V3.25586ZM21 2.75586V12.2559H22V2.75586H21Z" fill="url(#paint0_linear_1743_2252_fibra-4-light)"/> <defs> <linearGradient id="paint0_linear_1743_2252_fibra-4-light" x1="2.5" y1="21.7559" x2="21.5" y2="2.75586" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else-if="isRedCard && isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M15.25 11.7076C14.9739 11.7076 14.75 11.9314 14.75 12.2076C14.75 12.4837 14.9739 12.7076 15.25 12.7076V11.7076ZM17 12.2076H17.5C17.5 11.9314 17.2761 11.7076 17 11.7076V12.2076ZM17 13.7076H16.5C16.5 13.7123 16.5001 13.7171 16.5002 13.7218L17 13.7076ZM16.125 14.8951L16.2567 15.3774L16.2595 15.3767L16.125 14.8951ZM16.3712 9.88006C16.5009 10.1238 16.8037 10.2162 17.0475 10.0864C17.2912 9.95664 17.3836 9.65384 17.2538 9.4101L16.3712 9.88006ZM10.48 9.50621C10.7562 9.50621 10.98 9.28235 10.98 9.00621C10.98 8.73007 10.7562 8.50621 10.48 8.50621V9.50621ZM7.93752 9.00621V8.50621C7.66138 8.50621 7.43752 8.73007 7.43752 9.00621H7.93752ZM7.93752 11.6312H7.43752C7.43752 11.803 7.52574 11.9628 7.67114 12.0543C7.81654 12.1459 7.99875 12.1563 8.15368 12.0821L7.93752 11.6312ZM8.21127 11.5L8.01586 11.0397C8.00887 11.0427 8.00195 11.0458 7.9951 11.0491L8.21127 11.5ZM8.05247 14.2084C7.84379 14.0275 7.52801 14.0501 7.34716 14.2588C7.16632 14.4674 7.18888 14.7832 7.39756 14.9641L8.05247 14.2084ZM21.5 12H21H21.5ZM12 2.5V2V2.5ZM21.5 2.5H22V2H21.5V2.5ZM15.25 12.7076H17V11.7076H15.25V12.7076ZM16.5 12.2076V13.7076H17.5V12.2076H16.5ZM16.5002 13.7218C16.5046 13.8775 16.4569 14.0301 16.3645 14.1554L17.1696 14.7486C17.3943 14.4436 17.5106 14.0721 17.4998 13.6933L16.5002 13.7218ZM16.3645 14.1554C16.2722 14.2808 16.1405 14.3716 15.9906 14.4135L16.2595 15.3767C16.6244 15.2748 16.9448 15.0537 17.1696 14.7486L16.3645 14.1554ZM15.9933 14.4127C15.5022 14.5468 14.8829 14.6174 14.4079 14.3665C13.9874 14.1445 13.5 13.5654 13.5 11.9576H12.5C12.5 13.7535 13.0576 14.7844 13.9409 15.2508C14.7696 15.6884 15.7128 15.5259 16.2567 15.3774L15.9933 14.4127ZM13.5 11.9576C13.5 11.1093 13.6907 10.5527 13.9379 10.1946C14.1824 9.84057 14.5066 9.64455 14.8479 9.55542C15.1968 9.46431 15.5641 9.48576 15.8648 9.57636C16.1872 9.6735 16.338 9.81783 16.3712 9.88006L17.2538 9.4101C17.0407 9.00983 16.5919 8.75104 16.1533 8.61888C15.6929 8.48018 15.1379 8.44616 14.5952 8.58787C14.045 8.73154 13.5084 9.05662 13.115 9.62641C12.7243 10.1922 12.5 10.9621 12.5 11.9576H13.5ZM10.48 8.50621H7.93752V9.50621H10.48V8.50621ZM7.43752 9.00621V11.6312H8.43752V9.00621H7.43752ZM8.15368 12.0821L8.42743 11.9508L7.9951 11.0491L7.72135 11.1804L8.15368 12.0821ZM8.40668 11.9602C8.62697 11.8667 8.86828 11.8338 9.10557 11.8649L9.23582 10.8735C8.82161 10.819 8.40039 10.8765 8.01586 11.0397L8.40668 11.9602ZM9.10557 11.8649C9.34286 11.8961 9.56749 11.9902 9.75615 12.1375L10.3714 11.3492C10.0421 11.0921 9.65003 10.9279 9.23582 10.8735L9.10557 11.8649ZM9.75615 12.1375C9.94481 12.2847 10.0906 12.4798 10.1785 12.7024L11.1087 12.3353C10.9553 11.9467 10.7008 11.6062 10.3714 11.3492L9.75615 12.1375ZM10.1785 12.7024C10.2663 12.925 10.293 13.1671 10.2558 13.4035L11.2436 13.5591C11.3086 13.1465 11.262 12.7239 11.1087 12.3353L10.1785 12.7024ZM10.2558 13.4035C10.2185 13.6399 10.1187 13.8621 9.96666 14.0469L10.7389 14.6822C11.0043 14.3596 11.1786 13.9718 11.2436 13.5591L10.2558 13.4035ZM9.96666 14.0469C9.81461 14.2317 9.61587 14.3725 9.39108 14.4546L9.73419 15.3939C10.1266 15.2505 10.4735 15.0048 10.7389 14.6822L9.96666 14.0469ZM9.39108 14.4546C9.16628 14.5367 8.9236 14.5572 8.68822 14.5139L8.50731 15.4974C8.91818 15.573 9.34179 15.5372 9.73419 15.3939L9.39108 14.4546ZM8.68822 14.5139C8.45284 14.4706 8.23333 14.3651 8.05247 14.2084L7.39756 14.9641C7.71327 15.2377 8.09643 15.4218 8.50731 15.4974L8.68822 14.5139ZM21 12C21 13.78 20.4722 15.5201 19.4832 17.0001L20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12H21ZM19.4832 17.0001C18.4943 18.4802 17.0887 19.6337 15.4442 20.3149L15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557L19.4832 17.0001ZM15.4442 20.3149C13.7996 20.9961 11.99 21.1743 10.2442 20.8271L10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388L15.4442 20.3149ZM10.2442 20.8271C8.49836 20.4798 6.89472 19.6226 5.63604 18.364L4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079L10.2442 20.8271ZM5.63604 18.364C4.37737 17.1053 3.5202 15.5016 3.17294 13.7558L2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711L5.63604 18.364ZM3.17294 13.7558C2.82567 12.01 3.0039 10.2004 3.68509 8.55585L2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509L3.17294 13.7558ZM3.68509 8.55585C4.36628 6.91131 5.51983 5.50571 6.99987 4.51677L6.4443 3.6853C4.79981 4.78412 3.51809 6.34591 2.76121 8.17317L3.68509 8.55585ZM6.99987 4.51677C8.47991 3.52784 10.22 3 12 3V2C10.0222 2 8.08879 2.58649 6.4443 3.6853L6.99987 4.51677ZM12 3H21.5V2H12V3ZM21 2.5V12H22V2.5H21Z" fill="#F06666"/> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.51172 9.5C7.75391 4.25 16.2656 4.25 21.5117 9.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5.26172 12.5C7.0625 10.6992 9.50391 9.6875 12.0469 9.6875C14.5938 9.6875 17.0352 10.6992 18.8359 12.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.08594 15.4844C10.2617 13.3047 13.7969 13.3047 15.9766 15.4844" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.5117 19.0312C12.5117 19.3086 12.2852 19.5312 12.0117 19.5312C11.7344 19.5312 11.5117 19.3086 11.5117 19.0312C11.5117 18.7539 11.7344 18.5312 12.0117 18.5312C12.2852 18.5312 12.5117 18.7539 12.5117 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.3242 19.0312C12.3242 19.2031 12.1836 19.3438 12.0117 19.3438C11.8359 19.3438 11.6992 19.2031 11.6992 19.0312C11.6992 18.8594 11.8359 18.7188 12.0117 18.7188C12.1836 18.7188 12.3242 18.8594 12.3242 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.1367 19.0312C12.1367 19.1016 12.0781 19.1562 12.0117 19.1562C11.9414 19.1562 11.8867 19.1016 11.8867 19.0312C11.8867 18.9609 11.9414 18.9062 12.0117 18.9062C12.0781 18.9062 12.1367 18.9609 12.1367 19.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> </svg> </span> <span v-if="isRedCard" :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Dados</span> <span v-else :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Net</span> <!-- INTERNET SERVICE (PILL)--> </div> <!-- NOT RED --> <div v-if="!isRedCard" :class="['card--offer--content-subtitle', 'card--desktop__table-display', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span class="card--offer--content-subtitle-speed" v-html="internetOptionSelected.downloadE2E.speed"></span> <span v-if="internetOptionSelected.downloadE2E.unit != internetOptionSelected.uploadE2E.unit" v-html="internetOptionSelected.downloadE2E.unit"></span> <span>/</span> <span class="card--offer--content-subtitle-unit" v-html="internetOptionSelected.uploadE2E.speed"></span> {{ internetOptionSelected.uploadE2E.unit }} </div> <div v-if="!isRedCard" class="card--offer--content-infoNotes"> <div v-if="internetOptionSelected.info.notes" v-for="internetInfoNotes in internetOptionSelected.info.notes"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="internetInfoNotes.description"></span> </div> </div> <!-- RED --> <div v-if="isRedCard" :class="['card--offer--content-subtitle', 'card--desktop__table-display', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-if="dataAmountDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed"> <span v-html="dataAmountDescription[addNumberSelectedLength]"></span> </span> </div> <div v-if="isRedCard && dataAmountObject" class="card--offer--content-infoNotes"> <div v-if="dataAmountObject" v-for="dataInfoNotes in dataAmountObject"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="dataInfoNotes.description"></span> </div> </div> </div> <!-- TELEVISION SERVICE--> <div v-if="televisionOptionSelected && !isRedCard" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg"> <svg v-if="!isDarkTheme" width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 15.5H15" stroke="url(#paint0_linear_1148_40647_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10 15.5V13.5" stroke="url(#paint1_linear_1148_40647_fibra-4-light)" stroke-linejoin="round"/> <path d="M2.5 0.5H19.5V11.5C19.5 12.6055 18.6055 13.5 17.5 13.5H2.5C1.39453 13.5 0.5 12.6055 0.5 11.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="url(#paint2_linear_1148_40647_fibra-4-light)" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M10.1523 11.0312C10.1523 11.1172 10.0859 11.1836 10 11.1836C9.91406 11.1836 9.84766 11.1172 9.84766 11.0312C9.84766 10.9453 9.91406 10.8789 10 10.8789C10.0859 10.8789 10.1523 10.9453 10.1523 11.0312Z" stroke="url(#paint3_linear_1148_40647_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.6562 11.0312C10.6562 11.3945 10.3633 11.6875 10 11.6875C9.63672 11.6875 9.34375 11.3945 9.34375 11.0312C9.34375 10.668 9.63672 10.375 10 10.375C10.3633 10.375 10.6562 10.668 10.6562 11.0312Z" fill="url(#paint4_linear_1148_40647_fibra-4-light)"/> <defs> <linearGradient id="paint0_linear_1148_40647_fibra-4-light" x1="5.09115" y1="15.9515" x2="14.8883" y2="14.9002" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_1148_40647_fibra-4-light" x1="10.0091" y1="14.4031" x2="11.0001" y2="14.3977" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint2_linear_1148_40647_fibra-4-light" x1="0.673177" y1="6.3699" x2="19.4975" y2="6.07465" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint3_linear_1148_40647_fibra-4-light" x1="9.85043" y1="11.0165" x2="10.1523" y2="11.0132" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint4_linear_1148_40647_fibra-4-light" x1="9.35571" y1="10.9676" x2="10.6562" y2="10.9537" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7 19.5H17" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 19.5V17.5" stroke="#F06666" stroke-linejoin="round"/> <path d="M4.5 4.5H21.5V15.5C21.5 16.6055 20.6055 17.5 19.5 17.5H4.5C3.39453 17.5 2.5 16.6055 2.5 15.5V6.5C2.5 5.39453 3.39453 4.5 4.5 4.5Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M12.1523 15.0312C12.1523 15.1172 12.0859 15.1836 12 15.1836C11.9141 15.1836 11.8477 15.1172 11.8477 15.0312C11.8477 14.9453 11.9141 14.8789 12 14.8789C12.0859 14.8789 12.1523 14.9453 12.1523 15.0312Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12.6562 15.0312C12.6562 15.3945 12.3633 15.6875 12 15.6875C11.6367 15.6875 11.3438 15.3945 11.3438 15.0312C11.3438 14.668 11.6367 14.375 12 14.375C12.3633 14.375 12.6562 14.668 12.6562 15.0312Z" fill="#F06666"/> </svg> </span> <span :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Tv</span> <!-- TELEVISION SERVICE (PILL)--> <span v-if="televisionOptionSelected.pill && televisionOptionSelected.pill.description" class="card-content__pill" :style="{'backgroundColor': televisionOptionSelected.pill.backgroundColor, 'color': televisionOptionSelected.pill.textColor}" v-html="televisionOptionSelected.pill.description"> </span> </div> <!-- TELEVISION (SUBTITLE)--> <div :class="['card--offer--content-subtitle', 'television-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span class="card--offer--content-subtitle-speed bc-offer-subtitle-dark" v-html="televisionOptionSelected.description"></span> </div> <!-- TELEVISION (INFO NOTES)--> <div v-if="hasOttsOptionsToSelect" class="card--offer--content-ottLabel"> <div class="card--offer--content-infoNotes"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]">{{i18n.ottGenericLabel}}</span> </div> </div> <!-- TELEVISION OTTs (OPTIONS) --> <div class="card--offer--content-infoNotes"> <!-- OTT OPTION (SELECTABLE) --> <div v-if="(televisionOttSelected || televisionOtts) && hasOttsOptionsToSelect"> <div class="television--offers--content"> <div class="television--offers"> <template v-for="(item, index) in televisionOtts"> <div v-if="!item.included" :class="['ott--option--box', {'selected' : item.selected, 'bc-ott-option-dark' : isDarkTheme}]" @click="selectOpt('television', item, index, 'ott')"> <div :class="{'ott--images--wrapper': item.children.length > 1}"> <template v-for="ottChildren in item.children"> <div v-for="ottChildrenOption in dataJSON[ottChildren]?.options" v-if="dataJSON[ottChildren]?.options" class="television--offers--img" v-html="ottChildrenOption.description"></div> </template> </div> <span v-html="item.timeAbbreviation"></span> </div> </template> </div> </div> </div> <!-- OTT OPTION (NOT SELECTABLE) --> <div v-if="(televisionOttSelected || televisionOtts) && !hasOttsOptionsToSelect"> <div class="television--offers--content"> <div class="television--offers"> <template v-for="(item, index) in televisionOtts"> <template v-for="ottChildren in item.children"> <template v-for="ottChildrenOpt in dataJSON[ottChildren].options"> <div class="television--offers--img" v-html="ottChildrenOpt.description"></div> </template> </template> <template v-if="index != televisionOtts.length - 1"> <span>ou</span> </template> </template> </div> </div> <span :class="['television--offers--time', {'bc-ott-option-dark' : isDarkTheme}]" v-html="televisionOttSelected.time"></span> </div> </div> </div> <!-- MOBILE SERVICE--> <div v-if="addNumberSelected && addNumberSelectedLength >= 0 && mobileDetailsDescription" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span v-if="!isRedCard" class="card--offer--heading--svg mobile"> <svg v-if="!isDarkTheme" width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.5 17.5H7.5" stroke="url(#paint0_linear_1454_6764_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2.5 0.5H11.5V17.5C11.5 18.6055 10.6055 19.5 9.5 19.5H2.5C1.39453 19.5 0.5 18.6055 0.5 17.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="url(#paint1_linear_1454_6764_fibra-4-light)" stroke-miterlimit="10" stroke-linecap="round"/> <defs> <linearGradient id="paint0_linear_1454_6764_fibra-4-light" x1="4.52734" y1="17.9515" x2="7.49725" y2="17.8559" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_1454_6764_fibra-4-light" x1="0.60026" y1="9.07908" x2="11.5008" y2="9.01136" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.5 17.5H7.5" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2.5 0.5H11.5V17.5C11.5 18.6055 10.6055 19.5 9.5 19.5H2.5C1.39453 19.5 0.5 18.6055 0.5 17.5V2.5C0.5 1.39453 1.39453 0.5 2.5 0.5Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> </svg> </span> <span v-if="isRedCard" class="card--offer--heading--svg" style="width: 24px;"> <svg v-if="!isDarkTheme" width="24" height="24" viewBox="0 0 24 24" style="flex-shrink: 0;" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7.00021 19.5549H10.0002M15.0002 17.5825H16.9515M10.4515 4.33624C10.4513 4.10129 10.4975 3.86861 10.5873 3.65152C10.6771 3.43442 10.8089 3.23717 10.975 3.07103C11.1411 2.9049 11.3384 2.77315 11.5555 2.68331C11.7726 2.59348 12.0053 2.54732 12.2402 2.54749H20.4902V17.6725C20.4902 18.1469 20.3018 18.6019 19.9663 18.9373C19.6308 19.2728 19.1759 19.4612 18.7015 19.4612L13.679 19.5025M11.7502 21.4337L5.29022 21.4887C4.30272 21.4887 3.50146 20.6325 3.50146 19.645V6.30871C3.50146 5.83452 3.68975 5.37974 4.02494 5.04432C4.36012 4.7089 4.81478 4.5203 5.28897 4.51996H13.539V19.645C13.539 19.8799 13.4927 20.1125 13.4028 20.3295C13.3129 20.5465 13.1812 20.7437 13.0151 20.9098C12.849 21.0759 12.6518 21.2077 12.4347 21.2976C12.2177 21.3874 11.9851 21.4337 11.7502 21.4337Z" stroke="url(#paint0_linear_249_85781_fibra-4-light)" stroke-miterlimit="10" stroke-linecap="round"/> <defs> <linearGradient id="paint0_linear_249_85781_fibra-4-light" x1="3.50146" y1="21.4887" x2="22.3312" y2="4.60001" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.99997 19.5549H9.99997M15 17.5825H16.9512M10.4512 4.33624C10.4511 4.10129 10.4972 3.86861 10.587 3.65152C10.6769 3.43442 10.8086 3.23717 10.9748 3.07103C11.1409 2.9049 11.3382 2.77315 11.5552 2.68331C11.7723 2.59348 12.005 2.54732 12.24 2.54749H20.49V17.6725C20.49 18.1469 20.3015 18.6019 19.9661 18.9373C19.6306 19.2728 19.1756 19.4612 18.7012 19.4612L13.6787 19.5025M11.75 21.4337L5.28997 21.4887C4.30247 21.4887 3.50122 20.6325 3.50122 19.645V6.30871C3.50122 5.83452 3.68951 5.37974 4.02469 5.04432C4.35988 4.7089 4.81453 4.5203 5.28872 4.51996H13.5387V19.645C13.5387 19.8799 13.4925 20.1125 13.4026 20.3295C13.3127 20.5465 13.1809 20.7437 13.0148 20.9098C12.8487 21.0759 12.6515 21.2077 12.4345 21.2976C12.2175 21.3874 11.9849 21.4337 11.75 21.4337Z" stroke="#F06666" stroke-miterlimit="10" stroke-linecap="round"/> </svg> </span> <span v-if="isRedCard" :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Voz</span> <span v-else :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">Móvel</span> </div> <div :id="getMobileSubtitleId" v-if="!isRedCard" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-html="addNumberSelected.description"></span> <span v-if="mobileDetailsDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed" v-html="mobileDetailsDescription[addNumberSelectedLength]"></span> </div> <div :id="getMobileSubtitleId" v-if="isRedCard" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-if="mobileDetailsDescription[addNumberSelectedLength]" class="card--offer--content-subtitle-speed" v-html="mobileDetailsDescription[addNumberSelectedLength]"></span> </div> <div class="card--offer--content-infoNotes"> <div v-if="isRedCard && voiceAmountObject"> <div v-if="voiceAmountObject" v-for="voiceInfoNotes in voiceAmountObject"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="voiceInfoNotes.description"></span> </div> </div> <div v-if="!isRedCard" class="mobile--numbers"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="addNumberSelected.information"></span> </div> </div> </div> <!-- RED SIM CARD SECTION--> <div v-if="addNumberSelected && addNumberSelectedLength >= 0 && mobileDetailsDescription && isRedCard" :class="['card-offer-section', 'tv-section', {'bc-card-offer-section-dark':isDarkTheme}]"> <div class="card--offer--heading"> <span class="card--offer--heading--svg" style="width: fit-content;"> <svg v-if="!isDarkTheme" xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M6.5 19.5935V5.01846C6.50033 4.44503 6.72827 3.89518 7.13375 3.4897C7.53922 3.08423 8.08907 2.85629 8.6625 2.85596H14L17.5 6.25596V19.5935C17.4997 20.1669 17.2717 20.7167 16.8663 21.1222C16.4608 21.5277 15.9109 21.7556 15.3375 21.756H8.6625C8.08907 21.7556 7.53922 21.5277 7.13375 21.1222C6.72827 20.7167 6.50033 20.1669 6.5 19.5935Z" stroke="url(#paint0_linear_973_7589_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.5 10.7559H10.5C9.94772 10.7559 9.5 11.2037 9.5 11.7559V17.7559C9.5 18.3082 9.94772 18.7559 10.5 18.7559H13.5C14.0523 18.7559 14.5 18.3082 14.5 17.7559V11.7559C14.5 11.2037 14.0523 10.7559 13.5 10.7559Z" stroke="url(#paint1_linear_973_7589_fibra-4-light)" stroke-linecap="round" stroke-linejoin="round"/> <defs> <linearGradient id="paint0_linear_973_7589_fibra-4-light" x1="6.5" y1="21.756" x2="22.9334" y2="12.1915" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> <linearGradient id="paint1_linear_973_7589_fibra-4-light" x1="6.5" y1="21.756" x2="22.9334" y2="12.1915" gradientUnits="userSpaceOnUse"> <stop stop-color="#820000"/> <stop offset="1" stop-color="#E60000"/> </linearGradient> </defs> </svg> <svg v-else xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"> <path d="M6.5 19.5935V5.01846C6.50033 4.44503 6.72827 3.89518 7.13375 3.4897C7.53922 3.08423 8.08907 2.85629 8.6625 2.85596H14L17.5 6.25596V19.5935C17.4997 20.1669 17.2717 20.7167 16.8663 21.1222C16.4608 21.5277 15.9109 21.7556 15.3375 21.756H8.6625C8.08907 21.7556 7.53922 21.5277 7.13375 21.1222C6.72827 20.7167 6.50033 20.1669 6.5 19.5935Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.5 10.7559H10.5C9.94772 10.7559 9.5 11.2037 9.5 11.7559V17.7559C9.5 18.3082 9.94772 18.7559 10.5 18.7559H13.5C14.0523 18.7559 14.5 18.3082 14.5 17.7559V11.7559C14.5 11.2037 14.0523 10.7559 13.5 10.7559Z" stroke="#F06666" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span :class="['card--offer--heading--title', {'bc-heading-title-dark':isDarkTheme}]">SIM</span> </span> </div> <div v-if="addNumberSelected.description" :id="getMobileSubtitleId" :class="['card--offer--content-subtitle', 'mobile-subtitle', {'bc-offer-subtitle-dark' : isDarkTheme}]"> <span v-html="addNumberSelected.description"></span> </div> <div v-if="addNumberSelected.information" class="card--offer--content-infoNotes"> <div class="mobile--numbers"> <span :class="[{'bc-offer-infoNotes-dark' : isDarkTheme}]" v-html="addNumberSelected.information"></span> </div> </div> </div> </div> <!--BUTTON ACTIONS (DESKTOP)--> <div class="buttons-wrapper buttons-wrapper--mobile"> <div :class="['card--desktop__flex-display', 'card-button', {'bc-card-button-dark' : isDarkTheme}]"> <binding-submit-button id="fibra-4-light" :json-data="dataJSON" :dialog-data="dialogProperties" :dialog-html-attributes="{"id":"fibra-4-light_primary","href":"","paramOnClick":"$(\"#fibra-4-light\").empty();dataBindingOverlay.openDialog(\"fibra-4-light\",\"?i_id=fibra-4-light\");bwc_loadCardOfferPlaceholder(\"fibra-4-light\");","enableTravellers":"","target":"_self","title":"Aderir"}" :child-selection="childSelection" :previous-price="totalPreviousPrice" :total-price="totalPrice" binding-type="CBU"> </binding-submit-button> </div> </div> </div> </div> </div> <!-- MEMBERSHIP ADVANTAGES --> <div v-if="offersDisplayed || voucherData" :class="['binding_vTwo--card--membershipAdvantage', { 'bc-advantage-dark': isDarkTheme }]"> <div class="binding_vTwo--card--membershipAdvantage--sectionTitle"> <span :class="[{'bc-advantage-title-dark' : isDarkTheme}]">Escolha uma vantagem</span> </div> <div class="binding_vTwo--card--membershipAdvantage--sectionOffers"> <div v-for="offer in offersDisplayed"> <div :class="['binding_vTwo--card--membershipAdvantage--sectionOffers--options', {'selected' : offer.selected, 'bc-offers-dark':isDarkTheme}]" @click="selectOpt('offer', offer)" v-cloak> {{processStringLabel(offer.description)}} </div> </div> </div> <div v-if="voucherData" class="binding_vTwo--card--membershipAdvantage--sectionVoucher"> <div :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--wrapper', {'binding_vTwo--card--membershipAdvantage--sectionVoucher--new--direction': !hasVoucherDescriptionCard}]"> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--wrapper--plus"> <span :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--plus', {'bc-voucher-dark' : isDarkTheme }]">+</span> <span v-if="i18n.onlineExclusiveLabel != ''" :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--exclusive', {'bc-voucher-exclusive-dark' : isDarkTheme }]" v-html="i18n.onlineExclusiveLabel"></span> </div> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--items"> <template v-if="hasVoucherDescriptionCard"> <template v-for="(data, index) in makeVoucherDescription()"> <span v-if="data.image" :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--img', {'bc-voucher-dark' : isDarkTheme }]" v-html="data.image"></span> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--description"><span :class="[{'bc-voucher-dark' : isDarkTheme }]" v-html="data.description"></span></div> <span :class="['binding_vTwo--card--membershipAdvantage--sectionVoucher--plus', {'bc-voucher-dark' : isDarkTheme }]" v-if="offersDisplayed && index < makeVoucherDescription().length - 1">+</span> </template> </template> <template v-else> <div class="binding_vTwo--card--membershipAdvantage--sectionVoucher--description"><span :class="[{'bc-voucher-dark' : isDarkTheme }]">{{makeVoucherDescription()}}</span></div> </template> </div> </div> </div> </div> </div> </div> <div id="databinding-fibra-4-light-spinner" v-show="!isLoaded"> <div id="vf-loading-spinner-11763" class="vf-loading-spinner vf-loading-spinner--default"> <img src="/content/dam/digital-commons/loading-spinner.svg" class="vf-loading-spinner--img vf-loading-spinner--img--default"/> </div> </div> </div> <script id="bindingSubmitButton" type="text/x-template"> <a :id="generateId" v-if="!dialogHtmlAttributes.enableTravellers" :class="{'button button--primary binding--summary__cta__button no-gutter--all' : !tertiary, 'button button--data-binding--nav no-gutter--all' : tertiary}" @click="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" @click.right="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" @click.middle="dialogHtmlAttributes.paramOnClick ? submitButton($event) : goToConfigurator()" :href="dialogHtmlAttributes.href ? dialogHtmlAttributes.href : 'javascript:void(0)'" :target="dialogHtmlAttributes.target"> {{dialogHtmlAttributes.title}} </a> </script> <script type="text/javascript" onload="loadComponent('fibra-4-light');" src="/etc.clientlibs/digital-commons/components/content/authored/vf_dataBindingV2/clientlibs.5dc456039c4d0123f65e360f64bf6439.js"></script> </div> </div> </div> </div></div> </div> </div> </div> </div> </div> </div> </div> <div class="grid__item grid__item--top grid__item--align-center grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_grid vf_parent_component"> <div class="spring "> <div class="grid "> <div class="grid__item grid__item--top grid__item--align-center grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="cmp cmp-text"> <div class="section section__flush flush--top flush--bottom " style="border-radius: px;"> <div class="desktopText"> <p>As condições comerciais e mensalidades dos pacotes, acima indicadas, são válidas durante 24 meses e pressupõem adesão à Fatura Eletrónica.</p> </div> </div> </div> <div class="vf_heading vf_parent_component"> <div class="section section__flush flush--top flush--bottom section__gutter--half--bottom " style="border-radius: px;"> <h6 class="heading heading--6 heading--light no-gutter--all" style="color : ;"> <a onclick=";" href="/pacotes/detalhes.html" target="_self"> <span class="chevron chevron--inline chevron--inline--wrap"> <span class="chevron__text"> Mais detalhes destes pacotes </span> <span class="chevron__container"> <svg focusable="false" aria-hidden="true" class="icon icon--small chevron__icon font-color--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"></use> </svg> </span> </span> </a> </h6> </div> </div> <div class="vf_button vf_parent_component"> <div class="section section__flush flush--top flush--bottom " style="border-radius: px;"> <script>buttonId="button-4715";button="";</script> <div id="button-4715" button="{"type":"button","title":"Ver todos","titleMobile":"","target":"_self","url":"/content/digital-sites/pt/particulares/pacotes.html?activeTab=4p-5p&id=pacotes","param":"undefined","fullWidth":"false","buttonStyles":"class","buttonCssClass":"button--primary","buttonBorder":"undefined","borderStylePicker":"none","borderWidthPicker":"0","buttonBackgroundColor":"undefined","buttonSize":"medium","opacitySelect":"undefined","anchorLink":"undefined","buttonInlineSvg":false,"svgPosition":"undefined","boldClass":"","borderClass":"button--border","fullWidthClass":"","tealiumClick":"falseTealium","sizeClass":"button","mobileBorderClass":"button--border"}"></div> <script type="text/javascript" src="/etc.clientlibs/digital-commons/components/content/authored/vf_button/clientlibs.b1f44d92e21dc5840b660580e38d469c.js"></script> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div> </div> </div> <div class="js-tabs-content tabs__content" id="telemoveis"> <div class="vf_showcase vf_parent_component"> <div class="section section--wild-sand flush--bottom " style="border-radius: px"> <script>showCaseCmpId="showCase_1732405706543";</script> <div id="showCase_1732405706543" class="spring showCaseCmp carousel__products"> <h2 class="heading heading--3 heading--bold heading--leading"></h2> <showcase-carousel equal-heights-classes="img;.product__content;.product__prices" origin-component="showCase_1732405706543" collection-path="/var/commerce/collections/b2c/carrossel_hp_sitetelemoveis" catalog-payment-type="cvPvp" tab-hash="telemoveis" tabs-number="1" image-zoom-effect business-context="default"> </showcase-carousel> <div> <div class="section section__flush flush--bottom " style="border-radius: px;"> <div class="spring grid__item--align-center " style="color : #333333;"> <script>buttonId="button-17606";button="";</script> <div id="button-17606" button="{"type":"button","title":"Ver todos","titleMobile":"","target":"_self","url":"/content/digital-sites/pt/loja/telemoveis.html?i_id=carrossel-hp-site-telemoveis-vertodos","param":"undefined","fullWidth":"false","buttonStyles":"class","buttonCssClass":"button--primary","buttonBorder":"undefined","borderStylePicker":"none","borderWidthPicker":"0","buttonBackgroundColor":"undefined","buttonSize":"medium","opacitySelect":"undefined","anchorLink":"undefined","buttonInlineSvg":false,"svgPosition":"undefined","boldClass":"","borderClass":"button--border","fullWidthClass":"","tealiumClick":"falseTealium","sizeClass":"button","mobileBorderClass":"button--border"}"></div> <script type="text/javascript" src="/etc.clientlibs/digital-commons/components/content/authored/vf_button/clientlibs.b1f44d92e21dc5840b660580e38d469c.js"></script> </div> </div> </div> </div> <br/><br/> <script id="carouselPaypalCmp" type="text/x-template"> <div> <slot /> </div> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_carouselPaypal/clientlibs.min.js"></script> <!-- Define Template --> <script id="vueTabCmp" type="text/x-template"> <section v-show="isActive" :aria-hidden="! isActive" class="tabs-component-panel" :id="computedId" role="tabpanel"> <slot /> </section> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_vueTab/clientlibs.min.js"></script> <!-- Define Template --> <script id="vueTabsCmp" type="text/x-template"> <div :class="[tabsClass, { 'tabs--secondary': darkMode }]"> <div :class="[navigationWrapperClass]"> <nav :class="[navClass]" role="tablist"> <a v-for="(tab, i) in tabs" :key="i" :class="[linksClass, tab.isActive ? linksActiveClass : '']" v-show="tab.isVisible" v-html="tab.header" @click="selectTab(tab.hash, $event); handleTabInteractionTealium(tab.name)" ></a> </nav> </div> <div id="tab-1" :class="[tabsContentClass]"> <slot></slot> </div> </div> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_vueTabs/clientlibs.min.js"></script> <script id="showcaseCarousel" type="text/x-template"> <scrollable-carousel-vue v-if="tabIsActive && products.length!=0" :cards-to-show="4" :card-slice-portion="0" :carousel-elements="products" ref="productCarousel" :equal-heights-selector="equalHeights" :cards-to-scroll="2"> <template slot-scope="elementDetail"> <div class="carousel__slide carousel__slide-item width--100" style="text-align: left;"> <div class="carousel__slide" style="display: block;"> <div> <div class="tabs-filters__content"> <template v-for="badge in getVariant(elementDetail).badges"> <div v-if="displayBadge(badge)" :style="setBadge(badge)" :class="getBadgeClassByType(badge)" class="results__offer"> {{getBadgeLabel(badge)}} </div> <div v-else style="height: 34px;"></div> </template> <template v-for="noBadge in 2 - getVariant(elementDetail).badges.length"> <div style="height: 34px" /> </template> <div class="product__image-wrapper"> <a :href="catalogPaymentType ==='cv' ? updatePageLink(elementDetail.selectedCV.pageLink, 'cv') : updatePageLink(elementDetail.selectedPVP.pageLink, 'pvp')" @click="handleShowcaseCarouselTealium(elementDetail)"> <img @load="callCheckEqualHeights" v-if="catalogPaymentType ==='cv'" :src="setRendition(elementDetail.selectedCV.imageSrc, CONSTANTS.IMG_RENDITION_319X319)" :alt="elementDetail.name ? elementDetail.name : elementDetail.title" class="product__image"> <img @load="callCheckEqualHeights" v-else :src="setRendition(elementDetail.selectedPVP.imageSrc, CONSTANTS.IMG_RENDITION_319X319)" :alt="elementDetail.name ? elementDetail.name : elementDetail.title" class="product__image"> </a> </div> <div class="product__content"> <span class="product__heading--description heading heading--regular"> {{isBusinessContext ? elementDetail.offerBusiness : elementDetail.offerConsumer}} </span> <a :href="catalogPaymentType ==='cv' ? updatePageLink(elementDetail.selectedCV.pageLink, 'cv') : updatePageLink(elementDetail.selectedPVP.pageLink, 'pvp')" @click="handleShowcaseCarouselTealium(elementDetail)"> <span class="product__heading heading heading--bold" v-html="getProductName(elementDetail)"></span> </a> </div> <div v-if="elementDetail.selectedCV.priceCondition || elementDetail.selectedPVP.priceCondition" class="product__prices"> <div class="equalHeights" v-if="catalogPaymentType ==='cv'"> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV[0].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[0].points}} <span class="product__connector">{{i18n.points}}</span> </div> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV[1] && elementDetail.selectedCV.priceCondition.CV[1].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[1], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[1].points}} <span class="product__connector">{{i18n.points}}</span> </div> </div> <div class="equalHeights" v-if="catalogPaymentType ==='pvp'"> <div class="product__price" v-if="variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span v-if="elementDetail.selectedPVP && variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].strikedPrice" class="product__price--saving">{{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'strikedPrice', isBusinessContext)}}</span> </div> </div> <div class="equalHeights" v-if="catalogPaymentType ==='cvPvp'"> <div class="product__connector" v-if="(variantHasPVP(elementDetail.selectedPVP) && variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)) || (variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV.length > 1)"> {{i18n.from}} </div> <div class="product__price" v-if="variantHasPVP(elementDetail.selectedPVP)"> {{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span v-if="elementDetail.selectedPVP && variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].strikedPrice" class="product__price--saving">{{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'strikedPrice', isBusinessContext)}}</span> </div> <div class="product__connector" v-if="variantHasPVP(elementDetail.selectedPVP) && variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)"> {{i18n.or}} </div> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[0].points}} <span class="product__connector">{{i18n.points}}</span> </div> </div> </div> <div v-else class="product__prices"> <div class="equalHeights"> <div class="product__price"> {{CONSTANTS.DASH}} </div> </div> </div> </div> </div> </div> </div> </template> </scrollable-carousel-vue> <div v-else> <template v-if="isLoading"> <loading-spinner :wide="true" /> </template> </div> </script> <script id="scrollableCarouselVue" type="text/x-template"> <div class="carousel"> <div :ref="CONSTANTS.SLIDER" :class="[classProps, dynamicCarouselClass]"> <div class="carousel__slide carousel__horizontal-scroll" :class="slideClass" v-for="(elementDetail, index) in localElements" :key="index" :style="'width: ' + cardWidth + ';'" > <slot v-bind="elementDetail"></slot> </div> </div> <div v-if="showButtonsComputed" class="carousel__controls carousel__controls--visible" tabindex="-1" style="outline: none;"> <button v-if="!buttonLeftDisabled" type="button" class="carousel__control carousel__control--left" @click="scroll('left')"> <span class="visually-hidden">Elemento anterior</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-left"></use> </svg> </button> <button v-if="!buttonRightDisabled" type="button" class="carousel__control carousel__control--right" @click="scroll('right')"> <span class="visually-hidden">Proximo elemento</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-right"></use> </svg> </button> </div> </div> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_scrollableCarouselVue/clientlibs.min.js"></script> <script id="carouselVue" type="text/x-template"> <div class="carousel" @keyup="keyPressed"> <div class="carousel__wrapper" :class="carouselWrapperComplement" style="text-align: center;" @touchstart="touchStart" @touchend="touchEnd"> <transition-group tag="ul" name="carousel__slide" class="carousel__slider" style="width: 100%; height: auto; margin-left: 0%; position: relative;" ref="carouselElemets"> <li v-for="(elementDetail, index) in carouselElements" :key="elementDetail.uniqueKey" :class="['carousel__slide', localOptions.carouselSlideItemClass ? localOptions.carouselSlideItemClass : 'carousel__slide-item']" :style="localOptions.styles" style="text-align: left"> <slot v-bind="elementDetail"></slot> </li> </transition-group> </div> <div v-scroll="setFocus" v-if="localOptions.arrowsEnabled && (localOptions.paginationType!=='image' || !localOptions.arrowType)" class="carousel__controls carousel__controls--visible"> <template v-if="localOptions.arrowType === 'simpleArrows'"> <span @click="previous()" class="scheduling-date__flickity--buttons previous hide--sm" v-if="localOptions.loop||(!localOptions.loop && carouselPosition!=0)" disabled="" aria-label="Previous"> <svg class="flickity-button-icon" viewBox="0 0 100 100"> <path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow"></path> </svg> </span> <span @click="next()" v-if="localOptions.loop || (!localOptions.loop && (carouselPosition < carouselElements.length-localOptions.perPage))" class="scheduling-date__flickity--buttons next hide--sm" aria-label="Next"> <svg class="flickity-button-icon" viewBox="0 0 100 100"> <path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow" transform="translate(100, 100) rotate(180) "> </path> </svg> </span> </template> <template v-else> <button @click="previous()" v-if="localOptions.loop||(!localOptions.loop && carouselPosition!=0)" class="carousel__control carousel__control--left" type="button" data-direction="-1"> <span class="visually-hidden">{{i18n.previousElement}}</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-left"></use> </svg> </button> <button @click="next()" v-if="localOptions.loop||(!localOptions.loop && (carouselPosition!=carouselElements.length-1))" class="carousel__control carousel__control--right" type="button" data-direction="1"> <span class="visually-hidden">{{i18n.nextElement}}</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-right"></use> </svg> </button> </template> </div> <div v-scroll="setFocus" v-if="localOptions.arrowsEnabled || options.paginationEnabled" class="carousel__pagination carousel__pagination--visible" :class="carouselPaginationComplement"> <template v-if="localOptions.paginationType==='image' && !mobile"> <div @click="previous()" v-if="localOptions.arrowsEnabled && (!mobile && localOptions.arrowType==='red' && localOptions.maxThumbnails<thumbnails.length && (localOptions.loop || (!localOptions.loop && carouselPosition!=0)))" class="carousel__pagination__control--left" style="cursor: pointer;"> <svg focusable="false" aria-hidden="true" class="icon icon--medium icon--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-left"></use> </svg> </div> <ol class="list list--reset carousel__pagination__control--list carousel-gallery-pages" v-if="carouselElements.length>1 && !mobile"> <li v-for="(thumbnail, index) in thumbnails" v-if="isImageVisible(index)" class="carousel-gallery-pages__page-item" @click="goTo(index)" :class="{'carousel-gallery-pages__page-item--selected': index===carouselPosition, 'carousel-gallery-pages__page-item--video': thumbnail.type!=='IMAGE'}"> <svg v-if="thumbnail.type!=='IMAGE'" focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <button type="button" aria-current="page" class="carousel-gallery-pages__page button button--reset" :class="{'carousel-gallery-pages__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}}</span> <img v-if="thumbnail.alt" :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" :alt="thumbnail.alt" class="carousel-gallery-pages__page-image"> <img v-else :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" class="carousel-gallery-pages__page-image"> </button> </li> </ol> <div @click="next()" v-if="localOptions.arrowsEnabled && (!mobile && localOptions.arrowType==='red' && localOptions.maxThumbnails<thumbnails.length && (localOptions.loop||(!localOptions.loop && (carouselPosition!=carouselElements.length-1))))" class="carousel__pagination__control--right" style="cursor: pointer;"> <svg focusable="false" aria-hidden="true" class="icon icon--medium icon--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"></use> </svg> </div> </template> <template v-else-if="localOptions.paginationType==='productImage'"> <ol class="list list--reset carousel__pagination__control--list carousel-gallery-pages" v-if="carouselElements.length>0"> <li v-for="(thumbnail, index) in thumbnails" v-if="isImageVisible(index)" class="carousel-gallery-pages__page-item" @click="goToProductImage(index)" :class="{'carousel-gallery-pages__page-item--selected': index===carouselPosition, 'carousel-gallery-pages__page-item--video': thumbnail.type!=='IMAGE'}"> <svg v-if="thumbnail.type!=='IMAGE'" focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <button type="button" aria-current="page" class="carousel-gallery-pages__page button button--reset carousel-gallery-pages__page--button" :class="{'carousel-gallery-pages__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}}</span> <img v-if="thumbnail.alt" :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" :alt="thumbnail.alt" class="carousel-gallery-pages__page-image"> <img v-else :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" class="carousel-gallery-pages__page-image"> </button> </li> </ol> </template> <li v-else-if="localOptions.showBullets" v-for="(element, index) in carouselElements" class="carousel__page-item"> <button @click="goTo(index)" type="button" class="carousel__page button button--reset" :data-page="index" aria-current="page" :class="{'carousel__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}} </span> </button> </li> </div> </div> </script> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_carouselVue/clientlibs.min.js"></script> <script id="loadingSpinner" type="text/x-template"> <div :class="['loading__spinner', {'loading__spinner--wide': wide, 'loading__spinner--mdwind': mdwind, 'loading__spinner--file-upload-container': fucont, 'loading__spinner--calendar-container': calcont}]"> <img :class="['loading__spinner--image', {'loading__spinner--small': small, 'loading__spinner--medium': medium, 'loading__spinner--tiny': tiny, 'loading__spinner--extra-tiny': exttiny, 'loading__spinner--tiny-center': tinyc, 'loading__spinner--comparator': comparator}]" src="/content/dam/digital-commons/loading-spinner.svg" /> </div> </script> <style scoped>.loading__spinner{height:300px;position:relative;width:300px}.loading__spinner--wide{width:100%}.loading__spinner--image{width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading__spinner--small{transform:scale(.8,.8);top:0;left:0}.loading__spinner--medium{transform:scale(.8,.8);top:0;left:70%}.loading__spinner--mdwind{height:192px;transform:translate(0,-23%)}.loading__spinner--tiny{transform:scale(.5,.5);top:0;left:70%}.loading__spinner--file-upload-container{height:74px;transform:translate(-50%,-164%)}.loading__spinner--extra-tiny{transform:scale(.17,.17);height:260px}.loading__spinner--tiny-center{transform:scale(.5,.5);top:0;left:0}.loading__spinner--calendar-container{height:100px;transform:translate(0,-100%)}.loading__spinner--comparator{transform:translate(-50%,-50%) scale(.5,.5);top:50%;left:50%;max-width:unset}</style> <script src="/etc.clientlibs/digital-eshop/components/content/hidden/vf_showcaseCarousel/clientlibs.min.js"></script> <script type="text/javascript" src="/etc.clientlibs/digital-eshop/components/content/commerce/vf_showcase/clientlibs.df5e604d50f074db50df9dfeb00da2e1.js"></script> </div> </div> </div> <div class="js-tabs-content tabs__content" id="acessorios"> <div class="vf_grid vf_parent_component"> <div class="section section__flush flush--top flush--bottom " style="border-radius: px;"> <div class="grid equalrows" data-equal="h4; .equalHeights"> <div class="grid__item grid__item--top grid__item--align-left grid__item--sm-1/1 grid__item--md-1/1 grid__item--1/1"> <div class="vf_showcase vf_parent_component"> <div class="section section--wild-sand flush--bottom " style="border-radius: px"> <script>showCaseCmpId="showCase_1732405706576";</script> <div id="showCase_1732405706576" class="spring showCaseCmp carousel__products"> <h2 class="heading heading--3 heading--bold heading--leading"></h2> <showcase-carousel equal-heights-classes="img;.product__content;.product__prices" origin-component="showCase_1732405706576" collection-path="/var/commerce/collections/b2c/carrossel/carrossel_hp_siteacessorios" catalog-payment-type="cvPvp" tab-hash="acessorios" tabs-number="1" image-zoom-effect business-context="consumer"> </showcase-carousel> <div> <div class="section section__flush flush--bottom " style="border-radius: px;"> <div class="spring grid__item--align-center " style="color : #333333;"> <script>buttonId="button-3647";button="";</script> <div id="button-3647" button="{"type":"button","title":"Ver todos","titleMobile":"","target":"_self","url":"/content/digital-sites/pt/loja/acessorios.html?i_id=carrossel-hp-site-acessorios-vertodos","param":"undefined","fullWidth":"false","buttonStyles":"class","buttonCssClass":"button--primary","buttonBorder":"undefined","borderStylePicker":"none","borderWidthPicker":"0","buttonBackgroundColor":"undefined","buttonSize":"medium","opacitySelect":"undefined","anchorLink":"undefined","buttonInlineSvg":false,"svgPosition":"undefined","boldClass":"","borderClass":"button--border","fullWidthClass":"","tealiumClick":"falseTealium","sizeClass":"button","mobileBorderClass":"button--border"}"></div> <script type="text/javascript" src="/etc.clientlibs/digital-commons/components/content/authored/vf_button/clientlibs.b1f44d92e21dc5840b660580e38d469c.js"></script> </div> </div> </div> </div> <br/><br/> <script id="carouselPaypalCmp" type="text/x-template"> <div> <slot /> </div> </script> <!-- Define Template --> <script id="vueTabCmp" type="text/x-template"> <section v-show="isActive" :aria-hidden="! isActive" class="tabs-component-panel" :id="computedId" role="tabpanel"> <slot /> </section> </script> <!-- Define Template --> <script id="vueTabsCmp" type="text/x-template"> <div :class="[tabsClass, { 'tabs--secondary': darkMode }]"> <div :class="[navigationWrapperClass]"> <nav :class="[navClass]" role="tablist"> <a v-for="(tab, i) in tabs" :key="i" :class="[linksClass, tab.isActive ? linksActiveClass : '']" v-show="tab.isVisible" v-html="tab.header" @click="selectTab(tab.hash, $event); handleTabInteractionTealium(tab.name)" ></a> </nav> </div> <div id="tab-1" :class="[tabsContentClass]"> <slot></slot> </div> </div> </script> <script id="showcaseCarousel" type="text/x-template"> <scrollable-carousel-vue v-if="tabIsActive && products.length!=0" :cards-to-show="4" :card-slice-portion="0" :carousel-elements="products" ref="productCarousel" :equal-heights-selector="equalHeights" :cards-to-scroll="2"> <template slot-scope="elementDetail"> <div class="carousel__slide carousel__slide-item width--100" style="text-align: left;"> <div class="carousel__slide" style="display: block;"> <div> <div class="tabs-filters__content"> <template v-for="badge in getVariant(elementDetail).badges"> <div v-if="displayBadge(badge)" :style="setBadge(badge)" :class="getBadgeClassByType(badge)" class="results__offer"> {{getBadgeLabel(badge)}} </div> <div v-else style="height: 34px;"></div> </template> <template v-for="noBadge in 2 - getVariant(elementDetail).badges.length"> <div style="height: 34px" /> </template> <div class="product__image-wrapper"> <a :href="catalogPaymentType ==='cv' ? updatePageLink(elementDetail.selectedCV.pageLink, 'cv') : updatePageLink(elementDetail.selectedPVP.pageLink, 'pvp')" @click="handleShowcaseCarouselTealium(elementDetail)"> <img @load="callCheckEqualHeights" v-if="catalogPaymentType ==='cv'" :src="setRendition(elementDetail.selectedCV.imageSrc, CONSTANTS.IMG_RENDITION_319X319)" :alt="elementDetail.name ? elementDetail.name : elementDetail.title" class="product__image"> <img @load="callCheckEqualHeights" v-else :src="setRendition(elementDetail.selectedPVP.imageSrc, CONSTANTS.IMG_RENDITION_319X319)" :alt="elementDetail.name ? elementDetail.name : elementDetail.title" class="product__image"> </a> </div> <div class="product__content"> <span class="product__heading--description heading heading--regular"> {{isBusinessContext ? elementDetail.offerBusiness : elementDetail.offerConsumer}} </span> <a :href="catalogPaymentType ==='cv' ? updatePageLink(elementDetail.selectedCV.pageLink, 'cv') : updatePageLink(elementDetail.selectedPVP.pageLink, 'pvp')" @click="handleShowcaseCarouselTealium(elementDetail)"> <span class="product__heading heading heading--bold" v-html="getProductName(elementDetail)"></span> </a> </div> <div v-if="elementDetail.selectedCV.priceCondition || elementDetail.selectedPVP.priceCondition" class="product__prices"> <div class="equalHeights" v-if="catalogPaymentType ==='cv'"> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV[0].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[0].points}} <span class="product__connector">{{i18n.points}}</span> </div> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV[1] && elementDetail.selectedCV.priceCondition.CV[1].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[1], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[1].points}} <span class="product__connector">{{i18n.points}}</span> </div> </div> <div class="equalHeights" v-if="catalogPaymentType ==='pvp'"> <div class="product__price" v-if="variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span v-if="elementDetail.selectedPVP && variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].strikedPrice" class="product__price--saving">{{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'strikedPrice', isBusinessContext)}}</span> </div> </div> <div class="equalHeights" v-if="catalogPaymentType ==='cvPvp'"> <div class="product__connector" v-if="(variantHasPVP(elementDetail.selectedPVP) && variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)) || (variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV.length > 1)"> {{i18n.from}} </div> <div class="product__price" v-if="variantHasPVP(elementDetail.selectedPVP)"> {{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span v-if="elementDetail.selectedPVP && variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].strikedPrice" class="product__price--saving">{{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'strikedPrice', isBusinessContext)}}</span> </div> <div class="product__connector" v-if="variantHasPVP(elementDetail.selectedPVP) && variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)"> {{i18n.or}} </div> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[0].points}} <span class="product__connector">{{i18n.points}}</span> </div> </div> </div> <div v-else class="product__prices"> <div class="equalHeights"> <div class="product__price"> {{CONSTANTS.DASH}} </div> </div> </div> </div> </div> </div> </div> </template> </scrollable-carousel-vue> <div v-else> <template v-if="isLoading"> <loading-spinner :wide="true" /> </template> </div> </script> <script id="scrollableCarouselVue" type="text/x-template"> <div class="carousel"> <div :ref="CONSTANTS.SLIDER" :class="[classProps, dynamicCarouselClass]"> <div class="carousel__slide carousel__horizontal-scroll" :class="slideClass" v-for="(elementDetail, index) in localElements" :key="index" :style="'width: ' + cardWidth + ';'" > <slot v-bind="elementDetail"></slot> </div> </div> <div v-if="showButtonsComputed" class="carousel__controls carousel__controls--visible" tabindex="-1" style="outline: none;"> <button v-if="!buttonLeftDisabled" type="button" class="carousel__control carousel__control--left" @click="scroll('left')"> <span class="visually-hidden">Elemento anterior</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-left"></use> </svg> </button> <button v-if="!buttonRightDisabled" type="button" class="carousel__control carousel__control--right" @click="scroll('right')"> <span class="visually-hidden">Proximo elemento</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-right"></use> </svg> </button> </div> </div> </script> <script id="carouselVue" type="text/x-template"> <div class="carousel" @keyup="keyPressed"> <div class="carousel__wrapper" :class="carouselWrapperComplement" style="text-align: center;" @touchstart="touchStart" @touchend="touchEnd"> <transition-group tag="ul" name="carousel__slide" class="carousel__slider" style="width: 100%; height: auto; margin-left: 0%; position: relative;" ref="carouselElemets"> <li v-for="(elementDetail, index) in carouselElements" :key="elementDetail.uniqueKey" :class="['carousel__slide', localOptions.carouselSlideItemClass ? localOptions.carouselSlideItemClass : 'carousel__slide-item']" :style="localOptions.styles" style="text-align: left"> <slot v-bind="elementDetail"></slot> </li> </transition-group> </div> <div v-scroll="setFocus" v-if="localOptions.arrowsEnabled && (localOptions.paginationType!=='image' || !localOptions.arrowType)" class="carousel__controls carousel__controls--visible"> <template v-if="localOptions.arrowType === 'simpleArrows'"> <span @click="previous()" class="scheduling-date__flickity--buttons previous hide--sm" v-if="localOptions.loop||(!localOptions.loop && carouselPosition!=0)" disabled="" aria-label="Previous"> <svg class="flickity-button-icon" viewBox="0 0 100 100"> <path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow"></path> </svg> </span> <span @click="next()" v-if="localOptions.loop || (!localOptions.loop && (carouselPosition < carouselElements.length-localOptions.perPage))" class="scheduling-date__flickity--buttons next hide--sm" aria-label="Next"> <svg class="flickity-button-icon" viewBox="0 0 100 100"> <path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow" transform="translate(100, 100) rotate(180) "> </path> </svg> </span> </template> <template v-else> <button @click="previous()" v-if="localOptions.loop||(!localOptions.loop && carouselPosition!=0)" class="carousel__control carousel__control--left" type="button" data-direction="-1"> <span class="visually-hidden">{{i18n.previousElement}}</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-left"></use> </svg> </button> <button @click="next()" v-if="localOptions.loop||(!localOptions.loop && (carouselPosition!=carouselElements.length-1))" class="carousel__control carousel__control--right" type="button" data-direction="1"> <span class="visually-hidden">{{i18n.nextElement}}</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-right"></use> </svg> </button> </template> </div> <div v-scroll="setFocus" v-if="localOptions.arrowsEnabled || options.paginationEnabled" class="carousel__pagination carousel__pagination--visible" :class="carouselPaginationComplement"> <template v-if="localOptions.paginationType==='image' && !mobile"> <div @click="previous()" v-if="localOptions.arrowsEnabled && (!mobile && localOptions.arrowType==='red' && localOptions.maxThumbnails<thumbnails.length && (localOptions.loop || (!localOptions.loop && carouselPosition!=0)))" class="carousel__pagination__control--left" style="cursor: pointer;"> <svg focusable="false" aria-hidden="true" class="icon icon--medium icon--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-left"></use> </svg> </div> <ol class="list list--reset carousel__pagination__control--list carousel-gallery-pages" v-if="carouselElements.length>1 && !mobile"> <li v-for="(thumbnail, index) in thumbnails" v-if="isImageVisible(index)" class="carousel-gallery-pages__page-item" @click="goTo(index)" :class="{'carousel-gallery-pages__page-item--selected': index===carouselPosition, 'carousel-gallery-pages__page-item--video': thumbnail.type!=='IMAGE'}"> <svg v-if="thumbnail.type!=='IMAGE'" focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <button type="button" aria-current="page" class="carousel-gallery-pages__page button button--reset" :class="{'carousel-gallery-pages__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}}</span> <img v-if="thumbnail.alt" :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" :alt="thumbnail.alt" class="carousel-gallery-pages__page-image"> <img v-else :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" class="carousel-gallery-pages__page-image"> </button> </li> </ol> <div @click="next()" v-if="localOptions.arrowsEnabled && (!mobile && localOptions.arrowType==='red' && localOptions.maxThumbnails<thumbnails.length && (localOptions.loop||(!localOptions.loop && (carouselPosition!=carouselElements.length-1))))" class="carousel__pagination__control--right" style="cursor: pointer;"> <svg focusable="false" aria-hidden="true" class="icon icon--medium icon--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"></use> </svg> </div> </template> <template v-else-if="localOptions.paginationType==='productImage'"> <ol class="list list--reset carousel__pagination__control--list carousel-gallery-pages" v-if="carouselElements.length>0"> <li v-for="(thumbnail, index) in thumbnails" v-if="isImageVisible(index)" class="carousel-gallery-pages__page-item" @click="goToProductImage(index)" :class="{'carousel-gallery-pages__page-item--selected': index===carouselPosition, 'carousel-gallery-pages__page-item--video': thumbnail.type!=='IMAGE'}"> <svg v-if="thumbnail.type!=='IMAGE'" focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <button type="button" aria-current="page" class="carousel-gallery-pages__page button button--reset carousel-gallery-pages__page--button" :class="{'carousel-gallery-pages__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}}</span> <img v-if="thumbnail.alt" :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" :alt="thumbnail.alt" class="carousel-gallery-pages__page-image"> <img v-else :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" class="carousel-gallery-pages__page-image"> </button> </li> </ol> </template> <li v-else-if="localOptions.showBullets" v-for="(element, index) in carouselElements" class="carousel__page-item"> <button @click="goTo(index)" type="button" class="carousel__page button button--reset" :data-page="index" aria-current="page" :class="{'carousel__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}} </span> </button> </li> </div> </div> </script> <script id="loadingSpinner" type="text/x-template"> <div :class="['loading__spinner', {'loading__spinner--wide': wide, 'loading__spinner--mdwind': mdwind, 'loading__spinner--file-upload-container': fucont, 'loading__spinner--calendar-container': calcont}]"> <img :class="['loading__spinner--image', {'loading__spinner--small': small, 'loading__spinner--medium': medium, 'loading__spinner--tiny': tiny, 'loading__spinner--extra-tiny': exttiny, 'loading__spinner--tiny-center': tinyc, 'loading__spinner--comparator': comparator}]" src="/content/dam/digital-commons/loading-spinner.svg" /> </div> </script> <style scoped>.loading__spinner{height:300px;position:relative;width:300px}.loading__spinner--wide{width:100%}.loading__spinner--image{width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading__spinner--small{transform:scale(.8,.8);top:0;left:0}.loading__spinner--medium{transform:scale(.8,.8);top:0;left:70%}.loading__spinner--mdwind{height:192px;transform:translate(0,-23%)}.loading__spinner--tiny{transform:scale(.5,.5);top:0;left:70%}.loading__spinner--file-upload-container{height:74px;transform:translate(-50%,-164%)}.loading__spinner--extra-tiny{transform:scale(.17,.17);height:260px}.loading__spinner--tiny-center{transform:scale(.5,.5);top:0;left:0}.loading__spinner--calendar-container{height:100px;transform:translate(0,-100%)}.loading__spinner--comparator{transform:translate(-50%,-50%) scale(.5,.5);top:50%;left:50%;max-width:unset}</style> <script type="text/javascript" src="/etc.clientlibs/digital-eshop/components/content/commerce/vf_showcase/clientlibs.df5e604d50f074db50df9dfeb00da2e1.js"></script> </div> </div> </div> </div> </div> </div> </div> <div class="js-tabs-content tabs__content" id="cartoes"> <div class="vf_showcase vf_parent_component"> <div class="section section--wild-sand flush--bottom " style="border-radius: px"> <script>showCaseCmpId="showCase_1732405706600";</script> <div id="showCase_1732405706600" class="spring showCaseCmp carousel__products"> <h2 class="heading heading--3 heading--bold heading--leading"></h2> <showcase-carousel equal-heights-classes="img;.product__content;.product__prices" origin-component="showCase_1732405706600" collection-path="/var/commerce/collections/b2c/carrossel/carrossel_hp_sitecartoes" catalog-payment-type="cvPvp" tab-hash="cartoes" tabs-number="1" image-zoom-effect business-context="consumer"> </showcase-carousel> <div> <div class="section section__flush flush--bottom " style="border-radius: px;"> <div class="spring grid__item--align-center " style="color : #333333;"> <script>buttonId="button-28697";button="";</script> <div id="button-28697" button="{"type":"button","title":"Ver todos","titleMobile":"","target":"_self","url":"/content/digital-sites/pt/loja/cartoes-sim.html?i_id=carrossel-hp-site-cartoes-vertodos","param":"undefined","fullWidth":"false","buttonStyles":"class","buttonCssClass":"button--primary","buttonBorder":"undefined","borderStylePicker":"none","borderWidthPicker":"0","buttonBackgroundColor":"undefined","buttonSize":"medium","opacitySelect":"undefined","anchorLink":"undefined","buttonInlineSvg":false,"svgPosition":"undefined","boldClass":"","borderClass":"button--border","fullWidthClass":"","tealiumClick":"falseTealium","sizeClass":"button","mobileBorderClass":"button--border"}"></div> <script type="text/javascript" src="/etc.clientlibs/digital-commons/components/content/authored/vf_button/clientlibs.b1f44d92e21dc5840b660580e38d469c.js"></script> </div> </div> </div> </div> <br/><br/> <script id="carouselPaypalCmp" type="text/x-template"> <div> <slot /> </div> </script> <!-- Define Template --> <script id="vueTabCmp" type="text/x-template"> <section v-show="isActive" :aria-hidden="! isActive" class="tabs-component-panel" :id="computedId" role="tabpanel"> <slot /> </section> </script> <!-- Define Template --> <script id="vueTabsCmp" type="text/x-template"> <div :class="[tabsClass, { 'tabs--secondary': darkMode }]"> <div :class="[navigationWrapperClass]"> <nav :class="[navClass]" role="tablist"> <a v-for="(tab, i) in tabs" :key="i" :class="[linksClass, tab.isActive ? linksActiveClass : '']" v-show="tab.isVisible" v-html="tab.header" @click="selectTab(tab.hash, $event); handleTabInteractionTealium(tab.name)" ></a> </nav> </div> <div id="tab-1" :class="[tabsContentClass]"> <slot></slot> </div> </div> </script> <script id="showcaseCarousel" type="text/x-template"> <scrollable-carousel-vue v-if="tabIsActive && products.length!=0" :cards-to-show="4" :card-slice-portion="0" :carousel-elements="products" ref="productCarousel" :equal-heights-selector="equalHeights" :cards-to-scroll="2"> <template slot-scope="elementDetail"> <div class="carousel__slide carousel__slide-item width--100" style="text-align: left;"> <div class="carousel__slide" style="display: block;"> <div> <div class="tabs-filters__content"> <template v-for="badge in getVariant(elementDetail).badges"> <div v-if="displayBadge(badge)" :style="setBadge(badge)" :class="getBadgeClassByType(badge)" class="results__offer"> {{getBadgeLabel(badge)}} </div> <div v-else style="height: 34px;"></div> </template> <template v-for="noBadge in 2 - getVariant(elementDetail).badges.length"> <div style="height: 34px" /> </template> <div class="product__image-wrapper"> <a :href="catalogPaymentType ==='cv' ? updatePageLink(elementDetail.selectedCV.pageLink, 'cv') : updatePageLink(elementDetail.selectedPVP.pageLink, 'pvp')" @click="handleShowcaseCarouselTealium(elementDetail)"> <img @load="callCheckEqualHeights" v-if="catalogPaymentType ==='cv'" :src="setRendition(elementDetail.selectedCV.imageSrc, CONSTANTS.IMG_RENDITION_319X319)" :alt="elementDetail.name ? elementDetail.name : elementDetail.title" class="product__image"> <img @load="callCheckEqualHeights" v-else :src="setRendition(elementDetail.selectedPVP.imageSrc, CONSTANTS.IMG_RENDITION_319X319)" :alt="elementDetail.name ? elementDetail.name : elementDetail.title" class="product__image"> </a> </div> <div class="product__content"> <span class="product__heading--description heading heading--regular"> {{isBusinessContext ? elementDetail.offerBusiness : elementDetail.offerConsumer}} </span> <a :href="catalogPaymentType ==='cv' ? updatePageLink(elementDetail.selectedCV.pageLink, 'cv') : updatePageLink(elementDetail.selectedPVP.pageLink, 'pvp')" @click="handleShowcaseCarouselTealium(elementDetail)"> <span class="product__heading heading heading--bold" v-html="getProductName(elementDetail)"></span> </a> </div> <div v-if="elementDetail.selectedCV.priceCondition || elementDetail.selectedPVP.priceCondition" class="product__prices"> <div class="equalHeights" v-if="catalogPaymentType ==='cv'"> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV[0].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[0].points}} <span class="product__connector">{{i18n.points}}</span> </div> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV[1] && elementDetail.selectedCV.priceCondition.CV[1].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[1], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[1].points}} <span class="product__connector">{{i18n.points}}</span> </div> </div> <div class="equalHeights" v-if="catalogPaymentType ==='pvp'"> <div class="product__price" v-if="variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].price"> {{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span v-if="elementDetail.selectedPVP && variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].strikedPrice" class="product__price--saving">{{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'strikedPrice', isBusinessContext)}}</span> </div> </div> <div class="equalHeights" v-if="catalogPaymentType ==='cvPvp'"> <div class="product__connector" v-if="(variantHasPVP(elementDetail.selectedPVP) && variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)) || (variantHasCV(elementDetail.selectedCV) && elementDetail.selectedCV.priceCondition.CV.length > 1)"> {{i18n.from}} </div> <div class="product__price" v-if="variantHasPVP(elementDetail.selectedPVP)"> {{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span v-if="elementDetail.selectedPVP && variantHasPVP(elementDetail.selectedPVP) && elementDetail.selectedPVP.priceCondition.PVP[0].strikedPrice" class="product__price--saving">{{formatPriceBasedOnPriceType(elementDetail.selectedPVP.priceCondition.PVP[0], 'strikedPrice', isBusinessContext)}}</span> </div> <div class="product__connector" v-if="variantHasPVP(elementDetail.selectedPVP) && variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)"> {{i18n.or}} </div> <div class="product__price" v-if="variantHasCV(elementDetail.selectedCV) && !checkIfPvpFreePrice(elementDetail.selectedPVP)"> {{formatPriceBasedOnPriceType(elementDetail.selectedCV.priceCondition.CV[0], 'price', isBusinessContext)}} <span class="product__connector" v-if="isBusinessContext">{{i18n.withoutVAT}}</span> <span class="product__connector">+</span> {{elementDetail.selectedCV.priceCondition.CV[0].points}} <span class="product__connector">{{i18n.points}}</span> </div> </div> </div> <div v-else class="product__prices"> <div class="equalHeights"> <div class="product__price"> {{CONSTANTS.DASH}} </div> </div> </div> </div> </div> </div> </div> </template> </scrollable-carousel-vue> <div v-else> <template v-if="isLoading"> <loading-spinner :wide="true" /> </template> </div> </script> <script id="scrollableCarouselVue" type="text/x-template"> <div class="carousel"> <div :ref="CONSTANTS.SLIDER" :class="[classProps, dynamicCarouselClass]"> <div class="carousel__slide carousel__horizontal-scroll" :class="slideClass" v-for="(elementDetail, index) in localElements" :key="index" :style="'width: ' + cardWidth + ';'" > <slot v-bind="elementDetail"></slot> </div> </div> <div v-if="showButtonsComputed" class="carousel__controls carousel__controls--visible" tabindex="-1" style="outline: none;"> <button v-if="!buttonLeftDisabled" type="button" class="carousel__control carousel__control--left" @click="scroll('left')"> <span class="visually-hidden">Elemento anterior</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-left"></use> </svg> </button> <button v-if="!buttonRightDisabled" type="button" class="carousel__control carousel__control--right" @click="scroll('right')"> <span class="visually-hidden">Proximo elemento</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-right"></use> </svg> </button> </div> </div> </script> <script id="carouselVue" type="text/x-template"> <div class="carousel" @keyup="keyPressed"> <div class="carousel__wrapper" :class="carouselWrapperComplement" style="text-align: center;" @touchstart="touchStart" @touchend="touchEnd"> <transition-group tag="ul" name="carousel__slide" class="carousel__slider" style="width: 100%; height: auto; margin-left: 0%; position: relative;" ref="carouselElemets"> <li v-for="(elementDetail, index) in carouselElements" :key="elementDetail.uniqueKey" :class="['carousel__slide', localOptions.carouselSlideItemClass ? localOptions.carouselSlideItemClass : 'carousel__slide-item']" :style="localOptions.styles" style="text-align: left"> <slot v-bind="elementDetail"></slot> </li> </transition-group> </div> <div v-scroll="setFocus" v-if="localOptions.arrowsEnabled && (localOptions.paginationType!=='image' || !localOptions.arrowType)" class="carousel__controls carousel__controls--visible"> <template v-if="localOptions.arrowType === 'simpleArrows'"> <span @click="previous()" class="scheduling-date__flickity--buttons previous hide--sm" v-if="localOptions.loop||(!localOptions.loop && carouselPosition!=0)" disabled="" aria-label="Previous"> <svg class="flickity-button-icon" viewBox="0 0 100 100"> <path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow"></path> </svg> </span> <span @click="next()" v-if="localOptions.loop || (!localOptions.loop && (carouselPosition < carouselElements.length-localOptions.perPage))" class="scheduling-date__flickity--buttons next hide--sm" aria-label="Next"> <svg class="flickity-button-icon" viewBox="0 0 100 100"> <path d="M 10,50 L 60,100 L 70,90 L 30,50 L 70,10 L 60,0 Z" class="arrow" transform="translate(100, 100) rotate(180) "> </path> </svg> </span> </template> <template v-else> <button @click="previous()" v-if="localOptions.loop||(!localOptions.loop && carouselPosition!=0)" class="carousel__control carousel__control--left" type="button" data-direction="-1"> <span class="visually-hidden">{{i18n.previousElement}}</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-left"></use> </svg> </button> <button @click="next()" v-if="localOptions.loop||(!localOptions.loop && (carouselPosition!=carouselElements.length-1))" class="carousel__control carousel__control--right" type="button" data-direction="1"> <span class="visually-hidden">{{i18n.nextElement}}</span> <svg focusable="false" aria-hidden="true" class="icon icon--small carousel__control-icon"> <use xlink:href="#icon-chevron-right"></use> </svg> </button> </template> </div> <div v-scroll="setFocus" v-if="localOptions.arrowsEnabled || options.paginationEnabled" class="carousel__pagination carousel__pagination--visible" :class="carouselPaginationComplement"> <template v-if="localOptions.paginationType==='image' && !mobile"> <div @click="previous()" v-if="localOptions.arrowsEnabled && (!mobile && localOptions.arrowType==='red' && localOptions.maxThumbnails<thumbnails.length && (localOptions.loop || (!localOptions.loop && carouselPosition!=0)))" class="carousel__pagination__control--left" style="cursor: pointer;"> <svg focusable="false" aria-hidden="true" class="icon icon--medium icon--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-left"></use> </svg> </div> <ol class="list list--reset carousel__pagination__control--list carousel-gallery-pages" v-if="carouselElements.length>1 && !mobile"> <li v-for="(thumbnail, index) in thumbnails" v-if="isImageVisible(index)" class="carousel-gallery-pages__page-item" @click="goTo(index)" :class="{'carousel-gallery-pages__page-item--selected': index===carouselPosition, 'carousel-gallery-pages__page-item--video': thumbnail.type!=='IMAGE'}"> <svg v-if="thumbnail.type!=='IMAGE'" focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <button type="button" aria-current="page" class="carousel-gallery-pages__page button button--reset" :class="{'carousel-gallery-pages__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}}</span> <img v-if="thumbnail.alt" :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" :alt="thumbnail.alt" class="carousel-gallery-pages__page-image"> <img v-else :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" class="carousel-gallery-pages__page-image"> </button> </li> </ol> <div @click="next()" v-if="localOptions.arrowsEnabled && (!mobile && localOptions.arrowType==='red' && localOptions.maxThumbnails<thumbnails.length && (localOptions.loop||(!localOptions.loop && (carouselPosition!=carouselElements.length-1))))" class="carousel__pagination__control--right" style="cursor: pointer;"> <svg focusable="false" aria-hidden="true" class="icon icon--medium icon--red"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"></use> </svg> </div> </template> <template v-else-if="localOptions.paginationType==='productImage'"> <ol class="list list--reset carousel__pagination__control--list carousel-gallery-pages" v-if="carouselElements.length>0"> <li v-for="(thumbnail, index) in thumbnails" v-if="isImageVisible(index)" class="carousel-gallery-pages__page-item" @click="goToProductImage(index)" :class="{'carousel-gallery-pages__page-item--selected': index===carouselPosition, 'carousel-gallery-pages__page-item--video': thumbnail.type!=='IMAGE'}"> <svg v-if="thumbnail.type!=='IMAGE'" focusable="false" aria-hidden="true" class="icon icon--small"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-play"></use> </svg> <button type="button" aria-current="page" class="carousel-gallery-pages__page button button--reset carousel-gallery-pages__page--button" :class="{'carousel-gallery-pages__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}}</span> <img v-if="thumbnail.alt" :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" :alt="thumbnail.alt" class="carousel-gallery-pages__page-image"> <img v-else :src="isEshop()? setRendition(thumbnail.path, CONSTANTS.IMG_RENDITION_140x100) : thumbnail.path" class="carousel-gallery-pages__page-image"> </button> </li> </ol> </template> <li v-else-if="localOptions.showBullets" v-for="(element, index) in carouselElements" class="carousel__page-item"> <button @click="goTo(index)" type="button" class="carousel__page button button--reset" :data-page="index" aria-current="page" :class="{'carousel__page--active': index===carouselPosition}"> <span class="visually-hidden"> {{i18n.goTo}}{{index}} </span> </button> </li> </div> </div> </script> <script id="loadingSpinner" type="text/x-template"> <div :class="['loading__spinner', {'loading__spinner--wide': wide, 'loading__spinner--mdwind': mdwind, 'loading__spinner--file-upload-container': fucont, 'loading__spinner--calendar-container': calcont}]"> <img :class="['loading__spinner--image', {'loading__spinner--small': small, 'loading__spinner--medium': medium, 'loading__spinner--tiny': tiny, 'loading__spinner--extra-tiny': exttiny, 'loading__spinner--tiny-center': tinyc, 'loading__spinner--comparator': comparator}]" src="/content/dam/digital-commons/loading-spinner.svg" /> </div> </script> <style scoped>.loading__spinner{height:300px;position:relative;width:300px}.loading__spinner--wide{width:100%}.loading__spinner--image{width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading__spinner--small{transform:scale(.8,.8);top:0;left:0}.loading__spinner--medium{transform:scale(.8,.8);top:0;left:70%}.loading__spinner--mdwind{height:192px;transform:translate(0,-23%)}.loading__spinner--tiny{transform:scale(.5,.5);top:0;left:70%}.loading__spinner--file-upload-container{height:74px;transform:translate(-50%,-164%)}.loading__spinner--extra-tiny{transform:scale(.17,.17);height:260px}.loading__spinner--tiny-center{transform:scale(.5,.5);top:0;left:0}.loading__spinner--calendar-container{height:100px;transform:translate(0,-100%)}.loading__spinner--comparator{transform:translate(-50%,-50%) scale(.5,.5);top:50%;left:50%;max-width:unset}</style> <script type="text/javascript" src="/etc.clientlibs/digital-eshop/components/content/commerce/vf_showcase/clientlibs.df5e604d50f074db50df9dfeb00da2e1.js"></script> </div> </div> </div> </div> </div> </div> </section> </div> </div> <script>document.addEventListener('DOMContentLoaded',function(){initTabs("equipamentos","");});</script> </div> </div> <div class="vf_experienceFragment aem-GridColumn aem-GridColumn--default--12"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="cmp cmp-text aem-GridColumn aem-GridColumn--default--12"> <div class="section section--wild-sand flush--half-top " style="border-radius: 0px"> <div class="spring grid__item--align-center "> <div class="desktopText"> <p class="heading heading--light heading--5 no-gutter--all" style="color: rgb(153,153,153);"><b class="heading--regular" style="">Apoio ao Cliente </b>911691200 (taxação à tarifa rede móvel Vodafone) | 16912 (tarifa aplicável e outras linhas de contacto <a class="link link--body" href="https://www.vodafone.pt/ajuda/contactos.html">aqui</a>)<br/> </p> </div> </div> </div> </div> </div> </div></div> </div> <div class="vf_html vf_parent_component aem-GridColumn aem-GridColumn--default--12"> <div class="section section__flush flush--top flush--bottom " style="border-radius: 0px;"> <div id="push-inline-frame"></div> <div class="clear"></div> </div> </div> </div> </div> <div class="vf_publicationModification aem-GridColumn aem-GridColumn--default--12"></div> <div class="vf_experienceFragment aem-GridColumn aem-GridColumn--default--12"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_socialMedia vf_parent_component aem-GridColumn aem-GridColumn--default--12"> </div> </div> </div></div> </div> <div class="vf_experienceFragment aem-GridColumn aem-GridColumn--default--12"> <div class="xfpage page basicpage"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="vf_footer_ws10 aem-GridColumn aem-GridColumn--default--12"><div class="vf"> <footer> <div class="footer-ws10"> <div class="spring"> <div class="footer-ws10__navigation"> <div class="no-gutter--sm-bottom"> <div class="grid"> <div class="grid__item grid__item--1/4 grid__item--md-1/2 grid__item--sm-2/3"> <h2 class="visually-hidden">Follow us</h2> <span class="footer-ws10__title">Social</span> <ul class="list list--reset social__list"> <li class="footer-ws10__social"> <div> <a role="button" href="https://www.facebook.com/vodafonePT" target="_self" onclick="tealium_ws10_svg.methods.handleClickSVGEntry('Event Click Footer Social Media Menu','Facebook')"> <span class="icon icon--fill 13 " style="width: 23px; height: 23px;"> <svg viewBox="0 0 160 160"><path d="M128.17,11.18H31.83A20.71,20.71,0,0,0,11.18,31.83v96.34a20.71,20.71,0,0,0,20.65,20.65H84.3V91.18h-12V71.4h12V59.85c0-15.89,6.26-25.44,24.85-25.44h16.44V54.19h-9.67c-7.14,0-7.53,2.35-7.53,7.54V71.4H125l-2.09,19.78H108.39v57.64h19.78a20.71,20.71,0,0,0,20.65-20.65V31.83A20.71,20.71,0,0,0,128.17,11.18Z" fill="#ffffff" stroke="none"></path></svg> </span> <span class="visually-hidden"></span> </a> </div> </li> <li class="footer-ws10__social"> <div> <a role="button" href="https://twitter.com/vodafonept" target="_self" onclick="tealium_ws10_svg.methods.handleClickSVGEntry('Event Click Footer Social Media Menu','Twitter')"> <span class="icon icon--fill 13 " style="width: 23px; height: 23px;"> <svg width="20" height="20" viewBox="0 0 1200 1227" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" fill="white"/> </svg> </span> <span class="visually-hidden"></span> </a> </div> </li> <li class="footer-ws10__social"> <div> <a role="button" href="https://www.youtube.com/vodafonept" target="_self"> <span class="icon icon--fill 11 " style="width: 23px; height: 23px;"> <svg viewBox="0 0 160.08 160"><path d="M158.14,46.55a20.59,20.59,0,0,0-17.9-18.1,468.12,468.12,0,0,0-120.6,0,20.49,20.49,0,0,0-17.8,18.1,299.31,299.31,0,0,0,0,66.9,20.49,20.49,0,0,0,17.8,18.1,469.15,469.15,0,0,0,60.4,3.9,467.72,467.72,0,0,0,60.3-3.9,20.51,20.51,0,0,0,17.8-18.1A290.74,290.74,0,0,0,160,80,289,289,0,0,0,158.14,46.55Zm-54.9,36.6-32.8,23.1a2.89,2.89,0,0,1-4-.7,2.58,2.58,0,0,1-.5-1.7V56a2.88,2.88,0,0,1,2.8-2.9,3.3,3.3,0,0,1,1.7.5l32.8,23.1a3.9,3.9,0,0,1,1,5.42l-.06.08A3.1,3.1,0,0,1,103.24,83.15Z" transform="translate(0.04)" fill="#ffffff" stroke="none"></path></svg> </span> <span class="visually-hidden"></span> </a> </div> </li> <li class="footer-ws10__social"> <div> <a role="button" href="https://www.instagram.com/vodafonept/?hl=pt" target="_self"> <span class="icon icon--fill 11 " style="width: 23px; height: 23px;"> <svg viewBox="0 0 192 192"><path d="M96,34.09c20.16,0,22.55.08,30.51.44,7.37.34,11.37,1.57,14,2.6a25,25,0,0,1,14.33,14.33c1,2.66,2.26,6.66,2.6,14,.36,8,.44,10.35.44,30.51s-.08,22.55-.44,30.51c-.34,7.37-1.57,11.37-2.6,14a25,25,0,0,1-14.33,14.33c-2.66,1-6.66,2.26-14,2.6-8,.36-10.35.44-30.51.44s-22.55-.08-30.51-.44c-7.37-.34-11.37-1.57-14-2.6a25,25,0,0,1-14.33-14.33c-1-2.66-2.26-6.66-2.6-14-.36-8-.44-10.35-.44-30.51s.08-22.55.44-30.51c.34-7.37,1.57-11.37,2.6-14A25,25,0,0,1,51.46,37.13c2.66-1,6.66-2.26,14-2.6,8-.36,10.35-.44,30.51-.44m0-13.61c-20.51,0-23.08.09-31.13.46s-13.53,1.64-18.34,3.51A38.64,38.64,0,0,0,24.45,46.53c-1.87,4.81-3.14,10.3-3.51,18.34S20.48,75.49,20.48,96s.09,23.08.46,31.13,1.64,13.53,3.51,18.34a38.64,38.64,0,0,0,22.08,22.08c4.81,1.87,10.3,3.14,18.34,3.51s10.62.46,31.13.46,23.08-.09,31.13-.46,13.53-1.64,18.34-3.51a38.64,38.64,0,0,0,22.08-22.08c1.87-4.81,3.14-10.3,3.51-18.34s.46-10.62.46-31.13-.09-23.08-.46-31.13-1.64-13.53-3.51-18.34a38.64,38.64,0,0,0-22.08-22.08c-4.81-1.87-10.3-3.14-18.34-3.51s-10.62-.46-31.13-.46Z" fill="#ffffff" stroke="none"></path><path d="M96,57.22A38.78,38.78,0,1,0,134.78,96,38.78,38.78,0,0,0,96,57.22Zm0,64A25.17,25.17,0,1,1,121.17,96,25.17,25.17,0,0,1,96,121.17Z" fill="#ffffff" stroke="none"></path><circle cx="136.31" cy="55.69" r="9.06" fill="#ffffff" stroke="none"></circle></svg> </span> <span class="visually-hidden"></span> </a> </div> </li> </ul> </div> <!-- Logo and bar if Mobile INIT --> <div class="hide--lg grid__item grid__item--md-1/2 grid__item--sm-1/3 footer-ws10__logo"> <div> <span class="icon icon--fill icon--extra-large " style="width: ; height: ;"> <svg viewBox="0 0 192 192"><path fill="#ffffff" stroke="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M128.52,26.92 c-13.77,3.06-24.7,15.92-24.7,30.53c-0.028,0.408,0.016,0.818,0.13,1.21c23.19,5.66,33.84,19.68,33.84,39.09 s-15.24,40.71-41.12,40.85c-21,0-42.86-17.93-43-46.64C53.67,73,63.92,54.61,77,43.7c12.81-10.52,30.33-17.39,46.24-17.39 c1.615-0.028,3.229,0.099,4.82,0.38C88.906,7.691,41.764,24.029,22.764,63.183s-2.661,86.296,36.493,105.296 s86.296,2.661,105.296-36.493c18.91-38.97,2.821-85.897-36.023-105.066H128.52z"></path></svg> </span> <span class="visually-hidden"></span> </div> </div> <hr class="hide--lg footer-ws10__hr"/> <!-- Logo and bar if Mobile END --> <div class="grid__item grid__item--2/3 grid__item--md-1/1 grid__item--sm-1/1"> <span class="footer-ws10__title">Contacte-nos</span> <div class="footer-ws10__community"> <div class="grid__item grid__item--1/5 grid__item--sm-1/3 footer-ws10__communitySection"> <div class="footer-ws10__chat"> <a role="button" href="https://api.whatsapp.com/send/?phone=351910070707&app_absent=0" target="_blank"> <span class="icon icon--fill icon--large " style="width: 32px; height: 32px;"> <svg viewBox="0 0 24 24"><path id="Whatsapp" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M7.971,18.145l0.272,0.161 c1.144,0.676,2.455,1.033,3.791,1.033h0.003c4.105,0,7.448-3.326,7.449-7.414c0.001-1.981-0.774-3.844-2.18-5.245 S14.03,4.507,12.04,4.506c-4.109,0-7.45,3.326-7.452,7.413c-0.001,1.401,0.393,2.765,1.139,3.945l0.177,0.28l-0.753,2.736 L7.971,18.145z M3,21l1.271-4.622c-0.784-1.353-1.197-2.887-1.196-4.459C3.077,7.001,7.098,3,12.038,3 c2.397,0.001,4.648,0.93,6.34,2.616c1.692,1.686,2.623,3.927,2.623,6.31c-0.002,4.918-4.023,8.92-8.962,8.92l0,0h-0.004 c-1.5-0.001-2.974-0.375-4.283-1.086L3,21z M9.797,8.19C9.616,7.755,9.431,7.814,9.293,7.808C9.163,7.801,9.014,7.8,8.865,7.8 c-0.15,0-0.392,0.056-0.597,0.279C8.062,8.302,7.484,8.841,7.484,9.938s0.802,2.157,0.914,2.306c0.112,0.148,1.579,2.4,3.825,3.365 c0.535,0.229,0.952,0.367,1.277,0.47c0.536,0.169,1.024,0.146,1.41,0.088c0.431-0.064,1.325-0.539,1.511-1.06 c0.187-0.521,0.187-0.967,0.131-1.06c-0.056-0.093-0.206-0.149-0.429-0.26c-0.224-0.111-1.325-0.651-1.53-0.725 c-0.206-0.074-0.355-0.111-0.504,0.111c-0.149,0.223-0.579,0.725-0.709,0.874c-0.131,0.148-0.261,0.167-0.485,0.056 c-0.224-0.111-0.945-0.347-1.801-1.106c-0.666-0.591-1.115-1.321-1.246-1.543c-0.131-0.223-0.014-0.344,0.098-0.455 c0.101-0.1,0.224-0.26,0.336-0.39c0.112-0.13,0.149-0.223,0.224-0.372c0.075-0.149,0.037-0.279-0.019-0.39 C10.432,9.733,9.984,8.636,9.797,8.19"></path></svg> </span> <span class="visually-hidden"></span> </a> <a href="https://api.whatsapp.com/send/?phone=351910070707&app_absent=0" target="_blank"> <span class="footer-ws10__chat--text">TOBi WhatsApp</span> </a> </div> </div> <div class="grid__item grid__item--1/5 grid__item--sm-1/3 footer-ws10__communitySection"> <div class="footer-ws10__chat"> <a role="button" href="https://tobi.vodafone.pt/" target="_blank"> <span class="icon icon--fill icon--large " style="width: 32px; height: 32px;"> <svg viewBox="0 0 48 48"><g id="a3ad0527-d87d-4252-91a5-a23f0f9fd104" data-name="Icons+Indicators-/-TOBi-Emojis-/-default"><g id="aa4dbbc3-0d2a-4bb1-98d5-03a3a6805b7e" data-name="03-Component-/-Tobi-/-Expression-/-Template"><g id="b9273ff3-7632-49ea-a694-7e4ecfb8c627" data-name="Tobi/Template"><g id="e82050a6-6e54-4484-a7b3-6c3d1c671767" data-name="Group"><path id="a52c1791-a583-4b25-a431-129e60ebee52" data-name="Fill" d="M38.9,20.8h-.16l-.37.27A14.59,14.59,0,0,1,35,22.67a29.55,29.55,0,0,1-4.41,1.07,42,42,0,0,1-6.63.53,42,42,0,0,1-6.63-.53,19.39,19.39,0,0,1-8.13-3,2.4,2.4,0,0,0-1.93.91,3.91,3.91,0,0,0-.76,1.67v5.92c0,.31,0,.62,0,.91a17.46,17.46,0,0,0,34.81,0c0-.31,0-.6,0-.91v-5.9a5,5,0,0,0-.75-1.67A2.48,2.48,0,0,0,38.9,20.8Z" fill="#ebebeb" fill-rule="evenodd"></path><path id="ef6258c0-6fb7-4e4e-8024-fe3260b36eb8" data-name="Fill" d="M2.34,29.3h0A5.18,5.18,0,0,1,2,27.54V29.3a5.58,5.58,0,0,0,5.57,5.57,15.16,15.16,0,0,1-.65-2.21,5.09,5.09,0,0,1-4.6-3.36" fill="#900" fill-rule="evenodd"></path><path id="b5b39572-5bff-4b94-88e1-1a1b302ab2d0" data-name="Fill" d="M45.49,29.3h0A5.07,5.07,0,0,1,41,32.66a18.39,18.39,0,0,1-.64,2.21,5.54,5.54,0,0,0,5.5-5.57V27.54a4.74,4.74,0,0,1-.33,1.76" fill="#900" fill-rule="evenodd"></path><path id="fbe8bc78-1c10-4e5b-a7ca-18a3a7bec325" data-name="Fill" d="M2,23.09c0,.14,0,.25,0,.38v4.1a5.12,5.12,0,0,0,4.9,5.11,18.21,18.21,0,0,1-.38-2.44c0-.31,0-.6,0-.92a1.51,1.51,0,0,1,0-.48V23.41a4.08,4.08,0,0,1,.75-1.67,2.35,2.35,0,0,1,1.94-.92,19.62,19.62,0,0,0,8.12,3,40.81,40.81,0,0,0,6.63.54,40.9,40.9,0,0,0,6.63-.54,29.57,29.57,0,0,0,4.39-1.06,14.62,14.62,0,0,0,3.36-1.61c.13-.09.27-.17.38-.26h.15a2.32,2.32,0,0,1,1.78.91,3.91,3.91,0,0,1,.76,1.67v5.92c0,.31,0,.62,0,.91A18.35,18.35,0,0,1,41,32.71a5.17,5.17,0,0,0,4.56-3.34,5.23,5.23,0,0,0,.31-1.74V25.21a13,13,0,0,0,0-1.43A21.93,21.93,0,0,0,2,23.09Z" fill="#e60000" fill-rule="evenodd"></path><path id="bb2e5e74-6879-4dde-a8b8-193a7e669475" data-name="Fill" d="M28.44,15.59a4.46,4.46,0,0,1-1.31,1.58,4.93,4.93,0,0,1-4.41.85,5.24,5.24,0,0,1-2.91-2.18,5.74,5.74,0,0,1-.67-1.47s0-.07,0-.11a4,4,0,0,1-.16-.89,7.34,7.34,0,0,1,0-.94v-.09a6.38,6.38,0,0,1,.2-1.31A7.9,7.9,0,0,1,21.7,6.94a8.44,8.44,0,0,1,2.49-1.47c.25-.09.51-.18.76-.25l.46-.13a8.78,8.78,0,0,1,1.16-.2,4.5,4.5,0,0,1,1.16,0,.48.48,0,0,1,.18,0,3.76,3.76,0,0,0-3,3.65V8.7a5.79,5.79,0,0,1,1.93.73,4.41,4.41,0,0,1,1.27,1.16l.07.11a4.26,4.26,0,0,1,.55,1.18A5.3,5.3,0,0,1,29,13.19v.18a5.28,5.28,0,0,1-.56,2.22M24,4a9.13,9.13,0,1,0,9.12,9.13A9.13,9.13,0,0,0,24,4" fill="#fff" fill-rule="evenodd"></path></g></g></g><g id="ab7553bc-3ad2-4546-bba5-f1487e8311fb" data-name="Mouth"><path id="f9f20c66-550d-48d7-b912-b9dca9046d0e" data-name="Fill" d="M33.52,36.87a.83.83,0,0,0-1.2,0,11.77,11.77,0,0,1-16.83,0,.83.83,0,0,0-1.2,0,.88.88,0,0,0,0,1.22l0,0a13.46,13.46,0,0,0,19.23,0,.9.9,0,0,0,0-1.24" fill="#4a4d4e" fill-rule="evenodd"></path></g><g id="a303a073-6090-4810-be93-9117ab65d604" data-name="Eyes"><path id="f7bc4ef8-9e67-4b6f-b050-23f39478a749" data-name="Fill" d="M14.13,29.62h0a2.74,2.74,0,1,0,0-1.37,4.08,4.08,0,0,0-.09.69v0a3.29,3.29,0,0,0,.09.64" fill="#4a4d4e" fill-rule="evenodd"></path><path id="e0e19617-5e7c-4cd3-b4bd-fadc98b4df93" data-name="Fill" d="M28.42,29.64a2.74,2.74,0,0,0,5.3,0,1.63,1.63,0,0,0,.07-.5V29a2.75,2.75,0,0,0-5.49-.09,2.22,2.22,0,0,0,.12.77" fill="#4a4d4e" fill-rule="evenodd"></path></g></g></svg> </span> <span class="visually-hidden"></span> </a> <a href="https://tobi.vodafone.pt/" target="_blank"> <span class="footer-ws10__chat--text">TOBi Chat</span> </a> </div> </div> <div class="grid__item grid__item--1/5 grid__item--sm-1/3 footer-ws10__communitySection"> <div class="footer-ws10__chat"> <a role="button" href="https://www.vodafone.pt/fale-connosco.html" target="_self"> <span class="icon icon--fill icon--large " style="width: 32px; height: 32px;"> <svg viewBox="0 0 24 24"><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 94.09375 42.5625 C 94.0625 38.9375 97 36 100.625 36 L 166.625 36 L 166.625 72.28125 C 166.65625 73.9375 166 75.5625 164.8125 76.75 C 163.65625 77.96875 162.0625 78.65625 160.375 78.65625 L 123.96875 78.65625 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 123.9375 78.65625 L 106.875 95.71875 L 106.875 78.65625 L 100.46875 78.65625 C 97 78.71875 94.125 75.90625 94.09375 72.40625 L 94.09375 42.5625 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 25.40625 156 C 29.21875 138.21875 42.625 125.125 58.5625 125.125 C 74.53125 125.125 87.9375 138.21875 91.71875 156 " transform="matrix(0.125,0,0,0.125,0,0)"></path><path style="fill: none; stroke-width: 8; stroke-linecap: butt; stroke-linejoin: miter; stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-miterlimit: 4;" d="M 77.875 103.875 C 77.875 114.5625 69.25 123.1875 58.5625 123.1875 C 47.90625 123.1875 39.25 114.5625 39.25 103.875 C 39.25 93.21875 47.90625 84.5625 58.5625 84.5625 L 77.875 84.5625 Z M 77.875 103.875 " transform="matrix(0.125,0,0,0.125,0,0)"></path></svg> </span> <span class="visually-hidden"></span> </a> <a href="https://www.vodafone.pt/fale-connosco.html"> <span class="footer-ws10__chat--text">Fale connosco</span> </a> </div> </div> <div class="grid__item grid__item--1/5 grid__item--sm-1/3 footer-ws10__communitySection"> <div class="footer-ws10__chat"> <a role="button" href="https://www.livroreclamacoes.pt/inicio" target="_self" onclick="var visitor_login_status = 'Logged In' || 'Logged Out'; utag.link({ 'event_action' : 'Footer Click', 'event_category' : 'Footer', 'event' : ['event_instance'], 'event_label' : 'Livro de Reclamações', 'event_value' : '1', 'page_name_next' : 'Livro de Reclamações', 'visitor_login_status' : visitor_login_status });"> <span class="icon icon--fill 10 " style="width: ; height: ;"> <svg viewBox="0 0 161.9 68.5" enable-background="new 0 0 161.9 68.5" xml:space="preserve" height="32px"> <g> <circle fill="#FFFFFF" cx="33.8" cy="33.6" r="32.9"></circle> <g> <g> <path fill="#333333" d="M6.6,28h1.3v9h4.3v1.1H6.6V28z"></path> <path fill="#333333" d="M15,28v10.1h-1.3V28H15z"></path> <path fill="#333333" d="M19.5,38.1L16.2,28h1.4l1.6,5c0.4,1.4,0.8,2.6,1.1,3.8h0c0.3-1.2,0.7-2.4,1.2-3.8l1.7-5h1.4l-3.6,10.1 H19.5z"></path> <path fill="#333333" d="M25.6,28.1c0.7-0.1,1.6-0.2,2.5-0.2c1.4,0,2.3,0.3,2.9,0.8c0.5,0.4,0.8,1.1,0.8,1.9 c0,1.3-0.8,2.2-1.9,2.6v0c0.8,0.3,1.2,1,1.5,2c0.3,1.4,0.6,2.4,0.8,2.8h-1.3c-0.2-0.3-0.4-1.2-0.7-2.4c-0.3-1.4-0.8-1.9-2-2h-1.2 v4.4h-1.3V28.1z M26.9,32.7h1.3c1.4,0,2.3-0.8,2.3-1.9c0-1.3-0.9-1.9-2.3-1.9c-0.6,0-1.1,0.1-1.3,0.1V32.7z"></path> <path fill="#333333" d="M42.4,33c0,3.5-2.1,5.3-4.7,5.3c-2.7,0-4.5-2.1-4.5-5.1c0-3.2,2-5.3,4.7-5.3C40.6,27.8,42.4,30,42.4,33z M34.5,33.1c0,2.2,1.2,4.1,3.2,4.1c2.1,0,3.2-1.9,3.2-4.2c0-2-1-4.1-3.2-4.1C35.6,28.9,34.5,30.9,34.5,33.1z"></path> <path fill="#333333" d="M47.2,28.1C48,28,49,27.9,50,27.9c1.9,0,3.2,0.4,4.1,1.3c0.9,0.8,1.4,2,1.4,3.6c0,1.6-0.5,3-1.5,3.9 c-0.9,0.9-2.5,1.5-4.5,1.5c-0.9,0-1.7,0-2.4-0.1V28.1z M48.5,37.1c0.3,0.1,0.8,0.1,1.3,0.1c2.8,0,4.3-1.6,4.3-4.3 c0-2.4-1.3-3.9-4.1-3.9c-0.7,0-1.2,0.1-1.5,0.1V37.1z"></path> <path fill="#333333" d="M62.4,33.4h-3.9V37h4.4v1.1h-5.7V28h5.5v1.1h-4.1v3.2h3.9V33.4z"></path> <path fill="#FFFFFF" d="M67.8,28.1c0.7-0.1,1.6-0.2,2.5-0.2c1.4,0,2.3,0.3,2.9,0.8c0.5,0.4,0.8,1.1,0.8,1.9 c0,1.3-0.8,2.2-1.9,2.6v0c0.8,0.3,1.2,1,1.5,2c0.3,1.4,0.6,2.4,0.8,2.8H73c-0.2-0.3-0.4-1.2-0.7-2.4c-0.3-1.4-0.8-1.9-2-2h-1.2 v4.4h-1.3V28.1z M69.1,32.7h1.3c1.4,0,2.3-0.8,2.3-1.9c0-1.3-0.9-1.9-2.3-1.9c-0.6,0-1.1,0.1-1.3,0.1V32.7z"></path> <path fill="#FFFFFF" d="M81,33.4h-3.9V37h4.4v1.1h-5.7V28h5.5v1.1h-4.1v3.2H81V33.4z"></path> <path fill="#FFFFFF" d="M90.2,37.8c-0.5,0.2-1.4,0.5-2.7,0.5c-2.8,0-5-1.8-5-5.1c0-3.2,2.1-5.3,5.3-5.3c1.3,0,2.1,0.3,2.4,0.4 l-0.3,1.1c-0.5-0.2-1.2-0.4-2-0.4c-2.4,0-3.9,1.5-3.9,4.2c0,2.5,1.4,4.1,3.9,4.1c0.8,0,1.6-0.2,2.1-0.4L90.2,37.8z"></path> <path fill="#FFFFFF" d="M91.9,28h1.3v9h4.3v1.1h-5.6V28z"></path> <path fill="#FFFFFF" d="M100.6,34.9l-1,3.2h-1.3l3.4-10.1h1.6l3.4,10.1h-1.4l-1.1-3.2H100.6z M103.9,33.9l-1-2.9 c-0.2-0.7-0.4-1.3-0.5-1.8h0c-0.1,0.6-0.3,1.2-0.5,1.8l-1,2.9H103.9z"></path> <path fill="#FFFFFF" d="M116.6,33.7c-0.1-1.4-0.2-3.1-0.1-4.4h0c-0.3,1.2-0.8,2.4-1.3,3.8l-1.8,4.9h-1l-1.6-4.8 c-0.5-1.4-0.9-2.7-1.2-3.9h0c0,1.3-0.1,2.9-0.2,4.5l-0.3,4.3h-1.2l0.7-10.1h1.7l1.7,4.9c0.4,1.2,0.8,2.4,1,3.4h0 c0.3-1,0.6-2.1,1.1-3.4l1.8-4.9h1.7l0.6,10.1h-1.3L116.6,33.7z"></path> <path fill="#FFFFFF" d="M121.6,34.9l-1,3.2h-1.3l3.4-10.1h1.6l3.4,10.1h-1.4l-1.1-3.2H121.6z M124.9,33.9l-1-2.9 c-0.2-0.7-0.4-1.3-0.5-1.8h0c-0.1,0.6-0.3,1.2-0.5,1.8l-1,2.9H124.9z"></path> <path fill="#FFFFFF" d="M135.9,37.8c-0.5,0.2-1.4,0.5-2.7,0.5l-0.3,0.6c0.6,0.1,1,0.5,1,1.1c0,0.9-0.8,1.2-1.5,1.2 c-0.4,0-0.8-0.1-1.1-0.3l0.2-0.7c0.2,0.1,0.5,0.2,0.8,0.2c0.3,0,0.6-0.1,0.6-0.5c0-0.4-0.5-0.6-1.2-0.6l0.6-1.2 c-2.5-0.3-4.2-2.1-4.2-5.1c0-3.2,2.1-5.3,5.3-5.3c1.3,0,2.1,0.3,2.4,0.4l-0.3,1.1c-0.5-0.2-1.2-0.4-2-0.4c-2.4,0-3.9,1.5-3.9,4.2 c0,2.5,1.4,4.1,3.9,4.1c0.8,0,1.6-0.2,2.1-0.4L135.9,37.8z"></path> <path fill="#FFFFFF" d="M145.9,33c0,3.5-2.1,5.3-4.7,5.3c-2.7,0-4.5-2.1-4.5-5.1c0-3.2,2-5.3,4.7-5.3 C144.1,27.8,145.9,30,145.9,33z M138.1,33.1c0,2.2,1.2,4.1,3.2,4.1c2.1,0,3.2-1.9,3.2-4.2c0-2-1-4.1-3.2-4.1 C139.1,28.9,138.1,30.9,138.1,33.1z M139.4,27.4c0-0.9,0.4-1.5,1-1.5c0.3,0,0.6,0.1,0.9,0.3c0.2,0.1,0.5,0.3,0.7,0.3 c0.2,0,0.4-0.1,0.4-0.6h0.7c0,0.9-0.3,1.5-1,1.5c-0.3,0-0.6-0.1-0.9-0.3c-0.3-0.1-0.5-0.3-0.7-0.3c-0.2,0-0.4,0.3-0.4,0.7H139.4z "></path> <path fill="#FFFFFF" d="M152.8,33.4h-3.9V37h4.4v1.1h-5.7V28h5.5v1.1h-4.1v3.2h3.9V33.4z"></path> <path fill="#FFFFFF" d="M154.8,36.5c0.6,0.4,1.4,0.7,2.3,0.7c1.3,0,2.1-0.7,2.1-1.7c0-0.9-0.5-1.5-1.9-2 c-1.6-0.6-2.7-1.4-2.7-2.9c0-1.6,1.3-2.7,3.3-2.7c1,0,1.8,0.2,2.2,0.5l-0.4,1.1c-0.3-0.2-1-0.5-1.9-0.5c-1.4,0-1.9,0.8-1.9,1.5 c0,0.9,0.6,1.4,2,1.9c1.7,0.7,2.6,1.5,2.6,3c0,1.6-1.2,2.9-3.5,2.9c-1,0-2-0.3-2.6-0.6L154.8,36.5z"></path> </g> </g> </g> </svg> </span> <span class="visually-hidden"></span> </a> </div> </div> </div> </div> <div class="grid__item grid__item--2/6 footer-ws10__logo hide--md hide--sm"> <div> <span class="icon icon--fill icon--extra-large " style="width: ; height: ;"> <svg viewBox="0 0 192 192"><path fill="#ffffff" stroke="none" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" d="M128.52,26.92 c-13.77,3.06-24.7,15.92-24.7,30.53c-0.028,0.408,0.016,0.818,0.13,1.21c23.19,5.66,33.84,19.68,33.84,39.09 s-15.24,40.71-41.12,40.85c-21,0-42.86-17.93-43-46.64C53.67,73,63.92,54.61,77,43.7c12.81-10.52,30.33-17.39,46.24-17.39 c1.615-0.028,3.229,0.099,4.82,0.38C88.906,7.691,41.764,24.029,22.764,63.183s-2.661,86.296,36.493,105.296 s86.296,2.661,105.296-36.493c18.91-38.97,2.821-85.897-36.023-105.066H128.52z"></path></svg> </span> <span class="visually-hidden"></span> </div> </div> <hr class="footer-ws10__hr hide--md hide--sm"/> <h2 class="visually-hidden">Site map</h2> <div class="grid__item grid__item--1/1 hide--sm hide--md footer-ws10__sitemap"> <ul class="grid heading--leading heading--trailing"> <li class="grid__item grid__item--1/4"> <div> <span class="footer-ws10__title " onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços')"> Produtos e Serviços </span> <ul class="list--reset"> <li class="list__item footer-ws10__item footer-ws10__item-first"> <a href="https://www.vodafone.pt/pacotes.html" onclick=";footerTealiumRequest('Pacotes fibra',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Pacotes fibra')"> Pacotes fibra </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/telemoveis.html" onclick=";footerTealiumRequest('Tarifários móveis',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Tarifários móveis')"> Tarifários móveis </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes/cobertura.html" onclick=";footerTealiumRequest('Verificar Cobertura',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Verificar Cobertura')"> Verificar Cobertura </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/internet-movel/tsi.html" onclick=";footerTealiumRequest('Tarifa Social Internet',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Tarifa Social de Internet')"> Tarifa Social de Internet </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/loja/telemoveis.html" onclick=";footerTealiumRequest('Smartphones',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Smartphones')"> Smartphones </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/internet-movel.html" onclick=";footerTealiumRequest('Internet Móvel',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Internet Móvel')"> Internet Móvel </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/en/esim-portugal.html" onclick=";footerTealiumRequest('Vodafone Travellers',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:eSIM Portugal & Europe')"> eSIM Portugal & Europe </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes/televisao/tv-box/vodafone-tv-play.html" onclick=";footerTealiumRequest('Vodafone TV PLAY',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Produtos e Serviços:Vodafone TV PLAY')"> Vodafone TV PLAY </a> </li> </ul> </div> </li> <li class="grid__item grid__item--1/4"> <div> <span class="footer-ws10__title " onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques')"> Destaques </span> <ul class="list--reset"> <li class="list__item footer-ws10__item footer-ws10__item-first"> <a href="https://www.vodafone.pt/pacotes/internet/rede-fibra-vodafone/fiber-to-the-room.html" onclick=";footerTealiumRequest('Vodafone Fiber to the Room',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Vodafone Fiber to the Room')"> Vodafone Fiber to the Room </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/promocoes.html" onclick=";footerTealiumRequest('Boost Internet em casa',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Novidades e Promoções')"> Novidades e Promoções </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes/televisao/em-todos-ecras.html" onclick=";footerTealiumRequest('Tv em todos os ecrãs',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Tv em todos os ecrãs')"> Tv em todos os ecrãs </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/portabilidade.html" onclick=";footerTealiumRequest('Portabilidade',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Portabilidade')"> Portabilidade </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafonesolutions.pt/" onclick=";footerTealiumRequest('Vodafone Solutions',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Vodafone Solutions')"> Vodafone Solutions </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/loja/clube-viva.html" onclick=";footerTealiumRequest('Clube Viva',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Clube Viva')"> Clube Viva </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/premios-distincoes.html" onclick=";footerTealiumRequest('Prémios e distinções',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Prémios e distinções')"> Prémios e distinções </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/telemoveis/esim.html" onclick=";footerTealiumRequest('Vodafone eSIM',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Vodafone eSIM')"> Vodafone eSIM </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/black-friday.html" onclick=";footerTealiumRequest('Black Friday 2024',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Destaques:Black Friday 2024')"> Black Friday 2024 </a> </li> </ul> </div> </li> <li class="grid__item grid__item--1/4"> <div> <a href="https://www.vodafone.pt/a-vodafone.html" class="footer-ws10__title footer-ws10__title-underline" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone')"> Sobre a Vodafone </a> <ul class="list--reset"> <li class="list__item footer-ws10__item footer-ws10__item-first"> <a href="https://www.vodafone.pt/a-vodafone.html" onclick=";footerTealiumRequest('A Vodafone',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:A Vodafone')"> A Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/5g.html" onclick=";footerTealiumRequest('Rede 5G',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Rede 5G')"> Rede 5G </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/press-releases.html" onclick=";footerTealiumRequest('Press Releases',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Press Releases')"> Press Releases </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/sustentabilidade.html" onclick=";footerTealiumRequest('Sustentabilidade',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Sustentabilidade')"> Sustentabilidade </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/projetos-financiados.html" onclick=";footerTealiumRequest('Projetos Financiados',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Projetos Financiados')"> Projetos Financiados </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/recrutamento.html" onclick=";footerTealiumRequest('Trabalhar na Vodafone',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Trabalhar na Vodafone')"> Trabalhar na Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/powerlab.html" onclick=";footerTealiumRequest('Vodafone Power Lab',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Vodafone Power Lab')"> Vodafone Power Lab </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/telemoveis/rede-movel-vodafone/descontinuacao-3g.html" onclick=";footerTealiumRequest('Descontinuação 3G',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Descontinuação 3G')"> Descontinuação 3G </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/fundacao.html" onclick=";footerTealiumRequest('Fundação Vodafone',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Fundação Vodafone')"> Fundação Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="mailto:fundacao.pt@vodafone.com" onclick=";footerTealiumRequest('Contactar Fundação',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Sobre a Vodafone:Contactar Fundação')"> Contactar Fundação </a> </li> </ul> </div> </li> <li class="grid__item grid__item--1/4"> <div> <a href="https://www.vodafone.pt/ajuda.html" class="footer-ws10__title footer-ws10__title-underline" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte')"> Suporte </a> <ul class="list--reset"> <li class="list__item footer-ws10__item footer-ws10__item-first"> <a href="https://www.vodafone.pt/ajuda.html" onclick=";footerTealiumRequest('Ajuda',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Ajuda')"> Ajuda </a> </li> <li class="list__item footer-ws10__item "> <a href="https://my.vodafone.pt/fatura.html" onclick=";footerTealiumRequest('Ver Fatura',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Ver Fatura')"> Ver Fatura </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/lojas.html" onclick=";footerTealiumRequest('Lojas',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Lojas')"> Lojas </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/content/digitalhelp/pt/ajuda/contactos.html?passo=1" onclick=";footerTealiumRequest('Contactos ',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Contactos')"> Contactos </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/contactos-institucionais.html" onclick=";footerTealiumRequest('Contactos Institucionais',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Contactos Institucionais')"> Contactos Institucionais </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/downloads.html" onclick=";footerTealiumRequest('Download Centre',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Download Centre')"> Download Centre </a> </li> <li class="list__item footer-ws10__item "> <a href="https://forum.vodafone.pt/" onclick=";footerTealiumRequest('Fórum',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Comunidade Vodafone')"> Comunidade Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/loja/estado-encomenda.html" onclick=";footerTealiumRequest('Estado da encomenda',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Estado da encomenda')"> Estado da encomenda </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/alertas-e-seguranca.html" onclick=";footerTealiumRequest('Alertas e Segurança',''); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu', 'Suporte:Alertas e Segurança')"> Alertas e Segurança </a> </li> </ul> </div> </li> </ul> </div> <div class="hide--lg"> <div class="js-accordion footer-ws10__accordion" data-js="_accordion" style="letter-spacing: normal;"> <div class="js-accordion-item footer-ws10-accordion__item " onClick="tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu Dropdown', 'Produtos e Serviços')"> <h3 class="js-accordion-heading footer-ws10-accordion__heading footer-ws10-accordion__heading--active"> <span class="chevron"> <span class="chevron__text">Produtos e Serviços</span> <span class="js-accordion-chevron chevron__container accordion__chevron"> <svg focusable="false" aria-hidden="true" class="icon icon--small chevron__icon chevron__icon--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-down"></use> </svg> </span> </span> </h3> <div class="js-accordion-content footer-ws10-accordion__content footer-ws10-accordion__content--collapse"> <ul class="list list--reset"> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Pacotes fibra');"> Pacotes fibra </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/telemoveis.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Tarifários móveis');"> Tarifários móveis </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes/cobertura.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Verificar Cobertura');"> Verificar Cobertura </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/internet-movel/tsi.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Tarifa Social de Internet');"> Tarifa Social de Internet </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/loja/telemoveis.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Smartphones');"> Smartphones </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/internet-movel.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Internet Móvel');"> Internet Móvel </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/en/esim-portugal.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:eSIM Portugal & Europe');"> eSIM Portugal & Europe </a> </li> <li class="list__item footer-ws10__item footer-ws10__item-last"> <a href="https://www.vodafone.pt/pacotes/televisao/tv-box/vodafone-tv-play.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Produtos e Serviços:Vodafone TV PLAY');"> Vodafone TV PLAY </a> </li> </ul> </div> </div> <div class="js-accordion-item footer-ws10-accordion__item " onClick="tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu Dropdown', 'Destaques')"> <h3 class="js-accordion-heading footer-ws10-accordion__heading footer-ws10-accordion__heading--active"> <span class="chevron"> <span class="chevron__text">Destaques</span> <span class="js-accordion-chevron chevron__container accordion__chevron"> <svg focusable="false" aria-hidden="true" class="icon icon--small chevron__icon chevron__icon--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-down"></use> </svg> </span> </span> </h3> <div class="js-accordion-content footer-ws10-accordion__content footer-ws10-accordion__content--collapse"> <ul class="list list--reset"> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes/internet/rede-fibra-vodafone/fiber-to-the-room.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Vodafone Fiber to the Room');"> Vodafone Fiber to the Room </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/promocoes.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Novidades e Promoções');"> Novidades e Promoções </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/pacotes/televisao/em-todos-ecras.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Tv em todos os ecrãs');"> Tv em todos os ecrãs </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/portabilidade.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Portabilidade');"> Portabilidade </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafonesolutions.pt/" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Vodafone Solutions');"> Vodafone Solutions </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/loja/clube-viva.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Clube Viva');"> Clube Viva </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/premios-distincoes.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Prémios e distinções');"> Prémios e distinções </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/telemoveis/esim.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Vodafone eSIM');"> Vodafone eSIM </a> </li> <li class="list__item footer-ws10__item footer-ws10__item-last"> <a href="https://www.vodafone.pt/black-friday.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Destaques:Black Friday 2024');"> Black Friday 2024 </a> </li> </ul> </div> </div> <div class="js-accordion-item footer-ws10-accordion__item " onClick="tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu Dropdown', 'Suporte')"> <h3 class="js-accordion-heading footer-ws10-accordion__heading footer-ws10-accordion__heading--active"> <span class="chevron"> <span class="chevron__text">Suporte</span> <span class="js-accordion-chevron chevron__container accordion__chevron"> <svg focusable="false" aria-hidden="true" class="icon icon--small chevron__icon chevron__icon--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-down"></use> </svg> </span> </span> </h3> <div class="js-accordion-content footer-ws10-accordion__content footer-ws10-accordion__content--collapse"> <ul class="list list--reset"> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/ajuda.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Ajuda');"> Ajuda </a> </li> <li class="list__item footer-ws10__item "> <a href="https://my.vodafone.pt/fatura.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Ver Fatura');"> Ver Fatura </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/lojas.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Lojas');"> Lojas </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/content/digitalhelp/pt/ajuda/contactos.html?passo=1" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Contactos');"> Contactos </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/contactos-institucionais.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Contactos Institucionais');"> Contactos Institucionais </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/downloads.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Download Centre');"> Download Centre </a> </li> <li class="list__item footer-ws10__item "> <a href="https://forum.vodafone.pt/" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Comunidade Vodafone');"> Comunidade Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/loja/estado-encomenda.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Estado da encomenda');"> Estado da encomenda </a> </li> <li class="list__item footer-ws10__item footer-ws10__item-last"> <a href="https://www.vodafone.pt/alertas-e-seguranca.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Suporte:Alertas e Segurança');"> Alertas e Segurança </a> </li> </ul> </div> </div> <div class="js-accordion-item footer-ws10-accordion__item footer__heading--last" onClick="tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu Dropdown', 'Sobre a Vodafone')"> <h3 class="js-accordion-heading footer-ws10-accordion__heading footer-ws10-accordion__heading--active"> <span class="chevron"> <span class="chevron__text">Sobre a Vodafone</span> <span class="js-accordion-chevron chevron__container accordion__chevron"> <svg focusable="false" aria-hidden="true" class="icon icon--small chevron__icon chevron__icon--white"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-down"></use> </svg> </span> </span> </h3> <div class="js-accordion-content footer-ws10-accordion__content footer-ws10-accordion__content--collapse"> <ul class="list list--reset"> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:A Vodafone');"> A Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/5g.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Rede 5G');"> Rede 5G </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/press-releases.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Press Releases');"> Press Releases </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/sustentabilidade.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Sustentabilidade');"> Sustentabilidade </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/projetos-financiados.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Projetos Financiados');"> Projetos Financiados </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/recrutamento.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Trabalhar na Vodafone');"> Trabalhar na Vodafone </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/powerlab.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Vodafone Power Lab');"> Vodafone Power Lab </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/telemoveis/rede-movel-vodafone/descontinuacao-3g.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Descontinuação 3G');"> Descontinuação 3G </a> </li> <li class="list__item footer-ws10__item "> <a href="https://www.vodafone.pt/a-vodafone/fundacao.html" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Fundação Vodafone');"> Fundação Vodafone </a> </li> <li class="list__item footer-ws10__item footer-ws10__item-last"> <a href="mailto:fundacao.pt@vodafone.com" onclick="event.stopPropagation(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Main Menu','Sobre a Vodafone:Contactar Fundação');"> Contactar Fundação </a> </li> </ul> </div> </div> </div> </div> <script src="/etc.clientlibs/digital-commons/components/content/structure/vf_footer_ws10/vf_footer_ws10_siteMap/clientlibs.min.js"></script> <div> <div class="footer-ws10__aside grid__item--md-1/1"> <div> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract footer-ws10__contract--first"> <a href="https://www.vodafone.pt/portalprivacidade.html" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Privacidade')"> Privacidade </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="https://www.vodafone.pt/beneficios.html" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Benefícios Vodafone')"> Benefícios Vodafone </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="https://www.vodafone.pt/info/termos-condicoes/servicosdigitais.html" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Serviços Digitais')"> Serviços Digitais </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="https://www.vodafone.pt/politica-anticorrupcao.html" target="_blank" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Política Anticorrupção')"> Política Anticorrupção </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="#" target="_self" onclick="window.vfptShowDialog(); tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Configuração de Cookies')"> Configuração de Cookies </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="#" target="_self" onclick="setTimeout(function(){typeof KAMPYLE_ONSITE_SDK !== 'undefined' && KAMPYLE_ONSITE_SDK.showForm('16738');}, 200);; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Feedback')"> Feedback </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="https://www.vodafone.pt/business/wholesale.html" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'Ofertas Wholesale')"> Ofertas Wholesale </a> </li> </ul> <ul class="list list--reset no-gutter--md-bottom no-gutter--lg-bottom footer-ws10__contracts grid__item"> <li class="list__item footer-ws10__contract "> <a href="https://www.vodafone.pt/en/about-us.html" onclick="; tealium_footerWS10.methods.handleFooterWS10Click('Event Click Footer Legal Menu', 'English')"> English </a> </li> </ul> </div> <div id="getYear" class="footer-ws10__copyright grid__item">© {{year}} {{footerText}}</div> </div></div> </div> </div> </div> </div> </div> </footer> </div> <script src="/etc.clientlibs/digital-commons/components/content/structure/vf_footer_ws10/clientlibs.min.js"></script> </div> </div> </div></div> </div> </div> </div> <div id="ttc" class="tooltip__main" xmlns:v-if="http://www.w3.org/1999/xhtml" style="display:none"> <span> <div v-if="defaultSide" class="caption"> <div class="caption__media caption__media--top tooltip__main--media tooltip__main--right"> <svg class="icon icon--small alert__icon" style=""> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-info-circle-light"></use> </svg> </div> <div class="caption__text caption__text--top alert__text tooltip__main--text tooltip__main--left" style="max-width: 320px;" id="tooltip_text"> {{title}} </div> </div> <div v-else class="caption"> <div class="caption__text caption__text--top alert__text tooltip__main--text tooltip__main--right" style="max-width: 320px;"> {{title}} </div> <div class="caption__media caption__media--top tooltip__main--media tooltip__main--left" style=""> <svg class="icon icon--small alert__icon" style="tooltipComponent"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-info-circle-light"></use> </svg> </div> </div> </span> </div> <script src="/etc.clientlibs/digital-commons/components/content/hidden/vf_tooltip/clientlibs.min.js"></script> </div> <script src="/etc.clientlibs/digital-commons/clientlibs/clientlib-site.min.js"></script> <!--[if lte IE 9]> <script src="https://api.cludo.com/scripts/xdomain.js" slave="https://api.cludo.com/proxy.html"></script> <![endif]--> <script type="text/javascript" src="https://customer.cludo.com/scripts/bundles/search-script.min.js"></script> <script type="text/javascript" src="https://customer.cludo.com/assets/1977/10229/cludo-search.min.js"></script> <script src="/etc.clientlibs/digital-commons/clientlibs/vendor/cludo.min.js"></script> <script type="text/javascript" defer>(function(a,b,c,d){a='https://tags.vodafone.pt/pt-universal/prod/utag.js';b=document;c='script';d=b.createElement(c);d.src=a;d.type='text/java'+c;d.async=true;d.addEventListener('load',function(){tealiumBus.$emit('utag-loaded')},false);a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a);})();</script> <script>if(propertiesPath.indexOf('digital-sites')>-1){var hasBreadcrumb=window.breadcrumb!=null&&window.breadcrumb!=undefined;if(hasBreadcrumb){var pagePathArray="";if(breadcrumb.$el&&breadcrumb.$el.children[0]&&breadcrumb.$el.children[0].children[0]){if(breadcrumb.$el.children[0].children[0].className==="visually-hidden")pagePathArray=breadcrumb.$el.children[0].children[1]?breadcrumb.$el.children[0].children[1].children:"";else if(breadcrumb.$el.children[0].children[0].className==="spring")pagePathArray=breadcrumb.$el.children[0].children[0].children[1]?breadcrumb.$el.children[0].children[0].children[1].children:"";}var pagePath="";var i;for(i=0;i<pagePathArray.length;i++){var innerText=pagePathArray[i].innerText.trim();if(i!=pagePathArray.length-1||(innerText!="Início"&&innerText!=document.title&&innerText!="Vodafone Portugal - 5G, Telemóveis, Internet, Televisão")){pagePath+=innerText+":";}}pagePath=pagePath.slice(0,-1);}var pageName="Consumer Homepage";var pageSection="Consumer Homepage";var pagePropsEvent=""?"":"page_view";var productName="";const actionId="";var productCategory="";utag_data.event=pagePropsEvent.replace(/\s/g,'').split(',');utag_data.page_name=pageName?pageName:document.title;utag_data.page_section=pageSection?pageSection:hasBreadcrumb?pagePath:"";if(actionId){utag_data.action_id=actionId;delete utag_data.page_name;delete utag_data.page_section;}if(productName)utag_data.product_name=productName;if(productCategory)utag_data.product_category=productCategory;if(utag_data.product_name&&utag_data.product_category){if(!utag_data.event){utag_data.event=[];}utag_data.event.push("product_view");}utils.methods.sessionUtils().isLoggedIn();if(urlUtils.methods.isEshop()||urlUtils.methods.isHelpAndSupport()){if(SFUrl){SFUrl.sru=window.location.href;}}}</script> <!--<sly data-sly-include="/apps/digital-local/clientlibs/clientlib-local/svg/sprite.html"></sly>--> <div id="mask"></div> <script type="text/javascript" src="/_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3&ns=1&cb=187453086" async></script></body> </html>