2018-12-04 07:08:40 +00:00
|
|
|
<template>
|
2020-04-13 16:02:51 +00:00
|
|
|
<div class="layout-wrapper" :class="[{'layout-news-active':newsActive}]">
|
|
|
|
<a class="layout-news" href="https://www.primefaces.org/store" target="_blank" tabindex="-1" v-if="newsActive">
|
|
|
|
<div class="layout-news-container">
|
|
|
|
<img class="layouts-news-text-image" alt="easter" src="./assets/images/topbar-easter-2020-text.png">
|
|
|
|
<img class="layouts-news-mockup-image" alt="easter" src="./assets/images/topbar-easter-2020-ultima.png">
|
|
|
|
<a href="#" class="layout-news-close" @click="hideNews">
|
|
|
|
<i class="pi pi-times"></i>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</a>
|
|
|
|
|
2020-05-07 19:13:58 +00:00
|
|
|
<app-topbar @menubutton-click="onMenuButtonClick" @change-theme="changeTheme" :theme="theme" />
|
2018-12-26 09:39:12 +00:00
|
|
|
<app-menu :active="sidebarActive" />
|
2020-05-07 19:13:58 +00:00
|
|
|
<app-configurator @change-theme="changeTheme" :theme="theme" />
|
2018-12-26 09:36:00 +00:00
|
|
|
<div :class="['layout-mask', {'layout-mask-active': sidebarActive}]" @click="onMaskClick"></div>
|
2018-12-06 18:26:49 +00:00
|
|
|
<div class="layout-content">
|
|
|
|
<router-view/>
|
2018-12-06 18:45:40 +00:00
|
|
|
<app-footer />
|
2018-12-06 18:26:49 +00:00
|
|
|
</div>
|
2019-02-08 10:55:52 +00:00
|
|
|
<Toast />
|
2019-02-08 13:16:00 +00:00
|
|
|
<Toast position="topleft" group="tl" />
|
|
|
|
<Toast position="bottomleft" group="bl" />
|
|
|
|
<Toast position="bottomright" group="br" />
|
2018-12-04 07:08:40 +00:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
2018-12-06 18:26:49 +00:00
|
|
|
<script>
|
2018-12-06 18:45:40 +00:00
|
|
|
import AppTopBar from '@/AppTopBar.vue';
|
|
|
|
import AppMenu from '@/AppMenu.vue';
|
|
|
|
import AppFooter from '@/AppFooter.vue';
|
2019-12-20 13:49:40 +00:00
|
|
|
import AppConfigurator from '@/AppConfigurator.vue';
|
2018-12-06 18:26:49 +00:00
|
|
|
|
2018-12-06 18:45:40 +00:00
|
|
|
export default {
|
2018-12-26 09:36:00 +00:00
|
|
|
data() {
|
|
|
|
return {
|
2020-04-13 16:02:51 +00:00
|
|
|
sidebarActive: false,
|
2020-05-07 19:13:58 +00:00
|
|
|
newsActive: false,
|
|
|
|
theme: 'saga-blue'
|
2018-12-26 09:36:00 +00:00
|
|
|
}
|
|
|
|
},
|
2018-12-26 09:39:12 +00:00
|
|
|
watch: {
|
2020-02-27 07:47:33 +00:00
|
|
|
$route: {
|
|
|
|
immediate: true,
|
|
|
|
handler(to) {
|
|
|
|
let route = window.location.href.split('/#')[1];
|
|
|
|
if (to.path === route) {
|
2020-02-27 07:51:24 +00:00
|
|
|
window['gtag']('config', 'UA-93461466-1', {
|
2020-02-27 07:47:33 +00:00
|
|
|
'page_path': '/primevue' + to.path
|
|
|
|
});
|
|
|
|
}
|
|
|
|
this.sidebarActive = false;
|
|
|
|
this.$toast.removeAllGroups();
|
|
|
|
}
|
2018-12-26 09:39:12 +00:00
|
|
|
}
|
|
|
|
},
|
2018-12-26 09:36:00 +00:00
|
|
|
methods: {
|
|
|
|
onMenuButtonClick() {
|
|
|
|
this.sidebarActive = !this.sidebarActive;
|
|
|
|
},
|
2019-02-08 14:14:35 +00:00
|
|
|
onMaskClick() {
|
2018-12-26 09:36:00 +00:00
|
|
|
this.sidebarActive = false;
|
2020-04-13 16:02:51 +00:00
|
|
|
},
|
|
|
|
hideNews() {
|
|
|
|
this.newsActive = false;
|
2020-05-07 19:13:58 +00:00
|
|
|
},
|
|
|
|
changeTheme(event) {
|
|
|
|
let themeElement = document.getElementById('theme-link');
|
|
|
|
themeElement.setAttribute('href', themeElement.getAttribute('href').replace(this.theme, event.theme));
|
|
|
|
this.theme = event.theme;
|
|
|
|
|
|
|
|
if (event.dark) {
|
|
|
|
this.addClass(document.body, event.dark);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
this.removeClass(document.body, 'dark-theme');
|
|
|
|
this.removeClass(document.body, 'dark-theme-alt');
|
|
|
|
}
|
|
|
|
|
|
|
|
this.activeMenuIndex = null;
|
|
|
|
},
|
|
|
|
addClass(element, className) {
|
|
|
|
if (!this.hasClass(element, className)) {
|
|
|
|
if (element.classList)
|
|
|
|
element.classList.add(className);
|
|
|
|
else
|
|
|
|
element.className += ' ' + className;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
removeClass(element, className) {
|
|
|
|
if (element.classList)
|
|
|
|
element.classList.remove(className);
|
|
|
|
else
|
|
|
|
element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
|
|
|
|
},
|
|
|
|
hasClass(element, className) {
|
|
|
|
if (element.classList)
|
|
|
|
return element.classList.contains(className);
|
|
|
|
else
|
|
|
|
return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);
|
2018-12-26 09:36:00 +00:00
|
|
|
}
|
|
|
|
},
|
2018-12-06 18:45:40 +00:00
|
|
|
components: {
|
|
|
|
'app-topbar': AppTopBar,
|
|
|
|
'app-menu': AppMenu,
|
2019-12-20 13:49:40 +00:00
|
|
|
'app-footer': AppFooter,
|
|
|
|
'app-configurator': AppConfigurator
|
2018-12-26 09:36:00 +00:00
|
|
|
},
|
2018-12-04 07:08:40 +00:00
|
|
|
}
|
2018-12-06 18:26:49 +00:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
@import './assets/styles/app.scss';
|
2018-12-04 07:08:40 +00:00
|
|
|
</style>
|