diff --git a/index.html b/index.html index 780e1d8a..91ea39d6 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.9a5bfb06.js b/js/about.94429d96.js similarity index 99% rename from js/about.9a5bfb06.js rename to js/about.94429d96.js index 457d2465..87f3a25e 100644 --- a/js/about.9a5bfb06.js +++ b/js/about.94429d96.js @@ -1,2 +1,2 @@ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{1792:function(t,e,i){"use strict";i.d(e,"a",(function(){return s})),i.d(e,"b",(function(){return o}));var s=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},o=[function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("article",{staticClass:"about"},[i("h1",[t._v("About Dashy")]),i("section",[i("h2",[t._v("Project Overview")]),i("p",[t._v(" Dashy is a self-hosted startpage for keeping your running applications and services organised. The aim of Dashy is to provide an easy-to-deploy, highly customizable and functianl dashboard, in order to improvde productivity and enable easy organisation of running services or web links. ")])]),i("section",[i("h2",[t._v("Source")]),i("p",[t._v(" Dashy's source is available through "),i("a",{attrs:{href:"https://github.com/lissy93/dashy"}},[t._v("GitHub")]),t._v(", and the Docker image is on "),i("a",{attrs:{href:"https://hub.docker.com/r/lissy93/dashy"}},[t._v("DockerHub")]),t._v(". ")])]),i("section",[i("h2",[t._v("Reporting a Bug")]),i("p",[t._v(" If you've come across an bug in Dashy, please "),i("a",{attrs:{href:"https://git.io/JnqPR"}},[t._v("open an issue")]),t._v(", so that it can be fixed. ")])]),i("section",[i("h2",[t._v("Getting Support")]),i("p",[t._v(" If you need any help deploying, using, or developing Dashy, feel free to "),i("a",{attrs:{href:"https://git.io/JnqiA"}},[t._v("open a support ticket")]),t._v(" or start a "),i("a",{attrs:{href:"https://github.com/Lissy93/dashy/discussions"}},[t._v("discussion")]),t._v(" on GitHub. ")])]),i("section",[i("h2",[t._v("About the Author")]),i("a",{attrs:{href:"https://aliciasykes.com"}},[i("img",{staticClass:"aht-pic",attrs:{src:"https://i.ibb.co/FnxqTfx/aht-bot-round.png",alt:"Alicia Sykes"}})]),t._v(" Dashy is developed an maintained by "),i("a",{attrs:{href:"https://aliciasykes.com"}},[t._v("Alicia Sykes")]),t._v(" ("),i("a",{attrs:{href:"https://github.com/lissy93"}},[t._v("@Lissy93")]),t._v("), with support from the community. "),i("ul",[i("li",[i("b",[t._v("PGP Key")]),t._v(" - "),i("a",{attrs:{href:"https://keybase.io/aliciasykes/pgp_keys.asc?fingerprint=0688f8d34587d954e9e51fb8fedb68f55c0283a7"}},[i("code",[t._v("0688 F8D3 4587 D954 E9E5 1FB8 FEDB 68F5 5C02 83A7")])])]),i("li",[i("b",[t._v("BTC Address")]),t._v(" - "),i("code",[t._v("3853bSxupMjvxEYfwGDGAaLZhTKxB2vEVC")])]),i("li",[i("b",[t._v("Mail")]),t._v(" - "),i("code",[t._v("alicia at omg dot lol")])]),i("li",[i("b",[t._v("Blog")]),t._v(" - "),i("a",{attrs:{href:"https://notes.aliciasykes.com"}},[t._v("notes.aliciasykes.com")])])])]),i("section",{staticClass:"license"},[i("h2",[t._v("License")]),i("code",[t._v(" Copyright © 2021 Alicia Sykes (https://aliciasykes.com) ")]),i("br"),i("br"),i("code",[t._v(" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: ")]),i("br"),i("br"),i("code",[t._v(" The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. ")]),i("br"),i("br"),i("code",[t._v(" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWAREOR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ")])])])}]},"35a2":function(t,e,i){},4869:function(t,e,i){"use strict";i("35a2")},5679:function(t,e){document.getElementsByTagName("html")[0].setAttribute("data-theme","callisto")},6109:function(t,e,i){"use strict";i.r(e);var s=i("5679"),o=i.n(s);for(var a in s)["default"].indexOf(a)<0&&function(t){i.d(e,t,(function(){return s[t]}))}(a);e["default"]=o.a},f820:function(t,e,i){"use strict";i.r(e);var s=i("1792"),o=i("6109");for(var a in o)["default"].indexOf(a)<0&&function(t){i.d(e,t,(function(){return o[t]}))}(a);i("4869");var n=i("2877"),r=Object(n["a"])(o["default"],s["a"],s["b"],!1,null,"502c8927",null);e["default"]=r.exports}}]); -//# sourceMappingURL=about.9a5bfb06.js.map \ No newline at end of file +//# sourceMappingURL=about.94429d96.js.map \ No newline at end of file diff --git a/js/about.9a5bfb06.js.map b/js/about.94429d96.js.map similarity index 99% rename from js/about.9a5bfb06.js.map rename to js/about.94429d96.js.map index e2ce6498..bc51f2b7 100644 --- a/js/about.9a5bfb06.js.map +++ b/js/about.94429d96.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/views/About.vue?888e","webpack:///./src/views/About.vue?ac07","webpack:///src/views/About.vue","webpack:///./src/views/About.vue?060c","webpack:///./src/views/About.vue"],"names":["render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","staticClass","_v","attrs","document","getElementsByTagName","setAttribute","component"],"mappings":"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","file":"js/about.9a5bfb06.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('article',{staticClass:\"about\"},[_c('h1',[_vm._v(\"About Dashy\")]),_c('section',[_c('h2',[_vm._v(\"Project Overview\")]),_c('p',[_vm._v(\" Dashy is a self-hosted startpage for keeping your running applications and services organised. The aim of Dashy is to provide an easy-to-deploy, highly customizable and functianl dashboard, in order to improvde productivity and enable easy organisation of running services or web links. \")])]),_c('section',[_c('h2',[_vm._v(\"Source\")]),_c('p',[_vm._v(\" Dashy's source is available through \"),_c('a',{attrs:{\"href\":\"https://github.com/lissy93/dashy\"}},[_vm._v(\"GitHub\")]),_vm._v(\", and the Docker image is on \"),_c('a',{attrs:{\"href\":\"https://hub.docker.com/r/lissy93/dashy\"}},[_vm._v(\"DockerHub\")]),_vm._v(\". \")])]),_c('section',[_c('h2',[_vm._v(\"Reporting a Bug\")]),_c('p',[_vm._v(\" If you've come across an bug in Dashy, please \"),_c('a',{attrs:{\"href\":\"https://git.io/JnqPR\"}},[_vm._v(\"open an issue\")]),_vm._v(\", so that it can be fixed. \")])]),_c('section',[_c('h2',[_vm._v(\"Getting Support\")]),_c('p',[_vm._v(\" If you need any help deploying, using, or developing Dashy, feel free to \"),_c('a',{attrs:{\"href\":\"https://git.io/JnqiA\"}},[_vm._v(\"open a support ticket\")]),_vm._v(\" or start a \"),_c('a',{attrs:{\"href\":\"https://github.com/Lissy93/dashy/discussions\"}},[_vm._v(\"discussion\")]),_vm._v(\" on GitHub. \")])]),_c('section',[_c('h2',[_vm._v(\"About the Author\")]),_c('a',{attrs:{\"href\":\"https://aliciasykes.com\"}},[_c('img',{staticClass:\"aht-pic\",attrs:{\"src\":\"https://i.ibb.co/FnxqTfx/aht-bot-round.png\",\"alt\":\"Alicia Sykes\"}})]),_vm._v(\" Dashy is developed an maintained by \"),_c('a',{attrs:{\"href\":\"https://aliciasykes.com\"}},[_vm._v(\"Alicia Sykes\")]),_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://github.com/lissy93\"}},[_vm._v(\"@Lissy93\")]),_vm._v(\"), with support from the community. \"),_c('ul',[_c('li',[_c('b',[_vm._v(\"PGP Key\")]),_vm._v(\" - \"),_c('a',{attrs:{\"href\":\"https://keybase.io/aliciasykes/pgp_keys.asc?fingerprint=0688f8d34587d954e9e51fb8fedb68f55c0283a7\"}},[_c('code',[_vm._v(\"0688 F8D3 4587 D954 E9E5 1FB8 FEDB 68F5 5C02 83A7\")])])]),_c('li',[_c('b',[_vm._v(\"BTC Address\")]),_vm._v(\" - \"),_c('code',[_vm._v(\"3853bSxupMjvxEYfwGDGAaLZhTKxB2vEVC\")])]),_c('li',[_c('b',[_vm._v(\"Mail\")]),_vm._v(\" - \"),_c('code',[_vm._v(\"alicia at omg dot lol\")])]),_c('li',[_c('b',[_vm._v(\"Blog\")]),_vm._v(\" - \"),_c('a',{attrs:{\"href\":\"https://notes.aliciasykes.com\"}},[_vm._v(\"notes.aliciasykes.com\")])])])]),_c('section',{staticClass:\"license\"},[_c('h2',[_vm._v(\"License\")]),_c('code',[_vm._v(\" Copyright © 2021 Alicia Sykes (https://aliciasykes.com) \")]),_c('br'),_c('br'),_c('code',[_vm._v(\" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: \")]),_c('br'),_c('br'),_c('code',[_vm._v(\" The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. \")]),_c('br'),_c('br'),_c('code',[_vm._v(\" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWAREOR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \")])])])}]\n\nexport { render, staticRenderFns }","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!./About.vue?vue&type=style&index=0&id=502c8927&scoped=true&lang=scss&\"","\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!./About.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!./About.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=502c8927&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=js&\"\nexport * from \"./About.vue?vue&type=script&lang=js&\"\nimport style0 from \"./About.vue?vue&type=style&index=0&id=502c8927&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 \"502c8927\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/views/About.vue?e933","webpack:///./src/views/About.vue?ac07","webpack:///src/views/About.vue","webpack:///./src/views/About.vue?060c","webpack:///./src/views/About.vue"],"names":["render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","staticClass","_v","attrs","document","getElementsByTagName","setAttribute","component"],"mappings":"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","file":"js/about.94429d96.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('article',{staticClass:\"about\"},[_c('h1',[_vm._v(\"About Dashy\")]),_c('section',[_c('h2',[_vm._v(\"Project Overview\")]),_c('p',[_vm._v(\" Dashy is a self-hosted startpage for keeping your running applications and services organised. The aim of Dashy is to provide an easy-to-deploy, highly customizable and functianl dashboard, in order to improvde productivity and enable easy organisation of running services or web links. \")])]),_c('section',[_c('h2',[_vm._v(\"Source\")]),_c('p',[_vm._v(\" Dashy's source is available through \"),_c('a',{attrs:{\"href\":\"https://github.com/lissy93/dashy\"}},[_vm._v(\"GitHub\")]),_vm._v(\", and the Docker image is on \"),_c('a',{attrs:{\"href\":\"https://hub.docker.com/r/lissy93/dashy\"}},[_vm._v(\"DockerHub\")]),_vm._v(\". \")])]),_c('section',[_c('h2',[_vm._v(\"Reporting a Bug\")]),_c('p',[_vm._v(\" If you've come across an bug in Dashy, please \"),_c('a',{attrs:{\"href\":\"https://git.io/JnqPR\"}},[_vm._v(\"open an issue\")]),_vm._v(\", so that it can be fixed. \")])]),_c('section',[_c('h2',[_vm._v(\"Getting Support\")]),_c('p',[_vm._v(\" If you need any help deploying, using, or developing Dashy, feel free to \"),_c('a',{attrs:{\"href\":\"https://git.io/JnqiA\"}},[_vm._v(\"open a support ticket\")]),_vm._v(\" or start a \"),_c('a',{attrs:{\"href\":\"https://github.com/Lissy93/dashy/discussions\"}},[_vm._v(\"discussion\")]),_vm._v(\" on GitHub. \")])]),_c('section',[_c('h2',[_vm._v(\"About the Author\")]),_c('a',{attrs:{\"href\":\"https://aliciasykes.com\"}},[_c('img',{staticClass:\"aht-pic\",attrs:{\"src\":\"https://i.ibb.co/FnxqTfx/aht-bot-round.png\",\"alt\":\"Alicia Sykes\"}})]),_vm._v(\" Dashy is developed an maintained by \"),_c('a',{attrs:{\"href\":\"https://aliciasykes.com\"}},[_vm._v(\"Alicia Sykes\")]),_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://github.com/lissy93\"}},[_vm._v(\"@Lissy93\")]),_vm._v(\"), with support from the community. \"),_c('ul',[_c('li',[_c('b',[_vm._v(\"PGP Key\")]),_vm._v(\" - \"),_c('a',{attrs:{\"href\":\"https://keybase.io/aliciasykes/pgp_keys.asc?fingerprint=0688f8d34587d954e9e51fb8fedb68f55c0283a7\"}},[_c('code',[_vm._v(\"0688 F8D3 4587 D954 E9E5 1FB8 FEDB 68F5 5C02 83A7\")])])]),_c('li',[_c('b',[_vm._v(\"BTC Address\")]),_vm._v(\" - \"),_c('code',[_vm._v(\"3853bSxupMjvxEYfwGDGAaLZhTKxB2vEVC\")])]),_c('li',[_c('b',[_vm._v(\"Mail\")]),_vm._v(\" - \"),_c('code',[_vm._v(\"alicia at omg dot lol\")])]),_c('li',[_c('b',[_vm._v(\"Blog\")]),_vm._v(\" - \"),_c('a',{attrs:{\"href\":\"https://notes.aliciasykes.com\"}},[_vm._v(\"notes.aliciasykes.com\")])])])]),_c('section',{staticClass:\"license\"},[_c('h2',[_vm._v(\"License\")]),_c('code',[_vm._v(\" Copyright © 2021 Alicia Sykes (https://aliciasykes.com) \")]),_c('br'),_c('br'),_c('code',[_vm._v(\" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: \")]),_c('br'),_c('br'),_c('code',[_vm._v(\" The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. \")]),_c('br'),_c('br'),_c('code',[_vm._v(\" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWAREOR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \")])])])}]\n\nexport { render, staticRenderFns }","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!./About.vue?vue&type=style&index=0&id=502c8927&scoped=true&lang=scss&\"","\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!./About.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!./About.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=502c8927&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=js&\"\nexport * from \"./About.vue?vue&type=script&lang=js&\"\nimport style0 from \"./About.vue?vue&type=style&index=0&id=502c8927&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 \"502c8927\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/js/dashy.3208546e.js b/js/dashy.304b37fc.js similarity index 99% rename from js/dashy.3208546e.js rename to js/dashy.304b37fc.js index 4d117fa6..4e1f41b8 100644 --- a/js/dashy.3208546e.js +++ b/js/dashy.304b37fc.js @@ -1,2 +1,2 @@ -(function(t){function e(e){for(var a,o,r=e[0],c=e[1],l=e[2],u=0,d=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(t)}},O=T,E=(s("d16d"),Object(w["a"])(O,k,x,!1,null,"68c1bd5c",null)),L=E.exports,A={name:"Header",components:{PageTitle:_,Nav:L},props:{pageInfo:Object},data(){return{hiddenComponents:this.pageInfo.hiddenComponents||{},titleVisible:p["visibleComponents"].pageTitle,navVisible:p["visibleComponents"].navigation}}},N=A,z=(s("4239"),Object(w["a"])(N,g,v,!1,null,"70a33270",null)),M=z.exports,P=function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.text&&""!==t.text?s("footer",{class:t.scrollVisible?"":"fixed",domProps:{innerHTML:t._s(t.text)}}):s("footer",{class:t.scrollVisible?"":"fixed"},[t._v(" Developed by "),s("a",{attrs:{href:t.authorUrl}},[t._v(t._s(t.authorName))]),t._v(". Licensed under "),s("a",{attrs:{href:t.licenseUrl}},[t._v(t._s(t.license))]),t._v(" "+t._s(t.showCopyright?"©":"")+" "+t._s(t.date)+". Get the "),s("a",{attrs:{href:t.repoUrl}},[t._v("Source Code")]),t._v(". ")])},B=[],j={name:"Footer",props:{text:String,authorName:{type:String,default:"Alicia Sykes"},authorUrl:{type:String,default:"https://aliciasykes.com"},license:{type:String,default:"MIT"},licenseUrl:{type:String,default:"https://gist.github.com/Lissy93/143d2ee01ccc5c052a17"},date:{type:String,default:""+(new Date).getFullYear()},showCopyright:{type:Boolean,default:!0},repoUrl:{type:String,default:"https://github.com/lissy93/dashy"}},data:()=>({scrollVisible:!1}),mounted(){this.scrollVisible=document.body.clientHeight>window.innerHeight}},H=j,$=(s("1ac7"),Object(w["a"])(H,P,B,!1,null,"23129a2b",null)),D=$.exports,V=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("transition",{attrs:{name:"slide-fade"}},[t.isLoading?s("div",{class:t.c,attrs:{id:"loading"},on:{click:function(e){t.c="hide"}}},[s("h2",[t._v("Dashy")]),s("div",{staticClass:"inner-container"},[s("p",[t._v("Loading")]),s("span",{staticClass:"dots-cont"},[s("span",{staticClass:"dot dot-1"}),s("span",{staticClass:"dot dot-2"}),s("span",{staticClass:"dot dot-3"}),s("span",{staticClass:"dot dot-4"})])])]):t._e()])},U=[],R={name:"LoadingScreen",props:{isLoading:{type:Boolean,default:!1}},data:()=>({c:""})},K=R,F=(s("2bb3"),Object(w["a"])(K,V,U,!1,null,"a7bc1de6",null)),W=F.exports,G=s("8b8e"),J=s.n(G);const q=(()=>{let t=h.a.appConfig;return localStorage[p["localStorageKeys"].APP_CONFIG]?t=JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG]):J.a.appConfig&&(t=J.a.appConfig),t.layout=localStorage[p["localStorageKeys"].LAYOUT_ORIENTATION]||J.a.appConfig.layout||h.a.layout,t.iconSize=localStorage[p["localStorageKeys"].ICON_SIZE]||J.a.appConfig.iconSize||h.a.iconSize,t})(),Y=(()=>{const t=h.a.pageInfo;let e;try{e=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(a){e={}}const s=J.a.pageInfo||t;return s.title=e.title||J.a.pageInfo.title||t.title,s.description=e.description||J.a.pageInfo.description||t.description,s.navLinks=e.navLinks||J.a.pageInfo.navLinks||t.navLinks,s.footerText=e.footerText||J.a.pageInfo.footerText||t.footerText,s})(),Z=(()=>{const t=localStorage[p["localStorageKeys"].CONF_SECTIONS];if(t)try{const e=JSON.parse(t);if(e.length>=1)return e}catch(e){}return J.a.sections})(),X=(()=>{const t={appConfig:q,pageInfo:Y,sections:Z};return t})();var Q={name:"app",components:{Header:M,Footer:D,LoadingScreen:W},provide:{config:X},data(){return{showFooter:h.a.visibleComponents.footer,isLoading:!0,appConfig:q,pageInfo:Y}},methods:{getFooterText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},injectCustomStyles(t){const e=document.createElement("style");e.textContent=t,document.head.append(e)},shouldShowSplash(){return this.appConfig.showSplashScreen||!localStorage[p["localStorageKeys"].HIDE_WELCOME_BANNER]},hideSplash(){this.shouldShowSplash()&&!this.shouldHidePageComponents()?setTimeout(()=>{this.isLoading=!1},p["splashScreenTime"]||2e3):this.isLoading=!1},shouldHidePageComponents(){return["download"].includes(this.$route.name)}},computed:{currentRouteName(){return this.$route.name}},mounted(){if(this.hideSplash(),this.appConfig.customCss){const t=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(t)}}},tt=Q,et=(s("5c0b"),Object(w["a"])(tt,m,f,!1,null,null,null)),st=et.exports,at=s("8c4f"),ot=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"home",style:t.getBackgroundImage()},[s("SettingsContainer",{ref:"filterComp",staticClass:"filter-container",attrs:{displayLayout:t.layout,iconSize:t.itemSizeBound,availableThemes:t.getExternalCSSLinks(),sections:t.getSections(t.sections),appConfig:t.appConfig,pageInfo:t.pageInfo,modalOpen:t.modalOpen},on:{"user-is-searchin":t.searching,"change-display-layout":t.setLayoutOrientation,"change-icon-size":t.setItemSize,"change-modal-visibility":t.updateModalVisibility}}),t.checkTheresData(t.sections)?s("div",{class:"item-group-container orientation-"+t.layout+" item-size-"+t.itemSizeBound},t._l(t.getSections(t.sections),(function(e,a){return s("ItemGroup",{key:a,class:0===t.filterTiles(e.items).length&&t.searchValue?"no-results":"",attrs:{title:e.name,icon:e.icon||void 0,displayData:t.getDisplayData(e),groupId:"section-"+a,items:t.filterTiles(e.items),itemSize:t.itemSizeBound},on:{itemClicked:function(e){return t.finishedSearching()},"change-modal-visibility":t.updateModalVisibility}})})),1):t._e(),t.checkIfResults()?s("div",{staticClass:"no-data"},[t._v(" "+t._s(t.searchValue?"No Search Results":"No Data Configured")+" ")]):t._e()],1)},nt=[],it=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("section",[t.searchVisible?s("SearchBar",{ref:"SearchBar",attrs:{active:!t.modalOpen},on:{"user-is-searchin":t.userIsTypingSomething}}):t._e(),s("div",{staticClass:"options-outer"},[s("div",{class:"options-container "+(t.settingsVisible?"":"hide")},[s("ThemeSelector",{attrs:{themes:t.availableThemes,confTheme:t.getInitialTheme(),userThemes:t.getUserThemes()}}),s("LayoutSelector",{attrs:{displayLayout:t.displayLayout},on:{layoutUpdated:t.updateDisplayLayout}}),s("ItemSizeSelector",{attrs:{iconSize:t.iconSize},on:{iconSizeUpdated:t.updateIconSize}}),s("ConfigLauncher",{attrs:{sections:t.sections,pageInfo:t.pageInfo,appConfig:t.appConfig},on:{modalChanged:t.modalChanged}}),t.isUserLoggedIn()?s("IconLogout",{directives:[{name:"tooltip",rawName:"v-tooltip",value:"Logout",expression:"'Logout'"}],staticClass:"logout-icon",on:{click:function(e){return t.logout()}}}):t._e()],1),s("div",{class:"show-hide-container "+(t.settingsVisible?"hide-btn":"show-btn")},[s("button",{directives:[{name:"tooltip",rawName:"v-tooltip",value:(t.settingsVisible?"Hide":"Open")+" Settings Menu",expression:"`${settingsVisible? 'Hide' : 'Open'} Settings Menu`"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.toggleSettingsVisibility()}}},[t.settingsVisible?s("IconClose"):s("IconOpen")],1)])]),s("KeyboardShortcutInfo")],1)},rt=[],ct=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("form",[s("label",{attrs:{for:"filter-tiles"}},[t._v("Search")]),s("input",{directives:[{name:"model",rawName:"v-model",value:t.input,expression:"input"}],ref:"filter",attrs:{id:"filter-tiles",placeholder:"Start typing to filter..."},domProps:{value:t.input},on:{input:[function(e){e.target.composing||(t.input=e.target.value)},t.userIsTypingSomething],keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.clearFilterInput.apply(null,arguments)}}}),t.input.length>0?s("i",{staticClass:"clear-search",attrs:{title:"Clear search"},on:{click:t.clearFilterInput}},[t._v("x")]):t._e()])},lt=[];class ut{constructor(t){this.index=t}resetIndex(){this.index=0}arrowNavigation(t){void 0===this.index?this.index=0:37===t?this.index-=1:38===t?this.index=ut.goToPrevious(this.index):39===t?this.index+=1:40===t&&(this.index=ut.goToNext(this.index)),this.index=ut.getSafeElementIndex(this.index),ut.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(t){const e=ut.getNumResults();return t<0?e-1:t>=e?0:t}static selectItemByIndex(t){return t>=0&&t<=ut.getNumResults()?document.getElementsByClassName("item")[t]:[document.getElementsByClassName("item")]}static findPreviousRow(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetTop===e,s=(t,a)=>t>=ut.getNumResults()?s(0,a):e(t,a)?s(t-1,a):t,a=ut.selectItemByIndex(t).offsetTop;return s(t,a)}static goToPrevious(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetToput.selectItemByIndex(t).offsetTop===e,s=(t,a)=>t>=ut.getNumResults()?s(0,a):e(t,a)?s(t+1,a):t,a=ut.selectItemByIndex(t).offsetTop;return s(t,a)}static goToNext(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetTop>ut.selectItemByIndex(e).offsetTop,s=ut.findNextRow(t),a=s-t,o=s-ut.findPreviousRow(t)-1,n=e(t,s)?0:o-a;return s+n}}var dt={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new ut}},mounted(){window.addEventListener("keydown",t=>{const e=document.activeElement.id,{key:s,keyCode:a}=t;this.active&&(/^[a-zA-Z]$/.test(s)&&"filter-tiles"!==e?(this.$refs.filter.focus(),this.userIsTypingSomething()):a>=37&&a<=40?this.akn.arrowNavigation(a):27===a&&this.clearFilterInput())})},methods:{userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()}}},pt=dt,ht=(s("8949"),Object(w["a"])(pt,ct,lt,!1,null,"72e6bff4",null)),mt=ht.exports,ft=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"config-options"},[s("span",[t._v("Config")]),s("div",{staticClass:"config-buttons"},[s("IconSpanner",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Update configuration locally"),expression:"tooltip('Update configuration locally')"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.showEditor()}}}),s("IconCloud",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Backup / restore cloud config"),expression:"tooltip('Backup / restore cloud config')"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.showCloudModal()}}})],1),s("modal",{attrs:{name:t.modalNames.CONF_EDITOR,resizable:!0,width:"60%",height:"85%",classes:"dashy-modal"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[s("ConfigContainer",{attrs:{config:t.combineConfig()}})],1),s("modal",{attrs:{name:t.modalNames.CLOUD_BACKUP,resizable:!0,width:"65%",height:"60%",classes:"dashy-modal"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[s("CloudBackupRestore",{attrs:{config:t.combineConfig()}})],1)],1)},gt=[],vt=s("35c3"),yt=s.n(vt),bt=s("6780"),Ct=s.n(bt),St=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("Tabs",{ref:"tabView",attrs:{navAuto:!0,name:"Add Item"}},[s("TabItem",{staticClass:"main-tab",attrs:{name:"Config"}},[s("div",{staticClass:"main-options-container"},[s("h2",[t._v("Configuration Options")]),s("a",{staticClass:"hyperlink-wrapper",on:{click:function(e){return t.downloadConfigFile("conf.yml",t.yaml)}}},[s("button",{staticClass:"config-button center"},[s("DownloadIcon",{staticClass:"button-icon"}),t._v(" Download Config ")],1)]),s("button",{staticClass:"config-button center",on:{click:function(e){return t.goToEdit()}}},[s("EditIcon",{staticClass:"button-icon"}),t._v(" Edit Config ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.goToCustomCss()}}},[s("CustomCssIcon",{staticClass:"button-icon"}),t._v(" Edit Custom CSS ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.openCloudSync()}}},[s("CloudIcon",{staticClass:"button-icon"}),t._v(" "+t._s(t.backupId?"Edit Cloud Sync":"Enable Cloud Sync")+" ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.openRebuildAppModal()}}},[s("RebuildIcon",{staticClass:"button-icon"}),t._v(" Rebuild Application ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.resetLocalSettings()}}},[s("DeleteIcon",{staticClass:"button-icon"}),t._v(" Reset Local Settings ")],1),s("p",{staticClass:"small-screen-note",staticStyle:{display:"none"}},[t._v(" You are using a very small screen, and some screens in this menu may not be optimal ")]),s("div",{staticClass:"config-note"},[s("span",[t._v(" It is recommend to make a backup of your conf.yml file, before making any changes. ")])])]),s("RebuildApp")],1),s("TabItem",{staticClass:"code-container",attrs:{name:"View Config"}},[s("pre",{attrs:{id:"conf-yaml"}},[t._v(t._s(t.yaml))]),s("div",{staticClass:"yaml-action-buttons"},[s("h2",[t._v("Actions")]),s("a",{staticClass:"yaml-button download",on:{click:function(e){return t.downloadConfigFile("conf.yml",t.yaml)}}},[t._v(" Download Config ")]),s("a",{staticClass:"yaml-button copy",on:{click:function(e){return t.copyConfigToClipboard()}}},[t._v("Copy Config")]),s("a",{staticClass:"yaml-button reset",on:{click:function(e){return t.resetLocalSettings()}}},[t._v("Reset Config")])])]),s("TabItem",{attrs:{name:"Edit Config"}},[s("JsonEditor",{attrs:{config:t.config}})],1),s("TabItem",{attrs:{name:"Custom Styles"}},[s("CustomCssEditor",{attrs:{config:t.config,initialCss:"hello"}})],1)],1)},wt=[],It=s("1020"),_t=s.n(It),kt=s("2e7b"),xt=s.n(kt),Tt=(s("1d89"),s("d97e"));const Ot=t=>t.split("\n").map(t=>t.trimRight()).join("\n"),Et=t=>{throw new Error("Error in Json to YAML conversion: "+t)},Lt=t=>{let e="";const s={undefined(){return"null"},null(){return"null"},number(t){return t},boolean(t){return t?"true":"false"},string(t){return JSON.stringify(t)},array(t){let a="";return 0===t.length?(a+="[]",a):(e=e.replace(/$/," "),t.forEach(t=>{const o=s[Object(Tt["typeOf"])(t)];o||Et(Object(Tt["typeOf"])(t)),a+=`\n${e}- ${o(t,!0)}`}),e=e.replace(/ {2}/,""),a)},object(t,a,o){let n="";return 0===Object.keys(t).length?(n+="{}",n):(o||(e=e.replace(/$/," ")),Object.keys(t).forEach((o,i)=>{const r=t[o],c=s[Object(Tt["typeOf"])(r)];"undefined"!==typeof r&&(c||Et(Object(Tt["typeOf"])(r)),a&&0===i||(n+="\n"+e),n+=`${o}: ${c(r)}`)}),e=e.replace(/ {2}/,""),n)},function(){return"[object Function]"}};return Ot(s[Object(Tt["typeOf"])(t)](t,!0,!0)+"\n")};var At=Lt,Nt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"json-editor-outer"},[s("v-jsoneditor",{attrs:{options:t.options,height:"500px"},model:{value:t.jsonData,callback:function(e){t.jsonData=e},expression:"jsonData"}}),s("div",{staticClass:"save-options"},[s("span",{staticClass:"save-option-title"},[t._v("Save Location:")]),s("div",{staticClass:"option"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"local",value:"local",disabled:!t.allowWriteToDisk},domProps:{checked:t._q(t.saveMode,"local")},on:{change:function(e){t.saveMode="local"}}}),s("label",{staticClass:"save-option-label",attrs:{for:"local"}},[t._v("Apply Locally")])]),s("div",{staticClass:"option"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"file",value:"file",disabled:!t.allowWriteToDisk},domProps:{checked:t._q(t.saveMode,"file")},on:{change:function(e){t.saveMode="file"}}}),s("label",{staticClass:"save-option-label",attrs:{for:"file"}},[t._v("Write Changes to Config File")])])]),s("button",{class:"save-button "+(t.isValid?"":"err"),on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),s("p",{staticClass:"errors"},[s("ul",[t._l(t.errorMessages,(function(e,a){return s("li",{key:a,class:"type-"+e.type},[t._v(" "+t._s(e.msg)+" ")])})),t.errorMessages.length<1?s("li",{staticClass:"type-valid"},[t._v(" Config is Valid ")]):t._e()],2)]),void 0!==t.saveSuccess?s("p",{class:"response-output status-"+(t.saveSuccess?"success":"fail")},[t._v(" "+t._s(t.saveSuccess?"Task Complete":"Task Failed")+" ")]):t._e(),s("p",{staticClass:"response-output"},[t._v(t._s(t.responseText))]),t.saveSuccess?s("p",{staticClass:"response-output"},[t._v(" The app should rebuild automatically. You will need to refresh the page for changes to take effect. ")]):t._e(),s("p",{staticClass:"note"},[t._v(" It is recommend to backup your existing confiruration before making any changes. ")])],1)},zt=[],Mt=s("bcb2"),Pt=s.n(Mt),Bt=s("831b"),jt=s("94f8"),Ht=s.n(jt);const $t=t=>Ht()(t.toString()).toString().toLowerCase(),Dt=t=>{const e=t.map(t=>$t(t));let s=!1;return document.cookie.split(";").forEach(t=>{if(t&&t.split("=").length>1){const a=t.split("=")[0].trim(),o=t.split("=")[1].trim();a===p["cookieKeys"].AUTH_TOKEN&&e.includes(o)&&(s=!0)}}),s},Vt=(t,e,s)=>{let a;return t?e?s.forEach(s=>{s.user===t&&(a=s.hash.toLowerCase()===Ht()(e).toString().toLowerCase()?{correct:!0,msg:"Logging in..."}:{correct:!1,msg:"Incorrect Password"})}):a={correct:!1,msg:"Missing Password"}:a={correct:!1,msg:"Missing Username"},a||{correct:!1,msg:"User not found"}},Ut=(t,e)=>{const s={user:t,hash:Ht()(e).toString().toLowerCase()};document.cookie=`authenticationToken=${$t(s)}; max-age=600`,localStorage.setItem(p["localStorageKeys"].USERNAME,t)},Rt=()=>{document.cookie="authenticationToken=null",localStorage.removeItem(p["localStorageKeys"].USERNAME)},Kt=t=>{if(!t||0===t.length)return!0;if(!Dt(t))return!1;const e=localStorage[p["localStorageKeys"].USERNAME];let s=!1;return t.forEach(t=>{t.user===e&&"admin"===t.type&&(s=!0)}),s};var Ft=s("bc3a"),Wt=s.n(Ft),Gt={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Pt.a},data(){return{jsonData:this.config,errorMessages:[],saveMode:"file",options:{schema:Bt,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors},jsonParser:At,responseText:"",saveSuccess:void 0,allowWriteToDisk:this.shouldAllowWriteToDisk()}},computed:{isValid(){return this.errorMessages.length<1}},mounted(){this.allowWriteToDisk||(this.saveMode="local")},methods:{shouldAllowWriteToDisk(){const{appConfig:t}=this.config;return!1!==t.allowConfigEdit&&Kt(t.auth)},save(){"local"!==this.saveMode&&this.allowWriteToDisk?"file"===this.saveMode?this.writeConfigToDisk():this.$toasted.show("Please select a Save Mode: Local or File"):this.saveConfigLocally()},writeConfigToDisk(){const t=this.jsonParser(this.jsonData),e=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,s=e+"/config-manager/save",a={"Content-Type":"text/plain"},o={config:t,timestamp:new Date},n=Wt.a.post(s,o,a);n.then(t=>{this.saveSuccess=t.data.success||!1,this.responseText=t.data.message,this.saveSuccess?(this.carefullyClearLocalStorage(),this.showToast("Config file written to disk succesfully",!0)):this.showToast("An error occurred saving config",!1)}).catch(t=>{this.saveSuccess=!1,this.responseText=t,this.showToast(t,!1)})},saveConfigLocally(){const t=this.jsonData;t.sections&&localStorage.setItem(p["localStorageKeys"].CONF_SECTIONS,JSON.stringify(t.sections)),t.pageInfo&&localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t.pageInfo)),t.appConfig&&localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(t.appConfig)),t.appConfig.theme&&localStorage.setItem(p["localStorageKeys"].THEME,t.appConfig.theme),this.showToast("Changes saved succesfully",!0)},carefullyClearLocalStorage(){localStorage.removeItem(p["localStorageKeys"].PAGE_INFO),localStorage.removeItem(p["localStorageKeys"].APP_CONFIG),localStorage.removeItem(p["localStorageKeys"].CONF_SECTIONS)},validationErrors(t){const e=[];t.forEach(t=>{switch(t.type){case"validation":e.push({type:"validation",msg:`Validatation Warning: ${t.error.keyword} ${t.error.message}`});break;case"error":e.push({type:"parse",msg:t.message});break;default:e.push({type:"editor",msg:"Error in JSON"});break}}),this.errorMessages=e},showToast(t,e){this.$toasted.show(t,{className:"toast-"+(e?"success":"error")})}}},Jt=Gt,qt=(s("80a7"),Object(w["a"])(Jt,Nt,zt,!1,null,null,null)),Yt=qt.exports,Zt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"json-editor-outer"},[s("prism-editor",{staticClass:"my-editor",attrs:{highlight:t.highlighter,"line-numbers":""},model:{value:t.customCss,callback:function(e){t.customCss=e},expression:"customCss"}}),s("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),t._m(0)],1)},Xt=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("p",{staticClass:"quick-note"},[s("b",[t._v("Note")]),t._v(": You will need to refresh the page for your changes to take effect. Styles overides are only stored locally, so it is reccomended to make a copy of your CSS. To remove all custom styles, delete the contents and hit Save Changes ")])}],Qt=s("e57a"),te=s("8c7a"),ee=(s("6605"),s("dff1"),s("cabf"),{name:"JsonEditor",props:{config:Object},components:{PrismEditor:Qt["a"]},data(){return{customCss:this.config.appConfig.customCss||"\n\n\n\n\n"}},methods:{validate(t){return""===t||t.match(/((?:^\s*)([\w#.@*,:\-.:>,*\s]+)\s*{(?:[\s]*)((?:[A-Za-z\- \s]+[:]\s*['"0-9\w .,/()\-!%]+;?)*)*\s*}(?:\s*))/gim)},save(){let t="";if(this.validate(this.customCss)){const e={...this.config.appConfig};e.customCss=this.customCss,localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(e)),t="Changes saved succesfully",this.inject(this.customCss),""===this.customCss&&setTimeout(()=>{location.reload()},1500)}else t="Error - Invalid CSS";this.$toasted.show(t)},inject(t){const e=t.replace(/<\/?[^>]+(>|$)/g,""),s=document.createElement("style");s.textContent=e,document.head.append(s)},highlighter(t){return Object(te["highlight"])(t,te["languages"].css)}}}),se=ee,ae=(s("9e50"),Object(w["a"])(se,Zt,Xt,!1,null,null,null)),oe=ae.exports,ne=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("modal",{attrs:{name:t.modalName,resizable:!0,width:"50%",height:"60%",classes:"dashy-modal"}},[s("div",{staticClass:"rebuild-app-container"},[s("h3",{staticClass:"rebuild-app-title"},[t._v("Rebuild Application")]),s("p",[t._v(" A rebuild is required for changes written to the conf.yml file to take effect. This should happen automatically, but if it hasn't, you can manually trigger it here."),s("br"),t._v(" This is not required for modifications stored locally. ")]),s("Button",{attrs:{click:t.startBuild,disabled:t.loading},scopedSlots:t._u([{key:"text",fn:function(){return[t._v(t._s(t.loading?"Building...":"Start Build"))]},proxy:!0},{key:"icon",fn:function(){return[s("RebuildIcon")]},proxy:!0}])}),t.loading?s("div",{staticClass:"loader-info"},[s("LoadingAnimation",{staticClass:"loader"}),s("p",{staticClass:"loading-message"},[t._v("This may take a few minutes...")])],1):t._e(),void 0!==t.success?s("div",{staticClass:"rebuild-response"},[t.success?s("p",{staticClass:"response-status success"},[t._v("✅ Build completed succesfully")]):s("p",{staticClass:"response-status failure"},[t._v("❌ Build operation failed")]),s("pre",{staticClass:"output"},[s("code",[t._v(t._s(t.output||t.error))])]),s("p",{staticClass:"rebuild-message"},[t._v(t._s(t.message))]),t.success?s("p",{staticClass:"rebuild-message"},[t._v(" A page reload is now required for changes to take effect ")]):t._e(),t.success?s("Button",{attrs:{click:t.refreshPage},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Reload Page")]},proxy:!0},{key:"icon",fn:function(){return[s("ReloadIcon")]},proxy:!0}],null,!1,1379687826)}):t._e()],1):t._e()],1)])},ie=[],re=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{attrs:{disabled:t.disabled},on:{click:function(e){return t.click()}}},[t._t("default"),t._t("text"),t._t("icon")],2)},ce=[],le={name:"Button",props:{text:String,click:Function,disabled:Boolean}},ue=le,de=(s("df27"),Object(w["a"])(ue,re,ce,!1,null,"620b35ec",null)),pe=de.exports,he=s("0911"),me=s.n(he),fe=s("3ff5"),ge=s.n(fe),ve=s("6266"),ye=s.n(ve),be={name:"RebuildApp",components:{Button:pe,RebuildIcon:me.a,ReloadIcon:ge.a,LoadingAnimation:ye.a},data:()=>({modalName:p["modalNames"].REBUILD_APP,loading:!1,success:void 0,error:"",output:"",message:""}),methods:{startBuild(){const t=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,e=t+"/config-manager/rebuild";this.loading=!0,Wt.a.get(e).then(t=>{this.finished(t.data||!1)}).catch(t=>{this.finished({success:!1,error:t})})},finished(t){if(this.loading=!1,t){const{success:e,output:s,error:a,message:o}=t;this.success=e,this.output=s,this.message=o,this.error=a}this.$toasted.show(this.success?"✅ Build Completed Succesfully":"❌ Build Failed",{className:"toast-"+(this.success?"success":"error")})},refreshPage(){location.reload()}}},Ce=be,Se=(s("7fda"),Object(w["a"])(Ce,ne,ie,!1,null,"1ee3fcba",null)),we=Se.exports,Ie=s("cbd9"),_e=s.n(Ie),ke=s("0278"),xe=s.n(ke),Te=s("e7fa"),Oe=s.n(Te),Ee=s("7da9"),Le=s.n(Ee),Ae={name:"ConfigContainer",data(){return{jsonParser:At,backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},props:{config:Object},computed:{sections:function(){return this.config.sections},yaml(){return this.jsonParser(this.config)}},components:{JsonEditor:Yt,CustomCssEditor:oe,RebuildApp:we,DownloadIcon:_e.a,DeleteIcon:xe.a,EditIcon:Oe.a,CloudIcon:Ct.a,CustomCssIcon:Le.a,RebuildIcon:me.a},methods:{goToEdit(){const t=this.$refs.tabView.navItems[2];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},goToMetaEdit(){const t=this.$refs.tabView.navItems[3];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},goToCustomCss(){const t=this.$refs.tabView.navItems[4];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},openRebuildAppModal(){this.$modal.show(p["modalNames"].REBUILD_APP)},openCloudSync(){this.$modal.show(p["modalNames"].CLOUD_BACKUP)},copyConfigToClipboard(){navigator.clipboard.writeText(this.jsonParser(this.config))},resetLocalSettings(){const t="This will remove all user settings from local storage, but won't effect your 'conf.yml' file. It is recommend to make a backup of your modified YAML settings first.\n\nAre you sure you want to proceed?",e=confirm(t);e&&(localStorage.clear(),this.$toasted.show("Data cleared succesfully"),setTimeout(()=>{location.reload(!0)},1900))},downloadConfigFile(t,e){const s=document.createElement("a");s.setAttribute("href","data:text/plain;charset=utf-8, "+encodeURIComponent(e)),s.setAttribute("download",t),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}},mounted(){_t.a.registerLanguage("yaml",xt.a);const t=_t.a.highlight(this.jsonParser(this.config),{language:"yaml"}).value;document.getElementById("conf-yaml").innerHTML=t}},Ne=Ae,ze=(s("c1bd"),s("1d47"),Object(w["a"])(Ne,St,wt,!1,null,"41a7f69b",null)),Me=ze.exports,Pe=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"cloud-backup-restore-wrapper"},[t._m(0),s("div",{staticClass:"section backup-section"},[t.backupId?s("h3",[t._v("Update Backup")]):s("h3",[t._v("Make a Backup")]),s("Input",{attrs:{name:"backup-password",label:t.backupId?"Enter your Password":"Choose a Password",layout:"vertical",type:"password"},model:{value:t.backupPassword,callback:function(e){t.backupPassword=e},expression:"backupPassword"}}),s("Button",{attrs:{click:t.checkPass},scopedSlots:t._u([{key:"text",fn:function(){return[t._v(t._s(t.backupId?"Update Backup":"Backup"))]},proxy:!0},{key:"icon",fn:function(){return[s("IconBackup")]},proxy:!0}])}),t.backupId?s("div",{staticClass:"results-view"},[s("span",{staticClass:"backup-id-label"},[t._v("Your Backup ID: ")]),s("pre",{staticClass:"backup-id-value"},[t._v(t._s(t.backupId))]),s("span",{staticClass:"backup-id-note"},[t._v(" This is used to restore from backups later. So keep it, along with your password somewhere safe. ")])]):t._e()],1),s("div",{staticClass:"section restore-section"},[s("h3",[t._v("Restore a Backup")]),s("Input",{attrs:{name:"restore-code",label:"Restore ID"},model:{value:t.restoreCode,callback:function(e){t.restoreCode=e},expression:"restoreCode"}}),s("Input",{attrs:{name:"restore-password",label:"Password",type:"password"},model:{value:t.restorePassword,callback:function(e){t.restorePassword=e},expression:"restorePassword"}}),s("Button",{attrs:{click:t.restoreBackup},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Restore")]},proxy:!0},{key:"icon",fn:function(){return[s("IconRestore")]},proxy:!0}])})],1)])},Be=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"section intro"},[s("h2",[t._v("Cloud Backup & Restore")]),s("p",{staticClass:"intro"},[t._v(" Cloud backup and restore is an optional feature, that enables you to upload your config to the internet, and then restore it on any other device or instance of Dashy. "),s("br"),s("br"),t._v(" All data is fully end-to-end encrypted with AES, using your password as the key. "),s("br"),t._v(" For more info, please see the "),s("a",{attrs:{href:"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md"}},[t._v("docs")])])])}],je=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:"input-container "+t.layout},[t.label?s("label",{attrs:{for:"name"}},[t._v(t._s(t.label))]):t._e(),s("input",{attrs:{type:t.type,name:t.name,id:t.name,placeholder:t.placeholder},domProps:{value:t.value},on:{input:function(e){return t.updateValue(e.target.value)}}})])},He=[],$e={name:"Input",props:{value:String,label:String,name:String,placeholder:String,type:{default:"text",type:String},layout:{validator:t=>-1!==["horizontal","vertical"].indexOf(t),type:String,default:"vertical"}},methods:{updateValue(t){this.$emit("input",t)}}},De=$e,Ve=(s("2d25"),Object(w["a"])(De,je,He,!1,null,"5df13ed2",null)),Ue=Ve.exports,Re=s("3a1e"),Ke=s.n(Re),Fe=s("e6a4"),We=s.n(Fe),Ge=s("c198"),Je=s.n(Ge),qe=s("f8d5"),Ye=s.n(qe);const Ze=p["backupEndpoint"],Xe=(t,e)=>{const s=JSON.stringify(t),a=Je.a.encrypt(s,e);return a.toString()},Qe=(t,e)=>Je.a.decrypt(t,e).toString(Ye.a),ts=t=>Ht()(t).toString().slice(0,14),es=(t,e)=>Wt.a.post(Ze,{userData:Xe(t,e),subHash:ts(e)}),ss=(t,e,s)=>Wt.a.put(Ze,{backupId:s,userData:Xe(t,e),subHash:ts(e)}),as=t=>Object.entries(t).map(t=>t.map(encodeURIComponent).join("=")).join("&"),os=(t,e)=>{const s=as({backupId:t,subHash:ts(e)}),a=`${Ze}/?${s}`;return new Promise((t,s)=>{Wt.a.get(a).then(a=>{if(!a.data||a.data.errorMsg)s(a.data.errorMsg||"Error");else{const n=Qe(a.data.userData.userData,e);try{t(JSON.parse(n))}catch(o){s(o)}}})})};var ns={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},components:{Button:pe,Input:Ue,IconBackup:Ke.a,IconRestore:We.a},methods:{restoreBackup(){os(this.restoreCode,this.restorePassword).then(t=>{this.restoreFromBackup(t,this.restoreCode)}).catch(t=>{this.showErrorMsg(t)})},checkPass(){const t=localStorage[p["localStorageKeys"].BACKUP_HASH]||void 0;t?t===this.makeHash(this.backupPassword)?this.makeUpdate():this.showErrorMsg("Incorrect password. Please enter your current password."):this.makeBackup()},makeBackup(){es(this.config,this.backupPassword).then(t=>{t.data&&!t.data.errorMsg&&t.data.backupId?this.updateUiAfterBackup(t.data.backupId,!1):this.showErrorMsg(t.data.errorMsg||"Error")}).catch(()=>{this.showErrorMsg("Unable to process request")})},makeUpdate(){ss(this.config,this.backupPassword,this.backupId).then(t=>{t.data&&!t.data.errorMsg&&t.data.backupId?this.updateUiAfterBackup(t.data.backupId,!0):this.showErrorMsg(t.data.errorMsg||"Error")}).catch(()=>{this.showErrorMsg("Unable to process request")})},restoreFromBackup(t,e){localStorage.setItem(p["localStorageKeys"].CONF_SECTIONS,JSON.stringify(t.sections)),localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(t.appConfig)),localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t.pageInfo)),t.appConfig.theme&&localStorage.setItem(p["localStorageKeys"].THEME,t.appConfig.theme),this.setBackupIdLocally(e,this.restorePassword),this.showSuccessMsg("Config Restored Succesfully"),setTimeout(()=>{location.reload()},1500)},updateUiAfterBackup(t,e=!1){this.setBackupIdLocally(t,this.backupPassword),this.showSuccessMsg((e?"Update":"Backup")+" Completed Succesfully"),this.backupPassword=""},showErrorMsg(t){this.$toasted.show(t,{className:"toast-error"})},showSuccessMsg(t){this.$toasted.show(t,{className:"toast-success"})},makeHash(t){return Ht()(t).toString()},setBackupIdLocally(t,e){this.backupId=t;const s=this.makeHash(e);localStorage.setItem(p["localStorageKeys"].BACKUP_ID,t),localStorage.setItem(p["localStorageKeys"].BACKUP_HASH,s)}}},is=ns,rs=(s("baed"),Object(w["a"])(is,Pe,Be,!1,null,"763657f4",null)),cs=rs.exports,ls={name:"ConfigLauncher",data(){return{modalNames:p["modalNames"]}},components:{IconSpanner:yt.a,IconCloud:Ct.a,ConfigContainer:Me,CloudBackupRestore:cs},props:{sections:Array,pageInfo:Object,appConfig:Object},methods:{showEditor:function(){this.$modal.show(p["modalNames"].CONF_EDITOR),this.$emit("modalChanged",!0)},showCloudModal:function(){this.$modal.show(p["modalNames"].CLOUD_BACKUP),this.$emit("modalChanged",!0)},combineConfig(){const t={};return t[p["topLevelConfKeys"].APP_CONFIG]=this.appConfig,t[p["topLevelConfKeys"].PAGE_INFO]=this.pageInfo,t[p["topLevelConfKeys"].SECTIONS]=this.sections,t[p["topLevelConfKeys"].APP_CONFIG].theme=localStorage[p["localStorageKeys"].THEME]||t[p["topLevelConfKeys"].APP_CONFIG].theme,t},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},us=ls,ds=(s("9c85"),Object(w["a"])(us,ft,gt,!1,null,"383db9de",null)),ps=ds.exports,hs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.themes?s("div",{staticClass:"theme-selector-section"},[s("span",{staticClass:"theme-label"},[t._v("Theme")]),s("v-select",{staticClass:"theme-dropdown",attrs:{options:t.themeNames,tabindex:-2},model:{value:t.selectedTheme,callback:function(e){t.selectedTheme=e},expression:"selectedTheme"}})],1):t._e()},ms=[];const fs=function(){const t=t=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=t,document.head.appendChild(e),new Promise((t,s)=>{e.onload=e=>{const{sheet:s}=e.target;s.disabled=!0,t(s)},e.onerror=s})},e=(t,e)=>{const s=t;if(e&&!t[e])throw new Error(`Theme: '${e}' does not exist.`);Object.keys(t).forEach(t=>{s[t].disabled=t!==e})},s={};return{add(e,a){return t(a).then(t=>{s[e]=t})},set theme(t){e(s,t)},get theme(){return Object.keys(s).find(t=>!s[t].disabled)}}};var gs=fs,vs={name:"ThemeSelector",props:{themes:Object,confTheme:String,userThemes:Array},watch:{selectedTheme(t){this.updateTheme(t)}},data(){return{selectedTheme:this.getInitialTheme(),themeHelper:new gs,loading:!0,builtInThemes:this.userThemes.concat(h.a.builtInThemes)}},computed:{themeNames:function(){const t=Object.keys(this.themes);return t.concat(this.builtInThemes)}},created(){const t=Object.keys(this.themes).map(t=>this.themeHelper.add(t,this.themes[t]));this.isThemeLocal(this.selectedTheme)?this.updateTheme(this.selectedTheme):this.selectedTheme!==h.a.theme&&Promise.all(t).then(()=>{this.updateTheme(this.selectedTheme)})},methods:{setLocalTheme(t){const e=document.getElementsByTagName("html")[0];e.hasAttribute("data-theme")&&e.removeAttribute("data-theme"),e.setAttribute("data-theme",t)},getInitialTheme(){return localStorage[p["localStorageKeys"].THEME]||this.confTheme||h.a.theme},isThemeLocal(t){return this.builtInThemes.includes(t)},updateTheme(t){"Deafault"===t?(this.resetToDefault(),this.themeHelper.theme="Deafault"):this.isThemeLocal(t)?this.setLocalTheme(t):this.themeHelper.theme=t,localStorage.setItem(p["localStorageKeys"].THEME,t)},resetToDefault(){document.getElementsByTagName("html")[0].removeAttribute("data-theme")}}},ys=vs,bs=(s("4ade"),Object(w["a"])(ys,hs,ms,!1,null,null,null)),Cs=bs.exports,Ss=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("span",{staticClass:"options-label"},[t._v("Layout")]),s("div",{staticClass:"display-options"},[s("IconDeafault",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Auto"),expression:"tooltip('Auto')"}],class:"layout-icon "+("auto"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("auto")}}}),s("IconHorizontal",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Horizontal"),expression:"tooltip('Horizontal')"}],class:"layout-icon "+("horizontal"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("horizontal")}}}),s("IconVertical",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Vertical"),expression:"tooltip('Vertical')"}],class:"layout-icon "+("vertical"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("vertical")}}})],1)])},ws=[],Is=s("c715"),_s=s.n(Is),ks=s("570d"),xs=s.n(ks),Ts=s("f9d7"),Os=s.n(Ts),Es={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:_s.a,IconHorizontal:xs.a,IconVertical:Os.a},methods:{updateDisplayLayout(t){this.$emit("layoutUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},Ls=Es,As=(s("7dc7"),Object(w["a"])(Ls,Ss,ws,!1,null,"c819d738",null)),Ns=As.exports,zs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("span",{staticClass:"options-label"},[t._v("Icon Size")]),s("div",{staticClass:"display-options"},[s("IconSmall",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Small"),expression:"tooltip('Small')"}],class:"layout-icon "+("small"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("small")}}}),s("IconMedium",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Medium"),expression:"tooltip('Medium')"}],class:"layout-icon "+("medium"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("medium")}}}),s("IconLarge",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Large"),expression:"tooltip('Large')"}],class:"layout-icon "+("large"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("large")}}})],1)])},Ms=[],Ps=s("d8e8"),Bs=s.n(Ps),js=s("7075"),Hs=s.n(js),$s=s("922c"),Ds=s.n($s),Vs={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:Bs.a,IconMedium:Hs.a,IconLarge:Ds.a},methods:{updateIconSize(t){this.$emit("iconSizeUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},Us=Vs,Rs=(s("47d9"),Object(w["a"])(Us,zs,Ms,!1,null,"58966274",null)),Ks=Rs.exports,Fs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("transition",{attrs:{name:"slide-fade"}},[t.shouldHide?t._e():s("div",{staticClass:"kb-sc-info"},[s("h5",[t._v("There are keyboard shortcuts! âŒšïžđŸ™Œ")]),s("div",{staticClass:"close",attrs:{title:"Hide forever [Esc]"},on:{click:function(e){return t.hideWelcomeHelper()}}},[t._v("x")]),s("p",{attrs:{title:"Press [Esc] to hide this tip forever. See there's even a shortcut for that! 🚀"}},[t._v(" Just start typing to filter. Then use the tab key to cycle through results, and press enter to launch the selected item, or alt + enter to open in a modal. You can hit Esc at anytime to clear the search. Easy đŸ„ł ")])])])},Ws=[],Gs={name:"KeyboardShortcutInfo",data(){return{shouldHide:!0,timeDelay:3e3}},methods:{shouldHideWelcomeMessage(){return!!localStorage[p["localStorageKeys"].HIDE_WELCOME_BANNER]},hideWelcomeHelper(){this.shouldHide=!0,localStorage.setItem(p["localStorageKeys"].HIDE_WELCOME_BANNER,!0),window.removeEventListener("keyup",this.keyPressEvent)},keyPressEvent(t){27===t.keyCode&&this.hideWelcomeHelper()}},mounted(){const t=this.shouldHideWelcomeMessage();t?this.$destroy():(window.setTimeout(()=>{this.shouldHide=t},this.timeDelay),window.addEventListener("keyup",this.keyPressEvent))}},Js=Gs,qs=(s("9517"),Object(w["a"])(Js,Fs,Ws,!1,null,"c5f17d9a",null)),Ys=qs.exports,Zs=s("0123"),Xs=s.n(Zs),Qs=s("5703"),ta=s.n(Qs),ea=s("5f32"),sa=s.n(ea),aa={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,availableThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:mt,ConfigLauncher:ps,ThemeSelector:Cs,LayoutSelector:Ns,ItemSizeSelector:Ks,KeyboardShortcutInfo:Ys,IconLogout:Xs.a,IconOpen:ta.a,IconClose:sa.a},methods:{userIsTypingSomething(t){this.$emit("user-is-searchin",t)},clearFilterInput(){this.$refs.SearchBar.clearFilterInput()},updateDisplayLayout(t){this.$emit("change-display-layout",t)},updateIconSize(t){this.$emit("change-icon-size",t)},modalChanged(t){this.$emit("change-modal-visibility",t)},getInitialTheme(){return this.appConfig.theme||""},logout(){Rt(),this.$toasted.show("Logged Out"),setTimeout(()=>{location.reload(!0)},100)},isUserLoggedIn(){return!!localStorage[p["localStorageKeys"].USERNAME]},getUserThemes(){const t=this.appConfig.cssThemes||[];return"string"===typeof t?[t]:t},toggleSettingsVisibility(){this.settingsVisible=!this.settingsVisible,localStorage.setItem(p["localStorageKeys"].HIDE_SETTINGS,this.settingsVisible)},getSettingsVisibility(){return JSON.parse(localStorage[p["localStorageKeys"].HIDE_SETTINGS]||h.a.visibleComponents.settings)}},data(){return{searchVisible:h.a.visibleComponents.searchBar,settingsVisible:this.getSettingsVisibility()}}},oa=aa,na=(s("69ce"),Object(w["a"])(oa,it,rt,!1,null,"d4f6509a",null)),ia=na.exports,ra=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("Collapsable",{attrs:{title:t.title,icon:t.icon,uniqueKey:t.groupId,collapsed:t.displayData.collapsed,cols:t.displayData.cols,rows:t.displayData.rows,color:t.displayData.color,customStyles:t.displayData.customStyles}},[!t.items||t.items.length<1?s("div",{staticClass:"no-items"},[t._v(" No Items to Show Yet ")]):s("div",{class:"there-are-items "+(t.isGridLayout?"item-group-grid":""),style:t.gridStyle},[t._l(t.items,(function(e,a){return s("Item",{key:a+"_"+t.makeId(e.title),attrs:{id:a+"_"+t.makeId(e.title),url:e.url,title:e.title,description:e.description,icon:e.icon,target:e.target,color:e.color,backgroundColor:e.backgroundColor,itemSize:t.newItemSize,enableStatusCheck:t.shouldEnableStatusCheck(e.statusCheck),statusCheckInterval:t.getStatusCheckInterval()},on:{itemClicked:function(e){return t.$emit("itemClicked")},triggerModal:t.triggerModal}})})),s("div",{ref:"modalContainer"})],2),s("IframeModal",{ref:"iframeModal-"+t.groupId,attrs:{name:"iframeModal-"+t.groupId},on:{closed:function(e){return t.$emit("itemClicked")},modalChanged:t.modalChanged}})],1)},ca=[],la=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("a",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.getTooltipOptions(),expression:"getTooltipOptions()"}],class:"item "+(t.icon?"":"short")+" size-"+t.itemSize,style:"--open-icon: "+t.getUnicodeOpeningIcon()+"; "+t.customStyles,attrs:{href:"iframe"!==t.target?t.url:"#",target:"newtab"===t.target?"_blank":"",rel:"noopener noreferrer",tabindex:"0",id:"link-"+t.id},on:{click:t.itemOpened}},[s("div",{class:"tile-title "+(t.icon?"":"bounce"),attrs:{id:"tile-"+t.id}},[s("span",{staticClass:"text"},[t._v(t._s(t.title))]),s("div",{staticClass:"overflow-dots"},[t._v("...")]),s("p",{staticClass:"description"},[t._v(t._s(t.description))])]),s("Icon",{staticClass:"bounce",style:t.customStyles,attrs:{icon:t.icon,url:t.url,size:t.itemSize,color:t.color}}),s("ItemOpenMethodIcon",{staticClass:"opening-method-icon",attrs:{isSmall:!t.icon,openingMethod:t.target,position:"medium"===t.itemSize?"bottom right":"top right"}}),t.enableStatusCheck?s("StatusIndicator",{staticClass:"status-indicator",attrs:{statusSuccess:t.statusResponse?t.statusResponse.successStatus:void 0,statusText:t.statusResponse?t.statusResponse.message:void 0}}):t._e()],1)},ua=[],da=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"item-icon"},["font-awesome"===t.iconType?s("i",{class:t.icon+" "+t.size}):t.icon?s("img",{class:"tile-icon "+t.size+" "+(t.broken?"broken":""),attrs:{src:t.iconPath},on:{error:t.imageNotFound}}):t._e(),t.broken?s("BrokenImage",{staticClass:"missing-image"}):t._e()],1)},pa=[],ha=s("9635"),ma=s.n(ha);const fa=function(t){console.warn(t)};var ga=fa,va={name:"Icon",inject:["config"],props:{icon:String,url:String,size:String},components:{BrokenImage:ma.a},computed:{iconType:function(){return this.determineImageType(this.icon)},iconPath:function(){return this.getIconPath(this.icon,this.url)}},data(){return{broken:!1}},methods:{isUrl(t){const e=new RegExp(/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-/]))?/);return e.test(t)},isImage(t){const e=/(?:\.([^.]+))?$/,s=["png","jpg"],a=e.exec(t);return a.length>=1&&s.includes(a[1])},getFavicon(t){if(this.shouldUseDefaultFavicon(t)){const e=t.split("/");if(e.length>=2)return`${e[0]}/${e[1]}/${e[2]}/favicon.ico`}else if(t.includes("http")){const e=this.getHostName(t),s=this.config.appConfig.faviconApi||p["faviconApi"],a=p["faviconApiEndpoints"][s];return a.replace("$URL",e)}return""},shouldUseDefaultFavicon(t){const e=/(127\.)|(192\.168\.)|(10\.)|(172\.1[6-9]\.)|(172\.2[0-9]\.)|(172\.3[0-1]\.)|(::1$)|([fF][cCdD])|(localhost)/;return e.test(t)||"local"===this.config.appConfig.faviconApi},getLocalImagePath(t){return"/item-icons/"+t},getGenerativeIcon(t){return`https://ipsicon.io/${this.getHostName(t)}.svg`},getIconPath(t,e){switch(this.determineImageType(t)){case"url":return t;case"img":return this.getLocalImagePath(t);case"favicon":return this.getFavicon(e);case"generative":return this.getGenerativeIcon(e);case"svg":return t;default:return""}},determineImageType(t){let e="";return e=t?t.endsWith(".svg")?"svg":this.isUrl(t)?"url":this.isImage(t)?"img":t.includes("fa-")?"font-awesome":"favicon"===t?"favicon":"generative"===t?"generative":"none":"none",e},getHostName(t){try{return new URL(t).hostname}catch(e){return t}},imageNotFound(){this.broken=!0,ga(`The path to '${this.icon}' could not be resolved`)}}},ya=va,ba=(s("de40"),Object(w["a"])(ya,da,pa,!1,null,null,null)),Ca=ba.exports,Sa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:t.makeClass(t.position,t.isSmall,t.isTransparent)},["newtab"===t.openingMethod?s("NewTabOpenIcon"):"sametab"===t.openingMethod?s("SameTabOpenIcon"):"iframe"===t.openingMethod?s("IframeOpenIcon"):t._e()],1)},wa=[],Ia=s("237e"),_a=s.n(Ia),ka=s("2352"),xa=s.n(ka),Ta=s("1946"),Oa=s.n(Ta),Ea={name:"ItemOpenMethodIcon",props:{openingMethod:String,isSmall:Boolean,position:String,isTransparent:Boolean},methods:{makeClass(t="top right",e=!1,s=!1){return`opening-method-icon\n ${t||"top right"}\n ${e?"short":""}\n ${s?"transparent":""}`}},components:{NewTabOpenIcon:_a.a,SameTabOpenIcon:xa.a,IframeOpenIcon:Oa.a}},La=Ea,Aa=(s("699c"),Object(w["a"])(La,Sa,wa,!1,null,"17201835",null)),Na=Aa.exports,za=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:{content:t.statusText||t.otherStatusText,classes:["status-tooltip","tip-"+t.color()]},expression:"{\n content: statusText || otherStatusText, classes: ['status-tooltip', `tip-${color()}`] }"}],staticClass:"indicator",on:{click:function(e){return t.showToast()}}},[s("div",{class:"dot dot-"+t.color()},[t._m(0)])])},Ma=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("span",[s("span")])}],Pa={name:"StatusIndicator",props:{statusText:String,statusSuccess:Boolean},methods:{color(){switch(this.statusSuccess){case void 0:return new Date-this.startTime>2e3?"grey":"yellow";case!0:return"green";default:return"red"}}},data(){return{startTime:new Date,otherStatusText:"Checking..."}},mounted(){setTimeout(()=>{this.statusText||(this.otherStatusText="Request timed out")},2e3)}},Ba=Pa,ja=(s("e697"),s("45d4"),Object(w["a"])(Ba,za,Ma,!1,null,"46972ad8",null)),Ha=ja.exports,$a={name:"Item",props:{id:String,title:String,subtitle:String,description:String,icon:String,color:String,backgroundColor:String,url:String,target:{type:String,default:"newtab",validator:t=>-1!==["newtab","sametab","iframe"].indexOf(t)},itemSize:String,enableStatusCheck:Boolean,statusCheckInterval:Number},data(){return{getId:this.id,customStyles:{color:this.color,background:this.backgroundColor},statusResponse:void 0}},components:{Icon:Ca,ItemOpenMethodIcon:Na,StatusIndicator:Ha},methods:{itemOpened(t){t.altKey||"iframe"===this.target?(t.preventDefault(),this.$emit("triggerModal",this.url)):this.$emit("itemClicked")},manageTitleEllipse(){const t=document.getElementById("tile-"+this.getId);if(t){const e=(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)&&this.title.length>12;e&&(t.className+=" is-overflowing")}},getTooltipOptions(){return{disabled:!this.description,content:this.description,trigger:"hover focus",hideOnTargetClick:!0,html:!1,placement:this.statusResponse?"left":"auto",delay:{show:600,hide:200},classes:"item-description-tooltip"}},getUnicodeOpeningIcon(){switch(this.target){case"newtab":return'"\\f360"';case"sametab":return'"\\f24d"';case"iframe":return'"\\f2d0"';default:return'"\\f054"'}},checkWebsiteStatus(){this.statusResponse=void 0;const t=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,e=`${t}/ping?url=${this.url}`;Wt.a.get(e).then(t=>{t.data&&(this.statusResponse=t.data)}).catch(()=>{this.statusResponse={statusText:"Failed to make request",statusSuccess:!1}})}},mounted(){this.manageTitleEllipse(),this.enableStatusCheck&&this.checkWebsiteStatus(),this.statusCheckInterval>0&&setInterval(this.checkWebsiteStatus,1e3*this.statusCheckInterval)}},Da=$a,Va=(s("826e"),s("f719"),Object(w["a"])(Da,la,ua,!1,null,null,null)),Ua=Va.exports,Ra=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:"collapsable "+t.checkSpanNum(t.cols,"col")+" "+t.checkSpanNum(t.rows,"row"),style:(t.color?"background: "+t.color:"")+"; "+t.sanitizeCustomStyles(t.customStyles)+";"},[s("input",{staticClass:"toggle",attrs:{id:"collapsible-"+t.uniqueKey,type:"checkbox",tabIndex:"-1"},domProps:{checked:t.getCollapseState()},on:{change:t.collapseChanged}}),s("label",{staticClass:"lbl-toggle",attrs:{for:"collapsible-"+t.uniqueKey,tabindex:"-1"}},[t.icon?s("Icon",{staticClass:"section-icon",attrs:{icon:t.icon,size:"small",url:t.title}}):t._e(),s("h3",[t._v(t._s(t.title))])],1),s("div",{staticClass:"collapsible-content"},[s("div",{staticClass:"content-inner"},[t._t("default")],2)])])},Ka=[],Fa={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:Ca},data(){return{isOpen:!this.collapsed}},methods:{checkSpanNum(t,e){const s=4;let a=/^\d*$/.test(t)?parseInt(t,10):1;return a=a>s?s:a,`${e}-${a}`},sanitizeCustomStyles(t){return t?t.replace(/[^a-zA-Z0-9- :;.]/g,""):""},initialiseStorage(){const t=()=>localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify({}));localStorage[p["localStorageKeys"].COLLAPSE_STATE]||t();try{JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE])}catch{t()}return JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE])},getCollapseState(){const t=this.initialiseStorage();let e=!this.collapsed;return void 0!==t[this.uniqueKey]&&(e=t[this.uniqueKey]),e},setCollapseState(t,e){const s=JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE]);s[t]=e,localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(s))},collapseChanged(t){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),t.srcElement.checked)}}},Wa=Fa,Ga=(s("8589"),Object(w["a"])(Wa,Ra,Ka,!1,null,"33a8b630",null)),Ja=Ga.exports,qa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("modal",{attrs:{name:t.name,resizable:!0,width:"80%",height:"80%",classes:"dashy-modal"},on:{closed:function(e){return t.modalClosed()}}},[s("div",{attrs:{slot:"top-right"},on:{click:function(e){return t.hide()}},slot:"top-right"},[t._v("Close")]),s("a",{staticClass:"close-button",attrs:{title:"Close"},on:{click:function(e){return t.hide()}}},[t._v("x")]),t.url?s("iframe",{staticClass:"frame",attrs:{src:t.url},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.close.apply(null,arguments)}}}):s("div",{staticClass:"no-url"},[t._v("No URL Specified")])])},Ya=[],Za={name:"IframeModal",props:{name:String},data:()=>({url:"#"}),methods:{show(t){this.url=t,this.$modal.show(this.name),this.$emit("modalChanged",!0)},hide(){this.$modal.hide(this.name)},modalClosed(){this.$emit("modalChanged",!1)}}},Xa=Za,Qa=(s("eda6"),Object(w["a"])(Xa,qa,Ya,!1,null,null,null)),to=Qa.exports,eo={name:"ItemGroup",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:Ja,Item:Ua,IframeModal:to},computed:{newItemSize(){return this.displayData.itemSize||this.itemSize},isGridLayout(){return"grid"===this.displayData.sectionLayout||!(!this.displayData.itemCountX&&!this.displayData.itemCountY)},gridStyle(){let t="";return t+=this.displayData.itemCountX?`grid-template-columns: repeat(${this.displayData.itemCountX}, 1fr);`:"",t+=this.displayData.itemCountY?`grid-template-rows: repeat(${this.displayData.itemCountY}, 1fr);`:"",t}},methods:{makeId(t){return t.replace(/\s+/g,"-").replace(/[^a-zA-Z ]/g,"").toLowerCase()},triggerModal(t){this.$refs["iframeModal-"+this.groupId].show(t)},modalChanged(t){this.$emit("change-modal-visibility",t)},shouldEnableStatusCheck(t){const e=this.config.appConfig.statusCheck||!1;return void 0!==t?t:e},getStatusCheckInterval(){let t=this.config.appConfig.statusCheckInterval;return t?(t>60&&(t=60),t<1&&(t=0),t):0}}},so=eo,ao=(s("015c"),Object(w["a"])(so,ra,ca,!1,null,"29d94632",null)),oo=ao.exports,no={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:ia,ItemGroup:oo},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get(){return this.appConfig.layout||h.a.layout},set:function(t){localStorage.setItem(p["localStorageKeys"].LAYOUT_ORIENTATION,t),this.layout=t}},iconSize:{get(){return this.appConfig.iconSize||h.a.iconSize},set:function(t){localStorage.setItem(p["localStorageKeys"].ICON_SIZE,t),this.itemSizeBound=t}}},methods:{checkTheresData(t){const e=localStorage[p["localStorageKeys"].CONF_SECTIONS];return t&&t.length>=1||e&&e.length>=1},getSections(t){const e=localStorage[p["localStorageKeys"].CONF_SECTIONS];if(e){const t=JSON.parse(e);if(t.length>=1)return t}return t},searching(t){this.searchValue=t||""},finishedSearching(){this.$refs.filterComp.clearFilterInput()},getDomainFromUrl(t){if(!t)return"";const e=/^(?:https?:\/\/)?(?:w{3}\.)?([a-z\d.-]+)\.(?:[a-z.]{2,10})(?:[/\w.-]*)*/,s=t.match(e);return s?s[1]:""},filterTiles(t){return t?t.filter(t=>{const{title:e,description:s,provider:a,url:o}=t,n=this.searchValue.toLowerCase();return e&&e.toLowerCase().includes(n)||a&&a.toLowerCase().includes(n)||s&&s.toLowerCase().includes(n)||this.getDomainFromUrl(o).includes(n)}):[]},getDisplayData(t){return t.displayData?t.displayData:{}},setLayoutOrientation(t){this.layoutOrientation=t},setItemSize(t){this.iconSize=t},updateModalVisibility(t){this.modalOpen=t},getExternalCSSLinks(){const t={};if(this.appConfig&&this.appConfig.externalStyleSheet){const e=this.appConfig.externalStyleSheet;Array.isArray(e)?e.forEach((e,s)=>{t["External Stylesheet "+(s+1)]=e}):t["External Stylesheet"]=this.appConfig.externalStyleSheet}return t.Deafault="#",t},checkIfFontAwesomeNeeded(){let t=!1;return this.sections.forEach(e=>{e.items.forEach(e=>{e.icon&&e.icon.includes("fa-")&&(t=!0)})}),t},initiateFontAwesome(){if(this.appConfig.enableFontAwesome||this.checkIfFontAwesomeNeeded()){const t=document.createElement("script"),e=this.appConfig.fontAwesomeKey||h.a.fontAwesomeKey;t.setAttribute("src",`https://kit.fontawesome.com/${e}.js`),document.head.appendChild(t)}},checkIfResults(){if(this.sections){let t=!0;return this.sections.forEach(e=>{this.filterTiles(e.items).length>0&&(t=!1)}),t}return!1},getBackgroundImage(){return this.appConfig&&this.appConfig.backgroundImg?`background: url('${this.appConfig.backgroundImg}');background-size:cover;`:""}},mounted(){this.initiateFontAwesome(),this.layout=this.layoutOrientation,this.itemSizeBound=this.iconSize}},io=no,ro=(s("39ab"),Object(w["a"])(io,ot,nt,!1,null,"b011a44e",null)),co=ro.exports,lo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"login-page"},[s("form",{staticClass:"login-form"},[s("h2",{staticClass:"login-title"},[t._v("Dashy")]),s("Input",{staticClass:"login-field username",attrs:{label:"Username",type:"text"},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),s("Input",{staticClass:"login-field password",attrs:{label:"Password",type:"password"},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}}),s("Button",{staticClass:"login-button",attrs:{click:t.submitLogin}},[t._v("Login")]),s("transition",{attrs:{name:"bounce"}},[s("p",{directives:[{name:"show",rawName:"v-show",value:t.message,expression:"message"}],class:"login-error-message "+t.status},[t._v(t._s(t.message))])])],1)])},uo=[],po={name:"login",props:{appConfig:Object},data(){return{username:"",password:"",message:"",status:"waiting"}},components:{Button:pe,Input:Ue},methods:{submitLogin(){const t=Vt(this.username,this.password,this.appConfig.auth||[]);this.message=t.msg,this.status=t.correct?"success":"error",t.correct&&(Ut(this.username,this.password),setTimeout(()=>{en.push({path:"/"})},250))},setTheme(){const t=localStorage[p["localStorageKeys"].THEME]||h.a.theme;document.getElementsByTagName("html")[0].setAttribute("data-theme",t)}},created(){this.setTheme()}},ho=po,mo=(s("206d6"),Object(w["a"])(ho,lo,uo,!1,null,null,null)),fo=mo.exports,go=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"work-space"},[s("SideBar",{attrs:{sections:t.sections},on:{"launch-app":t.launchApp}}),s("WebContent",{attrs:{url:t.url}})],1)},vo=[],yo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("nav",{staticClass:"side-bar"},t._l(t.sections,(function(e,a){return s("div",{key:a},[s("div",{staticClass:"side-bar-item-container",on:{click:function(e){return t.openSection(a)}}},[s("SideBarItem",{staticClass:"item",attrs:{icon:e.icon,title:e.name}})],1),s("transition",{attrs:{name:"slide"}},[t.isOpen[a]?s("SideBarSection",{attrs:{items:e.items},on:{"launch-app":t.launchApp}}):t._e()],1)],1)})),0)},bo=[],Co=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip,expression:"tooltip"}],class:"side-bar-item "+(t.icon?"w-icon":"text-only"),on:{click:function(e){return t.itemClicked()}}},[t.icon?s("Icon",{attrs:{icon:t.icon,size:"small",url:t.url}}):s("p",{staticClass:"small-title"},[t._v(t._s(t.title))])],1)},So=[],wo={name:"SideBarItem",inject:["config"],props:{icon:String,title:String,url:String,click:Function},components:{Icon:Ca},methods:{itemClicked(){this.url&&this.$emit("launch-app",this.url)}},data(){return{tooltip:{disabled:!this.title,content:this.title,trigger:"hover focus",hideOnTargetClick:!0,html:!1,placement:"right-start",delay:{show:800,hide:1e3}}}}},Io=wo,_o=(s("5e61"),Object(w["a"])(Io,Co,So,!1,null,"d979f4fe",null)),ko=_o.exports,xo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sub-side-bar"},t._l(t.items,(function(e,a){return s("div",{key:a},[s("SideBarItem",{staticClass:"item",attrs:{icon:e.icon,title:e.title,url:e.url},on:{"launch-app":t.launchApp}})],1)})),0)},To=[],Oo={name:"SideBarSection",inject:["config"],props:{items:Array},components:{SideBarItem:ko},methods:{launchApp(t){this.$emit("launch-app",t)}}},Eo=Oo,Lo=(s("cf1c"),Object(w["a"])(Eo,xo,To,!1,null,"56ddb963",null)),Ao=Lo.exports,No={name:"SideBar",inject:["config"],props:{sections:Array},data(){return{isOpen:new Array(this.sections.length).fill(!1)}},components:{SideBarItem:ko,SideBarSection:Ao},methods:{openSection(t){this.isOpen=this.isOpen.map((e,s)=>s===t&&!e)},launchApp(t){this.$emit("launch-app",t)}}},zo=No,Mo=(s("85e1"),Object(w["a"])(zo,yo,bo,!1,null,"31476576",null)),Po=Mo.exports,Bo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"web-content"},[s("iframe",{attrs:{src:t.url}})])},jo=[],Ho={name:"WebContent",props:{url:String}},$o=Ho,Do=(s("44e9"),Object(w["a"])($o,Bo,jo,!1,null,"a2564c04",null)),Vo=Do.exports,Uo={name:"Workspace",props:{sections:Array,appConfig:Object},data:()=>({url:""}),components:{SideBar:Po,WebContent:Vo},methods:{launchApp(t){this.url=t},setTheme(){const t=localStorage[p["localStorageKeys"].THEME]||this.confTheme||h.a.theme,e=document.getElementsByTagName("html")[0];e.hasAttribute("data-theme")&&e.removeAttribute("data-theme"),e.setAttribute("data-theme",t)},initiateFontAwesome(){const t=document.createElement("script"),e=this.appConfig.fontAwesomeKey||h.a.fontAwesomeKey;t.setAttribute("src",`https://kit.fontawesome.com/${e}.js`),document.head.appendChild(t)}},mounted(){this.setTheme(),this.initiateFontAwesome()}},Ro=Uo,Ko=Object(w["a"])(Ro,go,vo,!1,null,"5517abc2",null),Fo=Ko.exports,Wo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("pre",[s("code",[t._v(t._s(t.jsonParser(t.config)))])])},Go=[],Jo={name:"DownloadConfig",props:{sections:Array,appConfig:Object,pageInfo:Object},data(){return{config:{appConfig:this.appConfig,pageInfo:this.pageInfo,sections:this.sections},jsonParser:At}}},qo=Jo,Yo=(s("6cd5"),Object(w["a"])(qo,Wo,Go,!1,null,"33cd2d90",null)),Zo=Yo.exports;a["a"].use(at["a"]);const Xo=()=>{const t=q.auth;return!t||Dt(t)},Qo=new at["a"]({routes:[{path:"/",name:"home",component:co,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Home Page",metaTags:p["metaTagData"]}},{path:"/workspace",name:"workspace",component:Fo,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Dashy Workspace",metaTags:p["metaTagData"]}},{path:"/login",name:"login",component:fo,props:{appConfig:q},beforeEnter:(t,e,s)=>{Xo()&&Qo.push({path:"/"}),s()}},{path:"/about",name:"about",component:()=>s.e("about").then(s.bind(null,"f820"))},{path:"/download",name:"download",component:Zo,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Download Dashy Config",metaTags:p["metaTagData"]}}]});Qo.beforeEach((t,e,s)=>{"login"===t.name||Xo()?s():s({name:"login"})});const tn="Dashy";Qo.afterEach(t=>{a["a"].nextTick(()=>{document.title=t.meta.title||tn})});var en=Qo,sn=s("9483");Object(sn["a"])("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(t){console.error("Error during service worker registration:",t)}}),a["a"].use(o["a"]),a["a"].use(i.a),a["a"].use(l["a"]),a["a"].use(d.a,p["toastedOptions"]),a["a"].component("v-select",c.a),a["a"].config.productionTip=!1,new a["a"]({router:en,render:t=>t(st)}).$mount("#app")},5703:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-sliders-h fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"sliders-h",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}})]))}}},"570d":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-grip-horizontal fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"grip-horizontal",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"}})]))}}},"58c1":function(t,e,s){},"5c0b":function(t,e,s){"use strict";s("9c0c")},"5cc6":function(t,e){t.exports={pageInfo:{title:"Dashy",description:"",navLinks:[{title:"Home",path:"/"},{title:"Source",path:"https://github.com/Lissy93/dashy"}],footerText:""},appConfig:{},iconSize:"medium",layout:"auto",theme:"default",fontAwesomeKey:"0821c65656",faviconApi:"faviconkit",builtInThemes:["callisto","thebe","dracula","material","material-dark","colorful","nord","nord-frost","minimal-dark","minimal-light","matrix","matrix-red","hacker-girl","raspberry-jam","bee","tiger","material-original","material-dark-original","vaporware","high-contrast-dark","high-contrast-light"],visibleComponents:{pageTitle:!0,navigation:!0,searchBar:!0,settings:!0,footer:!0},localStorageKeys:{HIDE_WELCOME_BANNER:"hideWelcomeHelpers",LAYOUT_ORIENTATION:"layoutOrientation",COLLAPSE_STATE:"collapseState",ICON_SIZE:"iconSize",THEME:"theme",CONF_SECTIONS:"confSections",PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",BACKUP_ID:"backupId",BACKUP_HASH:"backupHash",HIDE_SETTINGS:"hideSettings",USERNAME:"username"},cookieKeys:{AUTH_TOKEN:"authenticationToken"},modalNames:{CONF_EDITOR:"CONF_EDITOR",CLOUD_BACKUP:"CLOUD_BACKUP",REBUILD_APP:"REBUILD_APP"},topLevelConfKeys:{PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",SECTIONS:"sections"},toastedOptions:{position:"bottom-center",duration:2500,keepOnHover:!0,className:"toast-message",iconPack:"fontawesome"},backupEndpoint:"https://dashy-sync-service.as93.net",splashScreenTime:1900,metaTagData:[{name:"description",content:"A simple static homepage for you're server"}],faviconApiEndpoints:{mcapi:"https://eu.mc-api.net/v3/server/favicon/$URL",clearbit:"https://logo.clearbit.com/$URL",faviconkit:"https://api.faviconkit.com/$URL/64",google:"https://www.google.com/s2/favicons?sz=128&domain_url=$URL",allesedv:"https://f1.allesedv.com/128/$URL",webmasterapi:"https://api.webmasterapi.com/v1/favicon/yEwx0ZFs0CSPshHq/$URL"}}},"5e61":function(t,e,s){"use strict";s("b315")},"5f32":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-times-circle fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"times-circle",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"}})]))}}},6:function(t,e){},6266:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:[i,r],style:[c,l],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"100",height:"100",preserveAspectRatio:"xMidYMid"},u),...d},n.concat([s("defs",[s("clipPath",{attrs:{id:"a"}},[s("path",{attrs:{d:"M20 0h60v100H20z"}})])]),s("path",{attrs:{fill:"none",stroke:"var(--primary, #00af87)","stroke-width":"6","stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":"10","clip-path":"url(#a)",d:"M90 76.7V28.3c0-2.7-2.2-5-5-5h-3.4c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5h-3.4c-2.7 0-5-2.2-5-5V28.3c0-2.7-2.2-5-5-5H55c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5h-3.4c-2.7 0-5-2.2-5-5V28.3c0-2.7-2.2-5-5-5h-3.4c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5H15c-2.7 0-5-2.2-5-5V23.3"}},[s("animateTransform",{attrs:{attributeName:"transform",type:"translate",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"-20 0;7 0",keyTimes:"0;1"}}),s("animate",{attrs:{attributeName:"stroke-dasharray",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"0 72 125 232;0 197 125 233",keyTimes:"0;1"}})])]))}}},6504:function(t,e,s){},6780:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-cloud-upload-alt fa-w-20",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"cloud-upload-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M395.5 267.5l-99-99c-4.7-4.7-12.3-4.7-17 0l-99 99c-7.6 7.6-2.2 20.5 8.5 20.5h67v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-84h67c10.7 0 16.1-12.9 8.5-20.5zm148.2-67.4C539.7 142.1 491.4 96 432 96c-7.6 0-15.1.8-22.4 2.3C377.7 58.3 328.1 32 272 32c-84.6 0-155.5 59.7-172.3 139.8C39.9 196.1 0 254.4 0 320c0 88.4 71.6 160 160 160h336c79.5 0 144-64.5 144-144 0-61.8-39.2-115.8-96.3-135.9zM496 432H160c-61.9 0-112-50.1-112-112 0-56.4 41.7-103.1 96-110.9V208c0-70.7 57.3-128 128-128 53.5 0 99.3 32.8 118.4 79.4 11.2-9.6 25.7-15.4 41.6-15.4 35.3 0 64 28.7 64 64 0 11.8-3.2 22.9-8.8 32.4 2.9-.3 5.9-.4 8.8-.4 53 0 96 43 96 96s-43 96-96 96z"}})]))}}},"699c":function(t,e,s){"use strict";s("806e")},"69ce":function(t,e,s){"use strict";s("a592")},"6cd5":function(t,e,s){"use strict";s("6504")},7:function(t,e){},7075:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-expand fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"}})]))}}},7941:function(t,e,s){},"7da9":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-css3-alt fa-w-12",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fab","data-icon":"css3-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"}})]))}}},"7dc7":function(t,e,s){"use strict";s("1e5e")},"7eb0":function(t,e,s){},"7f59":function(t,e,s){},"7fda":function(t,e,s){"use strict";s("ca69")},8:function(t,e){},"806e":function(t,e,s){},"80a7":function(t,e,s){"use strict";s("7eb0")},"826e":function(t,e,s){"use strict";s("939b")},"831b":function(t){t.exports=JSON.parse('{"type":"object","required":["sections"],"additionalProperties":false,"properties":{"pageInfo":{"type":"object","properties":{"title":{"type":"string","description":"Title and heading for the app"},"description":{"type":"string","description":"Sub-title, displayed in header"},"navLinks":{"type":"array","maxItems":6,"description":"Quick access links, displayed in header","items":{"type":"object","additionalProperties":false,"required":["title","path"],"properties":{"title":{"type":"string"},"path":{"type":"string"}}}},"footerText":{"type":"string"}},"required":["title"],"additionalProperties":false},"appConfig":{"type":"object","description":"Application configuration","properties":{"backgroundImg":{"type":"string","description":"A URL to an image asset to be displayed as background"},"theme":{"type":"string","default":"Callisto","description":"A theme to be applied by default on first load"},"enableFontAwesome":{"type":"boolean","default":true,"description":"Should load font-awesome assets"},"fontAwesomeKey":{"type":"string","pattern":"^[a-z0-9]{10}$","description":"API key for font-awesome"},"faviconApi":{"enum":["local","faviconkit","google","clearbit","webmasterapi","allesedv"],"default":"faviconkit","description":"Which service to use to resolve favicons. Set to local to do this locally instead"},"layout":{"enum":["horizontal","vertical","auto","sidebar"],"default":"auto","description":"Specifies sections layout orientation on the home screen"},"iconSize":{"enum":["small","medium","large"],"default":"medium","description":"The size of each link item / icon"},"cssThemes":{"type":"array","description":"Theme names to be added to the dropdown","items":{"type":"string"}},"externalStyleSheet":{"description":"URL or URLs of external stylesheets to add to dropdown/ load","type":["string","array"],"items":{"type":"string"}},"customCss":{"type":"string","description":"Any custom CSS overides, must be minified"},"showSplashScreen":{"type":"boolean","default":false,"description":"Display a loading screen when the app is launched"},"statusCheck":{"type":"boolean","default":false,"description":"Displays an online/ offline status for each of your services"},"statusCheckInterval":{"type":"number","default":0,"description":"How often to recheck statuses. If set to 0, status will only be checked on page load"},"auth":{"type":"array","description":"Usernames and hashed credentials for frontend authentication","items":{"type":"object","additionalProperties":false,"required":["user","hash"],"properties":{"user":{"type":"string","description":"The username for a user"},"hash":{"type":"string","description":"A SHA-256 hashed password for that user","minLength":64,"maxLength":64},"type":{"enum":["admin","normal"],"description":"User type, denoting privilege level, either admin or normal","default":"normal"}}}},"allowConfigEdit":{"type":"boolean","default":true,"description":"Can user write changes to conf.yml file from the UI. If set to false, preferences are only stored locally"}},"additionalProperties":false},"sections":{"type":"array","description":"Array of sections, containing items","items":{"type":"object","required":["name","items"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Title/ heading for a section"},"icon":{"type":"string","description":"Icon will be displayed next to title"},"displayData":{"type":"object","additionalProperties":false,"description":"Optional meta data for customizing a section","properties":{"collapsed":{"type":"boolean","default":false,"description":"If true, section needs to be clicked to open"},"color":{"type":"string","description":"Hex code, or HTML color for section fill"},"customStyles":{"type":"string","description":"CSS overides for section container"},"itemSize":{"enum":["small","medium","large"],"default":"medium","description":"Size of items within the section"},"rows":{"type":"number","minimum":1,"maximum":5,"default":1,"description":"The amount of space that the section spans vertically"},"cols":{"type":"number","minimum":1,"maximum":5,"default":1,"description":"The amount of space that the section spans horizontally"},"sectionLayout":{"enum":["grid","auto"],"default":"auto","description":"If set to grid, items have uniform width, and itemCount can be set"},"itemCountX":{"type":"number","minimum":1,"maximum":12,"description":"Number of items per column"},"itemCountY":{"type":"number","minimum":1,"maximum":12,"description":"Number of items per row"}}},"items":{"type":"array","description":"Array of items to display with a section","items":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","description":"Text shown on the item"},"description":{"type":"string","nullable":true,"description":"Short description, shown on hover or in a tooltip"},"icon":{"type":"string","nullable":true,"description":"An icon, either as a font-awesome identifier, local or remote URL, or the word favicon or generative"},"url":{"type":"string","description":"The destination to navigate to when item is clicked"},"target":{"enum":["newtab","sametab","iframe"],"default":"newtab","description":"Opening method, when item is clicked"},"color":{"type":"string","description":"A custom fill color of the item"},"provider":{"type":"string","description":"Provider name, e.g. Microsoft"},"statusCheck":{"type":"boolean","default":false,"description":"Whether or not to display online/ offline status for this service. Will override appConfig.statusCheck"}}}}}}}}}')},"832d":function(t,e,s){},"83ba":function(t,e,s){},8589:function(t,e,s){"use strict";s("16a0")},"85e1":function(t,e,s){"use strict";s("1036")},8949:function(t,e,s){"use strict";s("8e1b")},"8b35":function(t,e,s){},"8b8e":function(t,e){t.exports={pageInfo:{title:"Dashy",navLinks:[{title:"Home",path:"/"},{title:"About",path:"/about"},{title:"Source Code",path:"https://github.com/Lissy93/dashy"}]},appConfig:{theme:"colorful",fontAwesomeKey:"0821c65656"},sections:[{name:"Getting Started",items:[{title:"Source",description:"Source code and documentation on GitHub",icon:"fab fa-github",url:"https://github.com/Lissy93/dashy"},{title:"Issues",description:"View currently open issues, or raise a new one",icon:"fas fa-bug",url:"https://github.com/Lissy93/dashy/issues"},{title:"Demo 1",description:"Live Demo #1",icon:"far fa-rocket",url:"https://dashy-demo-1.netlify.app"},{title:"Demo 2",description:"Live Demo #2",icon:"fad fa-planet-ringed",url:"https://dashy-demo-2.netlify.app"}]}]}},"8d7c":function(t,e,s){},"8e1b":function(t,e,s){},9:function(t,e){},"922c":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-expand-arrows-alt fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M448 344v112a23.94 23.94 0 01-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 01-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0124-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0124 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"}})]))}}},"939b":function(t,e,s){},9517:function(t,e,s){"use strict";s("a8d0")},9635:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:[i,r],style:[c,l],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{d:"M132.893 310.534l-30.082 10.911L91.9 291.364l30.081-10.911z"}}),s("path",{attrs:{d:"M271.552 301.072l-77.856-46.72-41.616 15.152 10.944 30.064 27.28-9.92 82.144 49.28 97.6-65.072L480 315.088V480H32V347.2l40.8-14.848-10.928-30.048L0 324.8V512h512V292.912l-146.048-54.768z"}}),s("path",{attrs:{d:"M0 0v278.848l66.576-24.224-10.928-30.064L32 233.152V32h448v168.912l-114.048-42.768-94.4 62.928-77.856-46.72-47.84 17.392 10.944 30.064 33.504-12.16 82.144 49.28 97.6-65.072L512 247.088V0z"}}),s("path",{attrs:{d:"M96.656 243.686L85.721 213.63l30.07-10.94 10.935 30.055z"}})]))}}},"97fb":function(t,e,s){},"9c0c":function(t,e,s){},"9c85":function(t,e,s){"use strict";s("b993")},"9e50":function(t,e,s){"use strict";s("3323")},a592:function(t,e,s){},a8d0:function(t,e,s){},abf6:function(t,e,s){},b315:function(t,e,s){},b993:function(t,e,s){},baed:function(t,e,s){"use strict";s("7941")},bd96:function(t,e,s){"use strict";s("d6b0")},c1bd:function(t,e,s){"use strict";s("83ba")},c715:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-th fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"th",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"}})]))}}},ca69:function(t,e,s){},cbd9:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-file-download fa-w-12",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"file-download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M216 236.07c0-6.63-5.37-12-12-12h-24c-6.63 0-12 5.37-12 12v84.01h-48.88c-10.71 0-16.05 12.97-8.45 20.52l72.31 71.77c4.99 4.95 13.04 4.95 18.03 0l72.31-71.77c7.6-7.54 2.26-20.52-8.45-20.52H216v-84.01zM369.83 97.98L285.94 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h287.94c26.5 0 48.07-21.5 48.07-47.99V131.97c0-12.69-5.17-24.99-14.17-33.99zM255.95 51.99l76.09 76.08h-76.09V51.99zM336 464.01H47.99V48.09h159.97v103.98c0 13.3 10.7 23.99 24 23.99H336v287.95z"}})]))}}},cf1c:function(t,e,s){"use strict";s("8d7c")},d16d:function(t,e,s){"use strict";s("18dd")},d6b0:function(t,e,s){},d8e8:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-compress-arrows-alt fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"compress-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"}})]))}}},de40:function(t,e,s){"use strict";s("7f59")},df27:function(t,e,s){"use strict";s("abf6")},e697:function(t,e,s){"use strict";s("2574")},e6a4:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-download fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fal","data-icon":"download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M452 432c0 11-9 20-20 20s-20-9-20-20 9-20 20-20 20 9 20 20zm-84-20c-11 0-20 9-20 20s9 20 20 20 20-9 20-20-9-20-20-20zm144-48v104c0 24.3-19.7 44-44 44H44c-24.3 0-44-19.7-44-44V364c0-24.3 19.7-44 44-44h99.4L87 263.6c-25.2-25.2-7.3-68.3 28.3-68.3H168V40c0-22.1 17.9-40 40-40h96c22.1 0 40 17.9 40 40v155.3h52.7c35.6 0 53.4 43.1 28.3 68.3L368.6 320H468c24.3 0 44 19.7 44 44zm-261.7 17.7c3.1 3.1 8.2 3.1 11.3 0L402.3 241c5-5 1.5-13.7-5.7-13.7H312V40c0-4.4-3.6-8-8-8h-96c-4.4 0-8 3.6-8 8v187.3h-84.7c-7.1 0-10.7 8.6-5.7 13.7l140.7 140.7zM480 364c0-6.6-5.4-12-12-12H336.6l-52.3 52.3c-15.6 15.6-41 15.6-56.6 0L175.4 352H44c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12V364z"}})]))}}},e7fa:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-edit fa-w-18",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"edit",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"}})]))}}},eda6:function(t,e,s){"use strict";s("1864")},ef83:function(t,e,s){},f719:function(t,e,s){"use strict";s("27c1")},f9d7:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-grip-vertical fa-w-10",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"grip-vertical",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"}})]))}}}}); -//# sourceMappingURL=dashy.3208546e.js.map \ No newline at end of file +(function(t){function e(e){for(var a,o,r=e[0],c=e[1],l=e[2],u=0,d=[];unew RegExp(/(http|https):\/\/(\S+)(:[0-9]+)?/).test(t)}},O=T,E=(s("d16d"),Object(w["a"])(O,k,x,!1,null,"68c1bd5c",null)),L=E.exports,A={name:"Header",components:{PageTitle:_,Nav:L},props:{pageInfo:Object},data(){return{hiddenComponents:this.pageInfo.hiddenComponents||{},titleVisible:p["visibleComponents"].pageTitle,navVisible:p["visibleComponents"].navigation}}},N=A,z=(s("4239"),Object(w["a"])(N,g,v,!1,null,"70a33270",null)),M=z.exports,P=function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.text&&""!==t.text?s("footer",{class:t.scrollVisible?"":"fixed",domProps:{innerHTML:t._s(t.text)}}):s("footer",{class:t.scrollVisible?"":"fixed"},[t._v(" Developed by "),s("a",{attrs:{href:t.authorUrl}},[t._v(t._s(t.authorName))]),t._v(". Licensed under "),s("a",{attrs:{href:t.licenseUrl}},[t._v(t._s(t.license))]),t._v(" "+t._s(t.showCopyright?"©":"")+" "+t._s(t.date)+". Get the "),s("a",{attrs:{href:t.repoUrl}},[t._v("Source Code")]),t._v(". ")])},B=[],j={name:"Footer",props:{text:String,authorName:{type:String,default:"Alicia Sykes"},authorUrl:{type:String,default:"https://aliciasykes.com"},license:{type:String,default:"MIT"},licenseUrl:{type:String,default:"https://gist.github.com/Lissy93/143d2ee01ccc5c052a17"},date:{type:String,default:""+(new Date).getFullYear()},showCopyright:{type:Boolean,default:!0},repoUrl:{type:String,default:"https://github.com/lissy93/dashy"}},data:()=>({scrollVisible:!1}),mounted(){this.scrollVisible=document.body.clientHeight>window.innerHeight}},H=j,$=(s("1ac7"),Object(w["a"])(H,P,B,!1,null,"23129a2b",null)),D=$.exports,V=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("transition",{attrs:{name:"slide-fade"}},[t.isLoading?s("div",{class:t.c,attrs:{id:"loading"},on:{click:function(e){t.c="hide"}}},[s("h2",[t._v("Dashy")]),s("div",{staticClass:"inner-container"},[s("p",[t._v("Loading")]),s("span",{staticClass:"dots-cont"},[s("span",{staticClass:"dot dot-1"}),s("span",{staticClass:"dot dot-2"}),s("span",{staticClass:"dot dot-3"}),s("span",{staticClass:"dot dot-4"})])])]):t._e()])},U=[],R={name:"LoadingScreen",props:{isLoading:{type:Boolean,default:!1}},data:()=>({c:""})},K=R,F=(s("2bb3"),Object(w["a"])(K,V,U,!1,null,"a7bc1de6",null)),W=F.exports,G=s("8b8e"),J=s.n(G);const q=(()=>{let t=h.a.appConfig;return localStorage[p["localStorageKeys"].APP_CONFIG]?t=JSON.parse(localStorage[p["localStorageKeys"].APP_CONFIG]):J.a.appConfig&&(t=J.a.appConfig),t.layout=localStorage[p["localStorageKeys"].LAYOUT_ORIENTATION]||J.a.appConfig.layout||h.a.layout,t.iconSize=localStorage[p["localStorageKeys"].ICON_SIZE]||J.a.appConfig.iconSize||h.a.iconSize,t})(),Y=(()=>{const t=h.a.pageInfo;let e;try{e=JSON.parse(localStorage[p["localStorageKeys"].PAGE_INFO])}catch(a){e={}}const s=J.a.pageInfo||t;return s.title=e.title||J.a.pageInfo.title||t.title,s.description=e.description||J.a.pageInfo.description||t.description,s.navLinks=e.navLinks||J.a.pageInfo.navLinks||t.navLinks,s.footerText=e.footerText||J.a.pageInfo.footerText||t.footerText,s})(),Z=(()=>{const t=localStorage[p["localStorageKeys"].CONF_SECTIONS];if(t)try{const e=JSON.parse(t);if(e.length>=1)return e}catch(e){}return J.a.sections})(),X=(()=>{const t={appConfig:q,pageInfo:Y,sections:Z};return t})();var Q={name:"app",components:{Header:M,Footer:D,LoadingScreen:W},provide:{config:X},data(){return{showFooter:h.a.visibleComponents.footer,isLoading:!0,appConfig:q,pageInfo:Y}},methods:{getFooterText(){return this.pageInfo&&this.pageInfo.footerText?this.pageInfo.footerText:""},injectCustomStyles(t){const e=document.createElement("style");e.textContent=t,document.head.append(e)},shouldShowSplash(){return this.appConfig.showSplashScreen||!localStorage[p["localStorageKeys"].HIDE_WELCOME_BANNER]},hideSplash(){this.shouldShowSplash()&&!this.shouldHidePageComponents()?setTimeout(()=>{this.isLoading=!1},p["splashScreenTime"]||2e3):this.isLoading=!1},shouldHidePageComponents(){return["download"].includes(this.$route.name)}},computed:{currentRouteName(){return this.$route.name}},mounted(){if(this.hideSplash(),this.appConfig.customCss){const t=this.appConfig.customCss.replace(/<\/?[^>]+(>|$)/g,"");this.injectCustomStyles(t)}}},tt=Q,et=(s("5c0b"),Object(w["a"])(tt,m,f,!1,null,null,null)),st=et.exports,at=s("8c4f"),ot=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"home",style:t.getBackgroundImage()},[s("SettingsContainer",{ref:"filterComp",staticClass:"filter-container",attrs:{displayLayout:t.layout,iconSize:t.itemSizeBound,availableThemes:t.getExternalCSSLinks(),sections:t.getSections(t.sections),appConfig:t.appConfig,pageInfo:t.pageInfo,modalOpen:t.modalOpen},on:{"user-is-searchin":t.searching,"change-display-layout":t.setLayoutOrientation,"change-icon-size":t.setItemSize,"change-modal-visibility":t.updateModalVisibility}}),t.checkTheresData(t.sections)?s("div",{class:"item-group-container orientation-"+t.layout+" item-size-"+t.itemSizeBound},t._l(t.getSections(t.sections),(function(e,a){return s("ItemGroup",{key:a,class:0===t.filterTiles(e.items).length&&t.searchValue?"no-results":"",attrs:{title:e.name,icon:e.icon||void 0,displayData:t.getDisplayData(e),groupId:"section-"+a,items:t.filterTiles(e.items),itemSize:t.itemSizeBound},on:{itemClicked:function(e){return t.finishedSearching()},"change-modal-visibility":t.updateModalVisibility}})})),1):t._e(),t.checkIfResults()?s("div",{staticClass:"no-data"},[t._v(" "+t._s(t.searchValue?"No Search Results":"No Data Configured")+" ")]):t._e()],1)},nt=[],it=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("section",[t.searchVisible?s("SearchBar",{ref:"SearchBar",attrs:{active:!t.modalOpen},on:{"user-is-searchin":t.userIsTypingSomething}}):t._e(),s("div",{staticClass:"options-outer"},[s("div",{class:"options-container "+(t.settingsVisible?"":"hide")},[s("ThemeSelector",{attrs:{themes:t.availableThemes,confTheme:t.getInitialTheme(),userThemes:t.getUserThemes()}}),s("LayoutSelector",{attrs:{displayLayout:t.displayLayout},on:{layoutUpdated:t.updateDisplayLayout}}),s("ItemSizeSelector",{attrs:{iconSize:t.iconSize},on:{iconSizeUpdated:t.updateIconSize}}),s("ConfigLauncher",{attrs:{sections:t.sections,pageInfo:t.pageInfo,appConfig:t.appConfig},on:{modalChanged:t.modalChanged}}),t.isUserLoggedIn()?s("IconLogout",{directives:[{name:"tooltip",rawName:"v-tooltip",value:"Logout",expression:"'Logout'"}],staticClass:"logout-icon",on:{click:function(e){return t.logout()}}}):t._e()],1),s("div",{class:"show-hide-container "+(t.settingsVisible?"hide-btn":"show-btn")},[s("button",{directives:[{name:"tooltip",rawName:"v-tooltip",value:(t.settingsVisible?"Hide":"Open")+" Settings Menu",expression:"`${settingsVisible? 'Hide' : 'Open'} Settings Menu`"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.toggleSettingsVisibility()}}},[t.settingsVisible?s("IconClose"):s("IconOpen")],1)])]),s("KeyboardShortcutInfo")],1)},rt=[],ct=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("form",[s("label",{attrs:{for:"filter-tiles"}},[t._v("Search")]),s("input",{directives:[{name:"model",rawName:"v-model",value:t.input,expression:"input"}],ref:"filter",attrs:{id:"filter-tiles",placeholder:"Start typing to filter..."},domProps:{value:t.input},on:{input:[function(e){e.target.composing||(t.input=e.target.value)},t.userIsTypingSomething],keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.clearFilterInput.apply(null,arguments)}}}),t.input.length>0?s("i",{staticClass:"clear-search",attrs:{title:"Clear search"},on:{click:t.clearFilterInput}},[t._v("x")]):t._e()])},lt=[];class ut{constructor(t){this.index=t}resetIndex(){this.index=0}arrowNavigation(t){void 0===this.index?this.index=0:37===t?this.index-=1:38===t?this.index=ut.goToPrevious(this.index):39===t?this.index+=1:40===t&&(this.index=ut.goToNext(this.index)),this.index=ut.getSafeElementIndex(this.index),ut.selectItemByIndex(this.index).focus()}static getNumResults(){return document.getElementsByClassName("item").length}static getSafeElementIndex(t){const e=ut.getNumResults();return t<0?e-1:t>=e?0:t}static selectItemByIndex(t){return t>=0&&t<=ut.getNumResults()?document.getElementsByClassName("item")[t]:[document.getElementsByClassName("item")]}static findPreviousRow(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetTop===e,s=(t,a)=>t>=ut.getNumResults()?s(0,a):e(t,a)?s(t-1,a):t,a=ut.selectItemByIndex(t).offsetTop;return s(t,a)}static goToPrevious(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetToput.selectItemByIndex(t).offsetTop===e,s=(t,a)=>t>=ut.getNumResults()?s(0,a):e(t,a)?s(t+1,a):t,a=ut.selectItemByIndex(t).offsetTop;return s(t,a)}static goToNext(t){const e=(t,e)=>ut.selectItemByIndex(t).offsetTop>ut.selectItemByIndex(e).offsetTop,s=ut.findNextRow(t),a=s-t,o=s-ut.findPreviousRow(t)-1,n=e(t,s)?0:o-a;return s+n}}var dt={name:"FilterTile",props:{active:Boolean},data(){return{input:"",akn:new ut}},mounted(){window.addEventListener("keydown",t=>{const e=document.activeElement.id,{key:s,keyCode:a}=t;this.active&&(/^[a-zA-Z]$/.test(s)&&"filter-tiles"!==e?(this.$refs.filter.focus(),this.userIsTypingSomething()):a>=37&&a<=40?this.akn.arrowNavigation(a):27===a&&this.clearFilterInput())})},methods:{userIsTypingSomething(){this.$emit("user-is-searchin",this.input)},clearFilterInput(){this.input="",this.userIsTypingSomething(),document.activeElement.blur(),this.akn.resetIndex()}}},pt=dt,ht=(s("8949"),Object(w["a"])(pt,ct,lt,!1,null,"72e6bff4",null)),mt=ht.exports,ft=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"config-options"},[s("span",[t._v("Config")]),s("div",{staticClass:"config-buttons"},[s("IconSpanner",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Update configuration locally"),expression:"tooltip('Update configuration locally')"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.showEditor()}}}),s("IconCloud",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Backup / restore cloud config"),expression:"tooltip('Backup / restore cloud config')"}],attrs:{tabindex:"-2"},on:{click:function(e){return t.showCloudModal()}}})],1),s("modal",{attrs:{name:t.modalNames.CONF_EDITOR,resizable:!0,width:"60%",height:"85%",classes:"dashy-modal"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[s("ConfigContainer",{attrs:{config:t.combineConfig()}})],1),s("modal",{attrs:{name:t.modalNames.CLOUD_BACKUP,resizable:!0,width:"65%",height:"60%",classes:"dashy-modal"},on:{closed:function(e){return t.$emit("modalChanged",!1)}}},[s("CloudBackupRestore",{attrs:{config:t.combineConfig()}})],1)],1)},gt=[],vt=s("35c3"),yt=s.n(vt),bt=s("6780"),Ct=s.n(bt),St=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("Tabs",{ref:"tabView",attrs:{navAuto:!0,name:"Add Item"}},[s("TabItem",{staticClass:"main-tab",attrs:{name:"Config"}},[s("div",{staticClass:"main-options-container"},[s("h2",[t._v("Configuration Options")]),s("a",{staticClass:"hyperlink-wrapper",on:{click:function(e){return t.downloadConfigFile("conf.yml",t.yaml)}}},[s("button",{staticClass:"config-button center"},[s("DownloadIcon",{staticClass:"button-icon"}),t._v(" Download Config ")],1)]),s("button",{staticClass:"config-button center",on:{click:function(e){return t.goToEdit()}}},[s("EditIcon",{staticClass:"button-icon"}),t._v(" Edit Config ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.goToCustomCss()}}},[s("CustomCssIcon",{staticClass:"button-icon"}),t._v(" Edit Custom CSS ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.openCloudSync()}}},[s("CloudIcon",{staticClass:"button-icon"}),t._v(" "+t._s(t.backupId?"Edit Cloud Sync":"Enable Cloud Sync")+" ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.openRebuildAppModal()}}},[s("RebuildIcon",{staticClass:"button-icon"}),t._v(" Rebuild Application ")],1),s("button",{staticClass:"config-button center",on:{click:function(e){return t.resetLocalSettings()}}},[s("DeleteIcon",{staticClass:"button-icon"}),t._v(" Reset Local Settings ")],1),s("p",{staticClass:"small-screen-note",staticStyle:{display:"none"}},[t._v(" You are using a very small screen, and some screens in this menu may not be optimal ")]),s("div",{staticClass:"config-note"},[s("span",[t._v(" It is recommend to make a backup of your conf.yml file, before making any changes. ")])])]),s("RebuildApp")],1),s("TabItem",{staticClass:"code-container",attrs:{name:"View Config"}},[s("pre",{attrs:{id:"conf-yaml"}},[t._v(t._s(t.yaml))]),s("div",{staticClass:"yaml-action-buttons"},[s("h2",[t._v("Actions")]),s("a",{staticClass:"yaml-button download",on:{click:function(e){return t.downloadConfigFile("conf.yml",t.yaml)}}},[t._v(" Download Config ")]),s("a",{staticClass:"yaml-button copy",on:{click:function(e){return t.copyConfigToClipboard()}}},[t._v("Copy Config")]),s("a",{staticClass:"yaml-button reset",on:{click:function(e){return t.resetLocalSettings()}}},[t._v("Reset Config")])])]),s("TabItem",{attrs:{name:"Edit Config"}},[s("JsonEditor",{attrs:{config:t.config}})],1),s("TabItem",{attrs:{name:"Custom Styles"}},[s("CustomCssEditor",{attrs:{config:t.config,initialCss:"hello"}})],1)],1)},wt=[],It=s("1020"),_t=s.n(It),kt=s("2e7b"),xt=s.n(kt),Tt=(s("1d89"),s("d97e"));const Ot=t=>t.split("\n").map(t=>t.trimRight()).join("\n"),Et=t=>{throw new Error("Error in Json to YAML conversion: "+t)},Lt=t=>{let e="";const s={undefined(){return"null"},null(){return"null"},number(t){return t},boolean(t){return t?"true":"false"},string(t){return JSON.stringify(t)},array(t){let a="";return 0===t.length?(a+="[]",a):(e=e.replace(/$/," "),t.forEach(t=>{const o=s[Object(Tt["typeOf"])(t)];o||Et(Object(Tt["typeOf"])(t)),a+=`\n${e}- ${o(t,!0)}`}),e=e.replace(/ {2}/,""),a)},object(t,a,o){let n="";return 0===Object.keys(t).length?(n+="{}",n):(o||(e=e.replace(/$/," ")),Object.keys(t).forEach((o,i)=>{const r=t[o],c=s[Object(Tt["typeOf"])(r)];"undefined"!==typeof r&&(c||Et(Object(Tt["typeOf"])(r)),a&&0===i||(n+="\n"+e),n+=`${o}: ${c(r)}`)}),e=e.replace(/ {2}/,""),n)},function(){return"[object Function]"}};return Ot(s[Object(Tt["typeOf"])(t)](t,!0,!0)+"\n")};var At=Lt,Nt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"json-editor-outer"},[s("v-jsoneditor",{attrs:{options:t.options,height:"500px"},model:{value:t.jsonData,callback:function(e){t.jsonData=e},expression:"jsonData"}}),s("div",{staticClass:"save-options"},[s("span",{staticClass:"save-option-title"},[t._v("Save Location:")]),s("div",{staticClass:"option"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"local",value:"local",disabled:!t.allowWriteToDisk},domProps:{checked:t._q(t.saveMode,"local")},on:{change:function(e){t.saveMode="local"}}}),s("label",{staticClass:"save-option-label",attrs:{for:"local"}},[t._v("Apply Locally")])]),s("div",{staticClass:"option"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.saveMode,expression:"saveMode"}],staticClass:"radio-option",attrs:{type:"radio",id:"file",value:"file",disabled:!t.allowWriteToDisk},domProps:{checked:t._q(t.saveMode,"file")},on:{change:function(e){t.saveMode="file"}}}),s("label",{staticClass:"save-option-label",attrs:{for:"file"}},[t._v("Write Changes to Config File")])])]),s("button",{class:"save-button "+(t.isValid?"":"err"),on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),s("p",{staticClass:"errors"},[s("ul",[t._l(t.errorMessages,(function(e,a){return s("li",{key:a,class:"type-"+e.type},[t._v(" "+t._s(e.msg)+" ")])})),t.errorMessages.length<1?s("li",{staticClass:"type-valid"},[t._v(" Config is Valid ")]):t._e()],2)]),void 0!==t.saveSuccess?s("p",{class:"response-output status-"+(t.saveSuccess?"success":"fail")},[t._v(" "+t._s(t.saveSuccess?"Task Complete":"Task Failed")+" ")]):t._e(),s("p",{staticClass:"response-output"},[t._v(t._s(t.responseText))]),t.saveSuccess?s("p",{staticClass:"response-output"},[t._v(" The app should rebuild automatically. You will need to refresh the page for changes to take effect. ")]):t._e(),s("p",{staticClass:"note"},[t._v(" It is recommend to backup your existing confiruration before making any changes. ")])],1)},zt=[],Mt=s("bcb2"),Pt=s.n(Mt),Bt=s("831b"),jt=s("94f8"),Ht=s.n(jt);const $t=t=>Ht()(t.toString()).toString().toLowerCase(),Dt=t=>{const e=t.map(t=>$t(t));let s=!1;return document.cookie.split(";").forEach(t=>{if(t&&t.split("=").length>1){const a=t.split("=")[0].trim(),o=t.split("=")[1].trim();a===p["cookieKeys"].AUTH_TOKEN&&e.includes(o)&&(s=!0)}}),s},Vt=(t,e,s)=>{let a;return t?e?s.forEach(s=>{s.user===t&&(a=s.hash.toLowerCase()===Ht()(e).toString().toLowerCase()?{correct:!0,msg:"Logging in..."}:{correct:!1,msg:"Incorrect Password"})}):a={correct:!1,msg:"Missing Password"}:a={correct:!1,msg:"Missing Username"},a||{correct:!1,msg:"User not found"}},Ut=(t,e)=>{const s={user:t,hash:Ht()(e).toString().toLowerCase()};document.cookie=`authenticationToken=${$t(s)}; max-age=600`,localStorage.setItem(p["localStorageKeys"].USERNAME,t)},Rt=()=>{document.cookie="authenticationToken=null",localStorage.removeItem(p["localStorageKeys"].USERNAME)},Kt=t=>{if(!t||0===t.length)return!0;if(!Dt(t))return!1;const e=localStorage[p["localStorageKeys"].USERNAME];let s=!1;return t.forEach(t=>{t.user===e&&"admin"===t.type&&(s=!0)}),s};var Ft=s("bc3a"),Wt=s.n(Ft),Gt={name:"JsonEditor",props:{config:Object},components:{VJsoneditor:Pt.a},data(){return{jsonData:this.config,errorMessages:[],saveMode:"file",options:{schema:Bt,mode:"tree",modes:["tree","code","preview"],name:"config",onValidationError:this.validationErrors},jsonParser:At,responseText:"",saveSuccess:void 0,allowWriteToDisk:this.shouldAllowWriteToDisk()}},computed:{isValid(){return this.errorMessages.length<1}},mounted(){this.allowWriteToDisk||(this.saveMode="local")},methods:{shouldAllowWriteToDisk(){const{appConfig:t}=this.config;return!1!==t.allowConfigEdit&&Kt(t.auth)},save(){"local"!==this.saveMode&&this.allowWriteToDisk?"file"===this.saveMode?this.writeConfigToDisk():this.$toasted.show("Please select a Save Mode: Local or File"):this.saveConfigLocally()},writeConfigToDisk(){const t=this.jsonParser(this.jsonData),e=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,s=e+"/config-manager/save",a={"Content-Type":"text/plain"},o={config:t,timestamp:new Date},n=Wt.a.post(s,o,a);n.then(t=>{this.saveSuccess=t.data.success||!1,this.responseText=t.data.message,this.saveSuccess?(this.carefullyClearLocalStorage(),this.showToast("Config file written to disk succesfully",!0)):this.showToast("An error occurred saving config",!1)}).catch(t=>{this.saveSuccess=!1,this.responseText=t,this.showToast(t,!1)})},saveConfigLocally(){const t=this.jsonData;t.sections&&localStorage.setItem(p["localStorageKeys"].CONF_SECTIONS,JSON.stringify(t.sections)),t.pageInfo&&localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t.pageInfo)),t.appConfig&&localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(t.appConfig)),t.appConfig.theme&&localStorage.setItem(p["localStorageKeys"].THEME,t.appConfig.theme),this.showToast("Changes saved succesfully",!0)},carefullyClearLocalStorage(){localStorage.removeItem(p["localStorageKeys"].PAGE_INFO),localStorage.removeItem(p["localStorageKeys"].APP_CONFIG),localStorage.removeItem(p["localStorageKeys"].CONF_SECTIONS)},validationErrors(t){const e=[];t.forEach(t=>{switch(t.type){case"validation":e.push({type:"validation",msg:`Validatation Warning: ${t.error.keyword} ${t.error.message}`});break;case"error":e.push({type:"parse",msg:t.message});break;default:e.push({type:"editor",msg:"Error in JSON"});break}}),this.errorMessages=e},showToast(t,e){this.$toasted.show(t,{className:"toast-"+(e?"success":"error")})}}},Jt=Gt,qt=(s("80a7"),Object(w["a"])(Jt,Nt,zt,!1,null,null,null)),Yt=qt.exports,Zt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"json-editor-outer"},[s("prism-editor",{staticClass:"my-editor",attrs:{highlight:t.highlighter,"line-numbers":""},model:{value:t.customCss,callback:function(e){t.customCss=e},expression:"customCss"}}),s("button",{staticClass:"save-button",on:{click:function(e){return t.save()}}},[t._v("Save Changes")]),t._m(0)],1)},Xt=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("p",{staticClass:"quick-note"},[s("b",[t._v("Note")]),t._v(": You will need to refresh the page for your changes to take effect. Styles overides are only stored locally, so it is reccomended to make a copy of your CSS. To remove all custom styles, delete the contents and hit Save Changes ")])}],Qt=s("e57a"),te=s("8c7a"),ee=(s("6605"),s("dff1"),s("cabf"),{name:"JsonEditor",props:{config:Object},components:{PrismEditor:Qt["a"]},data(){return{customCss:this.config.appConfig.customCss||"\n\n\n\n\n"}},methods:{validate(t){return""===t||t.match(/((?:^\s*)([\w#.@*,:\-.:>,*\s]+)\s*{(?:[\s]*)((?:[A-Za-z\- \s]+[:]\s*['"0-9\w .,/()\-!%]+;?)*)*\s*}(?:\s*))/gim)},save(){let t="";if(this.validate(this.customCss)){const e={...this.config.appConfig};e.customCss=this.customCss,localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(e)),t="Changes saved succesfully",this.inject(this.customCss),""===this.customCss&&setTimeout(()=>{location.reload()},1500)}else t="Error - Invalid CSS";this.$toasted.show(t)},inject(t){const e=t.replace(/<\/?[^>]+(>|$)/g,""),s=document.createElement("style");s.textContent=e,document.head.append(s)},highlighter(t){return Object(te["highlight"])(t,te["languages"].css)}}}),se=ee,ae=(s("9e50"),Object(w["a"])(se,Zt,Xt,!1,null,null,null)),oe=ae.exports,ne=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("modal",{attrs:{name:t.modalName,resizable:!0,width:"50%",height:"60%",classes:"dashy-modal"}},[s("div",{staticClass:"rebuild-app-container"},[s("h3",{staticClass:"rebuild-app-title"},[t._v("Rebuild Application")]),s("p",[t._v(" A rebuild is required for changes written to the conf.yml file to take effect. This should happen automatically, but if it hasn't, you can manually trigger it here."),s("br"),t._v(" This is not required for modifications stored locally. ")]),s("Button",{attrs:{click:t.startBuild,disabled:t.loading},scopedSlots:t._u([{key:"text",fn:function(){return[t._v(t._s(t.loading?"Building...":"Start Build"))]},proxy:!0},{key:"icon",fn:function(){return[s("RebuildIcon")]},proxy:!0}])}),t.loading?s("div",{staticClass:"loader-info"},[s("LoadingAnimation",{staticClass:"loader"}),s("p",{staticClass:"loading-message"},[t._v("This may take a few minutes...")])],1):t._e(),void 0!==t.success?s("div",{staticClass:"rebuild-response"},[t.success?s("p",{staticClass:"response-status success"},[t._v("✅ Build completed succesfully")]):s("p",{staticClass:"response-status failure"},[t._v("❌ Build operation failed")]),s("pre",{staticClass:"output"},[s("code",[t._v(t._s(t.output||t.error))])]),s("p",{staticClass:"rebuild-message"},[t._v(t._s(t.message))]),t.success?s("p",{staticClass:"rebuild-message"},[t._v(" A page reload is now required for changes to take effect ")]):t._e(),t.success?s("Button",{attrs:{click:t.refreshPage},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Reload Page")]},proxy:!0},{key:"icon",fn:function(){return[s("ReloadIcon")]},proxy:!0}],null,!1,1379687826)}):t._e()],1):t._e()],1)])},ie=[],re=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{attrs:{disabled:t.disabled},on:{click:function(e){return t.click()}}},[t._t("default"),t._t("text"),t._t("icon")],2)},ce=[],le={name:"Button",props:{text:String,click:Function,disabled:Boolean}},ue=le,de=(s("df27"),Object(w["a"])(ue,re,ce,!1,null,"620b35ec",null)),pe=de.exports,he=s("0911"),me=s.n(he),fe=s("3ff5"),ge=s.n(fe),ve=s("6266"),ye=s.n(ve),be={name:"RebuildApp",components:{Button:pe,RebuildIcon:me.a,ReloadIcon:ge.a,LoadingAnimation:ye.a},data:()=>({modalName:p["modalNames"].REBUILD_APP,loading:!1,success:void 0,error:"",output:"",message:""}),methods:{startBuild(){const t=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,e=t+"/config-manager/rebuild";this.loading=!0,Wt.a.get(e).then(t=>{this.finished(t.data||!1)}).catch(t=>{this.finished({success:!1,error:t})})},finished(t){if(this.loading=!1,t){const{success:e,output:s,error:a,message:o}=t;this.success=e,this.output=s,this.message=o,this.error=a}this.$toasted.show(this.success?"✅ Build Completed Succesfully":"❌ Build Failed",{className:"toast-"+(this.success?"success":"error")})},refreshPage(){location.reload()}}},Ce=be,Se=(s("7fda"),Object(w["a"])(Ce,ne,ie,!1,null,"1ee3fcba",null)),we=Se.exports,Ie=s("cbd9"),_e=s.n(Ie),ke=s("0278"),xe=s.n(ke),Te=s("e7fa"),Oe=s.n(Te),Ee=s("7da9"),Le=s.n(Ee),Ae={name:"ConfigContainer",data(){return{jsonParser:At,backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},props:{config:Object},computed:{sections:function(){return this.config.sections},yaml(){return this.jsonParser(this.config)}},components:{JsonEditor:Yt,CustomCssEditor:oe,RebuildApp:we,DownloadIcon:_e.a,DeleteIcon:xe.a,EditIcon:Oe.a,CloudIcon:Ct.a,CustomCssIcon:Le.a,RebuildIcon:me.a},methods:{goToEdit(){const t=this.$refs.tabView.navItems[2];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},goToMetaEdit(){const t=this.$refs.tabView.navItems[3];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},goToCustomCss(){const t=this.$refs.tabView.navItems[4];this.$refs.tabView.activeTabItem({tabItem:t,byUser:!0})},openRebuildAppModal(){this.$modal.show(p["modalNames"].REBUILD_APP)},openCloudSync(){this.$modal.show(p["modalNames"].CLOUD_BACKUP)},copyConfigToClipboard(){navigator.clipboard.writeText(this.jsonParser(this.config))},resetLocalSettings(){const t="This will remove all user settings from local storage, but won't effect your 'conf.yml' file. It is recommend to make a backup of your modified YAML settings first.\n\nAre you sure you want to proceed?",e=confirm(t);e&&(localStorage.clear(),this.$toasted.show("Data cleared succesfully"),setTimeout(()=>{location.reload(!0)},1900))},downloadConfigFile(t,e){const s=document.createElement("a");s.setAttribute("href","data:text/plain;charset=utf-8, "+encodeURIComponent(e)),s.setAttribute("download",t),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}},mounted(){_t.a.registerLanguage("yaml",xt.a);const t=_t.a.highlight(this.jsonParser(this.config),{language:"yaml"}).value;document.getElementById("conf-yaml").innerHTML=t}},Ne=Ae,ze=(s("c1bd"),s("1d47"),Object(w["a"])(Ne,St,wt,!1,null,"41a7f69b",null)),Me=ze.exports,Pe=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"cloud-backup-restore-wrapper"},[t._m(0),s("div",{staticClass:"section backup-section"},[t.backupId?s("h3",[t._v("Update Backup")]):s("h3",[t._v("Make a Backup")]),s("Input",{attrs:{name:"backup-password",label:t.backupId?"Enter your Password":"Choose a Password",layout:"vertical",type:"password"},model:{value:t.backupPassword,callback:function(e){t.backupPassword=e},expression:"backupPassword"}}),s("Button",{attrs:{click:t.checkPass},scopedSlots:t._u([{key:"text",fn:function(){return[t._v(t._s(t.backupId?"Update Backup":"Backup"))]},proxy:!0},{key:"icon",fn:function(){return[s("IconBackup")]},proxy:!0}])}),t.backupId?s("div",{staticClass:"results-view"},[s("span",{staticClass:"backup-id-label"},[t._v("Your Backup ID: ")]),s("pre",{staticClass:"backup-id-value"},[t._v(t._s(t.backupId))]),s("span",{staticClass:"backup-id-note"},[t._v(" This is used to restore from backups later. So keep it, along with your password somewhere safe. ")])]):t._e()],1),s("div",{staticClass:"section restore-section"},[s("h3",[t._v("Restore a Backup")]),s("Input",{attrs:{name:"restore-code",label:"Restore ID"},model:{value:t.restoreCode,callback:function(e){t.restoreCode=e},expression:"restoreCode"}}),s("Input",{attrs:{name:"restore-password",label:"Password",type:"password"},model:{value:t.restorePassword,callback:function(e){t.restorePassword=e},expression:"restorePassword"}}),s("Button",{attrs:{click:t.restoreBackup},scopedSlots:t._u([{key:"text",fn:function(){return[t._v("Restore")]},proxy:!0},{key:"icon",fn:function(){return[s("IconRestore")]},proxy:!0}])})],1)])},Be=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"section intro"},[s("h2",[t._v("Cloud Backup & Restore")]),s("p",{staticClass:"intro"},[t._v(" Cloud backup and restore is an optional feature, that enables you to upload your config to the internet, and then restore it on any other device or instance of Dashy. "),s("br"),s("br"),t._v(" All data is fully end-to-end encrypted with AES, using your password as the key. "),s("br"),t._v(" For more info, please see the "),s("a",{attrs:{href:"https://github.com/Lissy93/dashy/blob/master/docs/backup-restore.md"}},[t._v("docs")])])])}],je=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:"input-container "+t.layout},[t.label?s("label",{attrs:{for:"name"}},[t._v(t._s(t.label))]):t._e(),s("input",{attrs:{type:t.type,name:t.name,id:t.name,placeholder:t.placeholder},domProps:{value:t.value},on:{input:function(e){return t.updateValue(e.target.value)}}})])},He=[],$e={name:"Input",props:{value:String,label:String,name:String,placeholder:String,type:{default:"text",type:String},layout:{validator:t=>-1!==["horizontal","vertical"].indexOf(t),type:String,default:"vertical"}},methods:{updateValue(t){this.$emit("input",t)}}},De=$e,Ve=(s("2d25"),Object(w["a"])(De,je,He,!1,null,"5df13ed2",null)),Ue=Ve.exports,Re=s("3a1e"),Ke=s.n(Re),Fe=s("e6a4"),We=s.n(Fe),Ge=s("c198"),Je=s.n(Ge),qe=s("f8d5"),Ye=s.n(qe);const Ze=p["backupEndpoint"],Xe=(t,e)=>{const s=JSON.stringify(t),a=Je.a.encrypt(s,e);return a.toString()},Qe=(t,e)=>Je.a.decrypt(t,e).toString(Ye.a),ts=t=>Ht()(t).toString().slice(0,14),es=(t,e)=>Wt.a.post(Ze,{userData:Xe(t,e),subHash:ts(e)}),ss=(t,e,s)=>Wt.a.put(Ze,{backupId:s,userData:Xe(t,e),subHash:ts(e)}),as=t=>Object.entries(t).map(t=>t.map(encodeURIComponent).join("=")).join("&"),os=(t,e)=>{const s=as({backupId:t,subHash:ts(e)}),a=`${Ze}/?${s}`;return new Promise((t,s)=>{Wt.a.get(a).then(a=>{if(!a.data||a.data.errorMsg)s(a.data.errorMsg||"Error");else{const n=Qe(a.data.userData.userData,e);try{t(JSON.parse(n))}catch(o){s(o)}}})})};var ns={name:"CloudBackupRestore",props:{config:Object},data(){return{backupPassword:"",restorePassword:"",restoreCode:"",backupId:localStorage[p["localStorageKeys"].BACKUP_ID]||""}},components:{Button:pe,Input:Ue,IconBackup:Ke.a,IconRestore:We.a},methods:{restoreBackup(){os(this.restoreCode,this.restorePassword).then(t=>{this.restoreFromBackup(t,this.restoreCode)}).catch(t=>{this.showErrorMsg(t)})},checkPass(){const t=localStorage[p["localStorageKeys"].BACKUP_HASH]||void 0;t?t===this.makeHash(this.backupPassword)?this.makeUpdate():this.showErrorMsg("Incorrect password. Please enter your current password."):this.makeBackup()},makeBackup(){es(this.config,this.backupPassword).then(t=>{t.data&&!t.data.errorMsg&&t.data.backupId?this.updateUiAfterBackup(t.data.backupId,!1):this.showErrorMsg(t.data.errorMsg||"Error")}).catch(()=>{this.showErrorMsg("Unable to process request")})},makeUpdate(){ss(this.config,this.backupPassword,this.backupId).then(t=>{t.data&&!t.data.errorMsg&&t.data.backupId?this.updateUiAfterBackup(t.data.backupId,!0):this.showErrorMsg(t.data.errorMsg||"Error")}).catch(()=>{this.showErrorMsg("Unable to process request")})},restoreFromBackup(t,e){localStorage.setItem(p["localStorageKeys"].CONF_SECTIONS,JSON.stringify(t.sections)),localStorage.setItem(p["localStorageKeys"].APP_CONFIG,JSON.stringify(t.appConfig)),localStorage.setItem(p["localStorageKeys"].PAGE_INFO,JSON.stringify(t.pageInfo)),t.appConfig.theme&&localStorage.setItem(p["localStorageKeys"].THEME,t.appConfig.theme),this.setBackupIdLocally(e,this.restorePassword),this.showSuccessMsg("Config Restored Succesfully"),setTimeout(()=>{location.reload()},1500)},updateUiAfterBackup(t,e=!1){this.setBackupIdLocally(t,this.backupPassword),this.showSuccessMsg((e?"Update":"Backup")+" Completed Succesfully"),this.backupPassword=""},showErrorMsg(t){this.$toasted.show(t,{className:"toast-error"})},showSuccessMsg(t){this.$toasted.show(t,{className:"toast-success"})},makeHash(t){return Ht()(t).toString()},setBackupIdLocally(t,e){this.backupId=t;const s=this.makeHash(e);localStorage.setItem(p["localStorageKeys"].BACKUP_ID,t),localStorage.setItem(p["localStorageKeys"].BACKUP_HASH,s)}}},is=ns,rs=(s("baed"),Object(w["a"])(is,Pe,Be,!1,null,"763657f4",null)),cs=rs.exports,ls={name:"ConfigLauncher",data(){return{modalNames:p["modalNames"]}},components:{IconSpanner:yt.a,IconCloud:Ct.a,ConfigContainer:Me,CloudBackupRestore:cs},props:{sections:Array,pageInfo:Object,appConfig:Object},methods:{showEditor:function(){this.$modal.show(p["modalNames"].CONF_EDITOR),this.$emit("modalChanged",!0)},showCloudModal:function(){this.$modal.show(p["modalNames"].CLOUD_BACKUP),this.$emit("modalChanged",!0)},combineConfig(){const t={};return t[p["topLevelConfKeys"].APP_CONFIG]=this.appConfig,t[p["topLevelConfKeys"].PAGE_INFO]=this.pageInfo,t[p["topLevelConfKeys"].SECTIONS]=this.sections,t[p["topLevelConfKeys"].APP_CONFIG].theme=localStorage[p["localStorageKeys"].THEME]||t[p["topLevelConfKeys"].APP_CONFIG].theme,t},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},us=ls,ds=(s("9c85"),Object(w["a"])(us,ft,gt,!1,null,"383db9de",null)),ps=ds.exports,hs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.themes?s("div",{staticClass:"theme-selector-section"},[s("span",{staticClass:"theme-label"},[t._v("Theme")]),s("v-select",{staticClass:"theme-dropdown",attrs:{options:t.themeNames,tabindex:-2},model:{value:t.selectedTheme,callback:function(e){t.selectedTheme=e},expression:"selectedTheme"}})],1):t._e()},ms=[];const fs=function(){const t=t=>{const e=document.createElement("link");return e.rel="stylesheet",e.href=t,document.head.appendChild(e),new Promise((t,s)=>{e.onload=e=>{const{sheet:s}=e.target;s.disabled=!0,t(s)},e.onerror=s})},e=(t,e)=>{const s=t;if(e&&!t[e])throw new Error(`Theme: '${e}' does not exist.`);Object.keys(t).forEach(t=>{s[t].disabled=t!==e})},s={};return{add(e,a){return t(a).then(t=>{s[e]=t})},set theme(t){e(s,t)},get theme(){return Object.keys(s).find(t=>!s[t].disabled)}}};var gs=fs,vs={name:"ThemeSelector",props:{themes:Object,confTheme:String,userThemes:Array},watch:{selectedTheme(t){this.updateTheme(t)}},data(){return{selectedTheme:this.getInitialTheme(),themeHelper:new gs,loading:!0,builtInThemes:this.userThemes.concat(h.a.builtInThemes)}},computed:{themeNames:function(){const t=Object.keys(this.themes);return t.concat(this.builtInThemes)}},created(){const t=Object.keys(this.themes).map(t=>this.themeHelper.add(t,this.themes[t]));this.isThemeLocal(this.selectedTheme)?this.updateTheme(this.selectedTheme):this.selectedTheme!==h.a.theme&&Promise.all(t).then(()=>{this.updateTheme(this.selectedTheme)})},methods:{setLocalTheme(t){const e=document.getElementsByTagName("html")[0];e.hasAttribute("data-theme")&&e.removeAttribute("data-theme"),e.setAttribute("data-theme",t)},getInitialTheme(){return localStorage[p["localStorageKeys"].THEME]||this.confTheme||h.a.theme},isThemeLocal(t){return this.builtInThemes.includes(t)},updateTheme(t){"Deafault"===t?(this.resetToDefault(),this.themeHelper.theme="Deafault"):this.isThemeLocal(t)?this.setLocalTheme(t):this.themeHelper.theme=t,localStorage.setItem(p["localStorageKeys"].THEME,t)},resetToDefault(){document.getElementsByTagName("html")[0].removeAttribute("data-theme")}}},ys=vs,bs=(s("4ade"),Object(w["a"])(ys,hs,ms,!1,null,null,null)),Cs=bs.exports,Ss=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("span",{staticClass:"options-label"},[t._v("Layout")]),s("div",{staticClass:"display-options"},[s("IconDeafault",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Auto"),expression:"tooltip('Auto')"}],class:"layout-icon "+("auto"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("auto")}}}),s("IconHorizontal",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Horizontal"),expression:"tooltip('Horizontal')"}],class:"layout-icon "+("horizontal"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("horizontal")}}}),s("IconVertical",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Vertical"),expression:"tooltip('Vertical')"}],class:"layout-icon "+("vertical"===t.displayLayout?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateDisplayLayout("vertical")}}})],1)])},ws=[],Is=s("c715"),_s=s.n(Is),ks=s("570d"),xs=s.n(ks),Ts=s("f9d7"),Os=s.n(Ts),Es={name:"LayoutSelector",data(){return{input:""}},props:{displayLayout:String},components:{IconDeafault:_s.a,IconHorizontal:xs.a,IconVertical:Os.a},methods:{updateDisplayLayout(t){this.$emit("layoutUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},Ls=Es,As=(s("7dc7"),Object(w["a"])(Ls,Ss,ws,!1,null,"c819d738",null)),Ns=As.exports,zs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("span",{staticClass:"options-label"},[t._v("Icon Size")]),s("div",{staticClass:"display-options"},[s("IconSmall",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Small"),expression:"tooltip('Small')"}],class:"layout-icon "+("small"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("small")}}}),s("IconMedium",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Medium"),expression:"tooltip('Medium')"}],class:"layout-icon "+("medium"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("medium")}}}),s("IconLarge",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip("Large"),expression:"tooltip('Large')"}],class:"layout-icon "+("large"===t.iconSize?"selected":""),attrs:{tabindex:"-2"},on:{click:function(e){return t.updateIconSize("large")}}})],1)])},Ms=[],Ps=s("d8e8"),Bs=s.n(Ps),js=s("7075"),Hs=s.n(js),$s=s("922c"),Ds=s.n($s),Vs={name:"IconSizeSelector",data(){return{input:""}},props:{iconSize:String},components:{IconSmall:Bs.a,IconMedium:Hs.a,IconLarge:Ds.a},methods:{updateIconSize(t){this.$emit("iconSizeUpdated",t)},tooltip(t){return{content:t,trigger:"hover focus",delay:250}}}},Us=Vs,Rs=(s("47d9"),Object(w["a"])(Us,zs,Ms,!1,null,"58966274",null)),Ks=Rs.exports,Fs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("transition",{attrs:{name:"slide-fade"}},[t.shouldHide?t._e():s("div",{staticClass:"kb-sc-info"},[s("h5",[t._v("There are keyboard shortcuts! âŒšïžđŸ™Œ")]),s("div",{staticClass:"close",attrs:{title:"Hide forever [Esc]"},on:{click:function(e){return t.hideWelcomeHelper()}}},[t._v("x")]),s("p",{attrs:{title:"Press [Esc] to hide this tip forever. See there's even a shortcut for that! 🚀"}},[t._v(" Just start typing to filter. Then use the tab key to cycle through results, and press enter to launch the selected item, or alt + enter to open in a modal. You can hit Esc at anytime to clear the search. Easy đŸ„ł ")])])])},Ws=[],Gs={name:"KeyboardShortcutInfo",data(){return{shouldHide:!0,timeDelay:3e3}},methods:{shouldHideWelcomeMessage(){return!!localStorage[p["localStorageKeys"].HIDE_WELCOME_BANNER]},hideWelcomeHelper(){this.shouldHide=!0,localStorage.setItem(p["localStorageKeys"].HIDE_WELCOME_BANNER,!0),window.removeEventListener("keyup",this.keyPressEvent)},keyPressEvent(t){27===t.keyCode&&this.hideWelcomeHelper()}},mounted(){const t=this.shouldHideWelcomeMessage();t?this.$destroy():(window.setTimeout(()=>{this.shouldHide=t},this.timeDelay),window.addEventListener("keyup",this.keyPressEvent))}},Js=Gs,qs=(s("9517"),Object(w["a"])(Js,Fs,Ws,!1,null,"c5f17d9a",null)),Ys=qs.exports,Zs=s("0123"),Xs=s.n(Zs),Qs=s("5703"),ta=s.n(Qs),ea=s("5f32"),sa=s.n(ea),aa={name:"SettingsContainer",props:{displayLayout:String,iconSize:String,availableThemes:Object,appConfig:Object,pageInfo:Object,sections:Array,modalOpen:Boolean},components:{SearchBar:mt,ConfigLauncher:ps,ThemeSelector:Cs,LayoutSelector:Ns,ItemSizeSelector:Ks,KeyboardShortcutInfo:Ys,IconLogout:Xs.a,IconOpen:ta.a,IconClose:sa.a},methods:{userIsTypingSomething(t){this.$emit("user-is-searchin",t)},clearFilterInput(){this.$refs.SearchBar.clearFilterInput()},updateDisplayLayout(t){this.$emit("change-display-layout",t)},updateIconSize(t){this.$emit("change-icon-size",t)},modalChanged(t){this.$emit("change-modal-visibility",t)},getInitialTheme(){return this.appConfig.theme||""},logout(){Rt(),this.$toasted.show("Logged Out"),setTimeout(()=>{location.reload(!0)},100)},isUserLoggedIn(){return!!localStorage[p["localStorageKeys"].USERNAME]},getUserThemes(){const t=this.appConfig.cssThemes||[];return"string"===typeof t?[t]:t},toggleSettingsVisibility(){this.settingsVisible=!this.settingsVisible,localStorage.setItem(p["localStorageKeys"].HIDE_SETTINGS,this.settingsVisible)},getSettingsVisibility(){return JSON.parse(localStorage[p["localStorageKeys"].HIDE_SETTINGS]||h.a.visibleComponents.settings)}},data(){return{searchVisible:h.a.visibleComponents.searchBar,settingsVisible:this.getSettingsVisibility()}}},oa=aa,na=(s("69ce"),Object(w["a"])(oa,it,rt,!1,null,"d4f6509a",null)),ia=na.exports,ra=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("Collapsable",{attrs:{title:t.title,icon:t.icon,uniqueKey:t.groupId,collapsed:t.displayData.collapsed,cols:t.displayData.cols,rows:t.displayData.rows,color:t.displayData.color,customStyles:t.displayData.customStyles}},[!t.items||t.items.length<1?s("div",{staticClass:"no-items"},[t._v(" No Items to Show Yet ")]):s("div",{class:"there-are-items "+(t.isGridLayout?"item-group-grid":""),style:t.gridStyle},[t._l(t.items,(function(e,a){return s("Item",{key:a+"_"+t.makeId(e.title),attrs:{id:a+"_"+t.makeId(e.title),url:e.url,title:e.title,description:e.description,icon:e.icon,target:e.target,color:e.color,backgroundColor:e.backgroundColor,itemSize:t.newItemSize,enableStatusCheck:t.shouldEnableStatusCheck(e.statusCheck),statusCheckInterval:t.getStatusCheckInterval()},on:{itemClicked:function(e){return t.$emit("itemClicked")},triggerModal:t.triggerModal}})})),s("div",{ref:"modalContainer"})],2),s("IframeModal",{ref:"iframeModal-"+t.groupId,attrs:{name:"iframeModal-"+t.groupId},on:{closed:function(e){return t.$emit("itemClicked")},modalChanged:t.modalChanged}})],1)},ca=[],la=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("a",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.getTooltipOptions(),expression:"getTooltipOptions()"}],class:"item "+(t.icon?"":"short")+" size-"+t.itemSize,style:"--open-icon: "+t.getUnicodeOpeningIcon()+"; "+t.customStyles,attrs:{href:"iframe"!==t.target?t.url:"#",target:"newtab"===t.target?"_blank":"",rel:"noopener noreferrer",tabindex:"0",id:"link-"+t.id},on:{click:t.itemOpened}},[s("div",{class:"tile-title "+(t.icon?"":"bounce"),attrs:{id:"tile-"+t.id}},[s("span",{staticClass:"text"},[t._v(t._s(t.title))]),s("div",{staticClass:"overflow-dots"},[t._v("...")]),s("p",{staticClass:"description"},[t._v(t._s(t.description))])]),s("Icon",{staticClass:"bounce",style:t.customStyles,attrs:{icon:t.icon,url:t.url,size:t.itemSize,color:t.color}}),s("ItemOpenMethodIcon",{staticClass:"opening-method-icon",attrs:{isSmall:!t.icon,openingMethod:t.target,position:"medium"===t.itemSize?"bottom right":"top right"}}),t.enableStatusCheck?s("StatusIndicator",{staticClass:"status-indicator",attrs:{statusSuccess:t.statusResponse?t.statusResponse.successStatus:void 0,statusText:t.statusResponse?t.statusResponse.message:void 0}}):t._e()],1)},ua=[],da=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"item-icon"},["font-awesome"===t.iconType?s("i",{class:t.icon+" "+t.size}):t.icon?s("img",{class:"tile-icon "+t.size+" "+(t.broken?"broken":""),attrs:{src:t.iconPath},on:{error:t.imageNotFound}}):t._e(),t.broken?s("BrokenImage",{staticClass:"missing-image"}):t._e()],1)},pa=[],ha=s("9635"),ma=s.n(ha);const fa=function(t){console.warn(t)};var ga=fa,va={name:"Icon",inject:["config"],props:{icon:String,url:String,size:String},components:{BrokenImage:ma.a},computed:{iconType:function(){return this.determineImageType(this.icon)},iconPath:function(){return this.getIconPath(this.icon,this.url)}},data(){return{broken:!1}},methods:{isUrl(t){const e=new RegExp(/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-/]))?/);return e.test(t)},isImage(t){const e=/(?:\.([^.]+))?$/,s=["png","jpg"],a=e.exec(t);return a.length>=1&&s.includes(a[1])},getFavicon(t){if(this.shouldUseDefaultFavicon(t)){const e=t.split("/");if(e.length>=2)return`${e[0]}/${e[1]}/${e[2]}/favicon.ico`}else if(t.includes("http")){const e=this.getHostName(t),s=this.config.appConfig.faviconApi||p["faviconApi"],a=p["faviconApiEndpoints"][s];return a.replace("$URL",e)}return""},shouldUseDefaultFavicon(t){const e=/(127\.)|(192\.168\.)|(10\.)|(172\.1[6-9]\.)|(172\.2[0-9]\.)|(172\.3[0-1]\.)|(::1$)|([fF][cCdD])|(localhost)/;return e.test(t)||"local"===this.config.appConfig.faviconApi},getLocalImagePath(t){return"/item-icons/"+t},getGenerativeIcon(t){return`https://ipsicon.io/${this.getHostName(t)}.svg`},getIconPath(t,e){switch(this.determineImageType(t)){case"url":return t;case"img":return this.getLocalImagePath(t);case"favicon":return this.getFavicon(e);case"generative":return this.getGenerativeIcon(e);case"svg":return t;default:return""}},determineImageType(t){let e="";return e=t?t.endsWith(".svg")?"svg":this.isUrl(t)?"url":this.isImage(t)?"img":t.includes("fa-")?"font-awesome":"favicon"===t?"favicon":"generative"===t?"generative":"none":"none",e},getHostName(t){try{return new URL(t).hostname}catch(e){return t}},imageNotFound(){this.broken=!0,ga(`The path to '${this.icon}' could not be resolved`)}}},ya=va,ba=(s("de40"),Object(w["a"])(ya,da,pa,!1,null,null,null)),Ca=ba.exports,Sa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:t.makeClass(t.position,t.isSmall,t.isTransparent)},["newtab"===t.openingMethod?s("NewTabOpenIcon"):"sametab"===t.openingMethod?s("SameTabOpenIcon"):"iframe"===t.openingMethod?s("IframeOpenIcon"):t._e()],1)},wa=[],Ia=s("237e"),_a=s.n(Ia),ka=s("2352"),xa=s.n(ka),Ta=s("1946"),Oa=s.n(Ta),Ea={name:"ItemOpenMethodIcon",props:{openingMethod:String,isSmall:Boolean,position:String,isTransparent:Boolean},methods:{makeClass(t="top right",e=!1,s=!1){return`opening-method-icon\n ${t||"top right"}\n ${e?"short":""}\n ${s?"transparent":""}`}},components:{NewTabOpenIcon:_a.a,SameTabOpenIcon:xa.a,IframeOpenIcon:Oa.a}},La=Ea,Aa=(s("699c"),Object(w["a"])(La,Sa,wa,!1,null,"17201835",null)),Na=Aa.exports,za=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:{content:t.statusText||t.otherStatusText,classes:["status-tooltip","tip-"+t.color()]},expression:"{\n content: statusText || otherStatusText, classes: ['status-tooltip', `tip-${color()}`] }"}],staticClass:"indicator",on:{click:function(e){return t.showToast()}}},[s("div",{class:"dot dot-"+t.color()},[t._m(0)])])},Ma=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("span",[s("span")])}],Pa={name:"StatusIndicator",props:{statusText:String,statusSuccess:Boolean},methods:{color(){switch(this.statusSuccess){case void 0:return new Date-this.startTime>2e3?"grey":"yellow";case!0:return"green";default:return"red"}}},data(){return{startTime:new Date,otherStatusText:"Checking..."}},mounted(){setTimeout(()=>{this.statusText||(this.otherStatusText="Request timed out")},2e3)}},Ba=Pa,ja=(s("e697"),s("45d4"),Object(w["a"])(Ba,za,Ma,!1,null,"46972ad8",null)),Ha=ja.exports,$a={name:"Item",props:{id:String,title:String,subtitle:String,description:String,icon:String,color:String,backgroundColor:String,url:String,target:{type:String,default:"newtab",validator:t=>-1!==["newtab","sametab","iframe"].indexOf(t)},itemSize:String,enableStatusCheck:Boolean,statusCheckInterval:Number},data(){return{getId:this.id,customStyles:{color:this.color,background:this.backgroundColor},statusResponse:void 0}},components:{Icon:Ca,ItemOpenMethodIcon:Na,StatusIndicator:Ha},methods:{itemOpened(t){t.altKey||"iframe"===this.target?(t.preventDefault(),this.$emit("triggerModal",this.url)):this.$emit("itemClicked")},manageTitleEllipse(){const t=document.getElementById("tile-"+this.getId);if(t){const e=(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)&&this.title.length>12;e&&(t.className+=" is-overflowing")}},getTooltipOptions(){return{disabled:!this.description,content:this.description,trigger:"hover focus",hideOnTargetClick:!0,html:!1,placement:this.statusResponse?"left":"auto",delay:{show:600,hide:200},classes:"item-description-tooltip"}},getUnicodeOpeningIcon(){switch(this.target){case"newtab":return'"\\f360"';case"sametab":return'"\\f24d"';case"iframe":return'"\\f2d0"';default:return'"\\f054"'}},checkWebsiteStatus(){this.statusResponse=void 0;const t=Object({NODE_ENV:"production",BASE_URL:"/"}).VUE_APP_DOMAIN||window.location.origin,e=`${t}/ping?url=${this.url}`;Wt.a.get(e).then(t=>{t.data&&(this.statusResponse=t.data)}).catch(()=>{this.statusResponse={statusText:"Failed to make request",statusSuccess:!1}})}},mounted(){this.manageTitleEllipse(),this.enableStatusCheck&&this.checkWebsiteStatus(),this.statusCheckInterval>0&&setInterval(this.checkWebsiteStatus,1e3*this.statusCheckInterval)}},Da=$a,Va=(s("826e"),s("f719"),Object(w["a"])(Da,la,ua,!1,null,null,null)),Ua=Va.exports,Ra=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{class:"collapsable "+t.checkSpanNum(t.cols,"col")+" "+t.checkSpanNum(t.rows,"row"),style:(t.color?"background: "+t.color:"")+"; "+t.sanitizeCustomStyles(t.customStyles)+";"},[s("input",{staticClass:"toggle",attrs:{id:"collapsible-"+t.uniqueKey,type:"checkbox",tabIndex:"-1"},domProps:{checked:t.getCollapseState()},on:{change:t.collapseChanged}}),s("label",{staticClass:"lbl-toggle",attrs:{for:"collapsible-"+t.uniqueKey,tabindex:"-1"}},[t.icon?s("Icon",{staticClass:"section-icon",attrs:{icon:t.icon,size:"small",url:t.title}}):t._e(),s("h3",[t._v(t._s(t.title))])],1),s("div",{staticClass:"collapsible-content"},[s("div",{staticClass:"content-inner"},[t._t("default")],2)])])},Ka=[],Fa={name:"CollapsableContainer",props:{uniqueKey:String,title:String,icon:String,collapsed:Boolean,cols:Number,rows:Number,color:String,customStyles:String},components:{Icon:Ca},data(){return{isOpen:!this.collapsed}},methods:{checkSpanNum(t,e){const s=4;let a=/^\d*$/.test(t)?parseInt(t,10):1;return a=a>s?s:a,`${e}-${a}`},sanitizeCustomStyles(t){return t?t.replace(/[^a-zA-Z0-9- :;.]/g,""):""},initialiseStorage(){const t=()=>localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify({}));localStorage[p["localStorageKeys"].COLLAPSE_STATE]||t();try{JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE])}catch{t()}return JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE])},getCollapseState(){const t=this.initialiseStorage();let e=!this.collapsed;return void 0!==t[this.uniqueKey]&&(e=t[this.uniqueKey]),e},setCollapseState(t,e){const s=JSON.parse(localStorage[p["localStorageKeys"].COLLAPSE_STATE]);s[t]=e,localStorage.setItem(p["localStorageKeys"].COLLAPSE_STATE,JSON.stringify(s))},collapseChanged(t){this.initialiseStorage(),this.setCollapseState(this.uniqueKey.toString(),t.srcElement.checked)}}},Wa=Fa,Ga=(s("8589"),Object(w["a"])(Wa,Ra,Ka,!1,null,"33a8b630",null)),Ja=Ga.exports,qa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("modal",{attrs:{name:t.name,resizable:!0,width:"80%",height:"80%",classes:"dashy-modal"},on:{closed:function(e){return t.modalClosed()}}},[s("div",{attrs:{slot:"top-right"},on:{click:function(e){return t.hide()}},slot:"top-right"},[t._v("Close")]),s("a",{staticClass:"close-button",attrs:{title:"Close"},on:{click:function(e){return t.hide()}}},[t._v("x")]),t.url?s("iframe",{staticClass:"frame",attrs:{src:t.url},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.close.apply(null,arguments)}}}):s("div",{staticClass:"no-url"},[t._v("No URL Specified")])])},Ya=[],Za={name:"IframeModal",props:{name:String},data:()=>({url:"#"}),methods:{show(t){this.url=t,this.$modal.show(this.name),this.$emit("modalChanged",!0)},hide(){this.$modal.hide(this.name)},modalClosed(){this.$emit("modalChanged",!1)}}},Xa=Za,Qa=(s("eda6"),Object(w["a"])(Xa,qa,Ya,!1,null,null,null)),to=Qa.exports,eo={name:"ItemGroup",inject:["config"],props:{groupId:String,title:String,icon:String,displayData:Object,items:Array,itemSize:String,modalOpen:Boolean},components:{Collapsable:Ja,Item:Ua,IframeModal:to},computed:{newItemSize(){return this.displayData.itemSize||this.itemSize},isGridLayout(){return"grid"===this.displayData.sectionLayout||!(!this.displayData.itemCountX&&!this.displayData.itemCountY)},gridStyle(){let t="";return t+=this.displayData.itemCountX?`grid-template-columns: repeat(${this.displayData.itemCountX}, 1fr);`:"",t+=this.displayData.itemCountY?`grid-template-rows: repeat(${this.displayData.itemCountY}, 1fr);`:"",t}},methods:{makeId(t){return t.replace(/\s+/g,"-").replace(/[^a-zA-Z ]/g,"").toLowerCase()},triggerModal(t){this.$refs["iframeModal-"+this.groupId].show(t)},modalChanged(t){this.$emit("change-modal-visibility",t)},shouldEnableStatusCheck(t){const e=this.config.appConfig.statusCheck||!1;return void 0!==t?t:e},getStatusCheckInterval(){let t=this.config.appConfig.statusCheckInterval;return t?(t>60&&(t=60),t<1&&(t=0),t):0}}},so=eo,ao=(s("015c"),Object(w["a"])(so,ra,ca,!1,null,"29d94632",null)),oo=ao.exports,no={name:"home",props:{sections:Array,appConfig:Object,pageInfo:Object},components:{SettingsContainer:ia,ItemGroup:oo},data:()=>({searchValue:"",layout:"",itemSizeBound:"",modalOpen:!1}),computed:{layoutOrientation:{get(){return this.appConfig.layout||h.a.layout},set:function(t){localStorage.setItem(p["localStorageKeys"].LAYOUT_ORIENTATION,t),this.layout=t}},iconSize:{get(){return this.appConfig.iconSize||h.a.iconSize},set:function(t){localStorage.setItem(p["localStorageKeys"].ICON_SIZE,t),this.itemSizeBound=t}}},methods:{checkTheresData(t){const e=localStorage[p["localStorageKeys"].CONF_SECTIONS];return t&&t.length>=1||e&&e.length>=1},getSections(t){const e=localStorage[p["localStorageKeys"].CONF_SECTIONS];if(e){const t=JSON.parse(e);if(t.length>=1)return t}return t},searching(t){this.searchValue=t||""},finishedSearching(){this.$refs.filterComp.clearFilterInput()},getDomainFromUrl(t){if(!t)return"";const e=/^(?:https?:\/\/)?(?:w{3}\.)?([a-z\d.-]+)\.(?:[a-z.]{2,10})(?:[/\w.-]*)*/,s=t.match(e);return s?s[1]:""},filterTiles(t){return t?t.filter(t=>{const{title:e,description:s,provider:a,url:o}=t,n=this.searchValue.toLowerCase();return e&&e.toLowerCase().includes(n)||a&&a.toLowerCase().includes(n)||s&&s.toLowerCase().includes(n)||this.getDomainFromUrl(o).includes(n)}):[]},getDisplayData(t){return t.displayData?t.displayData:{}},setLayoutOrientation(t){this.layoutOrientation=t},setItemSize(t){this.iconSize=t},updateModalVisibility(t){this.modalOpen=t},getExternalCSSLinks(){const t={};if(this.appConfig&&this.appConfig.externalStyleSheet){const e=this.appConfig.externalStyleSheet;Array.isArray(e)?e.forEach((e,s)=>{t["External Stylesheet "+(s+1)]=e}):t["External Stylesheet"]=this.appConfig.externalStyleSheet}return t.Deafault="#",t},checkIfFontAwesomeNeeded(){let t=!1;return this.sections.forEach(e=>{e.items.forEach(e=>{e.icon&&e.icon.includes("fa-")&&(t=!0)})}),t},initiateFontAwesome(){if(this.appConfig.enableFontAwesome||this.checkIfFontAwesomeNeeded()){const t=document.createElement("script"),e=this.appConfig.fontAwesomeKey||h.a.fontAwesomeKey;t.setAttribute("src",`https://kit.fontawesome.com/${e}.js`),document.head.appendChild(t)}},checkIfResults(){if(this.sections){let t=!0;return this.sections.forEach(e=>{this.filterTiles(e.items).length>0&&(t=!1)}),t}return!1},getBackgroundImage(){return this.appConfig&&this.appConfig.backgroundImg?`background: url('${this.appConfig.backgroundImg}');background-size:cover;`:""}},mounted(){this.initiateFontAwesome(),this.layout=this.layoutOrientation,this.itemSizeBound=this.iconSize}},io=no,ro=(s("39ab"),Object(w["a"])(io,ot,nt,!1,null,"b011a44e",null)),co=ro.exports,lo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"login-page"},[s("form",{staticClass:"login-form"},[s("h2",{staticClass:"login-title"},[t._v("Dashy")]),s("Input",{staticClass:"login-field username",attrs:{label:"Username",type:"text"},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),s("Input",{staticClass:"login-field password",attrs:{label:"Password",type:"password"},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}}),s("Button",{staticClass:"login-button",attrs:{click:t.submitLogin}},[t._v("Login")]),s("transition",{attrs:{name:"bounce"}},[s("p",{directives:[{name:"show",rawName:"v-show",value:t.message,expression:"message"}],class:"login-error-message "+t.status},[t._v(t._s(t.message))])])],1)])},uo=[],po={name:"login",props:{appConfig:Object},data(){return{username:"",password:"",message:"",status:"waiting"}},components:{Button:pe,Input:Ue},methods:{submitLogin(){const t=Vt(this.username,this.password,this.appConfig.auth||[]);this.message=t.msg,this.status=t.correct?"success":"error",t.correct&&(Ut(this.username,this.password),setTimeout(()=>{en.push({path:"/"})},250))},setTheme(){const t=localStorage[p["localStorageKeys"].THEME]||h.a.theme;document.getElementsByTagName("html")[0].setAttribute("data-theme",t)}},created(){this.setTheme()}},ho=po,mo=(s("206d6"),Object(w["a"])(ho,lo,uo,!1,null,null,null)),fo=mo.exports,go=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"work-space"},[s("SideBar",{attrs:{sections:t.sections},on:{"launch-app":t.launchApp}}),s("WebContent",{attrs:{url:t.url}})],1)},vo=[],yo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("nav",{staticClass:"side-bar"},t._l(t.sections,(function(e,a){return s("div",{key:a},[s("div",{staticClass:"side-bar-item-container",on:{click:function(e){return t.openSection(a)}}},[s("SideBarItem",{staticClass:"item",attrs:{icon:e.icon,title:e.name}})],1),s("transition",{attrs:{name:"slide"}},[t.isOpen[a]?s("SideBarSection",{attrs:{items:e.items},on:{"launch-app":t.launchApp}}):t._e()],1)],1)})),0)},bo=[],Co=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip,expression:"tooltip"}],class:"side-bar-item "+(t.icon?"w-icon":"text-only"),on:{click:function(e){return t.itemClicked()}}},[t.icon?s("Icon",{attrs:{icon:t.icon,size:"small",url:t.url}}):s("p",{staticClass:"small-title"},[t._v(t._s(t.title))])],1)},So=[],wo={name:"SideBarItem",inject:["config"],props:{icon:String,title:String,url:String,click:Function},components:{Icon:Ca},methods:{itemClicked(){this.url&&this.$emit("launch-app",this.url)}},data(){return{tooltip:{disabled:!this.title,content:this.title,trigger:"hover focus",hideOnTargetClick:!0,html:!1,placement:"right-start",delay:{show:800,hide:1e3}}}}},Io=wo,_o=(s("5e61"),Object(w["a"])(Io,Co,So,!1,null,"d979f4fe",null)),ko=_o.exports,xo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sub-side-bar"},t._l(t.items,(function(e,a){return s("div",{key:a},[s("SideBarItem",{staticClass:"item",attrs:{icon:e.icon,title:e.title,url:e.url},on:{"launch-app":t.launchApp}})],1)})),0)},To=[],Oo={name:"SideBarSection",inject:["config"],props:{items:Array},components:{SideBarItem:ko},methods:{launchApp(t){this.$emit("launch-app",t)}}},Eo=Oo,Lo=(s("cf1c"),Object(w["a"])(Eo,xo,To,!1,null,"56ddb963",null)),Ao=Lo.exports,No={name:"SideBar",inject:["config"],props:{sections:Array},data(){return{isOpen:new Array(this.sections.length).fill(!1)}},components:{SideBarItem:ko,SideBarSection:Ao},methods:{openSection(t){this.isOpen=this.isOpen.map((e,s)=>s===t&&!e)},launchApp(t){this.$emit("launch-app",t)}}},zo=No,Mo=(s("85e1"),Object(w["a"])(zo,yo,bo,!1,null,"31476576",null)),Po=Mo.exports,Bo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"web-content"},[s("iframe",{attrs:{src:t.url}})])},jo=[],Ho={name:"WebContent",props:{url:String}},$o=Ho,Do=(s("44e9"),Object(w["a"])($o,Bo,jo,!1,null,"a2564c04",null)),Vo=Do.exports,Uo={name:"Workspace",props:{sections:Array,appConfig:Object},data:()=>({url:""}),components:{SideBar:Po,WebContent:Vo},methods:{launchApp(t){this.url=t},setTheme(){const t=localStorage[p["localStorageKeys"].THEME]||this.confTheme||h.a.theme,e=document.getElementsByTagName("html")[0];e.hasAttribute("data-theme")&&e.removeAttribute("data-theme"),e.setAttribute("data-theme",t)},initiateFontAwesome(){const t=document.createElement("script"),e=this.appConfig.fontAwesomeKey||h.a.fontAwesomeKey;t.setAttribute("src",`https://kit.fontawesome.com/${e}.js`),document.head.appendChild(t)}},mounted(){this.setTheme(),this.initiateFontAwesome()}},Ro=Uo,Ko=Object(w["a"])(Ro,go,vo,!1,null,"5517abc2",null),Fo=Ko.exports,Wo=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("pre",[s("code",[t._v(t._s(t.jsonParser(t.config)))])])},Go=[],Jo={name:"DownloadConfig",props:{sections:Array,appConfig:Object,pageInfo:Object},data(){return{config:{appConfig:this.appConfig,pageInfo:this.pageInfo,sections:this.sections},jsonParser:At}}},qo=Jo,Yo=(s("6cd5"),Object(w["a"])(qo,Wo,Go,!1,null,"33cd2d90",null)),Zo=Yo.exports;a["a"].use(at["a"]);const Xo=()=>{const t=q.auth;return!t||Dt(t)},Qo=new at["a"]({routes:[{path:"/",name:"home",component:co,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Home Page",metaTags:p["metaTagData"]}},{path:"/workspace",name:"workspace",component:Fo,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Dashy Workspace",metaTags:p["metaTagData"]}},{path:"/login",name:"login",component:fo,props:{appConfig:q},beforeEnter:(t,e,s)=>{Xo()&&Qo.push({path:"/"}),s()}},{path:"/about",name:"about",component:()=>s.e("about").then(s.bind(null,"f820"))},{path:"/download",name:"download",component:Zo,props:{appConfig:q,pageInfo:Y,sections:Z},meta:{title:Y.title||"Download Dashy Config",metaTags:p["metaTagData"]}}]});Qo.beforeEach((t,e,s)=>{"login"===t.name||Xo()?s():s({name:"login"})});const tn="Dashy";Qo.afterEach(t=>{a["a"].nextTick(()=>{document.title=t.meta.title||tn})});var en=Qo,sn=s("9483");Object(sn["a"])("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(t){console.error("Error during service worker registration:",t)}}),a["a"].use(o["a"]),a["a"].use(i.a),a["a"].use(l["a"]),a["a"].use(d.a,p["toastedOptions"]),a["a"].component("v-select",c.a),a["a"].config.productionTip=!1,new a["a"]({router:en,render:t=>t(st)}).$mount("#app")},5703:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-sliders-h fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"sliders-h",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"}})]))}}},"570d":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-grip-horizontal fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"grip-horizontal",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"}})]))}}},"58c1":function(t,e,s){},"5c0b":function(t,e,s){"use strict";s("9c0c")},"5cc6":function(t,e){t.exports={pageInfo:{title:"Dashy",description:"",navLinks:[{title:"Home",path:"/"},{title:"Source",path:"https://github.com/Lissy93/dashy"}],footerText:""},appConfig:{},iconSize:"medium",layout:"auto",theme:"default",fontAwesomeKey:"0821c65656",faviconApi:"faviconkit",builtInThemes:["callisto","thebe","dracula","material","material-dark","colorful","nord","nord-frost","minimal-dark","minimal-light","matrix","matrix-red","hacker-girl","raspberry-jam","bee","tiger","material-original","material-dark-original","vaporware","high-contrast-dark","high-contrast-light"],visibleComponents:{pageTitle:!0,navigation:!0,searchBar:!0,settings:!0,footer:!0},localStorageKeys:{HIDE_WELCOME_BANNER:"hideWelcomeHelpers",LAYOUT_ORIENTATION:"layoutOrientation",COLLAPSE_STATE:"collapseState",ICON_SIZE:"iconSize",THEME:"theme",CONF_SECTIONS:"confSections",PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",BACKUP_ID:"backupId",BACKUP_HASH:"backupHash",HIDE_SETTINGS:"hideSettings",USERNAME:"username"},cookieKeys:{AUTH_TOKEN:"authenticationToken"},modalNames:{CONF_EDITOR:"CONF_EDITOR",CLOUD_BACKUP:"CLOUD_BACKUP",REBUILD_APP:"REBUILD_APP"},topLevelConfKeys:{PAGE_INFO:"pageInfo",APP_CONFIG:"appConfig",SECTIONS:"sections"},toastedOptions:{position:"bottom-center",duration:2500,keepOnHover:!0,className:"toast-message",iconPack:"fontawesome"},backupEndpoint:"https://dashy-sync-service.as93.net",splashScreenTime:1900,metaTagData:[{name:"description",content:"A simple static homepage for you're server"}],faviconApiEndpoints:{mcapi:"https://eu.mc-api.net/v3/server/favicon/$URL",clearbit:"https://logo.clearbit.com/$URL",faviconkit:"https://api.faviconkit.com/$URL/64",google:"https://www.google.com/s2/favicons?sz=128&domain_url=$URL",allesedv:"https://f1.allesedv.com/128/$URL",webmasterapi:"https://api.webmasterapi.com/v1/favicon/yEwx0ZFs0CSPshHq/$URL"}}},"5e61":function(t,e,s){"use strict";s("b315")},"5f32":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-times-circle fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"times-circle",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"}})]))}}},6:function(t,e){},6266:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:[i,r],style:[c,l],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"100",height:"100",preserveAspectRatio:"xMidYMid"},u),...d},n.concat([s("defs",[s("clipPath",{attrs:{id:"a"}},[s("path",{attrs:{d:"M20 0h60v100H20z"}})])]),s("path",{attrs:{fill:"none",stroke:"var(--primary, #00af87)","stroke-width":"6","stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":"10","clip-path":"url(#a)",d:"M90 76.7V28.3c0-2.7-2.2-5-5-5h-3.4c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5h-3.4c-2.7 0-5-2.2-5-5V28.3c0-2.7-2.2-5-5-5H55c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5h-3.4c-2.7 0-5-2.2-5-5V28.3c0-2.7-2.2-5-5-5h-3.4c-2.7 0-5 2.2-5 5v43.4c0 2.7-2.2 5-5 5H15c-2.7 0-5-2.2-5-5V23.3"}},[s("animateTransform",{attrs:{attributeName:"transform",type:"translate",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"-20 0;7 0",keyTimes:"0;1"}}),s("animate",{attrs:{attributeName:"stroke-dasharray",repeatCount:"indefinite",dur:"1.4925373134328357s",values:"0 72 125 232;0 197 125 233",keyTimes:"0;1"}})])]))}}},6504:function(t,e,s){},6780:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-cloud-upload-alt fa-w-20",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"cloud-upload-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M395.5 267.5l-99-99c-4.7-4.7-12.3-4.7-17 0l-99 99c-7.6 7.6-2.2 20.5 8.5 20.5h67v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-84h67c10.7 0 16.1-12.9 8.5-20.5zm148.2-67.4C539.7 142.1 491.4 96 432 96c-7.6 0-15.1.8-22.4 2.3C377.7 58.3 328.1 32 272 32c-84.6 0-155.5 59.7-172.3 139.8C39.9 196.1 0 254.4 0 320c0 88.4 71.6 160 160 160h336c79.5 0 144-64.5 144-144 0-61.8-39.2-115.8-96.3-135.9zM496 432H160c-61.9 0-112-50.1-112-112 0-56.4 41.7-103.1 96-110.9V208c0-70.7 57.3-128 128-128 53.5 0 99.3 32.8 118.4 79.4 11.2-9.6 25.7-15.4 41.6-15.4 35.3 0 64 28.7 64 64 0 11.8-3.2 22.9-8.8 32.4 2.9-.3 5.9-.4 8.8-.4 53 0 96 43 96 96s-43 96-96 96z"}})]))}}},"699c":function(t,e,s){"use strict";s("806e")},"69ce":function(t,e,s){"use strict";s("a592")},"6cd5":function(t,e,s){"use strict";s("6504")},7:function(t,e){},7075:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-expand fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"}})]))}}},7941:function(t,e,s){},"7da9":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-css3-alt fa-w-12",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fab","data-icon":"css3-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"}})]))}}},"7dc7":function(t,e,s){"use strict";s("1e5e")},"7eb0":function(t,e,s){},"7f59":function(t,e,s){},"7fda":function(t,e,s){"use strict";s("ca69")},8:function(t,e){},"806e":function(t,e,s){},"80a7":function(t,e,s){"use strict";s("7eb0")},"826e":function(t,e,s){"use strict";s("939b")},"831b":function(t){t.exports=JSON.parse('{"type":"object","required":["sections"],"additionalProperties":false,"properties":{"pageInfo":{"type":"object","properties":{"title":{"type":"string","description":"Title and heading for the app"},"description":{"type":"string","description":"Sub-title, displayed in header"},"navLinks":{"type":"array","maxItems":6,"description":"Quick access links, displayed in header","items":{"type":"object","additionalProperties":false,"required":["title","path"],"properties":{"title":{"type":"string"},"path":{"type":"string"}}}},"footerText":{"type":"string"}},"required":["title"],"additionalProperties":false},"appConfig":{"type":"object","description":"Application configuration","properties":{"backgroundImg":{"type":"string","description":"A URL to an image asset to be displayed as background"},"theme":{"type":"string","default":"Callisto","description":"A theme to be applied by default on first load"},"enableFontAwesome":{"type":"boolean","default":true,"description":"Should load font-awesome assets"},"fontAwesomeKey":{"type":"string","pattern":"^[a-z0-9]{10}$","description":"API key for font-awesome"},"faviconApi":{"enum":["local","faviconkit","google","clearbit","webmasterapi","allesedv"],"default":"faviconkit","description":"Which service to use to resolve favicons. Set to local to do this locally instead"},"layout":{"enum":["horizontal","vertical","auto","sidebar"],"default":"auto","description":"Specifies sections layout orientation on the home screen"},"iconSize":{"enum":["small","medium","large"],"default":"medium","description":"The size of each link item / icon"},"cssThemes":{"type":"array","description":"Theme names to be added to the dropdown","items":{"type":"string"}},"externalStyleSheet":{"description":"URL or URLs of external stylesheets to add to dropdown/ load","type":["string","array"],"items":{"type":"string"}},"customCss":{"type":"string","description":"Any custom CSS overides, must be minified"},"showSplashScreen":{"type":"boolean","default":false,"description":"Display a loading screen when the app is launched"},"statusCheck":{"type":"boolean","default":false,"description":"Displays an online/ offline status for each of your services"},"statusCheckInterval":{"type":"number","default":0,"description":"How often to recheck statuses. If set to 0, status will only be checked on page load"},"auth":{"type":"array","description":"Usernames and hashed credentials for frontend authentication","items":{"type":"object","additionalProperties":false,"required":["user","hash"],"properties":{"user":{"type":"string","description":"The username for a user"},"hash":{"type":"string","description":"A SHA-256 hashed password for that user","minLength":64,"maxLength":64},"type":{"enum":["admin","normal"],"description":"User type, denoting privilege level, either admin or normal","default":"normal"}}}},"allowConfigEdit":{"type":"boolean","default":true,"description":"Can user write changes to conf.yml file from the UI. If set to false, preferences are only stored locally"}},"additionalProperties":false},"sections":{"type":"array","description":"Array of sections, containing items","items":{"type":"object","required":["name","items"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Title/ heading for a section"},"icon":{"type":"string","description":"Icon will be displayed next to title"},"displayData":{"type":"object","additionalProperties":false,"description":"Optional meta data for customizing a section","properties":{"collapsed":{"type":"boolean","default":false,"description":"If true, section needs to be clicked to open"},"color":{"type":"string","description":"Hex code, or HTML color for section fill"},"customStyles":{"type":"string","description":"CSS overides for section container"},"itemSize":{"enum":["small","medium","large"],"default":"medium","description":"Size of items within the section"},"rows":{"type":"number","minimum":1,"maximum":5,"default":1,"description":"The amount of space that the section spans vertically"},"cols":{"type":"number","minimum":1,"maximum":5,"default":1,"description":"The amount of space that the section spans horizontally"},"sectionLayout":{"enum":["grid","auto"],"default":"auto","description":"If set to grid, items have uniform width, and itemCount can be set"},"itemCountX":{"type":"number","minimum":1,"maximum":12,"description":"Number of items per column"},"itemCountY":{"type":"number","minimum":1,"maximum":12,"description":"Number of items per row"}}},"items":{"type":"array","description":"Array of items to display with a section","items":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","description":"Text shown on the item"},"description":{"type":"string","nullable":true,"description":"Short description, shown on hover or in a tooltip"},"icon":{"type":"string","nullable":true,"description":"An icon, either as a font-awesome identifier, local or remote URL, or the word favicon or generative"},"url":{"type":"string","description":"The destination to navigate to when item is clicked"},"target":{"enum":["newtab","sametab","iframe"],"default":"newtab","description":"Opening method, when item is clicked"},"color":{"type":"string","description":"A custom fill color of the item"},"provider":{"type":"string","description":"Provider name, e.g. Microsoft"},"statusCheck":{"type":"boolean","default":false,"description":"Whether or not to display online/ offline status for this service. Will override appConfig.statusCheck"}}}}}}}}}')},"832d":function(t,e,s){},"83ba":function(t,e,s){},8589:function(t,e,s){"use strict";s("16a0")},"85e1":function(t,e,s){"use strict";s("1036")},8949:function(t,e,s){"use strict";s("8e1b")},"8b35":function(t,e,s){},"8b8e":function(t,e){t.exports={pageInfo:{title:"Dashy",navLinks:[{title:"Home",path:"/"},{title:"About",path:"/about"},{title:"Source Code",path:"https://github.com/Lissy93/dashy"}]},appConfig:{theme:"colorful",fontAwesomeKey:"0821c65656"},sections:[{name:"Getting Started",items:[{title:"Source",description:"Source code and documentation on GitHub",icon:"fab fa-github",url:"https://github.com/Lissy93/dashy"},{title:"Issues",description:"View currently open issues, or raise a new one",icon:"fas fa-bug",url:"https://github.com/Lissy93/dashy/issues"},{title:"Demo 1",description:"Live Demo #1",icon:"far fa-rocket",url:"https://dashy-demo-1.netlify.app"},{title:"Demo 2",description:"Live Demo #2",icon:"fad fa-planet-ringed",url:"https://dashy-demo-2.netlify.app"}]}]}},"8d7c":function(t,e,s){},"8e1b":function(t,e,s){},9:function(t,e){},"922c":function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-expand-arrows-alt fa-w-14",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"expand-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M448 344v112a23.94 23.94 0 01-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 01-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0124-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0124 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"}})]))}}},"939b":function(t,e,s){},9517:function(t,e,s){"use strict";s("a8d0")},9635:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:[i,r],style:[c,l],attrs:Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{d:"M132.893 310.534l-30.082 10.911L91.9 291.364l30.081-10.911z"}}),s("path",{attrs:{d:"M271.552 301.072l-77.856-46.72-41.616 15.152 10.944 30.064 27.28-9.92 82.144 49.28 97.6-65.072L480 315.088V480H32V347.2l40.8-14.848-10.928-30.048L0 324.8V512h512V292.912l-146.048-54.768z"}}),s("path",{attrs:{d:"M0 0v278.848l66.576-24.224-10.928-30.064L32 233.152V32h448v168.912l-114.048-42.768-94.4 62.928-77.856-46.72-47.84 17.392 10.944 30.064 33.504-12.16 82.144 49.28 97.6-65.072L512 247.088V0z"}}),s("path",{attrs:{d:"M96.656 243.686L85.721 213.63l30.07-10.94 10.935 30.055z"}})]))}}},"97fb":function(t,e,s){},"9c0c":function(t,e,s){},"9c85":function(t,e,s){"use strict";s("b993")},"9e50":function(t,e,s){"use strict";s("3323")},a592:function(t,e,s){},a8d0:function(t,e,s){},abf6:function(t,e,s){},b315:function(t,e,s){},b993:function(t,e,s){},baed:function(t,e,s){"use strict";s("7941")},bd96:function(t,e,s){"use strict";s("d6b0")},c1bd:function(t,e,s){"use strict";s("83ba")},c715:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-th fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"th",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"}})]))}}},ca69:function(t,e,s){},cbd9:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-file-download fa-w-12",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"file-download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M216 236.07c0-6.63-5.37-12-12-12h-24c-6.63 0-12 5.37-12 12v84.01h-48.88c-10.71 0-16.05 12.97-8.45 20.52l72.31 71.77c4.99 4.95 13.04 4.95 18.03 0l72.31-71.77c7.6-7.54 2.26-20.52-8.45-20.52H216v-84.01zM369.83 97.98L285.94 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h287.94c26.5 0 48.07-21.5 48.07-47.99V131.97c0-12.69-5.17-24.99-14.17-33.99zM255.95 51.99l76.09 76.08h-76.09V51.99zM336 464.01H47.99V48.09h159.97v103.98c0 13.3 10.7 23.99 24 23.99H336v287.95z"}})]))}}},cf1c:function(t,e,s){"use strict";s("8d7c")},d16d:function(t,e,s){"use strict";s("18dd")},d6b0:function(t,e,s){},d8e8:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-compress-arrows-alt fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"compress-arrows-alt",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"}})]))}}},de40:function(t,e,s){"use strict";s("7f59")},df27:function(t,e,s){"use strict";s("abf6")},e697:function(t,e,s){"use strict";s("2574")},e6a4:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-download fa-w-16",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fal","data-icon":"download",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M452 432c0 11-9 20-20 20s-20-9-20-20 9-20 20-20 20 9 20 20zm-84-20c-11 0-20 9-20 20s9 20 20 20 20-9 20-20-9-20-20-20zm144-48v104c0 24.3-19.7 44-44 44H44c-24.3 0-44-19.7-44-44V364c0-24.3 19.7-44 44-44h99.4L87 263.6c-25.2-25.2-7.3-68.3 28.3-68.3H168V40c0-22.1 17.9-40 40-40h96c22.1 0 40 17.9 40 40v155.3h52.7c35.6 0 53.4 43.1 28.3 68.3L368.6 320H468c24.3 0 44 19.7 44 44zm-261.7 17.7c3.1 3.1 8.2 3.1 11.3 0L402.3 241c5-5 1.5-13.7-5.7-13.7H312V40c0-4.4-3.6-8-8-8h-96c-4.4 0-8 3.6-8 8v187.3h-84.7c-7.1 0-10.7 8.6-5.7 13.7l140.7 140.7zM480 364c0-6.6-5.4-12-12-12H336.6l-52.3 52.3c-15.6 15.6-41 15.6-56.6 0L175.4 352H44c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12V364z"}})]))}}},e7fa:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-edit fa-w-18",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"far","data-icon":"edit",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"}})]))}}},eda6:function(t,e,s){"use strict";s("1864")},ef83:function(t,e,s){},f719:function(t,e,s){"use strict";s("27c1")},f9d7:function(t,e){t.exports={functional:!0,render(t,e){const{_c:s,_v:a,data:o,children:n=[]}=e,{class:i,staticClass:r,style:c,staticStyle:l,attrs:u={},...d}=o;return s("svg",{class:["svg-inline--fa fa-grip-vertical fa-w-10",i,r],style:[c,l],attrs:Object.assign({"aria-hidden":"true","data-prefix":"fas","data-icon":"grip-vertical",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512"},u),...d},n.concat([s("path",{attrs:{fill:"currentColor",d:"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"}})]))}}}}); +//# sourceMappingURL=dashy.304b37fc.js.map \ No newline at end of file diff --git a/js/dashy.3208546e.js.map b/js/dashy.304b37fc.js.map similarity index 99% rename from js/dashy.3208546e.js.map rename to js/dashy.304b37fc.js.map index ee5a2611..13d7499a 100644 --- a/js/dashy.3208546e.js.map +++ b/js/dashy.304b37fc.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/interface-icons/user-logout.svg","webpack:///./src/components/LinkItems/ItemGroup.vue?d2c4","webpack:///./src/assets/interface-icons/config-delete-local.svg","webpack:///./src/assets/interface-icons/application-rebuild.svg","webpack:///./src/assets/interface-icons/open-iframe.svg","webpack:///./src/components/PageStrcture/Footer.vue?33ea","webpack:///./src/components/Configuration/ConfigContainer.vue?09fd","webpack:///./src/views/Login.vue?2567","webpack:///./src/assets/interface-icons/open-current-tab.svg","webpack:///./src/assets/interface-icons/open-new-tab.svg","webpack:///./src/components/PageStrcture/LoadingScreen.vue?ea0c","webpack:///./src/components/FormElements/Input.vue?fb76","webpack:///./src/assets/interface-icons/config-editor.svg","webpack:///./src/views/Home.vue?a65b","webpack:///./src/assets/interface-icons/config-backup.svg","webpack:///./src/assets/interface-icons/application-reload.svg","webpack:///./src/components/PageStrcture/Header.vue?cea7","webpack:///./src/components/Workspace/WebContent.vue?7bf3","webpack:///./src/components/LinkItems/StatusIndicator.vue?dc21","webpack:///./src/components/Settings/ItemSizeSelector.vue?6445","webpack:///./src/components/Settings/ThemeSelector.vue?89f8","webpack:///./src/App.vue?4e32","webpack:///./src/components/PageStrcture/Header.vue?2046","webpack:///./src/components/PageStrcture/PageTitle.vue?4375","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?de3f","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?66e2","webpack:///src/components/PageStrcture/Footer.vue","webpack:///./src/components/PageStrcture/Footer.vue?6588","webpack:///./src/components/PageStrcture/Footer.vue","webpack:///./src/components/PageStrcture/LoadingScreen.vue?709e","webpack:///src/components/PageStrcture/LoadingScreen.vue","webpack:///./src/components/PageStrcture/LoadingScreen.vue?96ea","webpack:///./src/components/PageStrcture/LoadingScreen.vue","webpack:///./src/utils/ConfigAccumalator.js","webpack:///src/App.vue","webpack:///./src/App.vue?382d","webpack:///./src/App.vue","webpack:///./src/views/Home.vue?e408","webpack:///./src/components/Settings/SettingsContainer.vue?cbc9","webpack:///./src/components/Settings/SearchBar.vue?2561","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?df9b","webpack:///./src/components/Configuration/ConfigContainer.vue?3eec","webpack:///./src/utils/JsonToYaml.js","webpack:///./src/components/Configuration/JsonEditor.vue?a51c","webpack:///./src/utils/Auth.js","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?18a3","webpack:///src/components/Configuration/CustomCss.vue","webpack:///./src/components/Configuration/CustomCss.vue?3340","webpack:///./src/components/Configuration/CustomCss.vue","webpack:///./src/components/Configuration/RebuildApp.vue?3f4c","webpack:///./src/components/FormElements/Button.vue?f983","webpack:///src/components/FormElements/Button.vue","webpack:///./src/components/FormElements/Button.vue?52f8","webpack:///./src/components/FormElements/Button.vue","webpack:///src/components/Configuration/RebuildApp.vue","webpack:///./src/components/Configuration/RebuildApp.vue?1840","webpack:///./src/components/Configuration/RebuildApp.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?0fa2","webpack:///./src/components/FormElements/Input.vue?3cb4","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?dc37","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?d97b","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?f883","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?682a","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?b87b","webpack:///./src/components/LinkItems/Item.vue?8f81","webpack:///./src/components/LinkItems/ItemIcon.vue?8aa2","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?ecf9","webpack:///src/components/LinkItems/ItemOpenMethodIcon.vue","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue?b230","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue","webpack:///./src/components/LinkItems/StatusIndicator.vue?46cf","webpack:///src/components/LinkItems/StatusIndicator.vue","webpack:///./src/components/LinkItems/StatusIndicator.vue?9938","webpack:///./src/components/LinkItems/StatusIndicator.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?4207","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?4ae1","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/views/Login.vue?cc10","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?8434","webpack:///./src/views/Login.vue","webpack:///./src/views/Workspace.vue?7d47","webpack:///./src/components/Workspace/SideBar.vue?da3b","webpack:///./src/components/Workspace/SideBarItem.vue?995a","webpack:///src/components/Workspace/SideBarItem.vue","webpack:///./src/components/Workspace/SideBarItem.vue?61b9","webpack:///./src/components/Workspace/SideBarItem.vue","webpack:///./src/components/Workspace/SideBarSection.vue?4906","webpack:///src/components/Workspace/SideBarSection.vue","webpack:///./src/components/Workspace/SideBarSection.vue?3ca7","webpack:///./src/components/Workspace/SideBarSection.vue","webpack:///src/components/Workspace/SideBar.vue","webpack:///./src/components/Workspace/SideBar.vue?368a","webpack:///./src/components/Workspace/SideBar.vue","webpack:///./src/components/Workspace/WebContent.vue?2d40","webpack:///src/components/Workspace/WebContent.vue","webpack:///./src/components/Workspace/WebContent.vue?01ce","webpack:///./src/components/Workspace/WebContent.vue","webpack:///src/views/Workspace.vue","webpack:///./src/views/Workspace.vue?c5ca","webpack:///./src/views/Workspace.vue","webpack:///./src/views/DownloadConfig.vue?b9ef","webpack:///src/views/DownloadConfig.vue","webpack:///./src/views/DownloadConfig.vue?a1ac","webpack:///./src/views/DownloadConfig.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/components/Workspace/SideBarItem.vue?3a0a","webpack:///./src/assets/interface-icons/config-close.svg","webpack:///./src/assets/interface-icons/loader.svg","webpack:///./src/assets/interface-icons/cloud-backup-restore.svg","webpack:///./src/components/LinkItems/ItemOpenMethodIcon.vue?c798","webpack:///./src/components/Settings/SettingsContainer.vue?9fe3","webpack:///./src/views/DownloadConfig.vue?4e96","webpack:///./src/assets/interface-icons/icon-size-medium.svg","webpack:///./src/assets/interface-icons/config-custom-css.svg","webpack:///./src/components/Settings/LayoutSelector.vue?02de","webpack:///./src/components/Configuration/RebuildApp.vue?1214","webpack:///./src/components/Configuration/JsonEditor.vue?5179","webpack:///./src/components/LinkItems/Item.vue?b4f3","webpack:///./src/components/LinkItems/Collapsable.vue?8683","webpack:///./src/components/Workspace/SideBar.vue?34c4","webpack:///./src/components/Settings/SearchBar.vue?fc1a","webpack:///./public/conf.yml","webpack:///./src/assets/interface-icons/icon-size-large.svg","webpack:///./src/components/Settings/KeyboardShortcutInfo.vue?300b","webpack:///./src/assets/interface-icons/broken-icon.svg","webpack:///./src/components/Settings/ConfigLauncher.vue?38ba","webpack:///./src/components/Configuration/CustomCss.vue?fa1a","webpack:///./src/components/Configuration/CloudBackupRestore.vue?5526","webpack:///./src/components/PageStrcture/PageTitle.vue?9727","webpack:///./src/components/Configuration/ConfigContainer.vue?5de6","webpack:///./src/assets/interface-icons/layout-default.svg","webpack:///./src/assets/interface-icons/config-download-file.svg","webpack:///./src/components/Workspace/SideBarSection.vue?8693","webpack:///./src/components/PageStrcture/Nav.vue?efdc","webpack:///./src/assets/interface-icons/icon-size-small.svg","webpack:///./src/components/LinkItems/ItemIcon.vue?e410","webpack:///./src/components/FormElements/Button.vue?9c15","webpack:///./src/components/LinkItems/StatusIndicator.vue?b7eb","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/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","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","functional","_h","_vm","_c","_v","children","class","classNames","staticClass","style","staticStyle","attrs","rest","assign","concat","render","this","$createElement","_self","shouldShowSplash","isLoading","_e","shouldHidePageComponents","pageInfo","showFooter","getFooterText","staticRenderFns","title","description","navLinks","_s","props","String","component","_l","link","index","path","isUrl","links","Array","methods","components","PageTitle","Nav","hiddenComponents","titleVisible","navVisible","text","scrollVisible","domProps","authorUrl","authorName","licenseUrl","license","showCopyright","date","repoUrl","body","clientHeight","innerHeight","on","$event","appConfig","usersAppConfig","Defaults","localStorage","localStorageKeys","APP_CONFIG","JSON","parse","conf","layout","LAYOUT_ORIENTATION","iconSize","ICON_SIZE","defaults","localPageInfo","PAGE_INFO","pi","footerText","sections","localSections","CONF_SECTIONS","json","config","Header","Footer","LoadingScreen","provide","usersCss","textContent","append","showSplashScreen","computed","$route","hideSplash","customCss","cleanedCss","replace","injectCustomStyles","getBackgroundImage","ref","itemSizeBound","getExternalCSSLinks","getSections","modalOpen","searching","setLayoutOrientation","setItemSize","updateModalVisibility","checkTheresData","section","filterTiles","items","searchValue","icon","getDisplayData","finishedSearching","checkIfResults","userIsTypingSomething","settingsVisible","availableThemes","getInitialTheme","getUserThemes","displayLayout","updateDisplayLayout","updateIconSize","modalChanged","isUserLoggedIn","directives","rawName","expression","logout","toggleSettingsVisibility","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","downloadConfigFile","yaml","goToEdit","goToCustomCss","openCloudSync","backupId","openRebuildAppModal","resetLocalSettings","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","options","model","callback","$$v","jsonData","allowWriteToDisk","_q","saveMode","isValid","save","errorMessages","saveSuccess","responseText","generateUserToken","user","sha256","toString","toLowerCase","isLoggedIn","users","validTokens","userAuthenticated","cookie","cookieKey","trim","cookieValue","cookieKeys","AUTH_TOKEN","includes","checkCredentials","username","pass","response","hash","correct","login","userObject","setItem","USERNAME","removeItem","isUserAdmin","currentUser","isAdmin","VJsoneditor","schema","modes","onValidationError","validationErrors","jsonParser","JsonToYaml","shouldAllowWriteToDisk","allowConfigEdit","auth","writeConfigToDisk","$toasted","show","saveConfigLocally","baseUrl","endpoint","headers","success","carefullyClearLocalStorage","showToast","theme","errors","keyword","highlighter","_m","PrismEditor","css","match","validate","inject","userStyles","modalName","startBuild","loading","scopedSlots","_u","fn","proxy","refreshPage","disabled","click","_t","Function","Button","RebuildIcon","ReloadIcon","LoadingAnimation","responseData","location","reload","JsonEditor","CustomCssEditor","RebuildApp","DownloadIcon","DeleteIcon","EditIcon","CloudIcon","CustomCssIcon","itemToSelect","tabView","navItems","activeTabItem","$modal","navigator","clipboard","writeText","isTheUserSure","confirm","clear","filename","filecontents","element","encodeURIComponent","display","highlighted","getElementById","innerHTML","backupPassword","checkPass","restoreCode","restorePassword","restoreBackup","label","placeholder","updateValue","default","validator","ENDPOINT","backupEndpoint","encryptData","password","stringifiedData","encryptedData","aes","encrypt","decryptData","decrypt","Utf8","makeSubHash","backup","axios","post","userData","subHash","update","put","encodeGetParams","entries","kv","restore","params","url","errorMsg","decryptedData","Input","IconBackup","IconRestore","savedHash","makeUpdate","showErrorMsg","makeBackup","setBackupIdLocally","showSuccessMsg","isUpdate","makeHash","IconSpanner","IconCloud","ConfigContainer","CloudBackupRestore","content","themeNames","selectedTheme","ThemeHelper","preloadTheme","sheet","selectTheme","themes","add","find","confTheme","userThemes","watch","newTheme","themeHelper","builtInThemes","externalThemeNames","added","isThemeLocal","updateTheme","htmlTag","hasAttribute","removeAttribute","themeToCheck","resetToDefault","setLocalTheme","IconDeafault","IconHorizontal","IconVertical","IconSmall","IconMedium","IconLarge","shouldHide","hideWelcomeHelper","timeDelay","removeEventListener","keyPressEvent","shouldHideWelcomeMessage","$destroy","SearchBar","ConfigLauncher","ThemeSelector","LayoutSelector","ItemSizeSelector","KeyboardShortcutInfo","IconLogout","IconOpen","IconClose","something","changedTo","cssThemes","searchVisible","getSettingsVisibility","groupId","displayData","collapsed","cols","rows","color","customStyles","isGridLayout","item","makeId","backgroundColor","newItemSize","shouldEnableStatusCheck","statusCheck","getStatusCheckInterval","triggerModal","getTooltipOptions","itemSize","getUnicodeOpeningIcon","itemOpened","statusResponse","successStatus","iconType","size","broken","iconPath","imageNotFound","ErrorHandler","warn","BrokenImage","determineImageType","getIconPath","str","pattern","RegExp","img","fileExtRegex","validImgExtensions","splitPath","exec","fullUrl","shouldUseDefaultFavicon","urlParts","host","getHostName","faviconApi","isLocalIP","imgType","makeClass","isSmall","isTransparent","openingMethod","transparent","NewTabOpenIcon","SameTabOpenIcon","IframeOpenIcon","statusText","otherStatusText","classes","statusSuccess","startTime","Date","subtitle","enableStatusCheck","statusCheckInterval","Number","getId","background","Icon","ItemOpenMethodIcon","StatusIndicator","altKey","preventDefault","tileElem","isOverflowing","scrollHeight","className","trigger","hideOnTargetClick","html","placement","delay","manageTitleEllipse","checkWebsiteStatus","setInterval","checkSpanNum","sanitizeCustomStyles","uniqueKey","getCollapseState","collapseChanged","isOpen","span","classPrefix","maxSpan","numSpan","parseInt","userCss","initStorage","collapseStateObject","initialiseStorage","collapseState","newState","whatChanged","setCollapseState","srcElement","checked","modalClosed","hide","slot","close","Collapsable","Item","IframeModal","sectionLayout","styles","itemCountX","itemCountY","itemPreference","globalPreference","interval","SettingsContainer","ItemGroup","layoutOrientation","set","filterComp","urlPattern","domainPattern","allTiles","searchTerm","modalState","availibleThemes","externalStyleSheet","externals","isArray","ext","Deafault","isFound","enableFontAwesome","checkIfFontAwesomeNeeded","fontAwesomeScript","faKey","fontAwesomeKey","itemsFound","backgroundImg","initiateFontAwesome","submitLogin","status","setTheme","launchApp","openSection","itemClicked","SideBarItem","fill","SideBarSection","ind","SideBar","WebContent","Vue","use","Router","isAuthenticated","router","routes","Home","meta","metaTags","metaTagData","Workspace","Login","beforeEnter","to","from","next","DownloadConfig","beforeEach","defaultTitle","afterEach","nextTick","register","ready","log","registered","cached","updatefound","updated","offline","VTooltip","VModal","VTabs","Toasted","toastedOptions","VSelect","productionTip","awesome","Dashy","$mount","visibleComponents","pageTitle","navigation","searchBar","settings","footer","HIDE_WELCOME_BANNER","COLLAPSE_STATE","THEME","BACKUP_ID","BACKUP_HASH","HIDE_SETTINGS","REBUILD_APP","topLevelConfKeys","SECTIONS","duration","keepOnHover","iconPack","splashScreenTime","faviconApiEndpoints","mcapi","clearbit","faviconkit","google","allesedv","webmasterapi"],"mappings":"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","file":"js/dashy.3208546e.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 CSS chunks\n \tvar installedCssChunks = {\n \t\t\"dashy\": 0\n \t}\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\"dashy\": 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\":\"9a5bfb06\"}[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// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"a64c098d\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\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-sign-out-alt fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fas\",\"data-icon\":\"sign-out-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\":\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-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!./ItemGroup.vue?vue&type=style&index=0&id=29d94632&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-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 ","\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-hammer fa-w-18\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fas\",\"data-icon\":\"hammer\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 576 512\"}, attrs),\n ...rest,\n },\n children.concat([_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"}})])\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-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!./Footer.vue?vue&type=style&index=0&id=23129a2b&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!./ConfigContainer.vue?vue&type=style&index=1&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!./Login.vue?vue&type=style&index=0&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!./LoadingScreen.vue?vue&type=style&index=0&id=a7bc1de6&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!./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 ","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!./Home.vue?vue&type=style&index=0&id=b011a44e&lang=scss&scoped=true&\"","\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 ","\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-sync fa-w-16\",classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"aria-hidden\":\"true\",\"data-prefix\":\"fas\",\"data-icon\":\"sync\",\"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\":\"M440.65 12.57l4 82.77A247.16 247.16 0 00255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0024.09 224h49.05a12 12 0 0011.67-9.26 175.91 175.91 0 01317-56.94l-101.46-4.86a12 12 0 00-12.57 12v47.41a12 12 0 0012 12H500a12 12 0 0012-12V12a12 12 0 00-12-12h-47.37a12 12 0 00-11.98 12.57zM255.83 432a175.61 175.61 0 01-146-77.8l101.8 4.87a12 12 0 0012.57-12v-47.4a12 12 0 00-12-12H12a12 12 0 00-12 12V500a12 12 0 0012 12h47.35a12 12 0 0012-12.6l-4.15-82.57A247.17 247.17 0 00255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 00-11.8-14.18h-49.05a12 12 0 00-11.67 9.26A175.86 175.86 0 01255.83 432z\"}})])\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!./WebContent.vue?vue&type=style&index=0&id=a2564c04&lang=scss&scoped=true&\"","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!./StatusIndicator.vue?vue&type=style&index=1&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&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"dashy\"}},[(_vm.shouldShowSplash())?_c('LoadingScreen',{attrs:{\"isLoading\":_vm.isLoading}}):_vm._e(),(!_vm.shouldHidePageComponents())?_c('Header',{attrs:{\"pageInfo\":_vm.pageInfo}}):_vm._e(),_c('router-view'),(_vm.showFooter && !_vm.shouldHidePageComponents())?_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',{class:!_vm.scrollVisible ? 'fixed' : '',domProps:{\"innerHTML\":_vm._s(_vm.text)}}):_c('footer',{class:!_vm.scrollVisible ? 'fixed' : ''},[_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=23129a2b&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=23129a2b&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 \"23129a2b\",\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.isLoading)?_c('div',{class:_vm.c,attrs:{\"id\":\"loading\"},on:{\"click\":function($event){_vm.c = 'hide'}}},[_c('h2',[_vm._v(\"Dashy\")]),_c('div',{staticClass:\"inner-container\"},[_c('p',[_vm._v(\"Loading\")]),_c('span',{staticClass:\"dots-cont\"},[_c('span',{staticClass:\"dot dot-1\"}),_c('span',{staticClass:\"dot dot-2\"}),_c('span',{staticClass:\"dot dot-3\"}),_c('span',{staticClass:\"dot dot-4\"})])])]):_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!./LoadingScreen.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!./LoadingScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingScreen.vue?vue&type=template&id=a7bc1de6&scoped=true&\"\nimport script from \"./LoadingScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingScreen.vue?vue&type=style&index=0&id=a7bc1de6&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 \"a7bc1de6\",\n null\n \n)\n\nexport default component.exports","/**\n * Reads the users config from `conf.yml`, and combines it with any local preferences\n * Also ensures that any missing attributes are populated with defaults, and the\n * object is structurally sound, to avoid any error if the user is missing something\n * The main config object is made up of three parts: appConfig, pageInfo and sections\n */\nimport Defaults, { localStorageKeys } from '@/utils/defaults';\nimport conf from '../../public/conf.yml';\n\n/**\n * Returns the appConfig section, as JSON\n */\nexport const appConfig = (() => {\n let usersAppConfig = Defaults.appConfig;\n if (localStorage[localStorageKeys.APP_CONFIG]) {\n usersAppConfig = JSON.parse(localStorage[localStorageKeys.APP_CONFIG]);\n } else if (conf.appConfig) {\n usersAppConfig = conf.appConfig;\n }\n usersAppConfig.layout = localStorage[localStorageKeys.LAYOUT_ORIENTATION]\n || conf.appConfig.layout || Defaults.layout;\n usersAppConfig.iconSize = localStorage[localStorageKeys.ICON_SIZE]\n || conf.appConfig.iconSize || Defaults.iconSize;\n return usersAppConfig;\n})();\n\n/**\n * Returns the pageInfo section, as JSON\n */\nexport const pageInfo = (() => {\n const defaults = Defaults.pageInfo;\n let localPageInfo;\n try {\n localPageInfo = JSON.parse(localStorage[localStorageKeys.PAGE_INFO]);\n } catch (e) {\n localPageInfo = {};\n }\n const pi = conf.pageInfo || defaults; // The page info object to return\n pi.title = localPageInfo.title || conf.pageInfo.title || defaults.title;\n pi.description = localPageInfo.description || conf.pageInfo.description || defaults.description;\n pi.navLinks = localPageInfo.navLinks || conf.pageInfo.navLinks || defaults.navLinks;\n pi.footerText = localPageInfo.footerText || conf.pageInfo.footerText || defaults.footerText;\n return pi;\n})();\n\n/**\n * Returns the sections section, as an array of JSON objects\n */\nexport const sections = (() => {\n // If the user has stored sections in local storage, return those\n const localSections = localStorage[localStorageKeys.CONF_SECTIONS];\n if (localSections) {\n try {\n const json = JSON.parse(localSections);\n if (json.length >= 1) return json;\n } catch (e) {\n // The data in local storage has been malformed, will return conf.sections instead\n }\n }\n // If the function hasn't yet returned, then return the config file sections\n return conf.sections;\n})();\n\n/**\n * Returns the complete configuration, as JSON\n */\nexport const config = (() => {\n const result = {\n appConfig,\n pageInfo,\n sections,\n };\n return result;\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!./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=2732caa4&\"\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\"},[_c('div',{class:(\"options-container \" + (!_vm.settingsVisible ? 'hide' : ''))},[_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}}),(_vm.isUserLoggedIn())?_c('IconLogout',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:('Logout'),expression:\"'Logout'\"}],staticClass:\"logout-icon\",on:{\"click\":function($event){return _vm.logout()}}}):_vm._e()],1),_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=72e6bff4&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=72e6bff4&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 \"72e6bff4\",\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\":\"85%\",\"classes\":\"dashy-modal\"},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%\",\"classes\":\"dashy-modal\"},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\",on:{\"click\":function($event){return _vm.downloadConfigFile('conf.yml', _vm.yaml)}}},[_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 Config \")],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.openRebuildAppModal()}}},[_c('RebuildIcon',{staticClass:\"button-icon\"}),_vm._v(\" Rebuild Application \")],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('p',{staticClass:\"small-screen-note\",staticStyle:{\"display\":\"none\"}},[_vm._v(\" You are using a very small screen, and some screens in this menu may not be optimal \")]),_c('div',{staticClass:\"config-note\"},[_c('span',[_vm._v(\" It is recommend to make a backup of your conf.yml file, before making any changes. \")])])]),_c('RebuildApp')],1),_c('TabItem',{staticClass:\"code-container\",attrs:{\"name\":\"View Config\"}},[_c('pre',{attrs:{\"id\":\"conf-yaml\"}},[_vm._v(_vm._s(_vm.yaml))]),_c('div',{staticClass:\"yaml-action-buttons\"},[_c('h2',[_vm._v(\"Actions\")]),_c('a',{staticClass:\"yaml-button download\",on:{\"click\":function($event){return _vm.downloadConfigFile('conf.yml', _vm.yaml)}}},[_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 Config\"}},[_c('JsonEditor',{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:\"json-editor-outer\"},[_c('v-jsoneditor',{attrs:{\"options\":_vm.options,\"height\":\"500px\"},model:{value:(_vm.jsonData),callback:function ($$v) {_vm.jsonData=$$v},expression:\"jsonData\"}}),_c('div',{staticClass:\"save-options\"},[_c('span',{staticClass:\"save-option-title\"},[_vm._v(\"Save Location:\")]),_c('div',{staticClass:\"option\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.saveMode),expression:\"saveMode\"}],staticClass:\"radio-option\",attrs:{\"type\":\"radio\",\"id\":\"local\",\"value\":\"local\",\"disabled\":!_vm.allowWriteToDisk},domProps:{\"checked\":_vm._q(_vm.saveMode,\"local\")},on:{\"change\":function($event){_vm.saveMode=\"local\"}}}),_c('label',{staticClass:\"save-option-label\",attrs:{\"for\":\"local\"}},[_vm._v(\"Apply Locally\")])]),_c('div',{staticClass:\"option\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.saveMode),expression:\"saveMode\"}],staticClass:\"radio-option\",attrs:{\"type\":\"radio\",\"id\":\"file\",\"value\":\"file\",\"disabled\":!_vm.allowWriteToDisk},domProps:{\"checked\":_vm._q(_vm.saveMode,\"file\")},on:{\"change\":function($event){_vm.saveMode=\"file\"}}}),_c('label',{staticClass:\"save-option-label\",attrs:{\"for\":\"file\"}},[_vm._v(\"Write Changes to Config File\")])])]),_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.saveSuccess !== undefined)?_c('p',{class:(\"response-output status-\" + (_vm.saveSuccess ? 'success' : 'fail'))},[_vm._v(\" \"+_vm._s(_vm.saveSuccess ? 'Task Complete' : 'Task Failed')+\" \")]):_vm._e(),_c('p',{staticClass:\"response-output\"},[_vm._v(_vm._s(_vm.responseText))]),(_vm.saveSuccess)?_c('p',{staticClass:\"response-output\"},[_vm._v(\" The app should rebuild automatically. You will need to refresh the page for changes to take effect. \")]):_vm._e(),_c('p',{staticClass:\"note\"},[_vm._v(\" It is recommend to backup your existing confiruration before making any changes. \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import sha256 from 'crypto-js/sha256';\nimport { cookieKeys, localStorageKeys } from './defaults';\n\nconst generateUserToken = (user) => sha256(user.toString()).toString().toLowerCase();\n\nexport const isLoggedIn = (users) => {\n const validTokens = users.map((user) => generateUserToken(user));\n let userAuthenticated = false;\n document.cookie.split(';').forEach((cookie) => {\n if (cookie && cookie.split('=').length > 1) {\n const cookieKey = cookie.split('=')[0].trim();\n const cookieValue = cookie.split('=')[1].trim();\n if (cookieKey === cookieKeys.AUTH_TOKEN) {\n if (validTokens.includes(cookieValue)) {\n userAuthenticated = true;\n }\n }\n }\n });\n return userAuthenticated;\n};\n\nexport const checkCredentials = (username, pass, users) => {\n let response;\n if (!username) {\n response = { correct: false, msg: 'Missing Username' };\n } else if (!pass) {\n response = { correct: false, msg: 'Missing Password' };\n } else {\n users.forEach((user) => {\n if (user.user === username) {\n if (user.hash.toLowerCase() === sha256(pass).toString().toLowerCase()) {\n response = { correct: true, msg: 'Logging in...' };\n } else {\n response = { correct: false, msg: 'Incorrect Password' };\n }\n }\n });\n }\n return response || { correct: false, msg: 'User not found' };\n};\n\nexport const login = (username, pass) => {\n const userObject = { user: username, hash: sha256(pass).toString().toLowerCase() };\n document.cookie = `authenticationToken=${generateUserToken(userObject)}; max-age=600`;\n localStorage.setItem(localStorageKeys.USERNAME, username);\n};\n\nexport const logout = () => {\n document.cookie = 'authenticationToken=null';\n localStorage.removeItem(localStorageKeys.USERNAME);\n};\n\n/**\n * Checks if the current user has admin privileges.\n * If no users are setup, then function will always return true\n * But if auth is configured, then will verify user is correctly\n * logged in and then check weather they are of type admin, and\n * return false if any conditions fail\n * @param users[] : Array of users\n * @returns Boolean : True if admin privileges\n */\nexport const isUserAdmin = (users) => {\n if (!users || users.length === 0) return true; // Authentication not setup\n if (!isLoggedIn(users)) return false; // Auth setup, but not signed in as a valid user\n const currentUser = localStorage[localStorageKeys.USERNAME];\n let isAdmin = false;\n users.forEach((user) => {\n if (user.user === currentUser) {\n if (user.type === 'admin') isAdmin = true;\n }\n });\n return isAdmin;\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!./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=2ec9c242&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal',{attrs:{\"name\":_vm.modalName,\"resizable\":true,\"width\":\"50%\",\"height\":\"60%\",\"classes\":\"dashy-modal\"}},[_c('div',{staticClass:\"rebuild-app-container\"},[_c('h3',{staticClass:\"rebuild-app-title\"},[_vm._v(\"Rebuild Application\")]),_c('p',[_vm._v(\" A rebuild is required for changes written to the conf.yml file to take effect. This should happen automatically, but if it hasn't, you can manually trigger it here.\"),_c('br'),_vm._v(\" This is not required for modifications stored locally. \")]),_c('Button',{attrs:{\"click\":_vm.startBuild,\"disabled\":_vm.loading},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(_vm.loading ? 'Building...' : 'Start Build'))]},proxy:true},{key:\"icon\",fn:function(){return [_c('RebuildIcon')]},proxy:true}])}),(_vm.loading)?_c('div',{staticClass:\"loader-info\"},[_c('LoadingAnimation',{staticClass:\"loader\"}),_c('p',{staticClass:\"loading-message\"},[_vm._v(\"This may take a few minutes...\")])],1):_vm._e(),(_vm.success !== undefined)?_c('div',{staticClass:\"rebuild-response\"},[(_vm.success)?_c('p',{staticClass:\"response-status success\"},[_vm._v(\"✅ Build completed succesfully\")]):_c('p',{staticClass:\"response-status failure\"},[_vm._v(\"❌ Build operation failed\")]),_c('pre',{staticClass:\"output\"},[_c('code',[_vm._v(_vm._s(_vm.output || _vm.error))])]),_c('p',{staticClass:\"rebuild-message\"},[_vm._v(_vm._s(_vm.message))]),(_vm.success)?_c('p',{staticClass:\"rebuild-message\"},[_vm._v(\" A page reload is now required for changes to take effect \")]):_vm._e(),(_vm.success)?_c('Button',{attrs:{\"click\":_vm.refreshPage},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(\"Reload Page\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('ReloadIcon')]},proxy:true}],null,false,1379687826)}):_vm._e()],1):_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('button',{attrs:{\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.click()}}},[_vm._t(\"default\"),_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=620b35ec&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=620b35ec&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 \"620b35ec\",\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!./RebuildApp.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!./RebuildApp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RebuildApp.vue?vue&type=template&id=1ee3fcba&scoped=true&\"\nimport script from \"./RebuildApp.vue?vue&type=script&lang=js&\"\nexport * from \"./RebuildApp.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RebuildApp.vue?vue&type=style&index=0&id=1ee3fcba&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 \"1ee3fcba\",\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=41a7f69b&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=41a7f69b&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 \"41a7f69b\",\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('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=763657f4&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=763657f4&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 \"763657f4\",\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!./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=383db9de&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=383db9de&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 \"383db9de\",\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=423b52b4&\"\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=c5f17d9a&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=c5f17d9a&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 \"c5f17d9a\",\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=d4f6509a&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=d4f6509a&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 \"d4f6509a\",\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,\"enableStatusCheck\":_vm.shouldEnableStatusCheck(item.statusCheck),\"statusCheckInterval\":_vm.getStatusCheckInterval()},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'}}),(_vm.enableStatusCheck)?_c('StatusIndicator',{staticClass:\"status-indicator\",attrs:{\"statusSuccess\":_vm.statusResponse ? _vm.statusResponse.successStatus : undefined,\"statusText\":_vm.statusResponse ? _vm.statusResponse.message : undefined}}):_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:\"item-icon\"},[(_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=4d17ab48&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({\n content: _vm.statusText || _vm.otherStatusText, classes: ['status-tooltip', (\"tip-\" + (_vm.color()))] }),expression:\"{\\n content: statusText || otherStatusText, classes: ['status-tooltip', `tip-${color()}`] }\"}],staticClass:\"indicator\",on:{\"click\":function($event){return _vm.showToast()}}},[_c('div',{class:(\"dot dot-\" + (_vm.color()))},[_vm._m(0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('span')])}]\n\nexport { render, staticRenderFns }","\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!./StatusIndicator.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!./StatusIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StatusIndicator.vue?vue&type=template&id=46972ad8&scoped=true&\"\nimport script from \"./StatusIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./StatusIndicator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StatusIndicator.vue?vue&type=style&index=0&id=46972ad8&scoped=true&lang=scss&\"\nimport style1 from \"./StatusIndicator.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 \"46972ad8\",\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=7f5c50ae&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\",\"url\":_vm.title}}):_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=33a8b630&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=33a8b630&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 \"33a8b630\",\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%\",\"classes\":\"dashy-modal\"},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 }","