(function(e){function t(t){for(var n,s,r=t[0],l=t[1],c=t[2],u=0,d=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(e)}},T=x,O=(a("d16d"),Object(v["a"])(T,S,I,!1,null,"68c1bd5c",null)),E=O.exports,A=a("5cc6"),$=a.n(A),z={name:"Header",inject:["visibleComponents"],components:{PageTitle:C,Nav:E},props:{pageInfo:Object},data(){return{titleVisible:(this.visibleComponents||A["visibleComponents"]).pageTitle,navVisible:(this.visibleComponents||A["visibleComponents"]).navigation}}},L=z,j=(a("6ea3"),Object(v["a"])(L,p,h,!1,null,"73a6fa67",null)),N=j.exports,M=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.text&&""!==e.text?a("footer",{domProps:{innerHTML:e._s(e.text)}}):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(". ")])},D=[],V={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"}}},B=V,P=(a("ed9b"),Object(v["a"])(B,M,D,!1,null,"64591bd5",null)),H=P.exports,U=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()])},R=[],K={name:"LoadingScreen",props:{isLoading:{type:Boolean,default:!1}},data:()=>({c:""})},F=K,q=(a("2bb3"),Object(v["a"])(F,U,R,!1,null,"a7bc1de6",null)),W=q.exports,G=a("8b8e"),J=a.n(G);class Y{constructor(){this.conf=J.a}appConfig(){let e={};this.conf&&(e=this.conf.appConfig||{});let t=A["appConfig"];return localStorage[A["localStorageKeys"].APP_CONFIG]?t=JSON.parse(localStorage[A["localStorageKeys"].APP_CONFIG]):e!=={}&&(t=e),t.layout=localStorage[A["localStorageKeys"].LAYOUT_ORIENTATION]||e.layout||A["layout"],t.iconSize=localStorage[A["localStorageKeys"].ICON_SIZE]||e.iconSize||A["iconSize"],t.language=localStorage[A["localStorageKeys"].LANGUAGE]||e.language||A["language"],t}pageInfo(){const e=A["pageInfo"];let t;try{t=JSON.parse(localStorage[A["localStorageKeys"].PAGE_INFO])}catch(s){t={}}let a={};this.conf&&(a=this.conf.pageInfo||{});const n=a||e;return n.title=t.title||a.title||e.title,n.logo=t.logo||a.logo||e.logo,n.description=t.description||a.description||e.description,n.navLinks=t.navLinks||a.navLinks||e.navLinks,n.footerText=t.footerText||a.footerText||e.footerText,n}sections(){const e=localStorage[A["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 X=a("0e40"),Z=a("cb40"),Q=a("3b11"),ee=a("e316");const te=[{name:"English",code:"en",locale:X,flag:"๐Ÿ‡ฌ๐Ÿ‡ง"},{name:"German",code:"de",locale:Z,flag:"๐Ÿ‡ฉ๐Ÿ‡ช"},{name:"Dutch",code:"nl",locale:Q,flag:"๐Ÿ‡ณ๐Ÿ‡ฑ"},{name:"French",code:"fr",locale:ee,flag:"๐Ÿ‡ฒ๐Ÿ‡ซ"}],ae={};te.forEach(e=>{ae[e.code]=e.locale});const ne=ae,se=(()=>{const e=new Y;return e.config()})(),oe=e=>{const t=e.hideComponents||{},a=e=>"boolean"===typeof e;return{pageTitle:a(t.hideHeading)?!t.hideHeading:A["visibleComponents"].pageTitle,navigation:a(t.hideNav)?!t.hideNav:A["visibleComponents"].navigation,searchBar:a(t.hideSearch)?!t.hideSearch:A["visibleComponents"].searchBar,settings:a(t.hideSettings)?!t.hideSettings:A["visibleComponents"].settings,footer:a(t.hideFooter)?!t.hideFooter:A["visibleComponents"].footer,splashScreen:a(t.hideSplashScreen)?!t.hideSplashScreen:A["visibleComponents"].splashScreen}},ie=()=>{const e=localStorage[A["localStorageKeys"].THEME],t=se.appConfig.theme;return e||t||A["theme"]},re=()=>{const e=JSON.parse(localStorage[A["localStorageKeys"].CUSTOM_COLORS]||"{}"),t=se.appConfig.customColors||{};return Object.assign(t,e)},le=()=>{const e=[],t=se.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()},ce=()=>{const e=localStorage[A["localStorageKeys"].LANGUAGE]||se.appConfig.language||A["language"],t=te.find(t=>t.code===e);return t},ue=()=>{const e="V1.5.8";console.log(`%cDashy ${e} ๐Ÿš€`,"color:#00af87; background:#0b1021; font-size:36px; padding: 0.5rem 0.5rem 0; margin: 1rem auto; font-family: Rockwell; border: 2px solid #00af87; border-radius: 4px;font-weight: bold; text-shadow: 1px 1px 1px #00af87bf;")},de=()=>{console.log("%cโš ๏ธ Error โš ๏ธ","background:#21bbca; color:#0b1021; font-size:20px; padding:0.25rem 0.5rem; margin: 1rem auto 0.25rem; font-family: 'Trebuchet MS', Helvetica; border: 2px solid yellow; border-radius: 4px; font-weight: bold;")},_e=()=>{console.log("%c๐Ÿ›If you have found a bug, raise an issue on GitHub, at:\nhttps://git.io/JnqPR","color:#dddd10; font-size: 14px; font-family: 'Trebuchet MS', Helvetica;")},me=new Y,ge=me.config(),pe=oe(ge.appConfig)||A["visibleComponents"];var he={name:"app",components:{Header:N,Footer:H,LoadingScreen:W},provide:{config:ge,visibleComponents:pe},data(){return{isLoading:!0,showFooter:pe.footer,appConfig:me.appConfig(),pageInfo:me.pageInfo(),visibleComponents:pe}},methods:{getFooterText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},injectCustomStyles(e){const t=document.createElement("style");t.textContent=e,document.head.append(t)},shouldShowSplash(){return(this.visibleComponents||A["visibleComponents"]).splashScreen||!localStorage[A["localStorageKeys"].HIDE_WELCOME_BANNER]},hideSplash(){this.shouldShowSplash()?setTimeout(()=>{this.isLoading=!1},A["splashScreenTime"]||1500):this.isLoading=!1},applyLanguage(){let e=A["language"];const t=this.$i18n.availableLocales,a=localStorage[A["localStorageKeys"].LANGUAGE]||this.appConfig.language;if(a&&t.includes(a))e=a;else{const a=window.navigator.language||"",n=a.split("-")[0];t.includes(a)?e=a:t.includes(n)&&(e=n)}this.$i18n.locale=e,document.getElementsByTagName("html")[0].setAttribute("lang",e)}},mounted(){if(this.applyLanguage(),this.hideSplash(),this.appConfig.customCss){const e=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(e)}ue()}},fe=he,be=(a("5c0b"),Object(v["a"])(fe,m,g,!1,null,null,null)),ke=be.exports,we=a("8c4f"),ve=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.getSections(e.sections),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.getSections(e.sections),(function(t,n){return a("ItemGroup",{key:n,class:0===e.filterTiles(t.items).length&&e.searchValue?"no-results":"",attrs:{title:t.name,icon:t.icon||void 0,displayData:e.getDisplayData(t),groupId:"section-"+n,items:e.filterTiles(t.items),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)},ye=[],Ce=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}}),e.isUserLoggedIn()?a("AppButtons"):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)},Se=[],Ie=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",[a("label",{attrs:{for:"filter-tiles"}},[e._v(e._s(e.$t("search.search-label")))]),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.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()])},xe=[];class Te{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=Te.goToPrevious(this.index):39===e?this.index+=1:40===e&&(this.index=Te.goToNext(this.index)),this.index=Te.getSafeElementIndex(this.index),Te.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(e){const t=Te.getNumResults();return e<0?t-1:e>=t?0:e}static selectItemByIndex(e){return e>=0&&e<=Te.getNumResults()?document.getElementsByClassName("item")[e]:[document.getElementsByClassName("item")]}static findPreviousRow(e){const t=(e,t)=>Te.selectItemByIndex(e).offsetTop===t,a=(e,n)=>e>=Te.getNumResults()?a(0,n):t(e,n)?a(e-1,n):e,n=Te.selectItemByIndex(e).offsetTop;return a(e,n)}static goToPrevious(e){const t=(e,t)=>Te.selectItemByIndex(e).offsetTopTe.selectItemByIndex(e).offsetTop===t,a=(e,n)=>e>=Te.getNumResults()?a(0,n):t(e,n)?a(e+1,n):e,n=Te.selectItemByIndex(e).offsetTop;return a(e,n)}static goToNext(e){const t=(e,t)=>Te.selectItemByIndex(e).offsetTop>Te.selectItemByIndex(t).offsetTop,a=Te.findNextRow(e),n=a-e,s=a-Te.findPreviousRow(e)-1,o=t(e,a)?0:s-n;return a+o}}var Oe={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new Te,getCustomKeyShortcuts:le}},mounted(){window.addEventListener("keydown",e=>{const t=document.activeElement.id,{key:a,keyCode:n}=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):n>=37&&n<=40?this.akn.arrowNavigation(n):27===n&&this.clearFilterInput())})},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")})}}},Ee=Oe,Ae=(a("b021"),Object(v["a"])(Ee,Ie,xe,!1,null,"2350dd8e",null)),$e=Ae.exports,ze=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"config-options"},[a("span",[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()}}})],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:"35%"}},[a("LanguageSwitcher")],1)],1)},Le=[],je=a("35c3"),Ne=a.n(je),Me=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)},De=[],Ve=a("d97e");const Be=e=>e.split("\n").map(e=>e.trimRight()).join("\n"),Pe=e=>{throw new Error("Error in Json to YAML conversion: "+e)},He=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 n="";return 0===e.length?(n+="[]",n):(t=t.replace(/$/," "),e.forEach(e=>{const s=a[Object(Ve["typeOf"])(e)];s||Pe(Object(Ve["typeOf"])(e)),n+=`\n${t}- ${s(e,!0)}`}),t=t.replace(/ {2}/,""),n)},object(e,n,s){let o="";return 0===Object.keys(e).length?(o+="{}",o):(s||(t=t.replace(/$/," ")),Object.keys(e).forEach((s,i)=>{const r=e[s],l=a[Object(Ve["typeOf"])(r)];"undefined"!==typeof r&&(l||Pe(Object(Ve["typeOf"])(r)),n&&0===i||(o+="\n"+t),o+=`${s}: ${l(r)}`)}),t=t.replace(/ {2}/,""),o)},function(){return"[object Function]"}};return Be(a[Object(Ve["typeOf"])(e)](e,!0,!0)+"\n")};var Ue=He,Re=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,n){return a("li",{key:n,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(),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)},Ke=[],Fe=a("bc3a"),qe=a.n(Fe),We=a("bcb2"),Ge=a.n(We),Je=a("831b"),Ye=a("94f8"),Xe=a.n(Ye);const Ze=e=>{const t=e=>e.toString().toUpperCase(),a=Xe()(t(e.user)+t(e.hash));return t(a)},Qe=e=>{const t=e.map(e=>Ze(e));let a=!1;return document.cookie.split(";").forEach(e=>{if(e&&e.split("=").length>1){const n=e.split("=")[0].trim(),s=e.split("=")[1].trim();n===A["cookieKeys"].AUTH_TOKEN&&t.includes(s)&&(a=!0)}}),a},et=(e,t,a,n)=>{let s;return e?t?a.forEach(a=>{a.user.toLowerCase()===e.toLowerCase()&&(s=a.hash.toLowerCase()===Xe()(t).toString().toLowerCase()?{correct:!0,msg:n.successMsg}:{correct:!1,msg:n.incorrectPassword})}):s={correct:!1,msg:n.missingPassword}:s={correct:!1,msg:n.missingUsername},s||{correct:!1,msg:n.incorrectUsername}},tt=(e,t,a)=>{const n=new Date,s=new Date(n.setTime(n.getTime()+a)).toGMTString(),o={user:e,hash:Xe()(t).toString().toLowerCase()};document.cookie=`authenticationToken=${Ze(o)};`+(a>0?"expires="+s:""),localStorage.setItem(A["localStorageKeys"].USERNAME,e)},at=()=>{document.cookie="authenticationToken=null",localStorage.removeItem(A["localStorageKeys"].USERNAME)},nt=e=>{if(!e||0===e.length)return!0;if(!Qe(e))return!1;const t=localStorage[A["localStorageKeys"].USERNAME];let a=!1;return e.forEach(e=>{e.user===t&&"admin"===e.type&&(a=!0)}),a};var st={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Ge.a},data(){return{jsonData:this.config,errorMessages:[],saveMode:"file",options:{schema:Je,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors},jsonParser:Ue,responseText:"",saveSuccess:void 0,allowWriteToDisk:this.shouldAllowWriteToDisk()}},computed:{isValid(){return this.errorMessages.length<1}},mounted(){this.allowWriteToDisk||(this.saveMode="local")},methods:{shouldAllowWriteToDisk(){const{appConfig:e}=this.config;return!1!==e.allowConfigEdit&&nt(e.auth)},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.5.8",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,a=t+"/config-manager/save",n={"Content-Type":"text/plain"},s={config:e,timestamp:new Date},o=qe.a.post(a,s,n);o.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)}).catch(e=>{this.saveSuccess=!1,this.responseText=e,this.showToast(e,!1)})},saveConfigLocally(){const e=this.jsonData;e.sections&&localStorage.setItem(A["localStorageKeys"].CONF_SECTIONS,JSON.stringify(e.sections)),e.pageInfo&&localStorage.setItem(A["localStorageKeys"].PAGE_INFO,JSON.stringify(e.pageInfo)),e.appConfig&&(e.appConfig.auth=this.config.appConfig.auth||[],localStorage.setItem(A["localStorageKeys"].APP_CONFIG,JSON.stringify(e.appConfig))),e.appConfig.theme&&localStorage.setItem(A["localStorageKeys"].THEME,e.appConfig.theme),this.showToast(this.$t("config-editor.success-msg-local"),!0)},carefullyClearLocalStorage(){localStorage.removeItem(A["localStorageKeys"].PAGE_INFO),localStorage.removeItem(A["localStorageKeys"].APP_CONFIG),localStorage.removeItem(A["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")})}}},ot=st,it=(a("80a7"),Object(v["a"])(ot,Re,Ke,!1,null,null,null)),rt=it.exports,lt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"css-editor-outer"},[a("prism-editor",{staticClass:"my-editor",attrs:{highlight:e.highlighter,"line-numbers":""},model:{value:e.customCss,callback:function(t){e.customCss=t},expression:"customCss"}}),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)},ct=[],ut=a("e57a"),dt=a("8c7a"),_t=(a("6605"),a("dff1"),a("cabf"),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)])}),mt=[],gt=a("7f75"),pt=a.n(gt),ht=(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)}),ft=[],bt={name:"Button",props:{text:String,click:Function,disabled:Boolean,disallow:Boolean}},kt=bt,wt=(a("24e6"),Object(v["a"])(kt,ht,ft,!1,null,"ec408f00",null)),vt=wt.exports,yt=a("90ff"),Ct=a.n(yt),St=a("90de"),It=a.n(St),xt={name:"ThemeMaker",components:{VSwatches:pt.a,Button:vt,SaveIcon:Ct.a,CancelIcon:It.a},data(){return{customColors:this.makeInitialData(A["mainCssVars"]),showingAllVars:!1,swatches:A["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[A["localStorageKeys"].CUSTOM_COLORS]||"{}");e[this.themeToEdit]=this.customColors,localStorage.setItem(A["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(A["mainCssVars"]),this.$emit("closeThemeConfigurator")},resetAndSave(){const e=JSON.parse(localStorage[A["localStorageKeys"].CUSTOM_COLORS]||"{}");delete e[this.themeToEdit],localStorage.setItem(A["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),n=e=>a(e)?e:"--"+e,s=e=>a(e)?e.replace("--",""):e;return e.forEach(e=>{t[s(e)]=this.getCssVariableValue(n(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)}}},Tt=xt,Ot=(a("369e"),Object(v["a"])(Tt,_t,mt,!1,null,null,null)),Et=Ot.exports,At={name:"JsonEditor",props:{config:Object},components:{CustomThemeMaker:Et,PrismEditor:ut["a"]},data(){return{customCss:this.config.appConfig.customCss||"\n\n\n\n\n",currentTheme:ie()}},methods:{validate(e){return""===e||e.match(/((?:^\s*)([\w#.@*,:\-.:>,*\s]+)\s*{(?:[\s]*)((?:[A-Za-z\- \s]+[:]\s*['"0-9\w .,/()\-!%]+;?)*)*\s*}(?:\s*))/gim)},save(){let e="";if(this.validate(this.customCss)){const t={...this.config.appConfig};t.customCss=this.customCss,localStorage.setItem(A["localStorageKeys"].APP_CONFIG,JSON.stringify(t)),e="Changes saved succesfully",this.inject(this.customCss),""===this.customCss&&setTimeout(()=>{location.reload()},1500)}else e="Error - Invalid CSS";this.$toasted.show(e)},inject(e){const t=e.replace(/<\/?[^>]+(>|$)/g,""),a=document.createElement("style");a.textContent=t,document.head.append(a)},highlighter(e){return Object(dt["highlight"])(e,dt["languages"].css)}}},$t=At,zt=(a("9e50"),Object(v["a"])($t,lt,ct,!1,null,null,null)),Lt=zt.exports,jt=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)])},Nt=[],Mt=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)}}})])},Dt=[],Vt={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)}}},Bt=Vt,Pt=(a("2d25"),Object(v["a"])(Bt,Mt,Dt,!1,null,"5df13ed2",null)),Ht=Pt.exports,Ut=a("3a1e"),Rt=a.n(Ut),Kt=a("e6a4"),Ft=a.n(Kt),qt=a("c198"),Wt=a.n(qt),Gt=a("f8d5"),Jt=a.n(Gt);const Yt=A["backupEndpoint"],Xt=(e,t)=>{const a=JSON.stringify(e),n=Wt.a.encrypt(a,t);return n.toString()},Zt=(e,t)=>Wt.a.decrypt(e,t).toString(Jt.a),Qt=e=>Xe()(e).toString().slice(0,14),ea=(e,t)=>qe.a.post(Yt,{userData:Xt(e,t),subHash:Qt(t)}),ta=(e,t,a)=>qe.a.put(Yt,{backupId:a,userData:Xt(e,t),subHash:Qt(t)}),aa=e=>Object.entries(e).map(e=>e.map(encodeURIComponent).join("=")).join("&"),na=(e,t)=>{const a=aa({backupId:e,subHash:Qt(t)}),n=`${Yt}/?${a}`;return new Promise((e,a)=>{qe.a.get(n).then(n=>{if(!n.data||n.data.errorMsg)a(n.data.errorMsg||"Error");else{const o=Zt(n.data.userData.userData,t);try{e(JSON.parse(o))}catch(s){a(s)}}})})};var sa={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[A["localStorageKeys"].BACKUP_ID]||""}},components:{Button:vt,Input:Ht,IconBackup:Rt.a,IconRestore:Ft.a},methods:{restoreBackup(){na(this.restoreCode,this.restorePassword).then(e=>{this.restoreFromBackup(e,this.restoreCode)}).catch(e=>{this.showErrorMsg(e)})},checkPass(){const e=localStorage[A["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(){ea(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")}).catch(()=>{this.showErrorMsg(this.$t("cloud-sync.backup-error-unknown"))})},makeUpdate(){ta(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")}).catch(()=>{this.showErrorMsg(this.$t("cloud-sync.backup-error-unknown"))})},restoreFromBackup(e,t){localStorage.setItem(A["localStorageKeys"].CONF_SECTIONS,JSON.stringify(e.sections)),localStorage.setItem(A["localStorageKeys"].APP_CONFIG,JSON.stringify(e.appConfig)),localStorage.setItem(A["localStorageKeys"].PAGE_INFO,JSON.stringify(e.pageInfo)),e.appConfig.theme&&localStorage.setItem(A["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){this.$toasted.show(e,{className:"toast-error"})},showSuccessMsg(e){this.$toasted.show(e,{className:"toast-success"})},makeHash(e){return Xe()(e).toString()},setBackupIdLocally(e,t){this.backupId=e;const a=this.makeHash(t);localStorage.setItem(A["localStorageKeys"].BACKUP_ID,e),localStorage.setItem(A["localStorageKeys"].BACKUP_HASH,a)}}},oa=sa,ia=(a("c849"),Object(v["a"])(oa,jt,Nt,!1,null,"cdf206ac",null)),ra=ia.exports,la=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)])},ca=[],ua=a("0911"),da=a.n(ua),_a=a("3ff5"),ma=a.n(_a),ga=a("6266"),pa=a.n(ga),ha={name:"RebuildApp",inject:["config"],components:{Button:vt,RebuildIcon:da.a,ReloadIcon:ma.a,LoadingAnimation:pa.a},data:()=>({modalName:A["modalNames"].REBUILD_APP,loading:!1,success:void 0,error:"",output:"",message:"",allowRebuild:!0}),methods:{startBuild(){const e=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.5.8",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,t=e+"/config-manager/rebuild";this.loading=!0,qe.a.get(t).then(e=>{this.finished(e.data||!1)}).catch(e=>{this.finished({success:!1,error:e})})},finished(e){if(this.loading=!1,e){const{success:t,output:a,error:n,message:s}=e;this.success=t,this.output=a,this.message=s,this.error=n}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)}},fa=ha,ba=(a("1171"),Object(v["a"])(fa,la,ca,!1,null,"306fcc3a",null)),ka=ba.exports,wa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return 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()])},va=[],ya={name:"AppInfoModal",inject:["config"],data(){return{appVersion:"1.5.8",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";qe.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)}).catch(()=>{this.error=!0})},checkIfUpToDate(e,t){const a=e=>parseInt(e.replaceAll(".",""),10),n=a(t)-a(e);return n>5&&(this.veryOutOfDate=!0),n<=0}}},Ca=ya,Sa=(a("f255"),Object(v["a"])(Ca,wa,va,!1,null,"49d7ffdf",null)),Ia=Sa.exports,xa=a("cbd9"),Ta=a.n(xa),Oa=a("0278"),Ea=a.n(Oa),Aa=a("e7fa"),$a=a.n(Aa),za=a("7da9"),La=a.n(za),ja=a("6780"),Na=a.n(ja),Ma=a("0845"),Da=a.n(Ma),Va=a("2413"),Ba=a.n(Va),Pa={name:"ConfigContainer",data(){return{jsonParser:Ue,backupId:localStorage[A["localStorageKeys"].BACKUP_ID]||"",appVersion:"1.5.8",latestVersion:""}},props:{config:Object},computed:{sections:function(){return this.config.sections},yaml(){return this.jsonParser(this.config)}},components:{JsonEditor:rt,CustomCssEditor:Lt,CloudBackupRestore:ra,RebuildApp:ka,AppVersion:Ia,DownloadIcon:Ta.a,DeleteIcon:Ea.a,EditIcon:$a.a,CloudIcon:Na.a,CustomCssIcon:La.a,LanguageIcon:Da.a,RebuildIcon:da.a,IconAbout:Ba.a},methods:{navigateToTab(e){const t=this.$refs.tabView.navItems[e];this.$refs.tabView.activeTabItem(t)},openRebuildAppModal(){this.$modal.show(A["modalNames"].REBUILD_APP)},openAboutModal(){this.$modal.show(A["modalNames"].ABOUT_APP)},openLanguageSwitchModal(){this.$modal.show(A["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=ce();return e?`${e.flag} ${e.name}`:""}}},Ha=Pa,Ua=(a("3a5c"),a("1d47"),Object(v["a"])(Ha,Me,De,!1,null,"1360f75f",null)),Ra=Ua.exports,Ka=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.availibleLanguages,label:"name",input:e.setLangLocally()},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",[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)},Fa=[],qa={name:"LanguageSwitcher",inject:["config"],components:{Button:vt,SaveConfigIcon:Ct.a},data(){return{availibleLanguages:te,language:"",modalName:A["modalNames"].LANG_SWITCHER}},methods:{saveLanguage(){const e=this.language;if(this.checkLocale(e)){localStorage.setItem(A["localStorageKeys"].LANGUAGE,e.code),this.setLangLocally();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"})},checkLocale(e){if(!e||!e.code)return!1;const t=this.$i18n.availableLocales;return t.includes(e.code)},setLangLocally(){this.language&&this.language.code&&(this.$i18n.locale=this.language.code)}}},Wa=qa,Ga=(a("570c"),Object(v["a"])(Wa,Ka,Fa,!1,null,"631f0843",null)),Ja=Ga.exports,Ya={name:"ConfigLauncher",data(){return{modalNames:A["modalNames"]}},components:{IconSpanner:Ne.a,ConfigContainer:Ra,LanguageSwitcher:Ja},props:{sections:Array,pageInfo:Object,appConfig:Object},methods:{showEditor:function(){this.$modal.show(A["modalNames"].CONF_EDITOR),this.$emit("modalChanged",!0)},combineConfig(){const e={};return e[A["topLevelConfKeys"].APP_CONFIG]=this.appConfig,e[A["topLevelConfKeys"].PAGE_INFO]=this.pageInfo,e[A["topLevelConfKeys"].SECTIONS]=this.sections,e[A["topLevelConfKeys"].APP_CONFIG].theme=localStorage[A["localStorageKeys"].THEME]||e[A["topLevelConfKeys"].APP_CONFIG].theme,e},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},Xa=Ya,Za=(a("25e6"),Object(v["a"])(Xa,ze,Le,!1,null,"785e1d43",null)),Qa=Za.exports,en=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",{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)},tn=[];const an=function(e){de(),console.warn(e),_e()};var nn=an;const sn=()=>ie(),on=e=>{A["mainCssVars"].forEach(e=>{document.documentElement.style.removeProperty("--"+e)});const t=re()[e];t&&Object.keys(t).forEach(e=>{document.documentElement.style.setProperty("--"+e,t[e])})},rn=e=>{const t=document.getElementsByTagName("html")[0];t.hasAttribute("data-theme")&&t.removeAttribute("data-theme"),t.setAttribute("data-theme",e)},ln=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])||(nn(`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})}},n={};return{add(t,a){return e(a).then(e=>{n[t]=e})},set theme(e){a(n,e)},get theme(){return Object.keys(n).find(e=>!n[e].disabled)}}};var cn=a("4400"),un=a.n(cn),dn={name:"ThemeSelector",props:{externalThemes:Object,confTheme:String,userThemes:Array},components:{CustomThemeMaker:Et,IconPalette:un.a},watch:{selectedTheme(e){this.updateTheme(e)}},data(){return{selectedTheme:this.getInitialTheme(),builtInThemes:[...$.a.builtInThemes,...this.userThemes],themeHelper:new ln,themeConfiguratorOpen:!1,ApplyLocalTheme:rn,ApplyCustomVariables:on}},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!==$.a.theme&&Promise.all(e).then(()=>{this.updateTheme(this.selectedTheme)})},methods:{getInitialTheme(){return localStorage[A["localStorageKeys"].THEME]||this.confTheme||$.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(A["localStorageKeys"].THEME,e)},resetToDefault(){document.getElementsByTagName("html")[0].removeAttribute("data-theme")}}},_n=dn,mn=(a("4ade"),Object(v["a"])(_n,en,tn,!1,null,null,null)),gn=mn.exports,pn=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)])},hn=[],fn=a("c715"),bn=a.n(fn),kn=a("570d"),wn=a.n(kn),vn=a("f9d7"),yn=a.n(vn),Cn={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:bn.a,IconHorizontal:wn.a,IconVertical:yn.a},methods:{updateDisplayLayout(e){this.$emit("layoutUpdated",e)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},Sn=Cn,In=(a("5dbe"),Object(v["a"])(Sn,pn,hn,!1,null,"b3a6111c",null)),xn=In.exports,Tn=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)])},On=[],En=a("d8e8"),An=a.n(En),$n=a("7075"),zn=a.n($n),Ln=a("922c"),jn=a.n(Ln),Nn={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:An.a,IconMedium:zn.a,IconLarge:jn.a},methods:{updateIconSize(e){this.$emit("iconSizeUpdated",e)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},Mn=Nn,Dn=(a("89e2"),Object(v["a"])(Mn,Tn,On,!1,null,"1ff45660",null)),Vn=Dn.exports,Bn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"display-options"},[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()}}})],1)])},Pn=[],Hn=a("0123"),Un=a.n(Hn),Rn={name:"AppButtons",components:{IconLogout:Un.a},methods:{logout(){at(),this.$toasted.show(this.$t("login.logout-message")),setTimeout(()=>{location.reload(!0)},500)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},Kn=Rn,Fn=(a("0175"),Object(v["a"])(Kn,Bn,Pn,!1,null,"57c401c7",null)),qn=Fn.exports,Wn=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 ๐Ÿฅณ ")])])])},Gn=[],Jn={name:"KeyboardShortcutInfo",data(){return{shouldHide:!0,timeDelay:3e3}},methods:{shouldHideWelcomeMessage(){return!!localStorage[A["localStorageKeys"].HIDE_WELCOME_BANNER]},hideWelcomeHelper(){this.shouldHide=!0,localStorage.setItem(A["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))}},Yn=Jn,Xn=(a("9517"),Object(v["a"])(Yn,Wn,Gn,!1,null,"c5f17d9a",null)),Zn=Xn.exports,Qn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("modal",{attrs:{name:e.modalName,resizable:!0,width:"40%",height:"60%",classes:"dashy-modal"}},[a("div",{staticClass:"about-modal"},[a("router-link",{attrs:{to:"/about"}},[a("h2",[e._v("Dashy")])]),a("AppVersion"),a("h3",[e._v("Service Worker Status")]),a("code",{domProps:{innerHTML:e._s(e.serviceWorkerInfo)}},[e._v(e._s(e.serviceWorkerInfo))]),a("br"),a("h3",[e._v("Config Validation Status")]),a("code",[e._v(e._s(e.getIsConfigValidStatus()))]),a("br"),a("h3",[e._v("Help & Support")]),a("ul",[a("li",[a("a",{attrs:{href:"https://git.io/JnqPR"}},[e._v("Report a Bug")])]),a("li",[a("a",{attrs:{href:"https://git.io/JnDxL"}},[e._v("Request a Feature")])]),a("li",[a("a",{attrs:{href:"https://git.io/JnDxs"}},[e._v("Ask a Question")])]),a("li",[a("a",{attrs:{href:"https://git.io/JnDxn"}},[e._v("Leave Feedback")])]),a("li",[a("a",{attrs:{href:"https://github.com/Lissy93/dashy/discussions"}},[e._v("Join the Discussion")])])]),a("p",{staticClass:"small-note"},[e._v("Please include the following info in your bug report:")]),a("a",{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(" Documentation and Source Code available on "),a("a",{attrs:{href:"https://github.com/lissy93/dashy"}},[e._v("GitHub")])]),a("h3",[e._v("License")]),a("code",[e._v("Licensed under MIT X11. Copyright ยฉ 2021")])],1)])},es=[],ts={name:"AppInfoModal",components:{AppVersion:Ia},data(){return{modalName:A["modalNames"].ABOUT_APP,appVersion:"1.5.8",systemInfo:this.getSystemInfo(),serviceWorkerInfo:"Checking...",showInfo:!1}},mounted(){setTimeout(()=>{this.serviceWorkerInfo=this.getSwStatus()},100)},methods:{getIsConfigValidStatus(){const e=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.5.8",BASE_URL:"/"}).VUE_APP_CONFIG_VALID;return void 0===e?"Config validation status is missing":"Config is "+(e?"Valid":"Invalid")},getSwStatus(){const e=sessionStorage[A["sessionStorageKeys"].SW_STATUS],t=e?JSON.parse(e):{};let a="";return t.registered&&(a+="Service worker registered
"),t.ready&&(a+="Dashy is being served from service worker
"),t.cached&&(a+="Content has been cached for offline use
"),t.updateFound&&(a+="New content is downloading
"),t.updated&&(a+="New content is available; please refresh
"),t.offline&&(a+="No internet connection found. App is running in offline mode
"),t.error&&(a+="Error during service worker registration
"),t.devMode&&(a+="App running in dev mode, no need for service worker
"),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 n=!!navigator.userAgent.match(/iphone|android|blackberry/gi)||!1;return{os:t,browser:a,userAgent:e,isMobile:n}}}},as=ts,ns=(a("d636"),Object(v["a"])(as,Qn,es,!1,null,"77ccbcae",null)),ss=ns.exports,os=a("5703"),is=a.n(os),rs=a("5f32"),ls=a.n(rs),cs={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,externalThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:$e,ConfigLauncher:Qa,ThemeSelector:gn,LayoutSelector:xn,ItemSizeSelector:Vn,AppButtons:qn,KeyboardShortcutInfo:Zn,AppInfoModal:ss,IconOpen:is.a,IconClose:ls.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||""},isUserLoggedIn(){return!!localStorage[A["localStorageKeys"].USERNAME]},getUserThemes(){const e=this.appConfig.cssThemes||[];return"string"===typeof e?[e]:e},toggleSettingsVisibility(){this.settingsVisible=!this.settingsVisible,localStorage.setItem(A["localStorageKeys"].HIDE_SETTINGS,this.settingsVisible)},getSettingsVisibility(){return JSON.parse(localStorage[A["localStorageKeys"].HIDE_SETTINGS]||(this.visibleComponents||A["visibleComponents"]).settings)}},data(){return{settingsVisible:this.getSettingsVisibility(),searchVisible:(this.visibleComponents||A["visibleComponents"]).searchBar}}},us=cs,ds=(a("665e"),Object(v["a"])(us,Ce,Se,!1,null,"25781e16",null)),_s=ds.exports,ms=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.items,(function(t,n){return a("Item",{key:n+"_"+e.makeId(t.title),attrs:{id:n+"_"+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.newItemSize,hotkey:t.hotkey,enableStatusCheck:e.shouldEnableStatusCheck(t.statusCheck),statusCheckInterval:e.getStatusCheckInterval()},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)},gs=[],ps=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"),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:"medium"===e.itemSize?"bottom right":"top 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)},hs=[],fs=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("object",{class:"simple-icons "+e.size,attrs:{type:"image/svg+xml",data: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)},bs=[],ks=a("9635"),ws=a.n(ks),vs=a("e0a2"),ys=a.n(vs),Cs=a("492d"),Ss={name:"Icon",inject:["config"],props:{icon:String,url:String,size:String},components:{BrokenImage:ws.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=["png","jpg"],n=t.exec(e);return n.length>=1&&a.includes(n[1])},isEmoji(e){return ys.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(Cs[e])return Cs[e]}else if("unicode"===t)return String.fromCodePoint(parseInt(e.substr(2),16));return e},getFavicon(e){if(this.shouldUseDefaultFavicon(e)){const t=e.split("/");if(t.length>=2)return`${t[0]}/${t[1]}/${t[2]}/${A["iconCdns"].faviconName}`}else if(e.includes("http")){const t=this.getHostName(e),a=this.config.appConfig.faviconApi||A["faviconApi"],n=A["faviconApiEndpoints"][a];return n.replace("$URL",t)}return""},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`${A["iconCdns"].localPath}/${e}`},getGenerativeIcon(e){return`${A["iconCdns"].generative}/${this.getHostName(e)}.svg`},getSimpleIcon(e){const t=e.replace("si-","");return`${A["iconCdns"].si}/${t}.svg`},getIconPath(e,t){switch(this.determineImageType(e)){case"url":return e;case"img":return this.getLocalImagePath(e);case"favicon":return this.getFavicon(t);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?e.endsWith(".svg")?"svg":this.isUrl(e)?"url":this.isImage(e)?"img":e.includes("fa-")?"font-awesome":e.includes("mdi-")?"mdi":e.includes("si-")?"si":"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,nn(`The path to '${this.icon}' could not be resolved`)}}},Is=Ss,xs=(a("de40"),Object(v["a"])(Is,fs,bs,!1,null,null,null)),Ts=xs.exports,Os=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()])},Es=[],As=a("237e"),$s=a.n(As),zs=a("2352"),Ls=a.n(zs),js=a("1946"),Ns=a.n(js),Ms=a("3b49"),Ds=a.n(Ms),Vs={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:$s.a,SameTabOpenIcon:Ls.a,IframeOpenIcon:Ns.a,WorkspaceOpenIcon:Ds.a}},Bs=Vs,Ps=(a("b5c9"),Object(v["a"])(Bs,Os,Es,!1,null,"b0684bc4",null)),Hs=Ps.exports,Us=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()]},expression:"{\n content: statusText || otherStatusText, classes: ['status-tooltip', `tip-${color()}`] }"}],staticClass:"indicator",on:{click:function(t){return e.showToast()}}},[a("div",{class:"dot dot-"+e.color()},[e._m(0)])])},Rs=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",[a("span")])}],Ks={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)}},Fs=Ks,qs=(a("e697"),a("45d4"),Object(v["a"])(Fs,Us,Rs,!1,null,"46972ad8",null)),Ws=qs.exports,Gs=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()])},Js=[],Ys={name:"ContextMenu",inject:["config"],components:{SameTabOpenIcon:Ls.a,NewTabOpenIcon:$s.a,IframeOpenIcon:Ns.a,WorkspaceOpenIcon:Ds.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}}},Xs=Ys,Zs=(a("6850"),Object(v["a"])(Xs,Gs,Js,!1,null,null,null)),Qs=Zs.exports,eo={name:"Item",props:{id:String,title:String,subtitle:String,description:String,icon:String,color:String,backgroundColor:String,url: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},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:Ts,ItemOpenMethodIcon:Hs,StatusIndicator:Ws,ContextMenu:Qs},methods:{itemOpened(e){e.altKey||"modal"===this.target?(e.preventDefault(),this.$emit("triggerModal",this.url)):"workspace"===this.target?yi.push({name:"workspace",query:{url:this.url}}):this.$emit("itemClicked")},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(){const e=this.hotkey?`\nPress '${this.hotkey}' to launch`:"";return{disabled:!this.description,content:this.description+e,trigger:"hover focus",hideOnTargetClick:!0,html:!1,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"'}},checkWebsiteStatus(){this.statusResponse=void 0;const e=Object({NODE_ENV:"production",VUE_APP_VERSION:"1.5.8",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,t=this.statusCheckUrl||this.url,a=this.statusCheckHeaders||{},n=`${e}/ping?url=${t}`;qe.a.get(n,{headers:a}).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":yi.push({name:"workspace",query:{url:t}});break;default:window.open(t,"_blank")}}},mounted(){this.enableStatusCheck&&this.checkWebsiteStatus(),this.statusCheckInterval>0&&setInterval(this.checkWebsiteStatus,1e3*this.statusCheckInterval)}},to=eo,ao=(a("826e"),a("f719"),Object(v["a"])(to,ps,hs,!1,null,null,null)),no=ao.exports,so=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)])])},oo=[],io={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:Ts},methods:{checkSpanNum(e,t){const a=4;let n=/^\d*$/.test(e)?parseInt(e,10):1;return n=n>a?a:n,`${t}-${n}`},sanitizeCustomStyles(e){return e?e.replace(/[^a-zA-Z0-9- :;.]/g,""):""},initialiseStorage(){const e=()=>localStorage.setItem(A["localStorageKeys"].COLLAPSE_STATE,JSON.stringify({}));localStorage[A["localStorageKeys"].COLLAPSE_STATE]||e();try{JSON.parse(localStorage[A["localStorageKeys"].COLLAPSE_STATE])}catch{e()}return JSON.parse(localStorage[A["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[A["localStorageKeys"].COLLAPSE_STATE]);a[e]=t,localStorage.setItem(A["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(a))},collapseChanged(e){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),e.srcElement.checked)}}},ro=io,lo=(a("eb58"),Object(v["a"])(ro,so,oo,!1,null,"ac1beaa4",null)),co=lo.exports,uo=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")])])},_o=[],mo={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)}}},go=mo,po=(a("eda6"),Object(v["a"])(go,uo,_o,!1,null,null,null)),ho=po.exports,fo={name:"ItemGroup",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:co,Item:no,IframeModal:ho},computed:{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){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}}},bo=fo,ko=(a("196f"),Object(v["a"])(bo,ms,gs,!1,null,"cce3e8c4",null)),wo=ko.exports,vo={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:_s,ItemGroup:wo},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get(){return this.appConfig.layout||$.a.layout},set:function(e){localStorage.setItem(A["localStorageKeys"].LAYOUT_ORIENTATION,e),this.layout=e}},iconSize:{get(){return this.appConfig.iconSize||$.a.iconSize},set:function(e){localStorage.setItem(A["localStorageKeys"].ICON_SIZE,e),this.itemSizeBound=e}}},methods:{checkTheresData(e){const t=localStorage[A["localStorageKeys"].CONF_SECTIONS];return e&&e.length>=1||t&&t.length>=1},getSections(e){const t=localStorage[A["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?e.filter(e=>{const{title:t,description:a,provider:n,url:s}=e,o=this.searchValue.toLowerCase();return t&&t.toLowerCase().includes(o)||n&&n.toLowerCase().includes(o)||a&&a.toLowerCase().includes(o)||this.getDomainFromUrl(s).includes(o)}):[]},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.sections&&(this.sections.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[A["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||$.a.fontAwesomeKey;e.setAttribute("src",`${A["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",A["iconCdns"].mdi),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},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}},yo=vo,Co=(a("07de"),Object(v["a"])(yo,ve,ye,!1,null,"9b847cc8",null)),So=Co.exports,Io=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"login-page"},[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)])},xo=[],To={name:"login",components:{Button:vt,Input:Ht},props:{appConfig:Object},data(){return{username:"",password:"",message:"",status:"waiting",timeout:{label:this.$t("login.remember-me-never"),time: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")}}},methods:{submitLogin(){const e=this.timeout?this.timeout.time:0,t=et(this.username,this.password,this.appConfig.auth||[],this.responseMessages);this.message=t.msg,this.status=t.correct?"success":"error",t.correct&&(tt(this.username,this.password,e),setTimeout(()=>{yi.push({path:"/"})},250))},setTheme(){const e=localStorage[A["localStorageKeys"].THEME]||$.a.theme;document.getElementsByTagName("html")[0].setAttribute("data-theme",e)}},created(){this.setTheme()}},Oo=To,Eo=(a("206d"),Object(v["a"])(Oo,Io,xo,!1,null,null,null)),Ao=Eo.exports,$o=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)},zo=[],Lo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("nav",{staticClass:"side-bar"},e._l(e.sections,(function(t,n){return a("div",{key:n},[a("div",{staticClass:"side-bar-item-container",on:{click:function(t){return e.openSection(n)}}},[a("SideBarItem",{staticClass:"item",attrs:{icon:t.icon,title:t.name}})],1),a("transition",{attrs:{name:"slide"}},[e.isOpen[n]?a("SideBarSection",{attrs:{items:t.items},on:{"launch-app":e.launchApp}}):e._e()],1)],1)})),0)},jo=[],No=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)},Mo=[],Do={name:"SideBarItem",inject:["config"],props:{icon:String,title:String,url:String,click:Function},components:{Icon:Ts},methods:{itemClicked(){this.url&&this.$emit("launch-app",this.url)}},data(){return{tooltip:{disabled:!this.title,content:this.title,trigger:"hover focus",hideOnTargetClick:!0,html:!1,placement:"right-start",delay:{show:800,hide:1e3}}}}},Vo=Do,Bo=(a("012c"),Object(v["a"])(Vo,No,Mo,!1,null,"783199a0",null)),Po=Bo.exports,Ho=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,n){return a("div",{key:n},[a("SideBarItem",{staticClass:"item",attrs:{icon:t.icon,title:t.title,url:t.url},on:{"launch-app":e.launchApp}})],1)})),0)},Uo=[],Ro={name:"SideBarSection",inject:["config"],props:{items:Array},components:{SideBarItem:Po},methods:{launchApp(e){this.$emit("launch-app",e)}}},Ko=Ro,Fo=(a("cf1c"),Object(v["a"])(Ko,Ho,Uo,!1,null,"56ddb963",null)),qo=Fo.exports,Wo={name:"SideBar",inject:["config"],props:{sections:Array},data(){return{isOpen:new Array(this.sections.length).fill(!1)}},components:{SideBarItem:Po,SideBarSection:qo},methods:{openSection(e){this.isOpen=this.isOpen.map((t,a)=>a===e&&!t)},launchApp(e){this.$emit("launch-app",e)}}},Go=Wo,Jo=(a("85e1"),Object(v["a"])(Go,Lo,jo,!1,null,"31476576",null)),Yo=Jo.exports,Xo=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}})])},Zo=[],Qo={name:"WebContent",props:{url:String,id:{type:String,default:"web-app-view"}}},ei=Qo,ti=(a("21d1"),Object(v["a"])(ei,Xo,Zo,!1,null,"f1f96a0a",null)),ai=ti.exports,ni=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"container",staticClass:"multi-taking-view"})},si=[],oi={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=n["a"].extend(ai),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")}}},ii=oi,ri=(a("7e71"),Object(v["a"])(ii,ni,si,!1,null,"2a7b9297",null)),li=ri.exports,ci={name:"Workspace",props:{sections:Array,appConfig:Object},data:()=>({url:"",GetTheme:sn,ApplyLocalTheme:rn,ApplyCustomVariables:on}),computed:{isMultiTaskingEnabled(){return this.appConfig.enableMultiTasking||!1}},components:{SideBar:Yo,WebContent:ai,MultiTaskingWebComtent:li},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||$.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()}},ui=ci,di=(a("5983"),Object(v["a"])(ui,$o,zo,!1,null,"0b61868d",null)),_i=di.exports,mi=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)))])])},gi=[],pi={name:"DownloadConfig",props:{sections:Array,appConfig:Object,pageInfo:Object},data(){return{config:{appConfig:this.appConfig,pageInfo:this.pageInfo,sections:this.sections},jsonParser:Ue}}},hi=pi,fi=(a("6cd5"),Object(v["a"])(hi,mi,gi,!1,null,"33cd2d90",null)),bi=fi.exports;n["a"].use(we["a"]);const ki=()=>{const e=se.appConfig.auth;return!e||0===e.length||Qe(e)},wi=new we["a"]({routes:[{path:"/",name:"home",component:So,props:se,meta:{title:se.pageInfo.title||"Home Page",metaTags:A["metaTagData"]}},{path:"/workspace",name:"workspace",component:_i,props:se,meta:{title:se.pageInfo.title||"Dashy Workspace",metaTags:A["metaTagData"]}},{path:"/login",name:"login",component:Ao,props:{appConfig:se.appConfig},beforeEnter:(e,t,a)=>{ki()&&wi.push({path:"/"}),a()}},{path:"/about",name:"about",component:()=>a.e("about").then(a.bind(null,"f820"))},{path:"/download",name:"download",component:bi,props:se,meta:{title:se.pageInfo.title||"Download Dashy Config",metaTags:A["metaTagData"]}}]});wi.beforeEach((e,t,a)=>{"login"===e.name||ki()?a():a({name:"login"})});const vi="Dashy";wi.afterEach(e=>{n["a"].nextTick(()=>{document.title=e.meta.title||vi})});var yi=wi,Ci=a("9483");const Si=e=>{const t={ready:!1,registered:!1,cached:!1,updateFound:!1,updated:!1,offline:!1,error:!1,devMode:!1,disabledByUser:!1},a=sessionStorage[A["sessionStorageKeys"].SW_STATUS],n=a?JSON.parse(a):t;try{const t={...n,...e};sessionStorage.setItem(A["sessionStorageKeys"].SW_STATUS,JSON.stringify(t))}catch(s){console.warn("Error setting SW data",s)}},Ii=()=>{let e=!0;return J.a&&J.a.appConfig&&J.a.appConfig.disableServiceWorker&&(e=!1,Si({disabledByUser:!0})),e},xi=()=>{Ii()&&Object(Ci["a"])("/service-worker.js",{ready(){Si({ready:!0}),console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){Si({registered:!0}),console.log("Service worker has been registered.")},cached(){Si({cached:!0}),console.log("Content has been cached for offline use.")},updatefound(){Si({updateFound:!0}),console.log("New content is downloading.")},updated(){Si({updated:!0}),console.log("New content is available; please refresh.")},offline(){Si({offline:!0}),console.log("No internet connection found. App is running in offline mode.")},error(e){Si({error:!0}),console.error("Error during service worker registration:",e)}})};var Ti=xi;const Oi=[];function Ei(e,t,a){const{target:n}=e;t===n||t.contains(n)||a(e)}var Ai={bind(e,t){const a=e;a.dataset.outsideClickIndex=Oi.length;const n=t.value,s=e=>{Ei(e,a,n)};document.addEventListener("click",s),document.addEventListener("touchstart",s),Oi.push(s)},unbind(e){if(!e.dataset)return;const t=e.dataset.outsideClickIndex,a=Oi[t];document.removeEventListener("click",a),Oi.splice(t,1)}};const $i=(e,t)=>{const n=(new Y).appConfig()||{};if(n.enableErrorReporting){const s=a("2075"),{Integrations:o}=a("688d"),i=n.sentryDsn||A["sentryDsn"];s.init({Vue:e,dsn:i,integrations:[new o.BrowserTracing({routingInstrumentation:s.vueRouterInstrumentation(t)})],tracesSampleRate:1})}};var zi=$i;n["a"].use(s["a"]),n["a"].use(o["a"]),n["a"].use(r.a),n["a"].use(u["a"]),n["a"].use(_.a,A["toastedOptions"]),n["a"].component("v-select",c.a),n["a"].directive("clickOutside",Ai),n["a"].config.productionTip=!1;const Li=new s["a"]({locale:A["language"],fallbackLocale:A["language"],messages:ne});Ti(),zi(n["a"],yi);const ji=e=>e(ke);new n["a"]({router:yi,render:ji,i18n:Li}).$mount("#app")},5703:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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"}})]))}}},"570c":function(e,t,a){"use strict";a("f94d")},"570d":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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")},"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",iconSize:"medium",layout:"auto",theme:"default",fontAwesomeKey:"0821c65656",faviconApi:"faviconkit",builtInThemes:["callisto","thebe","dracula","material","material-dark","colorful","nord","nord-frost","minimal-dark","minimal-light","oblivion","matrix","matrix-red","hacker-girl","raspberry-jam","bee","tiger","blue-purple","material-original","material-dark-original","cyberpunk","vaporware","high-contrast-dark","high-contrast-light"],visibleComponents:{pageTitle:!0,navigation:!0,searchBar:!0,settings:!0,footer:!0},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"},cookieKeys:{AUTH_TOKEN:"authenticationToken"},sessionStorageKeys:{SW_STATUS:"serviceWorkerStatus"},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"},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"},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"}},"5dbe":function(e,t,a){"use strict";a("fae5")},"5f32":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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"}})]))}}},6266:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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){},"665e":function(e,t,a){"use strict";a("bddf")},6780:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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")},"6ea3":function(e,t,a){"use strict";a("edaf")},7075:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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){},"78d0":function(e,t,a){},"7da9":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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){},"7f59":function(e,t,a){},"80a7":function(e,t,a){"use strict";a("7eb0")},"826e":function(e,t,a){"use strict";a("939b")},"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"},"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"},"auth":{"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"}}}},"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"},"disableServiceWorker":{"type":"boolean","default":false,"description":"If set to true, then service workers will not 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"},"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":{"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"}}},"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"},"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"}}}}}}}}}')},"85e1":function(e,t,a){"use strict";a("1036")},"89e2":function(e,t,a){"use strict";a("1653")},"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"}]}]}},"8d7c":function(e,t,a){},9014:function(e,t,a){},"905d":function(e,t,a){},"90de":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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:n,data:s,children:o=[]}=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},o.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"}})]))}}},"922c":function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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:n,data:s,children:o=[]}=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},o.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"}})]))}}},"97fb":function(e,t,a){},"9c0c":function(e,t,a){},"9ddf":function(e,t,a){},"9e50":function(e,t,a){"use strict";a("3323")},"9e96":function(e,t,a){},a4c2:function(e,t,a){},a8d0:function(e,t,a){},b021:function(e,t,a){"use strict";a("905d")},b5c9:function(e,t,a){"use strict";a("7645")},bddf:function(e,t,a){},bef7:function(e,t,a){},c715:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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"}})]))}}},c849:function(e,t,a){"use strict";a("28a7")},c924:function(e,t,a){},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:n,data:s,children:o=[]}=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},o.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")},d636:function(e,t,a){"use strict";a("78d0")},d72b:function(e,t,a){},d8e8:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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"},"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"},"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."},"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"},"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"},"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 mode plein รฉcran"}}')},e697:function(e,t,a){"use strict";a("2574")},e6a4:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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"}})]))}}},e7fa:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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"}})]))}}},eb58:function(e,t,a){"use strict";a("9e96")},eba9:function(e,t,a){},ec1d:function(e,t,a){"use strict";a("f254")},ed9b:function(e,t,a){"use strict";a("a4c2")},eda6:function(e,t,a){"use strict";a("1864")},edaf:function(e,t,a){},f254:function(e,t,a){},f255:function(e,t,a){"use strict";a("339a")},f719:function(e,t,a){"use strict";a("27c1")},f94d:function(e,t,a){},f9d7:function(e,t){e.exports={functional:!0,render(e,t){const{_c:a,_v:n,data:s,children:o=[]}=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},o.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){},ffc8:function(e,t,a){}}); //# sourceMappingURL=dashy.46e0bc72.js.map