(function(e){function t(t){for(var n,s,r=t[0],l=t[1],c=t[2],_=0,u=[];_new RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(e)}},O=x,T=(a("d16d"),Object(v["a"])(O,S,I,!1,null,"68c1bd5c",null)),E=T.exports,$=a("5cc6"),L=a.n($),A={name:"Header",inject:["visibleComponents"],components:{PageTitle:C,Nav:E},props:{pageInfo:Object},data(){return{titleVisible:(this.visibleComponents||$["visibleComponents"]).pageTitle,navVisible:(this.visibleComponents||$["visibleComponents"]).navigation}}},N=A,z=(a("3e3f"),Object(v["a"])(N,g,p,!1,null,"786dc3b6",null)),M=z.exports,j=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(". ")])},P=[],H={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=H,V=(a("ed9b"),Object(v["a"])(B,j,P,!1,null,"64591bd5",null)),D=V.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(){const e=this.conf.appConfig||{};let t=$["appConfig"];return localStorage[$["localStorageKeys"].APP_CONFIG]?t=JSON.parse(localStorage[$["localStorageKeys"].APP_CONFIG]):e!=={}&&(t=e),t.layout=localStorage[$["localStorageKeys"].LAYOUT_ORIENTATION]||e.layout||$["layout"],t.iconSize=localStorage[$["localStorageKeys"].ICON_SIZE]||e.iconSize||$["iconSize"],t.language=localStorage[$["localStorageKeys"].LANGUAGE]||e.language||$["language"],t}pageInfo(){const e=$["pageInfo"];let t;try{t=JSON.parse(localStorage[$["localStorageKeys"].PAGE_INFO])}catch(n){t={}}const a=this.conf.pageInfo||e;return a.title=t.title||J.a.pageInfo.title||e.title,a.description=t.description||J.a.pageInfo.description||e.description,a.navLinks=t.navLinks||J.a.pageInfo.navLinks||e.navLinks,a.footerText=t.footerText||J.a.pageInfo.footerText||e.footerText,a}sections(){const e=localStorage[$["localStorageKeys"].CONF_SECTIONS];if(e)try{const t=JSON.parse(e);if(t.length>=1)return t}catch(t){}return this.conf.sections}config(){return{appConfig:this.appConfig(),pageInfo:this.pageInfo(),sections:this.sections()}}}var X=a("0e40");const Z=[{name:"English",code:"en",locale:X,flag:"๐Ÿ‡ฌ๐Ÿ‡ง"}],Q={};Z.forEach(e=>{Q[e.code]=e.locale});const ee=Q,te=(()=>{const e=new Y;return e.config()})(),ae=e=>{const t=e.hideComponents||{},a=e=>"boolean"===typeof e;return{pageTitle:a(t.hideHeading)?!t.hideHeading:$["visibleComponents"].pageTitle,navigation:a(t.hideNav)?!t.hideNav:$["visibleComponents"].navigation,searchBar:a(t.hideSearch)?!t.hideSearch:$["visibleComponents"].searchBar,settings:a(t.hideSettings)?!t.hideSettings:$["visibleComponents"].settings,footer:a(t.hideFooter)?!t.hideFooter:$["visibleComponents"].footer,splashScreen:a(t.hideSplashScreen)?!t.hideSplashScreen:$["visibleComponents"].splashScreen}},ne=()=>{const e=localStorage[$["localStorageKeys"].THEME],t=te.appConfig.theme;return e||t||$["theme"]},se=()=>{const e=JSON.parse(localStorage[$["localStorageKeys"].CUSTOM_COLORS]||"{}"),t=te.appConfig.customColors||{};return Object.assign(t,e)},oe=()=>{const e=[],t=te.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()},ie=()=>{const e=localStorage[$["localStorageKeys"].LANGUAGE]||te.appConfig.language||$["language"],t=Z.find(t=>t.code===e);return t},re=new Y,le=re.config(),ce=ae(le.appConfig)||$["visibleComponents"];var _e={name:"app",components:{Header:M,Footer:D,LoadingScreen:W},provide:{config:le,visibleComponents:ce},data(){return{isLoading:!0,showFooter:ce.footer,appConfig:re.appConfig(),pageInfo:re.pageInfo(),visibleComponents:ce}},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||$["visibleComponents"]).splashScreen||!localStorage[$["localStorageKeys"].HIDE_WELCOME_BANNER]},hideSplash(){this.shouldShowSplash()?setTimeout(()=>{this.isLoading=!1},$["splashScreenTime"]||1500):this.isLoading=!1},applyLanguage(){let e=$["language"];const t=this.$i18n.availableLocales,a=localStorage[$["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=_e,de=(a("5c0b"),Object(v["a"])(ue,m,h,!1,null,null,null)),me=de.exports,he=a("8c4f"),ge=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)},pe=[],fe=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)},be=[],ke=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()])},we=[];class ve{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=ve.goToPrevious(this.index):39===e?this.index+=1:40===e&&(this.index=ve.goToNext(this.index)),this.index=ve.getSafeElementIndex(this.index),ve.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(e){const t=ve.getNumResults();return e<0?t-1:e>=t?0:e}static selectItemByIndex(e){return e>=0&&e<=ve.getNumResults()?document.getElementsByClassName("item")[e]:[document.getElementsByClassName("item")]}static findPreviousRow(e){const t=(e,t)=>ve.selectItemByIndex(e).offsetTop===t,a=(e,n)=>e>=ve.getNumResults()?a(0,n):t(e,n)?a(e-1,n):e,n=ve.selectItemByIndex(e).offsetTop;return a(e,n)}static goToPrevious(e){const t=(e,t)=>ve.selectItemByIndex(e).offsetTopve.selectItemByIndex(e).offsetTop===t,a=(e,n)=>e>=ve.getNumResults()?a(0,n):t(e,n)?a(e+1,n):e,n=ve.selectItemByIndex(e).offsetTop;return a(e,n)}static goToNext(e){const t=(e,t)=>ve.selectItemByIndex(e).offsetTop>ve.selectItemByIndex(t).offsetTop,a=ve.findNextRow(e),n=a-e,s=a-ve.findPreviousRow(e)-1,o=t(e,a)?0:s-n;return a+o}}var ye={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new ve,getCustomKeyShortcuts:oe}},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")})}}},Ce=ye,Se=(a("b021"),Object(v["a"])(Ce,ke,we,!1,null,"2350dd8e",null)),Ie=Se.exports,xe=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("Update configuration"),expression:"tooltip('Update configuration')"}],attrs:{tabindex:"-2"},on:{click:function(t){return e.showEditor()}}}),a("IconCloud",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.tooltip("Backup / restore cloud config"),expression:"tooltip('Backup / restore cloud config')"}],attrs:{tabindex:"-2"},on:{click:function(t){return e.showCloudModal()}}})],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.CLOUD_BACKUP,resizable:!0,width:"65%",height:"60%",classes:"dashy-modal"},on:{closed:function(t){return e.$emit("modalChanged",!1)}}},[a("CloudBackupRestore",{attrs:{config:e.combineConfig()}})],1),a("modal",{attrs:{name:e.modalNames.LANG_SWITCHER,classes:"dashy-modal",resizable:!0,width:"30%",height:"25%"}},[a("LanguageSwitcher")],1)],1)},Oe=[],Te=a("35c3"),Ee=a.n(Te),$e=a("6780"),Le=a.n($e),Ae=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("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(2)}}},[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(t){return e.openCloudSync()}}},[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:"app-version"},[e._v(e._s(e.$t("config.app-version-note"))+" "+e._s(e.appVersion))]),a("p",{staticClass:"language"},[e._v(e._s(e.getLanguage()))]),a("div",{staticClass:"config-note"},[a("span",[e._v(e._s(e.$t("config.backup-note")))])])]),a("RebuildApp")],1),a("TabItem",{staticClass:"code-container",attrs:{name:e.$t("config.view-config-tab")}},[a("pre",{attrs:{id:"conf-yaml"}},[e._v(e._s(e.yaml))]),a("div",{staticClass:"yaml-action-buttons"},[a("h2",[e._v(e._s(e.$t("config.actions-label")))]),a("a",{staticClass:"yaml-button download",on:{click:function(t){return e.downloadConfigFile("conf.yml",e.yaml)}}},[e._v(" "+e._s(e.$t("config.download-config-button"))+" ")]),a("a",{staticClass:"yaml-button copy",on:{click:function(t){return e.copyConfigToClipboard()}}},[e._v(" "+e._s(e.$t("config.copy-config-label"))+" ")]),a("a",{staticClass:"yaml-button reset",on:{click:function(t){return e.resetLocalSettings()}}},[e._v(" "+e._s(e.$t("config.reset-config-label"))+" ")])])]),a("TabItem",{attrs:{name:e.$t("config.edit-config-tab")}},[a("JsonEditor",{attrs:{config:e.config}})],1),a("TabItem",{attrs:{name:e.$t("config.custom-css-tab")}},[a("CustomCssEditor",{attrs:{config:e.config}})],1)],1)},Ne=[],ze=a("1020"),Me=a.n(ze),je=a("2e7b"),Pe=a.n(je),He=(a("1d89"),a("d97e"));const Be=e=>e.split("\n").map(e=>e.trimRight()).join("\n"),Ve=e=>{throw new Error("Error in Json to YAML conversion: "+e)},De=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(He["typeOf"])(e)];s||Ve(Object(He["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(He["typeOf"])(r)];"undefined"!==typeof r&&(l||Ve(Object(He["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(He["typeOf"])(e)](e,!0,!0)+"\n")};var Ue=De,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,height:"500px"},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("bcb2"),qe=a.n(Fe),We=a("831b"),Ge=a("94f8"),Je=a.n(Ge);const Ye=e=>Je()(e.toString()).toString().toLowerCase(),Xe=e=>{const t=e.map(e=>Ye(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===$["cookieKeys"].AUTH_TOKEN&&t.includes(s)&&(a=!0)}}),a},Ze=(e,t,a)=>{let n;return e?t?a.forEach(a=>{a.user===e&&(n=a.hash.toLowerCase()===Je()(t).toString().toLowerCase()?{correct:!0,msg:"Logging in..."}:{correct:!1,msg:"Incorrect Password"})}):n={correct:!1,msg:"Missing Password"}:n={correct:!1,msg:"Missing Username"},n||{correct:!1,msg:"User not found"}},Qe=(e,t,a)=>{const n=new Date,s=new Date(n.setTime(n.getTime()+a)).toGMTString(),o={user:e,hash:Je()(t).toString().toLowerCase()};document.cookie=`authenticationToken=${Ye(o)};`+(a>0?"expires="+s:""),localStorage.setItem($["localStorageKeys"].USERNAME,e)},et=()=>{document.cookie="authenticationToken=null",localStorage.removeItem($["localStorageKeys"].USERNAME)},tt=e=>{if(!e||0===e.length)return!0;if(!Xe(e))return!1;const t=localStorage[$["localStorageKeys"].USERNAME];let a=!1;return e.forEach(e=>{e.user===t&&"admin"===e.type&&(a=!0)}),a};var at=a("bc3a"),nt=a.n(at),st={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:qe.a},data(){return{jsonData:this.config,errorMessages:[],saveMode:"file",options:{schema:We,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&&tt(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.4.1",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=nt.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($["localStorageKeys"].CONF_SECTIONS,JSON.stringify(e.sections)),e.pageInfo&&localStorage.setItem($["localStorageKeys"].PAGE_INFO,JSON.stringify(e.pageInfo)),e.appConfig&&localStorage.setItem($["localStorageKeys"].APP_CONFIG,JSON.stringify(e.appConfig)),e.appConfig.theme&&localStorage.setItem($["localStorageKeys"].THEME,e.appConfig.theme),this.showToast(this.$t("config-editor.success-msg-local"),!0)},carefullyClearLocalStorage(){localStorage.removeItem($["localStorageKeys"].PAGE_INFO),localStorage.removeItem($["localStorageKeys"].APP_CONFIG),localStorage.removeItem($["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=[],_t=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)])},ut=[],dt=a("7f75"),mt=a.n(dt),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)}),gt=[],pt={name:"Button",props:{text:String,click:Function,disabled:Boolean,disallow:Boolean}},ft=pt,bt=(a("24e6"),Object(v["a"])(ft,ht,gt,!1,null,"ec408f00",null)),kt=bt.exports,wt=a("90ff"),vt=a.n(wt),yt=a("90de"),Ct=a.n(yt),St={name:"ThemeMaker",components:{VSwatches:mt.a,Button:kt,SaveIcon:vt.a,CancelIcon:Ct.a},data(){return{customColors:this.makeInitialData($["mainCssVars"]),showingAllVars:!1,swatches:$["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[$["localStorageKeys"].CUSTOM_COLORS]||"{}");e[this.themeToEdit]=this.customColors,localStorage.setItem($["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($["mainCssVars"]),this.$emit("closeThemeConfigurator")},resetAndSave(){const e=JSON.parse(localStorage[$["localStorageKeys"].CUSTOM_COLORS]||"{}");delete e[this.themeToEdit],localStorage.setItem($["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)}}},It=St,xt=(a("369e"),Object(v["a"])(It,_t,ut,!1,null,null,null)),Ot=xt.exports,Tt=a("e57a"),Et=a("8c7a"),$t=(a("6605"),a("dff1"),a("cabf"),{name:"JsonEditor",props:{config:Object},components:{CustomThemeMaker:Ot,PrismEditor:Tt["a"]},data(){return{customCss:this.config.appConfig.customCss||"\n\n\n\n\n",currentTheme:ne()}},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($["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(Et["highlight"])(e,Et["languages"].css)}}}),Lt=$t,At=(a("9e50"),Object(v["a"])(Lt,lt,ct,!1,null,null,null)),Nt=At.exports,zt=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)])},Mt=[],jt=a("0911"),Pt=a.n(jt),Ht=a("3ff5"),Bt=a.n(Ht),Vt=a("6266"),Dt=a.n(Vt),Ut={name:"RebuildApp",inject:["config"],components:{Button:kt,RebuildIcon:Pt.a,ReloadIcon:Bt.a,LoadingAnimation:Dt.a},data:()=>({modalName:$["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.4.1",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,t=e+"/config-manager/rebuild";this.loading=!0,nt.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)}},Rt=Ut,Kt=(a("1171"),Object(v["a"])(Rt,zt,Mt,!1,null,"306fcc3a",null)),Ft=Kt.exports,qt=a("cbd9"),Wt=a.n(qt),Gt=a("0278"),Jt=a.n(Gt),Yt=a("e7fa"),Xt=a.n(Yt),Zt=a("7da9"),Qt=a.n(Zt),ea=a("0845"),ta=a.n(ea),aa=a("2413"),na=a.n(aa),sa={name:"ConfigContainer",data(){return{jsonParser:Ue,backupId:localStorage[$["localStorageKeys"].BACKUP_ID]||"",appVersion:"1.4.1"}},props:{config:Object},computed:{sections:function(){return this.config.sections},yaml(){return this.jsonParser(this.config)}},components:{JsonEditor:rt,CustomCssEditor:Nt,RebuildApp:Ft,DownloadIcon:Wt.a,DeleteIcon:Jt.a,EditIcon:Xt.a,CloudIcon:Le.a,CustomCssIcon:Qt.a,LanguageIcon:ta.a,RebuildIcon:Pt.a,IconAbout:na.a},methods:{navigateToTab(e){const t=this.$refs.tabView.navItems[e];this.$refs.tabView.activeTabItem(t)},openRebuildAppModal(){this.$modal.show($["modalNames"].REBUILD_APP)},openAboutModal(){this.$modal.show($["modalNames"].ABOUT_APP)},openCloudSync(){this.$modal.show($["modalNames"].CLOUD_BACKUP)},openLanguageSwitchModal(){this.$modal.show($["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)},initiateStntaxHighlighter(){Me.a.registerLanguage("yaml",Pe.a);const e=Me.a.highlight(this.jsonParser(this.config),{language:"yaml"}).value;document.getElementById("conf-yaml").innerHTML=e},getLanguage(){const e=ie();return e?`${e.flag} ${e.name}`:""}},mounted(){this.initiateStntaxHighlighter()}},oa=sa,ia=(a("d47b"),a("1d47"),Object(v["a"])(oa,Ae,Ne,!1,null,"03d399c0",null)),ra=ia.exports,la=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)])},ca=[],_a=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)}}})])},ua=[],da={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)}}},ma=da,ha=(a("2d25"),Object(v["a"])(ma,_a,ua,!1,null,"5df13ed2",null)),ga=ha.exports,pa=a("3a1e"),fa=a.n(pa),ba=a("e6a4"),ka=a.n(ba),wa=a("c198"),va=a.n(wa),ya=a("f8d5"),Ca=a.n(ya);const Sa=$["backupEndpoint"],Ia=(e,t)=>{const a=JSON.stringify(e),n=va.a.encrypt(a,t);return n.toString()},xa=(e,t)=>va.a.decrypt(e,t).toString(Ca.a),Oa=e=>Je()(e).toString().slice(0,14),Ta=(e,t)=>nt.a.post(Sa,{userData:Ia(e,t),subHash:Oa(t)}),Ea=(e,t,a)=>nt.a.put(Sa,{backupId:a,userData:Ia(e,t),subHash:Oa(t)}),$a=e=>Object.entries(e).map(e=>e.map(encodeURIComponent).join("=")).join("&"),La=(e,t)=>{const a=$a({backupId:e,subHash:Oa(t)}),n=`${Sa}/?${a}`;return new Promise((e,a)=>{nt.a.get(n).then(n=>{if(!n.data||n.data.errorMsg)a(n.data.errorMsg||"Error");else{const o=xa(n.data.userData.userData,t);try{e(JSON.parse(o))}catch(s){a(s)}}})})};var Aa={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[$["localStorageKeys"].BACKUP_ID]||""}},components:{Button:kt,Input:ga,IconBackup:fa.a,IconRestore:ka.a},methods:{restoreBackup(){La(this.restoreCode,this.restorePassword).then(e=>{this.restoreFromBackup(e,this.restoreCode)}).catch(e=>{this.showErrorMsg(e)})},checkPass(){const e=localStorage[$["localStorageKeys"].BACKUP_HASH]||void 0;e?e===this.makeHash(this.backupPassword)?this.makeUpdate():this.showErrorMsg(this.$t("cloud-sync.backup-error-password")):this.makeBackup()},makeBackup(){Ta(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(){Ea(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($["localStorageKeys"].CONF_SECTIONS,JSON.stringify(e.sections)),localStorage.setItem($["localStorageKeys"].APP_CONFIG,JSON.stringify(e.appConfig)),localStorage.setItem($["localStorageKeys"].PAGE_INFO,JSON.stringify(e.pageInfo)),e.appConfig.theme&&localStorage.setItem($["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 Je()(e).toString()},setBackupIdLocally(e,t){this.backupId=e;const a=this.makeHash(t);localStorage.setItem($["localStorageKeys"].BACKUP_ID,e),localStorage.setItem($["localStorageKeys"].BACKUP_HASH,a)}}},Na=Aa,za=(a("5583"),Object(v["a"])(Na,la,ca,!1,null,"079113a8",null)),Ma=za.exports,ja=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)},Pa=[],Ha={name:"LanguageSwitcher",inject:["config"],components:{Button:kt,SaveConfigIcon:vt.a},data(){return{availibleLanguages:Z,language:"",modalName:$["modalNames"].LANG_SWITCHER}},methods:{saveLanguage(){const e=this.language;if(this.checkLocale(e)){localStorage.setItem($["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)}}},Ba=Ha,Va=(a("570c"),Object(v["a"])(Ba,ja,Pa,!1,null,"631f0843",null)),Da=Va.exports,Ua={name:"ConfigLauncher",data(){return{modalNames:$["modalNames"]}},components:{IconSpanner:Ee.a,IconCloud:Le.a,ConfigContainer:ra,CloudBackupRestore:Ma,LanguageSwitcher:Da},props:{sections:Array,pageInfo:Object,appConfig:Object},methods:{showEditor:function(){this.$modal.show($["modalNames"].CONF_EDITOR),this.$emit("modalChanged",!0)},showCloudModal:function(){this.$modal.show($["modalNames"].CLOUD_BACKUP),this.$emit("modalChanged",!0)},combineConfig(){const e={};return e[$["topLevelConfKeys"].APP_CONFIG]=this.appConfig,e[$["topLevelConfKeys"].PAGE_INFO]=this.pageInfo,e[$["topLevelConfKeys"].SECTIONS]=this.sections,e[$["topLevelConfKeys"].APP_CONFIG].theme=localStorage[$["localStorageKeys"].THEME]||e[$["topLevelConfKeys"].APP_CONFIG].theme,e},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},Ra=Ua,Ka=(a("cbc6"),Object(v["a"])(Ra,xe,Oe,!1,null,"4aaf8dc8",null)),Fa=Ka.exports,qa=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)},Wa=[];const Ga=function(e){console.warn(e)};var Ja=Ga;const Ya=()=>ne(),Xa=e=>{$["mainCssVars"].forEach(e=>{document.documentElement.style.removeProperty("--"+e)});const t=se()[e];t&&Object.keys(t).forEach(e=>{document.documentElement.style.setProperty("--"+e,t[e])})},Za=e=>{const t=document.getElementsByTagName("html")[0];t.hasAttribute("data-theme")&&t.removeAttribute("data-theme"),t.setAttribute("data-theme",e)},Qa=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])||(Ja(`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 en=a("4400"),tn=a.n(en),an={name:"ThemeSelector",props:{externalThemes:Object,confTheme:String,userThemes:Array},components:{CustomThemeMaker:Ot,IconPalette:tn.a},watch:{selectedTheme(e){this.updateTheme(e)}},data(){return{selectedTheme:this.getInitialTheme(),builtInThemes:[...L.a.builtInThemes,...this.userThemes],themeHelper:new Qa,themeConfiguratorOpen:!1,ApplyLocalTheme:Za,ApplyCustomVariables:Xa}},computed:{themeNames:function(){const e=Object.keys(this.externalThemes),t=["custom"];return[...e,...this.builtInThemes,...t]}},created(){const e=Object.keys(this.externalThemes).map(e=>this.themeHelper.add(e,this.externalThemes[e]));this.isThemeLocal(this.selectedTheme)?this.updateTheme(this.selectedTheme):this.selectedTheme!==L.a.theme&&Promise.all(e).then(()=>{this.updateTheme(this.selectedTheme)})},methods:{getInitialTheme(){return localStorage[$["localStorageKeys"].THEME]||this.confTheme||L.a.theme},isThemeLocal(e){return this.builtInThemes.includes(e)},openThemeConfigurator(){this.$emit("modalChanged",!0),this.themeConfiguratorOpen=!0},closeThemeConfigurator(){this.themeConfiguratorOpen=!1},updateTheme(e){"Deafault"===e?(this.resetToDefault(),this.themeHelper.theme="Deafault"):this.isThemeLocal(e)?this.ApplyLocalTheme(e):this.themeHelper.theme=e,this.ApplyCustomVariables(e),localStorage.setItem($["localStorageKeys"].THEME,e)},resetToDefault(){document.getElementsByTagName("html")[0].removeAttribute("data-theme")}}},nn=an,sn=(a("4ade"),Object(v["a"])(nn,qa,Wa,!1,null,null,null)),on=sn.exports,rn=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)])},ln=[],cn=a("c715"),_n=a.n(cn),un=a("570d"),dn=a.n(un),mn=a("f9d7"),hn=a.n(mn),gn={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:_n.a,IconHorizontal:dn.a,IconVertical:hn.a},methods:{updateDisplayLayout(e){this.$emit("layoutUpdated",e)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},pn=gn,fn=(a("5dbe"),Object(v["a"])(pn,rn,ln,!1,null,"b3a6111c",null)),bn=fn.exports,kn=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)])},wn=[],vn=a("d8e8"),yn=a.n(vn),Cn=a("7075"),Sn=a.n(Cn),In=a("922c"),xn=a.n(In),On={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:yn.a,IconMedium:Sn.a,IconLarge:xn.a},methods:{updateIconSize(e){this.$emit("iconSizeUpdated",e)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},Tn=On,En=(a("89e2"),Object(v["a"])(Tn,kn,wn,!1,null,"1ff45660",null)),$n=En.exports,Ln=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("Sign Out"),expression:"tooltip('Sign Out')"}],staticClass:"layout-icon",attrs:{tabindex:"-2"},on:{click:function(t){return e.logout()}}})],1)])},An=[],Nn=a("0123"),zn=a.n(Nn),Mn={name:"AppButtons",components:{IconLogout:zn.a},methods:{logout(){et(),this.$toasted.show("Logged Out"),setTimeout(()=>{location.reload(!0)},500)},tooltip(e){return{content:e,trigger:"hover focus",delay:250}}}},jn=Mn,Pn=(a("0e1b"),Object(v["a"])(jn,Ln,An,!1,null,"d69dca9c",null)),Hn=Pn.exports,Bn=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 ๐Ÿฅณ ")])])])},Vn=[],Dn={name:"KeyboardShortcutInfo",data(){return{shouldHide:!0,timeDelay:3e3}},methods:{shouldHideWelcomeMessage(){return!!localStorage[$["localStorageKeys"].HIDE_WELCOME_BANNER]},hideWelcomeHelper(){this.shouldHide=!0,localStorage.setItem($["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))}},Un=Dn,Rn=(a("9517"),Object(v["a"])(Un,Bn,Vn,!1,null,"c5f17d9a",null)),Kn=Rn.exports,Fn=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 V"+e._s(e.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)])},qn=[],Wn={name:"AppInfoModal",data(){return{modalName:$["modalNames"].ABOUT_APP,appVersion:"1.4.1",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.4.1",BASE_URL:"/"}).VUE_APP_CONFIG_VALID;return void 0===e?"Config validation status is missing":"Config is "+(e?"Valid":"Invalid")},getSwStatus(){const e=sessionStorage[$["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}}}},Gn=Wn,Jn=(a("6c13"),Object(v["a"])(Gn,Fn,qn,!1,null,"40e473c3",null)),Yn=Jn.exports,Xn=a("5703"),Zn=a.n(Xn),Qn=a("5f32"),es=a.n(Qn),ts={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,externalThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:Ie,ConfigLauncher:Fa,ThemeSelector:on,LayoutSelector:bn,ItemSizeSelector:$n,AppButtons:Hn,KeyboardShortcutInfo:Kn,AppInfoModal:Yn,IconOpen:Zn.a,IconClose:es.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||""},logout(){et(),this.$toasted.show("Logged Out"),setTimeout(()=>{location.reload(!0)},100)},isUserLoggedIn(){return!!localStorage[$["localStorageKeys"].USERNAME]},getUserThemes(){const e=this.appConfig.cssThemes||[];return"string"===typeof e?[e]:e},toggleSettingsVisibility(){this.settingsVisible=!this.settingsVisible,localStorage.setItem($["localStorageKeys"].HIDE_SETTINGS,this.settingsVisible)},getSettingsVisibility(){return JSON.parse(localStorage[$["localStorageKeys"].HIDE_SETTINGS]||(this.visibleComponents||$["visibleComponents"]).settings)}},data(){return{settingsVisible:this.getSettingsVisibility(),searchVisible:(this.visibleComponents||$["visibleComponents"]).searchBar}}},as=ts,ns=(a("fa2b"),Object(v["a"])(as,fe,be,!1,null,"66dc3458",null)),ss=ns.exports,os=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)},is=[],rs=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?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)},ls=[],cs=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)))]):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)},_s=[],us=a("9635"),ds=a.n(us),ms=a("e0a2"),hs=a.n(ms),gs=a("492d"),ps={name:"Icon",inject:["config"],props:{icon:String,url:String,size:String},components:{BrokenImage:ds.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 hs.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(gs[e])return gs[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]}/favicon.ico`}else if(e.includes("http")){const t=this.getHostName(e),a=this.config.appConfig.faviconApi||$["faviconApi"],n=$["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"/item-icons/"+e},getGenerativeIcon(e){return`https://ipsicon.io/${this.getHostName(e)}.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"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":"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,Ja(`The path to '${this.icon}' could not be resolved`)}}},fs=ps,bs=(a("de40"),Object(v["a"])(fs,cs,_s,!1,null,null,null)),ks=bs.exports,ws=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()])},vs=[],ys=a("237e"),Cs=a.n(ys),Ss=a("2352"),Is=a.n(Ss),xs=a("1946"),Os=a.n(xs),Ts=a("3b49"),Es=a.n(Ts),$s={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:Cs.a,SameTabOpenIcon:Is.a,IframeOpenIcon:Os.a,WorkspaceOpenIcon:Es.a}},Ls=$s,As=(a("b5c9"),Object(v["a"])(Ls,ws,vs,!1,null,"b0684bc4",null)),Ns=As.exports,zs=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)])])},Ms=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",[a("span")])}],js={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)}},Ps=js,Hs=(a("e697"),a("45d4"),Object(v["a"])(Ps,zs,Ms,!1,null,"46972ad8",null)),Bs=Hs.exports,Vs=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("Open in Current Tab")])],1),a("li",{on:{click:function(t){return e.launch("newtab")}}},[a("NewTabOpenIcon"),a("span",[e._v("Open in New Tab")])],1),a("li",{on:{click:function(t){return e.launch("modal")}}},[a("IframeOpenIcon"),a("span",[e._v("Open in Pop-Up Modal")])],1),a("li",{on:{click:function(t){return e.launch("workspace")}}},[a("WorkspaceOpenIcon"),a("span",[e._v("Open in Workspace View")])],1)])]):e._e()])},Ds=[],Us={name:"ContextMenu",inject:["config"],components:{SameTabOpenIcon:Is.a,NewTabOpenIcon:Cs.a,IframeOpenIcon:Os.a,WorkspaceOpenIcon:Es.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}}},Rs=Us,Ks=(a("6850"),Object(v["a"])(Rs,Vs,Ds,!1,null,null,null)),Fs=Ks.exports,qs={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:ks,ItemOpenMethodIcon:Ns,StatusIndicator:Bs,ContextMenu:Fs},methods:{itemOpened(e){e.altKey||"modal"===this.target?(e.preventDefault(),this.$emit("triggerModal",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.4.1",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,t=this.statusCheckUrl||this.url,a=this.statusCheckHeaders||{},n=`${e}/ping?url=${t}`;nt.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":li.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)}},Ws=qs,Gs=(a("826e"),a("f719"),Object(v["a"])(Ws,rs,ls,!1,null,null,null)),Js=Gs.exports,Ys=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)])])},Xs=[],Zs={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:ks},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($["localStorageKeys"].COLLAPSE_STATE,JSON.stringify({}));localStorage[$["localStorageKeys"].COLLAPSE_STATE]||e();try{JSON.parse(localStorage[$["localStorageKeys"].COLLAPSE_STATE])}catch{e()}return JSON.parse(localStorage[$["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[$["localStorageKeys"].COLLAPSE_STATE]);a[e]=t,localStorage.setItem($["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(a))},collapseChanged(e){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),e.srcElement.checked)}}},Qs=Zs,eo=(a("eb58"),Object(v["a"])(Qs,Ys,Xs,!1,null,"ac1beaa4",null)),to=eo.exports,ao=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")])])},no=[],so={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)}}},oo=so,io=(a("eda6"),Object(v["a"])(oo,ao,no,!1,null,null,null)),ro=io.exports,lo={name:"ItemGroup",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:to,Item:Js,IframeModal:ro},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}}},co=lo,_o=(a("196f"),Object(v["a"])(co,os,is,!1,null,"cce3e8c4",null)),uo=_o.exports,mo={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:ss,ItemGroup:uo},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get(){return this.appConfig.layout||L.a.layout},set:function(e){localStorage.setItem($["localStorageKeys"].LAYOUT_ORIENTATION,e),this.layout=e}},iconSize:{get(){return this.appConfig.iconSize||L.a.iconSize},set:function(e){localStorage.setItem($["localStorageKeys"].ICON_SIZE,e),this.itemSizeBound=e}}},methods:{checkTheresData(e){const t=localStorage[$["localStorageKeys"].CONF_SECTIONS];return e&&e.length>=1||t&&t.length>=1},getSections(e){const t=localStorage[$["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.Deafault="#",e},checkIfFontAwesomeNeeded(){let e=!1;if(!this.sections)return!1;this.sections.forEach(t=>{t.icon&&t.icon.includes("fa-")&&(e=!0),t.items.forEach(t=>{t.icon&&t.icon.includes("fa-")&&(e=!0)})});const t=localStorage[$["localStorageKeys"].THEME];return["material","material-dark"].includes(t)&&(e=!0),e},initiateFontAwesome(){if(this.appConfig.enableFontAwesome||this.checkIfFontAwesomeNeeded()){const e=document.createElement("script"),t=this.appConfig.fontAwesomeKey||L.a.fontAwesomeKey;e.setAttribute("src",`https://kit.fontawesome.com/${t}.js`),document.head.appendChild(e)}},checkIfResults(){if(this.sections){let e=!0;return this.sections.forEach(t=>{this.filterTiles(t.items).length>0&&(e=!1)}),e}return!1},getBackgroundImage(){return this.appConfig&&this.appConfig.backgroundImg?`background: url('${this.appConfig.backgroundImg}');background-size:cover;`:""}},mounted(){this.initiateFontAwesome(),this.layout=this.layoutOrientation,this.itemSizeBound=this.iconSize}},ho=mo,go=(a("cea5"),Object(v["a"])(ho,ge,pe,!1,null,"5ea67b60",null)),po=go.exports,fo=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)])},bo=[],ko={name:"login",props:{appConfig:Object},data(){return{username:"",password:"",message:"",status:"waiting",timeout:{label:this.$t("login.remember-me-never"),time:0},dropDownMenu:[{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}]}},components:{Button:kt,Input:ga},methods:{submitLogin(){const e=this.timeout?this.timeout.time:0,t=Ze(this.username,this.password,this.appConfig.auth||[]);this.message=t.msg,this.status=t.correct?"success":"error",t.correct&&(Qe(this.username,this.password,e),setTimeout(()=>{li.push({path:"/"})},250))},setTheme(){const e=localStorage[$["localStorageKeys"].THEME]||L.a.theme;document.getElementsByTagName("html")[0].setAttribute("data-theme",e)}},created(){this.setTheme()}},wo=ko,vo=(a("206d"),Object(v["a"])(wo,fo,bo,!1,null,null,null)),yo=vo.exports,Co=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}}),a("WebContent",{attrs:{url:e.url}})],1)},So=[],Io=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)},xo=[],Oo=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)},To=[],Eo={name:"SideBarItem",inject:["config"],props:{icon:String,title:String,url:String,click:Function},components:{Icon:ks},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}}}}},$o=Eo,Lo=(a("5e61"),Object(v["a"])($o,Oo,To,!1,null,"d979f4fe",null)),Ao=Lo.exports,No=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)},zo=[],Mo={name:"SideBarSection",inject:["config"],props:{items:Array},components:{SideBarItem:Ao},methods:{launchApp(e){this.$emit("launch-app",e)}}},jo=Mo,Po=(a("cf1c"),Object(v["a"])(jo,No,zo,!1,null,"56ddb963",null)),Ho=Po.exports,Bo={name:"SideBar",inject:["config"],props:{sections:Array},data(){return{isOpen:new Array(this.sections.length).fill(!1)}},components:{SideBarItem:Ao,SideBarSection:Ho},methods:{openSection(e){this.isOpen=this.isOpen.map((t,a)=>a===e&&!t)},launchApp(e){this.$emit("launch-app",e)}}},Vo=Bo,Do=(a("85e1"),Object(v["a"])(Vo,Io,xo,!1,null,"31476576",null)),Uo=Do.exports,Ro=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"web-content"},[a("iframe",{attrs:{src:e.url}})])},Ko=[],Fo={name:"WebContent",props:{url:String}},qo=Fo,Wo=(a("44e9"),Object(v["a"])(qo,Ro,Ko,!1,null,"a2564c04",null)),Go=Wo.exports,Jo={name:"Workspace",props:{sections:Array,appConfig:Object},data:()=>({url:"",GetTheme:Ya,ApplyLocalTheme:Za,ApplyCustomVariables:Xa}),components:{SideBar:Uo,WebContent:Go},methods:{launchApp(e){this.url=e},setTheme(){const e=this.GetTheme();this.ApplyLocalTheme(e),this.ApplyCustomVariables(e)},initiateFontAwesome(){const e=document.createElement("script"),t=this.appConfig.fontAwesomeKey||L.a.fontAwesomeKey;e.setAttribute("src",`https://kit.fontawesome.com/${t}.js`),document.head.appendChild(e)},repositionFooter(){document.getElementsByTagName("footer")[0].style.position="fixed"}},mounted(){const e=this.$route;e.query&&e.query.url&&(this.url=decodeURI(e.query.url)),this.setTheme(),this.initiateFontAwesome()}},Yo=Jo,Xo=(a("6423"),Object(v["a"])(Yo,Co,So,!1,null,"62772a5b",null)),Zo=Xo.exports,Qo=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)))])])},ei=[],ti={name:"DownloadConfig",props:{sections:Array,appConfig:Object,pageInfo:Object},data(){return{config:{appConfig:this.appConfig,pageInfo:this.pageInfo,sections:this.sections},jsonParser:Ue}}},ai=ti,ni=(a("6cd5"),Object(v["a"])(ai,Qo,ei,!1,null,"33cd2d90",null)),si=ni.exports;n["a"].use(he["a"]);const oi=()=>{const e=te.appConfig.auth;return!e||Xe(e)},ii=new he["a"]({routes:[{path:"/",name:"home",component:po,props:te,meta:{title:te.pageInfo.title||"Home Page",metaTags:$["metaTagData"]}},{path:"/workspace",name:"workspace",component:Zo,props:te,meta:{title:te.pageInfo.title||"Dashy Workspace",metaTags:$["metaTagData"]}},{path:"/login",name:"login",component:yo,props:{appConfig:te.appConfig},beforeEnter:(e,t,a)=>{oi()&&ii.push({path:"/"}),a()}},{path:"/about",name:"about",component:()=>a.e("about").then(a.bind(null,"f820"))},{path:"/download",name:"download",component:si,props:te,meta:{title:te.pageInfo.title||"Download Dashy Config",metaTags:$["metaTagData"]}}]});ii.beforeEach((e,t,a)=>{"login"===e.name||oi()?a():a({name:"login"})});const ri="Dashy";ii.afterEach(e=>{n["a"].nextTick(()=>{document.title=e.meta.title||ri})});var li=ii,ci=a("9483");const _i=e=>{const t={ready:!1,registered:!1,cached:!1,updateFound:!1,updated:!1,offline:!1,error:!1,devMode:!1,disabledByUser:!1},a=sessionStorage[$["sessionStorageKeys"].SW_STATUS],n=a?JSON.parse(a):t;try{const t={...n,...e};sessionStorage.setItem($["sessionStorageKeys"].SW_STATUS,JSON.stringify(t))}catch(s){console.warn("Error setting SW data",s)}},ui=()=>{let e=!0;return J.a&&J.a.appConfig&&J.a.appConfig.disableServiceWorker&&(e=!1,_i({disabledByUser:!0})),e},di=()=>{ui()&&Object(ci["a"])("/service-worker.js",{ready(){_i({ready:!0}),console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){_i({registered:!0}),console.log("Service worker has been registered.")},cached(){_i({cached:!0}),console.log("Content has been cached for offline use.")},updatefound(){_i({updateFound:!0}),console.log("New content is downloading.")},updated(){_i({updated:!0}),console.log("New content is available; please refresh.")},offline(){_i({offline:!0}),console.log("No internet connection found. App is running in offline mode.")},error(e){_i({error:!0}),console.error("Error during service worker registration:",e)}})};var mi=di;const hi=[];function gi(e,t,a){const{target:n}=e;t===n||t.contains(n)||a(e)}var pi={bind(e,t){const a=e;a.dataset.outsideClickIndex=hi.length;const n=t.value,s=e=>{gi(e,a,n)};document.addEventListener("click",s),document.addEventListener("touchstart",s),hi.push(s)},unbind(e){if(!e.dataset)return;const t=e.dataset.outsideClickIndex,a=hi[t];document.removeEventListener("click",a),hi.splice(t,1)}};n["a"].use(s["a"]),n["a"].use(o["a"]),n["a"].use(r.a),n["a"].use(_["a"]),n["a"].use(d.a,$["toastedOptions"]),n["a"].component("v-select",c.a),n["a"].directive("clickOutside",pi),n["a"].config.productionTip=!1;const fi=new s["a"]({locale:$["language"],fallbackLocale:$["language"],messages:ee});mi();const bi=e=>e(me);new n["a"]({router:li,render:bi,i18n:fi}).$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}=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},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}=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},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){},"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"},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"]]}},"5dbe":function(e,t,a){"use strict";a("fae5")},"5e61":function(e,t,a){"use strict";a("b315")},"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}=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},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}=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},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"}})])]))}}},6423:function(e,t,a){"use strict";a("2143")},6504:function(e,t,a){},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}=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},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"}})]))}}},"67e6":function(e,t,a){},6850:function(e,t,a){"use strict";a("18b8")},"6c13":function(e,t,a){"use strict";a("67e6")},"6cab":function(e,t,a){},"6cd5":function(e,t,a){"use strict";a("6504")},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}=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},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){},"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}=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},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"}})]))}}},"7eb0":function(e,t,a){},"7f43":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"}},"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"}}}},"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"}},"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"}}}}}}}}}')},"832d":function(e,t,a){},"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){},"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}=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},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}=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},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}=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},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}=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},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){},"9e50":function(e,t,a){"use strict";a("3323")},"9e96":function(e,t,a){},a206:function(e,t,a){},a4c2:function(e,t,a){},a8d0:function(e,t,a){},b021:function(e,t,a){"use strict";a("905d")},b2be:function(e,t,a){},b315:function(e,t,a){},b58b:function(e,t,a){},b5c9:function(e,t,a){"use strict";a("7645")},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}=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},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"}})]))}}},c924:function(e,t,a){},cbc6:function(e,t,a){"use strict";a("b58b")},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}=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},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"}})]))}}},cea5:function(e,t,a){"use strict";a("7f43")},cf1c:function(e,t,a){"use strict";a("8d7c")},d16d:function(e,t,a){"use strict";a("18dd")},d47b:function(e,t,a){"use strict";a("a206")},d704: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}=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},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])/},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}=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},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}=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},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")},ec36:function(e,t,a){},ed9b:function(e,t,a){"use strict";a("a4c2")},eda6:function(e,t,a){"use strict";a("1864")},f719:function(e,t,a){"use strict";a("27c1")},f7af:function(e,t,a){},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}=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},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"}})]))}}},fa2b:function(e,t,a){"use strict";a("f7af")},fae5:function(e,t,a){}}); //# sourceMappingURL=dashy.38d24f29.js.map