mirror of
				https://github.com/strapi/strapi.git
				synced 2025-11-03 19:36:20 +00:00 
			
		
		
		
	
		
			
	
	
		
			47 lines
		
	
	
		
			878 B
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			878 B
		
	
	
	
		
			Vue
		
	
	
	
	
	
| 
								 | 
							
								<template>
							 | 
						||
| 
								 | 
							
								  <router-link
							 | 
						||
| 
								 | 
							
								    class="nav-link"
							 | 
						||
| 
								 | 
							
								    :to="link"
							 | 
						||
| 
								 | 
							
								    v-if="!isExternal(link)"
							 | 
						||
| 
								 | 
							
								    :exact="exact"
							 | 
						||
| 
								 | 
							
								  >{{ item.text }}</router-link>
							 | 
						||
| 
								 | 
							
								  <a
							 | 
						||
| 
								 | 
							
								    v-else
							 | 
						||
| 
								 | 
							
								    :href="link"
							 | 
						||
| 
								 | 
							
								    class="nav-link external"
							 | 
						||
| 
								 | 
							
								    :target="isMailto(link) || isTel(link) ? null : '_blank'"
							 | 
						||
| 
								 | 
							
								    :rel="isMailto(link) || isTel(link) ? null : 'noopener noreferrer'"
							 | 
						||
| 
								 | 
							
								  >
							 | 
						||
| 
								 | 
							
								    {{ item.text }}
							 | 
						||
| 
								 | 
							
								    <OutboundLink/>
							 | 
						||
| 
								 | 
							
								  </a>
							 | 
						||
| 
								 | 
							
								</template>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
								import { isExternal, isMailto, isTel, ensureExt } from './util'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default {
							 | 
						||
| 
								 | 
							
								  props: {
							 | 
						||
| 
								 | 
							
								    item: {
							 | 
						||
| 
								 | 
							
								      required: true
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  computed: {
							 | 
						||
| 
								 | 
							
								    link () {
							 | 
						||
| 
								 | 
							
								      return ensureExt(this.item.link)
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    exact () {
							 | 
						||
| 
								 | 
							
								      if (this.$site.locales) {
							 | 
						||
| 
								 | 
							
								        return Object.keys(this.$site.locales).some(rootLink => rootLink === this.link)
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return this.link === '/'
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  methods: {
							 | 
						||
| 
								 | 
							
								    isExternal,
							 | 
						||
| 
								 | 
							
								    isMailto,
							 | 
						||
| 
								 | 
							
								    isTel
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								</script>
							 |