<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"
}
  • Content:
    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>
        `
    });
    
  • URL: /components/raw/header_vue/header_vue.js
  • Filesystem Path: src\components\01-global_components\header_vue\header_vue.js
  • Size: 44.8 KB
  • Content:
    .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);
            }
          }
        }
      }
    }
  • URL: /components/raw/header_vue/header_vue.scss
  • Filesystem Path: src\components\01-global_components\header_vue\header_vue.scss
  • Size: 43.6 KB

There are no notes for this item.