diff --git a/index.html b/index.html index 1abce679..ddbf0629 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Dashy
\ No newline at end of file +Dashy
\ No newline at end of file diff --git a/js/about.06214a09.js b/js/about.4d615496.js similarity index 90% rename from js/about.06214a09.js rename to js/about.4d615496.js index 3fa413e5..042f0bd9 100644 --- a/js/about.06214a09.js +++ b/js/about.4d615496.js @@ -1,2 +1,2 @@ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{f820:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},s=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"about"},[n("h1",[t._v("This is an about page")])])}],u=n("2877"),c={},i=Object(u["a"])(c,a,s,!1,null,null,null);e["default"]=i.exports}}]); -//# sourceMappingURL=about.06214a09.js.map \ No newline at end of file +//# sourceMappingURL=about.4d615496.js.map \ No newline at end of file diff --git a/js/about.06214a09.js.map b/js/about.4d615496.js.map similarity index 90% rename from js/about.06214a09.js.map rename to js/about.4d615496.js.map index b9d0af53..a6cd956e 100644 --- a/js/about.06214a09.js.map +++ b/js/about.4d615496.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/views/About.vue?6f62","webpack:///./src/views/About.vue"],"names":["render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","staticClass","_v","script","component"],"mappings":"8GAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAII,MAAMC,GAAO,OAAOL,EAAIM,GAAG,IACnGC,EAAkB,CAAC,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBE,EAAGL,EAAII,MAAMC,IAAIH,EAAG,OAAOG,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,KAAK,CAACL,EAAIS,GAAG,+B,YCAtJC,EAAS,GAKTC,EAAY,eACdD,EACAX,EACAQ,GACA,EACA,KACA,KACA,MAIa,aAAAI,E","file":"js/about.06214a09.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"about\"},[_c('h1',[_vm._v(\"This is an about page\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=1ae8a7be&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/views/About.vue?58d5","webpack:///./src/views/About.vue"],"names":["render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","staticClass","_v","script","component"],"mappings":"8GAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAII,MAAMC,GAAO,OAAOL,EAAIM,GAAG,IACnGC,EAAkB,CAAC,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBE,EAAGL,EAAII,MAAMC,IAAIH,EAAG,OAAOG,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,KAAK,CAACL,EAAIS,GAAG,+B,YCAtJC,EAAS,GAKTC,EAAY,eACdD,EACAX,EACAQ,GACA,EACA,KACA,KACA,MAIa,aAAAI,E","file":"js/about.4d615496.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"about\"},[_c('h1',[_vm._v(\"This is an about page\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=1ae8a7be&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.2ee0ed11.js b/js/app.5b029f07.js similarity index 99% rename from js/app.2ee0ed11.js rename to js/app.5b029f07.js index 8b0ba2e6..c382b9ca 100644 --- a/js/app.2ee0ed11.js +++ b/js/app.5b029f07.js @@ -1,2 +1,2 @@ -(function(t){function e(e){for(var s,i,r=e[0],c=e[1],l=e[2],u=0,p=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(t)}},E=O,T=(a("d16d"),Object(w["a"])(E,k,x,!1,null,"68c1bd5c",null)),z=T.exports,L={name:"Header",components:{PageTitle:_,Nav:z},props:{pageInfo:Object},data(){return{hiddenComponents:this.pageInfo.hiddenComponents||{},titleVisible:p["visibleComponents"].pageTitle,navVisible:p["visibleComponents"].navigation}}},N=L,M=(a("4239"),Object(w["a"])(N,g,v,!1,null,"70a33270",null)),H=M.exports,P=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.text&&""!==t.text?a("footer",[t._v(t._s(t.text))]):a("footer",[t._v(" Developed by "),a("a",{attrs:{href:t.authorUrl}},[t._v(t._s(t.authorName))]),t._v(". Licensed under "),a("a",{attrs:{href:t.licenseUrl}},[t._v(t._s(t.license))]),t._v(" "+t._s(t.showCopyright?"©":"")+" "+t._s(t.date)+". Get the "),a("a",{attrs:{href:t.repoUrl}},[t._v("Source Code")]),t._v(". ")])},A=[],j={name:"Footer",props:{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/panel"},text:String}},B=j,$=(a("07b7"),Object(w["a"])(B,P,A,!1,null,"668274c3",null)),V=$.exports,D=a("8b8e"),K=a.n(D),F={name:"app",components:{Header:H,Footer:V},data:()=>({showFooter:h.a.visibleComponents.footer}),computed:{pageInfo(){return this.getPageInfo(K.a.pageInfo)},appConfig(){return localStorage[p["localStorageKeys"].APP_CONFIG]?JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG]):K.a.appConfig?K.a.appConfig:h.a.appConfig}},methods:{getPageInfo(t){const e=h.a.pageInfo;let a;try{a=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(s){a={}}return t?{title:a.title||t.title||e.title,description:a.description||t.description||e.description,navLinks:a.navLinks||t.navLinks||e.navLinks,footerText:a.footerText||t.footerText||e.footerText}:e},getFooterText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},injectCustomStyles(t){const e=document.createElement("style");e.textContent=t,document.head.append(e)}},mounted(){if(this.appConfig.customCss){const t=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(t)}}},U=F,R=(a("5c0b"),Object(w["a"])(U,m,f,!1,null,null,null)),J=R.exports,G=a("8c4f"),q=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"home",style:t.getBackgroundImage()},[a("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)?a("div",{class:"item-group-container orientation-"+t.layout+" item-size-"+t.itemSizeBound},t._l(t.getSections(t.sections),(function(e,s){return a("ItemGroup",{key:s,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-"+s,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()?a("div",{staticClass:"no-data"},[t._v(" "+t._s(t.searchValue?"No Search Results":"No Data Configured")+" ")]):t._e()],1)},Y=[],W=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("section",[t.searchVisible?a("SearchBar",{ref:"SearchBar",attrs:{active:!t.modalOpen},on:{"user-is-searchin":t.userIsTypingSomething}}):t._e(),a("div",{staticClass:"options-outer"},[t.settingsVisible?a("div",{staticClass:"options-container"},[a("ThemeSelector",{attrs:{themes:t.availableThemes,confTheme:t.getInitialTheme(),userThemes:t.getUserThemes()}}),a("LayoutSelector",{attrs:{displayLayout:t.displayLayout},on:{layoutUpdated:t.updateDisplayLayout}}),a("ItemSizeSelector",{attrs:{iconSize:t.iconSize},on:{iconSizeUpdated:t.updateIconSize}}),a("ConfigLauncher",{attrs:{sections:t.sections,pageInfo:t.pageInfo,appConfig:t.appConfig},on:{modalChanged:t.modalChanged}})],1):t._e(),a("div",{class:"show-hide-container "+(t.settingsVisible?"hide-btn":"show-btn")},[a("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?a("IconClose"):a("IconOpen")],1)])]),a("KeyboardShortcutInfo")],1)},Z=[],X=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("form",[a("label",{attrs:{for:"filter-tiles"}},[t._v("Search")]),a("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?a("i",{staticClass:"clear-search",attrs:{title:"Clear search"},on:{click:t.clearFilterInput}},[t._v("x")]):t._e()])},Q=[];class tt{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=tt.goToPrevious(this.index):39===t?this.index+=1:40===t&&(this.index=tt.goToNext(this.index)),this.index=tt.getSafeElementIndex(this.index),tt.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(t){const e=tt.getNumResults();return t<0?e-1:t>=e?0:t}static selectItemByIndex(t){return t>=0&&t<=tt.getNumResults()?document.getElementsByClassName("item")[t]:[document.getElementsByClassName("item")]}static findPreviousRow(t){const e=(t,e)=>tt.selectItemByIndex(t).offsetTop===e,a=(t,s)=>t>=tt.getNumResults()?a(0,s):e(t,s)?a(t-1,s):t,s=tt.selectItemByIndex(t).offsetTop;return a(t,s)}static goToPrevious(t){const e=(t,e)=>tt.selectItemByIndex(t).offsetToptt.selectItemByIndex(t).offsetTop===e,a=(t,s)=>t>=tt.getNumResults()?a(0,s):e(t,s)?a(t+1,s):t,s=tt.selectItemByIndex(t).offsetTop;return a(t,s)}static goToNext(t){const e=(t,e)=>tt.selectItemByIndex(t).offsetTop>tt.selectItemByIndex(e).offsetTop,a=tt.findNextRow(t),s=a-t,o=a-tt.findPreviousRow(t)-1,n=e(t,a)?0:o-s;return a+n}}var et={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new tt}},mounted(){window.addEventListener("keydown",t=>{const e=document.activeElement.id,{key:a,keyCode:s}=t;this.active&&(/^[a-zA-Z]$/.test(a)&&"filter-tiles"!==e?(this.$refs.filter.focus(),this.userIsTypingSomething()):s>=37&&s<=40?this.akn.arrowNavigation(s):27===s&&this.clearFilterInput())})},methods:{userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()}}},at=et,st=(a("d8c4"),Object(w["a"])(at,X,Q,!1,null,"4039a28b",null)),ot=st.exports,nt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"config-options"},[a("span",[t._v("Config")]),a("div",{staticClass:"config-buttons"},[a("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()}}}),a("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),a("modal",{attrs:{name:t.modalNames.CONF_EDITOR,resizable:!0,width:"60%",height:"80%"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[a("ConfigContainer",{attrs:{config:t.combineConfig()}})],1),a("modal",{attrs:{name:t.modalNames.CLOUD_BACKUP,resizable:!0,width:"65%",height:"60%"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[a("CloudBackupRestore",{attrs:{config:t.combineConfig()}})],1)],1)},it=[],rt=a("35c3"),ct=a.n(rt),lt=a("6780"),ut=a.n(lt),dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Tabs",{ref:"tabView",attrs:{navAuto:!0,name:"Add Item"}},[a("TabItem",{staticClass:"main-tab",attrs:{name:"Config"}},[a("div",{staticClass:"main-options-container"},[a("h2",[t._v("Configuration Options")]),a("a",{staticClass:"hyperlink-wrapper",attrs:{href:"/conf.yml",download:""}},[a("button",{staticClass:"config-button center"},[a("DownloadIcon",{staticClass:"button-icon"}),t._v(" Download Config ")],1)]),a("button",{staticClass:"config-button center",on:{click:function(e){return t.goToEdit()}}},[a("EditIcon",{staticClass:"button-icon"}),t._v(" Edit Sections ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.goToMetaEdit()}}},[a("MetaDataIcon",{staticClass:"button-icon"}),t._v(" Edit Meta Data ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.goToCustomCss()}}},[a("CustomCssIcon",{staticClass:"button-icon"}),t._v(" Edit Custom CSS ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.openCloudSync()}}},[a("CloudIcon",{staticClass:"button-icon"}),t._v(" "+t._s(t.backupId?"Edit Cloud Sync":"Enable Cloud Sync")+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.resetLocalSettings()}}},[a("DeleteIcon",{staticClass:"button-icon"}),t._v(" Reset Local Settings ")],1),a("div",{staticClass:"config-note"},[a("p",{staticClass:"sub-title"},[t._v("Note:")]),a("span",[t._v(" All changes made here are stored locally. To apply globally, either export your config into your conf.yml file, or use the cloud backup/ restore feature. ")])])])]),a("TabItem",{staticClass:"code-container",attrs:{name:"Backup Config"}},[a("pre",{attrs:{id:"conf-yaml"}},[t._v(t._s(this.jsonParser(this.config)))]),a("div",{staticClass:"yaml-action-buttons"},[a("h2",[t._v("Actions")]),a("a",{staticClass:"yaml-button download",attrs:{href:"/conf.yml",download:""}},[t._v("Download Config")]),a("a",{staticClass:"yaml-button copy",on:{click:function(e){return t.copyConfigToClipboard()}}},[t._v("Copy Config")]),a("a",{staticClass:"yaml-button reset",on:{click:function(e){return t.resetLocalSettings()}}},[t._v("Reset Config")])])]),a("TabItem",{attrs:{name:"Edit Sections"}},[a("JsonEditor",{attrs:{config:t.config}})],1),a("TabItem",{attrs:{name:"Edit Site Meta"}},[a("EditSiteMeta",{attrs:{config:t.config}})],1),a("TabItem",{attrs:{name:"Custom Styles"}},[a("CustomCssEditor",{attrs:{config:t.config,initialCss:"hello"}})],1)],1)},pt=[],ht=a("1020"),mt=a.n(ht),ft=a("2e7b"),gt=a.n(ft),vt=(a("1d89"),a("d97e"));const yt=t=>t.split("\n").map(t=>t.trimRight()).join("\n"),bt=t=>{throw new Error("Error in Json to YAML conversion: "+t)},Ct=t=>{let e="";const a={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 s="";return 0===t.length?(s+="[]",s):(e=e.replace(/$/," "),t.forEach(t=>{const o=a[Object(vt["typeOf"])(t)];o||bt(Object(vt["typeOf"])(t)),s+=`\n${e}- ${o(t,!0)}`}),e=e.replace(/ {2}/,""),s)},object(t,s,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=a[Object(vt["typeOf"])(r)];"undefined"!==typeof r&&(c||bt(Object(vt["typeOf"])(r)),s&&0===i||(n+="\n"+e),n+=`${o}: ${c(r)}`)}),e=e.replace(/ {2}/,""),n)},function(){return"[object Function]"}};return yt(a[Object(vt["typeOf"])(t)](t,!0,!0)+"\n")};var St=Ct,wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"site-meta-container"},[a("h2",[t._v("Edit Site Meta")]),a("div",{staticClass:"form"},[a("div",{staticClass:"row"},[a("span",[t._v("Title")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.formElements.title,expression:"formElements.title"}],domProps:{value:t.formElements.title},on:{input:function(e){e.target.composing||t.$set(t.formElements,"title",e.target.value)}}})]),a("div",{staticClass:"row"},[a("span",[t._v("Description")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.formElements.description,expression:"formElements.description"}],domProps:{value:t.formElements.description},on:{input:function(e){e.target.composing||t.$set(t.formElements,"description",e.target.value)}}})]),a("div",{staticClass:"row"},[a("span",[t._v("Footer Text")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.formElements.footerText,expression:"formElements.footerText"}],domProps:{value:t.formElements.footerText},on:{input:function(e){e.target.composing||t.$set(t.formElements,"footerText",e.target.value)}}})])]),a("div",{staticClass:"form"},[a("h2",[t._v("Nav Bar Links")]),t._l(t.formElements.navLinks,(function(e,s){return a("div",{key:s,staticClass:"add-nav-bar-link"},[a("div",{staticClass:"row"},[a("span",[t._v("Link Text")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.title,expression:"link.title"}],domProps:{value:e.title},on:{input:function(a){a.target.composing||t.$set(e,"title",a.target.value)}}})]),a("div",{staticClass:"row"},[a("span",[t._v("Link URL")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.path,expression:"link.path"}],domProps:{value:e.path},on:{input:function(a){a.target.composing||t.$set(e,"path",a.target.value)}}})])])})),a("button",{staticClass:"add-new-link",on:{click:function(e){return t.addNavLinkRow()}}},[a("AddNewIcon"),t._v(" Add New Link ")],1)],2),a("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[a("SaveConfigIcon"),t._v(" Save Changes ")],1)])},It=[],_t=a("7152"),kt=a.n(_t),xt=a("90ff"),Ot=a.n(xt),Et={name:"EditSiteMeta",props:{config:Object},components:{AddNewIcon:kt.a,SaveConfigIcon:Ot.a},methods:{save(){const t={...this.config.pageInfo};t.title=this.formElements.title,t.description=this.formElements.description,t.footerText=this.formElements.footerText,this.formElements.navLinks&&(t.navLinks=this.formElements.navLinks.filter(t=>""!==t.title)),localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t)),this.$toasted.show("Changes saved succesfully"),setTimeout(()=>{location.reload()},1500)},addNavLinkRow(){this.formElements.navLinks.push({title:"",path:""})}},data(){return{formElements:{title:this.config.pageInfo.title,description:this.config.pageInfo.description,footerText:this.config.pageInfo.footerText,navLinks:this.config.pageInfo.navLinks||[]}}}},Tt=Et,zt=(a("51b7"),Object(w["a"])(Tt,wt,It,!1,null,"772067bb",null)),Lt=zt.exports,Nt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"json-editor-outer"},[a("v-jsoneditor",{attrs:{options:t.options,height:"580px"},model:{value:t.jsonData,callback:function(e){t.jsonData=e},expression:"jsonData"}}),a("button",{class:"save-button "+(t.isValid?"":"err"),on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),a("p",{staticClass:"errors"},[a("ul",[t._l(t.errorMessages,(function(e,s){return a("li",{key:s,class:"type-"+e.type},[t._v(" "+t._s(e.msg)+" ")])})),t.errorMessages.length<1?a("li",{staticClass:"type-valid"},[t._v(" Config is Valid ")]):t._e()],2)]),t._m(0)],1)},Mt=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("p",{staticClass:"note"},[t._v(" It is recommend to backup your existing confiruration before making any changes. "),a("br"),t._v(" Remember that these changes are only applied locally, and will need to be exported to your conf.yml ")])}],Ht=a("bcb2"),Pt=a.n(Ht),At=a("831b"),jt={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Pt.a},data(){return{jsonData:this.config,errorMessages:[],options:{schema:At,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors}}},computed:{isValid(){return this.errorMessages.length<1}},methods:{save(){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.$toasted.show("Changes saved succesfully")},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}}},Bt=jt,$t=(a("80a7"),Object(w["a"])(Bt,Nt,Mt,!1,null,null,null)),Vt=$t.exports,Dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"json-editor-outer"},[a("prism-editor",{staticClass:"my-editor",attrs:{highlight:t.highlighter,"line-numbers":""},model:{value:t.customCss,callback:function(e){t.customCss=e},expression:"customCss"}}),a("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),t._m(0)],1)},Kt=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("p",{staticClass:"quick-note"},[a("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 ")])}],Ft=a("e57a"),Ut=a("8c7a"),Rt=(a("6605"),a("dff1"),a("cabf"),{name:"JsonEditor",props:{config:Object},components:{PrismEditor:Ft["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,""),a=document.createElement("style");a.textContent=e,document.head.append(a)},highlighter(t){return Object(Ut["highlight"])(t,Ut["languages"].css)}}}),Jt=Rt,Gt=(a("9e50"),Object(w["a"])(Jt,Dt,Kt,!1,null,null,null)),qt=Gt.exports,Yt=a("cbd9"),Wt=a.n(Yt),Zt=a("0278"),Xt=a.n(Zt),Qt=a("e7fa"),te=a.n(Qt),ee=a("9350"),ae=a.n(ee),se=a("7da9"),oe=a.n(se),ne={name:"ConfigContainer",data(){return{jsonParser:St,backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},props:{config:Object},computed:{sections:function(){return this.config.sections}},components:{EditSiteMeta:Lt,JsonEditor:Vt,CustomCssEditor:qt,DownloadIcon:Wt.a,DeleteIcon:Xt.a,EditIcon:te.a,CloudIcon:ut.a,MetaDataIcon:ae.a,CustomCssIcon:oe.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})},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()},1900))}},mounted(){mt.a.registerLanguage("yaml",gt.a);const t=mt.a.highlight(this.jsonParser(this.config),{language:"yaml"}).value;document.getElementById("conf-yaml").innerHTML=t}},ie=ne,re=(a("033d"),a("1d47"),Object(w["a"])(ie,dt,pt,!1,null,"578494cc",null)),ce=re.exports,le=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"cloud-backup-restore-wrapper"},[t._m(0),a("div",{staticClass:"section backup-section"},[t.backupId?a("h3",[t._v("Update Backup")]):a("h3",[t._v("Make a Backup")]),a("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"}}),a("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[a("IconBackup")]},proxy:!0}])}),t.backupId?a("div",{staticClass:"results-view"},[a("span",{staticClass:"backup-id-label"},[t._v("Your Backup ID: ")]),a("pre",{staticClass:"backup-id-value"},[t._v(t._s(t.backupId))]),a("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),a("div",{staticClass:"section restore-section"},[a("h3",[t._v("Restore a Backup")]),a("Input",{attrs:{name:"restore-code",label:"Restore ID"},model:{value:t.restoreCode,callback:function(e){t.restoreCode=e},expression:"restoreCode"}}),a("Input",{attrs:{name:"restore-password",label:"Password",type:"password"},model:{value:t.restorePassword,callback:function(e){t.restorePassword=e},expression:"restorePassword"}}),a("Button",{attrs:{click:t.restoreBackup},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Restore")]},proxy:!0},{key:"icon",fn:function(){return[a("IconRestore")]},proxy:!0}])})],1)])},ue=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"section intro"},[a("h2",[t._v("Cloud Backup & Restore")]),a("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. "),a("br"),a("br"),t._v(" All data is fully end-to-end encrypted with AES, using your password as the key. "),a("br"),t._v(" For more info, please see the "),a("a",{attrs:{href:"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md"}},[t._v("docs")])])])}],de=a("94f8"),pe=a.n(de),he=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("button",{on:{click:function(e){return t.click()}}},[t._t("text"),t._t("icon")],2)},me=[],fe={name:"Button",props:{text:String,click:Function}},ge=fe,ve=(a("6bf0"),Object(w["a"])(ge,he,me,!1,null,"115c4d8d",null)),ye=ve.exports,be=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:"input-container "+t.layout},[t.label?a("label",{attrs:{for:"name"}},[t._v(t._s(t.label))]):t._e(),a("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)}}})])},Ce=[],Se={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)}}},we=Se,Ie=(a("2d25"),Object(w["a"])(we,be,Ce,!1,null,"5df13ed2",null)),_e=Ie.exports,ke=a("3a1e"),xe=a.n(ke),Oe=a("e6a4"),Ee=a.n(Oe),Te=a("c198"),ze=a.n(Te),Le=a("f8d5"),Ne=a.n(Le),Me=a("bc3a"),He=a.n(Me);const Pe=p["backupEndpoint"],Ae=(t,e)=>{const a=JSON.stringify(t),s=ze.a.encrypt(a,e);return s.toString()},je=(t,e)=>ze.a.decrypt(t,e).toString(Ne.a),Be=t=>pe()(t).toString().slice(0,14),$e=(t,e)=>He.a.post(Pe,{userData:Ae(t,e),subHash:Be(e)}),Ve=(t,e,a)=>He.a.put(Pe,{backupId:a,userData:Ae(t,e),subHash:Be(e)}),De=t=>Object.entries(t).map(t=>t.map(encodeURIComponent).join("=")).join("&"),Ke=(t,e)=>{const a=De({backupId:t,subHash:Be(e)}),s=`${Pe}/?${a}`;return new Promise((t,a)=>{He.a.get(s).then(s=>{if(!s.data||s.data.errorMsg)a(s.data.errorMsg||"Error");else{const n=je(s.data.userData.userData,e);try{t(JSON.parse(n))}catch(o){a(o)}}})})};var Fe={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},components:{Button:ye,Input:_e,IconBackup:xe.a,IconRestore:Ee.a},methods:{restoreBackup(){Ke(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(){$e(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(){Ve(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 pe()(t).toString()},setBackupIdLocally(t,e){this.backupId=t;const a=this.makeHash(e);localStorage.setItem(p["localStorageKeys"].BACKUP_ID,t),localStorage.setItem(p["localStorageKeys"].BACKUP_HASH,a)}}},Ue=Fe,Re=(a("c134"),Object(w["a"])(Ue,le,ue,!1,null,"4f7aa887",null)),Je=Re.exports,Ge={name:"ConfigLauncher",data(){return{modalNames:p["modalNames"]}},components:{IconSpanner:ct.a,IconCloud:ut.a,ConfigContainer:ce,CloudBackupRestore:Je},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}}}},qe=Ge,Ye=(a("f49c"),a("192d"),Object(w["a"])(qe,nt,it,!1,null,"698f4f02",null)),We=Ye.exports,Ze=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.themes?a("div",{staticClass:"theme-selector-section"},[a("span",{staticClass:"theme-label"},[t._v("Theme")]),a("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()},Xe=[];const Qe=function(){const t=t=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=t,document.head.appendChild(e),new Promise((t,a)=>{e.onload=e=>{const{sheet:a}=e.target;a.disabled=!0,t(a)},e.onerror=a})},e=(t,e)=>{const a=t;if(e&&!t[e])throw new Error(`Theme: '${e}' does not exist.`);Object.keys(t).forEach(t=>{a[t].disabled=t!==e})},a={};return{add(e,s){return t(s).then(t=>{a[e]=t})},set theme(t){e(a,t)},get theme(){return Object.keys(a).find(t=>!a[t].disabled)}}};var ta=Qe,ea={name:"ThemeSelector",props:{themes:Object,confTheme:String,userThemes:Array},watch:{selectedTheme(t){this.updateTheme(t)}},data(){return{selectedTheme:this.getInitialTheme(),themeHelper:new ta,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")}}},aa=ea,sa=(a("4ade"),Object(w["a"])(aa,Ze,Xe,!1,null,null,null)),oa=sa.exports,na=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("span",{staticClass:"options-label"},[t._v("Layout")]),a("div",{staticClass:"display-options"},[a("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")}}}),a("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")}}}),a("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)])},ia=[],ra=a("c715"),ca=a.n(ra),la=a("570d"),ua=a.n(la),da=a("f9d7"),pa=a.n(da),ha={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:ca.a,IconHorizontal:ua.a,IconVertical:pa.a},methods:{updateDisplayLayout(t){this.$emit("layoutUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},ma=ha,fa=(a("7dc7"),Object(w["a"])(ma,na,ia,!1,null,"c819d738",null)),ga=fa.exports,va=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("span",{staticClass:"options-label"},[t._v("Icon Size")]),a("div",{staticClass:"display-options"},[a("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")}}}),a("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")}}}),a("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)])},ya=[],ba=a("d8e8"),Ca=a.n(ba),Sa=a("7075"),wa=a.n(Sa),Ia=a("922c"),_a=a.n(Ia),ka={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:Ca.a,IconMedium:wa.a,IconLarge:_a.a},methods:{updateIconSize(t){this.$emit("iconSizeUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},xa=ka,Oa=(a("47d9"),Object(w["a"])(xa,va,ya,!1,null,"58966274",null)),Ea=Oa.exports,Ta=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("transition",{attrs:{name:"slide-fade"}},[t.shouldHide?t._e():a("div",{staticClass:"kb-sc-info"},[a("h5",[t._v("There are keyboard shortcuts! ⌨️🙌")]),a("div",{staticClass:"close",attrs:{title:"Hide forever [Esc]"},on:{click:function(e){return t.hideWelcomeHelper()}}},[t._v("x")]),a("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 🥳 ")])])])},za=[],La={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))}},Na=La,Ma=(a("5509"),Object(w["a"])(Na,Ta,za,!1,null,"080c9684",null)),Ha=Ma.exports,Pa=a("5703"),Aa=a.n(Pa),ja=a("5f32"),Ba=a.n(ja),$a={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,availableThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:ot,ConfigLauncher:We,ThemeSelector:oa,LayoutSelector:ga,ItemSizeSelector:Ea,KeyboardShortcutInfo:Ha,IconOpen:Aa.a,IconClose:Ba.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||""},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()}}},Va=$a,Da=(a("d0b1"),Object(w["a"])(Va,W,Z,!1,null,"d4f70440",null)),Ka=Da.exports,Fa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("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?a("div",{staticClass:"no-items"},[t._v(" No Items to Show Yet ")]):a("div",{class:"there-are-items "+(t.isGridLayout?"item-group-grid":""),style:t.gridStyle},[t._l(t.items,(function(e,s){return a("Item",{key:s+"_"+t.makeId(e.title),attrs:{id:s+"_"+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},on:{itemClicked:function(e){return t.$emit("itemClicked")},triggerModal:t.triggerModal}})})),a("div",{ref:"modalContainer"})],2),a("IframeModal",{ref:"iframeModal-"+t.groupId,attrs:{name:"iframeModal-"+t.groupId},on:{closed:function(e){return t.$emit("itemClicked")},modalChanged:t.modalChanged}})],1)},Ua=[],Ra=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("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}},[a("div",{class:"tile-title "+(t.icon?"":"bounce"),attrs:{id:"tile-"+t.id}},[a("span",{staticClass:"text"},[t._v(t._s(t.title))]),a("div",{staticClass:"overflow-dots"},[t._v("...")]),a("p",{staticClass:"description"},[t._v(t._s(t.description))])]),a("Icon",{staticClass:"bounce",style:t.customStyles,attrs:{icon:t.icon,url:t.url,size:t.itemSize,color:t.color}}),a("ItemOpenMethodIcon",{staticClass:"opening-method-icon",attrs:{isSmall:!t.icon,openingMethod:t.target,position:"medium"===t.itemSize?"bottom right":"top right"}})],1)},Ja=[],Ga=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",["font-awesome"===t.iconType?a("i",{class:t.icon+" "+t.size}):t.icon?a("img",{class:"tile-icon "+t.size+" "+(t.broken?"broken":""),attrs:{src:t.iconPath},on:{error:t.imageNotFound}}):t._e(),t.broken?a("BrokenImage",{staticClass:"missing-image"}):t._e()],1)},qa=[],Ya=a("9635"),Wa=a.n(Ya);const Za=function(t){console.warn(t)};var Xa=Za,Qa={name:"Icon",props:{icon:String,url:String,size:String},components:{BrokenImage:Wa.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=/(?:\.([^.]+))?$/,a=["png","jpg"],s=e.exec(t);return s.length>=1&&a.includes(s[1])},getFavicon(t){const e=/(127\.)|(192\.168\.)|(10\.)|(172\.1[6-9]\.)|(172\.2[0-9]\.)|(172\.3[0-1]\.)|(::1$)|([fF][cCdD])|(localhost)/;if(e.test(t)){const e=t.split("/");if(e.length>=2)return`${e[0]}/${e[1]}/${e[2]}/favicon.ico`}else if(t.includes("http"))return"https://s2.googleusercontent.com/s2/favicons?domain="+t;return""},getLocalImagePath(t){return"/item-icons/"+t},getIconPath(t,e){switch(this.determineImageType(t)){case"url":return t;case"img":return this.getLocalImagePath(t);case"favicon":return this.getFavicon(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":"none":"none",e},imageNotFound(){this.broken=!0,Xa(`The path to '${this.icon}' could not be resolved`)}}},ts=Qa,es=(a("de40"),Object(w["a"])(ts,Ga,qa,!1,null,null,null)),as=es.exports,ss=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.makeClass(t.position,t.isSmall,t.isTransparent)},["newtab"===t.openingMethod?a("NewTabOpenIcon"):"sametab"===t.openingMethod?a("SameTabOpenIcon"):"iframe"===t.openingMethod?a("IframeOpenIcon"):t._e()],1)},os=[],ns=a("237e"),is=a.n(ns),rs=a("2352"),cs=a.n(rs),ls=a("1946"),us=a.n(ls),ds={name:"ItemOpenMethodIcon",props:{openingMethod:String,isSmall:Boolean,position:String,isTransparent:Boolean},methods:{makeClass(t="top right",e=!1,a=!1){return`opening-method-icon\n ${t||"top right"}\n ${e?"short":""}\n ${a?"transparent":""}`}},components:{NewTabOpenIcon:is.a,SameTabOpenIcon:cs.a,IframeOpenIcon:us.a}},ps=ds,hs=(a("699c"),Object(w["a"])(ps,ss,os,!1,null,"17201835",null)),ms=hs.exports,fs={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},data(){return{getId:this.id,customStyles:{color:this.color,background:this.backgroundColor}}},components:{Icon:as,ItemOpenMethodIcon:ms},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,delay:{show:600,hide:200}}},getUnicodeOpeningIcon(){switch(this.target){case"newtab":return'"\\f360"';case"sametab":return'"\\f24d"';case"iframe":return'"\\f2d0"';default:return'"\\f054"'}}},mounted(){this.manageTitleEllipse()}},gs=fs,vs=(a("826e"),a("f719"),Object(w["a"])(gs,Ra,Ja,!1,null,null,null)),ys=vs.exports,bs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:"collapsable "+t.checkSpanNum(t.cols,"col")+" "+t.checkSpanNum(t.rows,"row"),style:(t.color?"background: "+t.color:"")+"; "+t.sanitizeCustomStyles(t.customStyles)+";"},[a("input",{staticClass:"toggle",attrs:{id:"collapsible-"+t.uniqueKey,type:"checkbox",tabIndex:"-1"},domProps:{checked:t.getCollapseState()},on:{change:t.collapseChanged}}),a("label",{staticClass:"lbl-toggle",attrs:{for:"collapsible-"+t.uniqueKey,tabindex:"-1"}},[t.icon?a("Icon",{staticClass:"section-icon",attrs:{icon:t.icon,size:"small"}}):t._e(),a("h3",[t._v(t._s(t.title))])],1),a("div",{staticClass:"collapsible-content"},[a("div",{staticClass:"content-inner"},[t._t("default")],2)])])},Cs=[],Ss={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:as},data(){return{isOpen:!this.collapsed}},methods:{checkSpanNum(t,e){const a=4;let s=/^\d*$/.test(t)?parseInt(t,10):1;return s=s>a?a:s,`${e}-${s}`},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 a=JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE]);a[t]=e,localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(a))},collapseChanged(t){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),t.srcElement.checked)}}},ws=Ss,Is=(a("ce3f"),Object(w["a"])(ws,bs,Cs,!1,null,"3f92488c",null)),_s=Is.exports,ks=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("modal",{attrs:{name:t.name,resizable:!0,width:"80%",height:"80%"},on:{closed:function(e){return t.modalClosed()}}},[a("div",{attrs:{slot:"top-right"},on:{click:function(e){return t.hide()}},slot:"top-right"},[t._v("Close")]),a("a",{staticClass:"close-button",attrs:{title:"Close"},on:{click:function(e){return t.hide()}}},[t._v("x")]),t.url?a("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)}}}):a("div",{staticClass:"no-url"},[t._v("No URL Specified")])])},xs=[],Os={name:"IframeModal",props:{name:String},data:()=>({url:"#"}),methods:{show:function(t){this.url=t,this.$modal.show(this.name),this.$emit("modalChanged",!0)},hide:function(){this.$modal.hide(this.name)},modalClosed(){this.$emit("modalChanged",!1)}}},Es=Os,Ts=(a("eda6"),Object(w["a"])(Es,ks,xs,!1,null,null,null)),zs=Ts.exports,Ls={name:"ItemGroup",props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:_s,Item:ys,IframeModal:zs},computed:{newItemSize(){return this.displayData.itemSize||this.itemSize},isGridLayout(){return"grid"===this.displayData.layout||!(!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)}}},Ns=Ls,Ms=(a("bde7"),Object(w["a"])(Ns,Fa,Ua,!1,null,"32dc7ad3",null)),Hs=Ms.exports,Ps={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:Ka,ItemGroup:Hs},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get:()=>localStorage[p["localStorageKeys"].LAYOUT_ORIENTATION]||h.a.layout,set:function(t){localStorage.setItem(p["localStorageKeys"].LAYOUT_ORIENTATION,t),this.layout=t}},iconSize:{get:()=>localStorage[p["localStorageKeys"].ICON_SIZE]||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.-]*)*/,a=t.match(e);return a?a[1]:""},filterTiles(t){return t?t.filter(t=>{const{title:e,description:a,provider:s,url:o}=t,n=this.searchValue.toLowerCase();return e&&e.toLowerCase().includes(n)||s&&s.toLowerCase().includes(n)||a&&a.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,a)=>{t["External Stylesheet "+(a+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}},As=Ps,js=(a("bce8"),Object(w["a"])(As,q,Y,!1,null,"745f2f88",null)),Bs=js.exports;s["a"].use(G["a"]);const{sections:$s,pageInfo:Vs,appConfig:Ds}=K.a;let Ks,Fs;try{Ks=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(qs){Ks=void 0}try{Fs=JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG])}catch(qs){Fs=void 0}const Us=new G["a"]({routes:[{path:"/",name:"home",component:Bs,props:{sections:$s||[],pageInfo:Ks||Vs||p["pageInfo"],appConfig:Fs||Ds||{}},meta:{title:Vs.title||"Home Page",metaTags:[{name:"description",content:"A simple static homepage for you're server"}]}},{path:"/about",name:"about",component:()=>a.e("about").then(a.bind(null,"f820"))}]}),Rs="Speed Dial";Us.afterEach(t=>{s["a"].nextTick(()=>{document.title=t.meta.title||Rs})});var Js=Us,Gs=a("9483");Object(Gs["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)}}),s["a"].use(o["a"]),s["a"].use(i.a),s["a"].use(l["a"]),s["a"].use(d.a,p["toastedOptions"]),s["a"].component("v-select",c.a),s["a"].config.productionTip=!1,new s["a"]({router:Js,render:t=>t(J)}).$mount("#app")},5703:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("path",{attrs:{fill:"currentColor",d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}})]))}}},"570d":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("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"}})]))}}},"5b01":function(t,e,a){},"5c0b":function(t,e,a){"use strict";a("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",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"},modalNames:{CONF_EDITOR:"CONF_EDITOR",CLOUD_BACKUP:"CLOUD_BACKUP"},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"}},"5f32":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},6:function(t,e){},6401:function(t,e,a){},6780:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},"699c":function(t,e,a){"use strict";a("806e")},"6bf0":function(t,e,a){"use strict";a("082b")},7:function(t,e){},7075:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},7152:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("svg",{class:["svg-inline--fa fa-plus-circle fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"plus-circle",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M384 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm120 16c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-48 0c0-110.5-89.5-200-200-200S56 145.5 56 256s89.5 200 200 200 200-89.5 200-200z"}})]))}}},"7c09":function(t,e,a){},"7da9":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},"7dc7":function(t,e,a){"use strict";a("1e5e")},"7eb0":function(t,e,a){},"7f59":function(t,e,a){},8:function(t,e){},"806e":function(t,e,a){},"80a7":function(t,e,a){"use strict";a("7eb0")},"826e":function(t,e,a){"use strict";a("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"},"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"}},"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"},"layout":{"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 auto-fetched favicon"},"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"}}}}}}}}}')},"861a":function(t,e,a){},"8b35":function(t,e,a){},"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"}]}]}},"8e4e":function(t,e,a){},9:function(t,e){},"90ff":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("svg",{class:["svg-inline--fa fa-save fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"save",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M433.941 129.941l-83.882-83.882A48 48 0 00316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 00-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 01-6-6V86a6 6 0 016-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 011.757 4.243V426a6 6 0 01-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"}})]))}}},"922c":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},9350:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("svg",{class:["svg-inline--fa fa-digital-tachograph fa-w-20",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fal","data-icon":"digital-tachograph",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zm0 288H32V128h576v256zM80 272h208c8.84 0 16-7.16 16-16v-80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80c0 8.84 7.16 16 16 16zm8-88h192v64H88v-64zM72 360h224c4.42 0 8-3.58 8-8v-8c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v8c0 4.42 3.58 8 8 8zm272 0h224c4.42 0 8-3.58 8-8v-8c0-4.42-3.58-8-8-8H344c-4.42 0-8 3.58-8 8v8c0 4.42 3.58 8 8 8zM80 288c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H80zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16z"}})]))}}},"939b":function(t,e,a){},9635:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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(t,e,a){},"9a22":function(t,e,a){},"9c0c":function(t,e,a){},"9e50":function(t,e,a){"use strict";a("3323")},b34d:function(t,e,a){},bc00:function(t,e,a){},bce8:function(t,e,a){"use strict";a("03d0")},bd96:function(t,e,a){"use strict";a("d6b0")},bde7:function(t,e,a){"use strict";a("861a")},c134:function(t,e,a){"use strict";a("9a22")},c715:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("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"}})]))}}},cbd9:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},ce3f:function(t,e,a){"use strict";a("6401")},d0b1:function(t,e,a){"use strict";a("bc00")},d16d:function(t,e,a){"use strict";a("18dd")},d6b0:function(t,e,a){},d8c4:function(t,e,a){"use strict";a("2f3c")},d8e8:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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(t,e,a){"use strict";a("7f59")},e6a4:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},eda6:function(t,e,a){"use strict";a("1864")},ef83:function(t,e,a){},f49c:function(t,e,a){"use strict";a("f866")},f719:function(t,e,a){"use strict";a("27c1")},f866:function(t,e,a){},f9d7:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("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=app.2ee0ed11.js.map \ No newline at end of file +(function(t){function e(e){for(var s,i,r=e[0],c=e[1],l=e[2],u=0,p=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(t)}},E=O,T=(a("d16d"),Object(w["a"])(E,k,x,!1,null,"68c1bd5c",null)),z=T.exports,L={name:"Header",components:{PageTitle:_,Nav:z},props:{pageInfo:Object},data(){return{hiddenComponents:this.pageInfo.hiddenComponents||{},titleVisible:p["visibleComponents"].pageTitle,navVisible:p["visibleComponents"].navigation}}},N=L,M=(a("4239"),Object(w["a"])(N,g,v,!1,null,"70a33270",null)),H=M.exports,P=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.text&&""!==t.text?a("footer",[t._v(t._s(t.text))]):a("footer",[t._v(" Developed by "),a("a",{attrs:{href:t.authorUrl}},[t._v(t._s(t.authorName))]),t._v(". Licensed under "),a("a",{attrs:{href:t.licenseUrl}},[t._v(t._s(t.license))]),t._v(" "+t._s(t.showCopyright?"©":"")+" "+t._s(t.date)+". Get the "),a("a",{attrs:{href:t.repoUrl}},[t._v("Source Code")]),t._v(". ")])},A=[],j={name:"Footer",props:{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/panel"},text:String}},B=j,$=(a("07b7"),Object(w["a"])(B,P,A,!1,null,"668274c3",null)),V=$.exports,D=a("8b8e"),K=a.n(D),F={name:"app",components:{Header:H,Footer:V},data:()=>({showFooter:h.a.visibleComponents.footer}),computed:{pageInfo(){return this.getPageInfo(K.a.pageInfo)},appConfig(){return localStorage[p["localStorageKeys"].APP_CONFIG]?JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG]):K.a.appConfig?K.a.appConfig:h.a.appConfig}},methods:{getPageInfo(t){const e=h.a.pageInfo;let a;try{a=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(s){a={}}return t?{title:a.title||t.title||e.title,description:a.description||t.description||e.description,navLinks:a.navLinks||t.navLinks||e.navLinks,footerText:a.footerText||t.footerText||e.footerText}:e},getFooterText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},injectCustomStyles(t){const e=document.createElement("style");e.textContent=t,document.head.append(e)}},mounted(){if(this.appConfig.customCss){const t=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(t)}}},U=F,R=(a("5c0b"),Object(w["a"])(U,m,f,!1,null,null,null)),J=R.exports,G=a("8c4f"),q=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"home",style:t.getBackgroundImage()},[a("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)?a("div",{class:"item-group-container orientation-"+t.layout+" item-size-"+t.itemSizeBound},t._l(t.getSections(t.sections),(function(e,s){return a("ItemGroup",{key:s,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-"+s,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()?a("div",{staticClass:"no-data"},[t._v(" "+t._s(t.searchValue?"No Search Results":"No Data Configured")+" ")]):t._e()],1)},Y=[],W=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("section",[t.searchVisible?a("SearchBar",{ref:"SearchBar",attrs:{active:!t.modalOpen},on:{"user-is-searchin":t.userIsTypingSomething}}):t._e(),a("div",{staticClass:"options-outer"},[t.settingsVisible?a("div",{staticClass:"options-container"},[a("ThemeSelector",{attrs:{themes:t.availableThemes,confTheme:t.getInitialTheme(),userThemes:t.getUserThemes()}}),a("LayoutSelector",{attrs:{displayLayout:t.displayLayout},on:{layoutUpdated:t.updateDisplayLayout}}),a("ItemSizeSelector",{attrs:{iconSize:t.iconSize},on:{iconSizeUpdated:t.updateIconSize}}),a("ConfigLauncher",{attrs:{sections:t.sections,pageInfo:t.pageInfo,appConfig:t.appConfig},on:{modalChanged:t.modalChanged}})],1):t._e(),a("div",{class:"show-hide-container "+(t.settingsVisible?"hide-btn":"show-btn")},[a("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?a("IconClose"):a("IconOpen")],1)])]),a("KeyboardShortcutInfo")],1)},Z=[],X=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("form",[a("label",{attrs:{for:"filter-tiles"}},[t._v("Search")]),a("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?a("i",{staticClass:"clear-search",attrs:{title:"Clear search"},on:{click:t.clearFilterInput}},[t._v("x")]):t._e()])},Q=[];class tt{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=tt.goToPrevious(this.index):39===t?this.index+=1:40===t&&(this.index=tt.goToNext(this.index)),this.index=tt.getSafeElementIndex(this.index),tt.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(t){const e=tt.getNumResults();return t<0?e-1:t>=e?0:t}static selectItemByIndex(t){return t>=0&&t<=tt.getNumResults()?document.getElementsByClassName("item")[t]:[document.getElementsByClassName("item")]}static findPreviousRow(t){const e=(t,e)=>tt.selectItemByIndex(t).offsetTop===e,a=(t,s)=>t>=tt.getNumResults()?a(0,s):e(t,s)?a(t-1,s):t,s=tt.selectItemByIndex(t).offsetTop;return a(t,s)}static goToPrevious(t){const e=(t,e)=>tt.selectItemByIndex(t).offsetToptt.selectItemByIndex(t).offsetTop===e,a=(t,s)=>t>=tt.getNumResults()?a(0,s):e(t,s)?a(t+1,s):t,s=tt.selectItemByIndex(t).offsetTop;return a(t,s)}static goToNext(t){const e=(t,e)=>tt.selectItemByIndex(t).offsetTop>tt.selectItemByIndex(e).offsetTop,a=tt.findNextRow(t),s=a-t,o=a-tt.findPreviousRow(t)-1,n=e(t,a)?0:o-s;return a+n}}var et={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new tt}},mounted(){window.addEventListener("keydown",t=>{const e=document.activeElement.id,{key:a,keyCode:s}=t;this.active&&(/^[a-zA-Z]$/.test(a)&&"filter-tiles"!==e?(this.$refs.filter.focus(),this.userIsTypingSomething()):s>=37&&s<=40?this.akn.arrowNavigation(s):27===s&&this.clearFilterInput())})},methods:{userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()}}},at=et,st=(a("d8c4"),Object(w["a"])(at,X,Q,!1,null,"4039a28b",null)),ot=st.exports,nt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"config-options"},[a("span",[t._v("Config")]),a("div",{staticClass:"config-buttons"},[a("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()}}}),a("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),a("modal",{attrs:{name:t.modalNames.CONF_EDITOR,resizable:!0,width:"60%",height:"80%"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[a("ConfigContainer",{attrs:{config:t.combineConfig()}})],1),a("modal",{attrs:{name:t.modalNames.CLOUD_BACKUP,resizable:!0,width:"65%",height:"60%"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[a("CloudBackupRestore",{attrs:{config:t.combineConfig()}})],1)],1)},it=[],rt=a("35c3"),ct=a.n(rt),lt=a("6780"),ut=a.n(lt),dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Tabs",{ref:"tabView",attrs:{navAuto:!0,name:"Add Item"}},[a("TabItem",{staticClass:"main-tab",attrs:{name:"Config"}},[a("div",{staticClass:"main-options-container"},[a("h2",[t._v("Configuration Options")]),a("a",{staticClass:"hyperlink-wrapper",attrs:{href:"/conf.yml",download:""}},[a("button",{staticClass:"config-button center"},[a("DownloadIcon",{staticClass:"button-icon"}),t._v(" Download Config ")],1)]),a("button",{staticClass:"config-button center",on:{click:function(e){return t.goToEdit()}}},[a("EditIcon",{staticClass:"button-icon"}),t._v(" Edit Sections ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.goToMetaEdit()}}},[a("MetaDataIcon",{staticClass:"button-icon"}),t._v(" Edit Meta Data ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.goToCustomCss()}}},[a("CustomCssIcon",{staticClass:"button-icon"}),t._v(" Edit Custom CSS ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.openCloudSync()}}},[a("CloudIcon",{staticClass:"button-icon"}),t._v(" "+t._s(t.backupId?"Edit Cloud Sync":"Enable Cloud Sync")+" ")],1),a("button",{staticClass:"config-button center",on:{click:function(e){return t.resetLocalSettings()}}},[a("DeleteIcon",{staticClass:"button-icon"}),t._v(" Reset Local Settings ")],1),a("div",{staticClass:"config-note"},[a("p",{staticClass:"sub-title"},[t._v("Note:")]),a("span",[t._v(" All changes made here are stored locally. To apply globally, either export your config into your conf.yml file, or use the cloud backup/ restore feature. ")])])])]),a("TabItem",{staticClass:"code-container",attrs:{name:"Backup Config"}},[a("pre",{attrs:{id:"conf-yaml"}},[t._v(t._s(this.jsonParser(this.config)))]),a("div",{staticClass:"yaml-action-buttons"},[a("h2",[t._v("Actions")]),a("a",{staticClass:"yaml-button download",attrs:{href:"/conf.yml",download:""}},[t._v("Download Config")]),a("a",{staticClass:"yaml-button copy",on:{click:function(e){return t.copyConfigToClipboard()}}},[t._v("Copy Config")]),a("a",{staticClass:"yaml-button reset",on:{click:function(e){return t.resetLocalSettings()}}},[t._v("Reset Config")])])]),a("TabItem",{attrs:{name:"Edit Sections"}},[a("JsonEditor",{attrs:{config:t.config}})],1),a("TabItem",{attrs:{name:"Edit Site Meta"}},[a("EditSiteMeta",{attrs:{config:t.config}})],1),a("TabItem",{attrs:{name:"Custom Styles"}},[a("CustomCssEditor",{attrs:{config:t.config,initialCss:"hello"}})],1)],1)},pt=[],ht=a("1020"),mt=a.n(ht),ft=a("2e7b"),gt=a.n(ft),vt=(a("1d89"),a("d97e"));const yt=t=>t.split("\n").map(t=>t.trimRight()).join("\n"),bt=t=>{throw new Error("Error in Json to YAML conversion: "+t)},Ct=t=>{let e="";const a={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 s="";return 0===t.length?(s+="[]",s):(e=e.replace(/$/," "),t.forEach(t=>{const o=a[Object(vt["typeOf"])(t)];o||bt(Object(vt["typeOf"])(t)),s+=`\n${e}- ${o(t,!0)}`}),e=e.replace(/ {2}/,""),s)},object(t,s,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=a[Object(vt["typeOf"])(r)];"undefined"!==typeof r&&(c||bt(Object(vt["typeOf"])(r)),s&&0===i||(n+="\n"+e),n+=`${o}: ${c(r)}`)}),e=e.replace(/ {2}/,""),n)},function(){return"[object Function]"}};return yt(a[Object(vt["typeOf"])(t)](t,!0,!0)+"\n")};var St=Ct,wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"site-meta-container"},[a("h2",[t._v("Edit Site Meta")]),a("div",{staticClass:"form"},[a("div",{staticClass:"row"},[a("span",[t._v("Title")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.formElements.title,expression:"formElements.title"}],domProps:{value:t.formElements.title},on:{input:function(e){e.target.composing||t.$set(t.formElements,"title",e.target.value)}}})]),a("div",{staticClass:"row"},[a("span",[t._v("Description")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.formElements.description,expression:"formElements.description"}],domProps:{value:t.formElements.description},on:{input:function(e){e.target.composing||t.$set(t.formElements,"description",e.target.value)}}})]),a("div",{staticClass:"row"},[a("span",[t._v("Footer Text")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.formElements.footerText,expression:"formElements.footerText"}],domProps:{value:t.formElements.footerText},on:{input:function(e){e.target.composing||t.$set(t.formElements,"footerText",e.target.value)}}})])]),a("div",{staticClass:"form"},[a("h2",[t._v("Nav Bar Links")]),t._l(t.formElements.navLinks,(function(e,s){return a("div",{key:s,staticClass:"add-nav-bar-link"},[a("div",{staticClass:"row"},[a("span",[t._v("Link Text")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.title,expression:"link.title"}],domProps:{value:e.title},on:{input:function(a){a.target.composing||t.$set(e,"title",a.target.value)}}})]),a("div",{staticClass:"row"},[a("span",[t._v("Link URL")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.path,expression:"link.path"}],domProps:{value:e.path},on:{input:function(a){a.target.composing||t.$set(e,"path",a.target.value)}}})])])})),a("button",{staticClass:"add-new-link",on:{click:function(e){return t.addNavLinkRow()}}},[a("AddNewIcon"),t._v(" Add New Link ")],1)],2),a("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[a("SaveConfigIcon"),t._v(" Save Changes ")],1)])},It=[],_t=a("7152"),kt=a.n(_t),xt=a("90ff"),Ot=a.n(xt),Et={name:"EditSiteMeta",props:{config:Object},components:{AddNewIcon:kt.a,SaveConfigIcon:Ot.a},methods:{save(){const t={...this.config.pageInfo};t.title=this.formElements.title,t.description=this.formElements.description,t.footerText=this.formElements.footerText,this.formElements.navLinks&&(t.navLinks=this.formElements.navLinks.filter(t=>""!==t.title)),localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t)),this.$toasted.show("Changes saved succesfully"),setTimeout(()=>{location.reload()},1500)},addNavLinkRow(){this.formElements.navLinks.push({title:"",path:""})}},data(){return{formElements:{title:this.config.pageInfo.title,description:this.config.pageInfo.description,footerText:this.config.pageInfo.footerText,navLinks:this.config.pageInfo.navLinks||[]}}}},Tt=Et,zt=(a("51b7"),Object(w["a"])(Tt,wt,It,!1,null,"772067bb",null)),Lt=zt.exports,Nt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"json-editor-outer"},[a("v-jsoneditor",{attrs:{options:t.options,height:"580px"},model:{value:t.jsonData,callback:function(e){t.jsonData=e},expression:"jsonData"}}),a("button",{class:"save-button "+(t.isValid?"":"err"),on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),a("p",{staticClass:"errors"},[a("ul",[t._l(t.errorMessages,(function(e,s){return a("li",{key:s,class:"type-"+e.type},[t._v(" "+t._s(e.msg)+" ")])})),t.errorMessages.length<1?a("li",{staticClass:"type-valid"},[t._v(" Config is Valid ")]):t._e()],2)]),t._m(0)],1)},Mt=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("p",{staticClass:"note"},[t._v(" It is recommend to backup your existing confiruration before making any changes. "),a("br"),t._v(" Remember that these changes are only applied locally, and will need to be exported to your conf.yml ")])}],Ht=a("bcb2"),Pt=a.n(Ht),At=a("831b"),jt={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Pt.a},data(){return{jsonData:this.config,errorMessages:[],options:{schema:At,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors}}},computed:{isValid(){return this.errorMessages.length<1}},methods:{save(){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.$toasted.show("Changes saved succesfully")},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}}},Bt=jt,$t=(a("80a7"),Object(w["a"])(Bt,Nt,Mt,!1,null,null,null)),Vt=$t.exports,Dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"json-editor-outer"},[a("prism-editor",{staticClass:"my-editor",attrs:{highlight:t.highlighter,"line-numbers":""},model:{value:t.customCss,callback:function(e){t.customCss=e},expression:"customCss"}}),a("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),t._m(0)],1)},Kt=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("p",{staticClass:"quick-note"},[a("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 ")])}],Ft=a("e57a"),Ut=a("8c7a"),Rt=(a("6605"),a("dff1"),a("cabf"),{name:"JsonEditor",props:{config:Object},components:{PrismEditor:Ft["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,""),a=document.createElement("style");a.textContent=e,document.head.append(a)},highlighter(t){return Object(Ut["highlight"])(t,Ut["languages"].css)}}}),Jt=Rt,Gt=(a("9e50"),Object(w["a"])(Jt,Dt,Kt,!1,null,null,null)),qt=Gt.exports,Yt=a("cbd9"),Wt=a.n(Yt),Zt=a("0278"),Xt=a.n(Zt),Qt=a("e7fa"),te=a.n(Qt),ee=a("9350"),ae=a.n(ee),se=a("7da9"),oe=a.n(se),ne={name:"ConfigContainer",data(){return{jsonParser:St,backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},props:{config:Object},computed:{sections:function(){return this.config.sections}},components:{EditSiteMeta:Lt,JsonEditor:Vt,CustomCssEditor:qt,DownloadIcon:Wt.a,DeleteIcon:Xt.a,EditIcon:te.a,CloudIcon:ut.a,MetaDataIcon:ae.a,CustomCssIcon:oe.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})},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()},1900))}},mounted(){mt.a.registerLanguage("yaml",gt.a);const t=mt.a.highlight(this.jsonParser(this.config),{language:"yaml"}).value;document.getElementById("conf-yaml").innerHTML=t}},ie=ne,re=(a("033d"),a("1d47"),Object(w["a"])(ie,dt,pt,!1,null,"578494cc",null)),ce=re.exports,le=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"cloud-backup-restore-wrapper"},[t._m(0),a("div",{staticClass:"section backup-section"},[t.backupId?a("h3",[t._v("Update Backup")]):a("h3",[t._v("Make a Backup")]),a("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"}}),a("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[a("IconBackup")]},proxy:!0}])}),t.backupId?a("div",{staticClass:"results-view"},[a("span",{staticClass:"backup-id-label"},[t._v("Your Backup ID: ")]),a("pre",{staticClass:"backup-id-value"},[t._v(t._s(t.backupId))]),a("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),a("div",{staticClass:"section restore-section"},[a("h3",[t._v("Restore a Backup")]),a("Input",{attrs:{name:"restore-code",label:"Restore ID"},model:{value:t.restoreCode,callback:function(e){t.restoreCode=e},expression:"restoreCode"}}),a("Input",{attrs:{name:"restore-password",label:"Password",type:"password"},model:{value:t.restorePassword,callback:function(e){t.restorePassword=e},expression:"restorePassword"}}),a("Button",{attrs:{click:t.restoreBackup},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Restore")]},proxy:!0},{key:"icon",fn:function(){return[a("IconRestore")]},proxy:!0}])})],1)])},ue=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"section intro"},[a("h2",[t._v("Cloud Backup & Restore")]),a("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. "),a("br"),a("br"),t._v(" All data is fully end-to-end encrypted with AES, using your password as the key. "),a("br"),t._v(" For more info, please see the "),a("a",{attrs:{href:"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md"}},[t._v("docs")])])])}],de=a("94f8"),pe=a.n(de),he=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("button",{on:{click:function(e){return t.click()}}},[t._t("text"),t._t("icon")],2)},me=[],fe={name:"Button",props:{text:String,click:Function}},ge=fe,ve=(a("6bf0"),Object(w["a"])(ge,he,me,!1,null,"115c4d8d",null)),ye=ve.exports,be=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:"input-container "+t.layout},[t.label?a("label",{attrs:{for:"name"}},[t._v(t._s(t.label))]):t._e(),a("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)}}})])},Ce=[],Se={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)}}},we=Se,Ie=(a("2d25"),Object(w["a"])(we,be,Ce,!1,null,"5df13ed2",null)),_e=Ie.exports,ke=a("3a1e"),xe=a.n(ke),Oe=a("e6a4"),Ee=a.n(Oe),Te=a("c198"),ze=a.n(Te),Le=a("f8d5"),Ne=a.n(Le),Me=a("bc3a"),He=a.n(Me);const Pe=p["backupEndpoint"],Ae=(t,e)=>{const a=JSON.stringify(t),s=ze.a.encrypt(a,e);return s.toString()},je=(t,e)=>ze.a.decrypt(t,e).toString(Ne.a),Be=t=>pe()(t).toString().slice(0,14),$e=(t,e)=>He.a.post(Pe,{userData:Ae(t,e),subHash:Be(e)}),Ve=(t,e,a)=>He.a.put(Pe,{backupId:a,userData:Ae(t,e),subHash:Be(e)}),De=t=>Object.entries(t).map(t=>t.map(encodeURIComponent).join("=")).join("&"),Ke=(t,e)=>{const a=De({backupId:t,subHash:Be(e)}),s=`${Pe}/?${a}`;return new Promise((t,a)=>{He.a.get(s).then(s=>{if(!s.data||s.data.errorMsg)a(s.data.errorMsg||"Error");else{const n=je(s.data.userData.userData,e);try{t(JSON.parse(n))}catch(o){a(o)}}})})};var Fe={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},components:{Button:ye,Input:_e,IconBackup:xe.a,IconRestore:Ee.a},methods:{restoreBackup(){Ke(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(){$e(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(){Ve(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 pe()(t).toString()},setBackupIdLocally(t,e){this.backupId=t;const a=this.makeHash(e);localStorage.setItem(p["localStorageKeys"].BACKUP_ID,t),localStorage.setItem(p["localStorageKeys"].BACKUP_HASH,a)}}},Ue=Fe,Re=(a("c134"),Object(w["a"])(Ue,le,ue,!1,null,"4f7aa887",null)),Je=Re.exports,Ge={name:"ConfigLauncher",data(){return{modalNames:p["modalNames"]}},components:{IconSpanner:ct.a,IconCloud:ut.a,ConfigContainer:ce,CloudBackupRestore:Je},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}}}},qe=Ge,Ye=(a("f49c"),a("192d"),Object(w["a"])(qe,nt,it,!1,null,"698f4f02",null)),We=Ye.exports,Ze=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.themes?a("div",{staticClass:"theme-selector-section"},[a("span",{staticClass:"theme-label"},[t._v("Theme")]),a("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()},Xe=[];const Qe=function(){const t=t=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=t,document.head.appendChild(e),new Promise((t,a)=>{e.onload=e=>{const{sheet:a}=e.target;a.disabled=!0,t(a)},e.onerror=a})},e=(t,e)=>{const a=t;if(e&&!t[e])throw new Error(`Theme: '${e}' does not exist.`);Object.keys(t).forEach(t=>{a[t].disabled=t!==e})},a={};return{add(e,s){return t(s).then(t=>{a[e]=t})},set theme(t){e(a,t)},get theme(){return Object.keys(a).find(t=>!a[t].disabled)}}};var ta=Qe,ea={name:"ThemeSelector",props:{themes:Object,confTheme:String,userThemes:Array},watch:{selectedTheme(t){this.updateTheme(t)}},data(){return{selectedTheme:this.getInitialTheme(),themeHelper:new ta,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")}}},aa=ea,sa=(a("4ade"),Object(w["a"])(aa,Ze,Xe,!1,null,null,null)),oa=sa.exports,na=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("span",{staticClass:"options-label"},[t._v("Layout")]),a("div",{staticClass:"display-options"},[a("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")}}}),a("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")}}}),a("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)])},ia=[],ra=a("c715"),ca=a.n(ra),la=a("570d"),ua=a.n(la),da=a("f9d7"),pa=a.n(da),ha={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:ca.a,IconHorizontal:ua.a,IconVertical:pa.a},methods:{updateDisplayLayout(t){this.$emit("layoutUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},ma=ha,fa=(a("7dc7"),Object(w["a"])(ma,na,ia,!1,null,"c819d738",null)),ga=fa.exports,va=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("span",{staticClass:"options-label"},[t._v("Icon Size")]),a("div",{staticClass:"display-options"},[a("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")}}}),a("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")}}}),a("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)])},ya=[],ba=a("d8e8"),Ca=a.n(ba),Sa=a("7075"),wa=a.n(Sa),Ia=a("922c"),_a=a.n(Ia),ka={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:Ca.a,IconMedium:wa.a,IconLarge:_a.a},methods:{updateIconSize(t){this.$emit("iconSizeUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},xa=ka,Oa=(a("47d9"),Object(w["a"])(xa,va,ya,!1,null,"58966274",null)),Ea=Oa.exports,Ta=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("transition",{attrs:{name:"slide-fade"}},[t.shouldHide?t._e():a("div",{staticClass:"kb-sc-info"},[a("h5",[t._v("There are keyboard shortcuts! ⌨️🙌")]),a("div",{staticClass:"close",attrs:{title:"Hide forever [Esc]"},on:{click:function(e){return t.hideWelcomeHelper()}}},[t._v("x")]),a("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 🥳 ")])])])},za=[],La={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))}},Na=La,Ma=(a("5509"),Object(w["a"])(Na,Ta,za,!1,null,"080c9684",null)),Ha=Ma.exports,Pa=a("5703"),Aa=a.n(Pa),ja=a("5f32"),Ba=a.n(ja),$a={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,availableThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:ot,ConfigLauncher:We,ThemeSelector:oa,LayoutSelector:ga,ItemSizeSelector:Ea,KeyboardShortcutInfo:Ha,IconOpen:Aa.a,IconClose:Ba.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||""},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()}}},Va=$a,Da=(a("d0b1"),Object(w["a"])(Va,W,Z,!1,null,"d4f70440",null)),Ka=Da.exports,Fa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("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?a("div",{staticClass:"no-items"},[t._v(" No Items to Show Yet ")]):a("div",{class:"there-are-items "+(t.isGridLayout?"item-group-grid":""),style:t.gridStyle},[t._l(t.items,(function(e,s){return a("Item",{key:s+"_"+t.makeId(e.title),attrs:{id:s+"_"+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},on:{itemClicked:function(e){return t.$emit("itemClicked")},triggerModal:t.triggerModal}})})),a("div",{ref:"modalContainer"})],2),a("IframeModal",{ref:"iframeModal-"+t.groupId,attrs:{name:"iframeModal-"+t.groupId},on:{closed:function(e){return t.$emit("itemClicked")},modalChanged:t.modalChanged}})],1)},Ua=[],Ra=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("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}},[a("div",{class:"tile-title "+(t.icon?"":"bounce"),attrs:{id:"tile-"+t.id}},[a("span",{staticClass:"text"},[t._v(t._s(t.title))]),a("div",{staticClass:"overflow-dots"},[t._v("...")]),a("p",{staticClass:"description"},[t._v(t._s(t.description))])]),a("Icon",{staticClass:"bounce",style:t.customStyles,attrs:{icon:t.icon,url:t.url,size:t.itemSize,color:t.color}}),a("ItemOpenMethodIcon",{staticClass:"opening-method-icon",attrs:{isSmall:!t.icon,openingMethod:t.target,position:"medium"===t.itemSize?"bottom right":"top right"}})],1)},Ja=[],Ga=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",["font-awesome"===t.iconType?a("i",{class:t.icon+" "+t.size}):t.icon?a("img",{class:"tile-icon "+t.size+" "+(t.broken?"broken":""),attrs:{src:t.iconPath},on:{error:t.imageNotFound}}):t._e(),t.broken?a("BrokenImage",{staticClass:"missing-image"}):t._e()],1)},qa=[],Ya=a("9635"),Wa=a.n(Ya);const Za=function(t){console.warn(t)};var Xa=Za,Qa={name:"Icon",props:{icon:String,url:String,size:String},components:{BrokenImage:Wa.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=/(?:\.([^.]+))?$/,a=["png","jpg"],s=e.exec(t);return s.length>=1&&a.includes(s[1])},getFavicon(t){const e=/(127\.)|(192\.168\.)|(10\.)|(172\.1[6-9]\.)|(172\.2[0-9]\.)|(172\.3[0-1]\.)|(::1$)|([fF][cCdD])|(localhost)/;if(e.test(t)){const e=t.split("/");if(e.length>=2)return`${e[0]}/${e[1]}/${e[2]}/favicon.ico`}else if(t.includes("http"))return"https://s2.googleusercontent.com/s2/favicons?domain="+t;return""},getLocalImagePath(t){return"/item-icons/"+t},getIconPath(t,e){switch(this.determineImageType(t)){case"url":return t;case"img":return this.getLocalImagePath(t);case"favicon":return this.getFavicon(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":"none":"none",e},imageNotFound(){this.broken=!0,Xa(`The path to '${this.icon}' could not be resolved`)}}},ts=Qa,es=(a("de40"),Object(w["a"])(ts,Ga,qa,!1,null,null,null)),as=es.exports,ss=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.makeClass(t.position,t.isSmall,t.isTransparent)},["newtab"===t.openingMethod?a("NewTabOpenIcon"):"sametab"===t.openingMethod?a("SameTabOpenIcon"):"iframe"===t.openingMethod?a("IframeOpenIcon"):t._e()],1)},os=[],ns=a("237e"),is=a.n(ns),rs=a("2352"),cs=a.n(rs),ls=a("1946"),us=a.n(ls),ds={name:"ItemOpenMethodIcon",props:{openingMethod:String,isSmall:Boolean,position:String,isTransparent:Boolean},methods:{makeClass(t="top right",e=!1,a=!1){return`opening-method-icon\n ${t||"top right"}\n ${e?"short":""}\n ${a?"transparent":""}`}},components:{NewTabOpenIcon:is.a,SameTabOpenIcon:cs.a,IframeOpenIcon:us.a}},ps=ds,hs=(a("699c"),Object(w["a"])(ps,ss,os,!1,null,"17201835",null)),ms=hs.exports,fs={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},data(){return{getId:this.id,customStyles:{color:this.color,background:this.backgroundColor}}},components:{Icon:as,ItemOpenMethodIcon:ms},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,delay:{show:600,hide:200}}},getUnicodeOpeningIcon(){switch(this.target){case"newtab":return'"\\f360"';case"sametab":return'"\\f24d"';case"iframe":return'"\\f2d0"';default:return'"\\f054"'}}},mounted(){this.manageTitleEllipse()}},gs=fs,vs=(a("826e"),a("f719"),Object(w["a"])(gs,Ra,Ja,!1,null,null,null)),ys=vs.exports,bs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:"collapsable "+t.checkSpanNum(t.cols,"col")+" "+t.checkSpanNum(t.rows,"row"),style:(t.color?"background: "+t.color:"")+"; "+t.sanitizeCustomStyles(t.customStyles)+";"},[a("input",{staticClass:"toggle",attrs:{id:"collapsible-"+t.uniqueKey,type:"checkbox",tabIndex:"-1"},domProps:{checked:t.getCollapseState()},on:{change:t.collapseChanged}}),a("label",{staticClass:"lbl-toggle",attrs:{for:"collapsible-"+t.uniqueKey,tabindex:"-1"}},[t.icon?a("Icon",{staticClass:"section-icon",attrs:{icon:t.icon,size:"small"}}):t._e(),a("h3",[t._v(t._s(t.title))])],1),a("div",{staticClass:"collapsible-content"},[a("div",{staticClass:"content-inner"},[t._t("default")],2)])])},Cs=[],Ss={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:as},data(){return{isOpen:!this.collapsed}},methods:{checkSpanNum(t,e){const a=4;let s=/^\d*$/.test(t)?parseInt(t,10):1;return s=s>a?a:s,`${e}-${s}`},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 a=JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE]);a[t]=e,localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(a))},collapseChanged(t){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),t.srcElement.checked)}}},ws=Ss,Is=(a("ce3f"),Object(w["a"])(ws,bs,Cs,!1,null,"3f92488c",null)),_s=Is.exports,ks=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("modal",{attrs:{name:t.name,resizable:!0,width:"80%",height:"80%"},on:{closed:function(e){return t.modalClosed()}}},[a("div",{attrs:{slot:"top-right"},on:{click:function(e){return t.hide()}},slot:"top-right"},[t._v("Close")]),a("a",{staticClass:"close-button",attrs:{title:"Close"},on:{click:function(e){return t.hide()}}},[t._v("x")]),t.url?a("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)}}}):a("div",{staticClass:"no-url"},[t._v("No URL Specified")])])},xs=[],Os={name:"IframeModal",props:{name:String},data:()=>({url:"#"}),methods:{show:function(t){this.url=t,this.$modal.show(this.name),this.$emit("modalChanged",!0)},hide:function(){this.$modal.hide(this.name)},modalClosed(){this.$emit("modalChanged",!1)}}},Es=Os,Ts=(a("eda6"),Object(w["a"])(Es,ks,xs,!1,null,null,null)),zs=Ts.exports,Ls={name:"ItemGroup",props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:_s,Item:ys,IframeModal:zs},computed:{newItemSize(){return this.displayData.itemSize||this.itemSize},isGridLayout(){return"grid"===this.displayData.layout||!(!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)}}},Ns=Ls,Ms=(a("bde7"),Object(w["a"])(Ns,Fa,Ua,!1,null,"32dc7ad3",null)),Hs=Ms.exports,Ps={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:Ka,ItemGroup:Hs},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get:()=>localStorage[p["localStorageKeys"].LAYOUT_ORIENTATION]||h.a.layout,set:function(t){localStorage.setItem(p["localStorageKeys"].LAYOUT_ORIENTATION,t),this.layout=t}},iconSize:{get:()=>localStorage[p["localStorageKeys"].ICON_SIZE]||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.-]*)*/,a=t.match(e);return a?a[1]:""},filterTiles(t){return t?t.filter(t=>{const{title:e,description:a,provider:s,url:o}=t,n=this.searchValue.toLowerCase();return e&&e.toLowerCase().includes(n)||s&&s.toLowerCase().includes(n)||a&&a.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,a)=>{t["External Stylesheet "+(a+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}},As=Ps,js=(a("bce8"),Object(w["a"])(As,q,Y,!1,null,"745f2f88",null)),Bs=js.exports;s["a"].use(G["a"]);const{sections:$s,pageInfo:Vs,appConfig:Ds}=K.a;let Ks,Fs;try{Ks=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(qs){Ks=void 0}try{Fs=JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG])}catch(qs){Fs=void 0}const Us=new G["a"]({routes:[{path:"/",name:"home",component:Bs,props:{sections:$s||[],pageInfo:Ks||Vs||p["pageInfo"],appConfig:Fs||Ds||{}},meta:{title:Vs.title||"Home Page",metaTags:[{name:"description",content:"A simple static homepage for you're server"}]}},{path:"/about",name:"about",component:()=>a.e("about").then(a.bind(null,"f820"))}]}),Rs="Speed Dial";Us.afterEach(t=>{s["a"].nextTick(()=>{document.title=t.meta.title||Rs})});var Js=Us,Gs=a("9483");Object(Gs["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)}}),s["a"].use(o["a"]),s["a"].use(i.a),s["a"].use(l["a"]),s["a"].use(d.a,p["toastedOptions"]),s["a"].component("v-select",c.a),s["a"].config.productionTip=!1,new s["a"]({router:Js,render:t=>t(J)}).$mount("#app")},5703:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("path",{attrs:{fill:"currentColor",d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}})]))}}},"570d":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("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"}})]))}}},"5b01":function(t,e,a){},"5c0b":function(t,e,a){"use strict";a("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",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"},modalNames:{CONF_EDITOR:"CONF_EDITOR",CLOUD_BACKUP:"CLOUD_BACKUP"},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"}},"5f32":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},6:function(t,e){},6401:function(t,e,a){},6780:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},"699c":function(t,e,a){"use strict";a("806e")},"6bf0":function(t,e,a){"use strict";a("082b")},7:function(t,e){},7075:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},7152:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("svg",{class:["svg-inline--fa fa-plus-circle fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"plus-circle",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M384 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm120 16c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-48 0c0-110.5-89.5-200-200-200S56 145.5 56 256s89.5 200 200 200 200-89.5 200-200z"}})]))}}},"7c09":function(t,e,a){},"7da9":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},"7dc7":function(t,e,a){"use strict";a("1e5e")},"7eb0":function(t,e,a){},"7f59":function(t,e,a){},8:function(t,e){},"806e":function(t,e,a){},"80a7":function(t,e,a){"use strict";a("7eb0")},"826e":function(t,e,a){"use strict";a("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"},"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"}},"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"},"layout":{"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 auto-fetched favicon"},"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"}}}}}}}}}')},"861a":function(t,e,a){},"8b35":function(t,e,a){},"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"}]}]}},"8e4e":function(t,e,a){},9:function(t,e){},"90ff":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("svg",{class:["svg-inline--fa fa-save fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"save",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M433.941 129.941l-83.882-83.882A48 48 0 00316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 00-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 01-6-6V86a6 6 0 016-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 011.757 4.243V426a6 6 0 01-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"}})]))}}},"922c":function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},9350:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("svg",{class:["svg-inline--fa fa-digital-tachograph fa-w-20",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fal","data-icon":"digital-tachograph",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},u),...d},n.concat([a("path",{attrs:{fill:"currentColor",d:"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zm0 288H32V128h576v256zM80 272h208c8.84 0 16-7.16 16-16v-80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80c0 8.84 7.16 16 16 16zm8-88h192v64H88v-64zM72 360h224c4.42 0 8-3.58 8-8v-8c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v8c0 4.42 3.58 8 8 8zm272 0h224c4.42 0 8-3.58 8-8v-8c0-4.42-3.58-8-8-8H344c-4.42 0-8 3.58-8 8v8c0 4.42 3.58 8 8 8zM80 288c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H80zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16z"}})]))}}},"939b":function(t,e,a){},9635:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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(t,e,a){},"9a22":function(t,e,a){},"9c0c":function(t,e,a){},"9e50":function(t,e,a){"use strict";a("3323")},b34d:function(t,e,a){},bc00:function(t,e,a){},bce8:function(t,e,a){"use strict";a("03d0")},bd96:function(t,e,a){"use strict";a("d6b0")},bde7:function(t,e,a){"use strict";a("861a")},c134:function(t,e,a){"use strict";a("9a22")},c715:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("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"}})]))}}},cbd9:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},ce3f:function(t,e,a){"use strict";a("6401")},d0b1:function(t,e,a){"use strict";a("bc00")},d16d:function(t,e,a){"use strict";a("18dd")},d6b0:function(t,e,a){},d8c4:function(t,e,a){"use strict";a("2f3c")},d8e8:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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(t,e,a){"use strict";a("7f59")},e6a4:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([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"}})]))}}},eda6:function(t,e,a){"use strict";a("1864")},ef83:function(t,e,a){},f49c:function(t,e,a){"use strict";a("f866")},f719:function(t,e,a){"use strict";a("27c1")},f866:function(t,e,a){},f9d7:function(t,e){t.exports={functional:!0,render(t,e){const{_c:a,_v:s,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return a("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([a("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=app.5b029f07.js.map \ No newline at end of file diff --git a/js/app.2ee0ed11.js.map b/js/app.5b029f07.js.map similarity index 99% rename from js/app.2ee0ed11.js.map rename to js/app.5b029f07.js.map index bcfbeef1..8dfc31f0 100644 --- a/js/app.2ee0ed11.js.map +++ b/js/app.5b029f07.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/interface-icons/config-delete-local.svg","webpack:///./src/components/Configuration/ConfigContainer.vue?28e9","webpack:///./src/components/PageStrcture/Footer.vue?4174","webpack:///./src/components/Settings/ConfigLauncher.vue?0b05","webpack:///./src/assets/interface-icons/open-iframe.svg","webpack:///./src/components/Configuration/ConfigContainer.vue?09fd","webpack:///./src/assets/interface-icons/open-current-tab.svg","webpack:///./src/assets/interface-icons/open-new-tab.svg","webpack:///./src/components/FormElements/Input.vue?fb76","webpack:///./src/assets/interface-icons/config-editor.svg","webpack:///./src/assets/interface-icons/config-backup.svg","webpack:///./src/components/PageStrcture/Header.vue?cea7","webpack:///./src/components/Settings/ItemSizeSelector.vue?6445","webpack:///./src/components/Settings/ThemeSelector.vue?89f8","webpack:///./src/components/Configuration/EditSiteMeta.vue?a806","webpack:///./src/components/Settings/KeyboardShortcutInfo.vue?b677","webpack:///./src/App.vue?bad4","webpack:///./src/components/PageStrcture/Header.vue?1b58","webpack:///./src/components/PageStrcture/PageTitle.vue?878a","webpack:///src/components/PageStrcture/PageTitle.vue","webpack:///./src/components/PageStrcture/PageTitle.vue?ea63","webpack:///./src/components/PageStrcture/PageTitle.vue","webpack:///./src/components/PageStrcture/Nav.vue?b35c","webpack:///src/components/PageStrcture/Nav.vue","webpack:///./src/components/PageStrcture/Nav.vue?c674","webpack:///./src/components/PageStrcture/Nav.vue","webpack:///src/components/PageStrcture/Header.vue","webpack:///./src/components/PageStrcture/Header.vue?83b0","webpack:///./src/components/PageStrcture/Header.vue","webpack:///./src/components/PageStrcture/Footer.vue?88da","webpack:///src/components/PageStrcture/Footer.vue","webpack:///./src/components/PageStrcture/Footer.vue?6588","webpack:///./src/components/PageStrcture/Footer.vue","webpack:///src/App.vue","webpack:///./src/App.vue?382d","webpack:///./src/App.vue","webpack:///./src/views/Home.vue?3319","webpack:///./src/components/Settings/SettingsContainer.vue?884e","webpack:///./src/components/Settings/SearchBar.vue?1eef","webpack:///./src/utils/ArrowKeyNavigation.js","webpack:///src/components/Settings/SearchBar.vue","webpack:///./src/components/Settings/SearchBar.vue?8307","webpack:///./src/components/Settings/SearchBar.vue","webpack:///./src/components/Settings/ConfigLauncher.vue?47d8","webpack:///./src/components/Configuration/ConfigContainer.vue?685c","webpack:///./src/utils/JsonToYaml.js","webpack:///./src/components/Configuration/EditSiteMeta.vue?23d7","webpack:///src/components/Configuration/EditSiteMeta.vue","webpack:///./src/components/Configuration/EditSiteMeta.vue?2188","webpack:///./src/components/Configuration/EditSiteMeta.vue","webpack:///./src/components/Configuration/JsonEditor.vue?06f0","webpack:///src/components/Configuration/JsonEditor.vue","webpack:///./src/components/Configuration/JsonEditor.vue?579f","webpack:///./src/components/Configuration/JsonEditor.vue","webpack:///./src/components/Configuration/CustomCss.vue?a883","webpack:///src/components/Configuration/CustomCss.vue","webpack:///./src/components/Configuration/CustomCss.vue?3340","webpack:///./src/components/Configuration/CustomCss.vue","webpack:///src/components/Configuration/ConfigContainer.vue","webpack:///./src/components/Configuration/ConfigContainer.vue?d8c3","webpack:///./src/components/Configuration/ConfigContainer.vue","webpack:///./src/components/Configuration/CloudBackupRestore.vue?14bb","webpack:///./src/components/FormElements/Button.vue?ff54","webpack:///src/components/FormElements/Button.vue","webpack:///./src/components/FormElements/Button.vue?52f8","webpack:///./src/components/FormElements/Button.vue","webpack:///./src/components/FormElements/Input.vue?dfe3","webpack:///src/components/FormElements/Input.vue","webpack:///./src/components/FormElements/Input.vue?49a6","webpack:///./src/components/FormElements/Input.vue","webpack:///./src/utils/CloudBackup.js","webpack:///src/components/Configuration/CloudBackupRestore.vue","webpack:///./src/components/Configuration/CloudBackupRestore.vue?d065","webpack:///./src/components/Configuration/CloudBackupRestore.vue","webpack:///src/components/Settings/ConfigLauncher.vue","webpack:///./src/components/Settings/ConfigLauncher.vue?5a66","webpack:///./src/components/Settings/ConfigLauncher.vue","webpack:///./src/components/Settings/ThemeSelector.vue?7809","webpack:///./src/utils/ThemeHelper.js","webpack:///src/components/Settings/ThemeSelector.vue","webpack:///./src/components/Settings/ThemeSelector.vue?3fa2","webpack:///./src/components/Settings/ThemeSelector.vue","webpack:///./src/components/Settings/LayoutSelector.vue?3aa5","webpack:///src/components/Settings/LayoutSelector.vue","webpack:///./src/components/Settings/LayoutSelector.vue?4a31","webpack:///./src/components/Settings/LayoutSelector.vue","webpack:///./src/components/Settings/ItemSizeSelector.vue?6c84","webpack:///src/components/Settings/ItemSizeSelector.vue","webpack:///./src/components/Settings/ItemSizeSelector.vue?7880","webpack:///./src/components/Settings/ItemSizeSelector.vue","webpack:///./src/components/Settings/KeyboardShortcutInfo.vue?c344","webpack:///src/components/Settings/KeyboardShortcutInfo.vue","webpack:///./src/components/Settings/KeyboardShortcutInfo.vue?6297","webpack:///./src/components/Settings/KeyboardShortcutInfo.vue","webpack:///src/components/Settings/SettingsContainer.vue","webpack:///./src/components/Settings/SettingsContainer.vue?5e44","webpack:///./src/components/Settings/SettingsContainer.vue","webpack:///./src/components/LinkItems/ItemGroup.vue?3a9c","webpack:///./src/components/LinkItems/Item.vue?75a7","webpack:///./src/components/LinkItems/ItemIcon.vue?b850","webpack:///./src/utils/ErrorHandler.js","webpack:///src/components/LinkItems/ItemIcon.vue","webpack:///./src/components/LinkItems/ItemIcon.vue?e801","webpack:///./src/components/LinkItems/ItemIcon.vue","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue?c5fa","webpack:///src/components/LinkItems/ItemOpenMethodIcon.vue","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue?b230","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue","webpack:///src/components/LinkItems/Item.vue","webpack:///./src/components/LinkItems/Item.vue?a851","webpack:///./src/components/LinkItems/Item.vue","webpack:///./src/components/LinkItems/Collapsable.vue?3516","webpack:///src/components/LinkItems/Collapsable.vue","webpack:///./src/components/LinkItems/Collapsable.vue?bb21","webpack:///./src/components/LinkItems/Collapsable.vue","webpack:///./src/components/LinkItems/IframeModal.vue?443c","webpack:///src/components/LinkItems/IframeModal.vue","webpack:///./src/components/LinkItems/IframeModal.vue?5f28","webpack:///./src/components/LinkItems/IframeModal.vue","webpack:///src/components/LinkItems/ItemGroup.vue","webpack:///./src/components/LinkItems/ItemGroup.vue?d5bc","webpack:///./src/components/LinkItems/ItemGroup.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?1ead","webpack:///./src/views/Home.vue","webpack:///./src/router.js","webpack:///./src/registerServiceWorker.js","webpack:///./src/main.js","webpack:///./src/assets/interface-icons/config-open-settings.svg","webpack:///./src/assets/interface-icons/layout-horizontal.svg","webpack:///./src/App.vue?595f","webpack:///./src/utils/defaults.js","webpack:///./src/assets/interface-icons/config-close.svg","webpack:///./src/assets/interface-icons/cloud-backup-restore.svg","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue?c798","webpack:///./src/components/FormElements/Button.vue?d364","webpack:///./src/assets/interface-icons/icon-size-medium.svg","webpack:///./src/assets/interface-icons/add-new.svg","webpack:///./src/assets/interface-icons/config-custom-css.svg","webpack:///./src/components/Settings/LayoutSelector.vue?02de","webpack:///./src/components/Configuration/JsonEditor.vue?5179","webpack:///./src/components/LinkItems/Item.vue?b4f3","webpack:///./public/conf.yml","webpack:///./src/assets/interface-icons/save-config.svg","webpack:///./src/assets/interface-icons/icon-size-large.svg","webpack:///./src/assets/interface-icons/config-meta-data.svg","webpack:///./src/assets/interface-icons/broken-icon.svg","webpack:///./src/components/Configuration/CustomCss.vue?fa1a","webpack:///./src/views/Home.vue?52bc","webpack:///./src/components/PageStrcture/PageTitle.vue?9727","webpack:///./src/components/LinkItems/ItemGroup.vue?3410","webpack:///./src/components/Configuration/CloudBackupRestore.vue?f265","webpack:///./src/assets/interface-icons/layout-default.svg","webpack:///./src/assets/interface-icons/config-download-file.svg","webpack:///./src/components/LinkItems/Collapsable.vue?18cf","webpack:///./src/components/Settings/SettingsContainer.vue?b05e","webpack:///./src/components/PageStrcture/Nav.vue?efdc","webpack:///./src/components/Settings/SearchBar.vue?b1ee","webpack:///./src/assets/interface-icons/icon-size-small.svg","webpack:///./src/components/LinkItems/ItemIcon.vue?e410","webpack:///./src/assets/interface-icons/config-restore.svg","webpack:///./src/assets/interface-icons/config-edit-json.svg","webpack:///./src/components/LinkItems/IframeModal.vue?f46c","webpack:///./src/components/Settings/ConfigLauncher.vue?f19f","webpack:///./src/components/LinkItems/Item.vue?d111","webpack:///./src/assets/interface-icons/layout-vertical.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","functional","_h","_vm","_c","_v","children","class","classNames","staticClass","style","staticStyle","attrs","rest","assign","concat","render","this","$createElement","_self","pageInfo","getFooterText","_e","staticRenderFns","title","description","navLinks","_s","props","String","component","_l","link","index","path","isUrl","links","Array","methods","components","PageTitle","Nav","hiddenComponents","titleVisible","navVisible","text","authorUrl","authorName","licenseUrl","license","showCopyright","date","repoUrl","Header","Footer","showFooter","computed","getPageInfo","localStorage","JSON","parse","defaults","localPageInfo","footerText","usersCss","textContent","append","appConfig","customCss","cleanedCss","replace","injectCustomStyles","getBackgroundImage","ref","layout","itemSizeBound","getExternalCSSLinks","getSections","sections","modalOpen","on","searching","setLayoutOrientation","setItemSize","updateModalVisibility","checkTheresData","section","filterTiles","items","searchValue","icon","getDisplayData","$event","finishedSearching","checkIfResults","userIsTypingSomething","availableThemes","getInitialTheme","getUserThemes","displayLayout","updateDisplayLayout","iconSize","updateIconSize","modalChanged","settingsVisible","directives","rawName","expression","toggleSettingsVisibility","domProps","composing","input","indexOf","_k","keyCode","clearFilterInput","arguments","ArrowKeyNavigation","constructor","resetIndex","arrowNavigation","goToPrevious","goToNext","getSafeElementIndex","selectItemByIndex","focus","getElementsByClassName","numResults","getNumResults","startingIndex","isSameRow","indx","pos","offsetTop","checkPreviousIndex","currentIndex","yPos","position","isBelow","start","end","nextIndex","findPreviousRow","count","rowLen","findNextRow","adjustment","checkNextIndex","isAbove","active","Boolean","akn","addEventListener","currentElem","activeElement","id","test","$refs","filter","$emit","blur","tooltip","showEditor","showCloudModal","modalNames","CONF_EDITOR","combineConfig","CLOUD_BACKUP","goToEdit","goToMetaEdit","goToCustomCss","openCloudSync","backupId","resetLocalSettings","jsonParser","config","copyConfigToClipboard","trimWhitespace","split","map","x","trimRight","join","throwError","msg","stringify","indentLevel","handlers","null","number","boolean","string","array","output","forEach","y","handler","typeOf","inArray","rootNode","keys","k","val","function","formElements","$set","addNavLinkRow","save","AddNewIcon","SaveConfigIcon","setItem","$toasted","show","options","model","callback","$$v","jsonData","isValid","errorMessages","_m","VJsoneditor","schema","modes","onValidationError","validationErrors","theme","errors","keyword","highlighter","PrismEditor","css","match","validate","inject","userStyles","code","JsonToYaml","EditSiteMeta","JsonEditor","CustomCssEditor","DownloadIcon","DeleteIcon","EditIcon","CloudIcon","MetaDataIcon","CustomCssIcon","itemToSelect","tabView","navItems","activeTabItem","$modal","navigator","clipboard","writeText","isTheUserSure","confirm","clear","location","reload","highlighted","getElementById","innerHTML","backupPassword","checkPass","scopedSlots","_u","fn","proxy","restoreCode","restorePassword","restoreBackup","click","_t","Function","label","placeholder","updateValue","default","validator","ENDPOINT","backupEndpoint","encryptData","password","stringifiedData","encryptedData","aes","encrypt","toString","decryptData","decrypt","Utf8","makeSubHash","pass","sha256","backup","axios","post","userData","subHash","update","put","encodeGetParams","entries","kv","encodeURIComponent","restore","params","url","then","response","errorMsg","decryptedData","Button","Input","IconBackup","IconRestore","savedHash","makeUpdate","showErrorMsg","makeBackup","setBackupIdLocally","showSuccessMsg","isUpdate","hash","makeHash","IconSpanner","IconCloud","ConfigContainer","CloudBackupRestore","conf","content","themeNames","selectedTheme","ThemeHelper","preloadTheme","href","rel","sheet","disabled","selectTheme","themes","add","find","confTheme","userThemes","watch","newTheme","themeHelper","loading","builtInThemes","externalThemeNames","added","isThemeLocal","updateTheme","htmlTag","getElementsByTagName","hasAttribute","removeAttribute","themeToCheck","includes","resetToDefault","setLocalTheme","IconDeafault","IconHorizontal","IconVertical","IconSmall","IconMedium","IconLarge","shouldHide","hideWelcomeHelper","timeDelay","removeEventListener","keyPressEvent","shouldHideWelcomeMessage","$destroy","SearchBar","ConfigLauncher","ThemeSelector","LayoutSelector","ItemSizeSelector","KeyboardShortcutInfo","IconOpen","IconClose","something","changedTo","cssThemes","searchVisible","getSettingsVisibility","groupId","displayData","collapsed","cols","rows","color","customStyles","isGridLayout","item","makeId","backgroundColor","newItemSize","triggerModal","getTooltipOptions","itemSize","getUnicodeOpeningIcon","itemOpened","iconType","size","broken","iconPath","imageNotFound","ErrorHandler","warn","BrokenImage","determineImageType","getIconPath","str","pattern","RegExp","img","fileExtRegex","validImgExtensions","splitPath","exec","fullUrl","isLocalIP","urlParts","imgType","makeClass","isSmall","isTransparent","openingMethod","transparent","NewTabOpenIcon","SameTabOpenIcon","IframeOpenIcon","subtitle","getId","background","Icon","ItemOpenMethodIcon","altKey","preventDefault","tileElem","isOverflowing","scrollHeight","clientHeight","className","trigger","hideOnTargetClick","html","delay","manageTitleEllipse","checkSpanNum","sanitizeCustomStyles","uniqueKey","getCollapseState","collapseChanged","Number","isOpen","span","classPrefix","maxSpan","numSpan","parseInt","userCss","initStorage","collapseStateObject","initialiseStorage","collapseState","newState","whatChanged","setCollapseState","srcElement","checked","modalClosed","hide","slot","close","Collapsable","Item","IframeModal","styles","itemCountX","itemCountY","toLowerCase","SettingsContainer","ItemGroup","layoutOrientation","set","localSections","json","filterComp","urlPattern","domainPattern","allTiles","searchTerm","modalState","availibleThemes","externalStyleSheet","externals","isArray","ext","Deafault","isFound","enableFontAwesome","checkIfFontAwesomeNeeded","fontAwesomeScript","faKey","fontAwesomeKey","itemsFound","backgroundImg","initiateFontAwesome","Vue","use","Router","localAppConfig","localStorageKeys","PAGE_INFO","APP_CONFIG","router","routes","Home","defaultPageInfo","meta","metaTags","defaultTitle","afterEach","to","nextTick","register","ready","log","registered","cached","updatefound","updated","offline","VTooltip","VModal","VTabs","Toasted","toastedOptions","VSelect","productionTip","awesome","App","$mount","visibleComponents","pageTitle","navigation","searchBar","settings","footer","HIDE_WELCOME_BANNER","LAYOUT_ORIENTATION","COLLAPSE_STATE","ICON_SIZE","THEME","CONF_SECTIONS","BACKUP_ID","BACKUP_HASH","HIDE_SETTINGS","topLevelConfKeys","SECTIONS","duration","keepOnHover","iconPack"],"mappings":"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","file":"js/app.2ee0ed11.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"06214a09\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [\"svg-inline--fa fa-trash-alt fa-w-14\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"far\",\"data-icon\":\"trash-alt\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 448 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M268 416h24a12 12 0 0012-12V188a12 12 0 00-12-12h-24a12 12 0 00-12 12v216a12 12 0 0012 12zM432 80h-82.41l-34-56.7A48 48 0 00274.41 0H173.59a48 48 0 00-41.16 23.3L98.41 80H16A16 16 0 000 96v16a16 16 0 0016 16h16v336a48 48 0 0048 48h288a48 48 0 0048-48V128h16a16 16 0 0016-16V96a16 16 0 00-16-16zM171.84 50.91A6 6 0 01177 48h94a6 6 0 015.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0012-12V188a12 12 0 00-12-12h-24a12 12 0 00-12 12v216a12 12 0 0012 12z\"}})])\n )\n }\n }\n ","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigContainer.vue?vue&type=style&index=0&id=578494cc&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=668274c3&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigLauncher.vue?vue&type=style&index=1&lang=scss&\"","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [\"svg-inline--fa fa-clone fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fas\",\"data-icon\":\"clone\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"}})])\n )\n }\n }\n ","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigContainer.vue?vue&type=style&index=1&lang=scss&\"","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [\"svg-inline--fa fa-window-maximize fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"far\",\"data-icon\":\"window-maximize\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('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-6V192h416v234z\"}})])\n )\n }\n }\n ","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [\"svg-inline--fa fa-external-link-alt fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fas\",\"data-icon\":\"external-link-alt\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M432 320h-32a16 16 0 00-16 16v112H64V128h144a16 16 0 0016-16V80a16 16 0 00-16-16H48a48 48 0 00-48 48v352a48 48 0 0048 48h352a48 48 0 0048-48V336a16 16 0 00-16-16zM488 0H360c-21.37 0-32.05 25.91-17 41l35.73 35.73L135 320.37a24 24 0 000 34L157.67 377a24 24 0 0034 0l243.61-243.68L471 169c15 15 41 4.5 41-17V24a24 24 0 00-24-24z\"}})])\n )\n }\n }\n ","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=style&index=0&id=5df13ed2&scoped=true&lang=scss&\"","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [\"svg-inline--fa fa-wrench fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fas\",\"data-icon\":\"wrench\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"}})])\n )\n }\n }\n ","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [\"svg-inline--fa fa-upload fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fal\",\"data-icon\":\"upload\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('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-44h124v-99.3h-52.7c-35.6 0-53.4-43.1-28.3-68.3L227.7 11.7c15.6-15.6 40.9-15.6 56.6 0L425 152.4c25.2 25.2 7.3 68.3-28.3 68.3H344V320h124c24.3 0 44 19.7 44 44zM200 188.7V376c0 4.4 3.6 8 8 8h96c4.4 0 8-3.6 8-8V188.7h84.7c7.1 0 10.7-8.6 5.7-13.7L261.7 34.3c-3.1-3.1-8.2-3.1-11.3 0L109.7 175c-5 5-1.5 13.7 5.7 13.7H200zM480 364c0-6.6-5.4-12-12-12H344v24c0 22.1-17.9 40-40 40h-96c-22.1 0-40-17.9-40-40v-24H44c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12V364z\"}})])\n )\n }\n }\n ","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&id=70a33270&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSizeSelector.vue?vue&type=style&index=0&id=58966274&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditSiteMeta.vue?vue&type=style&index=0&id=772067bb&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardShortcutInfo.vue?vue&type=style&index=0&id=080c9684&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"dashy\",\"data-theme\":\"dark\"}},[_c('Header',{attrs:{\"pageInfo\":_vm.pageInfo}}),_c('router-view'),(_vm.showFooter)?_c('Footer',{attrs:{\"text\":_vm.getFooterText()}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',[(_vm.titleVisible)?_c('PageTitle',{attrs:{\"title\":_vm.pageInfo.title,\"description\":_vm.pageInfo.description}}):_vm._e(),(_vm.navVisible)?_c('Nav',{staticClass:\"nav\",attrs:{\"links\":_vm.pageInfo.navLinks}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-titles\"},[_c('h1',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"subtitle\"},[_vm._v(_vm._s(_vm.description))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageTitle.vue?vue&type=template&id=290d21a8&scoped=true&\"\nimport script from \"./PageTitle.vue?vue&type=script&lang=js&\"\nexport * from \"./PageTitle.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PageTitle.vue?vue&type=style&index=0&id=290d21a8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"290d21a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{attrs:{\"id\":\"nav\"}},_vm._l((_vm.links),function(link,index){return _c('router-link',{key:index,staticClass:\"nav-item\",attrs:{\"to\":link.path,\"href\":link.path,\"target\":_vm.isUrl(link.path) ? '_blank' : '',\"rel\":\"noopener noreferrer\"}},[_vm._v(_vm._s(link.title))])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Nav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Nav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Nav.vue?vue&type=template&id=68c1bd5c&scoped=true&\"\nimport script from \"./Nav.vue?vue&type=script&lang=js&\"\nexport * from \"./Nav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Nav.vue?vue&type=style&index=0&id=68c1bd5c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68c1bd5c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=70a33270&scoped=true&\"\nimport script from \"./Header.vue?vue&type=script&lang=js&\"\nexport * from \"./Header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Header.vue?vue&type=style&index=0&id=70a33270&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70a33270\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.text && _vm.text !== '')?_c('footer',[_vm._v(_vm._s(_vm.text))]):_c('footer',[_vm._v(\" Developed by \"),_c('a',{attrs:{\"href\":_vm.authorUrl}},[_vm._v(_vm._s(_vm.authorName))]),_vm._v(\". Licensed under \"),_c('a',{attrs:{\"href\":_vm.licenseUrl}},[_vm._v(_vm._s(_vm.license))]),_vm._v(\" \"+_vm._s(_vm.showCopyright? '©': '')+\" \"+_vm._s(_vm.date)+\". Get the \"),_c('a',{attrs:{\"href\":_vm.repoUrl}},[_vm._v(\"Source Code\")]),_vm._v(\". \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=668274c3&scoped=true&\"\nimport script from \"./Footer.vue?vue&type=script&lang=js&\"\nexport * from \"./Footer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=668274c3&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"668274c3\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=28f80268&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"home\",style:(_vm.getBackgroundImage())},[_c('SettingsContainer',{ref:\"filterComp\",staticClass:\"filter-container\",attrs:{\"displayLayout\":_vm.layout,\"iconSize\":_vm.itemSizeBound,\"availableThemes\":_vm.getExternalCSSLinks(),\"sections\":_vm.getSections(_vm.sections),\"appConfig\":_vm.appConfig,\"pageInfo\":_vm.pageInfo,\"modalOpen\":_vm.modalOpen},on:{\"user-is-searchin\":_vm.searching,\"change-display-layout\":_vm.setLayoutOrientation,\"change-icon-size\":_vm.setItemSize,\"change-modal-visibility\":_vm.updateModalVisibility}}),(_vm.checkTheresData(_vm.sections))?_c('div',{class:(\"item-group-container orientation-\" + _vm.layout + \" item-size-\" + _vm.itemSizeBound)},_vm._l((_vm.getSections(_vm.sections)),function(section,index){return _c('ItemGroup',{key:index,class:(_vm.filterTiles(section.items).length === 0 && _vm.searchValue) ? 'no-results' : '',attrs:{\"title\":section.name,\"icon\":section.icon || undefined,\"displayData\":_vm.getDisplayData(section),\"groupId\":(\"section-\" + index),\"items\":_vm.filterTiles(section.items),\"itemSize\":_vm.itemSizeBound},on:{\"itemClicked\":function($event){return _vm.finishedSearching()},\"change-modal-visibility\":_vm.updateModalVisibility}})}),1):_vm._e(),(_vm.checkIfResults())?_c('div',{staticClass:\"no-data\"},[_vm._v(\" \"+_vm._s(_vm.searchValue ? 'No Search Results' : 'No Data Configured')+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[(_vm.searchVisible)?_c('SearchBar',{ref:\"SearchBar\",attrs:{\"active\":!_vm.modalOpen},on:{\"user-is-searchin\":_vm.userIsTypingSomething}}):_vm._e(),_c('div',{staticClass:\"options-outer\"},[(_vm.settingsVisible)?_c('div',{staticClass:\"options-container\"},[_c('ThemeSelector',{attrs:{\"themes\":_vm.availableThemes,\"confTheme\":_vm.getInitialTheme(),\"userThemes\":_vm.getUserThemes()}}),_c('LayoutSelector',{attrs:{\"displayLayout\":_vm.displayLayout},on:{\"layoutUpdated\":_vm.updateDisplayLayout}}),_c('ItemSizeSelector',{attrs:{\"iconSize\":_vm.iconSize},on:{\"iconSizeUpdated\":_vm.updateIconSize}}),_c('ConfigLauncher',{attrs:{\"sections\":_vm.sections,\"pageInfo\":_vm.pageInfo,\"appConfig\":_vm.appConfig},on:{\"modalChanged\":_vm.modalChanged}})],1):_vm._e(),_c('div',{class:(\"show-hide-container \" + (_vm.settingsVisible? 'hide-btn' : 'show-btn'))},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(((_vm.settingsVisible? 'Hide' : 'Open') + \" Settings Menu\")),expression:\"`${settingsVisible? 'Hide' : 'Open'} Settings Menu`\"}],attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.toggleSettingsVisibility()}}},[(_vm.settingsVisible)?_c('IconClose'):_c('IconOpen')],1)])]),_c('KeyboardShortcutInfo')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',[_c('label',{attrs:{\"for\":\"filter-tiles\"}},[_vm._v(\"Search\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.input),expression:\"input\"}],ref:\"filter\",attrs:{\"id\":\"filter-tiles\",\"placeholder\":\"Start typing to filter...\"},domProps:{\"value\":(_vm.input)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.input=$event.target.value},_vm.userIsTypingSomething],\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.clearFilterInput.apply(null, arguments)}}}),(_vm.input.length > 0)?_c('i',{staticClass:\"clear-search\",attrs:{\"title\":\"Clear search\"},on:{\"click\":_vm.clearFilterInput}},[_vm._v(\"x\")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Class encapsulating the functionality that enables the user to\n * navigate through tiles/ search result grid using the arrow keys\n * This code is very hacky, it's best not to look at it for too long\n */\nexport default class ArrowKeyNavigation {\n constructor(index) {\n this.index = index;\n }\n\n resetIndex() {\n this.index = 0;\n }\n\n /* Figures out which element is next, based on the key pressed *\n * current index and total number of items. Then calls focus function */\n arrowNavigation(key) {\n if (this.index === undefined) this.index = 0; // Start at beginning\n else if (key === 37) { // Left --> Previous\n this.index -= 1;\n } else if (key === 38) { // Up --> Previous\n this.index = ArrowKeyNavigation.goToPrevious(this.index);\n } else if (key === 39) { // Right --> Next\n this.index += 1;\n } else if (key === 40) { // Down --> Next\n this.index = ArrowKeyNavigation.goToNext(this.index);\n }\n /* Ensure the index is within bounds, then focus element */\n this.index = ArrowKeyNavigation.getSafeElementIndex(this.index);\n ArrowKeyNavigation.selectItemByIndex(this.index).focus();\n }\n\n /* Returns the number of visible items / results */\n static getNumResults() {\n return document.getElementsByClassName('item').length;\n }\n\n /* Returns the index for an element, ensuring that it's within bounds */\n static getSafeElementIndex(index) {\n const numResults = ArrowKeyNavigation.getNumResults();\n if (index < 0) return numResults - 1;\n else if (index >= numResults) return 0;\n return index;\n }\n\n /* Selects a given element, by it's ID. If out of bounds, returns element 0 */\n static selectItemByIndex(index) {\n return (index >= 0 && index <= ArrowKeyNavigation.getNumResults())\n ? document.getElementsByClassName('item')[index] : [document.getElementsByClassName('item')];\n }\n\n /* Returns the index of the first cell in the previous/ above row */\n static findPreviousRow(startingIndex) {\n const isSameRow = (indx, pos) => ArrowKeyNavigation.selectItemByIndex(indx).offsetTop === pos;\n const checkPreviousIndex = (currentIndex, yPos) => {\n if (currentIndex >= ArrowKeyNavigation.getNumResults()) return checkPreviousIndex(0, yPos);\n else if (isSameRow(currentIndex, yPos)) return checkPreviousIndex(currentIndex - 1, yPos);\n return currentIndex;\n };\n const position = ArrowKeyNavigation.selectItemByIndex(startingIndex).offsetTop;\n return checkPreviousIndex(startingIndex, position);\n }\n\n /* Moves to the cell directly above the current */\n static goToPrevious(startingIndex) {\n const isBelow = (start, end) => (ArrowKeyNavigation.selectItemByIndex(start).offsetTop\n < ArrowKeyNavigation.selectItemByIndex(end).offsetTop);\n const nextIndex = ArrowKeyNavigation.findPreviousRow(startingIndex);\n const count = nextIndex - startingIndex;\n const rowLen = nextIndex - ArrowKeyNavigation.findNextRow(startingIndex) + 1;\n const adjustment = isBelow(startingIndex, nextIndex) ? 0 : rowLen - count;\n return nextIndex + adjustment;\n }\n\n /* Returns the index of the first cell in the next/ below row */\n static findNextRow(startingIndex) {\n const isSameRow = (indx, pos) => ArrowKeyNavigation.selectItemByIndex(indx).offsetTop === pos;\n const checkNextIndex = (currentIndex, yPos) => {\n if (currentIndex >= ArrowKeyNavigation.getNumResults()) return checkNextIndex(0, yPos);\n else if (isSameRow(currentIndex, yPos)) return checkNextIndex(currentIndex + 1, yPos);\n return currentIndex;\n };\n const position = ArrowKeyNavigation.selectItemByIndex(startingIndex).offsetTop;\n return checkNextIndex(startingIndex, position);\n }\n\n /* Moves to the cell directly below the current */\n static goToNext(startingIndex) {\n const isAbove = (start, end) => (ArrowKeyNavigation.selectItemByIndex(start).offsetTop\n > ArrowKeyNavigation.selectItemByIndex(end).offsetTop);\n const nextIndex = ArrowKeyNavigation.findNextRow(startingIndex);\n const count = nextIndex - startingIndex;\n const rowLen = nextIndex - ArrowKeyNavigation.findPreviousRow(startingIndex) - 1;\n const adjustment = isAbove(startingIndex, nextIndex) ? 0 : rowLen - count;\n return nextIndex + adjustment;\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchBar.vue?vue&type=template&id=4039a28b&scoped=true&\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchBar.vue?vue&type=style&index=0&id=4039a28b&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4039a28b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"config-options\"},[_c('span',[_vm._v(\"Config\")]),_c('div',{staticClass:\"config-buttons\"},[_c('IconSpanner',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Update configuration locally')),expression:\"tooltip('Update configuration locally')\"}],attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.showEditor()}}}),_c('IconCloud',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Backup / restore cloud config')),expression:\"tooltip('Backup / restore cloud config')\"}],attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.showCloudModal()}}})],1),_c('modal',{attrs:{\"name\":_vm.modalNames.CONF_EDITOR,\"resizable\":true,\"width\":\"60%\",\"height\":\"80%\"},on:{\"closed\":function($event){return _vm.$emit('modalChanged', false)}}},[_c('ConfigContainer',{attrs:{\"config\":_vm.combineConfig()}})],1),_c('modal',{attrs:{\"name\":_vm.modalNames.CLOUD_BACKUP,\"resizable\":true,\"width\":\"65%\",\"height\":\"60%\"},on:{\"closed\":function($event){return _vm.$emit('modalChanged', false)}}},[_c('CloudBackupRestore',{attrs:{\"config\":_vm.combineConfig()}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Tabs',{ref:\"tabView\",attrs:{\"navAuto\":true,\"name\":\"Add Item\"}},[_c('TabItem',{staticClass:\"main-tab\",attrs:{\"name\":\"Config\"}},[_c('div',{staticClass:\"main-options-container\"},[_c('h2',[_vm._v(\"Configuration Options\")]),_c('a',{staticClass:\"hyperlink-wrapper\",attrs:{\"href\":\"/conf.yml\",\"download\":\"\"}},[_c('button',{staticClass:\"config-button center\"},[_c('DownloadIcon',{staticClass:\"button-icon\"}),_vm._v(\" Download Config \")],1)]),_c('button',{staticClass:\"config-button center\",on:{\"click\":function($event){return _vm.goToEdit()}}},[_c('EditIcon',{staticClass:\"button-icon\"}),_vm._v(\" Edit Sections \")],1),_c('button',{staticClass:\"config-button center\",on:{\"click\":function($event){return _vm.goToMetaEdit()}}},[_c('MetaDataIcon',{staticClass:\"button-icon\"}),_vm._v(\" Edit Meta Data \")],1),_c('button',{staticClass:\"config-button center\",on:{\"click\":function($event){return _vm.goToCustomCss()}}},[_c('CustomCssIcon',{staticClass:\"button-icon\"}),_vm._v(\" Edit Custom CSS \")],1),_c('button',{staticClass:\"config-button center\",on:{\"click\":function($event){return _vm.openCloudSync()}}},[_c('CloudIcon',{staticClass:\"button-icon\"}),_vm._v(\" \"+_vm._s(_vm.backupId ? 'Edit Cloud Sync' : 'Enable Cloud Sync')+\" \")],1),_c('button',{staticClass:\"config-button center\",on:{\"click\":function($event){return _vm.resetLocalSettings()}}},[_c('DeleteIcon',{staticClass:\"button-icon\"}),_vm._v(\" Reset Local Settings \")],1),_c('div',{staticClass:\"config-note\"},[_c('p',{staticClass:\"sub-title\"},[_vm._v(\"Note:\")]),_c('span',[_vm._v(\" All changes made here are stored locally. To apply globally, either export your config into your conf.yml file, or use the cloud backup/ restore feature. \")])])])]),_c('TabItem',{staticClass:\"code-container\",attrs:{\"name\":\"Backup Config\"}},[_c('pre',{attrs:{\"id\":\"conf-yaml\"}},[_vm._v(_vm._s(this.jsonParser(this.config)))]),_c('div',{staticClass:\"yaml-action-buttons\"},[_c('h2',[_vm._v(\"Actions\")]),_c('a',{staticClass:\"yaml-button download\",attrs:{\"href\":\"/conf.yml\",\"download\":\"\"}},[_vm._v(\"Download Config\")]),_c('a',{staticClass:\"yaml-button copy\",on:{\"click\":function($event){return _vm.copyConfigToClipboard()}}},[_vm._v(\"Copy Config\")]),_c('a',{staticClass:\"yaml-button reset\",on:{\"click\":function($event){return _vm.resetLocalSettings()}}},[_vm._v(\"Reset Config\")])])]),_c('TabItem',{attrs:{\"name\":\"Edit Sections\"}},[_c('JsonEditor',{attrs:{\"config\":_vm.config}})],1),_c('TabItem',{attrs:{\"name\":\"Edit Site Meta\"}},[_c('EditSiteMeta',{attrs:{\"config\":_vm.config}})],1),_c('TabItem',{attrs:{\"name\":\"Custom Styles\"}},[_c('CustomCssEditor',{attrs:{\"config\":_vm.config,\"initialCss\":\"hello\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { typeOf } from 'remedial';\n\nconst trimWhitespace = (input) => input.split('\\n').map(x => x.trimRight()).join('\\n');\n\nconst throwError = (msg) => {\n throw new Error(`Error in Json to YAML conversion: ${msg}`);\n};\n\n/* A function that converts valid JSON into valid YAML */\nconst stringify = (data) => {\n let indentLevel = '';\n const handlers = {\n undefined() {\n return 'null';\n },\n null() {\n return 'null';\n },\n number(x) {\n return x;\n },\n boolean(x) {\n return x ? 'true' : 'false';\n },\n string(x) {\n return JSON.stringify(x);\n },\n array(x) {\n let output = '';\n if (x.length === 0) {\n output += '[]';\n return output;\n }\n\n indentLevel = indentLevel.replace(/$/, ' ');\n x.forEach((y) => {\n const handler = handlers[typeOf(y)];\n\n if (!handler) throwError(typeOf(y));\n\n output += `\\n${indentLevel}- ${handler(y, true)}`;\n });\n indentLevel = indentLevel.replace(/ {2}/, '');\n\n return output;\n },\n object(x, inArray, rootNode) {\n let output = '';\n\n if (Object.keys(x).length === 0) {\n output += '{}';\n return output;\n }\n\n if (!rootNode) {\n indentLevel = indentLevel.replace(/$/, ' ');\n }\n\n Object.keys(x).forEach((k, i) => {\n const val = x[k];\n const handler = handlers[typeOf(val)];\n\n if (typeof val === 'undefined') {\n return;\n }\n\n if (!handler) throwError(typeOf(val));\n\n if (!(inArray && i === 0)) {\n output += `\\n${indentLevel}`;\n }\n\n output += `${k}: ${handler(val)}`;\n });\n indentLevel = indentLevel.replace(/ {2}/, '');\n\n return output;\n },\n function() {\n return '[object Function]';\n },\n };\n\n return trimWhitespace(`${handlers[typeOf(data)](data, true, true)}\\n`);\n};\n\nexport default stringify;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"site-meta-container\"},[_c('h2',[_vm._v(\"Edit Site Meta\")]),_c('div',{staticClass:\"form\"},[_c('div',{staticClass:\"row\"},[_c('span',[_vm._v(\"Title\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.formElements.title),expression:\"formElements.title\"}],domProps:{\"value\":(_vm.formElements.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.formElements, \"title\", $event.target.value)}}})]),_c('div',{staticClass:\"row\"},[_c('span',[_vm._v(\"Description\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.formElements.description),expression:\"formElements.description\"}],domProps:{\"value\":(_vm.formElements.description)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.formElements, \"description\", $event.target.value)}}})]),_c('div',{staticClass:\"row\"},[_c('span',[_vm._v(\"Footer Text\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.formElements.footerText),expression:\"formElements.footerText\"}],domProps:{\"value\":(_vm.formElements.footerText)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.formElements, \"footerText\", $event.target.value)}}})])]),_c('div',{staticClass:\"form\"},[_c('h2',[_vm._v(\"Nav Bar Links\")]),_vm._l((_vm.formElements.navLinks),function(link,index){return _c('div',{key:index,staticClass:\"add-nav-bar-link\"},[_c('div',{staticClass:\"row\"},[_c('span',[_vm._v(\"Link Text\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(link.title),expression:\"link.title\"}],domProps:{\"value\":(link.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(link, \"title\", $event.target.value)}}})]),_c('div',{staticClass:\"row\"},[_c('span',[_vm._v(\"Link URL\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(link.path),expression:\"link.path\"}],domProps:{\"value\":(link.path)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(link, \"path\", $event.target.value)}}})])])}),_c('button',{staticClass:\"add-new-link\",on:{\"click\":function($event){return _vm.addNavLinkRow()}}},[_c('AddNewIcon'),_vm._v(\" Add New Link \")],1)],2),_c('button',{staticClass:\"save-button\",on:{\"click\":function($event){return _vm.save()}}},[_c('SaveConfigIcon'),_vm._v(\" Save Changes \")],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditSiteMeta.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditSiteMeta.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditSiteMeta.vue?vue&type=template&id=772067bb&scoped=true&\"\nimport script from \"./EditSiteMeta.vue?vue&type=script&lang=js&\"\nexport * from \"./EditSiteMeta.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditSiteMeta.vue?vue&type=style&index=0&id=772067bb&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"772067bb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"json-editor-outer\"},[_c('v-jsoneditor',{attrs:{\"options\":_vm.options,\"height\":\"580px\"},model:{value:(_vm.jsonData),callback:function ($$v) {_vm.jsonData=$$v},expression:\"jsonData\"}}),_c('button',{class:(\"save-button \" + (!_vm.isValid ? 'err' : '')),on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save Changes\")]),_c('p',{staticClass:\"errors\"},[_c('ul',[_vm._l((_vm.errorMessages),function(error,index){return _c('li',{key:index,class:(\"type-\" + (error.type))},[_vm._v(\" \"+_vm._s(error.msg)+\" \")])}),(_vm.errorMessages.length < 1)?_c('li',{staticClass:\"type-valid\"},[_vm._v(\" Config is Valid \")]):_vm._e()],2)]),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"note\"},[_vm._v(\" It is recommend to backup your existing confiruration before making any changes. \"),_c('br'),_vm._v(\" Remember that these changes are only applied locally, and will need to be exported to your conf.yml \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JsonEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JsonEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JsonEditor.vue?vue&type=template&id=9771d03c&\"\nimport script from \"./JsonEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./JsonEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./JsonEditor.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"json-editor-outer\"},[_c('prism-editor',{staticClass:\"my-editor\",attrs:{\"highlight\":_vm.highlighter,\"line-numbers\":\"\"},model:{value:(_vm.customCss),callback:function ($$v) {_vm.customCss=$$v},expression:\"customCss\"}}),_c('button',{staticClass:\"save-button\",on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save Changes\")]),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"quick-note\"},[_c('b',[_vm._v(\"Note\")]),_vm._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 \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomCss.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomCss.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomCss.vue?vue&type=template&id=816a95e4&\"\nimport script from \"./CustomCss.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomCss.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomCss.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConfigContainer.vue?vue&type=template&id=578494cc&scoped=true&\"\nimport script from \"./ConfigContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfigContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConfigContainer.vue?vue&type=style&index=0&id=578494cc&scoped=true&lang=scss&\"\nimport style1 from \"./ConfigContainer.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"578494cc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"cloud-backup-restore-wrapper\"},[_vm._m(0),_c('div',{staticClass:\"section backup-section\"},[(_vm.backupId)?_c('h3',[_vm._v(\"Update Backup\")]):_c('h3',[_vm._v(\"Make a Backup\")]),_c('Input',{attrs:{\"name\":\"backup-password\",\"label\":_vm.backupId ? 'Enter your Password' : 'Choose a Password',\"layout\":\"vertical\",\"type\":\"password\"},model:{value:(_vm.backupPassword),callback:function ($$v) {_vm.backupPassword=$$v},expression:\"backupPassword\"}}),_c('Button',{attrs:{\"click\":_vm.checkPass},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(_vm.backupId ? 'Update Backup' : 'Backup'))]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconBackup')]},proxy:true}])}),(_vm.backupId)?_c('div',{staticClass:\"results-view\"},[_c('span',{staticClass:\"backup-id-label\"},[_vm._v(\"Your Backup ID: \")]),_c('pre',{staticClass:\"backup-id-value\"},[_vm._v(_vm._s(_vm.backupId))]),_c('span',{staticClass:\"backup-id-note\"},[_vm._v(\" This is used to restore from backups later. So keep it, along with your password somewhere safe. \")])]):_vm._e()],1),_c('div',{staticClass:\"section restore-section\"},[_c('h3',[_vm._v(\"Restore a Backup\")]),_c('Input',{attrs:{\"name\":\"restore-code\",\"label\":\"Restore ID\"},model:{value:(_vm.restoreCode),callback:function ($$v) {_vm.restoreCode=$$v},expression:\"restoreCode\"}}),_c('Input',{attrs:{\"name\":\"restore-password\",\"label\":\"Password\",\"type\":\"password\"},model:{value:(_vm.restorePassword),callback:function ($$v) {_vm.restorePassword=$$v},expression:\"restorePassword\"}}),_c('Button',{attrs:{\"click\":_vm.restoreBackup},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(\"Restore\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconRestore')]},proxy:true}])})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section intro\"},[_c('h2',[_vm._v(\"Cloud Backup & Restore\")]),_c('p',{staticClass:\"intro\"},[_vm._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. \"),_c('br'),_c('br'),_vm._v(\" All data is fully end-to-end encrypted with AES, using your password as the key. \"),_c('br'),_vm._v(\" For more info, please see the \"),_c('a',{attrs:{\"href\":\"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md\"}},[_vm._v(\"docs\")])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{on:{\"click\":function($event){return _vm.click()}}},[_vm._t(\"text\"),_vm._t(\"icon\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=115c4d8d&scoped=true&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Button.vue?vue&type=style&index=0&id=115c4d8d&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"115c4d8d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"input-container \" + _vm.layout)},[(_vm.label)?_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('input',{attrs:{\"type\":_vm.type,\"name\":_vm.name,\"id\":_vm.name,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.updateValue($event.target.value)}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Input.vue?vue&type=template&id=5df13ed2&scoped=true&\"\nimport script from \"./Input.vue?vue&type=script&lang=js&\"\nexport * from \"./Input.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Input.vue?vue&type=style&index=0&id=5df13ed2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5df13ed2\",\n null\n \n)\n\nexport default component.exports","import sha256 from 'crypto-js/sha256';\nimport aes from 'crypto-js/aes';\nimport Utf8 from 'crypto-js/enc-utf8';\nimport axios from 'axios';\nimport { backupEndpoint } from '@/utils/defaults';\n\nconst ENDPOINT = backupEndpoint; // 'https://dashy-sync-service.as93.net';\n\n/* Stringify, encrypt and encode data for transmission */\nconst encryptData = (data, password) => {\n const stringifiedData = JSON.stringify(data);\n const encryptedData = aes.encrypt(stringifiedData, password);\n return encryptedData.toString();\n};\n\n/* Decrypt, decode and parse received data */\nconst decryptData = (data, password) => aes.decrypt(data, password).toString(Utf8);\n\n/* Returns a splice of the hash of the users password */\nconst makeSubHash = (pass) => sha256(pass).toString().slice(0, 14);\n\n/* Makes the backup */\nexport const backup = (data, password) => axios.post(ENDPOINT, {\n userData: encryptData(data, password),\n subHash: makeSubHash(password),\n});\n\n/* Updates and existing backup */\nexport const update = (data, password, backupId) => axios.put(ENDPOINT, {\n backupId,\n userData: encryptData(data, password),\n subHash: makeSubHash(password),\n});\n\nconst encodeGetParams = p => Object.entries(p).map(kv => kv.map(encodeURIComponent).join('=')).join('&');\n\n/* Restores the backup */\nexport const restore = (backupId, password) => {\n const params = encodeGetParams({ backupId, subHash: makeSubHash(password) });\n const url = `${ENDPOINT}/?${params}`;\n return new Promise((resolve, reject) => {\n axios.get(url).then((response) => {\n if (!response.data || response.data.errorMsg) {\n reject(response.data.errorMsg || 'Error');\n } else {\n const decryptedData = decryptData(response.data.userData.userData, password);\n try { resolve(JSON.parse(decryptedData)); } catch (e) { reject(e); }\n }\n });\n });\n};\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloudBackupRestore.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloudBackupRestore.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CloudBackupRestore.vue?vue&type=template&id=4f7aa887&scoped=true&\"\nimport script from \"./CloudBackupRestore.vue?vue&type=script&lang=js&\"\nexport * from \"./CloudBackupRestore.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CloudBackupRestore.vue?vue&type=style&index=0&id=4f7aa887&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f7aa887\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigLauncher.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfigLauncher.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConfigLauncher.vue?vue&type=template&id=698f4f02&scoped=true&\"\nimport script from \"./ConfigLauncher.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfigLauncher.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConfigLauncher.vue?vue&type=style&index=0&id=698f4f02&scoped=true&lang=scss&\"\nimport style1 from \"./ConfigLauncher.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"698f4f02\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.themes)?_c('div',{staticClass:\"theme-selector-section\"},[_c('span',{staticClass:\"theme-label\"},[_vm._v(\"Theme\")]),_c('v-select',{staticClass:\"theme-dropdown\",attrs:{\"options\":_vm.themeNames,\"tabindex\":-2},model:{value:(_vm.selectedTheme),callback:function ($$v) {_vm.selectedTheme=$$v},expression:\"selectedTheme\"}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * A function for pre-loading, and easy switching of external stylesheets\n * External CSS is preloaded to avoid FOUC\n */\nconst ThemeHelper = function th() {\n const preloadTheme = (href) => {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n document.head.appendChild(link);\n return new Promise((resolve, reject) => {\n link.onload = e => {\n const { sheet } = e.target;\n sheet.disabled = true;\n resolve(sheet);\n };\n link.onerror = reject;\n });\n };\n\n const selectTheme = (themes, name) => {\n const t = themes; // To avoid ESLint complaining about mutating a param\n if (name && !themes[name]) throw new Error(`Theme: '${name}' does not exist.`);\n Object.keys(themes).forEach(n => { t[n].disabled = (n !== name); });\n };\n\n const themes = {};\n\n return {\n add(name, href) { return preloadTheme(href).then(s => { themes[name] = s; }); },\n set theme(name) { selectTheme(themes, name); },\n get theme() { return Object.keys(themes).find(n => !themes[n].disabled); },\n };\n};\n\nexport default ThemeHelper;\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThemeSelector.vue?vue&type=template&id=2fa10d1a&\"\nimport script from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ThemeSelector.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('span',{staticClass:\"options-label\"},[_vm._v(\"Layout\")]),_c('div',{staticClass:\"display-options\"},[_c('IconDeafault',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Auto')),expression:\"tooltip('Auto')\"}],class:(\"layout-icon \" + (_vm.displayLayout === 'auto' ? 'selected' : '')),attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.updateDisplayLayout('auto')}}}),_c('IconHorizontal',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Horizontal')),expression:\"tooltip('Horizontal')\"}],class:(\"layout-icon \" + (_vm.displayLayout === 'horizontal' ? 'selected' : '')),attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.updateDisplayLayout('horizontal')}}}),_c('IconVertical',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Vertical')),expression:\"tooltip('Vertical')\"}],class:(\"layout-icon \" + (_vm.displayLayout === 'vertical' ? 'selected' : '')),attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.updateDisplayLayout('vertical')}}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LayoutSelector.vue?vue&type=template&id=c819d738&scoped=true&\"\nimport script from \"./LayoutSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LayoutSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LayoutSelector.vue?vue&type=style&index=0&id=c819d738&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c819d738\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('span',{staticClass:\"options-label\"},[_vm._v(\"Icon Size\")]),_c('div',{staticClass:\"display-options\"},[_c('IconSmall',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Small')),expression:\"tooltip('Small')\"}],class:(\"layout-icon \" + (_vm.iconSize === 'small' ? 'selected' : '')),attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.updateIconSize('small')}}}),_c('IconMedium',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Medium')),expression:\"tooltip('Medium')\"}],class:(\"layout-icon \" + (_vm.iconSize === 'medium' ? 'selected' : '')),attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.updateIconSize('medium')}}}),_c('IconLarge',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip('Large')),expression:\"tooltip('Large')\"}],class:(\"layout-icon \" + (_vm.iconSize === 'large' ? 'selected' : '')),attrs:{\"tabindex\":\"-2\"},on:{\"click\":function($event){return _vm.updateIconSize('large')}}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSizeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSizeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ItemSizeSelector.vue?vue&type=template&id=58966274&scoped=true&\"\nimport script from \"./ItemSizeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemSizeSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ItemSizeSelector.vue?vue&type=style&index=0&id=58966274&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58966274\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"slide-fade\"}},[(!_vm.shouldHide)?_c('div',{staticClass:\"kb-sc-info\"},[_c('h5',[_vm._v(\"There are keyboard shortcuts! ⌨️🙌\")]),_c('div',{staticClass:\"close\",attrs:{\"title\":\"Hide forever [Esc]\"},on:{\"click\":function($event){return _vm.hideWelcomeHelper()}}},[_vm._v(\"x\")]),_c('p',{attrs:{\"title\":\"Press [Esc] to hide this tip forever. See there's even a shortcut for that! 🚀\"}},[_vm._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 🥳 \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardShortcutInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardShortcutInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeyboardShortcutInfo.vue?vue&type=template&id=080c9684&scoped=true&\"\nimport script from \"./KeyboardShortcutInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./KeyboardShortcutInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KeyboardShortcutInfo.vue?vue&type=style&index=0&id=080c9684&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"080c9684\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SettingsContainer.vue?vue&type=template&id=d4f70440&scoped=true&\"\nimport script from \"./SettingsContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./SettingsContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SettingsContainer.vue?vue&type=style&index=0&id=d4f70440&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4f70440\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Collapsable',{attrs:{\"title\":_vm.title,\"icon\":_vm.icon,\"uniqueKey\":_vm.groupId,\"collapsed\":_vm.displayData.collapsed,\"cols\":_vm.displayData.cols,\"rows\":_vm.displayData.rows,\"color\":_vm.displayData.color,\"customStyles\":_vm.displayData.customStyles}},[(!_vm.items || _vm.items.length < 1)?_c('div',{staticClass:\"no-items\"},[_vm._v(\" No Items to Show Yet \")]):_c('div',{class:(\"there-are-items \" + (_vm.isGridLayout? 'item-group-grid': '')),style:(_vm.gridStyle)},[_vm._l((_vm.items),function(item,index){return _c('Item',{key:(index + \"_\" + (_vm.makeId(item.title))),attrs:{\"id\":(index + \"_\" + (_vm.makeId(item.title))),\"url\":item.url,\"title\":item.title,\"description\":item.description,\"icon\":item.icon,\"target\":item.target,\"color\":item.color,\"backgroundColor\":item.backgroundColor,\"itemSize\":_vm.newItemSize},on:{\"itemClicked\":function($event){return _vm.$emit('itemClicked')},\"triggerModal\":_vm.triggerModal}})}),_c('div',{ref:\"modalContainer\"})],2),_c('IframeModal',{ref:(\"iframeModal-\" + _vm.groupId),attrs:{\"name\":(\"iframeModal-\" + _vm.groupId)},on:{\"closed\":function($event){return _vm.$emit('itemClicked')},\"modalChanged\":_vm.modalChanged}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.getTooltipOptions()),expression:\"getTooltipOptions()\"}],class:(\"item \" + (!_vm.icon? 'short': '') + \" size-\" + _vm.itemSize),style:((\"--open-icon: \" + (_vm.getUnicodeOpeningIcon()) + \"; \" + _vm.customStyles)),attrs:{\"href\":_vm.target !== 'iframe' ? _vm.url : '#',\"target\":_vm.target === 'newtab' ? '_blank' : '',\"rel\":\"noopener noreferrer\",\"tabindex\":\"0\",\"id\":(\"link-\" + _vm.id)},on:{\"click\":_vm.itemOpened}},[_c('div',{class:(\"tile-title \" + (!_vm.icon? 'bounce': '')),attrs:{\"id\":(\"tile-\" + _vm.id)}},[_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"overflow-dots\"},[_vm._v(\"...\")]),_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.description))])]),_c('Icon',{staticClass:\"bounce\",style:(_vm.customStyles),attrs:{\"icon\":_vm.icon,\"url\":_vm.url,\"size\":_vm.itemSize,\"color\":_vm.color}}),_c('ItemOpenMethodIcon',{staticClass:\"opening-method-icon\",attrs:{\"isSmall\":!_vm.icon,\"openingMethod\":_vm.target,\"position\":_vm.itemSize === 'medium'? 'bottom right' : 'top right'}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.iconType === 'font-awesome')?_c('i',{class:(_vm.icon + \" \" + _vm.size)}):(_vm.icon)?_c('img',{class:(\"tile-icon \" + _vm.size + \" \" + (_vm.broken ? 'broken' : '')),attrs:{\"src\":_vm.iconPath},on:{\"error\":_vm.imageNotFound}}):_vm._e(),(_vm.broken)?_c('BrokenImage',{staticClass:\"missing-image\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint no-console: [\"error\", { allow: [\"warn\", \"error\"] }] */\n\n/**\n * Function called when an error happens\n * If you wish to use an error logging service, put code for it here\n */\nconst ErrorHandler = function handler(msg) {\n console.warn(msg);\n};\n\nexport default ErrorHandler;\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ItemIcon.vue?vue&type=template&id=3d8a077b&\"\nimport script from \"./ItemIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ItemIcon.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.makeClass(_vm.position, _vm.isSmall, _vm.isTransparent)},[(_vm.openingMethod === 'newtab')?_c('NewTabOpenIcon'):(_vm.openingMethod === 'sametab')?_c('SameTabOpenIcon'):(_vm.openingMethod === 'iframe')?_c('IframeOpenIcon'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemOpenMethodIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemOpenMethodIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ItemOpenMethodIcon.vue?vue&type=template&id=17201835&scoped=true&\"\nimport script from \"./ItemOpenMethodIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemOpenMethodIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ItemOpenMethodIcon.vue?vue&type=style&index=0&id=17201835&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17201835\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=26855448&ref=container&\"\nimport script from \"./Item.vue?vue&type=script&lang=js&\"\nexport * from \"./Item.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./Item.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"collapsable \" + (_vm.checkSpanNum(_vm.cols, 'col')) + \" \" + (_vm.checkSpanNum(_vm.rows, 'row'))),style:(((_vm.color ? 'background: '+_vm.color : '') + \"; \" + (_vm.sanitizeCustomStyles(_vm.customStyles)) + \";\"))},[_c('input',{staticClass:\"toggle\",attrs:{\"id\":(\"collapsible-\" + _vm.uniqueKey),\"type\":\"checkbox\",\"tabIndex\":\"-1\"},domProps:{\"checked\":_vm.getCollapseState()},on:{\"change\":_vm.collapseChanged}}),_c('label',{staticClass:\"lbl-toggle\",attrs:{\"for\":(\"collapsible-\" + _vm.uniqueKey),\"tabindex\":\"-1\"}},[(_vm.icon)?_c('Icon',{staticClass:\"section-icon\",attrs:{\"icon\":_vm.icon,\"size\":\"small\"}}):_vm._e(),_c('h3',[_vm._v(_vm._s(_vm.title))])],1),_c('div',{staticClass:\"collapsible-content\"},[_c('div',{staticClass:\"content-inner\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Collapsable.vue?vue&type=template&id=3f92488c&scoped=true&\"\nimport script from \"./Collapsable.vue?vue&type=script&lang=js&\"\nexport * from \"./Collapsable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Collapsable.vue?vue&type=style&index=0&id=3f92488c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f92488c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal',{attrs:{\"name\":_vm.name,\"resizable\":true,\"width\":\"80%\",\"height\":\"80%\"},on:{\"closed\":function($event){return _vm.modalClosed()}}},[_c('div',{attrs:{\"slot\":\"top-right\"},on:{\"click\":function($event){return _vm.hide()}},slot:\"top-right\"},[_vm._v(\"Close\")]),_c('a',{staticClass:\"close-button\",attrs:{\"title\":\"Close\"},on:{\"click\":function($event){return _vm.hide()}}},[_vm._v(\"x\")]),(_vm.url)?_c('iframe',{staticClass:\"frame\",attrs:{\"src\":_vm.url},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.close.apply(null, arguments)}}}):_c('div',{staticClass:\"no-url\"},[_vm._v(\"No URL Specified\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","