(function(e){function t(t){for(var o,s,r=t[0],l=t[1],c=t[2],u=0,d=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(e)}},E=O,A=(a("d16d"),Object(S["a"])(E,x,z,!1,null,"68c1bd5c",null)),T=A.exports,j=a("5cc6"),L=a.n(j);const $=e=>!j["hideFurnitureOn"].includes(e);var N={name:"Header",inject:["visibleComponents"],components:{PageTitle:I,Nav:T},props:{pageInfo:Object},data(){return{titleVisible:(this.visibleComponents||j["visibleComponents"]).pageTitle,navVisible:(this.visibleComponents||j["visibleComponents"]).navigation}},computed:{visible(){return $(this.$route.name)}}},M=N,D=(a("a9d3"),Object(S["a"])(M,f,b,!1,null,"6b8e7f1e",null)),P=D.exports,V=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.text&&""!==e.text&&e.visible?a("footer",{domProps:{innerHTML:e._s(e.text)}}):e.visible?a("footer",[e._v(" Developed by "),a("a",{attrs:{href:e.authorUrl}},[e._v(e._s(e.authorName))]),e._v(". Licensed under "),a("a",{attrs:{href:e.licenseUrl}},[e._v(e._s(e.license))]),e._v(" "+e._s(e.showCopyright?"©":"")+" "+e._s(e.date)+". Get the "),a("a",{attrs:{href:e.repoUrl}},[e._v("Source Code")]),e._v(". ")]):e._e()},B=[],U={name:"Footer",props:{text:String,authorName:{type:String,default:"Alicia Sykes"},authorUrl:{type:String,default:"https://aliciasykes.com"},license:{type:String,default:"MIT"},licenseUrl:{type:String,default:"https://gist.github.com/Lissy93/143d2ee01ccc5c052a17"},date:{type:String,default:""+(new Date).getFullYear()},showCopyright:{type:Boolean,default:!0},repoUrl:{type:String,default:"https://github.com/lissy93/dashy"}},computed:{visible(){return $(this.$route.name)}}},H=U,R=(a("9f61"),Object(S["a"])(H,V,B,!1,null,"d162889c",null)),K=R.exports,q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("transition",{attrs:{name:"slide-fade"}},[e.isLoading?a("div",{class:e.c,attrs:{id:"loading"},on:{click:function(t){e.c="hide"}}},[a("h2",[e._v("Dashy")]),a("div",{staticClass:"inner-container"},[a("p",[e._v("Loading")]),a("span",{staticClass:"dots-cont"},[a("span",{staticClass:"dot dot-1"}),a("span",{staticClass:"dot dot-2"}),a("span",{staticClass:"dot dot-3"}),a("span",{staticClass:"dot dot-4"})])])]):e._e()])},F=[],G={name:"LoadingScreen",props:{isLoading:{type:Boolean,default:!1}},data:()=>({c:""})},W=G,J=(a("2bb3"),Object(S["a"])(W,q,F,!1,null,"a7bc1de6",null)),Y=J.exports,Z=a("8b8e"),X=a.n(Z);class Q{constructor(){this.conf=X.a}appConfig(){let e={};this.conf&&(e=this.conf.appConfig||{});let t=j["appConfig"];return localStorage[j["localStorageKeys"].APP_CONFIG]?t=JSON.parse(localStorage[j["localStorageKeys"].APP_CONFIG]):e!=={}&&(t=e),t.layout=localStorage[j["localStorageKeys"].LAYOUT_ORIENTATION]||e.layout||j["layout"],t.iconSize=localStorage[j["localStorageKeys"].ICON_SIZE]||e.iconSize||j["iconSize"],e.auth&&(t.auth=e.auth),t}pageInfo(){const e=j["pageInfo"];let t;try{t=JSON.parse(localStorage[j["localStorageKeys"].PAGE_INFO])}catch(s){t={}}let a={};this.conf&&(a=this.conf.pageInfo||{});const o=a||e;return o.title=t.title||a.title||e.title,o.logo=t.logo||a.logo||e.logo,o.description=t.description||a.description||e.description,o.navLinks=t.navLinks||a.navLinks||e.navLinks,o.footerText=t.footerText||a.footerText||e.footerText,o}sections(){const e=localStorage[j["localStorageKeys"].CONF_SECTIONS];if(e)try{const t=JSON.parse(e);if(t.length>=1)return t}catch(a){}let t=[];return this.conf&&(t=this.conf.sections||[]),t}config(){return{appConfig:this.appConfig(),pageInfo:this.pageInfo(),sections:this.sections()}}}var ee=a("94f8"),te=a.n(ee),ae=a("82dc");const oe=()=>{const e="V1.8.3";console.log(`\n%cDashy ${e} 🚀`,"color:#0dd8d8; background:#0b1021; font-size:1.5rem; padding:0.15rem 0.25rem; margin: 1rem auto; font-family: Rockwell; border: 2px solid #0dd8d8; border-radius: 4px;font-weight: bold; text-shadow: 1px 1px 1px #00af87bf;")},se=e=>{console.info(`\n%c⚠️ Warning ⚠️%c \n${e} \n\n%cThis is likely not an issue with Dashy, but rather your configuration. If you think it is a bug, please open a ticket on GitHub: https://git.io/JukXk`,"color:#ceb73f; background: #ceb73f33; font-size:1.5rem; padding:0.15rem; margin: 1rem auto; font-family: Rockwell, Tahoma, 'Trebuchet MS', Helvetica; border: 2px solid #ceb73f; border-radius: 4px; font-weight: bold; text-shadow: 1px 1px 1px #000000bf;","font-weight: bold; font-size: 1rem;color: #ceb73f;","color: #ceb73f; font-size: 0.75rem; font-family: Tahoma, 'Trebuchet MS', Helvetica;")},ne=(e,t)=>{console.log(`%c${e||""}\n%c${t}`,"font-weight: bold; color: #0dd8d8; text-decoration: underline;","color: #ceb73f;")},ie=(e,t,a)=>{console.log(`%c${e||""}\n%c${t} \n%c${a||""}`,"font-weight: bold; color: #0dd8d8; text-decoration: underline;","color: #ff025a","color: #ff025a80;")},re=()=>{const e=new Date,t=e=>String(e).padStart(2,"0");return`${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`},le=e=>{let t=sessionStorage.getItem(j["sessionStorageKeys"].ERROR_LOG)||"";t+=`[${re()}] ${e}\n`,sessionStorage.setItem(j["sessionStorageKeys"].ERROR_LOG,t)},ce=function(e){se(e),le(e),ae["d"]("[USER-WARN] "+e)},ue=(e,t)=>{ne(t||"Info",e)},de=(e,t,a)=>{ie(t||"Warning",e,a)};var me=ce;const pe=()=>{const e=new Q,t=e.config();return t.appConfig||{}},ge=()=>{const e="From V 1.6.5 onwards, the structure of the users object has changed.";console.warn(e)},he=()=>{const e=pe();return e.auth&&e.auth.enableKeycloak||!1},_e=()=>{const e=pe();if(!he())return!1;const{keycloak:t}=e.auth,{serverUrl:a,realm:o,clientId:s}=t;return a&&o&&s?t:(me("Keycloak config missing- please ensure you specify: serverUrl, realm, clientId"),!1)},fe=()=>{const e=pe(),t=e.auth||{};return Array.isArray(t)?(ge(),t):t.users||[]},be=e=>{const t=e=>e.toString().toUpperCase(),a=te()(t(e.user)+t(e.hash));return t(a)},ke=()=>{const e=fe(),t=e.map(e=>be(e));let a=!1;return document.cookie.split(";").forEach(e=>{if(e&&e.split("=").length>1){const o=e.split("=")[0].trim(),s=e.split("=")[1].trim();o===j["cookieKeys"].AUTH_TOKEN&&t.includes(s)&&(a=!0)}}),a},ve=()=>{const e=fe();return e.length>0},we=()=>{const e=pe();return e.enableGuestAccess?(ge(),!0):e.auth&&!Array.isArray(e.auth)&&e.auth.enableGuestAccess||!1},ye=(e,t,a,o)=>{let s;return e?t?a.forEach(a=>{a.user.toLowerCase()===e.toLowerCase()&&(s=a.hash.toLowerCase()===te()(t).toString().toLowerCase()?{correct:!0,msg:o.successMsg}:{correct:!1,msg:o.incorrectPassword})}):s={correct:!1,msg:o.missingPassword}:s={correct:!1,msg:o.missingUsername},s||{correct:!1,msg:o.incorrectUsername}},Se=(e,t,a)=>{const o=new Date,s=new Date(o.setTime(o.getTime()+a)).toGMTString(),n={user:e,hash:te()(t).toString().toLowerCase()};document.cookie=`authenticationToken=${be(n)};`+(a>0?"expires="+s:""),localStorage.setItem(j["localStorageKeys"].USERNAME,e)},Ce=()=>{document.cookie="authenticationToken=null",localStorage.removeItem(j["localStorageKeys"].USERNAME)},Ie=()=>{if(!ke())return!1;const e=localStorage[j["localStorageKeys"].USERNAME];if(!e)return!1;let t=!1;return fe().forEach(a=>{a.user===e&&(t=a)}),t},xe=()=>{const e=we(),t=!ke();return e&&t},ze=()=>{const e=fe();if(0===e.length)return!0;if(!ke())return!1;const t=localStorage[j["localStorageKeys"].USERNAME];let a=!1;return e.forEach(e=>{e.user===t&&"admin"===e.type&&(a=!0)}),a},Oe=()=>{const{notConfigured:e,loggedIn:t,guestAccess:a}=j["userStateEnum"];return ve()?ke()?t:we()?a:e:e},Ee=(e,t)=>{let a=!1;return e.forEach(e=>{e.toLowerCase()===t&&(a=!0)}),a},Ae=(e,t,a)=>{const o=()=>{if(!t)return!0;const a=e.hideForUsers||[],o=t.user.toLowerCase();return!Ee(a,o)},s=()=>{if(!t)return!0;const a=t.user.toLowerCase(),o=e.showForUsers||[];return o.length<1||Ee(o,a)},n=()=>{const t=e.hideForGuests;return!(t&&a)};return o()&&s()&&n()},Te=e=>{const t=Ie(),a=xe();return e.filter(e=>{const o=e.displayData||{};return Ae(o,t,a)})};var je=Te,Le=a("0e40"),$e=a("cb40"),Ne=a("3b11"),Me=a("e316"),De=a("794b"),Pe=a("913d"),Ve=a("274c"),Be=a("eb26"),Ue=a("90a9"),He=a("4624"),Re=a("af4f"),Ke=a("421c"),qe=a("0bd0");const Fe=[{name:"English",code:"en",locale:Le,flag:"🇬🇧"},{name:"Deutsch",code:"de",locale:$e,flag:"🇩🇪"},{name:"Dutch",code:"nl",locale:Ne,flag:"🇳🇱"},{name:"Français",code:"fr",locale:Me,flag:"🇲🇫"},{name:"Slovenščina",code:"sl",locale:De,flag:"🇸🇮"},{name:"Español",code:"es",locale:Pe,flag:"🇪🇸"},{name:"Italiano",code:"it",locale:Ve,flag:"🇮🇹"},{name:"简体中文",code:"cn",locale:Be,flag:"🇨🇳"},{name:"العربية",code:"ar",locale:Ue,flag:"🇦🇪"},{name:"नहीं",code:"hi",locale:He,flag:"🇮🇳"},{name:"日本語",code:"ja",locale:Re,flag:"🇯🇵"},{name:"Português",code:"pt",locale:Ke,flag:"🇵🇹"},{name:"Русский",code:"ru",locale:qe,flag:"🇷🇺"}],Ge={};Fe.forEach(e=>{Ge[e.code]=e.locale});const We=Ge,Je=(()=>{const e=new Q;return{appConfig:e.appConfig(),pageInfo:e.pageInfo(),sections:je(e.sections())}})(),Ye=e=>{const t=e.hideComponents||{},a=e=>"boolean"===typeof e;return{pageTitle:a(t.hideHeading)?!t.hideHeading:j["visibleComponents"].pageTitle,navigation:a(t.hideNav)?!t.hideNav:j["visibleComponents"].navigation,searchBar:a(t.hideSearch)?!t.hideSearch:j["visibleComponents"].searchBar,settings:a(t.hideSettings)?!t.hideSettings:j["visibleComponents"].settings,footer:a(t.hideFooter)?!t.hideFooter:j["visibleComponents"].footer,splashScreen:a(t.hideSplashScreen)?!t.hideSplashScreen:j["visibleComponents"].splashScreen}},Ze=()=>{const e=localStorage[j["localStorageKeys"].THEME],t=Je.appConfig.theme;return e||t||j["theme"]},Xe=()=>{const e=JSON.parse(localStorage[j["localStorageKeys"].CUSTOM_COLORS]||"{}"),t=Je.appConfig.customColors||{};return Object.assign(t,e)},Qe=()=>{const e=[],t=Je.sections||[];return t.forEach(t=>{const a=t.items.filter(e=>e.hotkey);e.push(a.map(e=>({hotkey:e.hotkey,url:e.url})))}),e.flat()},et=()=>{const e=localStorage[j["localStorageKeys"].LANGUAGE]||Je.appConfig.language||j["language"],t=Fe.find(t=>t.code===e);return t},tt=new Q,at=tt.config(),ot=Ye(at.appConfig)||j["visibleComponents"];var st={name:"app",components:{Header:P,Footer:K,LoadingScreen:Y},provide:{config:at,visibleComponents:ot},data(){return{isLoading:!0,showFooter:ot.footer,appConfig:tt.appConfig(),pageInfo:tt.pageInfo(),visibleComponents:ot}},computed:{footerText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},shouldShowSplash(){return(this.visibleComponents||j["visibleComponents"]).splashScreen}},methods:{injectCustomStyles(e){const t=document.createElement("style");t.textContent=e,document.head.append(t)},hideSplash(){this.shouldShowSplash?setTimeout(()=>{this.isLoading=!1},j["splashScreenTime"]||1500):this.isLoading=!1},autoDetectLanguage(e){const t=(e,t)=>e.map(e=>e.toLowerCase()).find(e=>e===t.toLowerCase()),a=window.navigator.language||"",o=a.split("-")[0],s=window.navigator.languages;return t(e,a)||t(e,o)||s.find(a=>t(e,a))||j["language"]},getLanguage(){const e=this.$i18n.availableLocales,t=localStorage[j["localStorageKeys"].LANGUAGE]||this.appConfig.language;if(t){if(e.includes(t))return t;me(`Unsupported Language: '${t}'`)}return this.autoDetectLanguage(e)},applyLanguage(){const e=this.getLanguage();this.$i18n.locale=e,document.getElementsByTagName("html")[0].setAttribute("lang",e)},hideLoader(){const e=document.getElementById("loader");e&&(e.style.display="none")}},mounted(){if(this.applyLanguage(),this.hideSplash(),this.appConfig.customCss){const e=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(e),this.hideLoader()}oe()}},nt=st,it=(a("5c0b"),Object(S["a"])(nt,h,_,!1,null,null,null)),rt=it.exports,lt=a("8c4f"),ct=a("13c2"),ut=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"home",style:e.getBackgroundImage()},[a("SettingsContainer",{ref:"filterComp",staticClass:"settings-outer",attrs:{displayLayout:e.layout,iconSize:e.itemSizeBound,externalThemes:e.getExternalCSSLinks(),sections:e.allSections,appConfig:e.appConfig,pageInfo:e.pageInfo,modalOpen:e.modalOpen},on:{"user-is-searchin":e.searching,"change-display-layout":e.setLayoutOrientation,"change-icon-size":e.setItemSize,"change-modal-visibility":e.updateModalVisibility}}),e.checkTheresData(e.sections)?a("div",{class:"item-group-container orientation-"+e.layout+" item-size-"+e.itemSizeBound},e._l(e.filteredTiles,(function(t,o){return a("Section",{key:o,class:e.searchValue&&0===e.filterTiles(t.items,e.searchValue).length?"no-results":"",attrs:{title:t.name,icon:t.icon||void 0,displayData:e.getDisplayData(t),groupId:"section-"+o,items:e.filterTiles(t.items,e.searchValue),searchTerm:e.searchValue,itemSize:e.itemSizeBound},on:{itemClicked:function(t){return e.finishedSearching()},"change-modal-visibility":e.updateModalVisibility}})})),1):e._e(),e.checkIfResults()?a("div",{staticClass:"no-data"},[e._v(" "+e._s(e.searchValue?e.$t("home.no-results"):e.$t("home.no-data"))+" ")]):e._e()],1)},dt=[],mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("section",[e.searchVisible?a("SearchBar",{ref:"SearchBar",attrs:{active:!e.modalOpen},on:{"user-is-searchin":e.userIsTypingSomething}}):e._e(),a("div",{staticClass:"options-outer"},[a("div",{class:"options-container "+(e.settingsVisible?"":"hide")},[a("ThemeSelector",{attrs:{externalThemes:e.externalThemes,confTheme:e.getInitialTheme(),userThemes:e.getUserThemes()},on:{modalChanged:e.modalChanged}}),a("LayoutSelector",{attrs:{displayLayout:e.displayLayout},on:{layoutUpdated:e.updateDisplayLayout}}),a("ItemSizeSelector",{attrs:{iconSize:e.iconSize},on:{iconSizeUpdated:e.updateIconSize}}),a("ConfigLauncher",{attrs:{sections:e.sections,pageInfo:e.pageInfo,appConfig:e.appConfig},on:{modalChanged:e.modalChanged}}),"noone"!=e.userState?a("AuthButtons",{attrs:{userType:e.userState}}):e._e()],1),a("div",{class:"show-hide-container "+(e.settingsVisible?"hide-btn":"show-btn")},[a("button",{directives:[{name:"tooltip",rawName:"v-tooltip",value:(e.settingsVisible?"Hide":"Open")+" Settings Menu",expression:"`${settingsVisible? 'Hide' : 'Open'} Settings Menu`"}],attrs:{tabindex:"-2"},on:{click:function(t){return e.toggleSettingsVisibility()}}},[e.settingsVisible?a("IconClose"):a("IconOpen")],1)])]),a("KeyboardShortcutInfo"),a("AppInfoModal")],1)},pt=[],gt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",{on:{submit:function(t){return t.preventDefault(),e.searchSubmitted.apply(null,arguments)}}},[a("label",{attrs:{for:"filter-tiles"}},[e._v(e._s(e.$t("search.search-label")))]),a("div",{staticClass:"search-wrap"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],ref:"filter",attrs:{id:"filter-tiles",placeholder:e.$t("search.search-placeholder")},domProps:{value:e.input},on:{input:[function(t){t.target.composing||(e.input=t.target.value)},e.userIsTypingSomething],keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.clearFilterInput.apply(null,arguments)}}}),!e.searchPrefs.disableWebSearch&&e.input.length>0?a("p",{staticClass:"web-search-note"},[e._v(" "+e._s(e.$t("search.enter-to-search-web"))+" ")]):e._e()]),e.input.length>0?a("i",{staticClass:"clear-search",attrs:{title:e.$t("search.clear-search-tooltip")},on:{click:e.clearFilterInput}},[e._v("x")]):e._e()])},ht=[];class _t{constructor(e){this.index=e}resetIndex(){this.index=0}arrowNavigation(e){void 0===this.index?this.index=0:37===e?this.index-=1:38===e?this.index=_t.goToPrevious(this.index):39===e?this.index+=1:40===e&&(this.index=_t.goToNext(this.index)),this.index=_t.getSafeElementIndex(this.index),_t.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(e){const t=_t.getNumResults();return e<0?t-1:e>=t?0:e}static selectItemByIndex(e){return e>=0&&e<=_t.getNumResults()?document.getElementsByClassName("item")[e]:[document.getElementsByClassName("item")]}static findPreviousRow(e){const t=(e,t)=>_t.selectItemByIndex(e).offsetTop===t,a=(e,o)=>e>=_t.getNumResults()?a(0,o):t(e,o)?a(e-1,o):e,o=_t.selectItemByIndex(e).offsetTop;return a(e,o)}static goToPrevious(e){const t=(e,t)=>_t.selectItemByIndex(e).offsetTop<_t.selectItemByIndex(t).offsetTop,a=_t.findPreviousRow(e),o=a-e,s=a-_t.findNextRow(e)+1,n=t(e,a)?0:s-o;return a+n}static findNextRow(e){const t=(e,t)=>_t.selectItemByIndex(e).offsetTop===t,a=(e,o)=>e>=_t.getNumResults()?a(0,o):t(e,o)?a(e+1,o):e,o=_t.selectItemByIndex(e).offsetTop;return a(e,o)}static goToNext(e){const t=(e,t)=>_t.selectItemByIndex(e).offsetTop>_t.selectItemByIndex(t).offsetTop,a=_t.findNextRow(e),o=a-e,s=a-_t.findPreviousRow(e)-1,n=t(e,a)?0:s-o;return a+n}}const ft=e=>{if(!e)return"";const t=/^(?:https?:\/\/)?(?:w{3}\.)?([a-z\d.-]+)\.(?:[a-z.]{2,10})(?:[/\w.-]*)*/,a=e.match(t);return a?a[1]:""},bt=(e,t)=>{if(!e)return!1;const a=e=>e.toString().toLowerCase().replace(/[^\w\s]/gi,"");return a(e).includes(a(t))},kt=(e,t)=>e?e.filter(e=>{const{title:a,description:o,provider:s,url:n,tags:i}=e;return bt(a,t)||bt(s,t)||bt(o,t)||bt(i,t)||bt(ft(n),t)}):[],vt=(e,t)=>{const a=Object.keys(t),o=a.find(t=>e.includes(t));return t[o]},wt=(e,t)=>{if(e)return/(http|https):\/\/[^]*/.test(e)?e:t[e]?t[e]:void me(`Specified Search Engine was not Found: '${e}'`);me("No search engine specified")},yt=(e,t)=>{const a=Object.keys(t||{});let o=e;return a.forEach(e=>{o=o.replace(e,"")}),o.trim()};var St={name:"FilterTile",inject:["config"],props:{active:Boolean},data(){return{input:"",akn:new _t,getCustomKeyShortcuts:Qe}},computed:{searchPrefs(){return this.config.appConfig.webSearch||{}}},mounted(){window.addEventListener("keydown",this.handleKeyPress)},beforeDestroy(){window.removeEventListener("keydown",this.handleKeyPress)},methods:{handleKeyPress(e){const t=document.activeElement.id,{key:a,keyCode:o}=e,s="filter-tiles"!==t;this.active&&(/^[/:!a-zA-Z]$/.test(a)&&s?(this.$refs.filter&&this.$refs.filter.focus(),this.userIsTypingSomething()):/^[0-9]$/.test(a)?this.handleHotKey(a):o>=37&&o<=40?this.akn.arrowNavigation(o):27===o&&this.clearFilterInput())},userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()},handleHotKey(e){const t=this.getCustomKeyShortcuts();t.forEach(t=>{t.hotkey===parseInt(e,10)&&t.url&&window.open(t.url,"_blank")})},launchWebSearch(e,t){switch(t){case"newtab":window.open(e,"_blank");break;case"sametab":window.open(e,"_self");break;case"workspace":Br.push({name:"workspace",query:{url:e}});break;default:me("Unknown opening method: "+t),window.open(e,"_blank")}},searchSubmitted(){const{searchPrefs:e}=this;if(!e.disableWebSearch){const t={...j["searchBangs"],...e.searchBangs||{}},a=e.openingMethod||j["defaultSearchOpeningMethod"],o=vt(this.input,t),s=e.searchEngine||j["defaultSearchEngine"],n=o||s;let i=wt(n,j["searchEngineUrls"]);i&&(i+=encodeURIComponent(yt(this.input,t)),this.launchWebSearch(i,a),this.clearFilterInput())}}}},Ct=St,It=(a("847b"),Object(S["a"])(Ct,gt,ht,!1,null,"7e3a2337",null)),xt=It.exports,zt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeViewSwitcher,expression:"closeViewSwitcher"}],staticClass:"config-options"},[a("span",{staticClass:"config-label"},[e._v(e._s(e.$t("settings.config-launcher-label")))]),a("div",{staticClass:"config-buttons"},[a("IconSpanner",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.config-launcher-tooltip")),expression:"tooltip($t('settings.config-launcher-tooltip'))"}],attrs:{tabindex:"-2"},on:{click:function(t){return e.showEditor()}}}),a("IconViewMode",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("alternate-views.alternate-view-heading")),expression:"tooltip($t('alternate-views.alternate-view-heading'))"}],attrs:{tabindex:"-2"},on:{click:function(t){return e.openChangeViewMenu()}}})],1),a("modal",{attrs:{name:e.modalNames.CONF_EDITOR,resizable:!0,width:"60%",height:"85%",classes:"dashy-modal"},on:{closed:function(t){return e.$emit("modalChanged",!1)}}},[a("ConfigContainer",{attrs:{config:e.combineConfig()}})],1),a("modal",{attrs:{name:e.modalNames.LANG_SWITCHER,classes:"dashy-modal",resizable:!0,width:"35%",height:"60%"}},[a("LanguageSwitcher")],1),e.viewSwitcherOpen?a("div",{staticClass:"view-switcher"},[a("ul",[a("li",[a("router-link",{attrs:{to:"/home"}},[a("IconHome"),a("span",[e._v(e._s(e.$t("alternate-views.default")))])],1)],1),a("li",[a("router-link",{attrs:{to:"/minimal"}},[a("IconMinimalView"),a("span",[e._v(e._s(e.$t("alternate-views.minimal")))])],1)],1),a("li",[a("router-link",{attrs:{to:"/workspace"}},[a("IconWorkspaceView"),a("span",[e._v(e._s(e.$t("alternate-views.workspace")))])],1)],1)])]):e._e()],1)},Ot=[],Et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("Tabs",{ref:"tabView",attrs:{navAuto:!0,name:"Add Item"}},[a("TabItem",{staticClass:"main-tab",attrs:{name:e.$t("config.main-tab")}},[a("div",{staticClass:"main-options-container"},[a("div",{staticClass:"config-buttons"},[a("h2",[e._v("Configuration Options")]),a("a",{staticClass:"hyperlink-wrapper",on:{click:function(t){return e.downloadConfigFile("conf.yml",e.yaml)}}},[a("button",{staticClass:"config-button center"},[a("DownloadIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.download-config-button"))+" ")],1)]),a("button",{staticClass:"config-button center",on:{click:function(){return e.navigateToTab(1)}}},[a("EditIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.edit-config-button"))+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(){return e.navigateToTab(3)}}},[a("CustomCssIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.edit-css-button"))+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(){return e.navigateToTab(2)}}},[a("CloudIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.backupId?e.$t("config.edit-cloud-sync-button"):e.$t("config.cloud-sync-button"))+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(t){return e.openLanguageSwitchModal()}}},[a("LanguageIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.change-language-button"))+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(t){return e.openRebuildAppModal()}}},[a("RebuildIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.rebuild-app-button"))+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(t){return e.resetLocalSettings()}}},[a("DeleteIcon",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.reset-settings-button"))+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(t){return e.openAboutModal()}}},[a("IconAbout",{staticClass:"button-icon"}),e._v(" "+e._s(e.$t("config.app-info-button"))+" ")],1),a("p",{staticClass:"small-screen-note",staticStyle:{display:"none"}},[e._v(" You are using a very small screen, and some screens in this menu may not be optimal ")]),a("p",{staticClass:"language"},[e._v(e._s(e.getLanguage()))]),a("AppVersion")],1),a("div",{staticClass:"config-note"},[a("span",[e._v(e._s(e.$t("config.backup-note")))])])]),a("RebuildApp")],1),a("TabItem",{attrs:{name:e.$t("config.edit-config-tab")}},[a("JsonEditor",{attrs:{config:e.config}})],1),a("TabItem",{attrs:{name:e.$t("cloud-sync.title")}},[a("CloudBackupRestore",{attrs:{config:e.config}})],1),a("TabItem",{attrs:{name:e.$t("config.custom-css-tab")}},[a("CustomCssEditor",{attrs:{config:e.config}})],1)],1)},At=[],Tt=a("d97e");const jt=e=>e.split("\n").map(e=>e.trimRight()).join("\n"),Lt=e=>{throw new Error("Error in Json to YAML conversion: "+e)},$t=e=>{let t="";const a={undefined(){return"null"},null(){return"null"},number(e){return e},boolean(e){return e?"true":"false"},string(e){return JSON.stringify(e)},array(e){let o="";return 0===e.length?(o+="[]",o):(t=t.replace(/$/," "),e.forEach(e=>{const s=a[Object(Tt["typeOf"])(e)];s||Lt(Object(Tt["typeOf"])(e)),o+=`\n${t}- ${s(e,!0)}`}),t=t.replace(/ {2}/,""),o)},object(e,o,s){let n="";return 0===Object.keys(e).length?(n+="{}",n):(s||(t=t.replace(/$/," ")),Object.keys(e).forEach((s,i)=>{const r=e[s],l=a[Object(Tt["typeOf"])(r)];"undefined"!==typeof r&&(l||Lt(Object(Tt["typeOf"])(r)),o&&0===i||(n+="\n"+t),n+=`${s}: ${l(r)}`)}),t=t.replace(/ {2}/,""),n)},function(){return"[object Function]"}};return jt(a[Object(Tt["typeOf"])(e)](e,!0,!0)+"\n")};var Nt=$t,Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"json-editor-outer"},[a("v-jsoneditor",{attrs:{options:e.options},model:{value:e.jsonData,callback:function(t){e.jsonData=t},expression:"jsonData"}}),a("div",{staticClass:"save-options"},[a("span",{staticClass:"save-option-title"},[e._v(e._s(e.$t("config-editor.save-location-label"))+":")]),a("div",{staticClass:"option"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"local",value:"local",disabled:!e.allowWriteToDisk},domProps:{checked:e._q(e.saveMode,"local")},on:{change:function(t){e.saveMode="local"}}}),a("label",{staticClass:"save-option-label",attrs:{for:"local"}},[e._v(" "+e._s(e.$t("config-editor.location-local-label"))+" ")])]),a("div",{staticClass:"option"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"file",value:"file",disabled:!e.allowWriteToDisk},domProps:{checked:e._q(e.saveMode,"file")},on:{change:function(t){e.saveMode="file"}}}),a("label",{staticClass:"save-option-label",attrs:{for:"file"}},[e._v(" "+e._s(e.$t("config-editor.location-disk-label"))+" ")])])]),a("button",{class:"save-button "+(e.isValid?"":"err"),on:{click:function(t){return e.save()}}},[e._v(" "+e._s(e.$t("config-editor.save-button"))+" ")]),a("p",{staticClass:"errors"},[a("ul",[e._l(e.errorMessages,(function(t,o){return a("li",{key:o,class:"type-"+t.type},[e._v(" "+e._s(t.msg)+" ")])})),e.errorMessages.length<1?a("li",{staticClass:"type-valid"},[e._v(" "+e._s(e.$t("config-editor.valid-label"))+" ")]):e._e()],2)]),void 0!==e.saveSuccess?a("p",{class:"response-output status-"+(e.saveSuccess?"success":"fail")},[e._v(" "+e._s(e.saveSuccess?e.$t("config-editor.status-success-msg"):e.$t("config-editor.status-fail-msg"))+" ")]):e._e(),e.allowWriteToDisk?e._e():a("p",{staticClass:"no-permission-note"},[e._v(" "+e._s(e.$t("config-editor.not-admin-note"))+" ")]),a("p",{staticClass:"response-output"},[e._v(e._s(e.responseText))]),e.saveSuccess?a("p",{staticClass:"response-output"},[e._v(" "+e._s(e.$t("config-editor.success-note-l1"))+" "+e._s(e.$t("config-editor.success-note-l2"))+" "+e._s(e.$t("config-editor.success-note-l3"))+" ")]):e._e(),a("p",{staticClass:"note"},[e._v(e._s(e.$t("config.backup-note")))])],1)},Dt=[],Pt=a("bc3a"),Vt=a.n(Pt),Bt=a("bcb2"),Ut=a.n(Bt),Ht=a("831b"),Rt={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Ut.a},data(){return{jsonData:this.config,errorMessages:[],saveMode:"file",options:{schema:Ht,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors},jsonParser:Nt,responseText:"",saveSuccess:void 0,allowWriteToDisk:this.shouldAllowWriteToDisk(),progress:new ct["a"]({color:"var(--progress-bar)"})}},computed:{isValid(){return this.errorMessages.length<1}},mounted(){this.allowWriteToDisk||(this.saveMode="local")},methods:{shouldAllowWriteToDisk(){const{appConfig:e}=this.config;return!1!==e.allowConfigEdit&&ze()},save(){"local"!==this.saveMode&&this.allowWriteToDisk?"file"===this.saveMode?this.writeConfigToDisk():this.$toasted.show(this.$t("config-editor.error-msg-save-mode")):this.saveConfigLocally()},writeConfigToDisk(){const e=this.jsonParser(this.jsonData),t=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.8.3",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,a=`${t}${j["serviceEndpoints"].save}`,o={"Content-Type":"text/plain"},s={config:e,timestamp:new Date},n=Vt.a.post(a,s,o);this.progress.start(),n.then(e=>{this.saveSuccess=e.data.success||!1,this.responseText=e.data.message,this.saveSuccess?(this.carefullyClearLocalStorage(),this.showToast(this.$t("config-editor.success-msg-disk"),!0)):this.showToast(this.$t("config-editor.error-msg-cannot-save"),!1),ue("Config has been written to disk succesfully","Config Update"),this.progress.end()}).catch(e=>{this.saveSuccess=!1,this.responseText=e,this.showToast(e,!1),me("Failed to save config. "+e),this.progress.end()})},saveConfigLocally(){const e=this.jsonData;e.sections&&localStorage.setItem(j["localStorageKeys"].CONF_SECTIONS,JSON.stringify(e.sections)),e.pageInfo&&localStorage.setItem(j["localStorageKeys"].PAGE_INFO,JSON.stringify(e.pageInfo)),e.appConfig&&(e.appConfig.auth=this.config.appConfig.auth||[],localStorage.setItem(j["localStorageKeys"].APP_CONFIG,JSON.stringify(e.appConfig))),e.appConfig.theme&&localStorage.setItem(j["localStorageKeys"].THEME,e.appConfig.theme),ue("Config has succesfully been saved in browser storage","Config Update"),this.showToast(this.$t("config-editor.success-msg-local"),!0)},carefullyClearLocalStorage(){localStorage.removeItem(j["localStorageKeys"].PAGE_INFO),localStorage.removeItem(j["localStorageKeys"].APP_CONFIG),localStorage.removeItem(j["localStorageKeys"].CONF_SECTIONS)},validationErrors(e){const t=[];e.forEach(e=>{switch(e.type){case"validation":t.push({type:"validation",msg:this.$t("config-editor.warning-msg-validation")+": "+`${e.error.keyword} ${e.error.message}`});break;case"error":t.push({type:"parse",msg:e.message});break;default:t.push({type:"editor",msg:this.$t("config-editor.error-msg-bad-json")});break}}),this.errorMessages=t},showToast(e,t){this.$toasted.show(e,{className:"toast-"+(t?"success":"error")})}}},Kt=Rt,qt=(a("80a7"),Object(S["a"])(Kt,Mt,Dt,!1,null,null,null)),Ft=qt.exports,Gt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"css-editor-outer"},[a("div",{staticClass:"css-wrapper"},[a("h2",{staticClass:"css-input-title"},[e._v("Custom CSS")]),a("textarea",{directives:[{name:"model",rawName:"v-model",value:e.customCss,expression:"customCss"}],staticClass:"css-editor",domProps:{value:e.customCss},on:{input:function(t){t.target.composing||(e.customCss=t.target.value)}}}),e._v(" "),a("button",{staticClass:"save-button",on:{click:function(t){return e.save()}}},[e._v(e._s(e.$t("config.css-save-btn")))]),a("p",{staticClass:"quick-note"},[a("b",[e._v(e._s(e.$t("config.css-note-label"))+":")]),e._v(" "+e._s(e.$t("config.css-note-l1"))+" "+e._s(e.$t("config.css-note-l2"))+" "+e._s(e.$t("config.css-note-l3"))+" ")])]),a("CustomThemeMaker",{staticClass:"color-config",attrs:{themeToEdit:e.currentTheme}})],1)},Wt=[],Jt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:"theme-configurator-wrapper "+(e.showingAllVars?"showing-all":"")},[a("h3",{staticClass:"configurator-title"},[e._v(e._s(e.$t("theme-maker.title")))]),a("div",{staticClass:"color-row-container"},e._l(Object.keys(e.customColors),(function(t){return a("div",{key:t,staticClass:"color-row"},[a("label",{staticClass:"color-name",attrs:{for:"color-input-"+t}},[e._v(" "+e._s(t.replaceAll("-"," "))+" ")]),e.isColor(t,e.customColors[t])?a("v-swatches",{attrs:{"show-fallback":"","fallback-input-type":"color","popover-x":"left",swatches:e.swatches},on:{input:function(a){return e.setVariable(t,e.customColors[t])}},model:{value:e.customColors[t],callback:function(a){e.$set(e.customColors,t,a)},expression:"customColors[colorName]"}},[a("input",{staticClass:"swatch-input form__input__element",style:e.makeSwatchStyles(t),attrs:{slot:"trigger",id:"color-input-"+t,readonly:""},domProps:{value:e.customColors[t]},slot:"trigger"})]):a("input",{staticClass:"misc-input",attrs:{id:"color-input-"+t},domProps:{value:e.customColors[t]},on:{input:function(a){return e.setVariable(t,e.customColors[t])}}})],1)})),0),a("p",{staticClass:"action-text-btn",on:{click:e.exportToClipboard}},[e._v(" "+e._s(e.$t("theme-maker.export-button"))+" ")]),a("p",{staticClass:"action-text-btn show-all-vars-btn",on:{click:e.resetAndSave}},[e._v(" "+e._s(e.$t("theme-maker.reset-button"))+" '"+e._s(e.themeToEdit)+"' ")]),a("p",{staticClass:"action-text-btn",on:{click:e.findAllVariableNames}},[e._v(" "+e._s(e.$t("theme-maker.show-all-button"))+" ")]),a("div",{staticClass:"action-buttons"},[a("Button",{attrs:{click:e.saveChanges}},[a("SaveIcon"),e._v(" "+e._s(e.$t("theme-maker.save-button"))+" ")],1),a("Button",{attrs:{click:e.resetUnsavedColors}},[a("CancelIcon"),e._v(" "+e._s(e.$t("theme-maker.cancel-button"))+" ")],1)],1)])},Yt=[],Zt=a("7f75"),Xt=a.n(Zt),Qt=(a("b3a4"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("button",{class:e.disallow?"disallowed":"",attrs:{disabled:e.disabled},on:{click:function(t){return e.click()}}},[e._t("default"),e._t("text"),e._t("icon")],2)}),ea=[],ta={name:"Button",props:{text:String,click:Function,disabled:Boolean,disallow:Boolean}},aa=ta,oa=(a("24e6"),Object(S["a"])(aa,Qt,ea,!1,null,"ec408f00",null)),sa=oa.exports,na=a("90ff"),ia=a.n(na),ra=a("90de"),la=a.n(ra),ca={name:"ThemeMaker",components:{VSwatches:Xt.a,Button:sa,SaveIcon:ia.a,CancelIcon:la.a},data(){return{customColors:this.makeInitialData(j["mainCssVars"]),showingAllVars:!1,swatches:j["swatches"]}},props:{themeToEdit:String},methods:{getCssVariableValue(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()||"inherit"},setVariable(e,t){document.documentElement.style.setProperty("--"+e,t)},saveChanges(){const e=JSON.parse(localStorage[j["localStorageKeys"].CUSTOM_COLORS]||"{}");e[this.themeToEdit]=this.customColors,localStorage.setItem(j["localStorageKeys"].CUSTOM_COLORS,JSON.stringify(e)),this.$toasted.show(this.$t("theme-maker.saved-toast",{theme:this.themeToEdit})),this.$emit("closeThemeConfigurator")},resetUnsavedColors(){const e=Object.keys(this.customColors);e.forEach(e=>{document.documentElement.style.removeProperty("--"+e)}),this.customColors=this.makeInitialData(j["mainCssVars"]),this.$emit("closeThemeConfigurator")},resetAndSave(){const e=JSON.parse(localStorage[j["localStorageKeys"].CUSTOM_COLORS]||"{}");delete e[this.themeToEdit],localStorage.setItem(j["localStorageKeys"].CUSTOM_COLORS,JSON.stringify(e)),this.resetUnsavedColors(),this.$toasted.show(this.$t("theme-maker.reset-toast",{theme:this.themeToEdit}))},exportToClipboard(){const e=this.themeToEdit.replace(/^\w/,e=>e.toUpperCase());let t=`// Custom Colors for ${e}\n`;Object.keys(this.customColors).forEach(e=>{t+=`--${e}: ${this.customColors[e]};\n`}),navigator.clipboard.writeText(t),this.$toasted.show(this.$t("theme-maker.copied-toast",{theme:e}))},makeInitialData(e){const t={},a=e=>/^--/.exec(e),o=e=>a(e)?e:"--"+e,s=e=>a(e)?e.replace("--",""):e;return e.forEach(e=>{t[s(e)]=this.getCssVariableValue(o(e))}),t},findAllVariableNames(){const e=Array.from(document.styleSheets).filter(e=>null===e.href||e.href.startsWith(window.location.origin)).reduce((e,t)=>[...e,...Array.from(t.cssRules).reduce((e,t)=>":root"===t.selectorText?[...e,...Array.from(t.style).filter(e=>e.startsWith("--"))]:e,[])],[]);this.customColors=this.makeInitialData(e),this.showingAllVars=!0},getForegroundColor(e){const t=e=>{const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(!t||t.length<3)return"black";const a=e=>parseInt(t[e],16);return t?{r:a(1),g:a(2),b:a(3)}:null},a=e=>(299*e.r+587*e.g+114*e.b)/1e3;return a(t(e.trim()))<100?"white":"black"},makeSwatchStyles(e){const t=this.getForegroundColor(this.customColors[e]);return`background:${this.customColors[e]};color:${t}; border: 1px solid ${t}`},isColor(e,t){if(/rem|px|%/.exec(t))return!1;const a=["--curve-factor","--curve-factor-navbar","--curve-factor-small","--dimming-factor","--scroll-bar-width","--header-height","--footer-height","--item-group-padding","--item-shadow","--item-hover-shadow:","--item-icon-transform","--item-icon-transform-hover","--item-group-shadow","--context-menu-shadow","--settings-container-shadow","--side-bar-width"];return!a.includes("--"+e)}}},ua=ca,da=(a("369e"),Object(S["a"])(ua,Jt,Yt,!1,null,null,null)),ma=da.exports,pa={name:"StyleEditor",props:{config:Object},components:{CustomThemeMaker:ma},data(){return{customCss:this.config.appConfig.customCss||"\n\n",currentTheme:Ze()}},methods:{validate(e){return""===e||e.match(/([#.@]?[\w.:> ]+)[\s]{[\r\n]?([A-Za-z\- \r\n\t]+[:][\s]*[\w ./()\-!]+;[\r\n]*(?:[A-Za-z\- \r\n\t]+[:][\s]*[\w ./()\-!]+;[\r\n]*(2)*)*)}/gim)},save(){let e="";if(this.validate(this.customCss)){const t={...this.config.appConfig};t.customCss=this.customCss,localStorage.setItem(j["localStorageKeys"].APP_CONFIG,JSON.stringify(t)),e="Changes saved successfully",ue("User syles has been saved","Custom CSS Update"),this.inject(this.customCss),""===this.customCss&&setTimeout(()=>{location.reload()},1500)}else e="Error - Invalid CSS",ue(e,"Custom CSS Update");this.$toasted.show(e)},inject(e){const t=e.replace(/<\/?[^>]+(>|$)/g,""),a=document.createElement("style");a.textContent=t,document.head.append(a)}}},ga=pa,ha=(a("9e50"),Object(S["a"])(ga,Gt,Wt,!1,null,null,null)),_a=ha.exports,fa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"cloud-backup-restore-wrapper"},[a("div",{staticClass:"section intro"},[a("h2",[e._v(e._s(e.$t("cloud-sync.title")))]),a("p",{staticClass:"intro"},[e._v(" "+e._s(e.$t("cloud-sync.intro-l1"))+" "),a("br"),a("br"),e._v(" "+e._s(e.$t("cloud-sync.intro-l2"))+" "),a("br"),e._v(" "+e._s(e.$t("cloud-sync.intro-l3"))+" "),a("a",{attrs:{href:"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md"}},[e._v("docs")])])]),a("div",{staticClass:"section backup-section"},[(e.backupId,a("h3",[e._v(e._s(e.$t("cloud-sync.backup-title-setup")))])),a("Input",{attrs:{name:"backup-password",label:e.backupId?e.$t("cloud-sync.password-label-update"):e.$t("cloud-sync.password-label-setup"),layout:"vertical",type:"password"},model:{value:e.backupPassword,callback:function(t){e.backupPassword=t},expression:"backupPassword"}}),a("Button",{attrs:{click:e.checkPass},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.backupId?e.$t("cloud-sync.backup-button-update"):e.$t("cloud-sync.backup-button-setup"))+" ")]},proxy:!0},{key:"icon",fn:function(){return[a("IconBackup")]},proxy:!0}])}),e.backupId?a("div",{staticClass:"results-view"},[a("span",{staticClass:"backup-id-label"},[e._v(e._s(e.$t("cloud-sync.backup-id-label"))+": ")]),a("pre",{staticClass:"backup-id-value"},[e._v(e._s(e.backupId))]),a("span",{staticClass:"backup-id-note"},[e._v(e._s(e.$t("cloud-sync.backup-id-note")))])]):e._e()],1),a("div",{staticClass:"section restore-section"},[a("h3",[e._v(e._s(e.$t("cloud-sync.restore-title")))]),a("Input",{attrs:{name:"restore-code",label:e.$t("cloud-sync.restore-id-label")},model:{value:e.restoreCode,callback:function(t){e.restoreCode=t},expression:"restoreCode"}}),a("Input",{attrs:{name:"restore-password",label:e.$t("cloud-sync.restore-password-label"),type:"password"},model:{value:e.restorePassword,callback:function(t){e.restorePassword=t},expression:"restorePassword"}}),a("Button",{attrs:{click:e.restoreBackup},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(e._s(e.$t("cloud-sync.restore-button")))]},proxy:!0},{key:"icon",fn:function(){return[a("IconRestore")]},proxy:!0}])})],1)])},ba=[],ka=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:"input-container "+e.layout},[e.label?a("label",{attrs:{for:"name"}},[e._v(e._s(e.label))]):e._e(),a("input",{attrs:{type:e.type,name:e.name,id:e.name,placeholder:e.placeholder},domProps:{value:e.value},on:{input:function(t){return e.updateValue(t.target.value)}}})])},va=[],wa={name:"Input",props:{value:String,label:String,name:String,placeholder:String,type:{default:"text",type:String},layout:{validator:e=>-1!==["horizontal","vertical"].indexOf(e),type:String,default:"vertical"}},methods:{updateValue(e){this.$emit("input",e)}}},ya=wa,Sa=(a("2d25"),Object(S["a"])(ya,ka,va,!1,null,"5df13ed2",null)),Ca=Sa.exports,Ia=a("3a1e"),xa=a.n(Ia),za=a("e6a4"),Oa=a.n(za),Ea=a("c198"),Aa=a.n(Ea),Ta=a("f8d5"),ja=a.n(Ta);const La=j["backupEndpoint"],$a=(e,t)=>{const a=JSON.stringify(e),o=Aa.a.encrypt(a,t);return o.toString()},Na=(e,t)=>Aa.a.decrypt(e,t).toString(ja.a),Ma=e=>te()(e).toString().slice(0,14),Da=(e,t)=>Vt.a.post(La,{userData:$a(e,t),subHash:Ma(t)}),Pa=(e,t,a)=>Vt.a.put(La,{backupId:a,userData:$a(e,t),subHash:Ma(t)}),Va=e=>Object.entries(e).map(e=>e.map(encodeURIComponent).join("=")).join("&"),Ba=(e,t)=>{const a=Va({backupId:e,subHash:Ma(t)}),o=`${La}/?${a}`;return new Promise((e,a)=>{Vt.a.get(o).then(o=>{if(!o.data||o.data.errorMsg)a(o.data.errorMsg||"Error");else{const n=Na(o.data.userData.userData,t);try{e(JSON.parse(n))}catch(s){a(s)}}})})};var Ua={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[j["localStorageKeys"].BACKUP_ID]||"",progress:new ct["a"]({color:"var(--progress-bar)"})}},components:{Button:sa,Input:Ca,IconBackup:xa.a,IconRestore:Oa.a},methods:{restoreBackup(){this.progress.start(),Ba(this.restoreCode,this.restorePassword).then(e=>{this.restoreFromBackup(e,this.restoreCode),this.progress.end()}).catch(e=>{this.showErrorMsg(e),this.progress.end()})},checkPass(){const e=localStorage[j["localStorageKeys"].BACKUP_HASH]||void 0;this.backupPassword?e?e===this.makeHash(this.backupPassword)?this.makeUpdate():this.showErrorMsg(this.$t("cloud-sync.backup-error-password")):this.makeBackup():this.showErrorMsg(this.$t("cloud-sync.backup-missing-password"))},makeBackup(){this.progress.start(),Da(this.config,this.backupPassword).then(e=>{e.data&&!e.data.errorMsg&&e.data.backupId?this.updateUiAfterBackup(e.data.backupId,!1):this.showErrorMsg(e.data.errorMsg||"Error"),this.progress.end()}).catch(()=>{this.showErrorMsg(this.$t("cloud-sync.backup-error-unknown")),this.progress.end()})},makeUpdate(){this.progress.start(),Pa(this.config,this.backupPassword,this.backupId).then(e=>{e.data&&!e.data.errorMsg&&e.data.backupId?this.updateUiAfterBackup(e.data.backupId,!0):this.showErrorMsg(e.data.errorMsg||"Error"),this.progress.end()}).catch(()=>{this.showErrorMsg(this.$t("cloud-sync.backup-error-unknown")),this.progress.end()})},restoreFromBackup(e,t){localStorage.setItem(j["localStorageKeys"].CONF_SECTIONS,JSON.stringify(e.sections)),localStorage.setItem(j["localStorageKeys"].APP_CONFIG,JSON.stringify(e.appConfig)),localStorage.setItem(j["localStorageKeys"].PAGE_INFO,JSON.stringify(e.pageInfo)),e.appConfig.theme&&localStorage.setItem(j["localStorageKeys"].THEME,e.appConfig.theme),this.setBackupIdLocally(t,this.restorePassword),this.showSuccessMsg(this.$t("cloud-sync.restore-success-msg")),setTimeout(()=>{location.reload()},1500)},updateUiAfterBackup(e,t=!1){this.setBackupIdLocally(e,this.backupPassword),this.showSuccessMsg(`${t?"Update":"Backup"} ${this.$t("cloud-sync.backup-success-msg")}`),this.backupPassword=""},showErrorMsg(e){de(e,"Cloud Backup"),this.$toasted.show(e,{className:"toast-error"})},showSuccessMsg(e){ue(e,"Cloud Backup"),this.$toasted.show(e,{className:"toast-success"})},makeHash(e){return te()(e).toString()},setBackupIdLocally(e,t){this.backupId=e;const a=this.makeHash(t);localStorage.setItem(j["localStorageKeys"].BACKUP_ID,e),localStorage.setItem(j["localStorageKeys"].BACKUP_HASH,a)}}},Ha=Ua,Ra=(a("8b18"),Object(S["a"])(Ha,fa,ba,!1,null,"2c1cbd90",null)),Ka=Ra.exports,qa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("modal",{attrs:{name:e.modalName,resizable:!0,width:"50%",height:"60%",classes:"dashy-modal"}},[a("div",{staticClass:"rebuild-app-container"},[a("h3",{staticClass:"rebuild-app-title"},[e._v(e._s(e.$t("app-rebuild.title")))]),a("p",[e._v(" "+e._s(e.$t("app-rebuild.rebuild-note-l1"))+" "+e._s(e.$t("app-rebuild.rebuild-note-l2"))),a("br"),e._v(" "+e._s(e.$t("app-rebuild.rebuild-note-l3"))+" ")]),a("Button",{attrs:{click:e.startBuild,disabled:e.loading||!e.allowRebuild,disallow:!e.allowRebuild},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.loading?e.$t("app-rebuild.rebuilding-status-1"):e.$t("app-rebuild.rebuild-button"))+" ")]},proxy:!0},{key:"icon",fn:function(){return[a("RebuildIcon")]},proxy:!0}])}),e.allowRebuild?e._e():a("div",[a("p",{staticClass:"disallow-rebuild-msg"},[e._v(e._s(e.$t("app-rebuild.error-permission")))])]),e.loading?a("div",{staticClass:"loader-info"},[a("LoadingAnimation",{staticClass:"loader"}),a("p",{staticClass:"loading-message"},[e._v(e._s(e.$t("app-rebuild.rebuilding-status-2"))+"...")])],1):e._e(),void 0!==e.success?a("div",{staticClass:"rebuild-response"},[e.success?a("p",{staticClass:"response-status success"},[e._v(" ✅ "+e._s(e.$t("app-rebuild.success-msg"))+" ")]):a("p",{staticClass:"response-status failure"},[e._v(" ❌ "+e._s(e.$t("app-rebuild.fail-msg"))+" ")]),a("pre",{staticClass:"output"},[a("code",[e._v(e._s(e.output||e.error))])]),a("p",{staticClass:"rebuild-message"},[e._v(e._s(e.message))]),e.success?a("p",{staticClass:"rebuild-message"},[e._v(" "+e._s(e.$t("app-rebuild.reload-note"))+" ")]):e._e(),e.success?a("Button",{attrs:{click:e.refreshPage},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(e._s(e.$t("app-rebuild.reload-button")))]},proxy:!0},{key:"icon",fn:function(){return[a("ReloadIcon")]},proxy:!0}],null,!1,3658341317)}):e._e()],1):e._e()],1)])},Fa=[],Ga=a("0911"),Wa=a.n(Ga),Ja=a("3ff5"),Ya=a.n(Ja),Za=a("6266"),Xa=a.n(Za),Qa={name:"RebuildApp",inject:["config"],components:{Button:sa,RebuildIcon:Wa.a,ReloadIcon:Ya.a,LoadingAnimation:Xa.a},data:()=>({modalName:j["modalNames"].REBUILD_APP,loading:!1,success:void 0,error:"",output:"",message:"",allowRebuild:!0,progress:new ct["a"]({color:"var(--progress-bar)"})}),methods:{startBuild(){const e=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.8.3",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,t=`${e}${j["serviceEndpoints"].rebuild}`;this.loading=!0,this.progress.start(),Vt.a.get(t).then(e=>{this.finished(e.data||!1),this.progress.end()}).catch(e=>{this.finished({success:!1,error:e}),this.progress.end()})},finished(e){if(this.loading=!1,e){const{success:t,output:a,error:o,message:s}=e;this.success=t,this.output=a,this.message=s,this.error=o}this.$toasted.show(this.success?"✅ "+this.$t("app-rebuild.success-msg"):"❌ "+this.$t("app-rebuild.fail-msg"),{className:"toast-"+(this.success?"success":"error")})},refreshPage(){location.reload()}},mounted(){this.config&&this.config.appConfig&&!1===this.config.appConfig.allowConfigEdit&&(this.allowRebuild=!1)}},eo=Qa,to=(a("4b4b"),Object(S["a"])(eo,qa,Fa,!1,null,"e1fe6988",null)),ao=to.exports,oo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.isVersionValid()?a("div",{staticClass:"app-version"},[a("p",[e._v(" "+e._s(e.$t("updates.app-version-note"))+" "+e._s(e.appVersion)+" ")]),e.checksEnabled?a("div",[e.finished?e._e():a("p",[e._v(" "+e._s(e.error?"Error checking for updates.":"Chcekcing for Updates...")+" ")]),e.finished&&e.isUpToDate?a("p",{staticClass:"up-to-date"},[e._v(" ✅ "+e._s(e.$t("updates.up-to-date"))+" ")]):e.finished&&!e.veryOutOfDate?a("p",{staticClass:"update-availible"},[e._v(" ⚠️"+e._s(e.$t("updates.out-of-date"))+": "),a("b",[e._v(e._s(e.latestVersion))])]):e.finished&&e.veryOutOfDate?a("p",{staticClass:"big-update-availible"},[e._v(" ❗ "+e._s(e.$t("updates.out-of-date"))+": "),a("b",[e._v(e._s(e.latestVersion))]),a("span",{staticClass:"please-update"},[e._v(" "+e._s(e.$t("updates.unsupported-version-l1"))+"."),a("br"),e._v(" "+e._s(e.$t("updates.unsupported-version-2"))+" "+e._s(e.latestVersion)+" ")])]):e._e()]):e._e()]):e._e()},so=[],no={name:"AppInfoModal",inject:["config"],data(){return{appVersion:"1.8.3",progress:new ct["a"]({color:"var(--progress-bar)"}),latestVersion:"",checksEnabled:!0,isUpToDate:!0,veryOutOfDate:!1,finished:!1,error:!1}},mounted(){const e=this.config.appConfig||{};!this.appVersion||e&&e.disableUpdateChecks?this.checksEnabled=!1:this.checkVersion()},methods:{checkVersion(){const e="https://raw.githubusercontent.com/Lissy93/dashy/master/package.json";this.progress.start(),Vt.a.get(e).then(e=>{e&&e.data&&e.data.version&&(this.latestVersion=e.data.version,this.isUpToDate=this.checkIfUpToDate(this.appVersion,this.latestVersion),this.finished=!0,this.progress.end())}).catch(()=>{this.error=!0,this.progress.end()})},checkIfUpToDate(e,t){const a=e=>parseInt(e.replaceAll(".",""),10),o=a(t)-a(e);return o>5&&(this.veryOutOfDate=!0),o<=0},isVersionValid(){const e=!Number.isNaN(parseInt(this.appVersion.replaceAll(".",""),10));return e||me(`Unable to check for updates, because current version is unavailible. ${this.appVersion} is not a valid version.`),e}}},io=no,ro=(a("a57c"),Object(S["a"])(io,oo,so,!1,null,"3b1179a6",null)),lo=ro.exports,co=a("cbd9"),uo=a.n(co),mo=a("0278"),po=a.n(mo),go=a("e7fa"),ho=a.n(go),_o=a("7da9"),fo=a.n(_o),bo=a("6780"),ko=a.n(bo),vo=a("0845"),wo=a.n(vo),yo=a("2413"),So=a.n(yo),Co={name:"ConfigContainer",data(){return{jsonParser:Nt,backupId:localStorage[j["localStorageKeys"].BACKUP_ID]||"",appVersion:"1.8.3",latestVersion:""}},props:{config:Object},computed:{sections:function(){return this.config.sections},yaml(){return this.jsonParser(this.config)}},components:{JsonEditor:Ft,CustomCssEditor:_a,CloudBackupRestore:Ka,RebuildApp:ao,AppVersion:lo,DownloadIcon:uo.a,DeleteIcon:po.a,EditIcon:ho.a,CloudIcon:ko.a,CustomCssIcon:fo.a,LanguageIcon:wo.a,RebuildIcon:Wa.a,IconAbout:So.a},methods:{navigateToTab(e){const t=this.$refs.tabView.navItems[e];this.$refs.tabView.activeTabItem(t)},openRebuildAppModal(){this.$modal.show(j["modalNames"].REBUILD_APP)},openAboutModal(){this.$modal.show(j["modalNames"].ABOUT_APP)},openLanguageSwitchModal(){this.$modal.show(j["modalNames"].LANG_SWITCHER)},copyConfigToClipboard(){navigator.clipboard.writeText(this.jsonParser(this.config)),this.$toasted.show(this.$t("config.data-copied-msg"))},resetLocalSettings(){const e=`${this.$t("config.reset-config-msg-l1")}${this.$t("config.reset-config-msg-l2")}\n\n${this.$t("config.reset-config-msg-l3")}`,t=confirm(e);t&&(localStorage.clear(),this.$toasted.show(this.$t("config.data-cleared-msg")),setTimeout(()=>{location.reload(!0)},1900))},downloadConfigFile(e,t){const a=document.createElement("a");a.setAttribute("href","data:text/plain;charset=utf-8, "+encodeURIComponent(t)),a.setAttribute("download",e),a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a)},getLanguage(){const e=et();return e?`${e.flag} ${e.name}`:""}}},Io=Co,xo=(a("3d56"),a("1d47"),Object(S["a"])(Io,Et,At,!1,null,"dcfaf5de",null)),zo=xo.exports,Oo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"language-switcher"},[a("h3",{staticClass:"title"},[e._v(e._s(e.$t("language-switcher.title")))]),a("p",{staticClass:"intro"},[e._v(e._s(e.$t("language-switcher.dropdown-label"))+":")]),a("v-select",{staticClass:"language-dropdown",attrs:{selectOnTab:!0,options:e.languageList,label:"friendlyName",input:e.applyLanguageLocally()},model:{value:e.language,callback:function(t){e.language=t},expression:"language"}}),a("Button",{staticClass:"save-button",attrs:{click:e.saveLanguage,disallow:!e.language}},[e._v(" "+e._s(e.$t("language-switcher.save-button"))+" "),a("SaveConfigIcon")],1),e.language?a("p",{staticClass:"current-lang"},[e._v(" 🌐 "+e._s(e.language.flag)+" "+e._s(e.language.name)+" ")]):e._e(),e.$i18n.availableLocales.length<=1?a("p",{staticClass:"sad-times"},[e._v(" There are not currently any additional languages supported, but stay tuned as more are on their way! ")]):e._e()],1)},Eo=[],Ao={name:"LanguageSwitcher",inject:["config"],components:{Button:sa,SaveConfigIcon:ia.a},data(){return{language:this.getCurrentLanguage(),modalName:j["modalNames"].LANG_SWITCHER}},computed:{languageList:()=>Fe.map(e=>{const t=e;return t.friendlyName=`${e.flag} ${e.name}`,t})},methods:{checkLocale(e){if(!e||!e.code)return!1;const t=this.$i18n.availableLocales;return t.includes(e.code)},applyLanguageLocally(){this.language&&this.language.code?this.$i18n.locale=this.language.code:me("Error applying language, it's config may be missing of incomplete")},saveLanguage(){const e=this.language;if(this.checkLocale(e)){localStorage.setItem(j["localStorageKeys"].LANGUAGE,e.code),this.applyLanguageLocally();const t=e.flag+" "+`${this.$t("language-switcher.success-msg")} ${e.name}`;this.$toasted.show(t,{className:"toast-success"}),this.$modal.hide(this.modalName)}else this.$toasted.show("Unable to update language",{className:"toast-error"}),me("Unable to apply language")},getCurrentLanguage(){const e=e=>Fe.find(t=>t.code===e),t=localStorage[j["localStorageKeys"].LANGUAGE]||this.config.appConfig.language;return e(t)}}},To=Ao,jo=(a("f60a"),a("f341"),Object(S["a"])(To,Oo,Eo,!1,null,"1720d3c1",null)),Lo=jo.exports,$o=a("35c3"),No=a.n($o),Mo=a("36fa"),Do=a.n(Mo),Po=a("5b44"),Vo=a.n(Po),Bo=a("3b49"),Uo=a.n(Bo),Ho=a("3168"),Ro=a.n(Ho),Ko={name:"ConfigLauncher",data(){return{modalNames:j["modalNames"],viewSwitcherOpen:!1}},components:{ConfigContainer:zo,LanguageSwitcher:Lo,IconSpanner:No.a,IconViewMode:Do.a,IconHome:Vo.a,IconWorkspaceView:Uo.a,IconMinimalView:Ro.a},props:{sections:Array,pageInfo:Object,appConfig:Object},methods:{showEditor:function(){this.$modal.show(j["modalNames"].CONF_EDITOR),this.$emit("modalChanged",!0)},combineConfig(){const e={};return e[j["topLevelConfKeys"].APP_CONFIG]=this.appConfig,e[j["topLevelConfKeys"].PAGE_INFO]=this.pageInfo,e[j["topLevelConfKeys"].SECTIONS]=this.sections,e[j["topLevelConfKeys"].APP_CONFIG].theme=localStorage[j["localStorageKeys"].THEME]||e[j["topLevelConfKeys"].APP_CONFIG].theme,e},tooltip(e){return{content:e,trigger:"hover focus",delay:250}},openChangeViewMenu(){this.viewSwitcherOpen=!this.viewSwitcherOpen},closeViewSwitcher(){this.viewSwitcherOpen=!1}}},qo=Ko,Fo=(a("7c6b"),Object(S["a"])(qo,zt,Ot,!1,null,"199b60a3",null)),Go=Fo.exports,Wo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeThemeConfigurator,expression:"closeThemeConfigurator"}],staticClass:"theme-selector-section"},[a("div",[a("span",{staticClass:"theme-label"},[e._v(e._s(e.$t("settings.theme-label")))]),a("v-select",{staticClass:"theme-dropdown",attrs:{options:e.themeNames,tabindex:-2},model:{value:e.selectedTheme,callback:function(t){e.selectedTheme=t},expression:"selectedTheme"}})],1),a("IconPalette",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.$t("theme-maker.title"),expression:"$t('theme-maker.title')"}],staticClass:"color-button",on:{click:e.openThemeConfigurator}}),e.themeConfiguratorOpen?a("CustomThemeMaker",{attrs:{themeToEdit:e.selectedTheme},on:{closeThemeConfigurator:function(t){return e.closeThemeConfigurator()}}}):e._e()],1)},Jo=[];const Yo=()=>Ze(),Zo=e=>{j["mainCssVars"].forEach(e=>{document.documentElement.style.removeProperty("--"+e)});const t=Xe()[e];t&&Object.keys(t).forEach(e=>{document.documentElement.style.setProperty("--"+e,t[e])})},Xo=e=>{const t=document.getElementsByTagName("html")[0];t.hasAttribute("data-theme")&&t.removeAttribute("data-theme"),t.setAttribute("data-theme",e)},Qo=function(){const e=e=>{const t=document.createElement("link");return t.rel="stylesheet",t.href=e,document.head.appendChild(t),new Promise((e,a)=>{t.onload=t=>{const{sheet:a}=t.target;a.disabled=!0,e(a)},t.onerror=a})},t=(e,t)=>!(!t||"custom"!==t&&!e[t])||(me(`Theme: '${t||"[not selected]"}' does not exist.`),!1),a=(e,a)=>{if(t(e,a)){const t=e;Object.keys(e).forEach(e=>{t[e].disabled=e!==a})}},o={};return{add(t,a){return e(a).then(e=>{o[t]=e})},set theme(e){a(o,e)},get theme(){return Object.keys(o).find(e=>!o[e].disabled)}}};var es=a("4400"),ts=a.n(es),as={name:"ThemeSelector",props:{externalThemes:Object,confTheme:String,userThemes:Array},components:{CustomThemeMaker:ma,IconPalette:ts.a},watch:{selectedTheme(e){this.updateTheme(e)}},data(){return{selectedTheme:this.getInitialTheme(),builtInThemes:[...L.a.builtInThemes,...this.userThemes],themeHelper:new Qo,themeConfiguratorOpen:!1,ApplyLocalTheme:Xo,ApplyCustomVariables:Zo}},computed:{themeNames:function(){const e=Object.keys(this.externalThemes),t=["custom"];return[...e,...this.builtInThemes,...t]}},created(){const e=Object.keys(this.externalThemes).map(e=>this.themeHelper.add(e,this.externalThemes[e]));this.isThemeLocal(this.selectedTheme)?this.updateTheme(this.selectedTheme):this.selectedTheme!==L.a.theme&&Promise.all(e).then(()=>{this.updateTheme(this.selectedTheme)})},methods:{getInitialTheme(){return localStorage[j["localStorageKeys"].THEME]||this.confTheme||L.a.theme},isThemeLocal(e){return this.builtInThemes.includes(e)},openThemeConfigurator(){this.$emit("modalChanged",!0),this.themeConfiguratorOpen=!0},closeThemeConfigurator(){this.themeConfiguratorOpen=!1},updateTheme(e){"Default"===e?(this.resetToDefault(),this.themeHelper.theme="Default"):this.isThemeLocal(e)?this.ApplyLocalTheme(e):this.themeHelper.theme=e,this.ApplyCustomVariables(e),localStorage.setItem(j["localStorageKeys"].THEME,e)},resetToDefault(){document.getElementsByTagName("html")[0].removeAttribute("data-theme")}}},os=as,ss=(a("4ade"),Object(S["a"])(os,Wo,Jo,!1,null,null,null)),ns=ss.exports,is=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("span",{staticClass:"options-label"},[e._v(e._s(e.$t("settings.layout-label")))]),a("div",{staticClass:"display-options"},[a("IconDeafault",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.layout-auto")),expression:"tooltip($t('settings.layout-auto'))"}],class:"layout-icon "+("auto"===e.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(t){return e.updateDisplayLayout("auto")}}}),a("IconHorizontal",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.layout-horizontal")),expression:"tooltip($t('settings.layout-horizontal'))"}],class:"layout-icon "+("horizontal"===e.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(t){return e.updateDisplayLayout("horizontal")}}}),a("IconVertical",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.layout-vertical")),expression:"tooltip($t('settings.layout-vertical'))"}],class:"layout-icon "+("vertical"===e.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(t){return e.updateDisplayLayout("vertical")}}})],1)])},rs=[],ls=a("c715"),cs=a.n(ls),us=a("570d"),ds=a.n(us),ms=a("f9d7"),ps=a.n(ms),gs={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:cs.a,IconHorizontal:ds.a,IconVertical:ps.a},methods:{updateDisplayLayout(e){this.$emit("layoutUpdated",e)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},hs=gs,_s=(a("5dbe"),Object(S["a"])(hs,is,rs,!1,null,"b3a6111c",null)),fs=_s.exports,bs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("span",{staticClass:"options-label"},[e._v(e._s(e.$t("settings.item-size-label")))]),a("div",{staticClass:"display-options"},[a("IconSmall",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.item-size-small")),expression:"tooltip($t('settings.item-size-small'))"}],class:"layout-icon "+("small"===e.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(t){return e.updateIconSize("small")}}}),a("IconMedium",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.item-size-medium")),expression:"tooltip($t('settings.item-size-medium'))"}],class:"layout-icon "+("medium"===e.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(t){return e.updateIconSize("medium")}}}),a("IconLarge",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.item-size-large")),expression:"tooltip($t('settings.item-size-large'))"}],class:"layout-icon "+("large"===e.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(t){return e.updateIconSize("large")}}})],1)])},ks=[],vs=a("d8e8"),ws=a.n(vs),ys=a("7075"),Ss=a.n(ys),Cs=a("922c"),Is=a.n(Cs),xs={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:ws.a,IconMedium:Ss.a,IconLarge:Is.a},methods:{updateIconSize(e){this.$emit("iconSizeUpdated",e)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},zs=xs,Os=(a("89e2"),Object(S["a"])(zs,bs,ks,!1,null,"1ff45660",null)),Es=Os.exports,As=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("span",{staticClass:"user-type-note"},[e._v(e._s(e.makeText()))]),a("div",{staticClass:"display-options"},[e.userType==e.userStateEnum.loggedIn?a("IconLogout",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.sign-out-tooltip")),expression:"tooltip($t('settings.sign-out-tooltip'))"}],staticClass:"layout-icon",attrs:{tabindex:"-2"},on:{click:function(t){return e.logout()}}}):e._e(),e.userType==e.userStateEnum.guestAccess?a("IconLogout",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip(e.$t("settings.sign-in-tooltip")),expression:"tooltip($t('settings.sign-in-tooltip'))"}],staticClass:"layout-icon",attrs:{tabindex:"-2"},on:{click:function(t){return e.goToLogin()}}}):e._e()],1)])},Ts=[],js=a("0123"),Ls=a.n(js),$s={name:"AuthButtons",components:{IconLogout:Ls.a},props:{userType:Number},data(){return{userStateEnum:j["userStateEnum"]}},methods:{logout(){Ce(),this.$toasted.show(this.$t("login.logout-message")),setTimeout(()=>{Br.push({path:"/login"})},500)},goToLogin(){Br.push({path:"/login"})},tooltip(e){return{content:e,trigger:"hover focus",delay:250}},makeText(){if(this.userType===j["userStateEnum"].loggedIn){const e=localStorage[j["localStorageKeys"].USERNAME];return e?this.$t("settings.sign-in-welcome",{username:e}):""}return this.userType===j["userStateEnum"].guestAccess?this.$t("settings.sign-in-tooltip"):""}}},Ns=$s,Ms=(a("7ac4"),Object(S["a"])(Ns,As,Ts,!1,null,"67393502",null)),Ds=Ms.exports,Ps=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("transition",{attrs:{name:"slide-fade"}},[e.shouldHide?e._e():a("div",{staticClass:"kb-sc-info"},[a("h5",[e._v("There are keyboard shortcuts! ⌨️🙌")]),a("div",{staticClass:"close",attrs:{title:"Hide forever [Esc]"},on:{click:function(t){return e.hideWelcomeHelper()}}},[e._v("x")]),a("p",{attrs:{title:"Press [Esc] to hide this tip forever. See there's even a shortcut for that! 🚀"}},[e._v(" Just start typing to filter. Then use the tab key to cycle through results, and press enter to launch the selected item, or alt + enter to open in a modal. You can hit Esc at anytime to clear the search. Easy 🥳 ")])])])},Vs=[],Bs={name:"KeyboardShortcutInfo",data(){return{shouldHide:!0,timeDelay:3e3}},methods:{shouldHideWelcomeMessage(){return!!localStorage[j["localStorageKeys"].HIDE_WELCOME_BANNER]},hideWelcomeHelper(){this.shouldHide=!0,localStorage.setItem(j["localStorageKeys"].HIDE_WELCOME_BANNER,!0),window.removeEventListener("keyup",this.keyPressEvent)},keyPressEvent(e){27===e.keyCode&&this.hideWelcomeHelper()}},mounted(){const e=this.shouldHideWelcomeMessage();e?this.$destroy():(window.setTimeout(()=>{this.shouldHide=e},this.timeDelay),window.addEventListener("keyup",this.keyPressEvent))}},Us=Bs,Hs=(a("9517"),Object(S["a"])(Us,Ps,Vs,!1,null,"c5f17d9a",null)),Rs=Hs.exports,Ks=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("modal",{attrs:{name:e.modalName,resizable:!0,width:"60%",height:"60%",classes:"dashy-modal"}},[a("div",{staticClass:"about-modal"},[a("router-link",{staticClass:"title",attrs:{to:"/about"}},[a("h2",[e._v("App Info")])]),a("h3",[e._v("Version")]),a("AppVersion",{staticClass:"app-version"}),a("h3",[e._v("Error Log")]),e.errorLog?a("pre",{staticClass:"logs"},[a("code",[e._v(e._s(e.errorLog))])]):a("p",[e._v("No recent errors detected :)")]),a("h3",[e._v("Service Worker Status")]),a("pre",{staticClass:"logs"},[a("code",[e._v(e._s(e.serviceWorkerInfo))])]),a("h3",[e._v("Config Validation Status")]),a("pre",{staticClass:"logs"},[a("code",[e._v(e._s(e.getIsConfigValidStatus()))])]),a("hr"),a("h3",[e._v("Help & Support")]),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/Lissy93/dashy/discussions"}},[e._v("Get Support")])]),a("li",[a("a",{attrs:{href:"https://github.com/Lissy93/dashy/issues/new/choose"}},[e._v("Report a Bug")])])]),a("span",{staticClass:"small-note"},[e._v("Please include the following info in your bug report: ")]),a("a",{staticClass:"info",on:{click:function(t){e.showInfo=!e.showInfo}}},[e._v(e._s(e.showInfo?"Hide":"Show")+" system info")]),e.showInfo?a("div",{staticClass:"system-info"},[a("h4",[e._v("System Info")]),a("code",[a("b",[e._v("Dashy Version:")]),e._v(" V "+e._s(e.appVersion))]),a("br"),a("code",[a("b",[e._v("Browser:")]),e._v(" "+e._s(e.systemInfo.browser))]),a("br"),a("code",[a("b",[e._v("Is Mobile?")]),e._v(" "+e._s(e.systemInfo.isMobile?"Yes":"No"))]),a("br"),a("code",[a("b",[e._v("OS:")]),e._v(" "+e._s(e.systemInfo.os))]),a("br")]):e._e(),a("h3",[e._v("About")]),a("p",{staticClass:"about-text"},[e._v(" Source: "),a("a",{attrs:{href:"https://github.com/lissy93/dashy"}},[e._v("github.com/lissy93/dashy")]),a("br"),e._v(" Documentation: "),a("a",{attrs:{href:"https://dashy.to/docs"}},[e._v("dashy.to/docs")])]),a("h3",[e._v("License")]),a("p",[e._v("Licensed under MIT X11. Copyright © 2021")]),a("br"),a("br")],1)])},qs=[],Fs={name:"AppInfoModal",components:{AppVersion:lo},data(){return{modalName:j["modalNames"].ABOUT_APP,appVersion:"1.8.3",systemInfo:this.getSystemInfo(),errorLog:this.getErrorLog(),serviceWorkerInfo:"Checking...",showInfo:!1}},mounted(){setTimeout(()=>{this.serviceWorkerInfo=this.getSwStatus()},100)},methods:{getErrorLog(){return sessionStorage.getItem(j["sessionStorageKeys"].ERROR_LOG)||""},getIsConfigValidStatus(){const e=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.8.3",BASE_URL:"/"}).VUE_APP_CONFIG_VALID;return void 0===e?"Config validation status is missing":"Config is "+(e?"Valid":"Invalid")},getSwStatus(){const e=sessionStorage[j["sessionStorageKeys"].SW_STATUS],t=e?JSON.parse(e):{};let a="";return t.registered&&(a+="Service worker registered\n"),t.ready&&(a+="Dashy is being served from service worker\n"),t.cached&&(a+="Content has been cached for offline use\n"),t.updateFound&&(a+="New content is downloading\n"),t.updated&&(a+="New content is available; please refresh\n"),t.offline&&(a+="No internet connection found. App is running in offline mode\n"),t.error&&(a+="Error during service worker registration\n"),t.devMode&&(a+="App running in dev mode, no need for service worker\n"),0===a.length&&(a+="No service worker info available"),a},getSystemInfo(){const{userAgent:e}=navigator;let t="Unknown";-1!==e.indexOf("Win")?t="Windows":-1!==e.indexOf("Mac")?t="MacOS":-1!==e.indexOf("Android")?t="Android":-1!==e.indexOf("iPhone")?t="iOS":-1!==e.indexOf("Linux")?t="Linux":-1!==e.indexOf("X11")&&(t="UNIX");let a="Unknown";a=-1!==e.indexOf("Opera")?"Opera":-1!==e.indexOf("Chrome")?"Chrome":-1!==e.indexOf("Safari")?"Safari":-1!==e.indexOf("Firefox")?"Firefox":-1!==e.indexOf("MSIE")?"IE":"Unknown";const o=!!navigator.userAgent.match(/iphone|android|blackberry/gi)||!1;return{os:t,browser:a,userAgent:e,isMobile:o}}}},Gs=Fs,Ws=(a("6f36"),Object(S["a"])(Gs,Ks,qs,!1,null,"4792975e",null)),Js=Ws.exports,Ys=a("5703"),Zs=a.n(Ys),Xs=a("5f32"),Qs=a.n(Xs),en={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,externalThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:xt,ConfigLauncher:Go,ThemeSelector:ns,LayoutSelector:fs,ItemSizeSelector:Es,AuthButtons:Ds,KeyboardShortcutInfo:Rs,AppInfoModal:Js,IconOpen:Zs.a,IconClose:Qs.a},inject:["visibleComponents"],methods:{userIsTypingSomething(e){this.$emit("user-is-searchin",e)},clearFilterInput(){this.$refs.SearchBar.clearFilterInput()},updateDisplayLayout(e){this.$emit("change-display-layout",e)},updateIconSize(e){this.$emit("change-icon-size",e)},modalChanged(e){this.$emit("change-modal-visibility",e)},getInitialTheme(){return this.appConfig.theme||""},getUserThemes(){const e=this.appConfig.cssThemes||[];return"string"===typeof e?[e]:e},toggleSettingsVisibility(){this.settingsVisible=!this.settingsVisible,localStorage.setItem(j["localStorageKeys"].HIDE_SETTINGS,this.settingsVisible)},getSettingsVisibility(){return JSON.parse(localStorage[j["localStorageKeys"].HIDE_SETTINGS]||(this.visibleComponents||j["visibleComponents"]).settings)}},computed:{userState(){return Oe()}},data(){return{settingsVisible:this.getSettingsVisibility(),searchVisible:(this.visibleComponents||j["visibleComponents"]).searchBar}}},tn=en,an=(a("2efb"),Object(S["a"])(tn,mt,pt,!1,null,"797ad208",null)),on=an.exports,sn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("Collapsable",{attrs:{title:e.title,icon:e.icon,uniqueKey:e.groupId,collapsed:e.displayData.collapsed,cols:e.displayData.cols,rows:e.displayData.rows,color:e.displayData.color,customStyles:e.displayData.customStyles}},[!e.items||e.items.length<1?a("div",{staticClass:"no-items"},[e._v(" No Items to Show Yet ")]):a("div",{class:"there-are-items "+(e.isGridLayout?"item-group-grid":""),style:e.gridStyle},[e._l(e.sortedItems,(function(t){return a("Item",{key:e.makeId(e.title,t.title),attrs:{id:e.makeId(e.title,t.title),url:t.url,title:t.title,description:t.description,icon:t.icon,target:t.target,color:t.color,backgroundColor:t.backgroundColor,statusCheckUrl:t.statusCheckUrl,statusCheckHeaders:t.statusCheckHeaders,itemSize:e.newItemSize,hotkey:t.hotkey,provider:t.provider,enableStatusCheck:e.shouldEnableStatusCheck(t.statusCheck),statusCheckInterval:e.getStatusCheckInterval(),statusCheckAllowInsecure:t.statusCheckAllowInsecure},on:{itemClicked:function(t){return e.$emit("itemClicked")},triggerModal:e.triggerModal}})})),a("div",{ref:"modalContainer"})],2),a("IframeModal",{ref:"iframeModal-"+e.groupId,attrs:{name:"iframeModal-"+e.groupId},on:{closed:function(t){return e.$emit("itemClicked")},modalChanged:e.modalChanged}})],1)},nn=[],rn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"item-wrapper"},[a("a",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.getTooltipOptions(),expression:"getTooltipOptions()"}],class:"item "+(e.icon?"":"short")+" size-"+e.itemSize,style:"--open-icon: "+e.getUnicodeOpeningIcon()+"; "+e.customStyles,attrs:{href:"modal"!==e.target&&"workspace"!==e.target?e.url:"#",target:"newtab"===e.target?"_blank":"",rel:"noopener noreferrer",tabindex:"0",id:"link-"+e.id},on:{click:e.itemOpened,mouseup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:e.openContextMenu.apply(null,arguments)},contextmenu:function(e){e.preventDefault()}}},[a("div",{class:"tile-title "+(e.icon?"":"bounce no-icon"),attrs:{id:"tile-"+e.id}},[a("span",{staticClass:"text"},[e._v(e._s(e.title))]),a("p",{staticClass:"description"},[e._v(e._s(e.description))])]),a("Icon",{staticClass:"bounce",style:e.customStyles,attrs:{icon:e.icon,url:e.url,size:e.itemSize,color:e.color}}),a("ItemOpenMethodIcon",{staticClass:"opening-method-icon",attrs:{isSmall:!e.icon||"small"===e.itemSize,openingMethod:e.target,position:"bottom right",hotkey:e.hotkey}}),e.enableStatusCheck?a("StatusIndicator",{staticClass:"status-indicator",attrs:{statusSuccess:e.statusResponse?e.statusResponse.successStatus:void 0,statusText:e.statusResponse?e.statusResponse.message:void 0}}):e._e()],1),a("ContextMenu",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.closeContextMenu,expression:"closeContextMenu"}],attrs:{show:e.contextMenuOpen,posX:e.contextPos.posX,posY:e.contextPos.posY,id:"context-menu-"+e.id},on:{contextItemClick:e.contextItemClick}})],1)},ln=[],cn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"item-icon"},["font-awesome"===e.iconType?a("i",{class:e.icon+" "+e.size}):"emoji"===e.iconType?a("i",{class:"emoji-icon "+e.size},[e._v(e._s(e.getEmoji(e.iconPath)))]):"mdi"===e.iconType?a("span",{class:"mdi "+e.icon+" "+e.size}):"si"===e.iconType?a("svg",{class:"simple-icons "+e.size,attrs:{role:"img",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:e.getSimpleIcon(e.icon)}})]):e.icon?a("img",{class:"tile-icon "+e.size+" "+(e.broken?"broken":""),attrs:{src:e.iconPath},on:{error:e.imageNotFound}}):e._e(),e.broken?a("BrokenImage",{staticClass:"missing-image"}):e._e()],1)},un=[],dn=a("5c3d"),mn=a.n(dn),pn=a("9635"),gn=a.n(pn),hn=a("e0a2"),_n=a.n(hn),fn=a("492d"),bn={name:"Icon",inject:["config"],props:{icon:String,url:String,size:String},components:{BrokenImage:gn.a},computed:{iconType:function(){return this.determineImageType(this.icon)},iconPath:function(){return this.getIconPath(this.icon,this.url)}},data(){return{broken:!1}},methods:{isUrl(e){const t=new RegExp(/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-/]))?/);return t.test(e)},isImage(e){const t=/(?:\.([^.]+))?$/,a=["svg","png","jpg"],o=t.exec(e);return o.length>=1&&a.includes(o[1])},isEmoji(e){return _n.a.test(e)&&e.match(/./gu).length?{isEmoji:!0,emojiType:"glyph"}:new RegExp(/^:.*:$/).test(e)?{isEmoji:!0,emojiType:"shortcode"}:"U+"===e.substring(0,2)&&7===e.length?{isEmoji:!0,emojiType:"unicode"}:{isEmoji:!1,emojiType:""}},getEmoji(e){const{emojiType:t}=this.isEmoji(e);if("shortcode"===t){if(fn[e])return fn[e]}else if("unicode"===t)return String.fromCodePoint(parseInt(e.substr(2),16));return e},getFavicon(e,t){if(this.shouldUseDefaultFavicon(e)){const t=e.split("/");if(t.length>=2)return`${t[0]}/${t[1]}/${t[2]}/${j["iconCdns"].faviconName}`}else if(e.includes("http")){const a=this.getHostName(e),o=t||this.config.appConfig.faviconApi||j["faviconApi"],s=j["faviconApiEndpoints"][o];return s.replace("$URL",a)}return""},getCustomFavicon(e,t){const a=t.split("favicon-")[1];if(a){if(Object.keys(j["faviconApiEndpoints"]).includes(a))return this.getFavicon(e,a);me(`The specified favicon API, '${a}' cannot be found.`)}else me("Favicon API not specified");this.broken=!0},shouldUseDefaultFavicon(e){const t=/(127\.)|(192\.168\.)|(10\.)|(172\.1[6-9]\.)|(172\.2[0-9]\.)|(172\.3[0-1]\.)|(::1$)|([fF][cCdD])|(localhost)/;return t.test(e)||"local"===this.config.appConfig.faviconApi},getLocalImagePath(e){return`${j["iconCdns"].localPath}/${e}`},getGenerativeIcon(e){return`${j["iconCdns"].generative}/${this.getHostName(e)}.svg`},getSimpleIcon(e){const t=e.replace("si-",""),a=mn.a.Get(t);return a.path},getIconPath(e,t){switch(this.determineImageType(e)){case"url":return e;case"img":return this.getLocalImagePath(e);case"favicon":return this.getFavicon(t);case"custom-favicon":return this.getCustomFavicon(t,e);case"generative":return this.getGenerativeIcon(t);case"mdi":return e;case"simple-icons":return this.getSimpleIcon(e);case"svg":return e;case"emoji":return e;default:return""}},determineImageType(e){let t="";return t=e?this.isUrl(e)?"url":this.isImage(e)?"img":e.includes("fa-")?"font-awesome":e.includes("mdi-")?"mdi":e.includes("si-")?"si":e.includes("favicon-")?"custom-favicon":"favicon"===e?"favicon":"generative"===e?"generative":this.isEmoji(e).isEmoji?"emoji":"none":"none",t},getHostName(e){try{return new URL(e).hostname}catch(t){return e}},imageNotFound(){this.broken=!0,me(`The path to '${this.icon}' could not be resolved`)}}},kn=bn,vn=(a("de40"),Object(S["a"])(kn,cn,un,!1,null,null,null)),wn=vn.exports,yn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{class:e.makeClass(e.position,e.isSmall,e.isTransparent)},["newtab"===e.openingMethod?a("NewTabOpenIcon"):"sametab"===e.openingMethod?a("SameTabOpenIcon"):"modal"===e.openingMethod?a("IframeOpenIcon"):"workspace"===e.openingMethod?a("WorkspaceOpenIcon"):e._e()],1),e.hotkey?a("div",{class:"hotkey-denominator "+e.makeClass(e.position,e.isSmall,e.isTransparent)},[e._v(" "+e._s(e.hotkey)+" ")]):e._e()])},Sn=[],Cn=a("237e"),In=a.n(Cn),xn=a("2352"),zn=a.n(xn),On=a("1946"),En=a.n(On),An={name:"ItemOpenMethodIcon",props:{openingMethod:String,isSmall:Boolean,position:String,isTransparent:Boolean,hotkey:Number},methods:{makeClass(e="top right",t=!1,a=!1){return`opening-method-icon\n ${e||"top right"}\n ${t?"short":""}\n ${a?"transparent":""}`}},components:{NewTabOpenIcon:In.a,SameTabOpenIcon:zn.a,IframeOpenIcon:En.a,WorkspaceOpenIcon:Uo.a}},Tn=An,jn=(a("b5c9"),Object(S["a"])(Tn,yn,Sn,!1,null,"b0684bc4",null)),Ln=jn.exports,$n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:{content:e.statusText||e.otherStatusText,classes:["status-tooltip","tip-"+e.color()],delay:{show:0,hide:150}},expression:"{\n content: statusText || otherStatusText,\n classes: ['status-tooltip', `tip-${color()}`],\n delay: { show: 0, hide: 150 }\n }"}],staticClass:"indicator"},[a("div",{class:"dot dot-"+e.color()},[e._m(0)])])},Nn=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",[a("span")])}],Mn={name:"StatusIndicator",props:{statusText:String,statusSuccess:Boolean},methods:{color(){switch(this.statusSuccess){case void 0:return new Date-this.startTime>2e3?"grey":"yellow";case!0:return"green";default:return"red"}}},data(){return{startTime:new Date,otherStatusText:"Checking..."}},mounted(){setTimeout(()=>{this.statusText||(this.otherStatusText="Request timed out")},2e3)}},Dn=Mn,Pn=(a("7ec8"),a("45d4"),Object(S["a"])(Dn,$n,Nn,!1,null,"d1a6f18c",null)),Vn=Pn.exports,Bn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("transition",{attrs:{name:"slide"}},[e.show&&e.menuEnabled?a("div",{staticClass:"context-menu",style:e.posX&&e.posY?"top:"+e.posY+"px;left:"+e.posX+"px;":""},[a("ul",[a("li",{on:{click:function(t){return e.launch("sametab")}}},[a("SameTabOpenIcon"),a("span",[e._v(e._s(e.$t("menu.sametab")))])],1),a("li",{on:{click:function(t){return e.launch("newtab")}}},[a("NewTabOpenIcon"),a("span",[e._v(e._s(e.$t("menu.newtab")))])],1),a("li",{on:{click:function(t){return e.launch("modal")}}},[a("IframeOpenIcon"),a("span",[e._v(e._s(e.$t("menu.modal")))])],1),a("li",{on:{click:function(t){return e.launch("workspace")}}},[a("WorkspaceOpenIcon"),a("span",[e._v(e._s(e.$t("menu.workspace")))])],1)])]):e._e()])},Un=[],Hn={name:"ContextMenu",inject:["config"],components:{SameTabOpenIcon:zn.a,NewTabOpenIcon:In.a,IframeOpenIcon:En.a,WorkspaceOpenIcon:Uo.a},props:{posX:Number,posY:Number,show:Boolean},data(){return{menuEnabled:!this.isMenuDisabled()}},methods:{launch(e){this.$emit("contextItemClick",e)},isMenuDisabled(){return!(!this.config||!this.config.appConfig)&&!!this.config.appConfig.disableContextMenu}}},Rn=Hn,Kn=(a("6850"),Object(S["a"])(Rn,Bn,Un,!1,null,null,null)),qn=Kn.exports,Fn={name:"Item",inject:["config"],props:{id:String,title:String,subtitle:String,description:String,icon:String,color:String,backgroundColor:String,url:String,provider:String,hotkey:Number,target:{type:String,default:"newtab",validator:e=>-1!==["newtab","sametab","modal","workspace"].indexOf(e)},itemSize:String,enableStatusCheck:Boolean,statusCheckHeaders:Object,statusCheckUrl:String,statusCheckInterval:Number,statusCheckAllowInsecure:Boolean},data(){return{contextMenuOpen:!1,getId:this.id,customStyles:{color:this.color,background:this.backgroundColor},statusResponse:void 0,contextPos:{posX:void 0,posY:void 0}}},components:{Icon:wn,ItemOpenMethodIcon:Ln,StatusIndicator:Vn,ContextMenu:qn},methods:{itemOpened(e){e.altKey||"modal"===this.target?(e.preventDefault(),this.$emit("triggerModal",this.url)):"workspace"===this.target?Br.push({name:"workspace",query:{url:this.url}}):this.$emit("itemClicked"),this.config.appConfig.disableSmartSort||(this.incrementMostUsedCount(this.id),this.incrementLastUsedCount(this.id))},openContextMenu(e){this.contextMenuOpen=!this.contextMenuOpen,e&&window&&(this.contextPos={posX:e.clientX+window.pageXOffset,posY:e.clientY+window.pageYOffset})},closeContextMenu(){this.contextMenuOpen=!1},getTooltipOptions(){if(!this.description&&!this.provider)return{};const e=this.description?this.description:"",t=this.provider?"Provider: "+this.provider:"",a=e&&t?"
":"",o=this.hotkey?`
Press '${this.hotkey}' to launch`:"";return{content:t+a+e+o,trigger:"hover focus",hideOnTargetClick:!0,html:!0,placement:this.statusResponse?"left":"auto",delay:{show:600,hide:200},classes:"item-description-tooltip"}},getUnicodeOpeningIcon(){switch(this.target){case"newtab":return'"\\f360"';case"sametab":return'"\\f24d"';case"modal":return'"\\f2d0"';default:return'"\\f054"'}},makeApiUrl(){const{url:e,statusCheckUrl:t,statusCheckHeaders:a,statusCheckAllowInsecure:o}=this,s=e=>encodeURIComponent(e);this.statusResponse=void 0;const n=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.8.3",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,i="?&url="+s(t||e),r=a?"&headers="+s(JSON.stringify(a)):"",l=o?"&enableInsecure=true":"";return`${n}${j["serviceEndpoints"].statusCheck}/${i}${r}${l}`},checkWebsiteStatus(){const e=this.makeApiUrl();Vt.a.get(e).then(e=>{e.data&&(this.statusResponse=e.data)}).catch(()=>{this.statusResponse={statusText:"Failed to make request",statusSuccess:!1}})},contextItemClick(e){const{url:t}=this;switch(this.contextMenuOpen=!1,e){case"newtab":window.open(t,"_blank");break;case"sametab":window.open(t,"_self");break;case"modal":this.$emit("triggerModal",t);break;case"workspace":Br.push({name:"workspace",query:{url:t}});break;default:window.open(t,"_blank")}},incrementMostUsedCount(e){const t=JSON.parse(localStorage.getItem(j["localStorageKeys"].MOST_USED)||"{}");let a=t[e]||0;a+=1,t[e]=a,localStorage.setItem(j["localStorageKeys"].MOST_USED,JSON.stringify(t))},incrementLastUsedCount(e){const t=JSON.parse(localStorage.getItem(j["localStorageKeys"].LAST_USED)||"{}");t[e]=(new Date).getTime(),localStorage.setItem(j["localStorageKeys"].LAST_USED,JSON.stringify(t))}},mounted(){this.enableStatusCheck&&this.checkWebsiteStatus(),this.statusCheckInterval>0&&setInterval(this.checkWebsiteStatus,1e3*this.statusCheckInterval)}},Gn=Fn,Wn=(a("826e"),a("f719"),Object(S["a"])(Gn,rn,ln,!1,null,null,null)),Jn=Wn.exports,Yn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:"collapsable "+e.checkSpanNum(e.cols,"col")+" "+e.checkSpanNum(e.rows,"row"),style:(e.color?"background: "+e.color:"")+"; "+e.sanitizeCustomStyles(e.customStyles)+";"},[a("input",{staticClass:"toggle",attrs:{id:"collapsible-"+e.uniqueKey,type:"checkbox",tabIndex:"-1"},domProps:{checked:e.getCollapseState()},on:{change:e.collapseChanged}}),a("label",{staticClass:"lbl-toggle",attrs:{for:"collapsible-"+e.uniqueKey,tabindex:"-1"}},[e.icon?a("Icon",{staticClass:"section-icon",attrs:{icon:e.icon,size:"small",url:e.title}}):e._e(),a("h3",[e._v(e._s(e.title))])],1),a("div",{staticClass:"collapsible-content"},[a("div",{staticClass:"content-inner"},[e._t("default")],2)])])},Zn=[],Xn={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:wn},methods:{checkSpanNum(e,t){const a=4;let o=/^\d*$/.test(e)?parseInt(e,10):1;return o=o>a?a:o,`${t}-${o}`},sanitizeCustomStyles(e){return e?e.replace(/[^a-zA-Z0-9- :;.]/g,""):""},initialiseStorage(){const e=()=>localStorage.setItem(j["localStorageKeys"].COLLAPSE_STATE,JSON.stringify({}));localStorage[j["localStorageKeys"].COLLAPSE_STATE]||e();try{JSON.parse(localStorage[j["localStorageKeys"].COLLAPSE_STATE])}catch{e()}return JSON.parse(localStorage[j["localStorageKeys"].COLLAPSE_STATE])},getCollapseState(){const e=this.initialiseStorage();let t=!this.collapsed;return void 0!==e[this.uniqueKey]&&(t=e[this.uniqueKey]),t},setCollapseState(e,t){const a=JSON.parse(localStorage[j["localStorageKeys"].COLLAPSE_STATE]);a[e]=t,localStorage.setItem(j["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(a))},collapseChanged(e){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),e.srcElement.checked)}}},Qn=Xn,ei=(a("eb58"),Object(S["a"])(Qn,Yn,Zn,!1,null,"ac1beaa4",null)),ti=ei.exports,ai=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("modal",{attrs:{name:e.name,resizable:!0,width:"80%",height:"80%",classes:"dashy-modal"},on:{closed:function(t){return e.modalClosed()}}},[a("div",{attrs:{slot:"top-right"},on:{click:function(t){return e.hide()}},slot:"top-right"},[e._v("Close")]),a("a",{staticClass:"close-button",attrs:{title:"Close"},on:{click:function(t){return e.hide()}}},[e._v("x")]),e.url?a("iframe",{staticClass:"frame",attrs:{src:e.url},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.close.apply(null,arguments)}}}):a("div",{staticClass:"no-url"},[e._v("No URL Specified")])])},oi=[],si={name:"IframeModal",props:{name:String},data:()=>({url:"#"}),methods:{show(e){this.url=e,this.$modal.show(this.name),this.$emit("modalChanged",!0)},hide(){this.$modal.hide(this.name)},modalClosed(){this.$emit("modalChanged",!1)}}},ni=si,ii=(a("eda6"),Object(S["a"])(ni,ai,oi,!1,null,null,null)),ri=ii.exports,li={name:"Section",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:ti,Item:Jn,IframeModal:ri},computed:{sortOrder(){return this.displayData.sortBy||j["sortOrder"]},sortedItems(){let{items:e}=this;return this.config.appConfig.disableSmartSort||("alphabetical"===this.sortOrder?this.sortAlphabetically(e):"reverse-alphabetical"===this.sortOrder?this.sortAlphabetically(e).reverse():"most-used"===this.sortOrder?e=this.sortByMostUsed(e):"last-used"===this.sortOrder?e=this.sortBLastUsed(e):"random"===this.sortOrder?e=this.sortRandomly(e):this.sortOrder&&"default"!==this.sortOrder&&me(`Unknown Sort order '${this.sortOrder}' under '${this.title}'`)),e},newItemSize(){return this.displayData.itemSize||this.itemSize},isGridLayout(){return"grid"===this.displayData.sectionLayout||!(!this.displayData.itemCountX&&!this.displayData.itemCountY)},gridStyle(){let e="";return e+=this.displayData.itemCountX?`grid-template-columns: repeat(${this.displayData.itemCountX}, 1fr);`:"",e+=this.displayData.itemCountY?`grid-template-rows: repeat(${this.displayData.itemCountY}, 1fr);`:"",e}},methods:{makeId(e,t){const a=e.split("").map(e=>e.charCodeAt(0)).reduce((e,t)=>e+t);return`${a}_${t.replace(/\s+/g,"-").replace(/[^a-zA-Z ]/g,"").toLowerCase()}`},triggerModal(e){this.$refs["iframeModal-"+this.groupId].show(e)},modalChanged(e){this.$emit("change-modal-visibility",e)},shouldEnableStatusCheck(e){const t=this.config.appConfig.statusCheck||!1;return void 0!==e?e:t},getStatusCheckInterval(){let e=this.config.appConfig.statusCheckInterval;return e?(e>60&&(e=60),e<1&&(e=0),e):0},sortAlphabetically(e){return e.sort((e,t)=>e.title>t.title?1:-1)},sortByMostUsed(e){const t=JSON.parse(localStorage.getItem(j["localStorageKeys"].MOST_USED)||"{}"),a=e=>t[this.makeId(this.title,e.title)]||0;return e.reverse().sort((e,t)=>a(e)t[this.makeId(this.title,e.title)]||0;return e.reverse().sort((e,t)=>a(e)({value:e,sort:Math.random()})).sort((e,t)=>e.sort-t.sort).map(({value:e})=>e)}}},ci=li,ui=(a("2bfa"),Object(S["a"])(ci,sn,nn,!1,null,"d4cb7a0e",null)),di=ui.exports,mi={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:on,Section:di},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{allSections(){const e=localStorage[j["localStorageKeys"].CONF_SECTIONS];if(e){const t=JSON.parse(e);if(t.length>=1)return t}return this.sections},filteredTiles(){const e=this.allSections;return e.filter(e=>this.filterTiles(e.items,this.searchValue))},layoutOrientation:{get(){return this.appConfig.layout||L.a.layout},set:function(e){localStorage.setItem(j["localStorageKeys"].LAYOUT_ORIENTATION,e),this.layout=e}},iconSize:{get(){return this.appConfig.iconSize||L.a.iconSize},set:function(e){localStorage.setItem(j["localStorageKeys"].ICON_SIZE,e),this.itemSizeBound=e}}},methods:{checkTheresData(e){const t=localStorage[j["localStorageKeys"].CONF_SECTIONS];return e&&e.length>=1||t&&t.length>=1},searching(e){this.searchValue=e||""},finishedSearching(){this.$refs.filterComp.clearFilterInput()},filterTiles(e,t){return kt(e,t)},getDisplayData(e){return e.displayData?e.displayData:{}},setLayoutOrientation(e){this.layoutOrientation=e},setItemSize(e){this.iconSize=e},updateModalVisibility(e){this.modalOpen=e},getExternalCSSLinks(){const e={};if(this.appConfig&&this.appConfig.externalStyleSheet){const t=this.appConfig.externalStyleSheet;Array.isArray(t)?t.forEach((t,a)=>{e["External Stylesheet "+(a+1)]=t}):e["External Stylesheet"]=this.appConfig.externalStyleSheet}return e.Default="#",e},checkIfIconLibraryNeeded(e){let t=!1;return!!this.allSections&&(this.allSections.forEach(a=>{a.icon&&a.icon.includes(e)&&(t=!0),a.items.forEach(a=>{a.icon&&a.icon.includes(e)&&(t=!0)})}),t)},checkIfFontAwesomeNeeded(){let e=this.checkIfIconLibraryNeeded("fa-");const t=localStorage[j["localStorageKeys"].THEME];return["material","material-dark"].includes(t)&&(e=!0),e},initiateFontAwesome(){if(this.appConfig.enableFontAwesome||this.checkIfFontAwesomeNeeded()){const e=document.createElement("script"),t=this.appConfig.fontAwesomeKey||L.a.fontAwesomeKey;e.setAttribute("src",`${j["iconCdns"].fa}/${t}.js`),document.head.appendChild(e)}},checkIfMdiNeeded(){return this.checkIfIconLibraryNeeded("mdi-")},initiateMaterialDesignIcons(){if(this.checkIfMdiNeeded()){const e=document.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",j["iconCdns"].mdi),document.head.appendChild(e)}},checkIfResults(){if(this.allSections){let e=!0;return this.allSections.forEach(t=>{this.filterTiles(t.items,this.searchValue).length>0&&(e=!1)}),e}return!1},getBackgroundImage(){return this.appConfig&&this.appConfig.backgroundImg?`background: url('${this.appConfig.backgroundImg}');background-size:cover;`:""}},mounted(){this.initiateFontAwesome(),this.initiateMaterialDesignIcons(),this.layout=this.layoutOrientation,this.itemSizeBound=this.iconSize}},pi=mi,gi=(a("32c8"),Object(S["a"])(pi,ut,dt,!1,null,"7062597f",null)),hi=gi.exports,_i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"login-page"},[e.isUserAlreadyLoggedIn?a("div",{staticClass:"already-logged-in"},[a("h2",[e._v(e._s(e.$t("login.already-logged-in-title")))]),a("p",{staticClass:"already-logged-in"},[e._v(" "+e._s(e.$t("login.already-logged-in-text"))+" "),a("span",{staticClass:"username"},[e._v(e._s(e.existingUsername))])]),a("Button",{staticClass:"login-button",attrs:{click:e.stayLoggedIn}},[e._v(" "+e._s(e.$t("login.proceed-to-dashboard"))+" ")]),a("Button",{staticClass:"login-button",attrs:{click:e.getOut}},[e._v(e._s(e.$t("login.log-out-button")))]),a("span",{staticClass:"already-logged-in-note"},[e._v(" You need to log out, in order to proceed as a different user. ")]),a("transition",{attrs:{name:"bounce"}},[a("p",{directives:[{name:"show",rawName:"v-show",value:e.message,expression:"message"}],class:"login-error-message "+e.status},[e._v(e._s(e.message))])])],1):e._e(),!e.isUserAlreadyLoggedIn&&e.isAuthenticationEnabled?a("form",{staticClass:"login-form"},[a("h2",{staticClass:"login-title"},[e._v(e._s(e.$t("login.title")))]),a("Input",{staticClass:"login-field username",attrs:{type:"text",label:e.$t("login.username-label")},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}}),a("Input",{staticClass:"login-field password",attrs:{type:"password",label:e.$t("login.password-label")},model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("label",[e._v(e._s(e.$t("login.remember-me-label")))]),a("v-select",{staticClass:"login-time-dropdown",attrs:{selectOnTab:!0,options:e.dropDownMenu},model:{value:e.timeout,callback:function(t){e.timeout=t},expression:"timeout"}}),a("Button",{staticClass:"login-button",attrs:{click:e.submitLogin}},[e._v(" "+e._s(e.$t("login.login-button"))+" ")]),a("transition",{attrs:{name:"bounce"}},[a("p",{directives:[{name:"show",rawName:"v-show",value:e.message,expression:"message"}],class:"login-error-message "+e.status},[e._v(e._s(e.message))])])],1):e._e(),e.isGuestAccessEnabled&&!e.isUserAlreadyLoggedIn&&e.isAuthenticationEnabled?a("form",{staticClass:"guest-form"},[a("h2",{staticClass:"login-title"},[e._v("Guest Access")]),a("Button",{staticClass:"login-button",attrs:{click:e.guestLogin}},[e._v(" "+e._s(e.$t("login.proceed-guest-button"))+" ")]),e._m(0)],1):e._e(),e.isAuthenticationEnabled?e._e():a("div",{staticClass:"not-configured"},[a("h2",[e._v("Error")]),a("p",[e._v("Authentication is not enabled, or no users have been configured")]),a("Button",{staticClass:"login-button",attrs:{click:e.guestLogin}},[e._v(" Go Home ")])],1)])},fi=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",{staticClass:"guest-intro"},[e._v(" This instance has guest access enabled."),a("br"),e._v(" Guests have view-only access to dashboards, so cannot write any changes to disk. ")])}],bi={name:"login",components:{Button:sa,Input:Ca},props:{appConfig:Object},data(){return{username:"",password:"",message:"",status:"waiting",timeout:void 0}},computed:{dropDownMenu(){return[{label:this.$t("login.remember-me-never"),time:0},{label:this.$t("login.remember-me-hour"),time:144e5},{label:this.$t("login.remember-me-day"),time:864e5},{label:this.$t("login.remember-me-week"),time:6048e5}]},responseMessages(){return{missingUsername:this.$t("login.error-missing-username"),missingPassword:this.$t("login.error-missing-password"),incorrectUsername:this.$t("login.error-incorrect-username"),incorrectPassword:this.$t("login.error-incorrect-password"),successMsg:this.$t("login.success-message")}},existingUsername(){return localStorage[j["localStorageKeys"].USERNAME]},users(){const e=this.appConfig.auth||{};return Array.isArray(e)?e:e.users||[]},isUserAlreadyLoggedIn(){const e=!this.users||0===this.users.length||ke();return e&&this.existingUsername},isGuestAccessEnabled(){return we()},isAuthenticationEnabled(){return this.appConfig&&this.appConfig.auth&&this.users.length>0}},methods:{submitLogin(){const e=this.timeout?this.timeout.time:0,t=ye(this.username,this.password,this.users,this.responseMessages);this.message=t.msg,this.status=t.correct?"success":"error",t.correct?(Se(this.username,this.password,e),this.goHome(),ue("Succesfully signed in as "+this.username,"Authentication")):de("Unable to Sign In","Authentication",this.message)},guestLogin(){const e=this.isGuestAccessEnabled;e?(this.$toasted.show("Logged in as Guest, Redirecting...",{className:"toast-success"}),ue("Logged in as Guest","Authentication"),this.goHome()):(this.$toasted.show("Guest Access Not Allowed",{className:"toast-error"}),de("Guest Access Not Allowed","Authentication"))},getOut(){Ce(),this.status="success",this.message="Logging out...",this.refreshPage()},stayLoggedIn(){this.status="success",this.message="Redirecting...",this.goHome()},refreshPage(){setTimeout(()=>{location.reload()},250)},goHome(){setTimeout(()=>{Br.push({path:"/"})},250)},setTheme(){const e=localStorage[j["localStorageKeys"].THEME]||L.a.theme;document.getElementsByTagName("html")[0].setAttribute("data-theme",e)}},created(){this.setTheme(),setTimeout(()=>{this.timeout=this.dropDownMenu[0]},1)}},ki=bi,vi=(a("206d"),Object(S["a"])(ki,_i,fi,!1,null,null,null)),wi=vi.exports,yi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"work-space"},[a("SideBar",{attrs:{sections:e.sections},on:{"launch-app":e.launchApp}}),e.isMultiTaskingEnabled?a("MultiTaskingWebComtent",{attrs:{url:e.url}}):a("WebContent",{attrs:{url:e.url}})],1)},Si=[],Ci=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("nav",{staticClass:"side-bar"},[e._l(e.sections,(function(t,o){return a("div",{key:o,staticClass:"side-bar-section"},[a("div",{staticClass:"side-bar-item-container",on:{click:function(t){return e.openSection(o)}}},[a("SideBarItem",{staticClass:"item",attrs:{icon:t.icon,title:t.name}})],1),a("transition",{attrs:{name:"slide"}},[e.isOpen[o]?a("SideBarSection",{attrs:{items:t.items},on:{"launch-app":e.launchApp}}):e._e()],1)],1)})),a("div",{staticClass:"switch-view-buttons"},[a("router-link",{attrs:{to:"/home"}},[a("IconHome",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.$t("alternate-views.default"),expression:"$t('alternate-views.default')"}],staticClass:"view-icon"})],1),a("router-link",{attrs:{to:"/minimal"}},[a("IconMinimalView",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.$t("alternate-views.minimal"),expression:"$t('alternate-views.minimal')"}],staticClass:"view-icon"})],1)],1)],2)},Ii=[],xi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip,expression:"tooltip"}],class:"side-bar-item "+(e.icon?"w-icon":"text-only"),on:{click:function(t){return e.itemClicked()}}},[e.icon?a("Icon",{attrs:{icon:e.icon,size:"small",url:e.url}}):a("p",{staticClass:"small-title"},[e._v(e._s(e.title))])],1)},zi=[],Oi={name:"SideBarItem",inject:["config"],props:{icon:String,title:String,url:String,click:Function},components:{Icon:wn},methods:{itemClicked(){this.url&&this.$emit("launch-app",this.url)}},data(){return{tooltip:{disabled:!this.title,content:this.title,trigger:"hover focus",placement:"bottom-end"}}}},Ei=Oi,Ai=(a("963f"),Object(S["a"])(Ei,xi,zi,!1,null,"83aa6efa",null)),Ti=Ai.exports,ji=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"sub-side-bar"},e._l(e.items,(function(t,o){return a("div",{key:o},[a("SideBarItem",{staticClass:"item",attrs:{icon:t.icon,title:t.title,url:t.url},on:{"launch-app":e.launchApp}})],1)})),0)},Li=[],$i={name:"SideBarSection",inject:["config"],props:{items:Array},components:{SideBarItem:Ti},methods:{launchApp(e){this.$emit("launch-app",e)}}},Ni=$i,Mi=(a("cf1c"),Object(S["a"])(Ni,ji,Li,!1,null,"56ddb963",null)),Di=Mi.exports,Pi={name:"SideBar",inject:["config"],props:{sections:Array},data(){return{isOpen:new Array(this.sections.length).fill(!1)}},components:{SideBarItem:Ti,SideBarSection:Di,IconMinimalView:Ro.a,IconHome:Vo.a},methods:{openSection(e){this.isOpen=this.isOpen.map((t,a)=>a===e&&!t)},launchApp(e){this.$emit("launch-app",e)}}},Vi=Pi,Bi=(a("31b5"),Object(S["a"])(Vi,Ci,Ii,!1,null,"030576fc",null)),Ui=Bi.exports,Hi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"web-content",attrs:{id:e.id}},[a("iframe",{attrs:{src:e.url}})])},Ri=[],Ki={name:"WebContent",props:{url:String,id:{type:String,default:"web-app-view"}}},qi=Ki,Fi=(a("21d1"),Object(S["a"])(qi,Hi,Ri,!1,null,"f1f96a0a",null)),Gi=Fi.exports,Wi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"container",staticClass:"multi-taking-view"})},Ji=[],Yi={name:"WebContent",props:{url:String},data:()=>({openApps:[]}),watch:{url(){this.launchApp()}},methods:{launchApp(){this.openApps.includes(this.url)?this.openExistingApp():(this.openApps.push(this.url),this.appendNewApp())},appendNewApp(){const e=o["a"].extend(Gi),t=new e({propsData:{url:this.url,id:btoa(this.url)}});t.$mount(),this.$refs.container.appendChild(t.$el)},openExistingApp(){Array.from(document.getElementsByClassName("web-content")).forEach(e=>{e.classList.add("hide")}),document.getElementById(btoa(this.url)).classList.remove("hide")}}},Zi=Yi,Xi=(a("7e71"),Object(S["a"])(Zi,Wi,Ji,!1,null,"2a7b9297",null)),Qi=Xi.exports,er={name:"Workspace",props:{sections:Array,appConfig:Object},data:()=>({url:"",GetTheme:Yo,ApplyLocalTheme:Xo,ApplyCustomVariables:Zo}),computed:{isMultiTaskingEnabled(){return this.appConfig.enableMultiTasking||!1}},components:{SideBar:Ui,WebContent:Gi,MultiTaskingWebComtent:Qi},methods:{launchApp(e){this.url=e},setTheme(){const e=this.GetTheme();this.ApplyLocalTheme(e),this.ApplyCustomVariables(e)},initiateFontAwesome(){const e=document.createElement("script"),t=this.appConfig.fontAwesomeKey||L.a.fontAwesomeKey;e.setAttribute("src",`https://kit.fontawesome.com/${t}.js`),document.head.appendChild(e)},repositionFooter(){document.getElementsByTagName("footer")[0].style.position="fixed"}},mounted(){const e=this.$route;e.query&&e.query.url&&(this.url=decodeURI(e.query.url)),this.setTheme(),this.initiateFontAwesome()}},tr=er,ar=(a("5983"),Object(S["a"])(tr,yi,Si,!1,null,"0b61868d",null)),or=ar.exports,sr=function(){var e=this,t=this,a=t.$createElement,o=t._self._c||a;return o("div",{staticClass:"minimal-home",style:t.getBackgroundImage()+t.setColumnCount()},[o("div",{staticClass:"minimal-buttons"},[o("ConfigLauncher",{staticClass:"config-launcher",attrs:{sections:t.sections,pageInfo:t.pageInfo,appConfig:t.appConfig},on:{modalChanged:t.modalChanged}})],1),o("div",{staticClass:"title-and-search"},[o("router-link",{attrs:{to:"/"}},[o("h1",[t._v(t._s(t.pageInfo.title))])]),o("MinimalSearch",{attrs:{active:!t.modalOpen},on:{"user-is-searchin":function(t){e.searchValue=t}}})],1),t.checkTheresData(t.sections)?o("div",{class:"item-group-container "+(t.tabbedView?"":"showing-all")},[t._l(t.getSections(t.sections),(function(e,a){return o("MinimalHeading",{key:"heading-"+a,staticClass:"headings",attrs:{index:a,title:e.name,selected:t.selectedSection===a},on:{sectionSelected:t.sectionSelected}})})),t._l(t.getSections(t.sections),(function(e,a){return o("MinimalSection",{key:"body-"+a,attrs:{index:a,title:e.name,icon:e.icon||void 0,groupId:"section-"+a,items:t.filterTiles(e.items),selected:t.selectedSection===a,showAll:!t.tabbedView,itemSize:"small"},on:{sectionSelected:t.sectionSelected,itemClicked:function(e){return t.finishedSearching()},"change-modal-visibility":t.updateModalVisibility}})})),t.checkIfResults()?o("div",{staticClass:"no-data"},[t._v(" "+t._s(t.searchValue?t.$t("home.no-results"):t.$t("home.no-data"))+" ")]):t._e()],2):o("div",{staticClass:"no-data"},[t._v(" "+t._s(t.$t("home.no-data"))+" ")])])},nr=[],ir=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:"minimal-section-inner "+(e.selected?"selected":"")+" "+(e.showAll?"show-all":"")},[e.selected||e.showAll?a("div",{staticClass:"section-items"},e._l(e.items,(function(t,o){return a("Item",{key:o+"_"+e.makeId(t.title),attrs:{id:o+"_"+e.makeId(t.title),url:t.url,title:t.title,description:t.description,icon:t.icon,target:t.target,color:t.color,backgroundColor:t.backgroundColor,statusCheckUrl:t.statusCheckUrl,statusCheckHeaders:t.statusCheckHeaders,itemSize:e.itemSize,hotkey:t.hotkey,enableStatusCheck:e.shouldEnableStatusCheck(t.statusCheck),statusCheckInterval:e.getStatusCheckInterval()},on:{itemClicked:function(t){return e.$emit("itemClicked")},triggerModal:e.triggerModal}})})),1):e._e(),a("IframeModal",{ref:"iframeModal-"+e.groupId,attrs:{name:"iframeModal-"+e.groupId},on:{closed:function(t){return e.$emit("itemClicked")},modalChanged:e.modalChanged}})],1)},rr=[],lr={name:"ItemGroup",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean,index:Number,selected:Boolean,showAll:Boolean},components:{Item:Jn,IframeModal:ri},methods:{selectSection(e){this.$emit("sectionSelected",e)},makeId(e){return e.replace(/\s+/g,"-").replace(/[^a-zA-Z ]/g,"").toLowerCase()},triggerModal(e){this.$refs["iframeModal-"+this.groupId].show(e)},modalChanged(e){this.$emit("change-modal-visibility",e)},shouldEnableStatusCheck(e){const t=this.config.appConfig.statusCheck||!1;return void 0!==e?e:t},getStatusCheckInterval(){let e=this.config.appConfig.statusCheckInterval;return e?(e>60&&(e=60),e<1&&(e=0),e):0}}},cr=lr,ur=(a("7cd8"),Object(S["a"])(cr,ir,rr,!1,null,"b0b51ef0",null)),dr=ur.exports,mr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:"minimal-section-heading "+(e.selected?"selected":""),on:{click:function(t){return e.selectSection(e.index)}}},[a("h3",[e._v(e._s(e.title))])])},pr=[],gr={name:"MinimalHeadings",props:{index:Number,title:String,selected:Boolean},methods:{selectSection(e){this.$emit("sectionSelected",e)}}},hr=gr,_r=(a("82a4"),Object(S["a"])(hr,mr,pr,!1,null,"5f187f16",null)),fr=_r.exports,br=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",{on:{submit:function(t){return t.preventDefault(),e.searchSubmitted.apply(null,arguments)}}},[a("div",{staticClass:"minimal-search-wrap"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.input,expression:"input"}],ref:"filter",staticClass:"minimal-search",attrs:{id:"filter-tiles",placeholder:e.$t("search.search-placeholder")},domProps:{value:e.input},on:{input:[function(t){t.target.composing||(e.input=t.target.value)},e.userIsTypingSomething],keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.clearFilterInput.apply(null,arguments)}}}),e.webSearchEnabled&&e.input.length>0?a("p",{staticClass:"web-search-note"},[e._v(" "+e._s(e.$t("search.enter-to-search-web"))+" ")]):e._e()]),e.input.length>0?a("i",{staticClass:"clear-search",attrs:{title:e.$t("search.clear-search-tooltip")},on:{click:e.clearFilterInput}},[e._v("x")]):e._e()])},kr=[],vr={name:"MinimalSearch",inject:["config"],props:{active:Boolean},data(){return{input:"",akn:new _t,getCustomKeyShortcuts:Qe}},computed:{webSearchEnabled(){const{appConfig:e}=this.config;return!e||!e.webSearch||!e.webSearch.disableWebSearch}},methods:{userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()},handleHotKey(e){const t=this.getCustomKeyShortcuts();t.forEach(t=>{t.hotkey===parseInt(e,10)&&t.url&&window.open(t.url,"_blank")})},startFiltering(e){const t=document.activeElement.id,{key:a,keyCode:o}=e;this.active&&(/^[a-zA-Z]$/.test(a)&&"filter-tiles"!==t?(this.$refs.filter&&this.$refs.filter.focus(),this.userIsTypingSomething()):/^[0-9]$/.test(a)?this.handleHotKey(a):o>=37&&o<=40?this.akn.arrowNavigation(o):27===o&&this.clearFilterInput())},launchWebSearch(e,t){switch(t){case"newtab":window.open(e,"_blank");break;case"sametab":window.open(e,"_self");break;case"workspace":Br.push({name:"workspace",query:{url:e}});break;default:me("Unknown opening method: "+t),window.open(e,"_blank")}},searchSubmitted(){const{appConfig:e}=this.config,t=e.webSearch||{};if(this.webSearchEnabled){const e=t.openingMethod||j["defaultSearchOpeningMethod"],a=t.searchEngine||j["defaultSearchEngine"];let o=j["searchEngineUrls"][a];o||me("Search engine not found - "+a),"custom"===a&&t.customSearchEngine&&(o=t.customSearchEngine),o+=encodeURIComponent(this.input),this.launchWebSearch(o,e)}}},mounted(){window.addEventListener("keydown",this.startFiltering)},beforeDestroy(){window.removeEventListener("keydown",this.startFiltering)}},wr=vr,yr=(a("1f66"),Object(S["a"])(wr,br,kr,!1,null,"9bac3a02",null)),Sr=yr.exports,Cr={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{MinimalSection:dr,MinimalHeading:fr,MinimalSearch:Sr,ConfigLauncher:Go},data:()=>({searchValue:"",layout:"",modalOpen:!1,selectedSection:0,tabbedView:!0,theme:Yo()}),watch:{searchValue(){this.tabbedView=!(this.searchValue.length>0)}},methods:{sectionSelected(e){this.selectedSection=e},checkTheresData(e){const t=localStorage[j["localStorageKeys"].CONF_SECTIONS];return e&&e.length>=1||t&&t.length>=1},getSections(e){const t=localStorage[j["localStorageKeys"].CONF_SECTIONS];if(t){const e=JSON.parse(t);if(e.length>=1)return e}return e},searching(e){this.searchValue=e||""},finishedSearching(){this.$refs.filterComp.clearFilterInput()},getDomainFromUrl(e){if(!e)return"";const t=/^(?:https?:\/\/)?(?:w{3}\.)?([a-z\d.-]+)\.(?:[a-z.]{2,10})(?:[/\w.-]*)*/,a=e.match(t);return a?a[1]:""},filterTiles(e){return e?kt(e,this.searchValue):[]},updateModalVisibility(e){this.modalOpen=e},checkIfFontAwesomeNeeded(){let e=!1;return!!this.sections&&(this.sections.forEach(t=>{t.icon&&t.icon.includes("fa-")&&(e=!0),t.items.forEach(t=>{t.icon&&t.icon.includes("fa-")&&(e=!0)})}),e)},initiateFontAwesome(){if(this.appConfig.enableFontAwesome||this.checkIfFontAwesomeNeeded()){const e=document.createElement("script"),t=this.appConfig.fontAwesomeKey||L.a.fontAwesomeKey;e.setAttribute("src",`https://kit.fontawesome.com/${t}.js`),document.head.appendChild(e)}},checkIfResults(){if(this.sections){let e=!0;return this.sections.forEach(t=>{this.filterTiles(t.items).length>0&&(e=!1)}),e}return!1},setColumnCount(){return`--col-count: ${this.sections.length};`},getBackgroundImage(){return this.appConfig&&this.appConfig.backgroundImg?`background: url('${this.appConfig.backgroundImg}');background-size:cover;`:""},applyTheme(){this.theme&&(Xo(this.theme),Zo(this.theme))},modalChanged(e){this.modalOpen=e}},mounted(){this.initiateFontAwesome(),this.applyTheme()}},Ir=Cr,xr=(a("7aa6"),a("6667"),Object(S["a"])(Ir,sr,nr,!1,null,"7980fc28",null)),zr=xr.exports,Or=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("pre",[a("code",[e._v(e._s(e.jsonParser(e.config)))])])},Er=[],Ar={name:"DownloadConfig",props:{sections:Array,appConfig:Object,pageInfo:Object},data(){return{config:{appConfig:this.appConfig,pageInfo:this.pageInfo,sections:this.sections},jsonParser:Nt}}},Tr=Ar,jr=(a("6cd5"),Object(S["a"])(Tr,Or,Er,!1,null,"33cd2d90",null)),Lr=jr.exports;o["a"].use(lt["a"]);const $r=new ct["a"]({color:"var(--progress-bar)"}),Nr=()=>{const e=ve(),t=ke(),a=we();return!e||t||a},Mr=()=>Je.appConfig.startingView||j["startingView"],Dr=()=>{const e=Mr();switch(e){case"default":return hi;case"minimal":return zr;case"workspace":return or;default:return hi}},Pr=e=>({title:Je.pageInfo.title||e,metaTags:j["metaTagData"]}),Vr=new lt["a"]({routes:[{path:"/",name:"landing-page-"+Mr(),component:Dr(),props:Je,meta:Pr("Home Page")},{path:j["routePaths"].home,name:"home",component:hi,props:Je,meta:Pr("Home Page")},{path:j["routePaths"].workspace,name:"workspace",component:or,props:Je,meta:Pr("Workspace")},{path:j["routePaths"].minimal,name:"minimal",component:zr,props:Je,meta:Pr("Start Page")},{path:j["routePaths"].login,name:"login",component:wi,props:{appConfig:Je.appConfig},beforeEnter:(e,t,a)=>{Nr()&&!we()&&Vr.push({path:"/"}),a()}},{path:j["routePaths"].about,name:"about",component:()=>a.e("about").then(a.bind(null,"f820")),meta:Pr("About Dashy")},{path:j["routePaths"].download,name:"download",component:Lr,props:Je,meta:Pr("Download Config")}]});Vr.beforeEach((e,t,a)=>{$r.start(),"login"===e.name||Nr()?a():a({name:"login"})}),Vr.afterEach(e=>{$r.end(),o["a"].nextTick(()=>{document.title=e.meta.title||"Dashy"})});var Br=Vr,Ur=a("9483");const Hr=e=>{const t={ready:!1,registered:!1,cached:!1,updateFound:!1,updated:!1,offline:!1,error:!1,devMode:!1,disabledByUser:!1},a=sessionStorage[j["sessionStorageKeys"].SW_STATUS],o=a?JSON.parse(a):t;try{const t={...o,...e};sessionStorage.setItem(j["sessionStorageKeys"].SW_STATUS,JSON.stringify(t))}catch(s){ie("Service Worker Status","Error Updating SW Status",s)}},Rr=()=>X.a&&X.a.appConfig&&X.a.appConfig.enableServiceWorker?(Hr({disabledByUser:!1}),!0):(Hr({disabledByUser:!0}),!1),Kr=e=>{ne("Service Worker Status",e)},qr="/service-worker.js",Fr=()=>{Rr()&&Object(Ur["a"])(qr,{ready(){Hr({ready:!0}),Kr("Dashy is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){Hr({registered:!0}),Kr("Service worker has been registered.")},cached(){Hr({cached:!0}),Kr("App has been cached for offline use.")},updatefound(){Hr({updateFound:!0}),Kr("New content is downloading...")},updated(){Hr({updated:!0}),Kr("New content is available; please refresh the page.")},offline(){Hr({offline:!0}),Kr("No internet connection found. Dashy is running in offline mode.")},error(e){Hr({error:!0}),ie("Service Worker Status","Error during SW registration",e)}})};var Gr=Fr;const Wr=[];function Jr(e,t,a){const{target:o}=e;t===o||t.contains(o)||a(e)}var Yr={bind(e,t){const a=e;a.dataset.outsideClickIndex=Wr.length;const o=t.value,s=e=>{Jr(e,a,o)};document.addEventListener("click",s),document.addEventListener("touchstart",s),Wr.push(s)},unbind(e){if(!e.dataset)return;const t=e.dataset.outsideClickIndex,a=Wr[t];document.removeEventListener("click",a),Wr.splice(t,1)}};const Zr=(e,t)=>{const o=(new Q).appConfig()||{};if(o.enableErrorReporting){const s="Dashy@1.8.3",n=a("2075"),{Integrations:i}=a("688d"),r=o.sentryDsn||j["sentryDsn"];n.init({Vue:e,dsn:r,integrations:[new i.BrowserTracing({routingInstrumentation:n.vueRouterInstrumentation(t)})],tracesSampleRate:1,release:s})}};var Xr=Zr;o["a"].use(s["a"]),o["a"].use(r["a"],j["tooltipOptions"]),o["a"].use(c.a),o["a"].use(m["a"]),o["a"].use(g.a,j["toastedOptions"]),o["a"].component("v-select",d.a),o["a"].directive("clickOutside",Yr),o["a"].config.productionTip=!1;const Qr=new s["a"]({locale:j["language"],fallbackLocale:j["language"],messages:We});Gr(),Xr(o["a"],Br);const el=e=>e(rt);if(he()){const{serverUrl:e,realm:t,clientId:a}=_e(),s={url:e+"/auth",realm:t,clientId:a,onLoad:"login-required"},n=i()(s);n.init({onLoad:s.onLoad}).then(e=>{e?new o["a"]({router:Br,render:el,i18n:Qr}).$mount("#app"):window.location.reload()})}else new o["a"]({router:Br,render:el,i18n:Qr}).$mount("#app")},5703:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-sliders-h fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"sliders-h",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}})]))}}},"570d":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-th-list fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"th-list",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"}})]))}}},"58c1":function(e,t,a){},5983:function(e,t,a){"use strict";a("ffc8")},"5b44":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-home fa-w-18",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"home",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M570.24 247.41L512 199.52V104a8 8 0 00-8-8h-32a8 8 0 00-7.95 7.88v56.22L323.87 45a56.06 56.06 0 00-71.74 0L5.76 247.41a16 16 0 00-2 22.54L14 282.25a16 16 0 0022.53 2L64 261.69V448a32.09 32.09 0 0032 32h128a32.09 32.09 0 0032-32V344h64v104a32.09 32.09 0 0032 32h128a32.07 32.07 0 0032-31.76V261.67l27.53 22.62a16 16 0 0022.53-2L572.29 270a16 16 0 00-2.05-22.59zM463.85 432H368V328a32.09 32.09 0 00-32-32h-96a32.09 32.09 0 00-32 32v104h-96V222.27L288 77.65l176 144.56z"}})]))}}},"5c0b":function(e,t,a){"use strict";a("9c0c")},"5cc6":function(e,t){e.exports={pageInfo:{title:"Dashy",description:"",navLinks:[{title:"Home",path:"/"},{title:"Source",path:"https://github.com/Lissy93/dashy"}],footerText:""},appConfig:{},language:"en",startingView:"default",iconSize:"medium",layout:"auto",theme:"default",fontAwesomeKey:"0821c65656",faviconApi:"faviconkit",sortOrder:"default",routePaths:{home:"/home",minimal:"/minimal",workspace:"/workspace",about:"/about",login:"/login",download:"/download"},serviceEndpoints:{statusPing:"/status-ping",statusCheck:"/status-check",save:"/config-manager/save",rebuild:"/config-manager/rebuild"},builtInThemes:["callisto","oblivion","material","material-dark","dracula","colorful","dashy-docs","minimal-dark","minimal-light","nord","nord-frost","thebe","cyberpunk","matrix","matrix-red","raspberry-jam","bee","tiger","vaporware","material-original","material-dark-original","high-contrast-dark","high-contrast-light"],visibleComponents:{splashScreen:!1,navigation:!0,pageTitle:!0,searchBar:!0,settings:!0,footer:!0},hideFurnitureOn:["minimal","login","download","landing-page-minimal"],localStorageKeys:{LANGUAGE:"language",HIDE_WELCOME_BANNER:"hideWelcomeHelpers",LAYOUT_ORIENTATION:"layoutOrientation",COLLAPSE_STATE:"collapseState",ICON_SIZE:"iconSize",THEME:"theme",CUSTOM_COLORS:"customColors",CONF_SECTIONS:"confSections",PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",BACKUP_ID:"backupId",BACKUP_HASH:"backupHash",HIDE_SETTINGS:"hideSettings",USERNAME:"username",MOST_USED:"mostUsed",LAST_USED:"lastUsed"},cookieKeys:{AUTH_TOKEN:"authenticationToken"},sessionStorageKeys:{SW_STATUS:"serviceWorkerStatus",ERROR_LOG:"errorLog"},modalNames:{CONF_EDITOR:"CONF_EDITOR",CLOUD_BACKUP:"CLOUD_BACKUP",REBUILD_APP:"REBUILD_APP",THEME_MAKER:"THEME_MAKER",ABOUT_APP:"ABOUT_APP",LANG_SWITCHER:"LANG_SWITCHER"},topLevelConfKeys:{PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",SECTIONS:"sections"},mainCssVars:["primary","background","background-darker"],splashScreenTime:1900,metaTagData:[{name:"description",content:"A simple static homepage for you're server"}],toastedOptions:{position:"bottom-center",duration:2500,keepOnHover:!0,className:"toast-message",iconPack:"fontawesome"},tooltipOptions:{defaultTrigger:"hover focus",defaultHideOnTargetClick:!0,autoHide:!0,defaultHtml:!1,defaultPlacement:"auto",defaultLoadingContent:"Loading...",defaultDelay:{show:380,hide:0}},backupEndpoint:"https://dashy-sync-service.as93.net",faviconApiEndpoints:{mcapi:"https://eu.mc-api.net/v3/server/favicon/$URL",clearbit:"https://logo.clearbit.com/$URL",faviconkit:"https://api.faviconkit.com/$URL/64",google:"https://www.google.com/s2/favicons?sz=128&domain_url=$URL",allesedv:"https://f1.allesedv.com/128/$URL",webmasterapi:"https://api.webmasterapi.com/v1/favicon/yEwx0ZFs0CSPshHq/$URL"},iconCdns:{fa:"https://kit.fontawesome.com",mdi:"https://cdn.jsdelivr.net/npm/@mdi/font@5.9.55/css/materialdesignicons.min.css",si:"https://unpkg.com/simple-icons@v5/icons",generative:"https://ipsicon.io",localPath:"/item-icons",faviconName:"favicon.ico"},searchEngineUrls:{duckduckgo:"https://duckduckgo.com/?q=",google:"https://google.com/search?q=",whoogle:"https://whoogle.sdf.org/search?q=",qwant:"https://www.qwant.com/?q=",startpage:"https://www.startpage.com/do/search?query=","searx-bar":"https://searx.bar/search?q=","searx-info":"https://searx.info/search?q=","searx-tiekoetter":"https://searx.tiekoetter.com/search?q=","searx-bissisoft":"https://searx.bissisoft.com/search?q=",ecosia:"https://www.ecosia.org/search?q=",metager:"https://metager.org/meta/meta.ger3?eingabe=",swisscows:"https://swisscows.com/web?query=",mojeek:"https://www.mojeek.com/search?q=",peekier:"https://peekier.com/#!",wikipedia:"https://en.wikipedia.org/w/?search=",stackoverflow:"https://stackoverflow.com/search?q=",wolframalpha:"https://www.wolframalpha.com/input/?i=",reddit:"https://www.reddit.com/search/?q=",youtube:"https://youtube.com/results?q=",github:"https://github.com/search?q=",bbc:"https://www.bbc.co.uk/search?q="},defaultSearchEngine:"duckduckgo",defaultSearchOpeningMethod:"newtab",searchBangs:{"/b":"bbc","/d":"duckduckgo","/g":"google","/r":"reddit","/w":"wikipedia","/y":"youtube","/gh":"github","/so":"stackoverflow","/wa":"wolframalpha"},swatches:[["#eb5cad","#985ceb","#5346f3","#5c90eb"],["#5cdfeb","#00CCB4","#5ceb8d","#afeb5c"],["#eff961","#ebb75c","#eb615c","#eb2d6c"],["#060913","#141b33","#1c2645","#263256"],["#2b2d42","#1a535c","#372424","#312437"],["#f5f5f5","#d9d9d9","#bfbfbf","#9a9a9a"],["#636363","#363636","#313941","#0d0d0d"]],sentryDsn:"https://3138ea85f15a4fa883a5b27a4dc8ee28@o937511.ingest.sentry.io/5887934",userStateEnum:{notConfigured:0,loggedIn:1,guestAccess:2,notLoggedIn:3},pwa:{name:"Dashy",manifestPath:"./manifest.json",themeColor:"#00af87",msTileColor:"#0b1021",mode:"production",iconPaths:{manifestCrossorigin:"use-credentials",favicon64:"./web-icons/favicon-64x64.png",favicon32:"./web-icons/favicon-32x32.png",maskIcon:"./web-icons/dashy-logo.png",msTileImage:"./web-icons/dashy-logo.png"}}}},"5d8a":function(e,t,a){},"5dbe":function(e,t,a){"use strict";a("fae5")},"5dde":function(e,t,a){},"5f32":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-times-circle fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"times-circle",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"}})]))}}},6264:function(e,t,a){},6266:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:[i,r],style:[l,c],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"100",height:"100",preserveAspectRatio:"xMidYMid"},u),...d},n.concat([a("defs",[a("clipPath",{attrs:{id:"a"}},[a("path",{attrs:{d:"M20 0h60v100H20z"}})])]),a("path",{attrs:{fill:"none",stroke:"var(--primary, #00af87)","stroke-width":"6","stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":"10","clip-path":"url(#a)",d:"M90 76.7V28.3c0-2.7-2.2-5-5-5h-3.4c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5h-3.4c-2.7 0-5-2.2-5-5V28.3c0-2.7-2.2-5-5-5H55c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5h-3.4c-2.7 0-5-2.2-5-5V28.3c0-2.7-2.2-5-5-5h-3.4c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5H15c-2.7 0-5-2.2-5-5V23.3"}},[a("animateTransform",{attrs:{attributeName:"transform",type:"translate",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"-20 0;7 0",keyTimes:"0;1"}}),a("animate",{attrs:{attributeName:"stroke-dasharray",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"0 72 125 232;0 197 125 233",keyTimes:"0;1"}})])]))}}},6504:function(e,t,a){},6561:function(e,t,a){},6667:function(e,t,a){"use strict";a("aee6")},6744:function(e,t,a){},6780:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-cloud-upload-alt fa-w-20",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"cloud-upload-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M395.5 267.5l-99-99c-4.7-4.7-12.3-4.7-17 0l-99 99c-7.6 7.6-2.2 20.5 8.5 20.5h67v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-84h67c10.7 0 16.1-12.9 8.5-20.5zm148.2-67.4C539.7 142.1 491.4 96 432 96c-7.6 0-15.1.8-22.4 2.3C377.7 58.3 328.1 32 272 32c-84.6 0-155.5 59.7-172.3 139.8C39.9 196.1 0 254.4 0 320c0 88.4 71.6 160 160 160h336c79.5 0 144-64.5 144-144 0-61.8-39.2-115.8-96.3-135.9zM496 432H160c-61.9 0-112-50.1-112-112 0-56.4 41.7-103.1 96-110.9V208c0-70.7 57.3-128 128-128 53.5 0 99.3 32.8 118.4 79.4 11.2-9.6 25.7-15.4 41.6-15.4 35.3 0 64 28.7 64 64 0 11.8-3.2 22.9-8.8 32.4 2.9-.3 5.9-.4 8.8-.4 53 0 96 43 96 96s-43 96-96 96z"}})]))}}},6850:function(e,t,a){"use strict";a("18b8")},"6cab":function(e,t,a){},"6cd5":function(e,t,a){"use strict";a("6504")},"6f36":function(e,t,a){"use strict";a("8477")},7075:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-expand fa-w-14",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"}})]))}}},7645:function(e,t,a){},"794b":function(e){e.exports=JSON.parse('{"home":{"no-results":"Ni Rezultatov Iskanja","no-data":"Podatki Niso Konfigurirani"},"search":{"search-label":"Iskanje","search-placeholder":"Začnite tipkati za filtrirate","clear-search-tooltip":"Počisti iskanje","enter-to-search-web":"Za iskanje po spletu pritisnite enter"},"login":{"title":"Dashy","username-label":"Uporabniško ime","password-label":"Geslo","login-button":"Prijava","remember-me-label":"Zapomni si me za","remember-me-never":"Nikoli","remember-me-hour":"4 Ure","remember-me-day":"1 Dan","remember-me-week":"1 Teden","error-missing-username":"Manjka Uporabniško Ime","error-missing-password":"Manjka Geslo","error-incorrect-username":"Uporabnik ne obstaja","error-incorrect-password":"Napačno Geslo","success-message":"Prijavljanje...","logout-message":"Odjavljen","already-logged-in-title":"Že prijavljeni","already-logged-in-text":"Prijavljeni ste kot","proceed-to-dashboard":"Nadaljujte na nadzorno ploščo","log-out-button":"Odjava","proceed-guest-button":"Nadaljujte kot gost"},"config":{"main-tab":"Glavni Meni","view-config-tab":"Ogled Konfiguracije","edit-config-tab":"Urejanje Konfiguracije","custom-css-tab":"Slogi Po Meri","heading":"Možnosti Konfiguracija","download-config-button":"Prenos Konfiguracije","edit-config-button":"Uredi Konfiguracijo","edit-css-button":"Uredi CSS Po Meri","cloud-sync-button":"Omogoči Sinhronizacijo v Oblaku","edit-cloud-sync-button":"Ureditev Sinhronizacije v Oblaku","rebuild-app-button":"Obnovi Aplikacijo","change-language-button":"Spremeni Jezik Aplikacije","reset-settings-button":"Ponastavi Lokalne Nastavitve","app-info-button":"Informacije o Aplikaciji","backup-note":"Priporočljivo je, da pred spremembami naredite varnostno kopijo konfiguracije.","reset-config-msg-l1":"To bo odstranilo vse uporabniške nastavitve iz lokalnega pomnilnika, vendar ne bo vplivalo na datoteko \'conf.yml\'.","reset-config-msg-l2":"Če želeti spremembe, ki ste jih naredili lokalno uporabiti v prihodnosti, ustvarite varnostno kopijo.","reset-config-msg-l3":"Ali ste prepričani, da želite nadaljevati?","data-cleared-msg":"Podatki so bili uspešno izbrisani","actions-label":"Dejanja","copy-config-label":"Kopiraj Konfiguracijo","data-copied-msg":"Config je bil kopiran v odložišče","reset-config-label":"Ponastavi Konfiguracijo","css-save-btn":"Shrani spremembe","css-note-label":"Opomba","css-note-l1":"Za uveljavitev sprememb boste morali osvežiti stran.","css-note-l2":"Preglasitve slogov so shranjene samo lokalno, zato je priporočljivo narediti kopijo CSS -ja.","css-note-l3":"Če želite odstraniti vse sloge po meri, izbrišite vsebino in pritisnite Shrani spremembe"},"alternate-views":{"default":"Privzeto","workspace":"Delovni prostor","minimal":"Minimalno"},"settings":{"theme-label":"Tema","layout-label":"Postavitev","layout-auto":"Avtomatsko","layout-horizontal":"Vodoravno","layout-vertical":"Vertikalno","item-size-label":"Velikost Predmeta","item-size-small":"Majhno","item-size-medium":"Srednje","item-size-large":"Veliko","config-launcher-label":"Nastavitve","config-launcher-tooltip":"Posodobi Konfiguracijo","sign-out-tooltip":"Odjava","sign-in-tooltip":"Vpiši se","sign-in-welcome":"Pozdravljen {username}!"},"updates":{"app-version-note":"Dashy verzija","up-to-date":"Posodobljeno","out-of-date":"Navoljo posodobitev","unsupported-version-l1":"Uporabljate nepodprto različico programa Dashy","unsupported-version-l2":"Za najboljšo izkušnjo in najnovejše varnostne popravke posodobite na"},"language-switcher":{"title":"Spremenite Jezik Aplikacije","dropdown-label":"Izberite Jezik","save-button":"Shrani","success-msg":"Jezik Posodobljen na"},"theme-maker":{"title":"Konfigurator Teme","export-button":"Izvozi Spremenljivke po Meri","reset-button":"Ponastavi Sloge za","show-all-button":"Pokaži Vse Spremenljivke","save-button":"Shrani","cancel-button":"Prekliči","saved-toast":"{theme} Posodbljena Uspešno","copied-toast":"Podatki o temi za {theme} so kopirani v odložišče","reset-toast":"Barve po Meri za {theme} Odstranjene"},"config-editor":{"save-location-label":"Način Shranjevanja","location-local-label":"Shrani Lokalno","location-disk-label":"Zapišite spremembe v datoteko za konfiguracijo","save-button":"Shrani Spremembe","valid-label":"Konfiguracija je veljavna","status-success-msg":"Operacija dokončana","status-fail-msg":"Operacija ni uspela","success-msg-disk":"Konfiguracijska datoteka je uspešno zapisana na disk","success-msg-local":"Lokalne spremembe so bile uspešno shranjene","success-note-l1":"Aplikacija se bo samodejno obnovila.","success-note-l2":"To lahko traja do ene minute.","success-note-l3":"Za uveljavitev sprememb boste morali osvežiti stran.","error-msg-save-mode":"Izberite način shranjevanja: Lokalno ali v Datoteko","error-msg-cannot-save":"Pri shranjevanju konfiguracije je prišlo do napake","error-msg-bad-json":"Napaka v JSON -u, morda nepravilno oblikovana","warning-msg-validation":"Opozorilo o Validaciji","not-admin-note":"Ne morete zapisati spremenjenega na disk, ker niste prijavljeni kot skrbnik"},"app-rebuild":{"title":"Obnovite Aplikacijo","rebuild-note-l1":"Za uveljavitev sprememb, zapisanih v datoteki conf.yml, je potrebna obnovitev.","rebuild-note-l2":"To bi se moralo zgoditi samodejno, če pa se ne, lahko to ročno sprožite tukaj.","rebuild-note-l3":"To ni potrebno za spremembe, shranjene lokalno.","rebuild-button":"Začni Graditi","rebuilding-status-1":"Gradnja...","rebuilding-status-2":"To lahko traja nekaj minut","error-permission":"Nimate dovoljenja za izvajanje tega dejanja","success-msg":"Gradnja je bila uspešno zaključena","fail-msg":"Operacija izdelave ni uspela","reload-note":"Za uveljavitev sprememb je potrebno osvežiti stran","reload-button":"Osveži Stran"},"cloud-sync":{"title":"Varnostno Kopiranje & Obnovitev v Oblaku","intro-l1":"Varnostno kopiranje in obnovitev v oblaku je izbirna funkcija, ki vam omogoča, da svojo konfiguracijo shranite v oblak in jo nato obnovite v kateri koli drugi napravi ali primerku Dashyja.","intro-l2":"Vsi podatki so v celoti šifrirani z AES, pri čemer je vaše geslo ključ.","intro-l3":"Za več informacij si oglejte","backup-title-setup":"Ustvari Varnostno Kopijo","backup-title-update":"Posodobi Varnostno Kopijo","password-label-setup":"Izberi Geslo","password-label-update":"Vnesite Geslo","backup-button-setup":"Varnosto Kopiraj","backup-button-update":"Posodobi Varnostno Kopijo","backup-id-label":"Vaš Obnovitveni ID","backup-id-note":"To se uporabi za obnovitev iz varnostnih kopij pozneje. Zato ga skupaj z geslom hranite na varnem.","restore-title":"Obnovite Varnostno Kopijo","restore-id-label":"Obnovitveni ID","restore-password-label":"Geslo","restore-button":"Obnovi","backup-missing-password":"Vnesite geslo","backup-error-unknown":"Zahteve ni mogoče obdelati","backup-error-password":"Napačno geslo. Prosim vnesite vaše trenutno geslo.","backup-success-msg":"Uspešno Zaključeno","restore-success-msg":"Konfiguracija Uspešno Obnovljena"},"menu":{"sametab":"Odpri v Trenutnem Zavihku","newtab":"Odpri v Novem Zavihku","modal":"Odpri v Pojavnem Oknu","workspace":"Odpri v Delovnem Pogledu"}}')},"7aa6":function(e,t,a){"use strict";a("9114")},"7ac4":function(e,t,a){"use strict";a("9f06")},"7c6b":function(e,t,a){"use strict";a("e736")},"7cd8":function(e,t,a){"use strict";a("5dde")},"7da9":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-css3-alt fa-w-12",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fab","data-icon":"css3-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"}})]))}}},"7e71":function(e,t,a){"use strict";a("d72b")},"7eb0":function(e,t,a){},"7ec8":function(e,t,a){"use strict";a("6744")},"7f59":function(e,t,a){},"80a7":function(e,t,a){"use strict";a("7eb0")},"826e":function(e,t,a){"use strict";a("939b")},"82a4":function(e,t,a){"use strict";a("6561")},"831b":function(e){e.exports=JSON.parse('{"type":"object","required":["sections"],"additionalProperties":false,"properties":{"pageInfo":{"type":"object","properties":{"title":{"type":"string","description":"Title and heading for the app"},"description":{"type":"string","description":"Sub-title, displayed in header"},"navLinks":{"type":"array","maxItems":6,"description":"Quick access links, displayed in header","items":{"type":"object","additionalProperties":false,"required":["title","path"],"properties":{"title":{"type":"string"},"path":{"type":"string"}}}},"footerText":{"type":"string"},"logo":{"type":"string","description":"Path to an optional image asset, to be displayed in the header","pattern":"^(http|/)","examples":["/web-icons/dashy-logo.png","https://i.ibb.co/yhbt6CY/dashy.png"]}},"required":["title"],"additionalProperties":false},"appConfig":{"type":"object","description":"Application configuration","properties":{"backgroundImg":{"type":"string","description":"A URL to an image asset to be displayed as background"},"language":{"type":"string","description":"The ISO code of your desired language, must have translations present, check docs for more info"},"startingView":{"enum":["default","minimal","workspace"],"default":"default","description":"Which page to load by default, and on the base page or domain root. You can still switch to different views from within the UI"},"theme":{"type":"string","default":"callisto","description":"A theme to be applied by default on first load","examples":["callisto","thebe","dracula","material","material-dark","colorful","nord","nord-frost","minimal-dark","minimal-light","matrix","matrix-red","hacker-girl","raspberry-jam","bee","tiger","material-original","material-dark-original","vaporware","high-contrast-dark","high-contrast-light"]},"enableFontAwesome":{"type":"boolean","default":true,"description":"Should load font-awesome assets"},"fontAwesomeKey":{"type":"string","pattern":"^[a-z0-9]{10}$","description":"API key for font-awesome"},"faviconApi":{"enum":["local","faviconkit","google","clearbit","webmasterapi","allesedv"],"default":"faviconkit","description":"Which service to use to resolve favicons. Set to local to do this locally instead"},"layout":{"enum":["horizontal","vertical","auto","sidebar"],"default":"auto","description":"Specifies sections layout orientation on the home screen"},"iconSize":{"enum":["small","medium","large"],"default":"medium","description":"The size of each link item / icon"},"hideComponents":{"type":"object","description":"Hide individual parts of the page. If not set, all components are visible by default","properties":{"hideHeading":{"type":"boolean","default":"false","description":"If set to true, the page heading & subtitle will be hidden"},"hideNav":{"type":"boolean","default":"false","description":"If set to true, the navigation menu will be hidden"},"hideSearch":{"type":"boolean","default":"false","description":"If set to true, the search bar will be hidden"},"hideSettings":{"type":"boolean","default":"false","description":"If set to true, the settings buttons will be hidden"},"hideFooter":{"type":"boolean","default":"false","description":"If set to true, the page footer will be hidden"},"hideSplashScreen":{"type":"boolean","default":"true","description":"If set to true, the loading / splash screen will not be shown"}}},"cssThemes":{"type":"array","description":"Theme names to be added to the dropdown","items":{"type":"string"}},"customColors":{"type":"object","description":"Set a custom color palette for any theme"},"externalStyleSheet":{"description":"URL or URLs of external stylesheets to add to dropdown/ load","type":["string","array"],"items":{"type":"string"}},"customCss":{"type":"string","description":"Any custom CSS overides, must be minified"},"statusCheck":{"type":"boolean","default":false,"description":"Displays an online/ offline status for each of your services"},"statusCheckInterval":{"type":"number","default":0,"description":"How often to recheck statuses. If set to 0, status will only be checked on page load"},"webSearch":{"type":"object","description":"Configure options for web search","additionalProperties":false,"properties":{"disableWebSearch":{"type":"boolean","default":"false","description":"If set to true, web search will be disabled all together"},"searchEngine":{"type":"string","default":"duckduckgo","description":"Set your default search engine. Reference provider by key, see docs for all supported search engines, or set to custom to use your own","examples":["duckduckgo","google","whoogle","qwant","startpage","searx-bar","searx-info","ecosia","metager","wikipedia","wolframalpha","stackoverflow","bbc","custom"]},"customSearchEngine":{"type":"string","description":"Set the URL of a self-hosted or custom search engine, including GET query params. You must also set searchEngine: custom"},"openingMethod":{"enum":["newtab","sametab","modal","workspace"],"default":"newtab","description":"Set where you would like search results to open to"},"searchBangs":{"type":"object","additionalProperties":true,"examples":[{"/r":"reddit","!w":"https://whoogle.local/search?q="}],"description":"A KV-pair of custom search bangs. The key should be the shortcut to type, and the value is the search engine, specified either by key or full URL"}}},"auth":{"type":"object","description":"Settings for enabling authentication","additionalProperties":false,"properties":{"enableGuestAccess":{"type":"boolean","default":false,"description":"If set to true, an unauthenticated user will be able to have read-only access to dashboard, without needing to login. Requires auth to be configured."},"users":{"type":"array","description":"Usernames and hashed credentials for frontend authentication","items":{"type":"object","additionalProperties":false,"required":["user","hash"],"properties":{"user":{"type":"string","description":"The username for a user"},"hash":{"type":"string","description":"A SHA-256 hashed password for that user","minLength":64,"maxLength":64},"type":{"enum":["admin","normal"],"description":"User type, denoting privilege level, either admin or normal","default":"normal"}}}},"enableKeycloak":{"type":"boolean","default":false,"description":"If set to true, and auth.keycloak is also configured, then Keycloak will be used for app auth"},"keycloak":{"type":"object","description":"Configuration for Keycloak server","additionalProperties":false,"required":["serverUrl","realm","clientId"],"properties":{"serverUrl":{"type":"string","description":"The URL (or URL/ IP + Port) where your keycloak server is running"},"realm":{"type":"string","description":"The name of the realm (must already be created) that you want to use"},"clientId":{"type":"string","description":"The Client ID of the client you created for use with Dashy"}}}}},"enableMultiTasking":{"type":"boolean","default":false,"description":"If set to true, will keep apps opened in the workspace open in the background. Useful for switching between sites, but comes at the cost of performance"},"allowConfigEdit":{"type":"boolean","default":true,"description":"Can user write changes to conf.yml file from the UI. If set to false, preferences are only stored locally"},"enableServiceWorker":{"type":"boolean","default":false,"description":"If set to true, then service workers will be used to cache page contents"},"disableContextMenu":{"type":"boolean","default":false,"description":"If set to true, custom right-click context menu will be disabled"},"disableUpdateChecks":{"type":"boolean","default":false,"description":"Prevents Dashy from checking for updates"},"disableSmartSort":{"type":"boolean","default":false,"description":"Prevents the app storing local click count, required for the last-used and most-used sort orders"},"enableErrorReporting":{"type":"boolean","default":false,"description":"Enable anonymous crash reports. This helps bugs be found and fixed, in order to make Dashy more stable. Reporting is off by default, and no data will EVER be collected without your explicit and active concent."},"sentryDsn":{"type":"string","description":"The DSN to your self-hosted Sentry server, if you need to collect bug reports. Only used if enableErrorReporting is enabled"}},"additionalProperties":false},"sections":{"type":"array","description":"Array of sections, containing items","items":{"type":"object","required":["name","items"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Title/ heading for a section"},"icon":{"type":"string","description":"Icon will be displayed next to title"},"displayData":{"type":"object","additionalProperties":false,"description":"Optional meta data for customizing a section","properties":{"sortBy":{"enum":["default","most-used","last-used","alphabetical","reverse-alphabetical","random"],"default":"default","description":"How to sort items within the section. By default items are displayed in the order in which they are listed in within the config"},"collapsed":{"type":"boolean","default":false,"description":"If true, section needs to be clicked to open"},"color":{"type":"string","description":"Hex code, or HTML color for section fill"},"customStyles":{"type":"string","description":"CSS overides for section container"},"itemSize":{"enum":["small","medium","large"],"default":"medium","description":"Size of items within the section"},"rows":{"type":"number","minimum":1,"maximum":5,"default":1,"description":"The amount of space that the section spans vertically"},"cols":{"type":"number","minimum":1,"maximum":5,"default":1,"description":"The amount of space that the section spans horizontally"},"sectionLayout":{"enum":["grid","auto"],"default":"auto","description":"If set to grid, items have uniform width, and itemCount can be set"},"itemCountX":{"type":"number","minimum":1,"maximum":12,"description":"Number of items per column"},"itemCountY":{"type":"number","minimum":1,"maximum":12,"description":"Number of items per row"},"hideForUsers":{"type":"array","description":"Section will be visible to all users, except for those specified in this list","items":{"type":"string","description":"Username for the user that will not be able to view this section"}},"showForUsers":{"type":"array","description":"Section will be hidden from all users, except for those specified in this list","items":{"type":"string","description":"Username for the user that will have access to this section"}},"hideForGuests":{"type":"boolean","default":false,"description":"If set to true, section will be visible for logged in users, but not for guests"}}},"items":{"type":"array","description":"Array of items to display with a section","items":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","description":"Text shown on the item"},"description":{"type":"string","nullable":true,"description":"Short description, shown on hover or in a tooltip"},"icon":{"type":"string","nullable":true,"description":"An icon, either as a font-awesome identifier, local or remote URL, or the word favicon or generative"},"url":{"type":"string","description":"The destination to navigate to when item is clicked"},"target":{"enum":["newtab","sametab","modal","workspace"],"default":"newtab","description":"Opening method, when item is clicked"},"hotkey":{"type":"number","description":"A numeric shortcut key, between 0 and 9. Useful for quickly launching frequently used applications"},"tags":{"type":"array","description":"Tags, which can be used for improved search","maxItems":12,"items":{"type":"string"}},"color":{"type":"string","description":"A custom fill color of the item"},"provider":{"type":"string","description":"Provider name, e.g. Microsoft"},"statusCheck":{"type":"boolean","default":false,"description":"Whether or not to display online/ offline status for this service. Will override appConfig.statusCheck"},"statusCheckUrl":{"type":"string","description":"If you\'ve enabled statusCheck, and want to use a different URL to what is defined under the item, then specify it here"},"statusCheckHeaders":{"type":"object","description":" If you\'re endpoint requires any specific headers for the status checking, then define them here"},"statusCheckAllowInsecure":{"type":"boolean","default":false,"description":"Allows for running status checks on insecure content/ non-HTTPS apps"}}}}}}}}}')},8477:function(e,t,a){},"847b":function(e,t,a){"use strict";a("3b4b")},"89e2":function(e,t,a){"use strict";a("1653")},"8b18":function(e,t,a){"use strict";a("a829")},"8b35":function(e,t,a){},"8b8e":function(e,t){e.exports={pageInfo:{title:"Dashy",navLinks:[{title:"Home",path:"/"},{title:"About",path:"/about"},{title:"Source Code",path:"https://github.com/Lissy93/dashy"}]},appConfig:{theme:"colorful",fontAwesomeKey:"0821c65656"},sections:[{name:"Getting Started",items:[{title:"Source",description:"Source code and documentation on GitHub",icon:"fab fa-github",url:"https://github.com/Lissy93/dashy"},{title:"Issues",description:"View currently open issues, or raise a new one",icon:"fas fa-bug",url:"https://github.com/Lissy93/dashy/issues"},{title:"Demo 1",description:"Live Demo #1",icon:"far fa-rocket",url:"https://dashy-demo-1.netlify.app"},{title:"Demo 2",description:"Live Demo #2",icon:"fad fa-planet-ringed",url:"https://dashy-demo-2.netlify.app"}]}]}},"8c78":function(e,t,a){},"8d7c":function(e,t,a){},"90a9":function(e){e.exports=JSON.parse('{"home":{"no-results":"لا نتائج للبحث","no-data":"لم يتم تكوين بيانات"},"search":{"search-label":"بحث","search-placeholder":"ابدأ الكتابة للتصفية","clear-search-tooltip":"مسح البحث","enter-to-search-web":"اضغط على Enter للبحث في الويب"},"login":{"title":"داشي","username-label":"اسم المستخدم","password-label":"كلمه السر","login-button":"تسجيل الدخول","remember-me-label":"تذكرني ل","remember-me-never":"أبدا","remember-me-hour":"4 ساعات","remember-me-day":"يوم 1","remember-me-week":"أسبوع 1","error-missing-username":"اسم المستخدم مفقود","error-missing-password":"كلمة المرور مفقودة","error-incorrect-username":"لم يتم العثور على المستخدم","error-incorrect-password":"كلمة سر خاطئة","success-message":"تسجيل الدخول...","logout-message":"تسجيل الخروج","already-logged-in-title":"تم تسجيل الدخول بالفعل","already-logged-in-text":"لقد قمت بتسجيل الدخول باعتبارك","proceed-to-dashboard":"انتقل إلى لوحة القيادة","log-out-button":"تسجيل خروج","proceed-guest-button":"المضي قدما كضيف"},"config":{"main-tab":"القائمة الرئيسية","view-config-tab":"مشاهدة ملف Config","edit-config-tab":"تحرير التكوين","custom-css-tab":"الأنماط المخصصة","heading":"خيارات الإعداد","download-config-button":"تنزيل Config","edit-config-button":"تحرير التكوين","edit-css-button":"تحرير CSS مخصص","cloud-sync-button":"قم بتمكين Cloud Sync","edit-cloud-sync-button":"تحرير Cloud Sync","rebuild-app-button":"إعادة إنشاء التطبيق","change-language-button":"تغيير لغة التطبيق","reset-settings-button":"إعادة ضبط الإعدادات المحلية","app-info-button":"معلومات التطبيق","backup-note":"يوصى بعمل نسخة احتياطية من التكوين الخاص بك قبل إجراء التغييرات.","reset-config-msg-l1":"سيؤدي هذا إلى إزالة جميع إعدادات المستخدم من التخزين المحلي ، لكنه لن يؤثر على ملف \\"conf.yml\\" الخاص بك.","reset-config-msg-l2":"يجب عليك أولاً الاحتفاظ بنسخة احتياطية من أي تغييرات أجريتها محليًا ، إذا كنت ترغب في استخدامها في المستقبل.","reset-config-msg-l3":"هل انت متأكد انك تريد المتابعة؟","data-cleared-msg":"تم مسح البيانات بنجاح","actions-label":"أجراءات","copy-config-label":"نسخ التكوين","data-copied-msg":"تم نسخ التكوين إلى الحافظة","reset-config-label":"إعادة التهيئة","css-save-btn":"حفظ التغييرات","css-note-label":"ملحوظة","css-note-l1":"ستحتاج إلى تحديث الصفحة حتى تصبح التغييرات سارية المفعول.","css-note-l2":"يتم تخزين تجاوزات الأنماط محليًا فقط ، لذا يوصى بعمل نسخة من CSS الخاص بك.","css-note-l3":"لإزالة جميع الأنماط المخصصة ، احذف المحتويات واضغط على حفظ التغييرات"},"alternate-views":{"alternate-view-heading":"عرض التبديل","default":"تقصير","workspace":"مساحة العمل","minimal":"الحد الأدنى"},"settings":{"theme-label":"سمة","layout-label":"تخطيط","layout-auto":"آلي","layout-horizontal":"أفقي","layout-vertical":"عمودي","item-size-label":"حجم الصنف","item-size-small":"صغير","item-size-medium":"واسطة","item-size-large":"كبير","config-launcher-label":"التكوين","config-launcher-tooltip":"تحديث التكوين","sign-out-tooltip":"خروج","sign-in-tooltip":"تسجيل دخول","sign-in-welcome":"مرحبًا {username}!"},"updates":{"app-version-note":"نسخة متهورة","up-to-date":"حتى الآن","out-of-date":"التحديث متاح","unsupported-version-l1":"أنت تستخدم إصدارًا غير مدعوم من Dashy","unsupported-version-l2":"للحصول على أفضل تجربة وأحدث تصحيحات الأمان ، يرجى التحديث إلى"},"language-switcher":{"title":"تغيير لغة التطبيق","dropdown-label":"اختر لغة","save-button":"يحفظ","success-msg":"تم تحديث اللغة إلى"},"theme-maker":{"title":"مكون الموضوع","export-button":"تصدير المتغيرات المخصصة","reset-button":"إعادة تعيين الأنماط لـ","show-all-button":"إظهار كافة المتغيرات","save-button":"يحفظ","cancel-button":"يلغي","saved-toast":"{theme} تم التحديث بنجاح","copied-toast":"تم نسخ بيانات السمة لـ {theme} إلى الحافظة","reset-toast":"تمت إزالة الألوان المخصصة لـ {theme}"},"config-editor":{"save-location-label":"حفظ الموقع","location-local-label":"تطبيق محليا","location-disk-label":"اكتب التغييرات في ملف التكوين","save-button":"حفظ التغييرات","valid-label":"التكوين صالح","status-success-msg":"اكتملت المهمة","status-fail-msg":"فشلت المهمة","success-msg-disk":"تمت كتابة ملف التكوين على القرص بنجاح","success-msg-local":"تم حفظ التغييرات المحلية بنجاح","success-note-l1":"يجب إعادة إنشاء التطبيق تلقائيًا.","success-note-l2":"قد يستغرق هذا ما يصل إلى دقيقة.","success-note-l3":"ستحتاج إلى تحديث الصفحة لتصبح التغييرات سارية المفعول.","error-msg-save-mode":"الرجاء تحديد \\"وضع الحفظ\\": محلي أو ملف","error-msg-cannot-save":"حدث خطأ أثناء حفظ التكوين","error-msg-bad-json":"خطأ في JSON ، ربما يكون غير صحيح","warning-msg-validation":"تحذير التحقق","not-admin-note":"لا يمكنك الكتابة التغيير إلى القرص ، لأنك لم تقم بتسجيل الدخول كمسؤول"},"app-rebuild":{"title":"إعادة إنشاء التطبيق","rebuild-note-l1":"إعادة بناء مطلوب حتى تصبح التغييرات المكتوبة في ملف conf.yml سارية المفعول.","rebuild-note-l2":"يجب أن يحدث هذا تلقائيًا ، ولكن إذا لم يحدث ذلك ، فيمكنك تشغيله يدويًا هنا.","rebuild-note-l3":"هذا ليس مطلوبًا للتعديلات المخزنة محليًا.","rebuild-button":"ابدأ البناء","rebuilding-status-1":"بناء...","rebuilding-status-2":"قد يستغرق هذا بضع دقائق","error-permission":"ليس لديك إذن لبدء هذا الإجراء","success-msg":"اكتمل البناء بنجاح","fail-msg":"فشلت عملية البناء","reload-note":"يلزم الآن إعادة تحميل الصفحة حتى تدخل التغييرات حيز التنفيذ","reload-button":"إعادة تحميل الصفحة"},"cloud-sync":{"title":"النسخ الاحتياطي والاستعادة السحابية","intro-l1":"تعد ميزة النسخ الاحتياطي والاستعادة السحابية ميزة اختيارية ، تتيح لك تحميل التهيئة الخاصة بك على الإنترنت ، ثم استعادتها على أي جهاز أو مثيل آخر لـ Dashy.","intro-l2":"جميع البيانات مشفرة بالكامل من طرف إلى طرف باستخدام AES ، باستخدام كلمة مرورك كمفتاح.","intro-l3":"لمزيد من المعلومات ، يرجى الاطلاع على","backup-title-setup":"أصنع نسخة إحتياطية","backup-title-update":"تحديث النسخ الاحتياطي","password-label-setup":"اختر كلمة مرور","password-label-update":"ادخل رقمك السري","backup-button-setup":"دعم","backup-button-update":"تحديث النسخ الاحتياطي","backup-id-label":"معرف النسخ الاحتياطي الخاص بك","backup-id-note":"يستخدم هذا للاستعادة من النسخ الاحتياطية لاحقًا. لذا احتفظ بها ، جنبًا إلى جنب مع كلمة مرورك في مكان آمن.","restore-title":"استعادة نسخة احتياطية","restore-id-label":"استعادة الهوية","restore-password-label":"كلمه السر","restore-button":"يعيد","backup-missing-password":"كلمة المرور مفقودة","backup-error-unknown":"غير قادر على معالجة الطلب","backup-error-password":"كلمة سر خاطئة. الرجاء إدخال كلمة المرور الحالية الخاصة بك.","backup-success-msg":"تم بنجاح","restore-success-msg":"تمت استعادة التكوين بنجاح"},"menu":{"sametab":"فتح في علامة التبويب الحالية","newtab":"فتح في علامة تبويب جديدة","modal":"فتح في Pop-Up Modal","workspace":"فتح في عرض مساحة العمل"}}')},"90de":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-window-close fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"window-close",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"}})]))}}},"90ff":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-save fa-w-14",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"save",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M433.941 129.941l-83.882-83.882A48 48 0 00316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 00-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 01-6-6V86a6 6 0 016-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 011.757 4.243V426a6 6 0 01-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"}})]))}}},9114:function(e,t,a){},"913d":function(e){e.exports=JSON.parse('{"home":{"no-results":"Tu búsqueda no ha obtenido resultados","no-data":"Faltan datos en la configuración"},"search":{"search-label":"Buscar","search-placeholder":"Empieza a escribir para filtrar","clear-search-tooltip":"Borrar búsqueda","enter-to-search-web":"Pulsa Enter para buscar"},"login":{"title":"Dashy","username-label":"Usuario","password-label":"Contraseña","login-button":"Acceder","remember-me-label":"Recuérdame durante","remember-me-never":"Nunca","remember-me-hour":"4 Horas","remember-me-day":"1 Día","remember-me-week":"1 Semana","error-missing-username":"Falta Usuario","error-missing-password":"Falta Contraseña","error-incorrect-username":"El usuario no existe","error-incorrect-password":"La Contraseña es incorrecta","success-message":"Accediendo...","logout-message":"Desconectado","already-logged-in-title":"Estás conectado","already-logged-in-text":"Estás conectado como","proceed-to-dashboard":"Ir al Dashboard","log-out-button":"Desconectarte","proceed-guest-button":"Acceder como Invitado"},"config":{"main-tab":"Menu Principal","view-config-tab":"Ver Configuración","edit-config-tab":"Editar Configuración","custom-css-tab":"Personalizar apariencia","heading":"Opciones de Configuración","download-config-button":"Descargar Configuración","edit-config-button":"Editar Configuración","edit-css-button":"Personalizar aspecto - CSS","cloud-sync-button":"Activar Sincronización Cloud","edit-cloud-sync-button":"Editar Sincronización Cloud","rebuild-app-button":"Rebuild de la App","change-language-button":"Cambiar el Idioma","reset-settings-button":"Restaurar los Ajustes","app-info-button":"Info de la App","backup-note":"Se recomienda hacer una copia de seguridad de la configuración antes de realizar los cambios.","reset-config-msg-l1":"Esto borrará la configuración local del usuario, pero no tendrá ningún efecto en el fichero \'conf.yml\'.","reset-config-msg-l2":"Es recomedable realizar primero una copia de seguridad de los cambios hecho en su configuración local, por si los necesitas usar en el futuro.","reset-config-msg-l3":"¿Estás seguro de que quieres continuar?","data-cleared-msg":"Datos eliminados correctamente","actions-label":"Acciones","copy-config-label":"Copiar la Configuración","data-copied-msg":"La Configuración ha sido copiada al portapapeles","reset-config-label":"Resetear la Configuración","css-save-btn":"Guardar Cambios","css-note-label":"Nota","css-note-l1":"Necesitarás refrescar tu navegador para que los cambios realizados tengan efecto.","css-note-l2":"La modificación de la apariencia sólo se almacena localmente, es recomendable realizar una copia de seguridad de tu CSS.","css-note-l3":"Para borrar las apariencias personalizadas, borra los contenidos y pulsa \'Guardar Cambios\'"},"alternate-views":{"alternate-view-heading":"Cambiar Vista","default":"Por defecto","workspace":"Espacio de trabajo","minimal":"Minimalista"},"settings":{"theme-label":"Tema","layout-label":"Diseño","layout-auto":"Auto","layout-horizontal":"Horizontal","layout-vertical":"Vertical","item-size-label":"Tamaño de los Items","item-size-small":"Pequeño","item-size-medium":"Mediano","item-size-large":"Grande","config-launcher-label":"Configuración","config-launcher-tooltip":"Actualizar Configuración","sign-out-tooltip":"Desconectar","sign-in-tooltip":"Acceder","sign-in-welcome":"Hola {username}!"},"updates":{"app-version-note":"Versión de Dashy","up-to-date":"Actualizada","out-of-date":"Actualización disponible","unsupported-version-l1":"Estás usando una versión de Dashy no soportada","unsupported-version-l2":"Si quieres una mejor experiencia de usuario, y aplicar los parches de seguridad disponibles, por favor actualiza a"},"language-switcher":{"title":"Cambiar el idioma de la App","dropdown-label":"Selecciona un idioma","save-button":"Guardar","success-msg":"Idioma actualizado a"},"theme-maker":{"title":"Configurar el Tema","export-button":"Exportar las Variables","reset-button":"Restaurar Estilo para","show-all-button":"Mostrar todas las Variables","save-button":"Guardar","cancel-button":"Cancelar","saved-toast":"{theme} Actualizado correctamente","copied-toast":"Datos del Tema {theme} copiados al portapapeles","reset-toast":"Colores personalizados de {theme} borrados"},"config-editor":{"save-location-label":"Guardar Ubicación","location-local-label":"Aplicar localmente","location-disk-label":"Guardar cambion en el fichero de configuración","save-button":"Guardar Cambios","valid-label":"La configuración es válida","status-success-msg":"Tarea Completada","status-fail-msg":"La Tarea ha fallado","success-msg-disk":"Fichero de configuración guardado en disco correctamente","success-msg-local":"Los cambios locales se han guardado correctamente","success-note-l1":"La App se recompilará automáticamente.","success-note-l2":"Esto puede llevar algo más de un minuto.","success-note-l3":"Es necesario refrescar la página para que los cambios tengan efecto.","error-msg-save-mode":"Por favor selecciona un modo de Guardar: Local o Fichero","error-msg-cannot-save":"Se ha producido un error al guardar la configuración","error-msg-bad-json":"Error en el JSON, probablemente esté mal construído","warning-msg-validation":"Advertencia de validación","not-admin-note":"No puedes guardar los cambios en el disco, porque no estás conectado como un Administrador"},"app-rebuild":{"title":"Rebuild la App","rebuild-note-l1":"Se requiere recompilar, para que los cambios realizados en el \'conf.yml\' tengan efecto.","rebuild-note-l2":"Esto debería de suceder automáticamente, pero si no sucede, puedes forzarlo manualmente aquí.","rebuild-note-l3":"No es necesario para modificaciones guardadas localmente.","rebuild-button":"Iniciar Build","rebuilding-status-1":"Building...","rebuilding-status-2":"Esto puede llevar unos minutos","error-permission":"No tienes privilegios para ejecutar esta acción","success-msg":"Build completado correctamente","fail-msg":"el Build ha fallado","reload-note":"Se requiere refrescar la página para que los cambios tengan efecto","reload-button":"Refrescar la página"},"cloud-sync":{"title":"Copia de seguridad y Restauración en la Nube","intro-l1":"La copia de seguridad y restaurar en la Nube es una funcionalidad opcional, que permite subir tu configuración a Internet, y restaurarle en cualquier dispositivo u otras instancias de Dashy.","intro-l2":"Todos los datos están cifrados de extremo a extremo con AES, la Contraseña elegida es la clave de cifrado.","intro-l3":"Para más información, por favor consulta","backup-title-setup":"Hacer una copia de seguridad","backup-title-update":"Restaurar copia de seguridad","password-label-setup":"Selecciona una Contraseña","password-label-update":"Escribe tu Contraseña","backup-button-setup":"Copia de Seguridad","backup-button-update":"Actualizar la copia de seguridad","backup-id-label":"El identificador (ID) de tu copia de seguridad","backup-id-note":"Esto es necesario para restaurar copias de seguridad posteriormente. No lo pierdas, guardalo junto a la contraseña que usaste en un lugar seguro.","restore-title":"Restaurar una copia de seguridad","restore-id-label":"ID (identificador) de la copia de seguridad","restore-password-label":"Contraseña","restore-button":"Restaurar","backup-missing-password":"Falta la Contraseña","backup-error-unknown":"No se puede procesar la solicitud","backup-error-password":"Contraseña incorrecta. Por favor introduce la contraseña.","backup-success-msg":"Completado con éxito","restore-success-msg":"Configuración restaurada con éxito"},"menu":{"sametab":"Abrir en la pestaña actual","newtab":"Abrir en una nueva pestaña","modal":"Abrir en un Pop-Up","workspace":"Abrir en el espacio de trabajo"}}')},"922c":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-expand-arrows-alt fa-w-14",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M448 344v112a23.94 23.94 0 01-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 01-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0124-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0124 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"}})]))}}},"939b":function(e,t,a){},9517:function(e,t,a){"use strict";a("a8d0")},9635:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:[i,r],style:[l,c],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{d:"M132.893 310.534l-30.082 10.911L91.9 291.364l30.081-10.911z"}}),a("path",{attrs:{d:"M271.552 301.072l-77.856-46.72-41.616 15.152 10.944 30.064 27.28-9.92 82.144 49.28 97.6-65.072L480 315.088V480H32V347.2l40.8-14.848-10.928-30.048L0 324.8V512h512V292.912l-146.048-54.768z"}}),a("path",{attrs:{d:"M0 0v278.848l66.576-24.224-10.928-30.064L32 233.152V32h448v168.912l-114.048-42.768-94.4 62.928-77.856-46.72-47.84 17.392 10.944 30.064 33.504-12.16 82.144 49.28 97.6-65.072L512 247.088V0z"}}),a("path",{attrs:{d:"M96.656 243.686L85.721 213.63l30.07-10.94 10.935 30.055z"}})]))}}},"963f":function(e,t,a){"use strict";a("4117")},"971b":function(e,t,a){},"97fb":function(e,t,a){},"9c0c":function(e,t,a){},"9e50":function(e,t,a){"use strict";a("3323")},"9e96":function(e,t,a){},"9f06":function(e,t,a){},"9f61":function(e,t,a){"use strict";a("5d8a")},a57c:function(e,t,a){"use strict";a("971b")},a829:function(e,t,a){},a8d0:function(e,t,a){},a9d3:function(e,t,a){"use strict";a("4ba4")},ade2:function(e,t,a){},aee6:function(e,t,a){},af4f:function(e){e.exports=JSON.parse('{"home":{"no-results":"検索結果がありません","no-data":"データが構成されていません"},"search":{"search-label":"検索","search-placeholder":"フィルタリングするために入力を開始します","clear-search-tooltip":"クリア検索","enter-to-search-web":"Enterキーを押して、Webを検索します"},"login":{"title":"ダシー","username-label":"ユーザー名","password-label":"パスワード","login-button":"ログイン","remember-me-label":"私を覚えておいてください","remember-me-never":"一度もない","remember-me-hour":"4時間","remember-me-day":"1日","remember-me-week":"1週間","error-missing-username":"ユーザー名がありません","error-missing-password":"パスワードがありません","error-incorrect-username":"ユーザーが見つかりません","error-incorrect-password":"パスワードが正しくありません","success-message":"ログインしています...","logout-message":"ログアウトしました","already-logged-in-title":"ログイン済み","already-logged-in-text":"としてログインしています","proceed-to-dashboard":"ダッシュボードに進みます","log-out-button":"ログアウト","proceed-guest-button":"ゲストとして続行"},"config":{"main-tab":"メインメニュー","view-config-tab":"構成の表示","edit-config-tab":"構成の編集","custom-css-tab":"カスタムスタイル","heading":"構成オプション","download-config-button":"構成のダウンロード","edit-config-button":"構成の編集","edit-css-button":"カスタムCSSを編集する","cloud-sync-button":"クラウド同期を有効にする","edit-cloud-sync-button":"CloudSyncを編集する","rebuild-app-button":"アプリケーションを再構築する","change-language-button":"アプリの言語を変更する","reset-settings-button":"ローカル設定をリセット","app-info-button":"アプリ情報","backup-note":"変更を加える前に、構成のバックアップを作成することをお勧めします。","reset-config-msg-l1":"これにより、ローカルストレージからすべてのユーザー設定が削除されますが、「conf.yml」ファイルには影響しません。","reset-config-msg-l2":"将来使用する場合は、最初にローカルで行った変更をバックアップする必要があります。","reset-config-msg-l3":"続行してもよろしいですか?","data-cleared-msg":"データは正常にクリアされました","actions-label":"行動","copy-config-label":"構成のコピー","data-copied-msg":"構成がクリップボードにコピーされました","reset-config-label":"構成のリセット","css-save-btn":"変更内容を保存","css-note-label":"ノート","css-note-l1":"変更を有効にするには、ページを更新する必要があります。","css-note-l2":"スタイルのオーバーライドはローカルにのみ保存されるため、CSSのコピーを作成することをお勧めします。","css-note-l3":"すべてのカスタムスタイルを削除するには、コンテンツを削除して[変更を保存]をクリックします"},"alternate-views":{"alternate-view-heading":"ビューの切り替え","default":"ディフォルト","workspace":"ワークスペース","minimal":"最小限"},"settings":{"theme-label":"テーマ","layout-label":"レイアウト","layout-auto":"自動","layout-horizontal":"水平","layout-vertical":"垂直","item-size-label":"アイテムサイズ","item-size-small":"小さな","item-size-medium":"中くらい","item-size-large":"大きい","config-launcher-label":"構成","config-launcher-tooltip":"構成の更新","sign-out-tooltip":"サインアウト","sign-in-tooltip":"ログインする","sign-in-welcome":"こんにちは{ユーザー名}!"},"updates":{"app-version-note":"Dashyバージョン","up-to-date":"最新の","out-of-date":"利用可能なアップデート","unsupported-version-l1":"サポートされていないバージョンのDashyを使用しています","unsupported-version-l2":"最高のエクスペリエンスと最近のセキュリティパッチについては、に更新してください。"},"language-switcher":{"title":"アプリケーション言語の変更","dropdown-label":"言語を選択してください","save-button":"保存する","success-msg":"言語が更新されました"},"theme-maker":{"title":"テーマコンフィギュレーター","export-button":"カスタム変数のエクスポート","reset-button":"のスタイルをリセット","show-all-button":"すべての変数を表示","save-button":"保存する","cancel-button":"キャンセル","saved-toast":"{テーマ}正常に更新されました","copied-toast":"クリップボードにコピーされた{theme}のテーマデータ","reset-toast":"{theme}のカスタムカラーが削除されました"},"config-editor":{"save-location-label":"位置を保存","location-local-label":"ローカルで適用","location-disk-label":"構成ファイルへの変更の書き込み","save-button":"変更内容を保存","valid-label":"構成は有効です","status-success-msg":"タスク完了","status-fail-msg":"タスクが失敗しました","success-msg-disk":"構成ファイルがディスクに正常に書き込まれました","success-msg-local":"ローカルの変更が正常に保存されました","success-note-l1":"アプリは自動的に再構築されます。","success-note-l2":"これには最大1分かかる場合があります。","success-note-l3":"変更を有効にするには、ページを更新する必要があります。","error-msg-save-mode":"保存モードを選択してください:ローカルまたはファイル","error-msg-cannot-save":"設定の保存中にエラーが発生しました","error-msg-bad-json":"JSONのエラー、おそらく不正な形式","warning-msg-validation":"検証の警告","not-admin-note":"管理者としてログインしていないため、変更をディスクに書き込むことはできません"},"app-rebuild":{"title":"アプリケーションを再構築する","rebuild-note-l1":"conf.ymlファイルに書き込まれた変更を有効にするには、再構築が必要です。","rebuild-note-l2":"これは自動的に発生するはずですが、発生していない場合は、ここで手動でトリガーできます。","rebuild-note-l3":"これは、ローカルに保存された変更には必要ありません。","rebuild-button":"ビルドを開始します","rebuilding-status-1":"建物...","rebuilding-status-2":"これには数分かかる場合があります","error-permission":"このアクションをトリガーする権限がありません","success-msg":"ビルドが正常に完了しました","fail-msg":"ビルド操作に失敗しました","reload-note":"変更を有効にするには、ページの再読み込みが必要になりました","reload-button":"ページをリロード"},"cloud-sync":{"title":"クラウドのバックアップと復元","intro-l1":"クラウドのバックアップと復元はオプションの機能であり、構成をインターネットにアップロードしてから、他のデバイスまたはDashyのインスタンスに復元することができます。","intro-l2":"すべてのデータは、パスワードをキーとして使用して、AESで完全にエンドツーエンドで暗号化されます。","intro-l3":"詳細については、","backup-title-setup":"バックアップを作成する","backup-title-update":"バックアップの更新","password-label-setup":"パスワードを決めて下さい","password-label-update":"パスワードを入力してください","backup-button-setup":"バックアップ","backup-button-update":"バックアップの更新","backup-id-label":"バックアップID","backup-id-note":"これは、後でバックアップから復元するために使用されます。したがって、パスワードと一緒に安全な場所に保管してください。","restore-title":"バックアップを復元する","restore-id-label":"IDを復元","restore-password-label":"パスワード","restore-button":"戻す","backup-missing-password":"パスワードがありません","backup-error-unknown":"リクエストを処理できません","backup-error-password":"パスワードが正しくありません。現在のパスワードを入力してください。","backup-success-msg":"正常に完了しました","restore-success-msg":"構成が正常に復元されました"},"menu":{"sametab":"現在のタブで開く","newtab":"新しいタブで開く","modal":"ポップアップモーダルで開く","workspace":"ワークスペースビューで開く"}}')},b5c9:function(e,t,a){"use strict";a("7645")},b8f7:function(e,t,a){},c715:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-table fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"table",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"}})]))}}},cb40:function(e){e.exports=JSON.parse('{"home":{"no-results":"keine Suchresultate","no-data":"keine Daten Konfiguriert"},"search":{"search-label":"Suche","search-placeholder":"Starte tippen um zu filtern","clear-search-tooltip":"Leere die Suche"},"login":{"title":"Dashy","username-label":"Username","password-label":"Passwort","login-button":"Login","remember-me-label":"Angemeldet bleiben für","remember-me-never":"Niemals","remember-me-hour":"4 Stunden","remember-me-day":"1 Tag","remember-me-week":"1 Woche"},"config":{"main-tab":"Config","view-config-tab":"zeige Config","edit-config-tab":"bearbeite Config","custom-css-tab":"eigene Styles","heading":"Konfiguration optionen","download-config-button":"Download Config","edit-config-button":"bearbeite Config","edit-css-button":"bearbeite Custom CSS","cloud-sync-button":"aktiviere Cloud Sync","edit-cloud-sync-button":"bearbeite Cloud Sync","rebuild-app-button":"Anwendung neu erstellen","change-language-button":"ändere App Sprache","reset-settings-button":"Lokale Einstellungen zurücksetzten","app-info-button":"App Info","backup-note":"Es wird empfohlen ein Backup der Konfiguration zu erstellen, bevor Änderungen durchgeführt werden.","reset-config-msg-l1":"Dadurch werden alle Benutzereinstellungen aus dem lokalen Speicher entfernt, hat jedoch keine Auswirkungen auf Ihre Datei \'conf.yml\'.","reset-config-msg-l2":"Sie sollten zuerst alle Änderungen, die Sie lokal vorgenommen haben, sichern, wenn Sie sie in Zukunft verwenden möchten.","reset-config-msg-l3":"Sind Sie sicher, dass Sie fortfahren möchten?","data-cleared-msg":"Daten erfolgreich gelöscht","actions-label":"Aktionen","copy-config-label":"Config kopieren","data-copied-msg":"Config wurde in die Zwischenablage kopiert","reset-config-label":"Config zurücksetzten","css-save-btn":"Änderungen speichern","css-note-label":"Bemerkung","css-note-l1":"Sie müssen die Seite aktualisieren, damit Ihre Änderungen wirksam werden.","css-note-l2":"Stilüberschreibungen werden nur lokal gespeichert, daher wird empfohlen, eine Kopie Ihres CSS zu erstellen.","css-note-l3":"Um alle benutzerdefinierten Stile zu entfernen, löschen Sie den Inhalt und klicken Sie auf Änderungen speichern."},"settings":{"theme-label":"Theme","layout-label":"Layout","layout-auto":"Auto","layout-horizontal":"Horizontal","layout-vertical":"Vertikal","item-size-label":"Item größe","item-size-small":"klein","item-size-medium":"mittel","item-size-large":"groß","config-launcher-label":"Config"},"updates":{"app-version-note":"Dashy version","up-to-date":"Up-to-Date","out-of-date":"Update Verfügbar","unsupported-version-l1":"Sie verwenden eine nicht unterstützte Version von Dashy","unsupported-version-l2":"Für die beste Erfahrung und aktuelle Sicherheitspatches aktualisieren Sie bitte auf"},"language-switcher":{"title":"Ändere die Applikationssprache","dropdown-label":"Sprache Auswählen","save-button":"Speichern","success-msg":"Sprache geändert zu"},"theme-maker":{"title":"Theme Konfigurator","export-button":"Benutzerdefinierte Variablen exportieren","reset-button":"Styles zurücksetzen für","show-all-button":"Alle Variablen anzeigen","save-button":"Speichern","cancel-button":"Abbrechen","saved-toast":"{theme} wurde Erfolgreich geupdated","copied-toast":"Theme Daten für {theme} in Zwischenablage kopiert.","reset-toast":"Benutzerdefinierte Farben für {theme} entfernt"},"config-editor":{"save-location-label":"Speicherort","location-local-label":"Lokal","location-disk-label":"Änderungen in die Konfigurationsdatei schreiben","save-button":"speichere Änderungen","valid-label":"Config ist gültig","status-success-msg":"Aufgabe abgeschlossen","status-fail-msg":"Aufgabe fehlgeschlagen","success-msg-disk":"Konfigurationsdatei erfolgreich auf die Festplatte geschrieben","success-msg-local":"Lokale Änderungen erfolgreich gespeichert","success-note-l1":"Die App sollte automatisch rebuild werden.","success-note-l2":"Dies kann bis zu einer Minute dauern.","success-note-l3":"Sie müssen die Seite aktualisieren, damit die Änderungen wirksam werden.","error-msg-save-mode":"Bitte wählen Sie einen Speichermodus: Lokal oder Datei","error-msg-cannot-save":"Beim Speichern der Konfiguration ist ein Fehler aufgetreten","error-msg-bad-json":"Fehler in JSON, möglicherweise fehlerhaft","warning-msg-validation":"Validierungswarnung"},"app-rebuild":{"title":"Rebuild Application","rebuild-note-l1":"Damit die in die Datei conf.yml geschriebenen Änderungen wirksam werden, ist ein rebuild erforderlich.","rebuild-note-l2":"Dies sollte automatisch passieren, aber wenn nicht, können Sie es hier manuell auslösen.","rebuild-note-l3":"Dies ist bei lokal gespeicherten Änderungen nicht erforderlich.","rebuild-button":"Start Build","rebuilding-status-1":"Building...","rebuilding-status-2":"Das kann ein paar minuten dauern","error-permission":"Sie sind nicht berechtigt, diese Aktion auszulösen","success-msg":"Build erfolgreich abgeschlossen","fail-msg":"Build-Vorgang fehlgeschlagen","reload-note":"Ein Neuladen der Seite ist jetzt erforderlich, damit die Änderungen wirksam werden.","reload-button":"Seite neuladen"},"cloud-sync":{"title":"Cloud Backup & Wiederherstellung","intro-l1":"Cloud-Backup und Wiederherstellung ist eine optionale Funktion, mit der Sie Ihre Config in das Internet hochladen und dann auf einem anderen Gerät oder einer anderen Dashy-Instanz wiederherstellen können.","intro-l2":"Alle Daten sind vollständig Ende-zu-Ende mit AES verschlüsselt. Ihr Passwort wird als Schlüssel verwendet wird.","intro-l3":"Weitere Informationen finden Sie im","backup-title-setup":"Backup erstellen","backup-title-update":"Backup aktualisieren","password-label-setup":"Passwort auswählen","password-label-update":"Passwort eigeben","backup-button-setup":"Backup","backup-button-update":"Backup aktualisieren","backup-id-label":"Your Backup ID","backup-id-note":"Dies wird verwendet, um später aus Backups wiederherzustellen. Bewahren Sie es zusammen mit Ihrem Passwort an einem sicheren Ort auf.","restore-title":"Backup wiederherstellen","restore-id-label":"Restore ID","restore-password-label":"Passwort","restore-button":"wiederherstellen","backup-error-unknown":"Anfrage kann nicht verarbeitet werden","backup-error-password":"Falsches Passwort. Bitte geben Sie Ihr aktuelles Passwort ein.","backup-success-msg":"Erfolgreich beendet","restore-success-msg":"Config erfolgreich wiederhergestellt"}}')},cbd9:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-file-download fa-w-12",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"file-download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M216 236.07c0-6.63-5.37-12-12-12h-24c-6.63 0-12 5.37-12 12v84.01h-48.88c-10.71 0-16.05 12.97-8.45 20.52l72.31 71.77c4.99 4.95 13.04 4.95 18.03 0l72.31-71.77c7.6-7.54 2.26-20.52-8.45-20.52H216v-84.01zM369.83 97.98L285.94 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h287.94c26.5 0 48.07-21.5 48.07-47.99V131.97c0-12.69-5.17-24.99-14.17-33.99zM255.95 51.99l76.09 76.08h-76.09V51.99zM336 464.01H47.99V48.09h159.97v103.98c0 13.3 10.7 23.99 24 23.99H336v287.95z"}})]))}}},cf1c:function(e,t,a){"use strict";a("8d7c")},d16d:function(e,t,a){"use strict";a("18dd")},d72b:function(e,t,a){},d8e8:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-compress-arrows-alt fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"compress-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"}})]))}}},de40:function(e,t,a){"use strict";a("7f59")},e0a2:function(e,t){e.exports=/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/},e316:function(e){e.exports=JSON.parse('{"home":{"no-results":"Aucun résultat","no-data":"Aucune donnée configurée"},"search":{"search-label":"Recherche","search-placeholder":"Commencez à taper pour filtrer","clear-search-tooltip":"Effacer la recherche","enter-to-search-web":"Appuyez sur entrée pour rechercher sur le Web"},"login":{"title":"Dashy","username-label":"Nom d\'utilisateur","password-label":"Mot de passe","login-button":"Connexion","remember-me-label":"Se souvenir de moi","remember-me-never":"Jamais","remember-me-hour":"4 Heures","remember-me-day":"1 Jour","remember-me-week":"1 Semaine","error-missing-username":"Nom d\'utilisateur manquant","error-missing-password":"Mot de passe manquant","error-incorrect-username":"Utilisateur inexistant","error-incorrect-password":"Mot de passe incorrect","success-message":"Connexion ...","logout-message":"Déconnexion","already-logged-in-title":"Déjà connecté","already-logged-in-text":"Vous êtes connecté en tant que","proceed-to-dashboard":"Accéder au Tableau de bord","log-out-button":"Déconnexion","proceed-guest-button":"Continuer en tant qu\'invité"},"config":{"main-tab":"Menu principal","view-config-tab":"Afficher la configuration","edit-config-tab":"Modifier la configuration","custom-css-tab":"Styles personnalisés","heading":"Options de Configuration","download-config-button":"Télécharger la configuration","edit-config-button":"Modifier la configuration","edit-css-button":"Styles personnalisés","cloud-sync-button":"Activer la synchro. dans le cloud","edit-cloud-sync-button":"Modifier la synchro. dans le cloud","rebuild-app-button":"Reconstruire l\'application","change-language-button":"Changer la langue","reset-settings-button":"Réinitialiser les paramètres locaux","app-info-button":"Informations sur l\'application","backup-note":"Il est recommandé de faire une sauvegarde de votre configuration avant d\'apporter des modifications.","reset-config-msg-l1":"Cela supprimera tous les paramètres utilisateur du stockage local, mais n\'affectera pas votre fichier \'conf.yml\'.","reset-config-msg-l2":"Vous devez d\'abord sauvegarder toutes les modifications locales si vous souhaitez les utiliser à l\'avenir.","reset-config-msg-l3":"Êtes-vous sur de vouloir continuer ?","data-cleared-msg":"Données effacées avec succès","actions-label":"Actions","copy-config-label":"Copier la configuration","data-copied-msg":"La configuration a été copiée dans le presse-papiers","reset-config-label":"Réinitialiser la configuration","css-save-btn":"Enregistrer","css-note-label":"Note","css-note-l1":"Vous devrez actualiser la page pour que les modifications prennent effet.","css-note-l2":"Les modifications ne sont stockés que localement, il est donc recommandé de faire une copie de votre CSS.","css-note-l3":"Pour supprimer tous les styles personnalisés, supprimez le contenu et appuyez sur Enregistrer."},"alternate-views":{"alternate-view-heading":"Changer le mode d\'affichage","default":"Défaut","workspace":"Plein écran","minimal":"Minimale"},"settings":{"theme-label":"Thème","layout-label":"Disposition","layout-auto":"Auto","layout-horizontal":"Horizontal","layout-vertical":"Vertical","item-size-label":"Taille","item-size-small":"Petite","item-size-medium":"Moyenne","item-size-large":"Grande","config-launcher-label":"Config.","config-launcher-tooltip":"Modifier la configuration","sign-out-tooltip":"Déconnexion","sign-in-tooltip":"Connexion","sign-in-welcome":"Bonjour {username}!"},"updates":{"app-version-note":"Version de Dashy","up-to-date":"À jour","out-of-date":"Mise à jour disponible !","unsupported-version-l1":"Vous utilisez une version non prise en charge de Dashy","unsupported-version-l2":"Pour une meilleure expérience et des correctifs de sécurité récents, veuillez mettre à jour vers"},"language-switcher":{"title":"Changer la langue","dropdown-label":"Sélectionnez une langue","save-button":"Enregistrer","success-msg":"Langue mise à jour vers"},"theme-maker":{"title":"Configurateur de Thèmes","export-button":"Exporter des variables personnalisées","reset-button":"Réinitialiser les styles pour","show-all-button":"Afficher toutes les variables","save-button":"Enregistrer","cancel-button":"Annuler","saved-toast":"{theme} mis à jour avec succès","copied-toast":"Données du thème {theme} copiées dans le presse-papiers","reset-toast":"Couleurs personnalisées pour {theme} supprimées"},"config-editor":{"save-location-label":"Enregistrer localement","location-local-label":"Appliquer localement","location-disk-label":"Appliquer dans le fichier de configuration","save-button":"Enregistrer","valid-label":"La configuration est valide","status-success-msg":"Tâche terminée","status-fail-msg":"Échec de la tâche","success-msg-disk":"Le fichier de configuration est écrit avec succès sur le disque","success-msg-local":"Les modifications locales ont bien été enregistrées","success-note-l1":"L\'application devrait se reconstruire automatiquement.","success-note-l2":"Cela peut prendre une minute.","success-note-l3":"Vous devrez actualiser la page pour que les modifications prennent effet.","error-msg-save-mode":"Veuillez sélectionner un mode d\'enregistrement : Local ou Fichier","error-msg-cannot-save":"Une erreur s\'est produite lors de l\'enregistrement de la configuration","error-msg-bad-json":"Erreur dans le fichier JSON, il est peut-être mal formé","warning-msg-validation":"Attention","not-admin-note":"Vous ne pouvez pas écrire les modifications sur le disque, car vous n\'êtes pas connecté en tant qu\'administrateur"},"app-rebuild":{"title":"Reconstruire l\'application","rebuild-note-l1":"Une reconstruction est requise pour que les modifications écrites dans le fichier conf.yml prennent effet.","rebuild-note-l2":"Cela devrait se produire automatiquement, mais si ce n\'est pas le cas, vous pouvez le déclencher manuellement ici.","rebuild-note-l3":"Ceci n\'est pas nécessaire pour les modifications stockées localement.","rebuild-button":"Démarrer la reconstruction","rebuilding-status-1":"Reconstruction ...","rebuilding-status-2":"Cela peut prendre quelques minutes","error-permission":"Vous n\'êtes pas autorisé à executer cette action","success-msg":"Construction terminée avec succès","fail-msg":"Échec de la construction","reload-note":"Un rechargement de la page est maintenant requis pour que les modifications prennent effet","reload-button":"Rafraîchir la page"},"cloud-sync":{"title":"Sauvegarde Cloud & Restauration","intro-l1":"Ce service de sauvegarde et de restauration depuis le cloud est une fonctionnalité facultative qui vous permet de télécharger votre configuration sur Internet, puis de la restaurer sur n\'importe quel autre appareil ou instance de Dashy.","intro-l2":"Toutes les données sont entièrement chiffrées de bout en bout avec le protocole AES, en utilisant votre mot de passe comme clé.","intro-l3":"Pour plus d\'informations, veuillez consulter la","backup-title-setup":"Sauvegarder","backup-title-update":"Mettre à jour la sauvegarde","password-label-setup":"Choisissez un mot de passe","password-label-update":"Entrer votre mot de passe","backup-button-setup":"Sauvegarde","backup-button-update":"Mettre à jour la sauvegarde","backup-id-label":"Votre identifiant de sauvegarde","backup-id-note":"Il vous sera demandé par la suite pour restaurer à partir de votre sauvegarde. Alors gardez-le, avec votre mot de passe dans un endroit sûr.","restore-title":"Restauration","restore-id-label":"Identifiant de sauvegarde","restore-password-label":"Mot de passe","restore-button":"Restaurer","backup-missing-password":"Mot de passe manquant","backup-error-unknown":"Impossible de traiter la demande","backup-error-password":"Mot de passe incorrect. Veuillez saisir votre mot de passe actuel.","backup-success-msg":"Sauvegarde effectuée avec succès","restore-success-msg":"Configuration restaurée avec succès"},"menu":{"sametab":"Ouvrir dans l\'onglet actuel","newtab":"Ouvrir dans un nouvel onglet","modal":"Ouvrir en mode fenêtré","workspace":"Ouvrir en plein écran"}}')},e6a4:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-download fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fal","data-icon":"download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M452 432c0 11-9 20-20 20s-20-9-20-20 9-20 20-20 20 9 20 20zm-84-20c-11 0-20 9-20 20s9 20 20 20 20-9 20-20-9-20-20-20zm144-48v104c0 24.3-19.7 44-44 44H44c-24.3 0-44-19.7-44-44V364c0-24.3 19.7-44 44-44h99.4L87 263.6c-25.2-25.2-7.3-68.3 28.3-68.3H168V40c0-22.1 17.9-40 40-40h96c22.1 0 40 17.9 40 40v155.3h52.7c35.6 0 53.4 43.1 28.3 68.3L368.6 320H468c24.3 0 44 19.7 44 44zm-261.7 17.7c3.1 3.1 8.2 3.1 11.3 0L402.3 241c5-5 1.5-13.7-5.7-13.7H312V40c0-4.4-3.6-8-8-8h-96c-4.4 0-8 3.6-8 8v187.3h-84.7c-7.1 0-10.7 8.6-5.7 13.7l140.7 140.7zM480 364c0-6.6-5.4-12-12-12H336.6l-52.3 52.3c-15.6 15.6-41 15.6-56.6 0L175.4 352H44c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12V364z"}})]))}}},e736:function(e,t,a){},e7fa:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-edit fa-w-18",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"edit",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"}})]))}}},e861:function(e,t,a){},eb26:function(e){e.exports=JSON.parse('{"home":{"no-results":"找不到结果","no-data":"没有配置数据"},"search":{"search-label":"搜索","search-placeholder":"输入以筛选","clear-search-tooltip":"清空搜索","enter-to-search-web":"点击回车搜索"},"login":{"title":"Dashy","username-label":"用户名","password-label":"密码","login-button":"登陆","remember-me-label":"记住密码","remember-me-never":"永不","remember-me-hour":"4 小时","remember-me-day":"1 天","remember-me-week":"1 周","error-missing-username":"用户名空缺","error-missing-password":"密码空缺","error-incorrect-username":"用户名不存在","error-incorrect-password":"密码不存在","success-message":"登陆成功。。。","logout-message":"注销","already-logged-in-title":"已经成功登陆","already-logged-in-text":"你的登陆身份","proceed-to-dashboard":"前往仪表板","log-out-button":"注销","proceed-guest-button":"以游客身份前往"},"config":{"main-tab":"主菜单","view-config-tab":"视图设置","edit-config-tab":"编辑设置","custom-css-tab":"自定义样式","heading":"设置选项","download-config-button":"下载配置","edit-config-button":"编辑设置","edit-css-button":"编辑自定义 CSS","cloud-sync-button":"启用云端同步","edit-cloud-sync-button":"编辑云端同步","rebuild-app-button":"重建应用","change-language-button":"更改语言","reset-settings-button":"恢复本地设置","app-info-button":"应用详情","backup-note":"建议在进行更改之前备份您的配置。","reset-config-msg-l1":"这将从本地存储中删除所有用户设置,但不会影响‘conf.yml’文件。","reset-config-msg-l2":"如果想在以后使用它们,应该首先备份您所做的任何更改。","reset-config-msg-l3":"确定执行吗?","data-cleared-msg":"成功清空数据","actions-label":"行为","copy-config-label":"复制设置","data-copied-msg":"设置已保存在剪切板","reset-config-label":"重置设置","css-save-btn":"保存更改","css-note-label":"注意","css-note-l1":"您需要刷新页面才能使更改生效。","css-note-l2":"样式覆盖仅存储在本地,因此建议复制您的 CSS。","css-note-l3":"要删除所有自定义样式,请删除内容并点击保存更改"},"alternate-views":{"default":"默认","workspace":"工作空间","minimal":"最小化"},"settings":{"theme-label":"主题","layout-label":"布局","layout-auto":"自动","layout-horizontal":"水平","layout-vertical":"垂直","item-size-label":"尺寸","item-size-small":"小","item-size-medium":"中","item-size-large":"大","config-launcher-label":"设置","config-launcher-tooltip":"更新设置","sign-out-tooltip":"注销","sign-in-tooltip":"登陆","sign-in-welcome":"您好 {username}!"},"updates":{"app-version-note":"Dashy 版本","up-to-date":"已经是最新版了","out-of-date":"存在可用更新","unsupported-version-l1":"您使用的是不受支持的 Dashy 版本","unsupported-version-l2":"为获得最佳体验和最近的安全补丁,请更新至"},"language-switcher":{"title":"更改应用语言","dropdown-label":"选择一个语言","save-button":"保存","success-msg":"语言切换至"},"theme-maker":{"title":"主题编辑器","export-button":"导出自定义变量","reset-button":"重置样式","show-all-button":"显示所有变量","save-button":"保存","cancel-button":"取消","saved-toast":"{theme} 更新成功","copied-toast":"{theme} 的主题数据已复制到剪切板","reset-toast":"{theme} 的自定义颜色已经移除"},"config-editor":{"save-location-label":"保存位置","location-local-label":"本地保存","location-disk-label":"将保存写入文件","save-button":"保存变更","valid-label":"设置有效","status-success-msg":"任务完成","status-fail-msg":"任务失败","success-msg-disk":"配置文件写入硬盘成功","success-msg-local":"本地变更保存成功","success-note-l1":"应用需要自动重建","success-note-l2":"这将持续一段时间","success-note-l3":"你需要刷新页面以使变更生效","error-msg-save-mode":"请选择保存位置:本地或者文件","error-msg-cannot-save":"保存配置时出错","error-msg-bad-json":"JSON 错误,可能格式错误","warning-msg-validation":"验证警告","not-admin-note":"您不能将更改写入磁盘,因为您没有以管理员身份登录"},"app-rebuild":{"title":"重建应用","rebuild-note-l1":"写入 conf.yml 文件的更改需要重建应用才能生效。","rebuild-note-l2":"这应该是自动运行的,但如果没有生效,您可以在此处手动执行。","rebuild-note-l3":"这对于本地存储的修改不是必需的。","rebuild-button":"开始重建","rebuilding-status-1":"重建中...","rebuilding-status-2":"这将持续一段时间","error-permission":"您没有权限执行此操作","success-msg":"重建成功","fail-msg":"重建失败","reload-note":"你需要刷新页面以使变更生效","reload-button":"刷新页面"},"cloud-sync":{"title":"云备份 & 云恢复","intro-l1":"云备份和云恢复是一项试验性功能,您将配置上传到网络,然后在其他设备或 Dashy 实例上恢复。","intro-l2":"所有数据都使用 AES 端到端加密,使用您的密码作为密钥。","intro-l3":"有关更多信息,请参阅","backup-title-setup":"创建备份","backup-title-update":"更新备份","password-label-setup":"选择密码","password-label-update":"输入密码","backup-button-setup":"备份","backup-button-update":"更新备份","backup-id-label":"你的恢复 ID","backup-id-note":"这用于以后从备份中恢复。 所以把它和你的密码一起在安全的地方保存。","restore-title":"恢复备份","restore-id-label":"恢复 ID","restore-password-label":"密码","restore-button":"恢复","backup-missing-password":"缺少密码","backup-error-unknown":"无法处理请求","backup-error-password":"密码错误,请重新输入","backup-success-msg":"备份完成","restore-success-msg":"恢复完成"},"menu":{"sametab":"在当前页打开","newtab":"在新标签页打开","modal":"在弹出窗口打开","workspace":"在工作空间打开"}}')},eb58:function(e,t,a){"use strict";a("9e96")},ec1d:function(e,t,a){"use strict";a("f254")},eda6:function(e,t,a){"use strict";a("1864")},f254:function(e,t,a){},f341:function(e,t,a){"use strict";a("b8f7")},f60a:function(e,t,a){"use strict";a("303c")},f719:function(e,t,a){"use strict";a("27c1")},f9d7:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:o,data:s,children:n=[]}=t,{class:i,staticClass:r,style:l,staticStyle:c,attrs:u={},...d}=s;return a("svg",{class:["svg-inline--fa fa-columns fa-w-16",i,r],style:[l,c],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"columns",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"}})]))}}},fae5:function(e,t,a){},fdf5:function(e,t,a){},ffc8:function(e,t,a){}}); //# sourceMappingURL=dashy.95dee415.js.map