<a href="#main" class="skip-link">Hoppa till innehållet</a>
<headervue id="header-vue" fetch-menu-url="http://devmiun.kexnorr.se/nav" query-search-url="http://localhost:2000/production/sv/find/rest/autocomplete/get/" page-id="5" json='{"isLoggedIn":true,"subSite":false,"logo":{"logoImageUrl":"/images/mittuniversitetet_logo.png","logoLinkUrl":"/","logoAltText":"Mittuniversitetets logotyp"},"userButton":{"initials":"AS","name":"Anton Sjölander","color":"green","url":"#"},"loginLink":{"linkText":"Logga in","linkIcon":"person_outline","linkUrl":"/logga-in","linkCustomClass":""},"languageLink":{"linkText":"Engelska","linkIcon":"language","linkUrl":"/en","linkCustomClass":""},"toolsButton":{"text":"Verktyg","icon":"build"},"searchButton":{"text":"Sök","placeholder":"What letar you efter?","icon":"search"},"menuButton":{"text":"Meny","goBackText":"Tillbaka","loadingText":"Laddar...","icon":"menu"},"userNav":{"personalSiteLink":{"linkText":"Min Personliga sida","linkUrl":"/personliga-sida","linkIcon":"home","linkCustomClass":""},"settingsLink":{"linkText":"Inställningar","linkUrl":"/settings","linkIcon":"settings","linkCustomClass":""},"favoritesLink":{"linkText":"Favoriter","linkUrl":"/favorites","linkIcon":"favorite_border","linkCustomClass":""},"languageLink":{"linkText":"English","linkUrl":"/en","linkIcon":"language","linkCustomClass":""},"logoutLink":{"linkText":"Logga ut","linkUrl":"/logout","linkIcon":"","linkCustomClass":""},"favorites":[{"linkText":"Sommarkurser","linkUrl":"/boka-lokal","linkIcon":"","linkCustomClass":""},{"linkText":"A","linkUrl":"/boka-lokal","linkIcon":"","linkCustomClass":""},{"linkText":"Mittuniversitets kalendarium","linkUrl":"/miun-kalendarium","linkIcon":"","linkCustomClass":""}],"favoritesTexts":{"openFavorites":"Öppna Favoriter","closeFavorites":"Stäng Favoriter","removeFavorites":"Ta bort sida som favorit"}},"toolsNav":[{"linkText":"B","linkUrl":"/boka-lokal","linkIcon":"fa-smile-o","linkCustomClass":""},{"linkText":"C","linkUrl":"/staten-servicecenter","linkIcon":"fa-smile-o","linkCustomClass":""},{"linkText":"A","linkUrl":"/bibliotek","linkIcon":"fa-smile-o","linkCustomClass":""},{"linkText":"Bokade salar Östersund","linkUrl":"/bokade-salar-ostersund","linkIcon":"fa-smile-o","linkCustomClass":""},{"linkText":"Boka gruppgrum","linkUrl":"/boka-grupprum","linkIcon":"fa-smile-o","linkCustomClass":""},{"linkText":"Lägg till/ändra","linkUrl":"/lagg-till-andra","linkIcon":"fa-plus-circle","linkCustomClass":"tools-add-button"}],"menuColumn2":[{"displayName":"Utbildning - 1","url":"/utbildning/page1","active":false,"hasChildren":true},{"displayName":"Utbildning - 2","url":"/utbildning/page2","active":true,"hasChildren":true},{"displayName":"Utbildning - 3","url":"/utbildning/page2","active":false,"hasChildren":false},{"displayName":"Utbildning - 4","url":"/utbildning/page2","active":false,"hasChildren":true}],"menuColumn3":[{"displayName":"Utbildning - 2 - 1","url":"/utbildning/page2/page1","active":false,"hasChildren":false},{"displayName":"Utbildning - 2 - 2","url":"/utbildning/page2/page2","active":false,"hasChildren":false},{"displayName":"Utbildning - 2 - 3","url":"/utbildning/page2/page3","active":false,"hasChildren":true},{"displayName":"Utbildning - 2 - 4","url":"/utbildning/page2/page4","active":true,"hasChildren":true},{"displayName":"Utbildning - 2 - 5","url":"/utbildning/page2/page5","active":false,"hasChildren":false}],"menuColumn4":[{"displayName":"Utbildning - 2 - 4 - 1","url":"/utbildning/page2/page4/page1","active":true,"hasChildren":false},{"displayName":"Utbildning - 2 - 4 - 2","url":"/utbildning/page2/page4/page1","active":false,"hasChildren":false}]}'
subsite="true" subsite-back-url="#" go-back-text="Tillbaka" subsite-back-text="Tillbaka" subsite-title="ETOUR" favorites-linktext="Favoriter" favorites-opentext="Öppna Favoriter" favorites-closetext="Stäng Favoriter" favorites-removetext="Ta bort Favoriter"
sub-site-root-url="www.google.se">
</headervue>
<a href="{{this.skipLinkUrl}}" class="skip-link">{{this.skipLinkText}}</a>
<headervue id="header-vue" fetch-menu-url="{{fetchMenuUrl}}" query-search-url="{{querySearchUrl}}" page-id="{{pageId}}"
json='{{{json}}}' subsite="{{subSite}}" subsite-back-url="{{subSiteBackUrl}}"
go-back-text="{{componentStrings.menu.goBackText}}" subsite-back-text="{{subSiteBackText}}"
subsite-title="{{subSiteTitle}}" favorites-linktext="{{componentStrings.favoritesText.linkText}}"
favorites-opentext="{{componentStrings.favoritesText.openFavorites}}"
favorites-closetext="{{componentStrings.favoritesText.closeFavorites}}"
favorites-removetext="{{componentStrings.favoritesText.removeFavorites}}" sub-site-root-url="{{subSiteRootUrl}}">
</headervue>
{
"pageId": 5,
"skipLinkUrl": "#main",
"skipLinkText": "Hoppa till innehållet",
"fetchMenuUrl": "http://devmiun.kexnorr.se/nav",
"querySearchUrl": "http://localhost:2000/production/sv/find/rest/autocomplete/get/",
"componentStrings": {
"menu": {
"goBackText": "Tillbaka",
"loadingText": "Laddar...",
"favorites": "Favoriter"
},
"search": {
"placeholderText": "Vad letar du efter?"
},
"user": {
"logoutText": "Logga ut",
"goBackText": "Tillbaka"
},
"favoritesText": {
"linkText": "Favoriter",
"openFavorites": "Öppna Favoriter",
"closeFavorites": "Stäng Favoriter",
"removeFavorites": "Ta bort Favoriter"
}
},
"json": "{\"isLoggedIn\":true,\"subSite\":false,\"logo\":{\"logoImageUrl\":\"/images/mittuniversitetet_logo.png\",\"logoLinkUrl\":\"/\",\"logoAltText\":\"Mittuniversitetets logotyp\"},\"userButton\":{\"initials\":\"AS\",\"name\":\"Anton Sjölander\",\"color\":\"green\",\"url\":\"#\"},\"loginLink\":{\"linkText\":\"Logga in\",\"linkIcon\":\"person_outline\",\"linkUrl\":\"/logga-in\",\"linkCustomClass\":\"\"},\"languageLink\":{\"linkText\":\"Engelska\",\"linkIcon\":\"language\",\"linkUrl\":\"/en\",\"linkCustomClass\":\"\"},\"toolsButton\":{\"text\":\"Verktyg\",\"icon\":\"build\"},\"searchButton\":{\"text\":\"Sök\",\"placeholder\":\"What letar you efter?\",\"icon\":\"search\"},\"menuButton\":{\"text\":\"Meny\",\"goBackText\":\"Tillbaka\",\"loadingText\":\"Laddar...\",\"icon\":\"menu\"},\"userNav\":{\"personalSiteLink\":{\"linkText\":\"Min Personliga sida\",\"linkUrl\":\"/personliga-sida\",\"linkIcon\":\"home\",\"linkCustomClass\":\"\"},\"settingsLink\":{\"linkText\":\"Inställningar\",\"linkUrl\":\"/settings\",\"linkIcon\":\"settings\",\"linkCustomClass\":\"\"},\"favoritesLink\":{\"linkText\":\"Favoriter\",\"linkUrl\":\"/favorites\",\"linkIcon\":\"favorite_border\",\"linkCustomClass\":\"\"},\"languageLink\":{\"linkText\":\"English\",\"linkUrl\":\"/en\",\"linkIcon\":\"language\",\"linkCustomClass\":\"\"},\"logoutLink\":{\"linkText\":\"Logga ut\",\"linkUrl\":\"/logout\",\"linkIcon\":\"\",\"linkCustomClass\":\"\"},\"favorites\":[{\"linkText\":\"Sommarkurser\",\"linkUrl\":\"/boka-lokal\",\"linkIcon\":\"\",\"linkCustomClass\":\"\"},{\"linkText\":\"A\",\"linkUrl\":\"/boka-lokal\",\"linkIcon\":\"\",\"linkCustomClass\":\"\"},{\"linkText\":\"Mittuniversitets kalendarium\",\"linkUrl\":\"/miun-kalendarium\",\"linkIcon\":\"\",\"linkCustomClass\":\"\"}],\"favoritesTexts\":{\"openFavorites\":\"Öppna Favoriter\",\"closeFavorites\":\"Stäng Favoriter\",\"removeFavorites\":\"Ta bort sida som favorit\"}},\"toolsNav\":[{\"linkText\":\"B\",\"linkUrl\":\"/boka-lokal\",\"linkIcon\":\"fa-smile-o\",\"linkCustomClass\":\"\"},{\"linkText\":\"C\",\"linkUrl\":\"/staten-servicecenter\",\"linkIcon\":\"fa-smile-o\",\"linkCustomClass\":\"\"},{\"linkText\":\"A\",\"linkUrl\":\"/bibliotek\",\"linkIcon\":\"fa-smile-o\",\"linkCustomClass\":\"\"},{\"linkText\":\"Bokade salar Östersund\",\"linkUrl\":\"/bokade-salar-ostersund\",\"linkIcon\":\"fa-smile-o\",\"linkCustomClass\":\"\"},{\"linkText\":\"Boka gruppgrum\",\"linkUrl\":\"/boka-grupprum\",\"linkIcon\":\"fa-smile-o\",\"linkCustomClass\":\"\"},{\"linkText\":\"Lägg till/ändra\",\"linkUrl\":\"/lagg-till-andra\",\"linkIcon\":\"fa-plus-circle\",\"linkCustomClass\":\"tools-add-button\"}],\"menuColumn2\":[{\"displayName\":\"Utbildning - 1\",\"url\":\"/utbildning/page1\",\"active\":false,\"hasChildren\":true},{\"displayName\":\"Utbildning - 2\",\"url\":\"/utbildning/page2\",\"active\":true,\"hasChildren\":true},{\"displayName\":\"Utbildning - 3\",\"url\":\"/utbildning/page2\",\"active\":false,\"hasChildren\":false},{\"displayName\":\"Utbildning - 4\",\"url\":\"/utbildning/page2\",\"active\":false,\"hasChildren\":true}],\"menuColumn3\":[{\"displayName\":\"Utbildning - 2 - 1\",\"url\":\"/utbildning/page2/page1\",\"active\":false,\"hasChildren\":false},{\"displayName\":\"Utbildning - 2 - 2\",\"url\":\"/utbildning/page2/page2\",\"active\":false,\"hasChildren\":false},{\"displayName\":\"Utbildning - 2 - 3\",\"url\":\"/utbildning/page2/page3\",\"active\":false,\"hasChildren\":true},{\"displayName\":\"Utbildning - 2 - 4\",\"url\":\"/utbildning/page2/page4\",\"active\":true,\"hasChildren\":true},{\"displayName\":\"Utbildning - 2 - 5\",\"url\":\"/utbildning/page2/page5\",\"active\":false,\"hasChildren\":false}],\"menuColumn4\":[{\"displayName\":\"Utbildning - 2 - 4 - 1\",\"url\":\"/utbildning/page2/page4/page1\",\"active\":true,\"hasChildren\":false},{\"displayName\":\"Utbildning - 2 - 4 - 2\",\"url\":\"/utbildning/page2/page4/page1\",\"active\":false,\"hasChildren\":false}]}",
"subSite": true,
"subSiteRootUrl": "www.google.se",
"subSiteBackUrl": "#",
"subSiteBackText": "Tillbaka",
"subSiteTitle": "ETOUR"
}
const OFFSET = 60
Vue.component("headervue", {
props: [
"fetchMenuUrl",
"pageId",
"querySearchUrl",
"subsite",
"subsiteBackUrl",
"subsiteBackText",
"subsiteTitle",
"goBackText",
"favoritesLinktext",
"favoritesOpentext",
"favoritesClosetext",
"favoritesRemovetext",
"subSiteRootUrl"
],
data() {
return {
fLinktext: this.favoritesLinktext,
fOpentext: this.favoritesOpentext,
fClosetext: this.favoritesClosetext,
fRemovetext: this.favoritesRemovetext,
showFav: false,
showFavBar: false,
showMenu: false,
userWantsToSearch: false,
userWantsToOpenMenu: false,
userWantsToOpenTools: false,
userWantsToOpenUserMenu: false,
data: "",
userNav: "",
toolsNav: "",
url: "",
activeItems: [],
menuItems: [],
menuTwo: [],
menuThree: [],
menuFour: [],
subsiteObj: {},
menuLoading: false,
searchUrl: this.querySearchUrl,
showNavbar: true,
fetchLoading: false,
lastScrollPosition: 0,
scrollValue: 0,
userWantsToSearchMobile: false,
mobileSearchHits: "",
mobileQuery: "",
userWantsToOpenMenuMobile: "",
userWantsToSearchScrolledMobile: false,
};
},
mounted() {
if (document.getElementById("header-vue") && this.fetchMenuUrl) {
console.log({ "favoritesLinktext": this.favoritesLinktext })
console.log({ "favoritesOpentext": this.favoritesOpentext })
console.log({ "favoritesClosetext": this.favoritesClosetext })
console.log({ "favoritesRemovetext": this.favoritesRemovetext })
this.lastScrollPosition = window.pageYOffset
window.addEventListener('scroll', this.onScroll)
const viewportMeta = document.createElement('meta')
viewportMeta.name = 'viewport'
viewportMeta.content = 'width=device-width, initial-scale=1'
document.head.appendChild(viewportMeta)
if (
this.subsite &&
this.subsiteBackUrl &&
this.subsiteBackText &&
this.subsiteTitle
) {
this.subsiteObj.subsite = this.subsite;
this.subsiteObj.subSiteRootUrl = this.subSiteRootUrl;
this.subsiteObj.subsiteBackUrl = this.subsiteBackUrl;
this.subsiteObj.subsiteBackText = this.subsiteBackText;
this.subsiteObj.subsiteTitle = this.subsiteTitle;
}
this.getAttributes();
this.url = this.fetchMenuUrl;
this.searchUrl = this.querySearchUrl;
this.currentPageId = this.pageId;
this.fetchMenuItems(this.url, this.currentPageId);
}
window.addEventListener('scroll', this.stickyHeader);
},
destroyed() {
window.removeEventListener('scroll', this.stickyHeader);
},
filters: {
initials: function (value) {
if (!value) return "";
value = value.toString();
var initials = value
.split(" ")
.map(n => n[0])
.join("");
return initials;
},
capitalize: function (value) {
if (!value) return "";
value = value.toString();
return value.charAt(0).toUpperCase() + value.slice(1);
}
},
beforeDestroy() {
window.removeEventListener("scroll", this.onScroll);
},
methods: {
stickyHeader() {
var body = document.getElementsByTagName("body")[0];
if (window.pageYOffset > 50) {
body.classList.add("sticky");
} else {
body.classList.remove("sticky");
}
},
async fetchMenuItems(url, pageId) {
try {
this.menuLoading = true;
this.fetchLoading = true;
const res = await axios.post(url, {
id: pageId
});
console.log({ resMenu: res })
this.menuItems = res.data.menuOne;
if (res.data.activePath.length > 0) {
this.activeItems = res.data.activePath;
}
if (res.data.menuTwo) {
this.menuTwo = res.data.menuTwo;
}
if (res.data.menuThree) {
this.menuThree = res.data.menuThree;
}
if (res.data.menuFour) {
this.menuFour = res.data.menuFour;
}
this.menuLoading = false;
this.fetchLoading = false;
} catch (error) {
}
},
searchMobileToggle() {
this.userWantsToSearchMobile = !this.userWantsToSearchMobile;
if (this.userWantsToSearchMobile) {
this.$nextTick(function () {
if (this.$refs.searchnotscrolled) {
this.$refs.searchnotscrolled.focus();
}
});
}
this.userWantsToOpenTools = false;
this.userWantsToOpenMenu = false;
this.userWantsToOpenMenuMobile = false;
this.userWantsToOpenUserMenu = false;
this.showFav = false;
},
searchMobileScrolledToggle() {
this.userWantsToSearchScrolledMobile = !this
.userWantsToSearchScrolledMobile;
if (this.userWantsToSearchScrolledMobile) {
this.$nextTick(function () {
this.$refs.searchscrolled.focus();
});
}
this.userWantsToSearchMobile = false;
this.userWantsToOpenTools = false;
this.userWantsToOpenMenu = false;
this.userWantsToOpenMenuMobile = false;
this.userWantsToOpenUserMenu = false;
this.showFav = false;
},
searchMobileScrollDown() {
this.showNavbar = true
},
menuMobileToggle() {
this.userWantsToOpenMenuMobile = !this.userWantsToOpenMenuMobile;
var body = document.body;
if (this.userWantsToOpenMenuMobile) {
this.clearMobileSearch();
body.classList.add("noscroll");
body.classList.add("noscroll-menu");
} else {
body.classList.remove("noscroll");
body.classList.remove("noscroll-menu");
}
this.userWantsToOpenTools = false;
this.mobileSearchHits = false;
this.userWantsToSearchMobile = false;
this.userWantsToSearch = false;
this.userWantsToOpenUserMenu = false;
this.showFav = false;
},
searchToggle() {
this.userWantsToSearch = !this.userWantsToSearch;
this.userWantsToOpenTools = false;
this.userWantsToOpenMenu = false;
this.userWantsToOpenUserMenu = false;
this.showFav = false;
},
toolsToggle() {
var body = document.body;
this.userWantsToOpenTools = !this.userWantsToOpenTools;
if (this.userWantsToOpenTools) {
body.classList.add("noscroll");
} else {
body.classList.remove("noscroll");
}
this.userWantsToSearch = false;
this.userWantsToOpenMenu = false;
this.userWantsToOpenUserMenu = false;
this.showFav = false;
},
showFavBox() {
this.showFav = !this.showFav
this.userWantsToSearch = false;
this.userWantsToSearchMobile = false;
this.userWantsToOpenTools = false;
this.userWantsToOpenMenu = false;
this.userWantsToOpenMenuMobile = false;
this.userWantsToOpenUserMenu = false;
},
menuToggle() {
this.userWantsToOpenMenu = !this.userWantsToOpenMenu;
this.userWantsToOpenMenuMobile = !this.userWantsToOpenMenuMobile;
this.userWantsToOpenTools = false;
this.userWantsToSearch = false;
this.userWantsToOpenUserMenu = false;
this.showFav = false;
var body = document.body;
if (this.userWantsToOpenMenu || this.userWantsToOpenMenuMobile) {
body.classList.add("noscroll-menu");
} else {
body.classList.remove("noscroll-menu");
}
},
toggleUserMenu() {
var body = document.body;
this.userWantsToOpenUserMenu = !this.userWantsToOpenUserMenu;
if (this.userWantsToOpenUserMenu) {
body.classList.add("noscroll");
} else {
body.classList.remove("noscroll");
}
this.userWantsToOpenTools = false;
this.userWantsToSearch = false;
this.userWantsToOpenMenu = false;
},
mobileSubmit: function (e) {
e.preventDefault();
window.location.href = `/sok/?=&querytext=${this.mobileQuery}`;
},
getAttributes() {
const page = document.getElementById("header-vue");
const json = JSON.parse(page.getAttribute("json"));
this.userNav = json.userNav;
this.toolsNav = json.toolsNav;
this.data = json;
},
clearMobileSearch() {
this.mobileQuery = "";
this.mobileSearchHits = "";
this.userWantsToSearchMobile = false;
},
timeout(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
},
browseFavorites() {
this.openFavorites = !this.openFavorites;
},
removeFavourite(pageId) {
return this.$root.removeFavourite(pageId);
},
onFavouriteDrag(event) {
return this.$root.favouritesUpdated(event);
},
async queryAutoComplete(data) {
if (typeof data === "string") {
if (data.length >= 2) {
this.loading = true;
await this.timeout(1000);
try {
const response = await fetch(
this.searchUrl + data + "?size=5"
).then(response => response.json());
if (response.Hits) {
this.mobileSearchHits = response.Hits;
}
this.loading = false;
} catch (error) {
}
} else {
this.mobileSearchHits = "";
}
}
}
},
template: `
<header class="container-fluid m-header">
<nav id="fav-navigation" v-cloak class="row">
<ul>
<li class="my-courses">
<cartcomponent :cart-url="data.cartUrl"></cartcomponent>
</li>
<li class="favorites">
<a href="javascript:void(0)" :aria-label="fOpentext" @click="showFavBox"><span class="material-icons">favorite</span><strong class="d-none d-md-block">{{fLinktext}}</strong></a>
<transition name="slide-fade" mode="out-in">
<div id="fav-list" v-if="showFav">
<a href="javascript:void(0)" :aria-label="fClosetext" class="fav-close" @click="showFav = !showFav"></a>
<div class="fav-head">{{fLinktext}}</div>
<draggable class="favorite-links" :list="this.$root.shared.favourites" @change="onFavouriteDrag">
<div class="favorite-link" v-for="(item, index) in this.$root.shared.favourites" :key="index">
<i class="material-icons sortFavIcon">view_headline</i>
<a class="pagetitle" :aria-label="item.pageTitle" :href="item.pageUrl">{{item.pageTitle}}</a>
<i class="material-icons removeFavIcon c-pointer" @click="removeFavourite(item.pageId)" :aria-label="fRemovetext" >close</i>
</div>
</draggable>
</div>
</transition>
</li>
<li v-if="data">
<a :href="data.languageLink.linkUrl" class="m-globe" :aria-label="data.languageLink.linkText">
<i class="material-icons">{{data.languageLink.linkIcon}}</i>
<strong class="d-none d-md-block">
{{data.languageLink.linkText}}
</strong>
</a>
</li>
</ul>
</nav>
<nav class="row m-nav main-navigation " v-if="data">
<div class="col-4 align-self-center m-left">
<a class="m-link m-hamburger" href="javascript:void(0);" @click="menuToggle" :aria-label="data.menuButton.text">
<i class="material-icons">{{data.menuButton.icon}}</i>
<span>{{data.menuButton.text}}</span>
</a>
<a href="javascript:void(0)" :aria-label="data.searchButton.text" @click="searchToggle" v-if="data.searchButton.icon && data.searchButton.text" class="m-link m-search d-xs-flex d-md-none">
<i class="material-icons">{{data.searchButton.icon}}</i>
<span>
{{data.searchButton.text}}
</span>
</a>
</div>
<transition name="fade" mode="out-in">
<menu-popup :activeLinks="activeItems" :theMenuTwo="menuTwo" :theMenuThree="menuThree" :theMenuFour="menuFour" :subsite="subsiteObj" class="d-none d-md-flex w-100" :url="url" :loading="menuLoading" :items="menuItems" @closePopup="menuToggle" v-if="userWantsToOpenMenu" />
</transition>
<div class="col-4 align-self-center m-mid text-center">
<a class="navbar-brand" :href="data.logo.logoLinkUrl" :title="data.logo.logoAltText" :aria-label="data.logo.logoAltText">
<img :src="data.logo.logoImageUrl" :alt="data.logo.logoAltText" :width="'170'" class="d-inline-block align-top" />
</a>
</div>
<div class="col-4 align-self-center m-right">
<a href="javascript:void(0);" :aria-label="data.searchButton.text" @click="searchToggle" v-if="data.searchButton.icon && data.searchButton.text" class="m-link m-search d-none d-md-flex">
<i class="material-icons">{{data.searchButton.icon}}</i>
<span>
{{data.searchButton.text}}
</span>
</a>
<a href="javascript:void(0);" :aria-label="data.toolsButton.text" @click="toolsToggle" v-if="data.isLoggedIn && data.toolsButton.icon && data.toolsButton.text" class="m-link m-tool">
<i class="material-icons">{{data.toolsButton.icon}}</i>
<span>
{{data.toolsButton.text}}
</span>
</a>
<a :href="data.loginLink.linkUrl" :aria-label="data.loginLink.linkText" v-if="!data.isLoggedIn && data.loginLink.linkIcon && data.loginLink.linkText && data.loginLink.linkUrl" class="m-link m-user">
<i class="material-icons">{{data.loginLink.linkIcon}}</i>
<span>
{{data.loginLink.linkText}}
</span>
</a>
<button :aria-label="data.userButton.initials" class="user-button" @click="toggleUserMenu" v-if="data.isLoggedIn && data.userButton && data.userButton.color && data.userButton.initials && data.userButton.url" :class="data.userButton.color">
{{data.userButton.initials}}
</button>
<transition name="slide-fade" mode="out-in">
<tools-popup @closePopup="toolsToggle" v-if="userWantsToOpenTools && data.toolsNav.length > 0"
:navigation="toolsNav" />
</transition>
<transition name="slide-fade" mode="out-in">
<user-popup @closePopup="toggleUserMenu" :userNavItems="userNav"
v-if="userNav && userWantsToOpenUserMenu " />
</transition>
</div>
<transition name="fade" mode="out-in">
<search-popup :placeholderText="data.searchButton.placeholder" :url="searchUrl" @closePopup="searchToggle" v-if="userWantsToSearch" />
</transition>
</nav>
<template v-if="userWantsToSearchMobile">
<div class="row mobile--search--top " v-if="userWantsToSearchMobile">
<div class="col-12">
<div class="d-flex flex-row align-items-center">
<form @submit="mobileSubmit" class="flex-grow-1">
<input autofocus ref="searchnotscrolled" v-model="mobileQuery" @input="queryAutoComplete($event.target.value)" placeholder="Skriv in sökord" type="text">
</form>
<button class="close--mobile--search--button" @click="clearMobileSearch">
<span class="material-icons">clear</span>
</button>
</div>
</div>
</div>
<div :class="{ 'navbar--hidden': !showNavbar }" class="mobile--search--results row" v-if="mobileSearchHits.length > 0 && userWantsToSearchMobile && mobileQuery.length > 2">
<div class="w-100">
<ul class="list-unstyled mb-0">
<a :key="item.Query" :aria-label="item.Query" v-for="(item, index) in mobileSearchHits" :href="'/sok/?=&querytext='+item.Query">{{item.Query | capitalize}}</a>
</ul>
</div>
</div>
</template>
<transition name="fade" mode="out-in">
<menu-popup-mobile :goBackText="goBackText" :loadingText="data.menuButton.loadingText" :activeLinks="activeItems" :theMenuTwo="menuTwo" :theMenuThree="menuThree"
:theMenuFour="menuFour" :subsite="subsiteObj" :url="url" :loading="menuLoading"
:items="menuItems" @closePopup="menuMobileToggle" v-if="userWantsToOpenMenuMobile" />
</transition>
</header>
`
});
Vue.component("search-popup", {
data() {
return {
query: "",
hits: "",
loading: false
};
},
props: ["url", "placeholderText"],
filters: {
capitalize: function (value) {
if (!value) return "";
value = value.toString();
return value.charAt(0).toUpperCase() + value.slice(1);
}
},
methods: {
closeEvent() {
this.$emit("closePopup");
},
submitQuery: function (e) {
e.preventDefault();
if (this.query.length > 0) {
window.location.href = `/sok/?=&querytext=${this.query}`;
}
},
async queryAutoComplete(data) {
if (typeof data === "string") {
if (data.length >= 2) {
this.loading = true;
try {
const response = await axios.get(this.url + data + "?size=5");
if (response.data.Hits) {
this.hits = response.data.Hits;
}
this.loading = false;
} catch (error) { }
} else {
this.hits = "";
}
}
}
},
template: `
<div class="d-flex flex-column m-search-popup w-100" >
<form class="search--popup d-flex flex-row align-items-center" @submit="submitQuery">
<input autofocus @input="queryAutoComplete($event.target.value)" @change="queryAutoComplete($event)" v-model="query" :placeholder="placeholderText ? placeholderText : 'Vad letar du efter?'" />
<div class="search--popup--btn--container hideonmobile">
<button aria-label="Sök" type="submit">
<span class="material-icons">search</span>
</button>
</div>
<div class="stroke-container">
<div class="stroke"></div>
</div>
<div class="search--popup--btn--container ">
<button aria-label="Stäng sök" type="button" @click="closeEvent">
<span class="material-icons">clear</span>
</button>
</div>
</form>
<transition name="fade" mode="out-in">
<div class="d-flex align-items-center flex-column hits--container" v-if="hits">
<transition name="fade" mode="out-in">
<div key="1" v-if="loading" class="d-flex flex-row align-items-center pt-2 pb-2">
<vloading :height="32" :width="32" :color="'#404040'" :is-full-page="false" :active.sync="loading"></vloading>
</div>
<ul key="2" v-else class="list-unstyled mb-0">
<a :key="item.Query" :aria-label="item.Query" v-for="(item, index) in hits" :href="'/sok/?=&querytext='+item.Query">
{{item.Query | capitalize}}
</a>
</ul>
</transition>
</div>
</transition>
</div>
`
});
Vue.component("tools-popup", {
props: ["navigation"],
methods: {
closeEvent() {
this.$emit("closePopup");
}
},
mounted() {
console.log({ "navigation": this.navigation })
},
computed: {
orderToolsAlphabetical: function () {
return this.navigation;
}
},
template: `
<div class="tools--popup d-flex flex-column">
<div class="d-flex w-100 flex-row justify-content-end">
<button aria-label="Stäng verktyg" @click="closeEvent">
<span class="material-icons">clear</span>
</button>
</div>
<ul class="d-flex list-unstyled flex-row flex-wrap justify-content-between tools--popup--ul">
<li v-for="(i, index) in orderToolsAlphabetical" :key="index" class="tools-li d-flex flex-row align-items-center justify-content-center">
<a target="_blank" :href="i.linkUrl" :aria-label="i.linkText" class="tool-item d-flex flex-column justify-content-start" :class="i.linkCustomClass">
<i class="fa" :class="i.linkIcon"></i>
<span>
{{i.linkText}}
</span>
</a>
</li>
</ul>
</div>
`
});
Vue.component("user-popup", {
props: ["userNavItems"],
data() {
return {
openFavorites: false,
favs: []
};
},
methods: {
closeEvent() {
this.$emit("closePopup");
}
},
template: `
<div class="user--popup d-flex flex-column">
<div class="d-flex flex-row justify-content-end">
<transition name="slide-fade-back" mode="out-in">
<button aria-label="Öppna favoriter" class="btn-close d-flex flex-row align-items-center" @click="browseFavorites" v-if="this.openFavorites">
<span class="material-icons back-btn">arrow_back_ios</span>
</button>
</transition>
<button aria-label="Stäng meny" class="ml-auto btn-close" @click="closeEvent">
<span class="material-icons">clear</span>
</button>
</div>
<transition name="slide-fade" mode="out-in">
<ul key="1" class="mb-0 d-flex list-unstyled flex-column" v-if="this.userNavItems && !this.openFavorites">
<li class="user-li" v-if="this.userNavItems.personalSiteLink">
<a :aria-label="this.userNavItems.personalSiteLink.linkText" :href="this.userNavItems.personalSiteLink.linkUrl" class="favorites--links">
<i class="material-icons">{{this.userNavItems.personalSiteLink.linkIcon}}</i>
<span>
{{this.userNavItems.personalSiteLink.linkText}}
</span>
</a>
</li>
<li class="user-li" v-if="this.userNavItems.settingsLink" >
<a :aria-label="this.userNavItems.settingsLink.linkText" :href="this.userNavItems.settingsLink.linkUrl" class="favorites--links">
<i class="material-icons">{{this.userNavItems.settingsLink.linkIcon}}</i>
<span>
{{this.userNavItems.settingsLink.linkText}}
</span>
</a>
</li>
<li class="user-li" >
<a :aria-label="this.userNavItems.languageLink.linkText" :href="this.userNavItems.languageLink.linkUrl" class="favorites--links">
<i class="material-icons">{{this.userNavItems.languageLink.linkIcon}}</i>
<span>
{{this.userNavItems.languageLink.linkText}}
</span>
</a>
</li>
<li class="user-li mt-4" >
<a :aria-label="this.userNavItems.logoutLink.linkText" :href="this.userNavItems.logoutLink.linkUrl" class="button-default text-white">
{{this.userNavItems.logoutLink.linkText}}
</a>
</li>
</ul>
</transition>
</div>
`
});
Vue.component("menu-popup", {
props: [
"items",
"loading",
"url",
"subsite",
"theMenuTwo",
"theMenuThree",
"theMenuFour",
"activeLinks",
"goBackText",
"loadingText"
],
data() {
return {
menuOne: [],
menuTwo: [],
menuThree: [],
menuFour: [],
activeItems: [],
loadChildrens: false
};
},
mounted() {
if (this.activeLinks) {
this.activeItems = this.activeLinks;
}
if (this.theMenuTwo) {
this.menuTwo = this.theMenuTwo;
}
if (this.theMenuThree) {
this.menuThree = this.theMenuThree;
}
if (this.theMenuFour) {
this.menuFour = this.theMenuFour;
}
},
methods: {
closeEvent() {
this.$emit("closePopup");
},
async fetchSecondMenu(pageId) {
$('#expandable-menu').animate({ scrollTop: (0) }, 'slow');
try {
this.loadChildrens = true;
this.menuTwo = [];
this.menuThree = [];
this.menuFour = [];
const response = await axios.post(this.url, {
id: pageId
})
if (response.data.menuOne && response.data.menuTwo) {
this.activeItems = response.data.activePath;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
}
if (response.data.menuOne && response.data.menuTwo && response.data.menuThree) {
this.activeItems = response.data.activePath;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
}
if (
response.data.menuOne &&
response.data.menuTwo &&
response.data.menuThree &&
response.data.menuFour
) {
this.activeItems = response.data.activePath;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
this.menuFour = response.data.menuFour;
}
this.loadChildrens = false;
} catch (error) {
this.loadChildrens = false;
}
},
async fetchThirdMenu(pageId) {
$('#expandable-menu').animate({ scrollTop: (0) }, 'slow');
try {
this.loadChildrens = true;
const response = await axios.post(this.url, {
id: pageId
})
this.activeItems = response.data.activePath;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
this.menuFour = [];
this.loadChildrens = false;
} catch (error) {
this.loadChildrens = false;
}
},
async fetchFourthMenu(pageId) {
$('#expandable-menu').animate({ scrollTop: (0) }, 'slow');
try {
this.loadChildrens = true;
const response = await axios.post(this.url, {
id: pageId
})
this.activeItems = response.data.activePath;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
this.menuFour = response.data.menuFour;
this.loadChildrens = false;
} catch (error) {
this.loadChildrens = false;
}
}
},
template: `
<div class="menu--popup " @click="closeEvent" >
<div class="menu--container vld-parent w-100 d-flex flex-column" @click.stop>
<vloading :color="'#404040'" :is-full-page="false" :active.sync="loadChildrens"></vloading>
<div class="d-flex w-100 flex-row">
<button @click="closeEvent" class="close--button">
<span class="material-icons">clear</span>
</button>
</div>
<transition name="fade" mode="out-in">
<div key="1" id="expandable-menu" class="menu--navs d-flex w-100 flex-row" v-if="!loading && items">
<ul class="list-unstyled menu--navs-col menu-list column-one">
<template v-if="subsite && subsite.subsite">
<li class="menu-item d-flex flex-row align-items-center root-link" v-if="subsite.subsiteBackText && subsite.subsiteBackUrl">
<span class="material-icons icon-back">keyboard_arrow_left</span>
<a :aria-label="subsite.subsiteBackText" class="menu-link menu-back d-flex flex-row align-items-center" :href="subsite.subsiteBackUrl">
{{subsite.subsiteBackText}}
</a>
</li>
<li class="menu-item d-flex flex-row align-items-center active root-link" v-if="subsite.subsiteTitle">
<a :aria-label="subsite.subsiteTitle" class="menu-link mb-0" :href="subsite.subSiteRootUrl">
{{subsite.subsiteTitle}}
</a>
</li>
</template>
<template v-for="(item, index) in items" >
<button :aria-label="item.displayName" @click="fetchSecondMenu(item.pageId)" :key="index" v-if="item.hasChildren && !item.navigate" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center justify-content-between" >
<p class="menu-link mb-0" >{{item.displayName}}</p>
<span v-if="item.hasChildren" class="material-icons">keyboard_arrow_right</span>
</button>
<a :aria-label="item.displayName" :href="item.url" :key="index" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center" v-else>
<span class="menu-link" >{{item.displayName}}</span>
</a>
</template>
</ul>
<transition name="fade" mode="out-in">
<ul class="list-unstyled menu--navs-col menu-list column-two" v-if="menuTwo.length > 0">
<template v-for="(item,index) in menuTwo" >
<button :aria-label="item.displayName" @click="fetchThirdMenu(item.pageId) " :key="index" v-if="item.hasChildren && !item.navigate" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center justify-content-between" >
<p class="menu-link mb-0" >{{item.displayName}}</p>
<span v-if="item.hasChildren" class="material-icons">keyboard_arrow_right</span>
</button>
<a :aria-label="item.displayName" :href="item.url" :key="index" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center" v-else>
<span class="menu-link" >{{item.displayName}}</span>
</a>
</template>
</ul>
</transition>
<transition name="fade" mode="out-in">
<ul class="list-unstyled menu--navs-col menu-list column-three" v-if="menuThree.length > 0">
<template v-for="(item,index) in menuThree" >
<button :aria-label="item.displayName" @click="fetchFourthMenu(item.pageId)" :key="index" v-if="item.hasChildren && !item.navigate" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center justify-content-between" >
<p class="menu-link mb-0" >{{item.displayName}}</p>
<span v-if="item.hasChildren" class="material-icons">keyboard_arrow_right</span>
</button>
<a :aria-label="item.displayName" :href="item.url" :key="index" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center" v-else>
<span class="menu-link" >{{item.displayName}}</span>
</a>
</template>
</ul>
</transition>
<transition name="fade" mode="out-in">
<ul class="list-unstyled menu--navs-col menu-list column-three" v-if="menuFour.length > 0">
<a :aria-label="item.displayName" :href="item.url" v-for="(item,index) in menuFour" :key="index" :class="{'active-blue': activeItems.includes(item.pageId) && !item.isParent}" class="menu-item d-flex flex-row align-items-center" >
<span class="menu-link" >{{item.displayName}}</span>
</a>
</ul>
</transition>
</div>
</transition>
</div>
</div>
`
});
Vue.component("menu-popup-mobile", {
props: [
"items",
"loading",
"url",
"subsite",
"theMenuTwo",
"theMenuThree",
"theMenuFour",
"activeLinks",
"goBackText",
"loadingText"
],
data() {
return {
menuOne: [],
menuTwo: [],
menuThree: [],
menuFour: [],
activeItems: [],
currentIndex: 1,
selectedPageId: 0,
loadChildrens: false,
load: this.loading
};
},
created() {
if (this.activeLinks !== undefined) {
this.currentIndex = this.activeLinks.length
}
},
mounted() {
if (this.activeLinks !== undefined) {
this.activeItems = this.activeLinks;
this.selectedPageId = this.activeItems[Object.keys(this.activeItems).length - 1];
}
if (this.theMenuTwo) {
this.menuTwo = this.theMenuTwo;
}
if (this.theMenuThree) {
this.menuThree = this.theMenuThree;
}
if (this.theMenuFour) {
this.menuFour = this.theMenuFour;
}
console.log(this.activeItems, this.selectedPageId, this.currentIndex);
console.log(this.menuTwo, this.menuThree, this.menuFour);
},
methods: {
closeEvent() {
this.$emit("closePopup");
},
goBack() {
this.currentIndex--;
},
async fetchSecondMenu(pageId) {
try {
this.loadChildrens = true;
this.menuTwo = [];
this.menuThree = [];
this.menuFour = [];
const response = await axios.post(this.url, {
id: pageId
})
if (response.data.menuOne && response.data.menuTwo) {
this.currentIndex++;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
}
if (response.data.menuOne && response.data.menuTwo && response.data.menuThree) {
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
}
if (
response.data.menuOne &&
response.data.menuTwo &&
response.data.menuThree &&
response.data.menuFour
) {
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
this.menuFour = response.data.menuFour;
}
this.loadChildrens = false;
} catch (error) { this.loadChildrens = false; }
},
async fetchThirdMenu(pageId) {
try {
this.loadChildrens = true;
const response = await axios.post(this.url, {
id: pageId
})
this.currentIndex++;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
this.loadChildrens = false;
} catch (error) { this.loadChildrens = false; }
},
async fetchFourthMenu(pageId) {
try {
this.loadChildrens = true;
const response = await axios.post(this.url, {
id: pageId
})
this.currentIndex++;
this.menuOne = response.data.menuOne;
this.menuTwo = response.data.menuTwo;
this.menuThree = response.data.menuThree;
this.menuFour = response.data.menuFour;
this.loadChildrens = false;
} catch (error) { this.loadChildrens = false; }
}
},
template: `
<div class="menu--popup--mobile vld-parent" @click="closeEvent" >
<div class="menu--container d-flex flex-column" @click.stop>
<vloading :color="'#404040'" :is-full-page="false" :active.sync="loadChildrens"></vloading>
<div class="d-flex w-100 flex-row close-mobile">
<button aria-label="Stäng meny" @click="closeEvent" class="btn-transparent">
<span class="material-icons">clear</span>
</button>
</div>
<transition name="fade" mode="out-in">
<div key="1" class="menu--navs d-flex w-100 flex-row" v-if="!load && this.items">
<transition name="slide-mobile" mode="out-in">
<ul key="1" class="list-unstyled menu--navs-col menu-list column-one" v-if="currentIndex < 2">
<template v-if="this.subsite && this.subsite.subsite">
<li class="menu-item d-flex flex-row align-items-center " v-if="this.subsite.subsiteBackText && this.subsite.subsiteBackUrl">
<span class="material-icons icon-back">keyboard_arrow_left</span>
<a :aria-label="this.subsite.subsiteBackText" class="menu-link menu-back d-flex flex-row align-items-center" :href="this.subsite.subsiteBackUrl">
{{this.subsite.subsiteBackText}}
</a>
</li>
<li class="menu-item d-flex flex-row align-items-center" v-if="this.subsite.subsiteTitle">
<a :aria-label="this.subsite.subsiteTitle" class="menu-link mb-0" :href="this.subsite.subSiteRootUrl">
{{this.subsite.subsiteTitle}}
</a>
</li>
</template>
<template v-for="(item, index) in this.items" >
<li @click="fetchSecondMenu(item.pageId)" :key="index" v-if="item.hasChildren && !item.navigate" :class="{'active-blue': activeItems.filter(e => e === item.pageId).length > 0}" class="menu-item d-flex flex-row align-items-center justify-content-between" >
<p class="menu-link mb-0" >{{item.displayName}}</p>
<span v-if="item.hasChildren" class="material-icons">keyboard_arrow_right</span>
</li>
<a :aria-label="item.displayName" :href="item.url" :key="index" :class="{active: selectedPageId == item.pageId}" class="menu-item d-flex flex-row align-items-center" v-else>
<span class="menu-link" >{{item.displayName}}</span>
</a>
</template>
</ul>
<ul key="2" class="list-unstyled menu--navs-col menu-list column-two" v-if="this.menuTwo.length > 0 && currentIndex == 2">
<li @click="goBack()" class="menu-item d-flex flex-row align-items-center " >
<span class="material-icons ml-2 icon-back">keyboard_arrow_left</span>
<a :aria-label="this.goBackText" class="menu-link menu-back d-flex flex-row align-items-center" >
{{this.goBackText}}
</a>
</li>
<template v-for="(item,index) in this.menuTwo" >
<li @click="fetchThirdMenu(item.pageId)" :key="index" v-if="item.hasChildren && !item.navigate" :class="{'active-blue': activeItems.filter(e => e === item.pageId).length > 0}" class="menu-item d-flex flex-row align-items-center justify-content-between" >
<p class="menu-link mb-0" >{{item.displayName}}</p>
<span v-if="item.hasChildren" class="material-icons">keyboard_arrow_right</span>
</li>
<a :aria-label="item.displayName" :href="item.url" :key="index" :class="{active: selectedPageId == item.pageId}" class="menu-item d-flex flex-row align-items-center" v-else>
<span class="menu-link" >{{item.displayName}}</span>
</a>
</template>
</ul>
<ul key="3" class="list-unstyled menu--navs-col menu-list column-three" v-if="this.menuThree.length > 0 && currentIndex == 3">
<li @click="goBack()" class="menu-item d-flex flex-row align-items-center " >
<span class="material-icons ml-2 icon-back">keyboard_arrow_left</span>
<a :aria-label="this.goBackText" class="menu-link menu-back d-flex flex-row align-items-center" >
{{this.goBackText}}
</a>
</li>
<template v-for="(item,index) in this.menuThree" >
<li @click="fetchFourthMenu(item.pageId)" :key="index" v-if="item.hasChildren && !item.navigate" :class="{'active-blue': activeItems.filter(e => e === item.pageId).length > 0}" class="menu-item d-flex flex-row align-items-center justify-content-between" >
<p class="menu-link mb-0" >{{item.displayName}}</p>
<span v-if="item.hasChildren" class="material-icons">keyboard_arrow_right</span>
</li>
<a :aria-label="item.displayName" :href="item.url" :key="index" :class="{active: selectedPageId == item.pageId}" class="menu-item d-flex flex-row align-items-center" v-else>
<span class="menu-link" >{{item.displayName}}</span>
</a>
</template>
</ul>
<ul key="4" class="list-unstyled menu--navs-col menu-list column-three" v-if="this.menuFour.length > 0 && currentIndex == 4">
<li @click="goBack()" class="menu-item d-flex flex-row align-items-center " >
<span class="material-icons ml-2 icon-back">keyboard_arrow_left</span>
<a :aria-label="this.goBackText" class="menu-link menu-back d-flex flex-row align-items-center" >
{{this.goBackText}}
</a>
</li>
<a :aria-label="item.displayName" :href="item.url" v-for="(item,index) in this.menuFour" :key="index" :class="{active: selectedPageId == item.pageId}" class="menu-item d-flex flex-row align-items-center" >
<span class="menu-link" >{{item.displayName}}</span>
</a>
</ul>
</transition>
</div>
<div class="menu--navs d-flex justify-content-center align-items-center w-100 flex-row" key="2" v-else>
{{this.loadingText}}
</div>
</transition>
</div>
</div>
`
});
.c-pointer{
cursor: pointer;
}
.close-mobile{
min-height: 60px;
position: absolute;
background: #ffffffeb;
}
body {
[v-cloak] {
display: none;
}
.main-navigation {
background: #fff;
position: static;
border-bottom: 1px solid $grey-border;
}
&.sticky {
padding-top: 175px;
@media only screen and (max-width: 1025px) {
padding-top: 154px;
}
@include media-breakpoint-down(sm) {
padding-top: 125px;
}
.main-navigation{
position: fixed;
top:0;
left:15px;
right:15px;
z-index:999;
}
}
}
#epi-quickNavigator{
right: -25px;
top: inherit;
bottom: 30%;
transform: rotate(-90deg);
li{
overflow: hidden;
}
&.epi-quickNavigator-dropdown-arrow{
display: none;
}
}
#epi-quickNavigator .epi-quickNavigator-dropdown-arrow {
display: none !important;
}
.m-header {
transition: all 0.3s ease;
.close--mobile--search--button{
display: flex;
align-items: center;
justify-content: center;
margin: 0 0 0 10px;
border: none;
padding: 5px;
background: transparent;
border-radius: 50%;
transition: all 0.3s ease;
cursor: pointer;
&:hover{
background: $grey-hover;
}
&:active{
opacity: 0.6;
}
}
.slide-enter-active {
transition-duration: 0.6s;
transition-timing-function: ease-in;
}
.slide-leave-active {
transition-duration: 0.6s;
transition-timing-function: ease-in;
}
.slide-enter-to, .slide-leave {
max-height: $md-space;
overflow: hidden;
}
.slide-enter, .slide-leave-to {
overflow: hidden;
max-height: 0;
}
#fav-navigation {
background: white;
border-bottom: 1px solid $grey-border;
height: 50px;
display: flex;
align-items: center;
.my-courses {
.material-icons {
color: #000;
}
}
.favorites {
.material-icons {
color: $orange;
}
}
&>ul {
margin: 0;
padding: 0;
list-style: none;
width: 100%;
text-align: right;
display: flex;
justify-content: flex-end;
&>li {
margin: 0;
padding: 0;
display: block;
margin-right: 35px;
@include media-breakpoint-down(sm) {
margin-right: 20px;
}
&:last-child {
margin-right: 50px;
@include media-breakpoint-down(lg) {
margin-right: 20px;
}
@include media-breakpoint-down(md) {
margin-right: 16px;
}
}
a {
font-size: 16px;
color: #000;
font-family: "Lato Bold";
display: flex;
text-decoration: none !important;
.material-icons {
margin-right: 10px;
margin-top: 1px;
text-decoration: none !important;
@include media-breakpoint-down(sm) {
margin-right: 5px;
}
}
&:hover {
.material-icons {
text-decoration: none;
}
}
}
}
}
#fav-list {
padding-top: 30px;
padding-bottom: 30px;
box-shadow: $box-shadow;
min-width: 250px;
max-width: 320px;
.favorite-links{
overflow-y: auto;
height: 100%;
padding-bottom: 150px;
}
.fav-head {
font-size: 18px;
font-family: "Lato Bold";
padding-left: 40px;
margin-bottom: 30px;
}
.fav-close {
position: absolute;
right: 30px;
top: 33px;
width: 22px;
height: 22px;
opacity: 1;
&:hover {
opacity: 0.8;
}
&:before, &:after {
position: absolute;
left: 10px;
content: ' ';
height: 22px;
width: 2px;
background-color: #404040;
}
&:before {
transform: rotate(45deg);
}
&:after {
transform: rotate(-45deg);
}
}
position: fixed;
right: 0;
top: 0;
background: #fff;
z-index: 9999;
text-align: left;
height: 100vh;
.favorite-link {
list-style: none;
border-bottom: 1px solid $light-grey;
padding: 10px 40px;
position: relative;
.pagetitle {
padding-right: 15px;
}
a {
color: #333;
}
.removeFavIcon{
display: none;
position: absolute;
right: 30px;
top: 5px;
font-size: 20px;
color: #333;
opacity: 0.6;
top: 50%;
margin-top: -9px;
&:hover {
opacity: 1;
}
}
.sortFavIcon {
display: none;
position: absolute;
font-size: 20px;
color: #333;
opacity: 0.8;
top: 50%;
margin-top: -9px;
left: 12px;
cursor: pointer;
}
&:hover {
.removeFavIcon,.sortFavIcon {
display: block;
}
}
}
}
}
@include media-breakpoint-down(sm) {
transition: all 0.3s ease;
.mb-nav {
padding: 15px 0 10px;
}
&.navbar--shrink {
height: inherit;
}
}
input[type=text] {
padding: 0px;
border: none;
border-radius: 25px;
color: rgba(64, 64, 64, 0.7);
background-color: transparent;
width: 100%;
}
.mobile--search--top{
@media only screen and (min-width: 1025px) {
display: none !important;
}
padding-top: 10px;
padding-bottom: 10px;
border-top: 1px solid $grey-border;
input{
padding: 5px;
border: none;
border-radius: 25px;
color: rgba(64, 64, 64, 0.7);
background-color: transparent;
width: 100%;
background: $light-grey;
padding-left: 15px;
transition: all 0.3s ease;
&:hover{
background: $grey-hover;
}
&:focus{
background: $grey-hover;
}
}
}
.mb-nav {
flex: 1;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
@media only screen and (min-width: 1025px) {
display: none !important;
}
.m-left{
padding-left: 0px;
flex: 1;
}
.m-mid{
max-width:156px;
flex: 1;
}
.m-right{
padding-right: 0px;
flex: 1;
}
}
.user-button {
cursor: pointer;
border: none;
display: flex;
height: 41px;
text-transform: uppercase;
width: 41px;
color: #fff;
border-radius: 50%;
flex-direction: row;
align-items: center;
justify-content: center;
@include media-breakpoint-down(md) {
height: 34px;
width: 34px;
font-size: 16px;
line-height: 16px;
}
&.pink {
background-color: $user-pink;
}
&.purple {
background-color: $user-purple;
}
&.dark-green {
background-color: $user-dark-green;
}
&.dark-blue {
background-color: $user-dark-blue;
}
&.orange {
background-color: $user-orange;
}
&.light-blue {
background-color: $user-light-blue;
}
&.green {
background-color: $user-green;
}
&.red {
background-color: $user-red;
}
&:hover {
text-decoration: none;
}
}
.m-nav {
height: 125px;
position: relative;
@include media-breakpoint-down(sm) {
padding-top: 17px;
height: auto;
padding-bottom: 14px;
}
.m-left{
padding-left: 50px;
@include media-breakpoint-down(md) {
padding-left: 40px;
}
@include media-breakpoint-down(sm) {
padding: 0;
padding-left: 16px;
}
}
.m-right{
padding-right: 50px;
@include media-breakpoint-down(md) {
padding-right: 16px;
}
@include media-breakpoint-down(sm) {
padding: 0;
padding-right: 16px;
}
}
.m-mid {
@include media-breakpoint-down(sm) {
padding: 0;
}
}
.navbar-brand {
margin: 0;
padding: 0;
img {
width: 170px;
@include media-breakpoint-down(md) {
width: 156px;
}
}
}
nav {
align-items: center;
}
.m-search-popup {
box-shadow: 0px 3px 30px rgba(0, 0, 0, 0.15);
position: absolute;
left: 0;
right: 0;
top: 20px;
max-width: 1140px;
z-index: 9999;
background: white;
margin: 0 auto;
transition: all 0.3s ease;
@include media-breakpoint-down(sm) {
box-shadow: 0px 3px 30px rgba(0,0,0,0.15);
position: initial;
max-width: 100%;
z-index: 9999;
background: white;
margin: 15px 15px 0px 15px;
}
.hits--container{
max-height: 250px;
overflow: hidden;
overflow-y: auto;
@include media-breakpoint-down(sm) {
max-height: 130px;
overflow: hidden;
overflow-y: auto;
}
}
.search--popup {
min-height: 86px;
margin-bottom: 0px;
transition: all 0.3s ease;
@include media-breakpoint-down(sm) {
min-height: 50px;
}
}
.stroke-container{
display: flex;
flex-direction: column;
align-items: center;
justify-items: center;
.stroke{
width: 1px;
height: 46px;
background: #e5e5e5;
}
}
.search--popup--btn--container {
min-height: 86px;
display: flex;
align-items: center;
transition: all 0.3s ease;
@include media-breakpoint-down(sm) {
min-height: 50px;
}
&.hideonmobile{
@include media-breakpoint-down(sm) {
display: none;
}
}
&.has--border {
height: 46px;
}
button {
border: none;
height: 100%;
height: 86px;
width: 86px;
cursor: pointer;
background: transparent;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
@include media-breakpoint-down(sm) {
height: 64px;
width: 64px;
}
span {
transition: all 0.3s ease;
font-size: 32px;
}
&:hover {
span {
color: rgba($color: $dark-grey, $alpha: 0.6);
}
}
}
}
input {
height: 100%;
width: 100%;
border: none;
padding: 31px 20px 31px 20px;
text-overflow: ellipsis;
font-size: 20px;
line-height: 24px;
transition: all 0.3s ease;
@include media-breakpoint-down(sm) {
padding: 20px !important;
height: inherit;
font-size: 18px !important;
line-height: 24px !important;
&::placeholder {
color: $dark-grey;
opacity: 0.6;
font-size: 18px !important;
line-height: 24px !important;
}
}
&::placeholder {
color: $dark-grey;
opacity: 0.6;
font-size: 20px;
line-height: 24px;
}
}
}
}
.hits--container {
background: white;
ul {
width: 100%;
a {
display: flex;
flex-direction: row;
padding-left: 25px;
padding-right: 25px;
height: 50px;
align-items: center;
color: $dark-grey;
font-size: 16px;
line-height: 19px;
&:hover {
background-color: #e7f1f8;
}
&:focus {
background-color: #e7f1f8;
}
}
}
}
.m-left {
padding-left: $md-space;
position: relative;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
transition: all 0.3s ease;
padding-left: $xs-space;
@include media-breakpoint-down(sm) {
width: 25%;
align-self: baseline !important;
}
}
.m-mid {
position: relative;
@include media-breakpoint-down(sm) {
padding-top: 0px;
width: 50%;
display: flex;
justify-content: center;
align-items: start;
img {
width: 156px;
margin-top: -5px;
}
}
}
.m-right {
position: relative;
padding-right: $md-space;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
transition: all 0.3s ease;
padding-right: $xs-space;
@include media-breakpoint-down(sm) {
width: 25%;
align-self: baseline !important;
}
}
.m-link {
display: flex;
flex-direction: row;
align-items: center;
text-decoration: none;
margin-right: $md-space;
transition: all 0.3s ease;
&:last-child {
margin-right: 0px;
}
@include media-breakpoint-down(lg) {
margin-right: 18px;
}
@include media-breakpoint-down(md) {
margin-right: 18px;
}
span {
font-size: 18px;
line-height: 22px;
font-family: "Lato Bold";
font-weight: inherit;
margin-left: 5px;
@include media-breakpoint-down(sm) {
display: none;
}
}
&:hover {
span {
text-decoration: underline;
}
}
&.m-hamburger {
i {
font-size: 32px;
line-height: 32px;
@include media-breakpoint-down(md) {
font-size: 28px;
line-height: 28px;
}
@include media-breakpoint-down(xs) {
font-size: 28px;
line-height: 28px;
}
}
}
&.m-tool {
@media screen and (max-width: 1200px) {
span{
display: none;
}
}
i {
font-size: 25px;
line-height: 25px;
@include media-breakpoint-down(md) {
font-size: 24px;
line-height: 24px;
}
@include media-breakpoint-down(xs) {
font-size: 24px;
line-height: 24px;
}
}
}
&.m-user {
i {
font-size: 32px;
line-height: 32px;
@include media-breakpoint-down(md) {
font-size: 28px;
line-height: 28px;
}
}
}
&.m-globe {
i {
font-size: 25px;
line-height: 25px;
@include media-breakpoint-down(md) {
font-size: 24px;
line-height: 24px;
}
}
}
&.m-search {
@media screen and (max-width: 1200px) {
span{
display: none;
}
}
i {
font-size: 32px;
line-height: 32px;
@include media-breakpoint-down(md) {
font-size: 28px;
line-height: 28px;
}
}
}
}
input[type="text"] {
padding: 0px;
border: none;
border-radius: 0px;
background-color: transparent;
}
&.navbar--hidden {
opacity: 1;
}
.material-icons {
&.active {
color: $blue;
}
}
.user--button {
border: none;
display: flex;
height: 34px;
width: 34px;
margin-left: 5px;
font-size: 16px;
color: #fff;
border-radius: 500px;
flex-direction: row;
align-items: center;
justify-content: center;
&.pink {
background-color: $user-pink;
}
&.purple {
background-color: $user-purple;
}
&.dark-green {
background-color: $user-dark-green;
}
&.dark-blue {
background-color: $user-dark-blue;
}
&.orange {
background-color: $user-orange;
}
&.light-blue {
background-color: $user-light-blue;
}
&.green {
background-color: $user-green;
}
&.red {
background-color: $user-red;
}
&:hover {
text-decoration: none;
}
}
}
.btn-transparent {
border: none;
background: transparent;
.material-icons {
&.m-hamburger {
font-size: 32px;
line-height: 32px;
@include media-breakpoint-down(md) {
font-size: 28px;
line-height: 28px;
}
@include media-breakpoint-down(xs) {
font-size: 28px;
line-height: 28px;
}
}
&.m-tool {
font-size: 25px;
line-height: 25px;
@include media-breakpoint-down(md) {
font-size: 24px;
line-height: 24px;
}
@include media-breakpoint-down(xs) {
font-size: 24px;
line-height: 24px;
}
}
&.m-user {
font-size: 32px;
line-height: 32px;
@include media-breakpoint-down(md) {
font-size: 28px;
line-height: 28px;
}
}
&.m-globe {
font-size: 25px;
line-height: 25px;
@include media-breakpoint-down(md) {
font-size: 24px;
line-height: 24px;
}
}
&.m-search {
@media screen and (max-width: 1200px) {
span{
display: none;
}
}
font-size: 32px;
line-height: 32px;
@include media-breakpoint-down(md) {
font-size: 28px;
line-height: 28px;
}
}
}
}
.cursor-pointer {
cursor: pointer;
}
.scrolled--searchhits {
width: 100%;
border-top: 1px solid $grey-border;
border-bottom: 1px solid $grey-border;
background: white;
max-height: 230px;
overflow: hidden;
overflow-y: auto;
@media only screen and (min-width: 1025px) {
display: none !important;
}
ul {
a {
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
padding: 0 $xs-space;
&:hover {
background: $light-blue;
}
&:focus {
background: $light-blue;
}
&:active {
background: $light-blue;
}
font-size: 16px;
line-height: 19px;
color: $dark-grey;
}
}
}
.mobile--search--results {
border-top: 1px solid #eee;
background: white;
max-height: 230px;
overflow-y: auto;
@media only screen and (min-width: 1025px) {
display: none !important;
}
ul {
a {
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
padding: 0 $xs-space;
&:hover {
background: $light-blue;
}
&:focus {
background: $light-blue;
}
&:active {
background: $light-blue;
}
font-size: 16px;
line-height: 19px;
color: $dark-grey;
}
}
&.navbar--hidden {
display: none;
}
}
.main--header {
background-color: $white;
padding: 25px 50px 25px 50px;
position: relative;
transition: all 0.3s ease;
height: 125px;
border-bottom: 1px solid $grey-border;
a.link-menu {
color: $dark-grey;
font-family: "Lato Bold";
font-weight: inherit;
font-size: 18px;
line-height: 22px;
&.link-search {
margin-right: $md-space;
@include media-breakpoint-down(md) {
text-align: center;
margin-right: $xs-space;
}
span {
font-size: 32px;
line-height: 32px;
}
}
&.link-user {
@include media-breakpoint-down(md) {
text-align: center;
margin-right: $xs-space;
}
span {
font-size: 32px;
line-height: 32px;
}
}
&.link-hamburger {
@include media-breakpoint-down(md) {
text-align: center;
margin-right: auto;
}
span {
font-size: 32px;
line-height: 32px;
}
}
&.link-tool {
margin-right: $md-space;
@include media-breakpoint-down(md) {
text-align: center;
margin-right: auto;
}
span {
font-size: 25px;
line-height: 25px;
}
}
&.link-globe {
@include media-breakpoint-down(md) {
text-align: center;
margin-right: $xs-space;
}
span {
font-size: 25px;
line-height: 25px;
}
}
span {
margin-right: 0px;
vertical-align: middle;
line-height: 1px;
text-decoration: none !important;
display: inline-block !important;
}
}
@include media-breakpoint-between(sm, md) {
padding: 25px 25px 25px 25px;
}
@include media-breakpoint-down(sm) {
padding: 16px 16px 16px 16px;
height: 105px;
&.navbar--shrink {
height: 66px;
}
}
span {
&.menu-link {
font-size: 18px;
line-height: 22px;
font-family: "Lato";
}
}
.btn-transparent {
border: none;
background: transparent;
}
.cursor-pointer {
cursor: pointer;
}
.scrolled--searchhits {
position: fixed;
top: 60px;
left: 0;
right: 0;
border-top: 1px solid $grey-border;
border-bottom: 1px solid $grey-border;
z-index: 9999;
background: white;
max-height: 230px;
overflow: hidden;
overflow-y: auto;
ul {
a {
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
padding: 0 $xs-space;
font-size: 16px;
line-height: 19px;
color: $dark-grey;
&:hover {
background: $light-blue;
}
&:focus {
background: $light-blue;
}
&:active {
background: $light-blue;
}
}
}
}
.flex-row-alternate {
display: flex;
flex-direction: row;
width: 100%;
}
.flex-col {
display: flex;
flex-direction: row;
align-items: center;
flex-basis: 100%;
flex: 1;
&.left {
justify-content: flex-start;
}
&.middle {
justify-content: center;
}
&.right {
justify-content: flex-end;
}
}
.flex-menu-button {
padding: 0;
margin: 0;
border: none;
background: transparent;
background-color: transparent;
transition: all 0.3s ease;
cursor: pointer;
display: flex;
flex-direction: row;
align-items: center;
span {
margin-right: 5px;
line-height: 1px;
}
color: $dark-grey;
font-family: "Lato Bold";
font-size: 18px;
line-height: 22px;
margin-right: 50px;
&:last-child {
margin-right: 0px;
}
&.user {
border: none;
display: flex;
padding: 11px;
color: #fff;
border-radius: 500px;
flex-direction: row;
align-items: center;
justify-content: center;
&.pink {
background-color: $user-pink;
}
&.purple {
background-color: $user-purple;
}
&.dark-green {
background-color: $user-dark-green;
}
&.dark-blue {
background-color: $user-dark-blue;
}
&.orange {
background-color: $user-orange;
}
&.light-blue {
background-color: $user-light-blue;
}
&.green {
background-color: $user-green;
}
&.red {
background-color: $user-red;
}
&:hover {
text-decoration: none;
}
}
@include media-breakpoint-between(sm, md) {
margin-right: 35px;
margin-top: 10px;
text-align: center;
flex-direction: column;
white-space: nowrap;
span {
margin-bottom: 15px;
margin-right: 0px;
}
}
}
.xs--menu {
.xs--logo {
img {
width: 156px;
}
}
}
.mobile--menu {
position: fixed;
left: 0;
right: 0;
bottom: 0;
height: 100vh;
z-index: 99999;
overflow-y: auto;
top: 0;
border-bottom: 1px solid #eee;
background: white;
padding: $xs-space;
box-shadow: $box-shadow;
ul {
width: 100%;
padding: 0 $xs-space;
li {
width: 100%;
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
padding: 0 $xs-space;
a {
font-size: 18px;
line-height: 22px;
color: $dark-grey;
}
}
}
.material-icons {
&.clear {
font-size: 28px;
line-height: 28px;
}
}
.mobile--menu--container {
display: flex;
flex-direction: column;
}
}
.mobile--search--results {
position: absolute;
left: 0;
right: 0;
top: 67px;
border-bottom: 1px solid #eee;
background: white;
max-height: 230px;
overflow: hidden;
overflow-y: auto;
ul {
li {
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
padding: 0 $xs-space;
&:hover {
background: $light-blue;
}
&:focus {
background: $light-blue;
}
&:active {
background: $light-blue;
}
a {
font-size: 16px;
line-height: 19px;
color: $dark-grey;
}
}
}
&.navbar--hidden {
display: none;
}
}
.mobile-flex-row {
box-sizing: border-box;
position: relative;
z-index: 1;
display: flex;
flex: 0 1 auto;
flex-direction: row;
&.left {
margin-top: 3px;
}
&.right {
margin-top: 5px;
}
input[type="text"] {
padding: 0px;
border: none;
margin-top: 5px;
border-radius: 0px;
background-color: transparent;
}
.flex-logo {
width: 156px;
margin-top: -4px;
max-width: inherit;
}
.material-icons {
&.active {
color: $blue;
}
&.build {
font-size: 22px;
line-height: 24px;
}
font-size: 28px;
line-height: 24px;
}
.mobile-flex-col {
flex-grow: 1;
flex-basis: 0;
max-width: 100%;
button {
padding: 0;
border: none;
background: transparent;
margin-right: 10px;
&:last-child {
margin-right: 0px;
}
}
a {
padding: 0;
margin-right: 10px;
&:last-child {
margin-right: 0px;
}
}
}
.user--button {
border: none;
display: flex;
height: 34px;
width: 34px;
margin-left: 5px;
font-size: 16px;
color: #fff;
border-radius: 500px;
flex-direction: row;
align-items: center;
justify-content: center;
&.pink {
background-color: $user-pink;
}
&.purple {
background-color: $user-purple;
}
&.dark-green {
background-color: $user-dark-green;
}
&.dark-blue {
background-color: $user-dark-blue;
}
&.orange {
background-color: $user-orange;
}
&.light-blue {
background-color: $user-light-blue;
}
&.green {
background-color: $user-green;
}
&.red {
background-color: $user-red;
}
&:hover {
text-decoration: none;
}
}
}
.nav--container--md {
.flex-logo {
height: auto;
width: 170px;
}
}
.search--popup--container {
max-width: 814px;
box-shadow: 0px 3px 30px rgba(0, 0, 0, 0.15);
position: absolute;
left: 0;
right: 0;
top: 20px;
max-width: 814px;
z-index: 9999;
background: white;
margin: 0 auto;
}
.hits--container {
background: white;
ul {
width: 100%;
li {
display: flex;
flex-direction: row;
padding-left: 25px;
padding-right: 25px;
height: 50px;
align-items: center;
&:hover {
background-color: #e7f1f8;
}
a {
color: $dark-grey;
font-size: 16px;
line-height: 19px;
}
}
}
}
.search--popup {
cursor: inherit;
background: white;
height: 86px;
display: flex;
width: 100%;
flex-direction: row;
@include media-breakpoint-down(md) {
left: 0;
right: 0;
margin: 0;
width: 100%;
}
.search--popup--btn--container {
&:last-child {
border-left: 1px solid rgba($color: $dark-grey, $alpha: 0.1);
}
&.has--border {
height: 46px;
}
button {
border: none;
height: 100%;
width: 86px;
cursor: pointer;
background: transparent;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
span {
transition: all 0.3s ease;
font-size: 32px;
}
&:hover {
span {
color: rgba($color: $dark-grey, $alpha: 0.6);
}
}
}
}
input {
height: 100%;
width: 100%;
border: none;
padding: 20px;
text-overflow: ellipsis;
font-size: 20px;
line-height: 24px;
&::placeholder {
color: $dark-grey;
opacity: 0.6;
font-size: 20px;
line-height: 24px;
}
}
}
}
.tools--popup {
position: absolute;
width: 400px;
right: 135px;
transition: all 0.3s ease;
z-index: 9999;
min-height: 363px;
background-color: white;
padding: 0 27px 20px 27px;
box-shadow: 0px 3px 30px rgba(0, 0, 0, 0.15);
top: 20px;
max-height: calc(100vh - 100px);
.tools--popup--ul{
max-height: 400px;
overflow: hidden;
overflow-y: auto;
@include media-breakpoint-down(sm) {
overflow: visible;
}
}
.simplebar {
max-height: calc(100vh - 200px);
box-sizing: border-box;
ul {
margin-right: 20px;
}
}
@include media-breakpoint-up(md) {
right: 103px;
top: -20px;
}
@include media-breakpoint-only(sm) {
right: 50px;
top: 0px;
}
@include media-breakpoint-between(sm, md) {
right: 43px;
top: 0px;
}
@include media-breakpoint-down(sm) {
left: 0;
right: 0;
top: 0px;
bottom: 0;
width: 100%;
position: fixed;
overflow-y: auto;
min-height: 100%;
}
.tools-li {
margin-right: 0px !important;
margin-bottom: 12px;
.tool-item {
font-family: "Lato";
padding-top: $xs-space;
text-align: center;
text-decoration: none;
span{
font-size: 14px;
line-height: 17px;
color: $dark-grey;
word-break: break-word;
}
&:hover{
text-decoration: none;
i{
text-decoration: none;
}
span{
text-decoration: underline;
}
}
&.tools-add-button {
background: white;
transition: all 0.3s ease;
border: 2px solid $grey-border;
&:hover {
background: $grey-hover;
}
}
i{
&.fa{
font-size: 41px;
color: $blue;
}
}
}
}
button {
border: none;
cursor: pointer;
background: transparent;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 25px 0 25px 0;
span {
transition: all 0.3s ease;
height: 32px;
width: 32px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 32px;
}
&:hover {
span {
color: rgba($color: $dark-grey, $alpha: 0.6);
}
}
}
.tool-item {
height: 99px;
width: 99px;
background: $bg-grey;
transition: background 0.3s ease;
&:hover {
background: $grey-hover;
}
}
}
.user--popup {
position: absolute;
width: 375px;
right: 37px;
transition: all 0.3s ease;
z-index: 9999;
min-height: 363px;
background-color: white;
padding: 0 27px 45px 27px;
box-shadow: 0px 3px 30px rgba(0, 0, 0, 0.15);
top: 20px;
background: white;
.favorites--links{
text-decoration: none;
span{
margin-left: 10px;
}
&:hover{
span{
text-decoration: underline;
}
i{
text-decoration: none;
}
}
}
@include media-breakpoint-up(md) {
right: 20px;
top: -20px;
}
@include media-breakpoint-only(sm) {
right: 50px;
top: 0px;
}
@include media-breakpoint-between(sm, md) {
right: 13px;
top: 0px;
}
.list-title {
font-family: "Lato Bold";
font-size: 18px;
line-height: 22px;
}
.favorite-link {
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
a {
color: $dark-grey;
font-size: 18px;
line-height: 22px;
}
}
.back-btn {
font-size: 24px !important;
}
@include media-breakpoint-down(sm) {
left: 0;
position: fixed;
width: 100%;
right: 0;
top: 0;
bottom: 0;
overflow-y: auto;
}
ul {
li {
&.user-li:not(.button-default) {
height: 50px;
padding: 0 20px;
display: flex;
align-items: center;
flex-direction: row;
background: transparent;
button {
background: transparent;
display: flex;
align-items: center;
flex-direction: row;
color: $dark-grey;
font-family: "Lato";
font-size: 18px;
line-height: 22px;
padding: 0;
margin: 0;
cursor: pointer;
border: none;
span {
margin-right: 8px;
}
}
a:not(.button-default) {
display: flex;
align-items: center;
flex-direction: row;
color: $dark-grey;
font-family: "Lato";
font-size: 18px;
line-height: 22px;
span {
margin-right: 8px;
}
}
}
}
}
button {
&.btn-close {
border: none;
cursor: pointer;
background: transparent;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 25px 0 25px 0;
span {
transition: all 0.3s ease;
height: 32px;
width: 32px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 32px;
}
&:hover {
span {
color: rgba($color: $dark-grey, $alpha: 0.6);
}
}
}
}
}
.menu--popup {
position: absolute;
background: transparent;
left: 0;
top: 0;
right: 0;
z-index: 999;
padding: 20px 30px 100% 30px;
@media only screen and (max-width: 1024px) {
display: none !important;
}
.close--button{
span{
font-size: 32px;
}
}
cursor: pointer;
.menu-item {
cursor: pointer;
text-align: left;
font-size: 18px;
line-height: 22px;
font-family: "Lato";
width: 100%;
height: inherit;
padding: 15px;
display: flex;
flex-direction: row;
align-items: center;
&:last-child{
margin-bottom: $md-space;
}
&.root-link{
padding: 0;
a{
padding: 15px;
display: block;
width: 100%;
}
}
.menu-back {
padding-left: 0px !important;
}
.material-icons {
font-size: 18px;
}
.icon-back {
font-size: 16px;
}
&.active {
background-color: $blue !important;
a {
color: white !important;
font-family: "Lato Bold";
}
&:hover {
background-color: $blue !important;
a {
background-color: $blue !important;
}
}
}
&:hover {
background-color: #e7f1f8;
}
a {
font-size: 18px;
line-height: 22px;
}
p {
font-size: 18px;
line-height: 22px;
}
}
.active-blue {
background-color: #e7f1f8;
p:not(.material-icons){
font-family: "Lato Bold";
}
span:not(.material-icons){
font-family: "Lato Bold";
}
}
.menu--container {
cursor: initial;
background: white;
box-shadow: 0px 3px 30px rgba(0, 0, 0, 0.15);
height: calc(100vh - 100px);
box-sizing: border-box;
transition: height 0.3s ease;
.simplebar {
height: calc(100vh - 100px);
box-sizing: border-box;
}
.menu--navs {
padding: 0 70px 30px 70px;
overflow-y: auto;
@include media-breakpoint-down(md) {
flex-wrap: wrap !important;
}
.menu--navs-col {
width: 25%;
@include media-breakpoint-down(md) {
width: 100%;
margin-bottom: 70px !important;
}
}
.menu-list {
margin: 0;
padding: 0;
@include media-breakpoint-down(md) {
&:nth-child(2) {
border-left: 2px solid #eee;
}
&:nth-child(3) {
border-left: 4px solid #eee;
}
&:nth-child(4) {
border-left: 6px solid #eee;
}
}
}
.menu-link {
display: block;
font-size: 18px;
color: $dark-grey;
line-height: 22px;
&.active {
background-color: $light-blue;
}
&:hover {
background-color: $light-blue;
}
}
}
button {
border: none;
cursor: pointer;
background: transparent;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 25px;
&.menu-item {
text-align: left;
font-size: 18px;
line-height: 22px;
font-family: "Lato";
width: 100%;
height: inherit;
padding: 15px;
&.active-blue {
background-color: #e7f1f8;
}
}
span {
transition: all 0.3s ease;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
&:hover {
span {
color: rgba($color: $dark-grey, $alpha: 0.6);
}
}
}
}
}
.menu--popup--mobile {
position: fixed;
background: transparent;
left: 0;
top: 0;
right: 0;
bottom: 0;
height: 100vh;
z-index: 999;
.simplebar {
max-height: calc(100vh - 50px);
box-sizing: border-box;
}
@media only screen and (min-width: 1025px) {
display: none !important;
}
cursor: pointer;
.menu-item {
cursor: pointer;
.menu-back {
padding-left: 0px !important;
}
.icon-back {
font-size: 16px;
}
&.active {
background-color: $blue !important;
color: white !important;
font-family: "Lato Bold" !important;
.menu-link {
color: white !important;
font-family: "Lato Bold" !important;
}
&:hover {
background-color: $blue !important;
}
}
&:last-child {
margin-bottom: $lg-space;
}
&:hover {
background-color: #e7f1f8;
}
a {
font-size: 18px;
line-height: 22px;
}
p {
font-size: 18px;
line-height: 22px;
}
}
.active-blue {
background-color: #e7f1f8;
}
.menu--container {
cursor: initial;
background: white;
box-shadow: 0px 3px 30px rgba(0, 0, 0, 0.15);
height: 100vh;
position: relative;
ul {
width: 100%;
li {
width: 100%;
}
}
.menu--navs {
padding: 0 33px 30px 33px;
overflow-y: auto;
margin-top: 60px;
.menu--navs-col {
width: 100%;
}
.menu-list {
margin: 0;
padding: 0;
height: 100%;
}
.menu-link {
display: block;
font-size: 18px;
padding: 20px;
color: $dark-grey;
&.active {
background-color: $light-blue;
}
&:hover {
background-color: $light-blue;
}
}
}
button {
border: none;
cursor: pointer;
background: transparent;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 16px;
span {
transition: all 0.3s ease;
height: 32px;
width: 32px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 32px;
}
&:hover {
span {
color: rgba($color: $dark-grey, $alpha: 0.6);
}
}
}
}
}
There are no notes for this item.