| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| |
| import Vue from 'vue' |
| import { |
| SIDEBAR_TYPE, |
| DEFAULT_THEME, |
| DEFAULT_LAYOUT_MODE, |
| DEFAULT_COLOR, |
| DEFAULT_COLOR_INVERTED, |
| DEFAULT_FIXED_HEADER, |
| DEFAULT_FIXED_SIDEMENU, |
| DEFAULT_FIXED_HEADER_HIDDEN, |
| DEFAULT_CONTENT_WIDTH_TYPE, |
| DEFAULT_MULTI_TAB, |
| USE_BROWSER_TIMEZONE |
| } from '@/store/mutation-types' |
| |
| const app = { |
| state: { |
| version: process.env.PACKAGE_VERSION || 'master', |
| sidebar: true, |
| device: 'desktop', |
| theme: '', |
| layout: '', |
| contentWidth: '', |
| fixedHeader: false, |
| fixSiderbar: false, |
| autoHideHeader: false, |
| color: null, |
| inverted: true, |
| multiTab: true, |
| metrics: false |
| }, |
| mutations: { |
| SET_SIDEBAR_TYPE: (state, type) => { |
| state.sidebar = type |
| Vue.ls.set(SIDEBAR_TYPE, type) |
| }, |
| CLOSE_SIDEBAR: (state) => { |
| Vue.ls.set(SIDEBAR_TYPE, true) |
| state.sidebar = false |
| }, |
| TOGGLE_DEVICE: (state, device) => { |
| state.device = device |
| }, |
| TOGGLE_THEME: (state, theme) => { |
| Vue.ls.set(DEFAULT_THEME, theme) |
| state.theme = theme |
| }, |
| TOGGLE_LAYOUT_MODE: (state, layout) => { |
| Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) |
| state.layout = layout |
| }, |
| TOGGLE_FIXED_HEADER: (state, fixed) => { |
| Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) |
| state.fixedHeader = fixed |
| }, |
| TOGGLE_FIXED_SIDERBAR: (state, fixed) => { |
| Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) |
| state.fixSiderbar = fixed |
| }, |
| TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { |
| Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) |
| state.autoHideHeader = show |
| }, |
| TOGGLE_CONTENT_WIDTH: (state, type) => { |
| Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) |
| state.contentWidth = type |
| }, |
| TOGGLE_COLOR: (state, color) => { |
| Vue.ls.set(DEFAULT_COLOR, color) |
| state.color = color |
| }, |
| TOGGLE_INVERTED: (state, flag) => { |
| Vue.ls.set(DEFAULT_COLOR_INVERTED, flag) |
| state.inverted = flag |
| }, |
| TOGGLE_MULTI_TAB: (state, bool) => { |
| Vue.ls.set(DEFAULT_MULTI_TAB, bool) |
| state.multiTab = bool |
| }, |
| SET_METRICS: (state, bool) => { |
| state.metrics = bool |
| }, |
| SET_USE_BROWSER_TIMEZONE: (state, bool) => { |
| Vue.ls.set(USE_BROWSER_TIMEZONE, bool) |
| state.usebrowsertimezone = bool |
| } |
| }, |
| actions: { |
| setSidebar ({ commit }, type) { |
| commit('SET_SIDEBAR_TYPE', type) |
| }, |
| CloseSidebar ({ commit }) { |
| commit('CLOSE_SIDEBAR') |
| }, |
| ToggleDevice ({ commit }, device) { |
| commit('TOGGLE_DEVICE', device) |
| }, |
| ToggleTheme ({ commit }, theme) { |
| commit('TOGGLE_THEME', theme) |
| }, |
| ToggleLayoutMode ({ commit }, mode) { |
| commit('TOGGLE_LAYOUT_MODE', mode) |
| }, |
| ToggleFixedHeader ({ commit }, fixedHeader) { |
| if (!fixedHeader) { |
| commit('TOGGLE_FIXED_HEADER_HIDDEN', false) |
| } |
| commit('TOGGLE_FIXED_HEADER', fixedHeader) |
| }, |
| ToggleFixSiderbar ({ commit }, fixSiderbar) { |
| commit('TOGGLE_FIXED_SIDERBAR', fixSiderbar) |
| }, |
| ToggleFixedHeaderHidden ({ commit }, show) { |
| commit('TOGGLE_FIXED_HEADER_HIDDEN', show) |
| }, |
| ToggleContentWidth ({ commit }, type) { |
| commit('TOGGLE_CONTENT_WIDTH', type) |
| }, |
| ToggleColor ({ commit }, color) { |
| commit('TOGGLE_COLOR', color) |
| }, |
| ToggleInverted ({ commit }, invertedFlag) { |
| commit('TOGGLE_INVERTED', invertedFlag) |
| }, |
| ToggleMultiTab ({ commit }, bool) { |
| commit('TOGGLE_MULTI_TAB', bool) |
| }, |
| SetMetrics ({ commit }, bool) { |
| commit('SET_METRICS', bool) |
| }, |
| SetUseBrowserTimezone ({ commit }, bool) { |
| commit('SET_USE_BROWSER_TIMEZONE', bool) |
| } |
| } |
| } |
| |
| export default app |