changes
This commit is contained in:
		
							
								
								
									
										15
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										15
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -9,6 +9,7 @@
 | 
				
			|||||||
      "version": "0.0.0",
 | 
					      "version": "0.0.0",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "vue": "^3.2.47",
 | 
					        "vue": "^3.2.47",
 | 
				
			||||||
 | 
					        "vue-gtag": "^2.0.1",
 | 
				
			||||||
        "vue-i18n": "^9.2.2",
 | 
					        "vue-i18n": "^9.2.2",
 | 
				
			||||||
        "vue-mobile-detection": "^2.0.1",
 | 
					        "vue-mobile-detection": "^2.0.1",
 | 
				
			||||||
        "vue-router": "^4.2.2",
 | 
					        "vue-router": "^4.2.2",
 | 
				
			||||||
@@ -973,6 +974,14 @@
 | 
				
			|||||||
        "@vue/shared": "3.3.4"
 | 
					        "@vue/shared": "3.3.4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/vue-gtag": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/vue-gtag/-/vue-gtag-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-aM4A58FVL0wV2ptYi+xzAjeg+pQVRyUcfBc5UkXAwQrR4t3WBhor50Izp2I+3Oo7+l+vWJ7u78DGcNzReb8S/A==",
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "vue": "^3.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/vue-i18n": {
 | 
					    "node_modules/vue-i18n": {
 | 
				
			||||||
      "version": "9.2.2",
 | 
					      "version": "9.2.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
 | 
				
			||||||
@@ -1593,6 +1602,12 @@
 | 
				
			|||||||
        "@vue/shared": "3.3.4"
 | 
					        "@vue/shared": "3.3.4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "vue-gtag": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/vue-gtag/-/vue-gtag-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-aM4A58FVL0wV2ptYi+xzAjeg+pQVRyUcfBc5UkXAwQrR4t3WBhor50Izp2I+3Oo7+l+vWJ7u78DGcNzReb8S/A==",
 | 
				
			||||||
 | 
					      "requires": {}
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "vue-i18n": {
 | 
					    "vue-i18n": {
 | 
				
			||||||
      "version": "9.2.2",
 | 
					      "version": "9.2.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "vue": "^3.2.47",
 | 
					    "vue": "^3.2.47",
 | 
				
			||||||
 | 
					    "vue-gtag": "^2.0.1",
 | 
				
			||||||
    "vue-i18n": "^9.2.2",
 | 
					    "vue-i18n": "^9.2.2",
 | 
				
			||||||
    "vue-mobile-detection": "^2.0.1",
 | 
					    "vue-mobile-detection": "^2.0.1",
 | 
				
			||||||
    "vue-router": "^4.2.2",
 | 
					    "vue-router": "^4.2.2",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
  import Footer from './components/Footer.vue';
 | 
					  import Footer from './components/Footer.vue';
 | 
				
			||||||
 | 
					  import GdprConsent from './components/GdprConsent.vue';
 | 
				
			||||||
  import Menu from './components/Menu.vue';
 | 
					  import Menu from './components/Menu.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const pagesWithCarousel = [
 | 
					  const pagesWithCarousel = [
 | 
				
			||||||
@@ -14,7 +15,7 @@
 | 
				
			|||||||
        width: window.innerWidth
 | 
					        width: window.innerWidth
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    components: { Footer, Menu },
 | 
					    components: { Footer, Menu, GdprConsent },
 | 
				
			||||||
    created() {
 | 
					    created() {
 | 
				
			||||||
      window.addEventListener('scroll', this.handleScroll);
 | 
					      window.addEventListener('scroll', this.handleScroll);
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -52,6 +53,7 @@
 | 
				
			|||||||
      <RouterView />
 | 
					      <RouterView />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <Footer></Footer>
 | 
					    <Footer></Footer>
 | 
				
			||||||
 | 
					    <gdpr-consent></gdpr-consent>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -64,7 +66,7 @@
 | 
				
			|||||||
    color: #121212;
 | 
					    color: #121212;
 | 
				
			||||||
    width: 150px;
 | 
					    width: 150px;
 | 
				
			||||||
    height: 30px;
 | 
					    height: 30px;
 | 
				
			||||||
    z-index: 200550;
 | 
					    z-index: 12;
 | 
				
			||||||
    border-bottom-right-radius: 10px;
 | 
					    border-bottom-right-radius: 10px;
 | 
				
			||||||
    padding: 4px;
 | 
					    padding: 4px;
 | 
				
			||||||
    opacity: 0.5;
 | 
					    opacity: 0.5;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										121
									
								
								src/components/GdprConsent.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								src/components/GdprConsent.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,121 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div v-if="!hideGdpr" class="gdpr-overlay">
 | 
				
			||||||
 | 
					    <section class="gdpr-container">
 | 
				
			||||||
 | 
					      <div class="gdpr-content">
 | 
				
			||||||
 | 
					        <div class="gdpr-text">{{ $t('gdpr.text') }} <a href="https://tayronafoods.myshopify.com/pages/gdpr-privacy-policy">{{ $t('gdpr.policy') }}</a></div>
 | 
				
			||||||
 | 
					        <div class="gdpr-buttons">
 | 
				
			||||||
 | 
					          <button class="secondary" @click="closeGdpr">{{ $t('gdpr.reject')}}</button>
 | 
				
			||||||
 | 
					          <button @click="enableGdpr">{{ $t('gdpr.accept')}}</button>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </section>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import { bootstrap, setOptions } from 'vue-gtag';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      hideGdpr: false,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    async enableGdpr() {
 | 
				
			||||||
 | 
					      setOptions({
 | 
				
			||||||
 | 
					        config: { id: 'G-WSGLW74RC1',  },
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      const gtag = await bootstrap();
 | 
				
			||||||
 | 
					      this.closeGdpr();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    closeGdpr() {
 | 
				
			||||||
 | 
					      this.hideGdpr = true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					  .gdpr {
 | 
				
			||||||
 | 
					    &-overlay {
 | 
				
			||||||
 | 
					      position: fixed;
 | 
				
			||||||
 | 
					      top:0;
 | 
				
			||||||
 | 
					      right:0;
 | 
				
			||||||
 | 
					      bottom: 0;
 | 
				
			||||||
 | 
					      left: 0;
 | 
				
			||||||
 | 
					      z-index: 20;
 | 
				
			||||||
 | 
					      background-color: rgba(255, 255, 255, 0.3);
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    &-container {
 | 
				
			||||||
 | 
					      position: relative;
 | 
				
			||||||
 | 
					      left: 0;
 | 
				
			||||||
 | 
					      width: 700px;
 | 
				
			||||||
 | 
					      z-index: 21;
 | 
				
			||||||
 | 
					      margin: 0 auto;
 | 
				
			||||||
 | 
					      background-color: #fff;
 | 
				
			||||||
 | 
					      box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
 | 
				
			||||||
 | 
					      border-radius: 6px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    &-content {
 | 
				
			||||||
 | 
					      background-color: #fefefe;
 | 
				
			||||||
 | 
					      color: #121212;
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      margin: 0 auto;
 | 
				
			||||||
 | 
					      padding: 16px 32px;
 | 
				
			||||||
 | 
					      height: auto;
 | 
				
			||||||
 | 
					      display: grid;
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					      justify-items: center;
 | 
				
			||||||
 | 
					      font-size: 14px;
 | 
				
			||||||
 | 
					      gap: 20px;
 | 
				
			||||||
 | 
					      border-radius: 6px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    &-buttons {
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      gap: 16px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @media only screen and (min-width: 961px) {
 | 
				
			||||||
 | 
					    .gdpr {
 | 
				
			||||||
 | 
					      &-container {
 | 
				
			||||||
 | 
					        top:30%;  
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &-content {
 | 
				
			||||||
 | 
					        grid-template-columns: 4fr auto;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // @media only screen and (max-width: 960px) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @media only screen and (max-width: 767px) {
 | 
				
			||||||
 | 
					    .gdpr {
 | 
				
			||||||
 | 
					      &-container {
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        bottom: 0;
 | 
				
			||||||
 | 
					        border-radius: 0;
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &-content {
 | 
				
			||||||
 | 
					        grid-template-rows: 1fr;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &-buttons {
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        flex-direction: column;
 | 
				
			||||||
 | 
					        gap: 8px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -73,7 +73,7 @@ export default {
 | 
				
			|||||||
    position: fixed;
 | 
					    position: fixed;
 | 
				
			||||||
    top: 0;
 | 
					    top: 0;
 | 
				
			||||||
    left: 0;
 | 
					    left: 0;
 | 
				
			||||||
    z-index: 1000;
 | 
					    z-index: 10;
 | 
				
			||||||
    width: 100%;
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nav {
 | 
					    nav {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -186,7 +186,12 @@ export default {
 | 
				
			|||||||
    paragraph7: '+49(0)176 321 368 59',
 | 
					    paragraph7: '+49(0)176 321 368 59',
 | 
				
			||||||
    paragraph8: '+49(0)152 549 389 62',
 | 
					    paragraph8: '+49(0)152 549 389 62',
 | 
				
			||||||
    paragraph9: 'Redes Sociales',
 | 
					    paragraph9: 'Redes Sociales',
 | 
				
			||||||
    paragraph10: 'Instagram'
 | 
					    paragraph10: 'Instagram',    
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  gdpr: {
 | 
				
			||||||
 | 
					    text: 'Diese Website verwendet Cookies, um Ihnen das beste Erlebnis auf unserer Website zu gewährleisten.',
 | 
				
			||||||
 | 
					    accept: 'Akzeptieren',
 | 
				
			||||||
 | 
					    reject: 'Ablehnen',
 | 
				
			||||||
 | 
					    policy: 'Datenschutzrichtlinie',
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -192,5 +192,11 @@ export default {
 | 
				
			|||||||
    paragraph10: 'Instagram'
 | 
					    paragraph10: 'Instagram'
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  gdpr: {
 | 
				
			||||||
 | 
					    text: 'This website uses cookies to ensure you the best experience on our website.',
 | 
				
			||||||
 | 
					    accept: 'Accept',
 | 
				
			||||||
 | 
					    reject: 'Reject',
 | 
				
			||||||
 | 
					    policy: 'Privacy Policy',
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}   
 | 
					}   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -191,4 +191,10 @@ export default {
 | 
				
			|||||||
    paragraph10: 'Instagram'
 | 
					    paragraph10: 'Instagram'
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  gdpr: {
 | 
				
			||||||
 | 
					    text: 'Este sitio web utiliza cookies para garantizarle la mejor experiencia en nuestro sitio web.',
 | 
				
			||||||
 | 
					    accept: 'Aceptar',
 | 
				
			||||||
 | 
					    reject: 'Rechazar',
 | 
				
			||||||
 | 
					    policy: 'Política de Privacidad',
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -4,7 +4,7 @@ import en from "./en";
 | 
				
			|||||||
import de from "./de";
 | 
					import de from "./de";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const i18n = createI18n({
 | 
					const i18n = createI18n({
 | 
				
			||||||
  locale: 'es',
 | 
					  locale: navigator.language.split('-')[0] || 'de',
 | 
				
			||||||
  fallbackLocale: 'es',
 | 
					  fallbackLocale: 'es',
 | 
				
			||||||
  messages: {
 | 
					  messages: {
 | 
				
			||||||
    es,
 | 
					    es,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@ import { createApp } from 'vue'
 | 
				
			|||||||
import router from './router/router';
 | 
					import router from './router/router';
 | 
				
			||||||
import i18n from './i18n/i18n';
 | 
					import i18n from './i18n/i18n';
 | 
				
			||||||
import VueMobileDetection from 'vue-mobile-detection';
 | 
					import VueMobileDetection from 'vue-mobile-detection';
 | 
				
			||||||
 | 
					import VueGtag from "vue-gtag";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import './style.css'
 | 
					import './style.css'
 | 
				
			||||||
import App from './App.vue'
 | 
					import App from './App.vue'
 | 
				
			||||||
@@ -13,5 +14,8 @@ app.use(router);
 | 
				
			|||||||
app.use(VueMobileDetection);
 | 
					app.use(VueMobileDetection);
 | 
				
			||||||
app.use(i18n);
 | 
					app.use(i18n);
 | 
				
			||||||
app.use(helper);
 | 
					app.use(helper);
 | 
				
			||||||
 | 
					app.use(VueGtag, {
 | 
				
			||||||
 | 
					  bootstrap: false,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
app.mount('#app');
 | 
					app.mount('#app');
 | 
				
			||||||
@@ -41,6 +41,21 @@ body {
 | 
				
			|||||||
  background-color: #121212
 | 
					  background-color: #121212
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					button {
 | 
				
			||||||
 | 
					  background-color: #ffcd00;
 | 
				
			||||||
 | 
					  border: 0;
 | 
				
			||||||
 | 
					  color: #fff;
 | 
				
			||||||
 | 
					  padding: 8px 8px;
 | 
				
			||||||
 | 
					  border-radius: 4px;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  font-weight: 600;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					button.secondary {
 | 
				
			||||||
 | 
					  background-color: #fff;
 | 
				
			||||||
 | 
					  color: #ffcd00;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.main-container {
 | 
					.main-container {
 | 
				
			||||||
  width: 960px;
 | 
					  width: 960px;
 | 
				
			||||||
  margin: 0 auto;;
 | 
					  margin: 0 auto;;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@
 | 
				
			|||||||
  </section>
 | 
					  </section>
 | 
				
			||||||
  <section class="social-bottom content">
 | 
					  <section class="social-bottom content">
 | 
				
			||||||
    <img src="@images/proyect-soc-new.jpg">
 | 
					    <img src="@images/proyect-soc-new.jpg">
 | 
				
			||||||
    <p>Creemos en el poder {{ $t('social.paragraph3') }}<br><br>{{ $t('social.paragraph4') }}</p>
 | 
					    <p>{{ $t('social.paragraph3') }}<br><br>{{ $t('social.paragraph4') }}</p>
 | 
				
			||||||
  </section>
 | 
					  </section>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user