(function(t){function e(e){for(var a,o,r=e[0],c=e[1],l=e[2],u=0,d=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(t)}},O=T,E=(s("d16d"),Object(w["a"])(O,k,x,!1,null,"68c1bd5c",null)),L=E.exports,A={name:"Header",components:{PageTitle:I,Nav:L},props:{pageInfo:Object},data(){return{hiddenComponents:this.pageInfo.hiddenComponents||{},titleVisible:p["visibleComponents"].pageTitle,navVisible:p["visibleComponents"].navigation}}},N=A,z=(s("4239"),Object(w["a"])(N,g,v,!1,null,"70a33270",null)),M=z.exports,P=function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.text&&""!==t.text?s("footer",{class:t.scrollVisible?"":"fixed",domProps:{innerHTML:t._s(t.text)}}):s("footer",{class:t.scrollVisible?"":"fixed"},[t._v(" Developed by "),s("a",{attrs:{href:t.authorUrl}},[t._v(t._s(t.authorName))]),t._v(". Licensed under "),s("a",{attrs:{href:t.licenseUrl}},[t._v(t._s(t.license))]),t._v(" "+t._s(t.showCopyright?"©":"")+" "+t._s(t.date)+". Get the "),s("a",{attrs:{href:t.repoUrl}},[t._v("Source Code")]),t._v(". ")])},B=[],j={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"}},data:()=>({scrollVisible:!1}),mounted(){this.scrollVisible=document.body.clientHeight>window.innerHeight}},H=j,$=(s("1ac7"),Object(w["a"])(H,P,B,!1,null,"23129a2b",null)),D=$.exports,V=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("transition",{attrs:{name:"slide-fade"}},[t.isLoading?s("div",{class:t.c,attrs:{id:"loading"},on:{click:function(e){t.c="hide"}}},[s("h2",[t._v("Dashy")]),s("div",{staticClass:"inner-container"},[s("p",[t._v("Loading")]),s("span",{staticClass:"dots-cont"},[s("span",{staticClass:"dot dot-1"}),s("span",{staticClass:"dot dot-2"}),s("span",{staticClass:"dot dot-3"}),s("span",{staticClass:"dot dot-4"})])])]):t._e()])},U=[],R={name:"LoadingScreen",props:{isLoading:{type:Boolean,default:!1}},data:()=>({c:""})},K=R,F=(s("2bb3"),Object(w["a"])(K,V,U,!1,null,"a7bc1de6",null)),W=F.exports,G=s("8b8e"),J=s.n(G);const q=(()=>{let t=h.a.appConfig;return localStorage[p["localStorageKeys"].APP_CONFIG]?t=JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG]):J.a.appConfig&&(t=J.a.appConfig),t.layout=localStorage[p["localStorageKeys"].LAYOUT_ORIENTATION]||J.a.appConfig.layout||h.a.layout,t.iconSize=localStorage[p["localStorageKeys"].ICON_SIZE]||J.a.appConfig.iconSize||h.a.iconSize,t})(),Y=(()=>{const t=h.a.pageInfo;let e;try{e=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(a){e={}}const s=J.a.pageInfo||t;return s.title=e.title||J.a.pageInfo.title||t.title,s.description=e.description||J.a.pageInfo.description||t.description,s.navLinks=e.navLinks||J.a.pageInfo.navLinks||t.navLinks,s.footerText=e.footerText||J.a.pageInfo.footerText||t.footerText,s})(),Z=(()=>{const t=localStorage[p["localStorageKeys"].CONF_SECTIONS];if(t)try{const e=JSON.parse(t);if(e.length>=1)return e}catch(e){}return J.a.sections})(),X=(()=>{const t={appConfig:q,pageInfo:Y,sections:Z};return t})();var Q={name:"app",components:{Header:M,Footer:D,LoadingScreen:W},provide:{config:X},data(){return{showFooter:h.a.visibleComponents.footer,isLoading:!0,appConfig:q,pageInfo:Y}},methods:{getFooterText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},injectCustomStyles(t){const e=document.createElement("style");e.textContent=t,document.head.append(e)},shouldShowSplash(){return this.appConfig.showSplashScreen||!localStorage[p["localStorageKeys"].HIDE_WELCOME_BANNER]},hideSplash(){this.shouldShowSplash()&&!this.shouldHidePageComponents()?setTimeout(()=>{this.isLoading=!1},p["splashScreenTime"]||2e3):this.isLoading=!1},shouldHidePageComponents(){return["download"].includes(this.$route.name)}},computed:{currentRouteName(){return this.$route.name}},mounted(){if(this.hideSplash(),this.appConfig.customCss){const t=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(t)}}},tt=Q,et=(s("5c0b"),Object(w["a"])(tt,m,f,!1,null,null,null)),st=et.exports,at=s("8c4f"),ot=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"home",style:t.getBackgroundImage()},[s("SettingsContainer",{ref:"filterComp",staticClass:"filter-container",attrs:{displayLayout:t.layout,iconSize:t.itemSizeBound,availableThemes:t.getExternalCSSLinks(),sections:t.getSections(t.sections),appConfig:t.appConfig,pageInfo:t.pageInfo,modalOpen:t.modalOpen},on:{"user-is-searchin":t.searching,"change-display-layout":t.setLayoutOrientation,"change-icon-size":t.setItemSize,"change-modal-visibility":t.updateModalVisibility}}),t.checkTheresData(t.sections)?s("div",{class:"item-group-container orientation-"+t.layout+" item-size-"+t.itemSizeBound},t._l(t.getSections(t.sections),(function(e,a){return s("ItemGroup",{key:a,class:0===t.filterTiles(e.items).length&&t.searchValue?"no-results":"",attrs:{title:e.name,icon:e.icon||void 0,displayData:t.getDisplayData(e),groupId:"section-"+a,items:t.filterTiles(e.items),itemSize:t.itemSizeBound},on:{itemClicked:function(e){return t.finishedSearching()},"change-modal-visibility":t.updateModalVisibility}})})),1):t._e(),t.checkIfResults()?s("div",{staticClass:"no-data"},[t._v(" "+t._s(t.searchValue?"No Search Results":"No Data Configured")+" ")]):t._e()],1)},nt=[],it=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("section",[t.searchVisible?s("SearchBar",{ref:"SearchBar",attrs:{active:!t.modalOpen},on:{"user-is-searchin":t.userIsTypingSomething}}):t._e(),s("div",{staticClass:"options-outer"},[s("div",{class:"options-container "+(t.settingsVisible?"":"hide")},[s("ThemeSelector",{attrs:{themes:t.availableThemes,confTheme:t.getInitialTheme(),userThemes:t.getUserThemes()}}),s("LayoutSelector",{attrs:{displayLayout:t.displayLayout},on:{layoutUpdated:t.updateDisplayLayout}}),s("ItemSizeSelector",{attrs:{iconSize:t.iconSize},on:{iconSizeUpdated:t.updateIconSize}}),s("ConfigLauncher",{attrs:{sections:t.sections,pageInfo:t.pageInfo,appConfig:t.appConfig},on:{modalChanged:t.modalChanged}}),t.isUserLoggedIn()?s("IconLogout",{directives:[{name:"tooltip",rawName:"v-tooltip",value:"Logout",expression:"'Logout'"}],staticClass:"logout-icon",on:{click:function(e){return t.logout()}}}):t._e()],1),s("div",{class:"show-hide-container "+(t.settingsVisible?"hide-btn":"show-btn")},[s("button",{directives:[{name:"tooltip",rawName:"v-tooltip",value:(t.settingsVisible?"Hide":"Open")+" Settings Menu",expression:"`${settingsVisible? 'Hide' : 'Open'} Settings Menu`"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.toggleSettingsVisibility()}}},[t.settingsVisible?s("IconClose"):s("IconOpen")],1)])]),s("KeyboardShortcutInfo")],1)},rt=[],ct=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("form",[s("label",{attrs:{for:"filter-tiles"}},[t._v("Search")]),s("input",{directives:[{name:"model",rawName:"v-model",value:t.input,expression:"input"}],ref:"filter",attrs:{id:"filter-tiles",placeholder:"Start typing to filter..."},domProps:{value:t.input},on:{input:[function(e){e.target.composing||(t.input=e.target.value)},t.userIsTypingSomething],keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.clearFilterInput.apply(null,arguments)}}}),t.input.length>0?s("i",{staticClass:"clear-search",attrs:{title:"Clear search"},on:{click:t.clearFilterInput}},[t._v("x")]):t._e()])},lt=[];class ut{constructor(t){this.index=t}resetIndex(){this.index=0}arrowNavigation(t){void 0===this.index?this.index=0:37===t?this.index-=1:38===t?this.index=ut.goToPrevious(this.index):39===t?this.index+=1:40===t&&(this.index=ut.goToNext(this.index)),this.index=ut.getSafeElementIndex(this.index),ut.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(t){const e=ut.getNumResults();return t<0?e-1:t>=e?0:t}static selectItemByIndex(t){return t>=0&&t<=ut.getNumResults()?document.getElementsByClassName("item")[t]:[document.getElementsByClassName("item")]}static findPreviousRow(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetTop===e,s=(t,a)=>t>=ut.getNumResults()?s(0,a):e(t,a)?s(t-1,a):t,a=ut.selectItemByIndex(t).offsetTop;return s(t,a)}static goToPrevious(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetToput.selectItemByIndex(t).offsetTop===e,s=(t,a)=>t>=ut.getNumResults()?s(0,a):e(t,a)?s(t+1,a):t,a=ut.selectItemByIndex(t).offsetTop;return s(t,a)}static goToNext(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetTop>ut.selectItemByIndex(e).offsetTop,s=ut.findNextRow(t),a=s-t,o=s-ut.findPreviousRow(t)-1,n=e(t,s)?0:o-a;return s+n}}var dt={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new ut}},mounted(){window.addEventListener("keydown",t=>{const e=document.activeElement.id,{key:s,keyCode:a}=t;this.active&&(/^[a-zA-Z]$/.test(s)&&"filter-tiles"!==e?(this.$refs.filter.focus(),this.userIsTypingSomething()):a>=37&&a<=40?this.akn.arrowNavigation(a):27===a&&this.clearFilterInput())})},methods:{userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()}}},pt=dt,ht=(s("8949"),Object(w["a"])(pt,ct,lt,!1,null,"72e6bff4",null)),mt=ht.exports,ft=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"config-options"},[s("span",[t._v("Config")]),s("div",{staticClass:"config-buttons"},[s("IconSpanner",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Update configuration locally"),expression:"tooltip('Update configuration locally')"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.showEditor()}}}),s("IconCloud",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Backup / restore cloud config"),expression:"tooltip('Backup / restore cloud config')"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.showCloudModal()}}})],1),s("modal",{attrs:{name:t.modalNames.CONF_EDITOR,resizable:!0,width:"60%",height:"85%",classes:"dashy-modal"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[s("ConfigContainer",{attrs:{config:t.combineConfig()}})],1),s("modal",{attrs:{name:t.modalNames.CLOUD_BACKUP,resizable:!0,width:"65%",height:"60%",classes:"dashy-modal"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[s("CloudBackupRestore",{attrs:{config:t.combineConfig()}})],1)],1)},gt=[],vt=s("35c3"),yt=s.n(vt),bt=s("6780"),Ct=s.n(bt),St=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("Tabs",{ref:"tabView",attrs:{navAuto:!0,name:"Add Item"}},[s("TabItem",{staticClass:"main-tab",attrs:{name:"Config"}},[s("div",{staticClass:"main-options-container"},[s("h2",[t._v("Configuration Options")]),s("a",{staticClass:"hyperlink-wrapper",on:{click:function(e){return t.downloadConfigFile("conf.yml",t.yaml)}}},[s("button",{staticClass:"config-button center"},[s("DownloadIcon",{staticClass:"button-icon"}),t._v(" Download Config ")],1)]),s("button",{staticClass:"config-button center",on:{click:function(e){return t.goToEdit()}}},[s("EditIcon",{staticClass:"button-icon"}),t._v(" Edit Config ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.goToCustomCss()}}},[s("CustomCssIcon",{staticClass:"button-icon"}),t._v(" Edit Custom CSS ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.openCloudSync()}}},[s("CloudIcon",{staticClass:"button-icon"}),t._v(" "+t._s(t.backupId?"Edit Cloud Sync":"Enable Cloud Sync")+" ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.openRebuildAppModal()}}},[s("RebuildIcon",{staticClass:"button-icon"}),t._v(" Rebuild Application ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.resetLocalSettings()}}},[s("DeleteIcon",{staticClass:"button-icon"}),t._v(" Reset Local Settings ")],1),s("p",{staticClass:"small-screen-note",staticStyle:{display:"none"}},[t._v(" You are using a very small screen, and some screens in this menu may not be optimal ")]),s("div",{staticClass:"config-note"},[s("span",[t._v(" It is recommend to make a backup of your conf.yml file, before making any changes. ")])])]),s("RebuildApp")],1),s("TabItem",{staticClass:"code-container",attrs:{name:"View Config"}},[s("pre",{attrs:{id:"conf-yaml"}},[t._v(t._s(t.yaml))]),s("div",{staticClass:"yaml-action-buttons"},[s("h2",[t._v("Actions")]),s("a",{staticClass:"yaml-button download",on:{click:function(e){return t.downloadConfigFile("conf.yml",t.yaml)}}},[t._v(" Download Config ")]),s("a",{staticClass:"yaml-button copy",on:{click:function(e){return t.copyConfigToClipboard()}}},[t._v("Copy Config")]),s("a",{staticClass:"yaml-button reset",on:{click:function(e){return t.resetLocalSettings()}}},[t._v("Reset Config")])])]),s("TabItem",{attrs:{name:"Edit Config"}},[s("JsonEditor",{attrs:{config:t.config}})],1),s("TabItem",{attrs:{name:"Custom Styles"}},[s("CustomCssEditor",{attrs:{config:t.config,initialCss:"hello"}})],1)],1)},wt=[],_t=s("1020"),It=s.n(_t),kt=s("2e7b"),xt=s.n(kt),Tt=(s("1d89"),s("d97e"));const Ot=t=>t.split("\n").map(t=>t.trimRight()).join("\n"),Et=t=>{throw new Error("Error in Json to YAML conversion: "+t)},Lt=t=>{let e="";const s={undefined(){return"null"},null(){return"null"},number(t){return t},boolean(t){return t?"true":"false"},string(t){return JSON.stringify(t)},array(t){let a="";return 0===t.length?(a+="[]",a):(e=e.replace(/$/," "),t.forEach(t=>{const o=s[Object(Tt["typeOf"])(t)];o||Et(Object(Tt["typeOf"])(t)),a+=`\n${e}- ${o(t,!0)}`}),e=e.replace(/ {2}/,""),a)},object(t,a,o){let n="";return 0===Object.keys(t).length?(n+="{}",n):(o||(e=e.replace(/$/," ")),Object.keys(t).forEach((o,i)=>{const r=t[o],c=s[Object(Tt["typeOf"])(r)];"undefined"!==typeof r&&(c||Et(Object(Tt["typeOf"])(r)),a&&0===i||(n+="\n"+e),n+=`${o}: ${c(r)}`)}),e=e.replace(/ {2}/,""),n)},function(){return"[object Function]"}};return Ot(s[Object(Tt["typeOf"])(t)](t,!0,!0)+"\n")};var At=Lt,Nt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"json-editor-outer"},[s("v-jsoneditor",{attrs:{options:t.options,height:"500px"},model:{value:t.jsonData,callback:function(e){t.jsonData=e},expression:"jsonData"}}),s("div",{staticClass:"save-options"},[s("span",{staticClass:"save-option-title"},[t._v("Save Location:")]),s("div",{staticClass:"option"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"local",value:"local",disabled:!t.allowWriteToDisk},domProps:{checked:t._q(t.saveMode,"local")},on:{change:function(e){t.saveMode="local"}}}),s("label",{staticClass:"save-option-label",attrs:{for:"local"}},[t._v("Apply Locally")])]),s("div",{staticClass:"option"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"file",value:"file",disabled:!t.allowWriteToDisk},domProps:{checked:t._q(t.saveMode,"file")},on:{change:function(e){t.saveMode="file"}}}),s("label",{staticClass:"save-option-label",attrs:{for:"file"}},[t._v("Write Changes to Config File")])])]),s("button",{class:"save-button "+(t.isValid?"":"err"),on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),s("p",{staticClass:"errors"},[s("ul",[t._l(t.errorMessages,(function(e,a){return s("li",{key:a,class:"type-"+e.type},[t._v(" "+t._s(e.msg)+" ")])})),t.errorMessages.length<1?s("li",{staticClass:"type-valid"},[t._v(" Config is Valid ")]):t._e()],2)]),void 0!==t.saveSuccess?s("p",{class:"response-output status-"+(t.saveSuccess?"success":"fail")},[t._v(" "+t._s(t.saveSuccess?"Task Complete":"Task Failed")+" ")]):t._e(),s("p",{staticClass:"response-output"},[t._v(t._s(t.responseText))]),t.saveSuccess?s("p",{staticClass:"response-output"},[t._v(" The app should rebuild automatically. You will need to refresh the page for changes to take effect. ")]):t._e(),s("p",{staticClass:"note"},[t._v(" It is recommend to backup your existing confiruration before making any changes. ")])],1)},zt=[],Mt=s("bcb2"),Pt=s.n(Mt),Bt=s("831b"),jt=s("94f8"),Ht=s.n(jt);const $t=t=>Ht()(t.toString()).toString().toLowerCase(),Dt=t=>{const e=t.map(t=>$t(t));let s=!1;return document.cookie.split(";").forEach(t=>{if(t&&t.split("=").length>1){const a=t.split("=")[0].trim(),o=t.split("=")[1].trim();a===p["cookieKeys"].AUTH_TOKEN&&e.includes(o)&&(s=!0)}}),s},Vt=(t,e,s)=>{let a;return t?e?s.forEach(s=>{s.user===t&&(a=s.hash.toLowerCase()===Ht()(e).toString().toLowerCase()?{correct:!0,msg:"Logging in..."}:{correct:!1,msg:"Incorrect Password"})}):a={correct:!1,msg:"Missing Password"}:a={correct:!1,msg:"Missing Username"},a||{correct:!1,msg:"User not found"}},Ut=(t,e)=>{const s={user:t,hash:Ht()(e).toString().toLowerCase()};document.cookie=`authenticationToken=${$t(s)}; max-age=600`,localStorage.setItem(p["localStorageKeys"].USERNAME,t)},Rt=()=>{document.cookie="authenticationToken=null",localStorage.removeItem(p["localStorageKeys"].USERNAME)},Kt=t=>{if(!t||0===t.length)return!0;if(!Dt(t))return!1;const e=localStorage[p["localStorageKeys"].USERNAME];let s=!1;return t.forEach(t=>{t.user===e&&"admin"===t.type&&(s=!0)}),s};var Ft=s("bc3a"),Wt=s.n(Ft),Gt={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Pt.a},data(){return{jsonData:this.config,errorMessages:[],saveMode:"file",options:{schema:Bt,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors},jsonParser:At,responseText:"",saveSuccess:void 0,allowWriteToDisk:this.shouldAllowWriteToDisk()}},computed:{isValid(){return this.errorMessages.length<1}},mounted(){this.allowWriteToDisk||(this.saveMode="local")},methods:{shouldAllowWriteToDisk(){const{appConfig:t}=this.config;return!1!==t.allowConfigEdit&&Kt(t.auth)},save(){"local"!==this.saveMode&&this.allowWriteToDisk?"file"===this.saveMode?this.writeConfigToDisk():this.$toasted.show("Please select a Save Mode: Local or File"):this.saveConfigLocally()},writeConfigToDisk(){const t=this.jsonParser(this.jsonData),e=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,s=e+"/config-manager/save",a={"Content-Type":"text/plain"},o={config:t,timestamp:new Date},n=Wt.a.post(s,o,a);n.then(t=>{this.saveSuccess=t.data.success||!1,this.responseText=t.data.message,this.saveSuccess?(this.carefullyClearLocalStorage(),this.showToast("Config file written to disk succesfully",!0)):this.showToast("An error occurred saving config",!1)}).catch(t=>{this.saveSuccess=!1,this.responseText=t,this.showToast(t,!1)})},saveConfigLocally(){const t=this.jsonData;t.sections&&localStorage.setItem(p["localStorageKeys"].CONF_SECTIONS,JSON.stringify(t.sections)),t.pageInfo&&localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t.pageInfo)),t.appConfig&&localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(t.appConfig)),t.appConfig.theme&&localStorage.setItem(p["localStorageKeys"].THEME,t.appConfig.theme),this.showToast("Changes saved succesfully",!0)},carefullyClearLocalStorage(){localStorage.removeItem(p["localStorageKeys"].PAGE_INFO),localStorage.removeItem(p["localStorageKeys"].APP_CONFIG),localStorage.removeItem(p["localStorageKeys"].CONF_SECTIONS)},validationErrors(t){const e=[];t.forEach(t=>{switch(t.type){case"validation":e.push({type:"validation",msg:`Validatation Warning: ${t.error.keyword} ${t.error.message}`});break;case"error":e.push({type:"parse",msg:t.message});break;default:e.push({type:"editor",msg:"Error in JSON"});break}}),this.errorMessages=e},showToast(t,e){this.$toasted.show(t,{className:"toast-"+(e?"success":"error")})}}},Jt=Gt,qt=(s("80a7"),Object(w["a"])(Jt,Nt,zt,!1,null,null,null)),Yt=qt.exports,Zt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"json-editor-outer"},[s("prism-editor",{staticClass:"my-editor",attrs:{highlight:t.highlighter,"line-numbers":""},model:{value:t.customCss,callback:function(e){t.customCss=e},expression:"customCss"}}),s("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),t._m(0)],1)},Xt=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("p",{staticClass:"quick-note"},[s("b",[t._v("Note")]),t._v(": You will need to refresh the page for your changes to take effect. Styles overides are only stored locally, so it is reccomended to make a copy of your CSS. To remove all custom styles, delete the contents and hit Save Changes ")])}],Qt=s("e57a"),te=s("8c7a"),ee=(s("6605"),s("dff1"),s("cabf"),{name:"JsonEditor",props:{config:Object},components:{PrismEditor:Qt["a"]},data(){return{customCss:this.config.appConfig.customCss||"\n\n\n\n\n"}},methods:{validate(t){return""===t||t.match(/((?:^\s*)([\w#.@*,:\-.:>,*\s]+)\s*{(?:[\s]*)((?:[A-Za-z\- \s]+[:]\s*['"0-9\w .,/()\-!%]+;?)*)*\s*}(?:\s*))/gim)},save(){let t="";if(this.validate(this.customCss)){const e={...this.config.appConfig};e.customCss=this.customCss,localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(e)),t="Changes saved succesfully",this.inject(this.customCss),""===this.customCss&&setTimeout(()=>{location.reload()},1500)}else t="Error - Invalid CSS";this.$toasted.show(t)},inject(t){const e=t.replace(/<\/?[^>]+(>|$)/g,""),s=document.createElement("style");s.textContent=e,document.head.append(s)},highlighter(t){return Object(te["highlight"])(t,te["languages"].css)}}}),se=ee,ae=(s("9e50"),Object(w["a"])(se,Zt,Xt,!1,null,null,null)),oe=ae.exports,ne=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("modal",{attrs:{name:t.modalName,resizable:!0,width:"50%",height:"60%",classes:"dashy-modal"}},[s("div",{staticClass:"rebuild-app-container"},[s("h3",{staticClass:"rebuild-app-title"},[t._v("Rebuild Application")]),s("p",[t._v(" A rebuild is required for changes written to the conf.yml file to take effect. This should happen automatically, but if it hasn't, you can manually trigger it here."),s("br"),t._v(" This is not required for modifications stored locally. ")]),s("Button",{attrs:{click:t.startBuild,disabled:t.loading},scopedSlots:t._u([{key:"text",fn:function(){return[t._v(t._s(t.loading?"Building...":"Start Build"))]},proxy:!0},{key:"icon",fn:function(){return[s("RebuildIcon")]},proxy:!0}])}),t.loading?s("div",{staticClass:"loader-info"},[s("LoadingAnimation",{staticClass:"loader"}),s("p",{staticClass:"loading-message"},[t._v("This may take a few minutes...")])],1):t._e(),void 0!==t.success?s("div",{staticClass:"rebuild-response"},[t.success?s("p",{staticClass:"response-status success"},[t._v("✅ Build completed succesfully")]):s("p",{staticClass:"response-status failure"},[t._v("❌ Build operation failed")]),s("pre",{staticClass:"output"},[s("code",[t._v(t._s(t.output||t.error))])]),s("p",{staticClass:"rebuild-message"},[t._v(t._s(t.message))]),t.success?s("p",{staticClass:"rebuild-message"},[t._v(" A page reload is now required for changes to take effect ")]):t._e(),t.success?s("Button",{attrs:{click:t.refreshPage},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Reload Page")]},proxy:!0},{key:"icon",fn:function(){return[s("ReloadIcon")]},proxy:!0}],null,!1,1379687826)}):t._e()],1):t._e()],1)])},ie=[],re=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{attrs:{disabled:t.disabled},on:{click:function(e){return t.click()}}},[t._t("default"),t._t("text"),t._t("icon")],2)},ce=[],le={name:"Button",props:{text:String,click:Function,disabled:Boolean}},ue=le,de=(s("df27"),Object(w["a"])(ue,re,ce,!1,null,"620b35ec",null)),pe=de.exports,he=s("0911"),me=s.n(he),fe=s("3ff5"),ge=s.n(fe),ve=s("6266"),ye=s.n(ve),be={name:"RebuildApp",components:{Button:pe,RebuildIcon:me.a,ReloadIcon:ge.a,LoadingAnimation:ye.a},data:()=>({modalName:p["modalNames"].REBUILD_APP,loading:!1,success:void 0,error:"",output:"",message:""}),methods:{startBuild(){const t=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,e=t+"/config-manager/rebuild";this.loading=!0,Wt.a.get(e).then(t=>{this.finished(t.data||!1)}).catch(t=>{this.finished({success:!1,error:t})})},finished(t){if(this.loading=!1,t){const{success:e,output:s,error:a,message:o}=t;this.success=e,this.output=s,this.message=o,this.error=a}this.$toasted.show(this.success?"✅ Build Completed Succesfully":"❌ Build Failed",{className:"toast-"+(this.success?"success":"error")})},refreshPage(){location.reload()}}},Ce=be,Se=(s("7fda"),Object(w["a"])(Ce,ne,ie,!1,null,"1ee3fcba",null)),we=Se.exports,_e=s("cbd9"),Ie=s.n(_e),ke=s("0278"),xe=s.n(ke),Te=s("e7fa"),Oe=s.n(Te),Ee=s("7da9"),Le=s.n(Ee),Ae={name:"ConfigContainer",data(){return{jsonParser:At,backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},props:{config:Object},computed:{sections:function(){return this.config.sections},yaml(){return this.jsonParser(this.config)}},components:{JsonEditor:Yt,CustomCssEditor:oe,RebuildApp:we,DownloadIcon:Ie.a,DeleteIcon:xe.a,EditIcon:Oe.a,CloudIcon:Ct.a,CustomCssIcon:Le.a,RebuildIcon:me.a},methods:{goToEdit(){const t=this.$refs.tabView.navItems[2];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},goToMetaEdit(){const t=this.$refs.tabView.navItems[3];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},goToCustomCss(){const t=this.$refs.tabView.navItems[4];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},openRebuildAppModal(){this.$modal.show(p["modalNames"].REBUILD_APP)},openCloudSync(){this.$modal.show(p["modalNames"].CLOUD_BACKUP)},copyConfigToClipboard(){navigator.clipboard.writeText(this.jsonParser(this.config))},resetLocalSettings(){const t="This will remove all user settings from local storage, but won't effect your 'conf.yml' file. It is recommend to make a backup of your modified YAML settings first.\n\nAre you sure you want to proceed?",e=confirm(t);e&&(localStorage.clear(),this.$toasted.show("Data cleared succesfully"),setTimeout(()=>{location.reload(!0)},1900))},downloadConfigFile(t,e){const s=document.createElement("a");s.setAttribute("href","data:text/plain;charset=utf-8, "+encodeURIComponent(e)),s.setAttribute("download",t),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}},mounted(){It.a.registerLanguage("yaml",xt.a);const t=It.a.highlight(this.jsonParser(this.config),{language:"yaml"}).value;document.getElementById("conf-yaml").innerHTML=t}},Ne=Ae,ze=(s("c1bd"),s("1d47"),Object(w["a"])(Ne,St,wt,!1,null,"41a7f69b",null)),Me=ze.exports,Pe=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"cloud-backup-restore-wrapper"},[t._m(0),s("div",{staticClass:"section backup-section"},[t.backupId?s("h3",[t._v("Update Backup")]):s("h3",[t._v("Make a Backup")]),s("Input",{attrs:{name:"backup-password",label:t.backupId?"Enter your Password":"Choose a Password",layout:"vertical",type:"password"},model:{value:t.backupPassword,callback:function(e){t.backupPassword=e},expression:"backupPassword"}}),s("Button",{attrs:{click:t.checkPass},scopedSlots:t._u([{key:"text",fn:function(){return[t._v(t._s(t.backupId?"Update Backup":"Backup"))]},proxy:!0},{key:"icon",fn:function(){return[s("IconBackup")]},proxy:!0}])}),t.backupId?s("div",{staticClass:"results-view"},[s("span",{staticClass:"backup-id-label"},[t._v("Your Backup ID: ")]),s("pre",{staticClass:"backup-id-value"},[t._v(t._s(t.backupId))]),s("span",{staticClass:"backup-id-note"},[t._v(" This is used to restore from backups later. So keep it, along with your password somewhere safe. ")])]):t._e()],1),s("div",{staticClass:"section restore-section"},[s("h3",[t._v("Restore a Backup")]),s("Input",{attrs:{name:"restore-code",label:"Restore ID"},model:{value:t.restoreCode,callback:function(e){t.restoreCode=e},expression:"restoreCode"}}),s("Input",{attrs:{name:"restore-password",label:"Password",type:"password"},model:{value:t.restorePassword,callback:function(e){t.restorePassword=e},expression:"restorePassword"}}),s("Button",{attrs:{click:t.restoreBackup},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Restore")]},proxy:!0},{key:"icon",fn:function(){return[s("IconRestore")]},proxy:!0}])})],1)])},Be=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"section intro"},[s("h2",[t._v("Cloud Backup & Restore")]),s("p",{staticClass:"intro"},[t._v(" Cloud backup and restore is an optional feature, that enables you to upload your config to the internet, and then restore it on any other device or instance of Dashy. "),s("br"),s("br"),t._v(" All data is fully end-to-end encrypted with AES, using your password as the key. "),s("br"),t._v(" For more info, please see the "),s("a",{attrs:{href:"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md"}},[t._v("docs")])])])}],je=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:"input-container "+t.layout},[t.label?s("label",{attrs:{for:"name"}},[t._v(t._s(t.label))]):t._e(),s("input",{attrs:{type:t.type,name:t.name,id:t.name,placeholder:t.placeholder},domProps:{value:t.value},on:{input:function(e){return t.updateValue(e.target.value)}}})])},He=[],$e={name:"Input",props:{value:String,label:String,name:String,placeholder:String,type:{default:"text",type:String},layout:{validator:t=>-1!==["horizontal","vertical"].indexOf(t),type:String,default:"vertical"}},methods:{updateValue(t){this.$emit("input",t)}}},De=$e,Ve=(s("2d25"),Object(w["a"])(De,je,He,!1,null,"5df13ed2",null)),Ue=Ve.exports,Re=s("3a1e"),Ke=s.n(Re),Fe=s("e6a4"),We=s.n(Fe),Ge=s("c198"),Je=s.n(Ge),qe=s("f8d5"),Ye=s.n(qe);const Ze=p["backupEndpoint"],Xe=(t,e)=>{const s=JSON.stringify(t),a=Je.a.encrypt(s,e);return a.toString()},Qe=(t,e)=>Je.a.decrypt(t,e).toString(Ye.a),ts=t=>Ht()(t).toString().slice(0,14),es=(t,e)=>Wt.a.post(Ze,{userData:Xe(t,e),subHash:ts(e)}),ss=(t,e,s)=>Wt.a.put(Ze,{backupId:s,userData:Xe(t,e),subHash:ts(e)}),as=t=>Object.entries(t).map(t=>t.map(encodeURIComponent).join("=")).join("&"),os=(t,e)=>{const s=as({backupId:t,subHash:ts(e)}),a=`${Ze}/?${s}`;return new Promise((t,s)=>{Wt.a.get(a).then(a=>{if(!a.data||a.data.errorMsg)s(a.data.errorMsg||"Error");else{const n=Qe(a.data.userData.userData,e);try{t(JSON.parse(n))}catch(o){s(o)}}})})};var ns={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},components:{Button:pe,Input:Ue,IconBackup:Ke.a,IconRestore:We.a},methods:{restoreBackup(){os(this.restoreCode,this.restorePassword).then(t=>{this.restoreFromBackup(t,this.restoreCode)}).catch(t=>{this.showErrorMsg(t)})},checkPass(){const t=localStorage[p["localStorageKeys"].BACKUP_HASH]||void 0;t?t===this.makeHash(this.backupPassword)?this.makeUpdate():this.showErrorMsg("Incorrect password. Please enter your current password."):this.makeBackup()},makeBackup(){es(this.config,this.backupPassword).then(t=>{t.data&&!t.data.errorMsg&&t.data.backupId?this.updateUiAfterBackup(t.data.backupId,!1):this.showErrorMsg(t.data.errorMsg||"Error")}).catch(()=>{this.showErrorMsg("Unable to process request")})},makeUpdate(){ss(this.config,this.backupPassword,this.backupId).then(t=>{t.data&&!t.data.errorMsg&&t.data.backupId?this.updateUiAfterBackup(t.data.backupId,!0):this.showErrorMsg(t.data.errorMsg||"Error")}).catch(()=>{this.showErrorMsg("Unable to process request")})},restoreFromBackup(t,e){localStorage.setItem(p["localStorageKeys"].CONF_SECTIONS,JSON.stringify(t.sections)),localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(t.appConfig)),localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t.pageInfo)),t.appConfig.theme&&localStorage.setItem(p["localStorageKeys"].THEME,t.appConfig.theme),this.setBackupIdLocally(e,this.restorePassword),this.showSuccessMsg("Config Restored Succesfully"),setTimeout(()=>{location.reload()},1500)},updateUiAfterBackup(t,e=!1){this.setBackupIdLocally(t,this.backupPassword),this.showSuccessMsg((e?"Update":"Backup")+" Completed Succesfully"),this.backupPassword=""},showErrorMsg(t){this.$toasted.show(t,{className:"toast-error"})},showSuccessMsg(t){this.$toasted.show(t,{className:"toast-success"})},makeHash(t){return Ht()(t).toString()},setBackupIdLocally(t,e){this.backupId=t;const s=this.makeHash(e);localStorage.setItem(p["localStorageKeys"].BACKUP_ID,t),localStorage.setItem(p["localStorageKeys"].BACKUP_HASH,s)}}},is=ns,rs=(s("baed"),Object(w["a"])(is,Pe,Be,!1,null,"763657f4",null)),cs=rs.exports,ls={name:"ConfigLauncher",data(){return{modalNames:p["modalNames"]}},components:{IconSpanner:yt.a,IconCloud:Ct.a,ConfigContainer:Me,CloudBackupRestore:cs},props:{sections:Array,pageInfo:Object,appConfig:Object},methods:{showEditor:function(){this.$modal.show(p["modalNames"].CONF_EDITOR),this.$emit("modalChanged",!0)},showCloudModal:function(){this.$modal.show(p["modalNames"].CLOUD_BACKUP),this.$emit("modalChanged",!0)},combineConfig(){const t={};return t[p["topLevelConfKeys"].APP_CONFIG]=this.appConfig,t[p["topLevelConfKeys"].PAGE_INFO]=this.pageInfo,t[p["topLevelConfKeys"].SECTIONS]=this.sections,t[p["topLevelConfKeys"].APP_CONFIG].theme=localStorage[p["localStorageKeys"].THEME]||t[p["topLevelConfKeys"].APP_CONFIG].theme,t},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},us=ls,ds=(s("9c85"),Object(w["a"])(us,ft,gt,!1,null,"383db9de",null)),ps=ds.exports,hs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.themes?s("div",{staticClass:"theme-selector-section"},[s("span",{staticClass:"theme-label"},[t._v("Theme")]),s("v-select",{staticClass:"theme-dropdown",attrs:{options:t.themeNames,tabindex:-2},model:{value:t.selectedTheme,callback:function(e){t.selectedTheme=e},expression:"selectedTheme"}})],1):t._e()},ms=[];const fs=function(){const t=t=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=t,document.head.appendChild(e),new Promise((t,s)=>{e.onload=e=>{const{sheet:s}=e.target;s.disabled=!0,t(s)},e.onerror=s})},e=(t,e)=>{const s=t;if(e&&!t[e])throw new Error(`Theme: '${e}' does not exist.`);Object.keys(t).forEach(t=>{s[t].disabled=t!==e})},s={};return{add(e,a){return t(a).then(t=>{s[e]=t})},set theme(t){e(s,t)},get theme(){return Object.keys(s).find(t=>!s[t].disabled)}}};var gs=fs,vs={name:"ThemeSelector",props:{themes:Object,confTheme:String,userThemes:Array},watch:{selectedTheme(t){this.updateTheme(t)}},data(){return{selectedTheme:this.getInitialTheme(),themeHelper:new gs,loading:!0,builtInThemes:this.userThemes.concat(h.a.builtInThemes)}},computed:{themeNames:function(){const t=Object.keys(this.themes);return t.concat(this.builtInThemes)}},created(){const t=Object.keys(this.themes).map(t=>this.themeHelper.add(t,this.themes[t]));this.isThemeLocal(this.selectedTheme)?this.updateTheme(this.selectedTheme):this.selectedTheme!==h.a.theme&&Promise.all(t).then(()=>{this.updateTheme(this.selectedTheme)})},methods:{setLocalTheme(t){const e=document.getElementsByTagName("html")[0];e.hasAttribute("data-theme")&&e.removeAttribute("data-theme"),e.setAttribute("data-theme",t)},getInitialTheme(){return localStorage[p["localStorageKeys"].THEME]||this.confTheme||h.a.theme},isThemeLocal(t){return this.builtInThemes.includes(t)},updateTheme(t){"Deafault"===t?(this.resetToDefault(),this.themeHelper.theme="Deafault"):this.isThemeLocal(t)?this.setLocalTheme(t):this.themeHelper.theme=t,localStorage.setItem(p["localStorageKeys"].THEME,t)},resetToDefault(){document.getElementsByTagName("html")[0].removeAttribute("data-theme")}}},ys=vs,bs=(s("4ade"),Object(w["a"])(ys,hs,ms,!1,null,null,null)),Cs=bs.exports,Ss=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("span",{staticClass:"options-label"},[t._v("Layout")]),s("div",{staticClass:"display-options"},[s("IconDeafault",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Auto"),expression:"tooltip('Auto')"}],class:"layout-icon "+("auto"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("auto")}}}),s("IconHorizontal",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Horizontal"),expression:"tooltip('Horizontal')"}],class:"layout-icon "+("horizontal"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("horizontal")}}}),s("IconVertical",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Vertical"),expression:"tooltip('Vertical')"}],class:"layout-icon "+("vertical"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("vertical")}}})],1)])},ws=[],_s=s("c715"),Is=s.n(_s),ks=s("570d"),xs=s.n(ks),Ts=s("f9d7"),Os=s.n(Ts),Es={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:Is.a,IconHorizontal:xs.a,IconVertical:Os.a},methods:{updateDisplayLayout(t){this.$emit("layoutUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},Ls=Es,As=(s("7dc7"),Object(w["a"])(Ls,Ss,ws,!1,null,"c819d738",null)),Ns=As.exports,zs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("span",{staticClass:"options-label"},[t._v("Icon Size")]),s("div",{staticClass:"display-options"},[s("IconSmall",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Small"),expression:"tooltip('Small')"}],class:"layout-icon "+("small"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("small")}}}),s("IconMedium",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Medium"),expression:"tooltip('Medium')"}],class:"layout-icon "+("medium"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("medium")}}}),s("IconLarge",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Large"),expression:"tooltip('Large')"}],class:"layout-icon "+("large"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("large")}}})],1)])},Ms=[],Ps=s("d8e8"),Bs=s.n(Ps),js=s("7075"),Hs=s.n(js),$s=s("922c"),Ds=s.n($s),Vs={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:Bs.a,IconMedium:Hs.a,IconLarge:Ds.a},methods:{updateIconSize(t){this.$emit("iconSizeUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},Us=Vs,Rs=(s("47d9"),Object(w["a"])(Us,zs,Ms,!1,null,"58966274",null)),Ks=Rs.exports,Fs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("transition",{attrs:{name:"slide-fade"}},[t.shouldHide?t._e():s("div",{staticClass:"kb-sc-info"},[s("h5",[t._v("There are keyboard shortcuts! ⌨️🙌")]),s("div",{staticClass:"close",attrs:{title:"Hide forever [Esc]"},on:{click:function(e){return t.hideWelcomeHelper()}}},[t._v("x")]),s("p",{attrs:{title:"Press [Esc] to hide this tip forever. See there's even a shortcut for that! 🚀"}},[t._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 🥳 ")])])])},Ws=[],Gs={name:"KeyboardShortcutInfo",data(){return{shouldHide:!0,timeDelay:3e3}},methods:{shouldHideWelcomeMessage(){return!!localStorage[p["localStorageKeys"].HIDE_WELCOME_BANNER]},hideWelcomeHelper(){this.shouldHide=!0,localStorage.setItem(p["localStorageKeys"].HIDE_WELCOME_BANNER,!0),window.removeEventListener("keyup",this.keyPressEvent)},keyPressEvent(t){27===t.keyCode&&this.hideWelcomeHelper()}},mounted(){const t=this.shouldHideWelcomeMessage();t?this.$destroy():(window.setTimeout(()=>{this.shouldHide=t},this.timeDelay),window.addEventListener("keyup",this.keyPressEvent))}},Js=Gs,qs=(s("9517"),Object(w["a"])(Js,Fs,Ws,!1,null,"c5f17d9a",null)),Ys=qs.exports,Zs=s("0123"),Xs=s.n(Zs),Qs=s("5703"),ta=s.n(Qs),ea=s("5f32"),sa=s.n(ea),aa={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,availableThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:mt,ConfigLauncher:ps,ThemeSelector:Cs,LayoutSelector:Ns,ItemSizeSelector:Ks,KeyboardShortcutInfo:Ys,IconLogout:Xs.a,IconOpen:ta.a,IconClose:sa.a},methods:{userIsTypingSomething(t){this.$emit("user-is-searchin",t)},clearFilterInput(){this.$refs.SearchBar.clearFilterInput()},updateDisplayLayout(t){this.$emit("change-display-layout",t)},updateIconSize(t){this.$emit("change-icon-size",t)},modalChanged(t){this.$emit("change-modal-visibility",t)},getInitialTheme(){return this.appConfig.theme||""},logout(){Rt(),this.$toasted.show("Logged Out"),setTimeout(()=>{location.reload(!0)},100)},isUserLoggedIn(){return!!localStorage[p["localStorageKeys"].USERNAME]},getUserThemes(){const t=this.appConfig.cssThemes||[];return"string"===typeof t?[t]:t},toggleSettingsVisibility(){this.settingsVisible=!this.settingsVisible,localStorage.setItem(p["localStorageKeys"].HIDE_SETTINGS,this.settingsVisible)},getSettingsVisibility(){return JSON.parse(localStorage[p["localStorageKeys"].HIDE_SETTINGS]||h.a.visibleComponents.settings)}},data(){return{searchVisible:h.a.visibleComponents.searchBar,settingsVisible:this.getSettingsVisibility()}}},oa=aa,na=(s("8c81"),Object(w["a"])(oa,it,rt,!1,null,"7456f9c9",null)),ia=na.exports,ra=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("Collapsable",{attrs:{title:t.title,icon:t.icon,uniqueKey:t.groupId,collapsed:t.displayData.collapsed,cols:t.displayData.cols,rows:t.displayData.rows,color:t.displayData.color,customStyles:t.displayData.customStyles}},[!t.items||t.items.length<1?s("div",{staticClass:"no-items"},[t._v(" No Items to Show Yet ")]):s("div",{class:"there-are-items "+(t.isGridLayout?"item-group-grid":""),style:t.gridStyle},[t._l(t.items,(function(e,a){return s("Item",{key:a+"_"+t.makeId(e.title),attrs:{id:a+"_"+t.makeId(e.title),url:e.url,title:e.title,description:e.description,icon:e.icon,target:e.target,color:e.color,backgroundColor:e.backgroundColor,itemSize:t.newItemSize,enableStatusCheck:t.shouldEnableStatusCheck(e.statusCheck)},on:{itemClicked:function(e){return t.$emit("itemClicked")},triggerModal:t.triggerModal}})})),s("div",{ref:"modalContainer"})],2),s("IframeModal",{ref:"iframeModal-"+t.groupId,attrs:{name:"iframeModal-"+t.groupId},on:{closed:function(e){return t.$emit("itemClicked")},modalChanged:t.modalChanged}})],1)},ca=[],la=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("a",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.getTooltipOptions(),expression:"getTooltipOptions()"}],class:"item "+(t.icon?"":"short")+" size-"+t.itemSize,style:"--open-icon: "+t.getUnicodeOpeningIcon()+"; "+t.customStyles,attrs:{href:"iframe"!==t.target?t.url:"#",target:"newtab"===t.target?"_blank":"",rel:"noopener noreferrer",tabindex:"0",id:"link-"+t.id},on:{click:t.itemOpened}},[s("div",{class:"tile-title "+(t.icon?"":"bounce"),attrs:{id:"tile-"+t.id}},[s("span",{staticClass:"text"},[t._v(t._s(t.title))]),s("div",{staticClass:"overflow-dots"},[t._v("...")]),s("p",{staticClass:"description"},[t._v(t._s(t.description))])]),s("Icon",{staticClass:"bounce",style:t.customStyles,attrs:{icon:t.icon,url:t.url,size:t.itemSize,color:t.color}}),s("ItemOpenMethodIcon",{staticClass:"opening-method-icon",attrs:{isSmall:!t.icon,openingMethod:t.target,position:"medium"===t.itemSize?"bottom right":"top right"}}),t.enableStatusCheck?s("StatusIndicator",{staticClass:"status-indicator",attrs:{statusSuccess:t.statusResponse?t.statusResponse.successStatus:void 0,statusText:t.statusResponse?t.statusResponse.message:void 0}}):t._e()],1)},ua=[],da=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"item-icon"},["font-awesome"===t.iconType?s("i",{class:t.icon+" "+t.size}):t.icon?s("img",{class:"tile-icon "+t.size+" "+(t.broken?"broken":""),attrs:{src:t.iconPath},on:{error:t.imageNotFound}}):t._e(),t.broken?s("BrokenImage",{staticClass:"missing-image"}):t._e()],1)},pa=[],ha=s("9635"),ma=s.n(ha);const fa=function(t){console.warn(t)};var ga=fa,va={name:"Icon",inject:["config"],props:{icon:String,url:String,size:String},components:{BrokenImage:ma.a},computed:{iconType:function(){return this.determineImageType(this.icon)},iconPath:function(){return this.getIconPath(this.icon,this.url)}},data(){return{broken:!1}},methods:{isUrl(t){const e=new RegExp(/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-/]))?/);return e.test(t)},isImage(t){const e=/(?:\.([^.]+))?$/,s=["png","jpg"],a=e.exec(t);return a.length>=1&&s.includes(a[1])},getFavicon(t){if(this.shouldUseDefaultFavicon(t)){const e=t.split("/");if(e.length>=2)return`${e[0]}/${e[1]}/${e[2]}/favicon.ico`}else if(t.includes("http")){const e=this.getHostName(t),s=this.config.appConfig.faviconApi||p["faviconApi"],a=p["faviconApiEndpoints"][s];return a.replace("$URL",e)}return""},shouldUseDefaultFavicon(t){const e=/(127\.)|(192\.168\.)|(10\.)|(172\.1[6-9]\.)|(172\.2[0-9]\.)|(172\.3[0-1]\.)|(::1$)|([fF][cCdD])|(localhost)/;return e.test(t)||"local"===this.config.appConfig.faviconApi},getLocalImagePath(t){return"/item-icons/"+t},getGenerativeIcon(t){return`https://ipsicon.io/${this.getHostName(t)}.svg`},getIconPath(t,e){switch(this.determineImageType(t)){case"url":return t;case"img":return this.getLocalImagePath(t);case"favicon":return this.getFavicon(e);case"generative":return this.getGenerativeIcon(e);case"svg":return t;default:return""}},determineImageType(t){let e="";return e=t?t.endsWith(".svg")?"svg":this.isUrl(t)?"url":this.isImage(t)?"img":t.includes("fa-")?"font-awesome":"favicon"===t?"favicon":"generative"===t?"generative":"none":"none",e},getHostName(t){try{return new URL(t).hostname}catch(e){return t}},imageNotFound(){this.broken=!0,ga(`The path to '${this.icon}' could not be resolved`)}}},ya=va,ba=(s("de40"),Object(w["a"])(ya,da,pa,!1,null,null,null)),Ca=ba.exports,Sa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:t.makeClass(t.position,t.isSmall,t.isTransparent)},["newtab"===t.openingMethod?s("NewTabOpenIcon"):"sametab"===t.openingMethod?s("SameTabOpenIcon"):"iframe"===t.openingMethod?s("IframeOpenIcon"):t._e()],1)},wa=[],_a=s("237e"),Ia=s.n(_a),ka=s("2352"),xa=s.n(ka),Ta=s("1946"),Oa=s.n(Ta),Ea={name:"ItemOpenMethodIcon",props:{openingMethod:String,isSmall:Boolean,position:String,isTransparent:Boolean},methods:{makeClass(t="top right",e=!1,s=!1){return`opening-method-icon\n ${t||"top right"}\n ${e?"short":""}\n ${s?"transparent":""}`}},components:{NewTabOpenIcon:Ia.a,SameTabOpenIcon:xa.a,IframeOpenIcon:Oa.a}},La=Ea,Aa=(s("699c"),Object(w["a"])(La,Sa,wa,!1,null,"17201835",null)),Na=Aa.exports,za=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:{content:t.statusText||t.otherStatusText,classes:["status-tooltip","tip-"+t.color()]},expression:"{\n content: statusText || otherStatusText, classes: ['status-tooltip', `tip-${color()}`] }"}],staticClass:"indicator",on:{click:function(e){return t.showToast()}}},[s("div",{class:"dot dot-"+t.color()},[t._m(0)])])},Ma=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("span",[s("span")])}],Pa={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)}},Ba=Pa,ja=(s("e697"),s("45d4"),Object(w["a"])(Ba,za,Ma,!1,null,"46972ad8",null)),Ha=ja.exports,$a={name:"Item",props:{id:String,title:String,subtitle:String,description:String,icon:String,color:String,backgroundColor:String,url:String,target:{type:String,default:"newtab",validator:t=>-1!==["newtab","sametab","iframe"].indexOf(t)},itemSize:String,enableStatusCheck:Boolean},data(){return{getId:this.id,customStyles:{color:this.color,background:this.backgroundColor},statusResponse:void 0}},components:{Icon:Ca,ItemOpenMethodIcon:Na,StatusIndicator:Ha},methods:{itemOpened(t){t.altKey||"iframe"===this.target?(t.preventDefault(),this.$emit("triggerModal",this.url)):this.$emit("itemClicked")},manageTitleEllipse(){const t=document.getElementById("tile-"+this.getId);if(t){const e=(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)&&this.title.length>12;e&&(t.className+=" is-overflowing")}},getTooltipOptions(){return{disabled:!this.description,content:this.description,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"iframe":return'"\\f2d0"';default:return'"\\f054"'}},checkWebsiteStatus(){const t=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,e=`${t}/ping?url=${this.url}`;Wt.a.get(e).then(t=>{t.data&&(this.statusResponse=t.data)}).catch(()=>{this.statusResponse={statusText:"Failed to make request",statusSuccess:!1}})}},mounted(){this.manageTitleEllipse(),this.enableStatusCheck&&this.checkWebsiteStatus()}},Da=$a,Va=(s("826e"),s("f719"),Object(w["a"])(Da,la,ua,!1,null,null,null)),Ua=Va.exports,Ra=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:"collapsable "+t.checkSpanNum(t.cols,"col")+" "+t.checkSpanNum(t.rows,"row"),style:(t.color?"background: "+t.color:"")+"; "+t.sanitizeCustomStyles(t.customStyles)+";"},[s("input",{staticClass:"toggle",attrs:{id:"collapsible-"+t.uniqueKey,type:"checkbox",tabIndex:"-1"},domProps:{checked:t.getCollapseState()},on:{change:t.collapseChanged}}),s("label",{staticClass:"lbl-toggle",attrs:{for:"collapsible-"+t.uniqueKey,tabindex:"-1"}},[t.icon?s("Icon",{staticClass:"section-icon",attrs:{icon:t.icon,size:"small",url:t.title}}):t._e(),s("h3",[t._v(t._s(t.title))])],1),s("div",{staticClass:"collapsible-content"},[s("div",{staticClass:"content-inner"},[t._t("default")],2)])])},Ka=[],Fa={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:Ca},data(){return{isOpen:!this.collapsed}},methods:{checkSpanNum(t,e){const s=4;let a=/^\d*$/.test(t)?parseInt(t,10):1;return a=a>s?s:a,`${e}-${a}`},sanitizeCustomStyles(t){return t?t.replace(/[^a-zA-Z0-9- :;.]/g,""):""},initialiseStorage(){const t=()=>localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify({}));localStorage[p["localStorageKeys"].COLLAPSE_STATE]||t();try{JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE])}catch{t()}return JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE])},getCollapseState(){const t=this.initialiseStorage();let e=!this.collapsed;return void 0!==t[this.uniqueKey]&&(e=t[this.uniqueKey]),e},setCollapseState(t,e){const s=JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE]);s[t]=e,localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(s))},collapseChanged(t){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),t.srcElement.checked)}}},Wa=Fa,Ga=(s("8589"),Object(w["a"])(Wa,Ra,Ka,!1,null,"33a8b630",null)),Ja=Ga.exports,qa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("modal",{attrs:{name:t.name,resizable:!0,width:"80%",height:"80%",classes:"dashy-modal"},on:{closed:function(e){return t.modalClosed()}}},[s("div",{attrs:{slot:"top-right"},on:{click:function(e){return t.hide()}},slot:"top-right"},[t._v("Close")]),s("a",{staticClass:"close-button",attrs:{title:"Close"},on:{click:function(e){return t.hide()}}},[t._v("x")]),t.url?s("iframe",{staticClass:"frame",attrs:{src:t.url},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.close.apply(null,arguments)}}}):s("div",{staticClass:"no-url"},[t._v("No URL Specified")])])},Ya=[],Za={name:"IframeModal",props:{name:String},data:()=>({url:"#"}),methods:{show(t){this.url=t,this.$modal.show(this.name),this.$emit("modalChanged",!0)},hide(){this.$modal.hide(this.name)},modalClosed(){this.$emit("modalChanged",!1)}}},Xa=Za,Qa=(s("eda6"),Object(w["a"])(Xa,qa,Ya,!1,null,null,null)),to=Qa.exports,eo={name:"ItemGroup",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:Ja,Item:Ua,IframeModal:to},computed:{newItemSize(){return this.displayData.itemSize||this.itemSize},isGridLayout(){return"grid"===this.displayData.sectionLayout||!(!this.displayData.itemCountX&&!this.displayData.itemCountY)},gridStyle(){let t="";return t+=this.displayData.itemCountX?`grid-template-columns: repeat(${this.displayData.itemCountX}, 1fr);`:"",t+=this.displayData.itemCountY?`grid-template-rows: repeat(${this.displayData.itemCountY}, 1fr);`:"",t}},methods:{makeId(t){return t.replace(/\s+/g,"-").replace(/[^a-zA-Z ]/g,"").toLowerCase()},triggerModal(t){this.$refs["iframeModal-"+this.groupId].show(t)},modalChanged(t){this.$emit("change-modal-visibility",t)},shouldEnableStatusCheck(t){const e=this.config.appConfig.statusCheck||!1;return void 0!==t?t:e}}},so=eo,ao=(s("ccd6"),Object(w["a"])(so,ra,ca,!1,null,"d0f4ec04",null)),oo=ao.exports,no={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:ia,ItemGroup:oo},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get(){return this.appConfig.layout||h.a.layout},set:function(t){localStorage.setItem(p["localStorageKeys"].LAYOUT_ORIENTATION,t),this.layout=t}},iconSize:{get(){return this.appConfig.iconSize||h.a.iconSize},set:function(t){localStorage.setItem(p["localStorageKeys"].ICON_SIZE,t),this.itemSizeBound=t}}},methods:{checkTheresData(t){const e=localStorage[p["localStorageKeys"].CONF_SECTIONS];return t&&t.length>=1||e&&e.length>=1},getSections(t){const e=localStorage[p["localStorageKeys"].CONF_SECTIONS];if(e){const t=JSON.parse(e);if(t.length>=1)return t}return t},searching(t){this.searchValue=t||""},finishedSearching(){this.$refs.filterComp.clearFilterInput()},getDomainFromUrl(t){if(!t)return"";const e=/^(?:https?:\/\/)?(?:w{3}\.)?([a-z\d.-]+)\.(?:[a-z.]{2,10})(?:[/\w.-]*)*/,s=t.match(e);return s?s[1]:""},filterTiles(t){return t?t.filter(t=>{const{title:e,description:s,provider:a,url:o}=t,n=this.searchValue.toLowerCase();return e&&e.toLowerCase().includes(n)||a&&a.toLowerCase().includes(n)||s&&s.toLowerCase().includes(n)||this.getDomainFromUrl(o).includes(n)}):[]},getDisplayData(t){return t.displayData?t.displayData:{}},setLayoutOrientation(t){this.layoutOrientation=t},setItemSize(t){this.iconSize=t},updateModalVisibility(t){this.modalOpen=t},getExternalCSSLinks(){const t={};if(this.appConfig&&this.appConfig.externalStyleSheet){const e=this.appConfig.externalStyleSheet;Array.isArray(e)?e.forEach((e,s)=>{t["External Stylesheet "+(s+1)]=e}):t["External Stylesheet"]=this.appConfig.externalStyleSheet}return t.Deafault="#",t},checkIfFontAwesomeNeeded(){let t=!1;return this.sections.forEach(e=>{e.items.forEach(e=>{e.icon&&e.icon.includes("fa-")&&(t=!0)})}),t},initiateFontAwesome(){if(this.appConfig.enableFontAwesome||this.checkIfFontAwesomeNeeded()){const t=document.createElement("script"),e=this.appConfig.fontAwesomeKey||h.a.fontAwesomeKey;t.setAttribute("src",`https://kit.fontawesome.com/${e}.js`),document.head.appendChild(t)}},checkIfResults(){if(this.sections){let t=!0;return this.sections.forEach(e=>{this.filterTiles(e.items).length>0&&(t=!1)}),t}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}},io=no,ro=(s("39ab"),Object(w["a"])(io,ot,nt,!1,null,"b011a44e",null)),co=ro.exports,lo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"login-page"},[s("form",{staticClass:"login-form"},[s("h2",{staticClass:"login-title"},[t._v("Dashy")]),s("Input",{staticClass:"login-field username",attrs:{label:"Username",type:"text"},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),s("Input",{staticClass:"login-field password",attrs:{label:"Password",type:"password"},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}}),s("Button",{staticClass:"login-button",attrs:{click:t.submitLogin}},[t._v("Login")]),s("transition",{attrs:{name:"bounce"}},[s("p",{directives:[{name:"show",rawName:"v-show",value:t.message,expression:"message"}],class:"login-error-message "+t.status},[t._v(t._s(t.message))])])],1)])},uo=[],po={name:"login",props:{appConfig:Object},data(){return{username:"",password:"",message:"",status:"waiting"}},components:{Button:pe,Input:Ue},methods:{submitLogin(){const t=Vt(this.username,this.password,this.appConfig.auth||[]);this.message=t.msg,this.status=t.correct?"success":"error",t.correct&&(Ut(this.username,this.password),setTimeout(()=>{en.push({path:"/"})},250))},setTheme(){const t=localStorage[p["localStorageKeys"].THEME]||h.a.theme;document.getElementsByTagName("html")[0].setAttribute("data-theme",t)}},created(){this.setTheme()}},ho=po,mo=(s("206d6"),Object(w["a"])(ho,lo,uo,!1,null,null,null)),fo=mo.exports,go=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"work-space"},[s("SideBar",{attrs:{sections:t.sections},on:{"launch-app":t.launchApp}}),s("WebContent",{attrs:{url:t.url}})],1)},vo=[],yo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("nav",{staticClass:"side-bar"},t._l(t.sections,(function(e,a){return s("div",{key:a},[s("div",{staticClass:"side-bar-item-container",on:{click:function(e){return t.openSection(a)}}},[s("SideBarItem",{staticClass:"item",attrs:{icon:e.icon,title:e.name}})],1),s("transition",{attrs:{name:"slide"}},[t.isOpen[a]?s("SideBarSection",{attrs:{items:e.items},on:{"launch-app":t.launchApp}}):t._e()],1)],1)})),0)},bo=[],Co=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip,expression:"tooltip"}],class:"side-bar-item "+(t.icon?"w-icon":"text-only"),on:{click:function(e){return t.itemClicked()}}},[t.icon?s("Icon",{attrs:{icon:t.icon,size:"small",url:t.url}}):s("p",{staticClass:"small-title"},[t._v(t._s(t.title))])],1)},So=[],wo={name:"SideBarItem",inject:["config"],props:{icon:String,title:String,url:String,click:Function},components:{Icon:Ca},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=wo,Io=(s("5e61"),Object(w["a"])(_o,Co,So,!1,null,"d979f4fe",null)),ko=Io.exports,xo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sub-side-bar"},t._l(t.items,(function(e,a){return s("div",{key:a},[s("SideBarItem",{staticClass:"item",attrs:{icon:e.icon,title:e.title,url:e.url},on:{"launch-app":t.launchApp}})],1)})),0)},To=[],Oo={name:"SideBarSection",inject:["config"],props:{items:Array},components:{SideBarItem:ko},methods:{launchApp(t){this.$emit("launch-app",t)}}},Eo=Oo,Lo=(s("cf1c"),Object(w["a"])(Eo,xo,To,!1,null,"56ddb963",null)),Ao=Lo.exports,No={name:"SideBar",inject:["config"],props:{sections:Array},data(){return{isOpen:new Array(this.sections.length).fill(!1)}},components:{SideBarItem:ko,SideBarSection:Ao},methods:{openSection(t){this.isOpen=this.isOpen.map((e,s)=>s===t&&!e)},launchApp(t){this.$emit("launch-app",t)}}},zo=No,Mo=(s("85e1"),Object(w["a"])(zo,yo,bo,!1,null,"31476576",null)),Po=Mo.exports,Bo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"web-content"},[s("iframe",{attrs:{src:t.url}})])},jo=[],Ho={name:"WebContent",props:{url:String}},$o=Ho,Do=(s("44e9"),Object(w["a"])($o,Bo,jo,!1,null,"a2564c04",null)),Vo=Do.exports,Uo={name:"Workspace",props:{sections:Array,appConfig:Object},data:()=>({url:""}),components:{SideBar:Po,WebContent:Vo},methods:{launchApp(t){this.url=t},setTheme(){const t=localStorage[p["localStorageKeys"].THEME]||this.confTheme||h.a.theme,e=document.getElementsByTagName("html")[0];e.hasAttribute("data-theme")&&e.removeAttribute("data-theme"),e.setAttribute("data-theme",t)},initiateFontAwesome(){const t=document.createElement("script"),e=this.appConfig.fontAwesomeKey||h.a.fontAwesomeKey;t.setAttribute("src",`https://kit.fontawesome.com/${e}.js`),document.head.appendChild(t)}},mounted(){this.setTheme(),this.initiateFontAwesome()}},Ro=Uo,Ko=Object(w["a"])(Ro,go,vo,!1,null,"5517abc2",null),Fo=Ko.exports,Wo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("pre",[s("code",[t._v(t._s(t.jsonParser(t.config)))])])},Go=[],Jo={name:"DownloadConfig",props:{sections:Array,appConfig:Object,pageInfo:Object},data(){return{config:{appConfig:this.appConfig,pageInfo:this.pageInfo,sections:this.sections},jsonParser:At}}},qo=Jo,Yo=(s("6cd5"),Object(w["a"])(qo,Wo,Go,!1,null,"33cd2d90",null)),Zo=Yo.exports;a["a"].use(at["a"]);const Xo=()=>{const t=q.auth;return!t||Dt(t)},Qo=new at["a"]({routes:[{path:"/",name:"home",component:co,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Home Page",metaTags:p["metaTagData"]}},{path:"/workspace",name:"workspace",component:Fo,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Dashy Workspace",metaTags:p["metaTagData"]}},{path:"/login",name:"login",component:fo,props:{appConfig:q},beforeEnter:(t,e,s)=>{Xo()&&Qo.push({path:"/"}),s()}},{path:"/about",name:"about",component:()=>s.e("about").then(s.bind(null,"f820"))},{path:"/download",name:"download",component:Zo,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Download Dashy Config",metaTags:p["metaTagData"]}}]});Qo.beforeEach((t,e,s)=>{"login"===t.name||Xo()?s():s({name:"login"})});const tn="Dashy";Qo.afterEach(t=>{a["a"].nextTick(()=>{document.title=t.meta.title||tn})});var en=Qo,sn=s("9483");Object(sn["a"])("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(t){console.error("Error during service worker registration:",t)}}),a["a"].use(o["a"]),a["a"].use(i.a),a["a"].use(l["a"]),a["a"].use(d.a,p["toastedOptions"]),a["a"].component("v-select",c.a),a["a"].config.productionTip=!1,new a["a"]({router:en,render:t=>t(st)}).$mount("#app")},5703:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-sliders-h fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"sliders-h",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}})]))}}},"570d":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-grip-horizontal fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"grip-horizontal",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"}})]))}}},"58c1":function(t,e,s){},"5c0b":function(t,e,s){"use strict";s("9c0c")},"5cc6":function(t,e){t.exports={pageInfo:{title:"Dashy",description:"",navLinks:[{title:"Home",path:"/"},{title:"Source",path:"https://github.com/Lissy93/dashy"}],footerText:""},appConfig:{},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","matrix","matrix-red","hacker-girl","raspberry-jam","bee","tiger","material-original","material-dark-original","high-contrast-dark","high-contrast-light"],visibleComponents:{pageTitle:!0,navigation:!0,searchBar:!0,settings:!0,footer:!0},localStorageKeys:{HIDE_WELCOME_BANNER:"hideWelcomeHelpers",LAYOUT_ORIENTATION:"layoutOrientation",COLLAPSE_STATE:"collapseState",ICON_SIZE:"iconSize",THEME:"theme",CONF_SECTIONS:"confSections",PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",BACKUP_ID:"backupId",BACKUP_HASH:"backupHash",HIDE_SETTINGS:"hideSettings",USERNAME:"username"},cookieKeys:{AUTH_TOKEN:"authenticationToken"},modalNames:{CONF_EDITOR:"CONF_EDITOR",CLOUD_BACKUP:"CLOUD_BACKUP",REBUILD_APP:"REBUILD_APP"},topLevelConfKeys:{PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",SECTIONS:"sections"},toastedOptions:{position:"bottom-center",duration:2500,keepOnHover:!0,className:"toast-message",iconPack:"fontawesome"},backupEndpoint:"https://dashy-sync-service.as93.net",splashScreenTime:1900,metaTagData:[{name:"description",content:"A simple static homepage for you're server"}],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"}}},"5e61":function(t,e,s){"use strict";s("b315")},"5f32":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-times-circle fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"times-circle",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("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"}})]))}}},6:function(t,e){},6266:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:[i,r],style:[c,l],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"100",height:"100",preserveAspectRatio:"xMidYMid"},u),...d},n.concat([s("defs",[s("clipPath",{attrs:{id:"a"}},[s("path",{attrs:{d:"M20 0h60v100H20z"}})])]),s("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"}},[s("animateTransform",{attrs:{attributeName:"transform",type:"translate",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"-20 0;7 0",keyTimes:"0;1"}}),s("animate",{attrs:{attributeName:"stroke-dasharray",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"0 72 125 232;0 197 125 233",keyTimes:"0;1"}})])]))}}},6504:function(t,e,s){},6780:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-cloud-upload-alt fa-w-20",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"cloud-upload-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},u),...d},n.concat([s("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"}})]))}}},"699c":function(t,e,s){"use strict";s("806e")},"6cd5":function(t,e,s){"use strict";s("6504")},7:function(t,e){},7075:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-expand fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("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"}})]))}}},"78e0":function(t,e,s){},7941:function(t,e,s){},"7da9":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-css3-alt fa-w-12",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fab","data-icon":"css3-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([s("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"}})]))}}},"7dc7":function(t,e,s){"use strict";s("1e5e")},"7eb0":function(t,e,s){},"7f59":function(t,e,s){},"7fda":function(t,e,s){"use strict";s("ca69")},8:function(t,e){},"806e":function(t,e,s){},"80a7":function(t,e,s){"use strict";s("7eb0")},"826e":function(t,e,s){"use strict";s("939b")},"831b":function(t){t.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"},"theme":{"type":"string","default":"Callisto","description":"A theme to be applied by default on first load"},"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"},"cssThemes":{"type":"array","description":"Theme names to be added to the dropdown","items":{"type":"string"}},"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"},"showSplashScreen":{"type":"boolean","default":false,"description":"Display a loading screen when the app is launched"},"statusCheck":{"type":"boolean","default":false,"description":"Displays an online/ offline status for each of your services"},"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"}},"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","iframe"],"default":"newtab","description":"Opening method, when item is clicked"},"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"}}}}}}}}}')},"832d":function(t,e,s){},"83ba":function(t,e,s){},8589:function(t,e,s){"use strict";s("16a0")},"85e1":function(t,e,s){"use strict";s("1036")},8949:function(t,e,s){"use strict";s("8e1b")},"8b35":function(t,e,s){},"8b8e":function(t,e){t.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"}]}]}},"8c81":function(t,e,s){"use strict";s("78e0")},"8d7c":function(t,e,s){},"8e1b":function(t,e,s){},9:function(t,e){},"922c":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-expand-arrows-alt fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("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(t,e,s){},9517:function(t,e,s){"use strict";s("a8d0")},9635:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:[i,r],style:[c,l],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{d:"M132.893 310.534l-30.082 10.911L91.9 291.364l30.081-10.911z"}}),s("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"}}),s("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"}}),s("path",{attrs:{d:"M96.656 243.686L85.721 213.63l30.07-10.94 10.935 30.055z"}})]))}}},"97fb":function(t,e,s){},"9c0c":function(t,e,s){},"9c85":function(t,e,s){"use strict";s("b993")},"9e50":function(t,e,s){"use strict";s("3323")},a8d0:function(t,e,s){},abf6:function(t,e,s){},b315:function(t,e,s){},b993:function(t,e,s){},baed:function(t,e,s){"use strict";s("7941")},bd96:function(t,e,s){"use strict";s("d6b0")},c1bd:function(t,e,s){"use strict";s("83ba")},c715:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-th fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"th",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-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 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"}})]))}}},ca69:function(t,e,s){},cbd9:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-file-download fa-w-12",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"file-download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([s("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"}})]))}}},ccd6:function(t,e,s){"use strict";s("05c8")},cf1c:function(t,e,s){"use strict";s("8d7c")},d16d:function(t,e,s){"use strict";s("18dd")},d6b0:function(t,e,s){},d8e8:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-compress-arrows-alt fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"compress-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("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(t,e,s){"use strict";s("7f59")},df27:function(t,e,s){"use strict";s("abf6")},e697:function(t,e,s){"use strict";s("2574")},e6a4:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-download fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fal","data-icon":"download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("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(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-edit fa-w-18",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"edit",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},u),...d},n.concat([s("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"}})]))}}},eda6:function(t,e,s){"use strict";s("1864")},ef83:function(t,e,s){},f719:function(t,e,s){"use strict";s("27c1")},f9d7:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-grip-vertical fa-w-10",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"grip-vertical",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"}})]))}}}}); //# sourceMappingURL=dashy.304b65a9.js.map