diff --git a/UI b/UI
index d457b64..a607481 160000
--- a/UI
+++ b/UI
@@ -1 +1 @@
-Subproject commit d457b64e2656febd680e92b974a14776edfa2a7f
+Subproject commit a6074812f4dc40424cf6468e47d98eb8a26f9d58
diff --git a/route/init.go b/route/init.go
index 319fbef..95dbfb0 100644
--- a/route/init.go
+++ b/route/init.go
@@ -35,7 +35,7 @@ func installSyncthing(appId string) {
m := model.CustomizationPostData{}
var dockerImage string
var dockerImageVersion string
- appInfo = service.MyService.OAPI().GetServerAppInfo(appId, "system")
+ appInfo = service.MyService.OAPI().GetServerAppInfo(appId, "system", "us_en")
dockerImage = appInfo.Image
dockerImageVersion = appInfo.ImageVersion
diff --git a/route/v1/app.go b/route/v1/app.go
index 6776742..6103802 100644
--- a/route/v1/app.go
+++ b/route/v1/app.go
@@ -35,7 +35,8 @@ func AppList(c *gin.Context) {
t := c.DefaultQuery("type", "rank")
categoryId := c.DefaultQuery("category_id", "0")
key := c.DefaultQuery("key", "")
- recommend, list, community := service.MyService.OAPI().GetServerList(index, size, t, categoryId, key)
+ language := c.GetHeader("Language")
+ recommend, list, community := service.MyService.OAPI().GetServerList(index, size, t, categoryId, key, language)
// for i := 0; i < len(recommend); i++ {
// ct, _ := service.MyService.Docker().DockerListByImage(recommend[i].Image, recommend[i].ImageVersion)
// if ct != nil {
@@ -137,7 +138,8 @@ func AppUsageList(c *gin.Context) {
func AppInfo(c *gin.Context) {
id := c.Param("id")
- info := service.MyService.OAPI().GetServerAppInfo(id, "")
+ language := c.GetHeader("Language")
+ info := service.MyService.OAPI().GetServerAppInfo(id, "", language)
if info.NetworkModel != "host" {
for i := 0; i < len(info.Ports); i++ {
if p, _ := strconv.Atoi(info.Ports[i].ContainerPort); port2.IsPortAvailable(p, info.Ports[i].Protocol) {
diff --git a/route/v1/disk.go b/route/v1/disk.go
index ec0c9c7..555b632 100644
--- a/route/v1/disk.go
+++ b/route/v1/disk.go
@@ -82,7 +82,7 @@ func GetDiskList(c *gin.Context) {
continue
}
- if list[i].Tran == "sata" {
+ if list[i].Tran == "sata" || list[i].Tran == "nvme" {
temp := service.MyService.Disk().SmartCTL(list[i].Path)
if reflect.DeepEqual(temp, model.SmartctlA{}) {
continue
diff --git a/route/v1/docker.go b/route/v1/docker.go
index a4e4d09..14e0c04 100644
--- a/route/v1/docker.go
+++ b/route/v1/docker.go
@@ -145,6 +145,7 @@ func SpeedPush(c *gin.Context) {
// @Router /app/install/{id} [post]
func InstallApp(c *gin.Context) {
appId := c.Param("id")
+ language := c.GetHeader("Language")
var appInfo model.ServerAppList
m := model.CustomizationPostData{}
c.BindJSON(&m)
@@ -174,7 +175,7 @@ func InstallApp(c *gin.Context) {
dockerImageVersion = "latest"
}
if m.Origin != "custom" {
- appInfo = service.MyService.OAPI().GetServerAppInfo(appId, "")
+ appInfo = service.MyService.OAPI().GetServerAppInfo(appId, "", language)
} else {
diff --git a/route/v1/system.go b/route/v1/system.go
index 65f6b48..3e5f040 100644
--- a/route/v1/system.go
+++ b/route/v1/system.go
@@ -286,7 +286,7 @@ func Info(c *gin.Context) {
findSystem += 1
continue
}
- if list[i].Tran == "sata" {
+ if list[i].Tran == "sata" || list[i].Tran == "nvme" {
temp := service.MyService.Disk().SmartCTL(list[i].Path)
if reflect.DeepEqual(temp, model.SmartctlA{}) {
continue
diff --git a/route/v1/zerotier.go b/route/v1/zerotier.go
index e55ae8c..0966ef9 100644
--- a/route/v1/zerotier.go
+++ b/route/v1/zerotier.go
@@ -2,12 +2,13 @@ package v1
import (
json2 "encoding/json"
+ "net/http"
+
"github.com/IceWhaleTech/CasaOS/model"
"github.com/IceWhaleTech/CasaOS/pkg/config"
oasis_err2 "github.com/IceWhaleTech/CasaOS/pkg/utils/oasis_err"
"github.com/IceWhaleTech/CasaOS/service"
"github.com/gin-gonic/gin"
- "net/http"
)
// @Summary 登录zerotier获取token
@@ -432,11 +433,17 @@ func ZeroTierDeleteNetwork(c *gin.Context) {
// @Router /zerotier/join/{id} [post]
func ZeroTierJoinNetwork(c *gin.Context) {
networkId := c.Param("id")
- service.MyService.ZeroTier().ZeroTierJoinNetwork(networkId)
- if len(networkId) == 0 {
+ if len(networkId) != 16 {
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
return
}
+ for _, v := range networkId {
+ if !service.MyService.ZeroTier().NetworkIdFilter(v) {
+ c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
+ return
+ }
+ }
+ service.MyService.ZeroTier().ZeroTierJoinNetwork(networkId)
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
}
@@ -450,10 +457,19 @@ func ZeroTierJoinNetwork(c *gin.Context) {
// @Router /zerotier/leave/{id} [post]
func ZeroTierLeaveNetwork(c *gin.Context) {
networkId := c.Param("id")
- service.MyService.ZeroTier().ZeroTierLeaveNetwork(networkId)
- if len(networkId) == 0 {
+
+ if len(networkId) != 16 {
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
return
}
+
+ for _, v := range networkId {
+ if !service.MyService.ZeroTier().NetworkIdFilter(v) {
+ c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
+ return
+ }
+ }
+ service.MyService.ZeroTier().ZeroTierLeaveNetwork(networkId)
+
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
}
diff --git a/service/casa.go b/service/casa.go
index 2fcbcf6..af8f412 100644
--- a/service/casa.go
+++ b/service/casa.go
@@ -13,10 +13,10 @@ import (
)
type CasaService interface {
- GetServerList(index, size, tp, categoryId, key string) (recommend, list, community []model.ServerAppList)
+ GetServerList(index, size, tp, categoryId, key, language string) (recommend, list, community []model.ServerAppList)
GetServerCategoryList() []model.ServerCategoryList
GetTaskList(size int) []model2.TaskDBModel
- GetServerAppInfo(id, t string) model.ServerAppList
+ GetServerAppInfo(id, t string, language string) model.ServerAppList
ShareAppFile(body []byte) string
}
@@ -45,9 +45,9 @@ func (o *casaService) GetTaskList(size int) []model2.TaskDBModel {
return list
}
-func (o *casaService) GetServerList(index, size, tp, categoryId, key string) (recommend, list, community []model.ServerAppList) {
+func (o *casaService) GetServerList(index, size, tp, categoryId, key, language string) (recommend, list, community []model.ServerAppList) {
- keyName := fmt.Sprintf("list_%s_%s_%s_%s", index, size, tp, categoryId)
+ keyName := fmt.Sprintf("list_%s_%s_%s_%s_%s", index, size, tp, categoryId, language)
if result, ok := Cache.Get(keyName); ok {
res, ok := result.(string)
@@ -63,7 +63,7 @@ func (o *casaService) GetServerList(index, size, tp, categoryId, key string) (re
head["Authorization"] = GetToken()
- listS := httper2.Get(config.ServerInfo.ServerApi+"/v2/app/newlist?index="+index+"&size="+size+"&rank="+tp+"&category_id="+categoryId+"&key="+key, head)
+ listS := httper2.Get(config.ServerInfo.ServerApi+"/v2/app/newlist?index="+index+"&size="+size+"&rank="+tp+"&category_id="+categoryId+"&key="+key+"&language="+language, head)
json2.Unmarshal([]byte(gjson.Get(listS, "data.list").String()), &list)
json2.Unmarshal([]byte(gjson.Get(listS, "data.recommend").String()), &recommend)
@@ -88,12 +88,12 @@ func (o *casaService) GetServerCategoryList() []model.ServerCategoryList {
return list
}
-func (o *casaService) GetServerAppInfo(id, t string) model.ServerAppList {
+func (o *casaService) GetServerAppInfo(id, t string, language string) model.ServerAppList {
head := make(map[string]string)
head["Authorization"] = GetToken()
- infoS := httper2.Get(config.ServerInfo.ServerApi+"/v2/app/info/"+id+"?t="+t, head)
+ infoS := httper2.Get(config.ServerInfo.ServerApi+"/v2/app/info/"+id+"?t="+t+"&language="+language, head)
info := model.ServerAppList{}
json2.Unmarshal([]byte(gjson.Get(infoS, "data").String()), &info)
diff --git a/service/zerotier.go b/service/zerotier.go
index e62c33a..d1b7862 100644
--- a/service/zerotier.go
+++ b/service/zerotier.go
@@ -4,18 +4,20 @@ import (
"bytes"
"errors"
"fmt"
- "github.com/IceWhaleTech/CasaOS/pkg/config"
- command2 "github.com/IceWhaleTech/CasaOS/pkg/utils/command"
- httper2 "github.com/IceWhaleTech/CasaOS/pkg/utils/httper"
- "github.com/IceWhaleTech/CasaOS/pkg/zerotier"
- "github.com/PuerkitoBio/goquery"
- "github.com/tidwall/gjson"
"io/ioutil"
"math/rand"
"net/http"
"strconv"
"strings"
"time"
+ "unicode"
+
+ "github.com/IceWhaleTech/CasaOS/pkg/config"
+ command2 "github.com/IceWhaleTech/CasaOS/pkg/utils/command"
+ httper2 "github.com/IceWhaleTech/CasaOS/pkg/utils/httper"
+ "github.com/IceWhaleTech/CasaOS/pkg/zerotier"
+ "github.com/PuerkitoBio/goquery"
+ "github.com/tidwall/gjson"
)
type ZeroTierService interface {
@@ -33,6 +35,7 @@ type ZeroTierService interface {
DeleteMember(token string, id, mId string) interface{}
DeleteNetwork(token, id string) interface{}
GetJoinNetworks() string
+ NetworkIdFilter(letter rune) bool
}
type zerotierStruct struct {
}
@@ -333,6 +336,13 @@ func (c *zerotierStruct) GetJoinNetworks() string {
return json
}
+func (c *zerotierStruct) NetworkIdFilter(letter rune) bool {
+ if unicode.IsNumber(letter) || unicode.IsLetter(letter) {
+ return true
+ } else {
+ return false
+ }
+}
func NewZeroTierService() ZeroTierService {
//初始化client
client = http.Client{Timeout: 30 * time.Second, CheckRedirect: func(req *http.Request, via []*http.Request) error {
diff --git a/types/system.go b/types/system.go
index 35301dd..9f10162 100644
--- a/types/system.go
+++ b/types/system.go
@@ -1,5 +1,5 @@
package types
-const CURRENTVERSION = "0.2.6"
+const CURRENTVERSION = "0.2.7"
-const BODY = "
Fix a disk that cannot be formatted under certain circumstancesAdd a bug report panel."
+const BODY = "Apply multilingual supportFix a security vulnerability"
diff --git a/web/js/2.js b/web/js/2.js
index 8a27a7f..9bafd6f 100644
--- a/web/js/2.js
+++ b/web/js/2.js
@@ -475,7 +475,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var date
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_number_to_fixed_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.number.to-fixed.js */ \"./node_modules/core-js/modules/es.number.to-fixed.js\");\n/* harmony import */ var core_js_modules_es_number_to_fixed_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_to_fixed_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue_apexcharts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-apexcharts */ \"./node_modules/vue-apexcharts/dist/vue-apexcharts.js\");\n/* harmony import */ var vue_apexcharts__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_apexcharts__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-smooth-reflow */ \"./node_modules/vue-smooth-reflow/dist/vue-smooth-reflow.min.js\");\n/* harmony import */ var vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_orderBy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/orderBy */ \"./node_modules/lodash/orderBy.js\");\n/* harmony import */ var lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_orderBy__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_has__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/has */ \"./node_modules/lodash/has.js\");\n/* harmony import */ var lodash_has__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_has__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_slice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\");\n/* harmony import */ var lodash_slice__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_slice__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../mixins/mixin */ \"./src/mixins/mixin.js\");\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'cpu',\n icon: \"cog\",\n title: \"System Status\",\n initShow: true,\n mixins: [vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3___default.a, _mixins_mixin__WEBPACK_IMPORTED_MODULE_7__[\"mixin\"]],\n components: {\n apexchart: vue_apexcharts__WEBPACK_IMPORTED_MODULE_2___default.a\n },\n data: function data() {\n return {\n activeTab: 0,\n showMore: false,\n barHeight: 120,\n cpuSeries: [0],\n ramSeries: [0],\n chartOptions: {\n chart: {\n type: 'radialBar',\n width: '100%'\n },\n colors: [\"#01FFC2\"],\n grid: {\n padding: {\n left: 0,\n right: 0,\n top: -8,\n bottom: -10\n }\n },\n plotOptions: {\n radialBar: {\n startAngle: 0,\n endAngle: 360,\n offsetX: 0,\n offsetY: 0,\n hollow: {\n margin: 0,\n size: '60%',\n image: undefined,\n imageOffsetX: 0,\n imageOffsetY: 0,\n position: 'front',\n dropShadow: {\n enabled: true,\n top: 3,\n left: 0,\n blur: 4,\n opacity: 0.24\n }\n },\n track: {\n background: '#fff',\n strokeWidth: '100%',\n margin: 0,\n // margin is in pixels\n opacity: 0.4,\n dropShadow: {\n enabled: true,\n top: -3,\n left: 0,\n blur: 4,\n opacity: 0.35\n }\n },\n dataLabels: {\n show: true,\n value: {\n formatter: function formatter(val) {\n return parseInt(val) + \"%\";\n },\n offsetY: -10,\n color: '#fff',\n fontSize: '18px',\n show: true\n }\n }\n }\n },\n fill: {\n type: 'gradient',\n gradient: {\n shade: 'dark',\n type: 'diagonal2',\n shadeIntensity: 0.5,\n gradientToColors: ['#06FF03'],\n inverseColors: true,\n opacityFrom: 1,\n opacityTo: 1,\n stops: [0, 100]\n }\n },\n stroke: {\n lineCap: 'round'\n },\n labels: ['']\n },\n containerCpuList: [],\n containerRamList: []\n };\n },\n mounted: function mounted() {\n this.updateCharts(this.$store.state.hardwareInfo);\n this.getDockerUsage();\n this.$smoothReflow({\n el: '.widget',\n property: ['height']\n });\n },\n watch: {\n // Watch if Hardware info changes in the store\n '$store.state.hardwareInfo': {\n handler: function handler(val) {\n this.updateCharts(val);\n },\n deep: true\n }\n },\n methods: {\n /**\n * @description: Update cpu and memory usage\n * @param {*}\n * @return {*} void\n */\n updateCharts: function updateCharts(hardwareInfo) {\n this.cpuSeries = [hardwareInfo.cpu.percent];\n this.ramSeries = [hardwareInfo.mem.usedPercent];\n\n if (this.showMore) {\n this.getDockerUsage();\n }\n },\n\n /**\n * @description: Get Docker apps cpu and memory usage\n * @param {*}\n * @return {*} void\n */\n getDockerUsage: function getDockerUsage() {\n var _this = this;\n\n this.$api.app.getAppUsage().then(function (res) {\n _this.containerCpuList = res.data.data.map(function (item) {\n var usage = 0;\n\n if (item.pre == null) {\n usage = 0;\n } else {\n var cpu_delta = item.data.cpu_stats.cpu_usage.total_usage - item.pre.cpu_stats.cpu_usage.total_usage;\n var system_cpu_delta = item.data.cpu_stats.system_cpu_usage - item.pre.cpu_stats.system_cpu_usage + 1;\n var number_cpus = item.data.cpu_stats.online_cpus;\n usage = (cpu_delta / system_cpu_delta * number_cpus * 100).toFixed(1);\n }\n\n return {\n usage: usage,\n icon: item.icon,\n title: item.title\n };\n });\n _this.containerRamList = res.data.data.map(function (item) {\n var cache = 0;\n\n if (lodash_has__WEBPACK_IMPORTED_MODULE_5___default()(item.data.memory_stats.stats, 'inactive_file')) {\n cache = item.data.memory_stats.stats.inactive_file;\n } else {\n if (lodash_has__WEBPACK_IMPORTED_MODULE_5___default()(item.data.memory_stats.stats, 'cache')) {\n cache = item.data.memory_stats.stats.cache;\n } else if (lodash_has__WEBPACK_IMPORTED_MODULE_5___default()(item.data.memory_stats.stats, 'total_inactive_file')) {\n cache = item.data.memory_stats.stats.total_inactive_file;\n }\n }\n\n var used_memory = \"stats\" in item.data.memory_stats ? item.data.memory_stats.usage - cache : NaN;\n return {\n usage: used_memory,\n icon: item.icon,\n title: item.title\n };\n });\n _this.containerCpuList = lodash_slice__WEBPACK_IMPORTED_MODULE_6___default()(lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default()(_this.containerCpuList, ['usage'], ['desc']), 0, 8);\n _this.containerRamList = lodash_slice__WEBPACK_IMPORTED_MODULE_6___default()(lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default()(_this.containerRamList, ['usage'], ['desc']), 0, 8);\n });\n },\n\n /**\n * @description: Toggle more info\n * @param {*}\n * @return {*} void\n */\n showMoreInfo: function showMoreInfo() {\n this.showMore = !this.showMore;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/widgets/Cpu.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_number_to_fixed_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.number.to-fixed.js */ \"./node_modules/core-js/modules/es.number.to-fixed.js\");\n/* harmony import */ var core_js_modules_es_number_to_fixed_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_to_fixed_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vue_apexcharts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-apexcharts */ \"./node_modules/vue-apexcharts/dist/vue-apexcharts.js\");\n/* harmony import */ var vue_apexcharts__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_apexcharts__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-smooth-reflow */ \"./node_modules/vue-smooth-reflow/dist/vue-smooth-reflow.min.js\");\n/* harmony import */ var vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_orderBy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/orderBy */ \"./node_modules/lodash/orderBy.js\");\n/* harmony import */ var lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_orderBy__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_has__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/has */ \"./node_modules/lodash/has.js\");\n/* harmony import */ var lodash_has__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_has__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_slice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\");\n/* harmony import */ var lodash_slice__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_slice__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../mixins/mixin */ \"./src/mixins/mixin.js\");\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'cpu',\n icon: \"cog\",\n title: \"System Status\",\n initShow: true,\n mixins: [vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_3___default.a, _mixins_mixin__WEBPACK_IMPORTED_MODULE_7__[\"mixin\"]],\n components: {\n apexchart: vue_apexcharts__WEBPACK_IMPORTED_MODULE_2___default.a\n },\n data: function data() {\n return {\n activeTab: 0,\n showMore: false,\n barHeight: 120,\n cpuSeries: [0],\n ramSeries: [0],\n chartOptions: {\n chart: {\n type: 'radialBar',\n width: '100%'\n },\n colors: [\"#01FFC2\"],\n grid: {\n padding: {\n left: 0,\n right: 0,\n top: -8,\n bottom: -10\n }\n },\n plotOptions: {\n radialBar: {\n startAngle: 0,\n endAngle: 360,\n offsetX: 0,\n offsetY: 0,\n hollow: {\n margin: 0,\n size: '60%',\n image: undefined,\n imageOffsetX: 0,\n imageOffsetY: 0,\n position: 'front',\n dropShadow: {\n enabled: true,\n top: 3,\n left: 0,\n blur: 4,\n opacity: 0.24\n }\n },\n track: {\n background: '#fff',\n strokeWidth: '100%',\n margin: 0,\n // margin is in pixels\n opacity: 0.4,\n dropShadow: {\n enabled: true,\n top: -3,\n left: 0,\n blur: 4,\n opacity: 0.35\n }\n },\n dataLabels: {\n show: true,\n value: {\n formatter: function formatter(val) {\n return parseInt(val) + \"%\";\n },\n offsetY: -10,\n color: '#fff',\n fontSize: '18px',\n show: true\n }\n }\n }\n },\n fill: {\n type: 'gradient',\n gradient: {\n shade: 'dark',\n type: 'diagonal2',\n shadeIntensity: 0.5,\n gradientToColors: ['#06FF03'],\n inverseColors: true,\n opacityFrom: 1,\n opacityTo: 1,\n stops: [0, 100]\n }\n },\n stroke: {\n lineCap: 'round'\n },\n labels: ['']\n },\n containerCpuList: [],\n containerRamList: []\n };\n },\n mounted: function mounted() {\n this.updateCharts(this.$store.state.hardwareInfo);\n this.getDockerUsage();\n this.$smoothReflow({\n el: '.widget',\n property: ['height']\n });\n },\n watch: {\n // Watch if Hardware info changes in the store\n '$store.state.hardwareInfo': {\n handler: function handler(val) {\n this.updateCharts(val);\n },\n deep: true\n }\n },\n methods: {\n /**\n * @description: Update cpu and memory usage\n * @param {*}\n * @return {*} void\n */\n updateCharts: function updateCharts(hardwareInfo) {\n this.cpuSeries = [hardwareInfo.cpu.percent];\n this.ramSeries = [hardwareInfo.mem.usedPercent];\n\n if (this.showMore) {\n this.getDockerUsage();\n }\n },\n\n /**\n * @description: Get Docker apps cpu and memory usage\n * @param {*}\n * @return {*} void\n */\n getDockerUsage: function getDockerUsage() {\n var _this = this;\n\n this.$api.app.getAppUsage().then(function (res) {\n _this.containerCpuList = res.data.data.map(function (item) {\n var usage = 0;\n\n if (item.pre == null) {\n usage = 0;\n } else {\n var cpu_delta = item.data.cpu_stats.cpu_usage.total_usage - item.pre.cpu_stats.cpu_usage.total_usage;\n var system_cpu_delta = item.data.cpu_stats.system_cpu_usage - item.pre.cpu_stats.system_cpu_usage + 1;\n var number_cpus = item.data.cpu_stats.online_cpus;\n usage = (cpu_delta / system_cpu_delta * number_cpus * 100).toFixed(1);\n }\n\n return {\n usage: usage,\n icon: item.icon,\n title: item.title\n };\n });\n _this.containerRamList = res.data.data.map(function (item) {\n var cache = 0;\n\n if (lodash_has__WEBPACK_IMPORTED_MODULE_5___default()(item.data.memory_stats.stats, 'inactive_file')) {\n cache = item.data.memory_stats.stats.inactive_file;\n } else {\n if (lodash_has__WEBPACK_IMPORTED_MODULE_5___default()(item.data.memory_stats.stats, 'cache')) {\n cache = item.data.memory_stats.stats.cache;\n } else if (lodash_has__WEBPACK_IMPORTED_MODULE_5___default()(item.data.memory_stats.stats, 'total_inactive_file')) {\n cache = item.data.memory_stats.stats.total_inactive_file;\n }\n }\n\n var used_memory = \"stats\" in item.data.memory_stats ? item.data.memory_stats.usage - cache : NaN;\n return {\n usage: used_memory,\n icon: item.icon,\n title: item.title\n };\n });\n _this.containerCpuList = lodash_slice__WEBPACK_IMPORTED_MODULE_6___default()(lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default()(_this.containerCpuList, ['usage'], ['desc']), 0, 8);\n _this.containerRamList = lodash_slice__WEBPACK_IMPORTED_MODULE_6___default()(lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default()(_this.containerRamList, ['usage'], ['desc']), 0, 8);\n });\n },\n\n /**\n * @description: Toggle more info\n * @param {*}\n * @return {*} void\n */\n showMoreInfo: function showMoreInfo() {\n this.showMore = !this.showMore;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/widgets/Cpu.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
@@ -491,399 +491,399 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _com
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AccountPanel.vue?vue&type=template&id=bb9496f2&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AccountPanel.vue?vue&type=template&id=bb9496f2&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AccountPanel.vue?vue&type=template&id=bb9496f2& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AccountPanel.vue?vue&type=template&id=bb9496f2& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"ValidationObserver\", {\n ref: \"observer\",\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function(ref) {\n var handleSubmit = ref.handleSubmit\n return [\n _c(\n \"header\",\n {\n staticClass: \"modal-card-head\",\n class: { \"modal-card-head1\": _vm.state == 1 }\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\n \"h3\",\n { staticClass: \"title is-4 has-text-weight-normal\" },\n [_vm._v(_vm._s(_vm.title))]\n )\n ]),\n _c(\"div\", [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ])\n ]\n ),\n _c(\n \"section\",\n {\n staticClass: \"modal-card-body \",\n class: { \"is-flex\": _vm.state == 1 }\n },\n [\n _vm.state == 1\n ? [\n _c(\n \"div\",\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/user.svg */ \"./src/assets/img/user.svg\"),\n rounded: \"\"\n }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"ml-5\" }, [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Name\")))\n ]),\n _c(\"h2\", { staticClass: \"title is-6\" }, [\n _vm._v(_vm._s(_vm.userInfo.user_name))\n ]),\n _c(\n \"h2\",\n {\n staticClass: \"title is-6 has-text-weight-normal\"\n },\n [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.goto(2)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Change name\")))]\n )\n ]\n ),\n _c(\"h2\", { staticClass: \"title is-4 mt-6\" }, [\n _vm._v(_vm._s(_vm.$t(\"Password\")))\n ]),\n _c(\n \"h2\",\n {\n staticClass: \"title is-6 has-text-weight-normal\"\n },\n [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.goto(3)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Change Password\")))]\n )\n ]\n )\n ])\n ]\n : _vm._e(),\n _vm.state == 2\n ? [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"User\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass:\n \"mb-5 mt-5 has-text-light\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: { type: \"text\" },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.saveUser\n )\n }\n },\n model: {\n value: _vm.username,\n callback: function($$v) {\n _vm.username = $$v\n },\n expression: \"username\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n })\n ]\n : _vm._e(),\n _vm.state == 3\n ? [\n _c(\n \"b-notification\",\n {\n attrs: {\n \"auto-close\": \"\",\n type: \"is-danger\",\n \"aria-close-label\": \"Close notification\",\n role: \"alert\"\n },\n model: {\n value: _vm.notificationShow,\n callback: function($$v) {\n _vm.notificationShow = $$v\n },\n expression: \"notificationShow\"\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.message) + \" \")]\n ),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"oriPassword\",\n name: \"oriPassword\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass:\n \"mb-5 mt-5 has-text-light\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n placeholder: _vm.$t(\n \"Original password\"\n ),\n \"password-reveal\": \"\"\n },\n model: {\n value: _vm.oriPassword,\n callback: function($$v) {\n _vm.oriPassword = $$v\n },\n expression: \"oriPassword\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"password\",\n name: \"Password\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass:\n \"mb-5 mt-5 has-text-light\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n placeholder: _vm.$t(\n \"New password\"\n ),\n \"password-reveal\": \"\"\n },\n model: {\n value: _vm.password,\n callback: function($$v) {\n _vm.password = $$v\n },\n expression: \"password\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|confirmed:password\",\n name: \"Password Confirmation\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-4 mb-5\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n placeholder: _vm.$t(\n \"Confirm the new password again\"\n ),\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return _vm.savePassword(\n _vm.savePassword\n )\n }\n },\n model: {\n value: _vm.confirmation,\n callback: function($$v) {\n _vm.confirmation = $$v\n },\n expression: \"confirmation\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n })\n ]\n : _vm._e()\n ],\n 2\n ),\n _c(\n \"footer\",\n {\n staticClass: \"modal-card-foot is-flex is-align-items-center\"\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _vm.state >= 2\n ? _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Back\"), rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.goto(1)\n }\n }\n })\n : _vm._e(),\n _vm.state == 2\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\",\n expaned: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.saveUser)\n }\n }\n })\n : _vm._e(),\n _vm.state == 3\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\",\n expaned: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.savePassword)\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n )\n ]\n }\n }\n ])\n }),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/AccountPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"ValidationObserver\", {\n ref: \"observer\",\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function(ref) {\n var handleSubmit = ref.handleSubmit\n return [\n _c(\n \"header\",\n {\n staticClass: \"modal-card-head\",\n class: { \"modal-card-head1\": _vm.state == 1 }\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\n \"h3\",\n { staticClass: \"title is-4 has-text-weight-normal\" },\n [_vm._v(_vm._s(_vm.title))]\n )\n ]),\n _c(\"div\", [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ])\n ]\n ),\n _c(\n \"section\",\n {\n staticClass: \"modal-card-body \",\n class: { \"is-flex\": _vm.state == 1 }\n },\n [\n _vm.state == 1\n ? [\n _c(\n \"div\",\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/user.svg */ \"./src/assets/img/user.svg\"),\n rounded: \"\"\n }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"ml-5\" }, [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Name\")))\n ]),\n _c(\"h2\", { staticClass: \"title is-6\" }, [\n _vm._v(_vm._s(_vm.userInfo.user_name))\n ]),\n _c(\n \"h2\",\n {\n staticClass: \"title is-6 has-text-weight-normal\"\n },\n [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.goto(2)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Change name\")))]\n )\n ]\n ),\n _c(\"h2\", { staticClass: \"title is-4 mt-6\" }, [\n _vm._v(_vm._s(_vm.$t(\"Password\")))\n ]),\n _c(\n \"h2\",\n {\n staticClass: \"title is-6 has-text-weight-normal\"\n },\n [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.goto(3)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Change Password\")))]\n )\n ]\n )\n ])\n ]\n : _vm._e(),\n _vm.state == 2\n ? [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"User\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass:\n \"mb-5 mt-5 has-text-light\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: { type: \"text\" },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.saveUser\n )\n }\n },\n model: {\n value: _vm.username,\n callback: function($$v) {\n _vm.username = $$v\n },\n expression: \"username\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n })\n ]\n : _vm._e(),\n _vm.state == 3\n ? [\n _c(\n \"b-notification\",\n {\n attrs: {\n \"auto-close\": \"\",\n type: \"is-danger\",\n \"aria-close-label\": \"Close notification\",\n role: \"alert\"\n },\n model: {\n value: _vm.notificationShow,\n callback: function($$v) {\n _vm.notificationShow = $$v\n },\n expression: \"notificationShow\"\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.message) + \" \")]\n ),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"oriPassword\",\n name: \"oriPassword\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass:\n \"mb-5 mt-5 has-text-light\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n placeholder: _vm.$t(\n \"Original password\"\n ),\n \"password-reveal\": \"\"\n },\n model: {\n value: _vm.oriPassword,\n callback: function($$v) {\n _vm.oriPassword = $$v\n },\n expression: \"oriPassword\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"password\",\n name: \"Password\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass:\n \"mb-5 mt-5 has-text-light\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n placeholder: _vm.$t(\n \"New password\"\n ),\n \"password-reveal\": \"\"\n },\n model: {\n value: _vm.password,\n callback: function($$v) {\n _vm.password = $$v\n },\n expression: \"password\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|confirmed:password\",\n name: \"Password Confirmation\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-4 mb-5\",\n attrs: {\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n placeholder: _vm.$t(\n \"Confirm the new password again\"\n ),\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return _vm.savePassword(\n _vm.savePassword\n )\n }\n },\n model: {\n value: _vm.confirmation,\n callback: function($$v) {\n _vm.confirmation = $$v\n },\n expression: \"confirmation\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n })\n ]\n : _vm._e()\n ],\n 2\n ),\n _c(\n \"footer\",\n {\n staticClass: \"modal-card-foot is-flex is-align-items-center\"\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _vm.state >= 2\n ? _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Back\"), rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.goto(1)\n }\n }\n })\n : _vm._e(),\n _vm.state == 2\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\",\n expaned: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.saveUser)\n }\n }\n })\n : _vm._e(),\n _vm.state == 3\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\",\n expaned: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.savePassword)\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n )\n ]\n }\n }\n ])\n }),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/AccountPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps.vue?vue&type=template&id=1cbdeda2&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps.vue?vue&type=template&id=1cbdeda2&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps.vue?vue&type=template&id=1cbdeda2& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps.vue?vue&type=template&id=1cbdeda2& ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"home-section has-text-left mt-6\" }, [\n _c(\"div\", { staticClass: \"title-bar is-flex is-align-items-center\" }, [\n _c(\"h1\", { staticClass: \"title is-4 has-text-white is-flex-shrink-1\" }, [\n _vm._v(_vm._s(_vm.$t(\"Apps\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"buttons \" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n id: \"v-step-0\",\n \"icon-left\": \"apps\",\n type: \"is-dark\",\n size: \"is-small\",\n loading: _vm.isShowing,\n rounded: \"\"\n },\n on: { click: _vm.showInstall }\n },\n [_vm._v(_vm._s(_vm.$t(\"App Store\")))]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n { staticClass: \"columns is-variable is-2 is-multiline app-list \" },\n [\n !_vm.isLoading\n ? [\n _vm.appList.length == 0\n ? _c(\"div\", { staticClass: \"column is-narrow is-3\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"wuji-card is-flex is-align-items-center is-justify-content-center p-55 app-card\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"has-text-centered is-flex is-justify-content-center is-flex-direction-column p-55 img-c\"\n },\n [\n _c(\n \"a\",\n {\n staticClass:\n \"is-flex is-justify-content-center\",\n on: { click: _vm.showInstall }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/add_button.svg */ \"./src/assets/img/add_button.svg\")\n }\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._l(_vm.appList, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"app-\" + index + item.icon + item.port,\n staticClass: \"column is-narrow is-3\"\n },\n [\n _c(\"app-card\", {\n attrs: { item: item },\n on: {\n updateState: _vm.getList,\n configApp: _vm.showConfigPanel\n }\n })\n ],\n 1\n )\n })\n ]\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"home-section has-text-left mt-6\" }, [\n _c(\"div\", { staticClass: \"title-bar is-flex is-align-items-center\" }, [\n _c(\"h1\", { staticClass: \"title is-4 has-text-white is-flex-shrink-1\" }, [\n _vm._v(_vm._s(_vm.$t(\"Apps\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"buttons \" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n id: \"v-step-0\",\n \"icon-left\": \"apps\",\n type: \"is-dark\",\n size: \"is-small\",\n loading: _vm.isShowing,\n rounded: \"\"\n },\n on: { click: _vm.showInstall }\n },\n [_vm._v(_vm._s(_vm.$t(\"App Store\")))]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n { staticClass: \"columns is-variable is-2 is-multiline app-list \" },\n [\n !_vm.isLoading\n ? [\n _vm.appList.length == 0\n ? _c(\"div\", { staticClass: \"column is-narrow is-3\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"wuji-card is-flex is-align-items-center is-justify-content-center p-55 app-card\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"has-text-centered is-flex is-justify-content-center is-flex-direction-column p-55 img-c\"\n },\n [\n _c(\n \"a\",\n {\n staticClass:\n \"is-flex is-justify-content-center\",\n on: { click: _vm.showInstall }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/add_button.svg */ \"./src/assets/img/add_button.svg\")\n }\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._l(_vm.appList, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"app-\" + index + item.icon + item.port,\n staticClass: \"column is-narrow is-3\"\n },\n [\n _c(\"app-card\", {\n attrs: { item: item },\n on: {\n updateState: _vm.getList,\n configApp: _vm.showConfigPanel\n }\n })\n ],\n 1\n )\n })\n ]\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppCard.vue?vue&type=template&id=0ef4e844&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppCard.vue?vue&type=template&id=0ef4e844&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps/AppCard.vue?vue&type=template&id=0ef4e844& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps/AppCard.vue?vue&type=template&id=0ef4e844& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass:\n \"wuji-card is-flex is-align-items-center is-justify-content-center p-55 app-card\",\n on: {\n mouseover: function($event) {\n _vm.hover = true\n },\n mouseleave: function($event) {\n _vm.hover = false\n }\n }\n },\n [\n _c(\n \"div\",\n { staticClass: \"action-btn\" },\n [\n _c(\n \"b-dropdown\",\n {\n ref: \"dro\",\n staticClass: \"ii\",\n attrs: {\n \"aria-role\": \"list\",\n triggers: [\"contextmenu\", \"click\"],\n position: \"is-bottom-left\",\n animation: \"slide-fade\",\n \"mobile-modal\": false\n },\n on: { \"active-change\": _vm.setDropState },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [_c(\"b-icon\", { attrs: { icon: \"dots-vertical\" } })],\n 1\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n attrs: {\n \"aria-role\": \"menu-item\",\n focusable: false,\n custom: \"\",\n paddingless: \"\"\n }\n },\n [\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-text\", tag: \"a\", expanded: \"\" },\n on: {\n click: function($event) {\n return _vm.openApp(_vm.item)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Open\")))]\n ),\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-text\", expanded: \"\" },\n on: { click: _vm.configApp }\n },\n [_vm._v(_vm._s(_vm.$t(\"Setting\")))]\n ),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isUninstalling\n },\n on: { click: _vm.uninstallConfirm }\n },\n [_vm._v(_vm._s(_vm.$t(\"Uninstall\")))]\n ),\n _c(\n \"div\",\n { staticClass: \"columns is-gapless bbor is-flex\" },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"column is-flex is-justify-content-center is-align-items-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n \"icon-left\": \"sync\",\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isRestarting\n },\n on: { click: _vm.restartApp }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"column is-flex is-justify-content-center is-align-items-center\"\n },\n [\n _c(\"b-button\", {\n class: _vm.item.state,\n attrs: {\n \"icon-left\": \"power-standby\",\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isStarting\n },\n on: {\n click: function($event) {\n return _vm.toggle(_vm.item)\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"has-text-centered is-flex is-justify-content-center is-flex-direction-column pt-3 pb-3 img-c\"\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"is-flex is-justify-content-center\",\n on: {\n click: function($event) {\n return _vm.openApp(_vm.item)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72\",\n class: _vm._f(\"dotClass\")(_vm.item.state),\n attrs: {\n src: _vm.item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"mt-4 one-line\" }, [\n _c(\n \"a\",\n {\n staticClass: \"one-line\",\n on: {\n click: function($event) {\n return _vm.openApp(_vm.item)\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.item.name) + \" \")]\n )\n ])\n ]\n ),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isUninstalling,\n callback: function($$v) {\n _vm.isUninstalling = $$v\n },\n expression: \"isUninstalling\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass:\n \"wuji-card is-flex is-align-items-center is-justify-content-center p-55 app-card\",\n on: {\n mouseover: function($event) {\n _vm.hover = true\n },\n mouseleave: function($event) {\n _vm.hover = false\n }\n }\n },\n [\n _c(\n \"div\",\n { staticClass: \"action-btn\" },\n [\n _c(\n \"b-dropdown\",\n {\n ref: \"dro\",\n staticClass: \"ii\",\n attrs: {\n \"aria-role\": \"list\",\n triggers: [\"contextmenu\", \"click\"],\n position: \"is-bottom-left\",\n animation: \"slide-fade\",\n \"mobile-modal\": false\n },\n on: { \"active-change\": _vm.setDropState },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [_c(\"b-icon\", { attrs: { icon: \"dots-vertical\" } })],\n 1\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n attrs: {\n \"aria-role\": \"menu-item\",\n focusable: false,\n custom: \"\",\n paddingless: \"\"\n }\n },\n [\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-text\", tag: \"a\", expanded: \"\" },\n on: {\n click: function($event) {\n return _vm.openApp(_vm.item)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Open\")))]\n ),\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-text\", expanded: \"\" },\n on: { click: _vm.configApp }\n },\n [_vm._v(_vm._s(_vm.$t(\"Setting\")))]\n ),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isUninstalling\n },\n on: { click: _vm.uninstallConfirm }\n },\n [_vm._v(_vm._s(_vm.$t(\"Uninstall\")))]\n ),\n _c(\n \"div\",\n { staticClass: \"columns is-gapless bbor is-flex\" },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"column is-flex is-justify-content-center is-align-items-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n \"icon-left\": \"sync\",\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isRestarting\n },\n on: { click: _vm.restartApp }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"column is-flex is-justify-content-center is-align-items-center\"\n },\n [\n _c(\"b-button\", {\n class: _vm.item.state,\n attrs: {\n \"icon-left\": \"power-standby\",\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isStarting\n },\n on: {\n click: function($event) {\n return _vm.toggle(_vm.item)\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"has-text-centered is-flex is-justify-content-center is-flex-direction-column pt-3 pb-3 img-c\"\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"is-flex is-justify-content-center\",\n on: {\n click: function($event) {\n return _vm.openApp(_vm.item)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72\",\n class: _vm._f(\"dotClass\")(_vm.item.state),\n attrs: {\n src: _vm.item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"mt-4 one-line\" }, [\n _c(\n \"a\",\n {\n staticClass: \"one-line\",\n on: {\n click: function($event) {\n return _vm.openApp(_vm.item)\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.item.name) + \" \")]\n )\n ])\n ]\n ),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isUninstalling,\n callback: function($$v) {\n _vm.isUninstalling = $$v\n },\n expression: \"isUninstalling\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppSideBar.vue?vue&type=template&id=7e7fa090&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppSideBar.vue?vue&type=template&id=7e7fa090&":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps/AppSideBar.vue?vue&type=template&id=7e7fa090& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps/AppSideBar.vue?vue&type=template&id=7e7fa090& ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"app-sidebar\", class: { \"no-event\": _vm.isOpen } },\n [\n _c(\n \"transition\",\n {\n attrs: { name: _vm.transitionName },\n on: {\n \"before-enter\": _vm.beforeEnter,\n \"after-enter\": _vm.afterEnter,\n enter: _vm.enter\n }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isOpen,\n expression: \"isOpen\"\n }\n ],\n ref: \"sidebarContent\",\n staticClass: \"sidebar-content\",\n class: _vm.rootClasses\n },\n [_vm._t(\"default\", null, { close: _vm.close })],\n 2\n )\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppSideBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"app-sidebar\", class: { \"no-event\": _vm.isOpen } },\n [\n _c(\n \"transition\",\n {\n attrs: { name: _vm.transitionName },\n on: {\n \"before-enter\": _vm.beforeEnter,\n \"after-enter\": _vm.afterEnter,\n enter: _vm.enter\n }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isOpen,\n expression: \"isOpen\"\n }\n ],\n ref: \"sidebarContent\",\n staticClass: \"sidebar-content\",\n class: _vm.rootClasses\n },\n [_vm._t(\"default\", null, { close: _vm.close })],\n 2\n )\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppSideBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppTerminalPanel.vue?vue&type=template&id=a489bf38&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppTerminalPanel.vue?vue&type=template&id=a489bf38&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps/AppTerminalPanel.vue?vue&type=template&id=a489bf38& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Apps/AppTerminalPanel.vue?vue&type=template&id=a489bf38& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n _c(\"h2\", { staticClass: \"title is-4\" }, [_vm._v(_vm._s(_vm.appName))]),\n _c(\n \"div\",\n { staticClass: \"flex1\" },\n [\n _c(\n \"b-tabs\",\n { attrs: { animated: false }, on: { input: _vm.onInput } },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Terminal\"), value: \"terminal\" } },\n [\n _c(\"terminal-card\", {\n ref: \"terminal\",\n attrs: { wsUrl: _vm.wsUrl }\n })\n ],\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Logs\"), value: \"logs\" } },\n [\n _c(\"logs-card\", {\n ref: \"logs\",\n attrs: { data: _vm.logData }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ]),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppTerminalPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n _c(\"h2\", { staticClass: \"title is-4\" }, [_vm._v(_vm._s(_vm.appName))]),\n _c(\n \"div\",\n { staticClass: \"flex1\" },\n [\n _c(\n \"b-tabs\",\n { attrs: { animated: false }, on: { input: _vm.onInput } },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Terminal\"), value: \"terminal\" } },\n [\n _c(\"terminal-card\", {\n ref: \"terminal\",\n attrs: { wsUrl: _vm.wsUrl }\n })\n ],\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Logs\"), value: \"logs\" } },\n [\n _c(\"logs-card\", {\n ref: \"logs\",\n attrs: { data: _vm.logData }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ]),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppTerminalPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CoreService.vue?vue&type=template&id=5da81dd4&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CoreService.vue?vue&type=template&id=5da81dd4&":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/CoreService.vue?vue&type=template&id=5da81dd4& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/CoreService.vue?vue&type=template&id=5da81dd4& ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \" home-section has-text-left mt-55\" }, [\n _c(\n \"div\",\n { staticClass: \"columns is-variable is-2 is-multiline suggestion-list\" },\n [\n !_vm.isLoading\n ? [\n _vm.isSyncConfigLoaded ? _c(\"sync-block\") : _vm._e(),\n _c(\"smart-block\")\n ]\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/CoreService.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \" home-section has-text-left mt-55\" }, [\n _c(\n \"div\",\n { staticClass: \"columns is-variable is-2 is-multiline suggestion-list\" },\n [\n !_vm.isLoading\n ? [\n _vm.isSyncConfigLoaded ? _c(\"sync-block\") : _vm._e(),\n _c(\"smart-block\")\n ]\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/CoreService.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/LogsCard.vue?vue&type=template&id=44dac3e2&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/LogsCard.vue?vue&type=template&id=44dac3e2&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LogsCard.vue?vue&type=template&id=44dac3e2& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LogsCard.vue?vue&type=template&id=44dac3e2& ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fullscreen\",\n {\n staticClass: \"fullScreen pl-2 pt-2 pb-2\",\n class: { \"mt-5\": !_vm.fullscreen },\n attrs: { fullscreen: _vm.fullscreen, teleport: true, \"page-only\": true },\n on: {\n \"update:fullscreen\": function($event) {\n _vm.fullscreen = $event\n },\n change: _vm.onWindowResize\n }\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"fullscreen-button\",\n on: { click: _vm.toggleFullScreen }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.buttonIcon } })],\n 1\n ),\n _c(\"div\", { staticClass: \"logs scrollbars\", attrs: { id: \"logs\" } }, [\n _c(\"div\", { domProps: { innerHTML: _vm._s(_vm.data) } })\n ])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/LogsCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fullscreen\",\n {\n staticClass: \"fullScreen pl-2 pt-2 pb-2\",\n class: { \"mt-5\": !_vm.fullscreen },\n attrs: { fullscreen: _vm.fullscreen, teleport: true, \"page-only\": true },\n on: {\n \"update:fullscreen\": function($event) {\n _vm.fullscreen = $event\n },\n change: _vm.onWindowResize\n }\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"fullscreen-button\",\n on: { click: _vm.toggleFullScreen }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.buttonIcon } })],\n 1\n ),\n _c(\"div\", { staticClass: \"logs scrollbars\", attrs: { id: \"logs\" } }, [\n _c(\"div\", { domProps: { innerHTML: _vm._s(_vm.data) } })\n ])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/LogsCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Panel.vue?vue&type=template&id=d32d57f8&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Panel.vue?vue&type=template&id=d32d57f8&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Panel.vue?vue&type=template&id=d32d57f8& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Panel.vue?vue&type=template&id=d32d57f8& ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"modal-card app-card\",\n class: { narrow: _vm.currentSlide > 0 }\n },\n [\n _c(\"app-side-bar\", {\n attrs: { overlay: true, position: \"absolute\", right: true },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function(ref) {\n var close = ref.close\n return [\n _c(\"div\", { staticClass: \"modal-card app-detial\" }, [\n _c(\n \"header\",\n {\n staticClass: \"modal-card-head\",\n staticStyle: { background: \"#ff000\" }\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"button is-ghost auto-height pl-0 pt-0 pb-0\",\n on: { click: close }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: { icon: \"chevron-left\", size: \"is-medium\" }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"Back\")) + \" \")\n ],\n 1\n )\n ])\n ]\n ),\n _c(\n \"section\",\n {\n staticClass: \"modal-card-body\",\n attrs: { id: \"ss-content\" }\n },\n [\n _c(\n \"div\",\n { staticClass: \"app-header is-flex pb-4 b-line\" },\n [\n _c(\n \"div\",\n { staticClass: \"header-icon mr-5\" },\n [\n _c(\"b-image\", {\n key: _vm.detailData.icon,\n staticClass: \"is-128x128 icon-shadow\",\n attrs: {\n src: _vm.detailData.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"flex1 is-flex is-align-items-center\"\n },\n [\n _c(\"div\", [\n _c(\n \"h4\",\n { staticClass: \"title store-title is-4 \" },\n [_vm._v(_vm._s(_vm.detailData.title))]\n ),\n _c(\n \"p\",\n {\n staticClass: \"subtitle is-size-66 two-line\"\n },\n [_vm._v(_vm._s(_vm.detailData.tagline))]\n ),\n _c(\n \"p\",\n { staticClass: \"description\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary\",\n size: \"is-normal\",\n loading:\n _vm.detailData.id ==\n _vm.currentInstallId,\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(\n _vm.detailData.id\n )\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ],\n 1\n )\n ])\n ]\n )\n ]\n ),\n _c(\"nav\", { staticClass: \"level is-mobile mt-4\" }, [\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading\" }, [\n _vm._v(_vm._s(_vm.$t(\"CATEGORY\")))\n ]),\n _c(\n \"p\",\n { staticClass: \"title\" },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: _vm.detailData.category_font,\n \"custom-size\": \"mdi-36px\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(_vm._s(_vm.detailData.category))\n ])\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading\" }, [\n _vm._v(_vm._s(_vm.$t(\"DEVELOPER\")))\n ]),\n _c(\n \"p\",\n { staticClass: \"title\" },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: \"account-circle-outline\",\n \"custom-size\": \"mdi-36px\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(_vm._s(_vm.detailData.developer))\n ])\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading \" }, [\n _c(\n \"span\",\n { staticClass: \"is-hidden-mobile\" },\n [_vm._v(_vm._s(_vm.$t(\"REQUIRE\")) + \" \")]\n ),\n _vm._v(_vm._s(_vm.$t(\"MEMORY\")))\n ]),\n _c(\"p\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.detailData.min_memory))\n ]),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(\"MB\")\n ])\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading\" }, [\n _c(\n \"span\",\n { staticClass: \"is-hidden-mobile\" },\n [_vm._v(_vm._s(_vm.$t(\"REQUIRE\")) + \" \")]\n ),\n _vm._v(_vm._s(_vm.$t(\"DISK\")))\n ]),\n _c(\"p\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.detailData.min_disk))\n ]),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(\"MB\")\n ])\n ])\n ]\n )\n ]),\n _vm.showDetailSwiper\n ? _c(\n \"div\",\n { staticClass: \"is-relative\" },\n [\n _c(\n \"swiper\",\n {\n ref: \"infoSwiper\",\n staticClass:\n \"swiper swiper-responsive-breakpoints\",\n attrs: { options: _vm.swiperOptions }\n },\n _vm._l(_vm.detailData.screenshot_link, function(\n item\n ) {\n return _c(\n \"swiper-slide\",\n { key: \"sc\" + item },\n [\n _c(\n \"div\",\n { staticClass: \"gap\" },\n [\n _c(\"b-image\", {\n staticClass: \"border-8\",\n attrs: {\n src: item,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/swiper_placeholder.png */ \"./src/assets/img/swiper_placeholder.png\"),\n placeholder: \"\",\n ratio: \"16by9\"\n }\n })\n ],\n 1\n )\n ]\n )\n }),\n 1\n ),\n _c(\"div\", {\n staticClass: \"swiper-button-prev\",\n class: {\n \"swiper-button-disabled\": _vm.disPrev\n },\n on: {\n click: function($event) {\n return _vm.$refs.infoSwiper.$swiper.slidePrev()\n }\n }\n }),\n _c(\"div\", {\n staticClass: \"swiper-button-next\",\n class: {\n \"swiper-button-disabled\": _vm.disNext\n },\n on: {\n click: function($event) {\n return _vm.$refs.infoSwiper.$swiper.slideNext()\n }\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _c(\"div\", { staticClass: \"app-desc mt-4 mb-6\" }, [\n _c(\n \"p\",\n { staticClass: \"is-size-66 mb-2 un-break-word\" },\n [_vm._v(_vm._s(_vm.detailData.tagline))]\n ),\n _c(\"p\", { staticClass: \"is-size-66 un-break-word\" }, [\n _vm._v(_vm._s(_vm.detailData.description))\n ])\n ])\n ]\n )\n ])\n ]\n }\n }\n ]),\n model: {\n value: _vm.sidebarOpen,\n callback: function($$v) {\n _vm.sidebarOpen = $$v\n },\n expression: \"sidebarOpen\"\n }\n }),\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.panelTitle))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _vm.currentSlide == 0\n ? _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"view-grid-plus\",\n size: \"is-small\",\n type: \"is-primary\",\n label: _vm.$t(\"Custom Install\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n _vm.currentSlide = 1\n }\n }\n })\n : _vm._e(),\n _vm.showImportButton\n ? _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Import\"),\n position: \"is-bottom\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button mdi mdi-import\",\n attrs: { type: \"button\" },\n on: { click: _vm.showImportPanel }\n })\n ]\n )\n : _vm._e(),\n _vm.showTerminalButton\n ? _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Terminal & Logs\"),\n position: \"is-bottom\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button mdi mdi-console\",\n attrs: { type: \"button\" },\n on: { click: _vm.showTerminalPanel }\n })\n ]\n )\n : _vm._e(),\n _vm.showExportButton\n ? _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Export AppFile\"),\n position: \"is-bottom\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button mdi mdi-export-variant\",\n attrs: { type: \"button\" },\n on: { click: _vm.exportJSON }\n })\n ]\n )\n : _vm._e(),\n _vm.currentSlide < 2\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center modal-close-container modal-close-container-line\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]\n )\n : _vm._e()\n ],\n 1\n )\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body\" },\n [\n _vm.currentSlide == 0\n ? _c(\n \"section\",\n [\n _vm.recommendList.length > 0\n ? [\n _c(\n \"h3\",\n { staticClass: \"title is-5 has-text-weight-normal\" },\n [_vm._v(_vm._s(_vm.$t(\"Featured Apps\")))]\n ),\n _c(\n \"div\",\n {\n staticClass: \"is-relative featured-app b-line pb-5\"\n },\n [\n _c(\n \"swiper\",\n {\n ref: \"featureSwiper\",\n staticClass: \"swiper \",\n attrs: { options: _vm.featureSwiperOptions }\n },\n _vm._l(_vm.recommendList, function(item, index) {\n return _c(\n \"swiper-slide\",\n { key: index + item.title + item.id },\n [\n _c(\n \"div\",\n {\n staticClass: \"gap\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"border-8 is-clickable\",\n attrs: {\n src: item.thumbnail,\n ratio: \"16by9\",\n \"src-fallback\": __webpack_require__(/*! @/assets/img/swiper_placeholder.png */ \"./src/assets/img/swiper_placeholder.png\"),\n placeholder: \"\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex pt-5 is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass: \" mr-3\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(\n item.id\n )\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass:\n \"is-48x48 is-clickable\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(\n item.id\n )\n }\n }\n },\n [\n _c(\n \"h6\",\n {\n staticClass: \"title is-6 mb-2 \"\n },\n [_vm._v(_vm._s(item.title))]\n ),\n _c(\n \"p\",\n {\n staticClass:\n \"is-size-7 two-line\"\n },\n [_vm._v(_vm._s(item.tagline))]\n )\n ]\n ),\n _c(\n \"div\",\n [\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary is-light\",\n size: \"is-small\",\n rounded: \"\",\n loading:\n item.id ==\n _vm.currentInstallId\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(\n item.id\n )\n }\n }\n },\n [\n _vm._v(\n _vm._s(_vm.$t(\"Install\"))\n )\n ]\n )\n ],\n 1\n )\n ]\n )\n ]\n )\n }),\n 1\n ),\n _c(\"div\", {\n staticClass: \"swiper-button-prev\",\n class: {\n \"swiper-button-disabled\": _vm.disFeaturedPrev\n },\n on: {\n click: function($event) {\n return _vm.$refs.featureSwiper.$swiper.slidePrev()\n }\n }\n }),\n _c(\"div\", {\n staticClass: \"swiper-button-next\",\n class: {\n \"swiper-button-disabled\": _vm.disFeaturedNext\n },\n on: {\n click: function($event) {\n return _vm.$refs.featureSwiper.$swiper.slideNext()\n }\n }\n })\n ],\n 1\n )\n ]\n : _vm._e(),\n _c(\"div\", { staticClass: \"is-flex mt-5 mb-5\" }, [\n _c(\n \"div\",\n { staticClass: \"flex1\" },\n [\n _c(\n \"b-dropdown\",\n {\n staticClass: \"app-select\",\n attrs: {\n \"aria-role\": \"list\",\n position: \"is-bottom-right\",\n animation: \"slide\",\n \"mobile-modal\": false\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"trigger\",\n fn: function(ref) {\n var active = ref.active\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"button is-text auto-height pl-0 pt-0 pb-0 \"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1 ml-0\",\n attrs: {\n icon: _vm.currentCate.font,\n size: \"is-small\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm.currentCate.name) +\n \" \"\n ),\n _c(\"b-icon\", {\n staticClass: \"ml-1\",\n attrs: {\n icon: \"menu-down\",\n size: \"is-normal\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 1687565433\n ),\n model: {\n value: _vm.currentCate,\n callback: function($$v) {\n _vm.currentCate = $$v\n },\n expression: \"currentCate\"\n }\n },\n _vm._l(_vm.cateMenu, function(menu) {\n return _c(\n \"b-dropdown-item\",\n {\n key: menu.id,\n class:\n menu.id == _vm.currentCate.id\n ? \"is-active\"\n : \"\",\n attrs: {\n value: menu,\n \"aria-role\": \"listitem\",\n \"data-title\": menu.count\n }\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"media is-align-items-center is-flex\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: menu.font,\n size: \"is-small\"\n }\n }),\n _c(\n \"div\",\n { staticClass: \"media-content\" },\n [_c(\"h3\", [_vm._v(_vm._s(menu.name))])]\n )\n ],\n 1\n )\n ]\n )\n }),\n 1\n )\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _vm._v(\" \" + _vm._s(_vm.$t(\"Sort by\")) + \": \"),\n _c(\n \"b-dropdown\",\n {\n staticClass: \"app-select\",\n attrs: {\n \"aria-role\": \"list\",\n position: \"is-bottom-left\",\n animation: \"slide\",\n \"mobile-modal\": false\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"trigger\",\n fn: function(ref) {\n var active = ref.active\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"button is-text auto-height pl-0 pt-0 pb-0 is-size-65\"\n },\n [\n _vm._v(\n \" \" +\n _vm._s(_vm.currentSort.name) +\n \" \"\n ),\n _c(\"b-icon\", {\n staticClass: \"ml-1\",\n attrs: {\n icon: \"menu-down\",\n size: \"is-normal\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 891850973\n ),\n model: {\n value: _vm.currentSort,\n callback: function($$v) {\n _vm.currentSort = $$v\n },\n expression: \"currentSort\"\n }\n },\n _vm._l(_vm.sortMenu, function(menu, index) {\n return _c(\n \"b-dropdown-item\",\n {\n key: \"sort_\" + index,\n class:\n menu.slash == _vm.currentSort.slash\n ? \"is-active\"\n : \"\",\n attrs: { value: menu, \"aria-role\": \"listitem\" }\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"media align-items-center is-flex\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"media-content\" },\n [_c(\"h3\", [_vm._v(_vm._s(menu.name))])]\n )\n ]\n )\n ]\n )\n }),\n 1\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"columns f-list is-multiline is-mobile pb-3 mb-5\"\n },\n _vm._l(_vm.pageList, function(item, index) {\n return _c(\n \"div\",\n {\n key: index + item.title + item.id,\n staticClass: \"column is-one-quarter\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\n \"div\",\n {\n staticClass: \"list-icon mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72 icon-shadow\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"flex1 mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"h6\", { staticClass: \"title is-6 mb-2\" }, [\n _vm._v(_vm._s(item.title))\n ]),\n _c(\n \"p\",\n { staticClass: \"is-size-7 two-line\" },\n [_vm._v(_vm._s(item.tagline))]\n )\n ]\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"mt-1 ml-7 is-flex is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 is-size-7 has-text-grey-light\\t\"\n },\n [_vm._v(_vm._s(item.category))]\n ),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary is-light\",\n size: \"is-small\",\n rounded: \"\",\n loading: item.id == _vm.currentInstallId\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(item.id)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ],\n 1\n )\n ]\n )\n }),\n 0\n ),\n _vm.communityList.length > 0\n ? [\n _c(\n \"h3\",\n { staticClass: \"title is-5 has-text-weight-normal\" },\n [_vm._v(_vm._s(_vm.$t(\"Community Apps\")))]\n ),\n _c(\n \"h3\",\n { staticClass: \"subtitle is-7 has-text-grey-light\" },\n [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\"\n )\n )\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"columns f-list is-multiline is-mobile pb-3 mb-5\"\n },\n _vm._l(_vm.communityList, function(item, index) {\n return _c(\n \"div\",\n {\n key: index + item.title + item.id,\n staticClass: \"column is-one-quarter\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"list-icon mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72 icon-shadow\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"flex1 mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\n \"h6\",\n { staticClass: \"title is-6 mb-2\" },\n [_vm._v(_vm._s(item.title))]\n ),\n _c(\n \"p\",\n { staticClass: \"is-size-7 two-line\" },\n [_vm._v(_vm._s(item.tagline))]\n )\n ]\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"mt-1 ml-7 is-flex is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 is-size-7 has-text-grey-light\\t\"\n },\n [_vm._v(_vm._s(item.category))]\n ),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary is-light\",\n size: \"is-small\",\n rounded: \"\",\n loading:\n item.id == _vm.currentInstallId\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(item.id)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ],\n 1\n )\n ]\n )\n }),\n 0\n )\n ]\n : _vm._e()\n ],\n 2\n )\n : _vm._e(),\n _vm.currentSlide == 1\n ? _c(\n \"section\",\n [\n _c(\n \"ValidationObserver\",\n { ref: \"ob1\" },\n [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"Image\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"Docker Image\") + \" *\",\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\n \"e.g.,hello-world:latest\"\n ),\n readonly: _vm.state == \"update\"\n },\n on: { input: _vm.changeIcon },\n model: {\n value: _vm.initData.image,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"image\", $$v)\n },\n expression: \"initData.image\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 3994570334\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"Name\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"App name\") + \" *\",\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: errors\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n value: \"\",\n placeholder: _vm.$t(\n \"Your custom App Name\"\n )\n },\n model: {\n value: _vm.initData.label,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"label\", $$v)\n },\n expression: \"initData.label\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 133168582\n )\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Icon URL\") } },\n [\n _c(\"b-input\", {\n attrs: {\n value: \"\",\n placeholder: _vm.$t(\"Your custom icon URL\")\n },\n model: {\n value: _vm.initData.icon,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"icon\", $$v)\n },\n expression: \"initData.icon\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: \"Web UI\" } },\n [\n _c(\"p\", { staticClass: \"control\" }, [\n _c(\"span\", { staticClass: \"button is-static\" }, [\n _vm._v(_vm._s(_vm.baseUrl))\n ])\n ]),\n _c(\"b-input\", {\n attrs: {\n placeholder: \"port[/path/to/index.html]\",\n expanded: \"\"\n },\n model: {\n value: _vm.webui,\n callback: function($$v) {\n _vm.webui = $$v\n },\n expression: \"webui\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Network\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: { placeholder: \"Select\", expanded: \"\" },\n model: {\n value: _vm.initData.network_model,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"network_model\", $$v)\n },\n expression: \"initData.network_model\"\n }\n },\n _vm._l(_vm.networks, function(net) {\n return _c(\n \"optgroup\",\n {\n key: net.driver,\n attrs: { label: net.driver }\n },\n _vm._l(net.networks, function(option, index) {\n return _c(\n \"option\",\n {\n key: option.name + index,\n domProps: { value: option.name }\n },\n [_vm._v(\" \" + _vm._s(option.name) + \" \")]\n )\n }),\n 0\n )\n }),\n 0\n )\n ],\n 1\n ),\n _vm.showPorts\n ? _c(\"ports\", {\n attrs: { showHostPost: _vm.showHostPort },\n model: {\n value: _vm.initData.ports,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"ports\", $$v)\n },\n expression: \"initData.ports\"\n }\n })\n : _vm._e(),\n _c(\"input-group\", {\n attrs: {\n type: \"volume\",\n label: _vm.$t(\"Volumes\"),\n message: _vm.$t(\n \"No volumes now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.volumes,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"volumes\", $$v)\n },\n expression: \"initData.volumes\"\n }\n }),\n _c(\"env-input-group\", {\n attrs: {\n label: _vm.$t(\"Environment Variables\"),\n message: _vm.$t(\n \"No environment variables now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.envs,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"envs\", $$v)\n },\n expression: \"initData.envs\"\n }\n }),\n _c(\"input-group\", {\n attrs: {\n type: \"device\",\n label: _vm.$t(\"Devices\"),\n message: _vm.$t(\n \"No devices now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.devices,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"devices\", $$v)\n },\n expression: \"initData.devices\"\n }\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Memory Limit\") } },\n [\n _c(\"vue-slider\", {\n attrs: { min: 256, max: _vm.totalMemory },\n model: {\n value: _vm.initData.memory,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"memory\", $$v)\n },\n expression: \"initData.memory\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"CPU Shares\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Select\"),\n expanded: \"\"\n },\n model: {\n value: _vm.initData.cpu_shares,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"cpu_shares\", $$v)\n },\n expression: \"initData.cpu_shares\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"10\" } }, [\n _vm._v(_vm._s(_vm.$t(\"Low\")))\n ]),\n _c(\"option\", { attrs: { value: \"50\" } }, [\n _vm._v(_vm._s(_vm.$t(\"Medium\")))\n ]),\n _c(\"option\", { attrs: { value: \"90\" } }, [\n _vm._v(_vm._s(_vm.$t(\"High\")))\n ])\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Restart Policy\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Select\"),\n expanded: \"\"\n },\n model: {\n value: _vm.initData.restart,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"restart\", $$v)\n },\n expression: \"initData.restart\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"on-failure\" } }, [\n _vm._v(\"on-failure\")\n ]),\n _c(\"option\", { attrs: { value: \"always\" } }, [\n _vm._v(\"always\")\n ]),\n _c(\n \"option\",\n { attrs: { value: \"unless-stopped\" } },\n [_vm._v(\"unless-stopped\")]\n )\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"App Description\") } },\n [\n _c(\"b-input\", {\n model: {\n value: _vm.initData.description,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"description\", $$v)\n },\n expression: \"initData.description\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.currentSlide == 2\n ? _c(\"section\", [\n _c(\"div\", { staticClass: \"installing-warpper\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"install-animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/rocket-launching.json */ \"./src/assets/ani/rocket-launching.json\"),\n loop: true,\n autoPlay: true\n }\n })\n ],\n 1\n ),\n _c(\"h3\", {\n staticClass: \"title is-6 has-text-centered\",\n class: {\n \"has-text-danger\": _vm.errorType == 3,\n \"has-text-black\": _vm.errorType != 3\n },\n domProps: { innerHTML: _vm._s(_vm.installText) }\n })\n ])\n ])\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n ),\n _c(\n \"footer\",\n {\n staticClass: \"modal-card-foot is-flex is-align-items-center \",\n class: { \"is-justify-content-center\": _vm.currentSlide == 0 }\n },\n [\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _vm.currentSlide == 2 && _vm.errorType == 3\n ? _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Back\"), rounded: \"\" },\n on: { click: _vm.prevStep }\n })\n : _vm._e(),\n _vm.currentSlide == 1 && _vm.state == \"install\"\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Install\"),\n type: \"is-primary\",\n rounded: \"\",\n loading: _vm.isLoading\n },\n on: {\n click: function($event) {\n return _vm.installApp()\n }\n }\n })\n : _vm._e(),\n _vm.currentSlide == 1 && _vm.state == \"update\"\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Save\"),\n type: \"is-primary\",\n rounded: \"\",\n loading: _vm.isLoading\n },\n on: {\n click: function($event) {\n return _vm.updateApp()\n }\n }\n })\n : _vm._e(),\n _vm.currentSlide == 2 &&\n (_vm.errorType == 1 || _vm.errorType == 4)\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(_vm.cancelButtonText),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n ],\n 2\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Panel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"modal-card app-card\",\n class: { narrow: _vm.currentSlide > 0 }\n },\n [\n _c(\"app-side-bar\", {\n attrs: { overlay: true, position: \"absolute\", right: true },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function(ref) {\n var close = ref.close\n return [\n _c(\"div\", { staticClass: \"modal-card app-detial\" }, [\n _c(\n \"header\",\n {\n staticClass: \"modal-card-head\",\n staticStyle: { background: \"#ff000\" }\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"button is-ghost auto-height pl-0 pt-0 pb-0\",\n on: { click: close }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: { icon: \"chevron-left\", size: \"is-medium\" }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"Back\")) + \" \")\n ],\n 1\n )\n ])\n ]\n ),\n _c(\n \"section\",\n {\n staticClass: \"modal-card-body\",\n attrs: { id: \"ss-content\" }\n },\n [\n _c(\n \"div\",\n { staticClass: \"app-header is-flex pb-4 b-line\" },\n [\n _c(\n \"div\",\n { staticClass: \"header-icon mr-5\" },\n [\n _c(\"b-image\", {\n key: _vm.detailData.icon,\n staticClass: \"is-128x128 icon-shadow\",\n attrs: {\n src: _vm.detailData.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"flex1 is-flex is-align-items-center\"\n },\n [\n _c(\"div\", [\n _c(\n \"h4\",\n { staticClass: \"title store-title is-4 \" },\n [_vm._v(_vm._s(_vm.detailData.title))]\n ),\n _c(\n \"p\",\n {\n staticClass: \"subtitle is-size-66 two-line\"\n },\n [_vm._v(_vm._s(_vm.detailData.tagline))]\n ),\n _c(\n \"p\",\n { staticClass: \"description\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary\",\n size: \"is-normal\",\n loading:\n _vm.detailData.id ==\n _vm.currentInstallId,\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(\n _vm.detailData.id\n )\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ],\n 1\n )\n ])\n ]\n )\n ]\n ),\n _c(\"nav\", { staticClass: \"level is-mobile mt-4\" }, [\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading\" }, [\n _vm._v(_vm._s(_vm.$t(\"CATEGORY\")))\n ]),\n _c(\n \"p\",\n { staticClass: \"title\" },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: _vm.detailData.category_font,\n \"custom-size\": \"mdi-36px\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(_vm._s(_vm.detailData.category))\n ])\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading\" }, [\n _vm._v(_vm._s(_vm.$t(\"DEVELOPER\")))\n ]),\n _c(\n \"p\",\n { staticClass: \"title\" },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: \"account-circle-outline\",\n \"custom-size\": \"mdi-36px\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(_vm._s(_vm.detailData.developer))\n ])\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading \" }, [\n _c(\n \"span\",\n { staticClass: \"is-hidden-mobile\" },\n [_vm._v(_vm._s(_vm.$t(\"REQUIRE\")) + \" \")]\n ),\n _vm._v(_vm._s(_vm.$t(\"MEMORY\")))\n ]),\n _c(\"p\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.detailData.min_memory))\n ]),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(\"MB\")\n ])\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"level-item has-text-centered\" },\n [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"heading\" }, [\n _c(\n \"span\",\n { staticClass: \"is-hidden-mobile\" },\n [_vm._v(_vm._s(_vm.$t(\"REQUIRE\")) + \" \")]\n ),\n _vm._v(_vm._s(_vm.$t(\"DISK\")))\n ]),\n _c(\"p\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.detailData.min_disk))\n ]),\n _c(\"p\", { staticClass: \"footing is-size-65\" }, [\n _vm._v(\"MB\")\n ])\n ])\n ]\n )\n ]),\n _vm.showDetailSwiper\n ? _c(\n \"div\",\n { staticClass: \"is-relative\" },\n [\n _c(\n \"swiper\",\n {\n ref: \"infoSwiper\",\n staticClass:\n \"swiper swiper-responsive-breakpoints\",\n attrs: { options: _vm.swiperOptions }\n },\n _vm._l(_vm.detailData.screenshot_link, function(\n item\n ) {\n return _c(\n \"swiper-slide\",\n { key: \"sc\" + item },\n [\n _c(\n \"div\",\n { staticClass: \"gap\" },\n [\n _c(\"b-image\", {\n staticClass: \"border-8\",\n attrs: {\n src: item,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/swiper_placeholder.png */ \"./src/assets/img/swiper_placeholder.png\"),\n placeholder: \"\",\n ratio: \"16by9\"\n }\n })\n ],\n 1\n )\n ]\n )\n }),\n 1\n ),\n _c(\"div\", {\n staticClass: \"swiper-button-prev\",\n class: {\n \"swiper-button-disabled\": _vm.disPrev\n },\n on: {\n click: function($event) {\n return _vm.$refs.infoSwiper.$swiper.slidePrev()\n }\n }\n }),\n _c(\"div\", {\n staticClass: \"swiper-button-next\",\n class: {\n \"swiper-button-disabled\": _vm.disNext\n },\n on: {\n click: function($event) {\n return _vm.$refs.infoSwiper.$swiper.slideNext()\n }\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _c(\"div\", { staticClass: \"app-desc mt-4 mb-6\" }, [\n _c(\n \"p\",\n { staticClass: \"is-size-66 mb-2 un-break-word\" },\n [_vm._v(_vm._s(_vm.detailData.tagline))]\n ),\n _c(\"p\", { staticClass: \"is-size-66 un-break-word\" }, [\n _vm._v(_vm._s(_vm.detailData.description))\n ])\n ])\n ]\n )\n ])\n ]\n }\n }\n ]),\n model: {\n value: _vm.sidebarOpen,\n callback: function($$v) {\n _vm.sidebarOpen = $$v\n },\n expression: \"sidebarOpen\"\n }\n }),\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.panelTitle))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _vm.currentSlide == 0\n ? _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"view-grid-plus\",\n size: \"is-small\",\n type: \"is-primary\",\n label: _vm.$t(\"Custom Install\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n _vm.currentSlide = 1\n }\n }\n })\n : _vm._e(),\n _vm.showImportButton\n ? _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Import\"),\n position: \"is-bottom\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button mdi mdi-import\",\n attrs: { type: \"button\" },\n on: { click: _vm.showImportPanel }\n })\n ]\n )\n : _vm._e(),\n _vm.showTerminalButton\n ? _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Terminal & Logs\"),\n position: \"is-bottom\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button mdi mdi-console\",\n attrs: { type: \"button\" },\n on: { click: _vm.showTerminalPanel }\n })\n ]\n )\n : _vm._e(),\n _vm.showExportButton\n ? _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Export AppFile\"),\n position: \"is-bottom\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button mdi mdi-export-variant\",\n attrs: { type: \"button\" },\n on: { click: _vm.exportJSON }\n })\n ]\n )\n : _vm._e(),\n _vm.currentSlide < 2\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center modal-close-container modal-close-container-line\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]\n )\n : _vm._e()\n ],\n 1\n )\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body\" },\n [\n _vm.currentSlide == 0\n ? _c(\n \"section\",\n [\n _vm.recommendList.length > 0\n ? [\n _c(\n \"h3\",\n { staticClass: \"title is-5 has-text-weight-normal\" },\n [_vm._v(_vm._s(_vm.$t(\"Featured Apps\")))]\n ),\n _c(\n \"div\",\n {\n staticClass: \"is-relative featured-app b-line pb-5\"\n },\n [\n _c(\n \"swiper\",\n {\n ref: \"featureSwiper\",\n staticClass: \"swiper \",\n attrs: { options: _vm.featureSwiperOptions }\n },\n _vm._l(_vm.recommendList, function(item, index) {\n return _c(\n \"swiper-slide\",\n { key: index + item.title + item.id },\n [\n _c(\n \"div\",\n {\n staticClass: \"gap\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"border-8 is-clickable\",\n attrs: {\n src: item.thumbnail,\n ratio: \"16by9\",\n \"src-fallback\": __webpack_require__(/*! @/assets/img/swiper_placeholder.png */ \"./src/assets/img/swiper_placeholder.png\"),\n placeholder: __webpack_require__(/*! @/assets/img/swiper_placeholder.png */ \"./src/assets/img/swiper_placeholder.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex pt-5 is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass: \" mr-3\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(\n item.id\n )\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass:\n \"is-48x48 is-clickable\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n placeholder: __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(\n item.id\n )\n }\n }\n },\n [\n _c(\n \"h6\",\n {\n staticClass: \"title is-6 mb-2 \"\n },\n [_vm._v(_vm._s(item.title))]\n ),\n _c(\n \"p\",\n {\n staticClass:\n \"is-size-7 two-line\"\n },\n [_vm._v(_vm._s(item.tagline))]\n )\n ]\n ),\n _c(\n \"div\",\n [\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary is-light\",\n size: \"is-small\",\n rounded: \"\",\n loading:\n item.id ==\n _vm.currentInstallId\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(\n item.id\n )\n }\n }\n },\n [\n _vm._v(\n _vm._s(_vm.$t(\"Install\"))\n )\n ]\n )\n ],\n 1\n )\n ]\n )\n ]\n )\n }),\n 1\n ),\n _c(\"div\", {\n staticClass: \"swiper-button-prev\",\n class: {\n \"swiper-button-disabled\": _vm.disFeaturedPrev\n },\n on: {\n click: function($event) {\n return _vm.$refs.featureSwiper.$swiper.slidePrev()\n }\n }\n }),\n _c(\"div\", {\n staticClass: \"swiper-button-next\",\n class: {\n \"swiper-button-disabled\": _vm.disFeaturedNext\n },\n on: {\n click: function($event) {\n return _vm.$refs.featureSwiper.$swiper.slideNext()\n }\n }\n })\n ],\n 1\n )\n ]\n : _vm._e(),\n _c(\"div\", { staticClass: \"is-flex mt-5 mb-5\" }, [\n _c(\n \"div\",\n { staticClass: \"flex1\" },\n [\n _c(\n \"b-dropdown\",\n {\n staticClass: \"app-select\",\n attrs: {\n \"aria-role\": \"list\",\n position: \"is-bottom-right\",\n animation: \"slide\",\n \"mobile-modal\": false\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"trigger\",\n fn: function(ref) {\n var active = ref.active\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"button is-text auto-height pl-0 pt-0 pb-0 \"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1 ml-0\",\n attrs: {\n icon: _vm.currentCate.font,\n size: \"is-small\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm.currentCate.name) +\n \" \"\n ),\n _c(\"b-icon\", {\n staticClass: \"ml-1\",\n attrs: {\n icon: \"menu-down\",\n size: \"is-normal\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 1687565433\n ),\n model: {\n value: _vm.currentCate,\n callback: function($$v) {\n _vm.currentCate = $$v\n },\n expression: \"currentCate\"\n }\n },\n _vm._l(_vm.cateMenu, function(menu) {\n return _c(\n \"b-dropdown-item\",\n {\n key: menu.id,\n class:\n menu.id == _vm.currentCate.id\n ? \"is-active\"\n : \"\",\n attrs: {\n value: menu,\n \"aria-role\": \"listitem\",\n \"data-title\": menu.count\n }\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"media is-align-items-center is-flex\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: menu.font,\n size: \"is-small\"\n }\n }),\n _c(\n \"div\",\n { staticClass: \"media-content\" },\n [_c(\"h3\", [_vm._v(_vm._s(menu.name))])]\n )\n ],\n 1\n )\n ]\n )\n }),\n 1\n )\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _vm._v(\" \" + _vm._s(_vm.$t(\"Sort by\")) + \": \"),\n _c(\n \"b-dropdown\",\n {\n staticClass: \"app-select\",\n attrs: {\n \"aria-role\": \"list\",\n position: \"is-bottom-left\",\n animation: \"slide\",\n \"mobile-modal\": false\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"trigger\",\n fn: function(ref) {\n var active = ref.active\n return [\n _c(\n \"div\",\n {\n staticClass:\n \"button is-text auto-height pl-0 pt-0 pb-0 is-size-65\"\n },\n [\n _vm._v(\n \" \" +\n _vm._s(_vm.currentSort.name) +\n \" \"\n ),\n _c(\"b-icon\", {\n staticClass: \"ml-1\",\n attrs: {\n icon: \"menu-down\",\n size: \"is-normal\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 891850973\n ),\n model: {\n value: _vm.currentSort,\n callback: function($$v) {\n _vm.currentSort = $$v\n },\n expression: \"currentSort\"\n }\n },\n _vm._l(_vm.sortMenu, function(menu, index) {\n return _c(\n \"b-dropdown-item\",\n {\n key: \"sort_\" + index,\n class:\n menu.slash == _vm.currentSort.slash\n ? \"is-active\"\n : \"\",\n attrs: { value: menu, \"aria-role\": \"listitem\" }\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"media align-items-center is-flex\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"media-content\" },\n [_c(\"h3\", [_vm._v(_vm._s(menu.name))])]\n )\n ]\n )\n ]\n )\n }),\n 1\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"columns f-list is-multiline is-mobile pb-3 mb-5\"\n },\n _vm._l(_vm.pageList, function(item, index) {\n return _c(\n \"div\",\n {\n key: index + item.title + item.id,\n staticClass: \"column is-one-quarter\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\n \"div\",\n {\n staticClass: \"list-icon mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72 icon-shadow\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"flex1 mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"h6\", { staticClass: \"title is-6 mb-2\" }, [\n _vm._v(_vm._s(item.title))\n ]),\n _c(\n \"p\",\n { staticClass: \"is-size-7 two-line\" },\n [_vm._v(_vm._s(item.tagline))]\n )\n ]\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"mt-1 ml-7 is-flex is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 is-size-7 has-text-grey-light\\t\"\n },\n [_vm._v(_vm._s(item.category))]\n ),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary is-light\",\n size: \"is-small\",\n rounded: \"\",\n loading: item.id == _vm.currentInstallId\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(item.id)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ],\n 1\n )\n ]\n )\n }),\n 0\n ),\n _vm.communityList.length > 0\n ? [\n _c(\n \"h3\",\n { staticClass: \"title is-5 has-text-weight-normal\" },\n [_vm._v(_vm._s(_vm.$t(\"Community Apps\")))]\n ),\n _c(\n \"h3\",\n { staticClass: \"subtitle is-7 has-text-grey-light\" },\n [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\"\n )\n )\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"columns f-list is-multiline is-mobile pb-3 mb-5\"\n },\n _vm._l(_vm.communityList, function(item, index) {\n return _c(\n \"div\",\n {\n key: index + item.title + item.id,\n staticClass: \"column is-one-quarter\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"list-icon mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72 icon-shadow\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"flex1 mr-4 is-clickable\",\n on: {\n click: function($event) {\n return _vm.showAppDetial(item.id)\n }\n }\n },\n [\n _c(\n \"h6\",\n { staticClass: \"title is-6 mb-2\" },\n [_vm._v(_vm._s(item.title))]\n ),\n _c(\n \"p\",\n { staticClass: \"is-size-7 two-line\" },\n [_vm._v(_vm._s(item.tagline))]\n )\n ]\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"mt-1 ml-7 is-flex is-align-items-center\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 is-size-7 has-text-grey-light\\t\"\n },\n [_vm._v(_vm._s(item.category))]\n ),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary is-light\",\n size: \"is-small\",\n rounded: \"\",\n loading:\n item.id == _vm.currentInstallId\n },\n on: {\n click: function($event) {\n return _vm.qucikInstall(item.id)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ],\n 1\n )\n ]\n )\n }),\n 0\n )\n ]\n : _vm._e()\n ],\n 2\n )\n : _vm._e(),\n _vm.currentSlide == 1\n ? _c(\n \"section\",\n [\n _c(\n \"ValidationObserver\",\n { ref: \"ob1\" },\n [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"Image\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"Docker Image\") + \" *\",\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\n \"e.g.,hello-world:latest\"\n ),\n readonly: _vm.state == \"update\"\n },\n on: { input: _vm.changeIcon },\n model: {\n value: _vm.initData.image,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"image\", $$v)\n },\n expression: \"initData.image\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 3994570334\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"Name\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"App name\") + \" *\",\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: errors\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n value: \"\",\n placeholder: _vm.$t(\n \"Your custom App Name\"\n )\n },\n model: {\n value: _vm.initData.label,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"label\", $$v)\n },\n expression: \"initData.label\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 133168582\n )\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Icon URL\") } },\n [\n _c(\"b-input\", {\n attrs: {\n value: \"\",\n placeholder: _vm.$t(\"Your custom icon URL\")\n },\n model: {\n value: _vm.initData.icon,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"icon\", $$v)\n },\n expression: \"initData.icon\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: \"Web UI\" } },\n [\n _c(\"p\", { staticClass: \"control\" }, [\n _c(\"span\", { staticClass: \"button is-static\" }, [\n _vm._v(_vm._s(_vm.baseUrl))\n ])\n ]),\n _c(\"b-input\", {\n attrs: {\n placeholder: \"port[/path/to/index.html]\",\n expanded: \"\"\n },\n model: {\n value: _vm.webui,\n callback: function($$v) {\n _vm.webui = $$v\n },\n expression: \"webui\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Network\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: { placeholder: \"Select\", expanded: \"\" },\n model: {\n value: _vm.initData.network_model,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"network_model\", $$v)\n },\n expression: \"initData.network_model\"\n }\n },\n _vm._l(_vm.networks, function(net) {\n return _c(\n \"optgroup\",\n {\n key: net.driver,\n attrs: { label: net.driver }\n },\n _vm._l(net.networks, function(option, index) {\n return _c(\n \"option\",\n {\n key: option.name + index,\n domProps: { value: option.name }\n },\n [_vm._v(\" \" + _vm._s(option.name) + \" \")]\n )\n }),\n 0\n )\n }),\n 0\n )\n ],\n 1\n ),\n _vm.showPorts\n ? _c(\"ports\", {\n attrs: { showHostPost: _vm.showHostPort },\n model: {\n value: _vm.initData.ports,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"ports\", $$v)\n },\n expression: \"initData.ports\"\n }\n })\n : _vm._e(),\n _c(\"input-group\", {\n attrs: {\n type: \"volume\",\n label: _vm.$t(\"Volumes\"),\n message: _vm.$t(\n \"No volumes now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.volumes,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"volumes\", $$v)\n },\n expression: \"initData.volumes\"\n }\n }),\n _c(\"env-input-group\", {\n attrs: {\n label: _vm.$t(\"Environment Variables\"),\n message: _vm.$t(\n \"No environment variables now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.envs,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"envs\", $$v)\n },\n expression: \"initData.envs\"\n }\n }),\n _c(\"input-group\", {\n attrs: {\n type: \"device\",\n label: _vm.$t(\"Devices\"),\n message: _vm.$t(\n \"No devices now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.devices,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"devices\", $$v)\n },\n expression: \"initData.devices\"\n }\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Memory Limit\") } },\n [\n _c(\"vue-slider\", {\n attrs: { min: 256, max: _vm.totalMemory },\n model: {\n value: _vm.initData.memory,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"memory\", $$v)\n },\n expression: \"initData.memory\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"CPU Shares\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Select\"),\n expanded: \"\"\n },\n model: {\n value: _vm.initData.cpu_shares,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"cpu_shares\", $$v)\n },\n expression: \"initData.cpu_shares\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"10\" } }, [\n _vm._v(_vm._s(_vm.$t(\"Low\")))\n ]),\n _c(\"option\", { attrs: { value: \"50\" } }, [\n _vm._v(_vm._s(_vm.$t(\"Medium\")))\n ]),\n _c(\"option\", { attrs: { value: \"90\" } }, [\n _vm._v(_vm._s(_vm.$t(\"High\")))\n ])\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Restart Policy\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Select\"),\n expanded: \"\"\n },\n model: {\n value: _vm.initData.restart,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"restart\", $$v)\n },\n expression: \"initData.restart\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"on-failure\" } }, [\n _vm._v(\"on-failure\")\n ]),\n _c(\"option\", { attrs: { value: \"always\" } }, [\n _vm._v(\"always\")\n ]),\n _c(\n \"option\",\n { attrs: { value: \"unless-stopped\" } },\n [_vm._v(\"unless-stopped\")]\n )\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"App Description\") } },\n [\n _c(\"b-input\", {\n model: {\n value: _vm.initData.description,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"description\", $$v)\n },\n expression: \"initData.description\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.currentSlide == 2\n ? _c(\"section\", [\n _c(\"div\", { staticClass: \"installing-warpper\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"install-animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/rocket-launching.json */ \"./src/assets/ani/rocket-launching.json\"),\n loop: true,\n autoPlay: true\n }\n })\n ],\n 1\n ),\n _c(\"h3\", {\n staticClass: \"title is-6 has-text-centered\",\n class: {\n \"has-text-danger\": _vm.errorType == 3,\n \"has-text-black\": _vm.errorType != 3\n },\n domProps: { innerHTML: _vm._s(_vm.installText) }\n })\n ])\n ])\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n ),\n _c(\n \"footer\",\n {\n staticClass: \"modal-card-foot is-flex is-align-items-center \",\n class: { \"is-justify-content-center\": _vm.currentSlide == 0 }\n },\n [\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _vm.currentSlide == 2 && _vm.errorType == 3\n ? _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Back\"), rounded: \"\" },\n on: { click: _vm.prevStep }\n })\n : _vm._e(),\n _vm.currentSlide == 1 && _vm.state == \"install\"\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Install\"),\n type: \"is-primary\",\n rounded: \"\",\n loading: _vm.isLoading\n },\n on: {\n click: function($event) {\n return _vm.installApp()\n }\n }\n })\n : _vm._e(),\n _vm.currentSlide == 1 && _vm.state == \"update\"\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Save\"),\n type: \"is-primary\",\n rounded: \"\",\n loading: _vm.isLoading\n },\n on: {\n click: function($event) {\n return _vm.updateApp()\n }\n }\n })\n : _vm._e(),\n _vm.currentSlide == 2 &&\n (_vm.errorType == 1 || _vm.errorType == 4)\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(_vm.cancelButtonText),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n ],\n 2\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Panel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/PortPanel.vue?vue&type=template&id=bc6e2efa&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/PortPanel.vue?vue&type=template&id=bc6e2efa&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/PortPanel.vue?vue&type=template&id=bc6e2efa& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/PortPanel.vue?vue&type=template&id=bc6e2efa& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.$t(\"Edit Web UI port\")))\n ])\n ]),\n _c(\"div\", [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ])\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body \" },\n [\n _c(\n \"b-field\",\n {\n staticClass: \"mb-5 mt-5 has-text-light\",\n attrs: { type: _vm.errorType, message: _vm.errors, expanded: \"\" }\n },\n [\n _c(\"b-input\", {\n attrs: { type: \"number\" },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.savePort.apply(null, arguments)\n }\n },\n model: {\n value: _vm.port,\n callback: function($$v) {\n _vm.port = $$v\n },\n expression: \"port\"\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Cancel\"), rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\",\n expaned: \"\"\n },\n on: { click: _vm.savePort }\n })\n ],\n 1\n )\n ]\n ),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/PortPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.$t(\"Edit Web UI port\")))\n ])\n ]),\n _c(\"div\", [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ])\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body \" },\n [\n _c(\n \"b-field\",\n {\n staticClass: \"mb-5 mt-5 has-text-light\",\n attrs: { type: _vm.errorType, message: _vm.errors, expanded: \"\" }\n },\n [\n _c(\"b-input\", {\n attrs: { type: \"number\" },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.savePort.apply(null, arguments)\n }\n },\n model: {\n value: _vm.port,\n callback: function($$v) {\n _vm.port = $$v\n },\n expression: \"port\"\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Cancel\"), rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\",\n expaned: \"\"\n },\n on: { click: _vm.savePort }\n })\n ],\n 1\n )\n ]\n ),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/PortPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SearchBar.vue?vue&type=template&id=0eca37cb&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SearchBar.vue?vue&type=template&id=0eca37cb&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SearchBar.vue?vue&type=template&id=0eca37cb& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SearchBar.vue?vue&type=template&id=0eca37cb& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"b-field\",\n {\n staticClass: \"search-bar has-text-white\",\n attrs: { position: \"is-centered \" }\n },\n [\n _c(\"b-input\", {\n class: [\"ovh\", _vm.isFocus ? \"fo\" : \"\"],\n attrs: {\n placeholder: _vm.$t(\"Search...\"),\n icon: \"magnify\",\n \"icon-right\": \"magnify\",\n \"icon-right-clickable\": \"\",\n size: \"is-large\",\n expanded: \"\"\n },\n on: {\n \"icon-right-click\": _vm.gotoSearch,\n focus: _vm.onFocus,\n blur: _vm.onBlur\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.gotoSearch.apply(null, arguments)\n }\n },\n model: {\n value: _vm.keyText,\n callback: function($$v) {\n _vm.keyText = $$v\n },\n expression: \"keyText\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SearchBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"b-field\",\n {\n staticClass: \"search-bar has-text-white\",\n attrs: { position: \"is-centered \" }\n },\n [\n _c(\"b-input\", {\n class: [\"ovh\", _vm.isFocus ? \"fo\" : \"\"],\n attrs: {\n placeholder: _vm.$t(\"Search...\"),\n icon: \"magnify\",\n \"icon-right\": \"magnify\",\n \"icon-right-clickable\": \"\",\n size: \"is-large\",\n expanded: \"\"\n },\n on: {\n \"icon-right-click\": _vm.gotoSearch,\n focus: _vm.onFocus,\n blur: _vm.onBlur\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.gotoSearch.apply(null, arguments)\n }\n },\n model: {\n value: _vm.keyText,\n callback: function($$v) {\n _vm.keyText = $$v\n },\n expression: \"keyText\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SearchBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Settings.vue?vue&type=template&id=47aa12d3&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Settings.vue?vue&type=template&id=47aa12d3&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Settings.vue?vue&type=template&id=47aa12d3& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Settings.vue?vue&type=template&id=47aa12d3& ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"wsettings\" },\n [\n _c(\n \"b-dropdown\",\n {\n staticClass: \"navbar-item\",\n attrs: {\n \"aria-role\": \"list\",\n animation: \"slide-fade\",\n \"mobile-modal\": false,\n position: _vm.position\n },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\"b-button\", {\n staticClass: \"circle-btn\",\n attrs: { \"icon-left\": \"menu\", rounded: \"\" }\n })\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n staticClass: \"has-text-white has-text-left\",\n attrs: { \"aria-role\": \"menu-item\", focusable: false, custom: \"\" }\n },\n [\n _c(\"h2\", { staticClass: \"title is-5 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Widgets Settings\")))\n ]),\n _vm._l(_vm.settingsData, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"setting_\" + index,\n staticClass: \"is-flex is-align-items-center item\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2\",\n attrs: { icon: _vm.getIcon(item.name) }\n }),\n _vm._v(\" \"),\n _c(\"b\", [\n _vm._v(_vm._s(_vm.$t(_vm.getTitle(item.name))))\n ])\n ],\n 1\n ),\n _c(\n \"b-field\",\n [\n _c(\"b-switch\", {\n staticClass: \"is-flex-direction-row-reverse mr-0\",\n attrs: { type: \"is-dark\", size: \"is-small\" },\n on: { input: _vm.handleInput },\n model: {\n value: item.show,\n callback: function($$v) {\n _vm.$set(item, \"show\", $$v)\n },\n expression: \"item.show\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n })\n ],\n 2\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Settings.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"wsettings\" },\n [\n _c(\n \"b-dropdown\",\n {\n staticClass: \"navbar-item\",\n attrs: {\n \"aria-role\": \"list\",\n animation: \"slide-fade\",\n \"mobile-modal\": false,\n position: _vm.position\n },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\"b-button\", {\n staticClass: \"circle-btn\",\n attrs: { \"icon-left\": \"menu\", rounded: \"\" }\n })\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n staticClass: \"has-text-white has-text-left\",\n attrs: { \"aria-role\": \"menu-item\", focusable: false, custom: \"\" }\n },\n [\n _c(\"h2\", { staticClass: \"title is-5 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Widgets Settings\")))\n ]),\n _vm._l(_vm.settingsData, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"setting_\" + index,\n staticClass: \"is-flex is-align-items-center item\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2\",\n attrs: { icon: _vm.getIcon(item.name) }\n }),\n _vm._v(\" \"),\n _c(\"b\", [\n _vm._v(_vm._s(_vm.$t(_vm.getTitle(item.name))))\n ])\n ],\n 1\n ),\n _c(\n \"b-field\",\n [\n _c(\"b-switch\", {\n staticClass: \"is-flex-direction-row-reverse mr-0\",\n attrs: { type: \"is-dark\", size: \"is-small\" },\n on: { input: _vm.handleInput },\n model: {\n value: item.show,\n callback: function($$v) {\n _vm.$set(item, \"show\", $$v)\n },\n expression: \"item.show\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n })\n ],\n 2\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Settings.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SideBar.vue?vue&type=template&id=3eca7188&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SideBar.vue?vue&type=template&id=3eca7188&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SideBar.vue?vue&type=template&id=3eca7188& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SideBar.vue?vue&type=template&id=3eca7188& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.isLoading\n ? _c(\n \"div\",\n { staticClass: \"side-bar mr-5\", class: { open: _vm.sidebarOpen } },\n [\n _c(\n \"vue-custom-scrollbar\",\n {\n staticClass: \"scroll-area\",\n attrs: { settings: _vm.scrollSettings }\n },\n [\n _vm._l(_vm.activeApps, function(item, index) {\n return _c(\n \"div\",\n { key: \"widgets_\" + index },\n [\n _vm.checkShow(item.app.name, _vm.widgetsSettings)\n ? _c(item.app, { tag: \"component\" })\n : _vm._e()\n ],\n 1\n )\n }),\n _c(\"settings\", {\n on: { change: _vm.handleChange },\n model: {\n value: _vm.widgetsSettings,\n callback: function($$v) {\n _vm.widgetsSettings = $$v\n },\n expression: \"widgetsSettings\"\n }\n })\n ],\n 2\n )\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SideBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.isLoading\n ? _c(\n \"div\",\n { staticClass: \"side-bar mr-5\", class: { open: _vm.sidebarOpen } },\n [\n _c(\n \"vue-custom-scrollbar\",\n {\n staticClass: \"scroll-area\",\n attrs: { settings: _vm.scrollSettings }\n },\n [\n _vm._l(_vm.activeApps, function(item, index) {\n return _c(\n \"div\",\n { key: \"widgets_\" + index },\n [\n _vm.checkShow(item.app.name, _vm.widgetsSettings)\n ? _c(item.app, { tag: \"component\" })\n : _vm._e()\n ],\n 1\n )\n }),\n _c(\"settings\", {\n on: { change: _vm.handleChange },\n model: {\n value: _vm.widgetsSettings,\n callback: function($$v) {\n _vm.widgetsSettings = $$v\n },\n expression: \"widgetsSettings\"\n }\n })\n ],\n 2\n )\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SideBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SmartBlock.vue?vue&type=template&id=4e77cc74&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SmartBlock.vue?vue&type=template&id=4e77cc74&":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SmartBlock.vue?vue&type=template&id=4e77cc74& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SmartBlock.vue?vue&type=template&id=4e77cc74& ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"column is-one-half\" }, [\n _c(\"div\", { staticClass: \"wuji-card\" }, [\n _c(\"h6\", { staticClass: \"title is-6 mb-2 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Smarten up your home\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"info \" }, [\n _c(\"div\", { staticClass: \"des two-line\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\"\n )\n ) +\n \" \"\n )\n ])\n ]),\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/smart_icon.png */ \"./src/assets/img/smart_icon.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"buttons\" },\n [\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-primary\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.goToDiscord }\n },\n [_vm._v(_vm._s(_vm.$t(\"In development\")))]\n )\n ],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SmartBlock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"column is-one-half\" }, [\n _c(\"div\", { staticClass: \"wuji-card\" }, [\n _c(\"h6\", { staticClass: \"title is-6 mb-2 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Smarten up your home\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"info \" }, [\n _c(\"div\", { staticClass: \"des two-line\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\"\n )\n ) +\n \" \"\n )\n ])\n ]),\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/smart_icon.png */ \"./src/assets/img/smart_icon.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"buttons\" },\n [\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-primary\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.goToDiscord }\n },\n [_vm._v(_vm._s(_vm.$t(\"In development\")))]\n )\n ],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SmartBlock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/DriveItem.vue?vue&type=template&id=43c6a089&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/DriveItem.vue?vue&type=template&id=43c6a089&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Storage/DriveItem.vue?vue&type=template&id=43c6a089& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Storage/DriveItem.vue?vue&type=template&id=43c6a089& ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"mb-5 mt-2\" }, [\n _c(\"div\", { staticClass: \"is-flex mb-2\" }, [\n _c(\n \"div\",\n { staticClass: \"header-icon\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/disk.png */ \"./src/assets/img/disk.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"ml-3 is-flex-grow-1 is-flex is-align-items-center\" },\n [\n _c(\"div\", [\n _c(\n \"h4\",\n { staticClass: \"title is-size-6-5 mb-3 has-text-left one-line\" },\n [_vm._v(_vm._s(_vm.item.name))]\n ),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 \" }, [\n _vm._v(\n _vm._s(_vm.item.model) +\n \", \" +\n _vm._s(_vm.renderSize(_vm.item.size)) +\n \" \" +\n _vm._s(_vm.item.disk_type)\n )\n ])\n ])\n ]\n ),\n _c(\"div\", { staticClass: \"is-flex is-align-items-center status\" }, [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"has-text-left is-size-7 mb-3\" }, [\n _vm._v(_vm._s(_vm.$t(\"Health\")) + \": \"),\n _vm.item.health\n ? _c(\"b\", { staticClass: \"has-text-success\" }, [\n _vm._v(_vm._s(_vm.$t(\"Healthy\")))\n ])\n : _vm._e(),\n !_vm.item.health\n ? _c(\"b\", { staticClass: \"has-text-danger\" }, [\n _vm._v(_vm._s(_vm.$t(\"Damage\")))\n ])\n : _vm._e()\n ]),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 \" }, [\n _vm._v(_vm._s(_vm.$t(\"Temp\")) + \": \"),\n _vm.item.temperature > 0\n ? _c(\"b\", [\n _vm._v(\n _vm._s(_vm.item.temperature) +\n \"°C / \" +\n _vm._s(_vm._f(\"toFahrenheit\")(_vm.item.temperature)) +\n \"°F\"\n )\n ])\n : _c(\"b\", [_vm._v(\"N/A\")])\n ])\n ])\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/DriveItem.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"mb-5 mt-2\" }, [\n _c(\"div\", { staticClass: \"is-flex mb-2\" }, [\n _c(\n \"div\",\n { staticClass: \"header-icon\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/disk.png */ \"./src/assets/img/disk.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"ml-3 is-flex-grow-1 is-flex is-align-items-center\" },\n [\n _c(\"div\", [\n _c(\n \"h4\",\n { staticClass: \"title is-size-6-5 mb-3 has-text-left one-line\" },\n [_vm._v(_vm._s(_vm.item.name))]\n ),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 \" }, [\n _vm._v(\n _vm._s(_vm.item.model) +\n \", \" +\n _vm._s(_vm.renderSize(_vm.item.size)) +\n \" \" +\n _vm._s(_vm.item.disk_type)\n )\n ])\n ])\n ]\n ),\n _c(\"div\", { staticClass: \"is-flex is-align-items-center status\" }, [\n _c(\"div\", [\n _c(\"p\", { staticClass: \"has-text-left is-size-7 mb-3\" }, [\n _vm._v(_vm._s(_vm.$t(\"Health\")) + \": \"),\n _vm.item.health\n ? _c(\"b\", { staticClass: \"has-text-success\" }, [\n _vm._v(_vm._s(_vm.$t(\"Healthy\")))\n ])\n : _vm._e(),\n !_vm.item.health\n ? _c(\"b\", { staticClass: \"has-text-danger\" }, [\n _vm._v(_vm._s(_vm.$t(\"Damage\")))\n ])\n : _vm._e()\n ]),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 \" }, [\n _vm._v(_vm._s(_vm.$t(\"Temp\")) + \": \"),\n _vm.item.temperature > 0\n ? _c(\"b\", [\n _vm._v(\n _vm._s(_vm.item.temperature) +\n \"°C / \" +\n _vm._s(_vm._f(\"toFahrenheit\")(_vm.item.temperature)) +\n \"°F\"\n )\n ])\n : _c(\"b\", [_vm._v(\"N/A\")])\n ])\n ])\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/DriveItem.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/StorageItem.vue?vue&type=template&id=0721290c&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/StorageItem.vue?vue&type=template&id=0721290c&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Storage/StorageItem.vue?vue&type=template&id=0721290c& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Storage/StorageItem.vue?vue&type=template&id=0721290c& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5 mt-2\" },\n [\n _c(\"div\", { staticClass: \"is-flex mb-2\" }, [\n _c(\n \"div\",\n { staticClass: \"header-icon\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/storage.png */ \"./src/assets/img/storage.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"ml-3 is-flex-grow-1 is-flex is-align-items-center\" },\n [\n _c(\"div\", [\n _c(\n \"h4\",\n {\n staticClass: \"title is-size-6-5 mb-0 has-text-left one-line\"\n },\n [\n _vm._v(_vm._s(_vm.item.name) + \" \"),\n _vm.item.isSystem\n ? _c(\"b-tag\", { staticClass: \"ml-2\" }, [_vm._v(\"CasaOS\")])\n : _vm._e()\n ],\n 1\n ),\n _c(\n \"p\",\n {\n staticClass: \"has-text-left is-size-7 has-text-grey-light\\t\"\n },\n [\n _vm._v(_vm._s(_vm.$t(\"Single Drive Storage\")) + \", \"),\n _c(\"span\", { staticClass: \"is-uppercase\" }, [\n _vm._v(_vm._s(_vm.item.fsType))\n ]),\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\"\n ),\n multilined: \"\"\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"help-circle-outline\", size: \"is-small\" }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 \" }, [\n _vm._v(\n _vm._s(\n _vm.$t(\"Available Total\", {\n name: _vm.item.diskName,\n avl: _vm.renderSize(_vm.item.availSize),\n total: _vm.renderSize(_vm.item.size)\n })\n )\n )\n ])\n ])\n ]\n ),\n !_vm.item.isSystem\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center b-group\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n size: \"is-small\",\n type: _vm.isFormating ? \"is-primary\" : \"\",\n rounded: \"\",\n loading: _vm.isFormating,\n disabled: _vm.isRemoving\n },\n on: {\n click: function($event) {\n return _vm.formatStorage(\n _vm.item.path,\n _vm.item.mount_point\n )\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Format\")))]\n ),\n _c(\n \"b-button\",\n {\n staticClass: \"ml-2\",\n attrs: {\n size: \"is-small\",\n type: _vm.isRemoving ? \"is-primary\" : \"\",\n rounded: \"\",\n loading: _vm.isRemoving,\n disabled: _vm.isFormating\n },\n on: {\n click: function($event) {\n return _vm.removeStorage(\n _vm.item.path,\n _vm.item.mount_point\n )\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Remove\")))]\n )\n ],\n 1\n )\n : _vm._e()\n ]),\n _c(\"b-progress\", {\n attrs: {\n type: _vm._f(\"getProgressType\")(_vm.item.usePercent),\n size: \"is-small\",\n value: _vm.item.usePercent\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/StorageItem.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5 mt-2\" },\n [\n _c(\"div\", { staticClass: \"is-flex mb-2\" }, [\n _c(\n \"div\",\n { staticClass: \"header-icon\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/storage.png */ \"./src/assets/img/storage.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"ml-3 is-flex-grow-1 is-flex is-align-items-center\" },\n [\n _c(\"div\", [\n _c(\n \"h4\",\n {\n staticClass: \"title is-size-6-5 mb-0 has-text-left one-line\"\n },\n [\n _vm._v(_vm._s(_vm.item.name) + \" \"),\n _vm.item.isSystem\n ? _c(\"b-tag\", { staticClass: \"ml-2\" }, [_vm._v(\"CasaOS\")])\n : _vm._e()\n ],\n 1\n ),\n _c(\n \"p\",\n {\n staticClass: \"has-text-left is-size-7 has-text-grey-light\\t\"\n },\n [\n _vm._v(_vm._s(_vm.$t(\"Single Drive Storage\")) + \", \"),\n _c(\"span\", { staticClass: \"is-uppercase\" }, [\n _vm._v(_vm._s(_vm.item.fsType))\n ]),\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\"\n ),\n multilined: \"\"\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"help-circle-outline\", size: \"is-small\" }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 \" }, [\n _vm._v(\n _vm._s(\n _vm.$t(\"Available Total\", {\n name: _vm.item.diskName,\n avl: _vm.renderSize(_vm.item.availSize),\n total: _vm.renderSize(_vm.item.size)\n })\n )\n )\n ])\n ])\n ]\n ),\n !_vm.item.isSystem\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center b-group\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n size: \"is-small\",\n type: _vm.isFormating ? \"is-primary\" : \"\",\n rounded: \"\",\n loading: _vm.isFormating,\n disabled: _vm.isRemoving\n },\n on: {\n click: function($event) {\n return _vm.formatStorage(\n _vm.item.path,\n _vm.item.mount_point\n )\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Format\")))]\n ),\n _c(\n \"b-button\",\n {\n staticClass: \"ml-2\",\n attrs: {\n size: \"is-small\",\n type: _vm.isRemoving ? \"is-primary\" : \"\",\n rounded: \"\",\n loading: _vm.isRemoving,\n disabled: _vm.isFormating\n },\n on: {\n click: function($event) {\n return _vm.removeStorage(\n _vm.item.path,\n _vm.item.mount_point\n )\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Remove\")))]\n )\n ],\n 1\n )\n : _vm._e()\n ]),\n _c(\"b-progress\", {\n attrs: {\n type: _vm._f(\"getProgressType\")(_vm.item.usePercent),\n size: \"is-small\",\n value: _vm.item.usePercent\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/StorageItem.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/StorageManagerPanel.vue?vue&type=template&id=59635d1c&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/StorageManagerPanel.vue?vue&type=template&id=59635d1c&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/StorageManagerPanel.vue?vue&type=template&id=59635d1c& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/StorageManagerPanel.vue?vue&type=template&id=59635d1c& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\n \"section\",\n { staticClass: \"modal-card-body \" },\n [\n !_vm.isCreating\n ? [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.title))\n ]),\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n !_vm.creatIsShow\n ? _c(\n \"div\",\n { staticClass: \"flex1 is-relative\" },\n [\n _vm.activeTab == 0 && _vm.unDiskData.length > 0\n ? _c(\n \"div\",\n { staticClass: \"create-container\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n size: \"is-small\",\n type: \"is-link is-light\",\n rounded: \"\"\n },\n on: { click: _vm.showCreate }\n },\n [_vm._v(_vm._s(_vm.$t(\"Create Storage\")))]\n )\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"b-tabs\",\n {\n attrs: { animated: false },\n model: {\n value: _vm.activeTab,\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Storage\") } },\n _vm._l(_vm.storageData, function(item, index) {\n return _c(\"storage-item\", {\n key: \"storage\" + index,\n attrs: { item: item },\n on: { getDiskList: _vm.getDiskList }\n })\n }),\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Drive\") } },\n _vm._l(_vm.diskData, function(item, index) {\n return _c(\"drive-item\", {\n key: \"disk\" + index,\n attrs: { item: item }\n })\n }),\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.creatIsShow\n ? _c(\n \"div\",\n { staticClass: \"flex1 is-relative\" },\n [\n _c(\n \"ValidationObserver\",\n { ref: \"ob1\" },\n [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"StorageName\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"Storage Name\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n nativeOn: {\n keyup: function($event) {\n _vm.createStorageName = _vm.createStorageName.replace(\n /[^\\w]/g,\n \"\"\n )\n },\n paste: function($event) {\n _vm.createStorageName = _vm.createStorageName.replace(\n /[^\\w]/g,\n \"\"\n )\n }\n },\n model: {\n value: _vm.createStorageName,\n callback: function($$v) {\n _vm.createStorageName = $$v\n },\n expression: \"createStorageName\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 3013383262\n )\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Choose Drive\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: { expanded: \"\" },\n on: { input: _vm.onDiskChoose },\n model: {\n value: _vm.activeDisk,\n callback: function($$v) {\n _vm.activeDisk = $$v\n },\n expression: \"activeDisk\"\n }\n },\n _vm._l(_vm.unDiskData, function(option, index) {\n return _c(\n \"option\",\n {\n key: option.path,\n domProps: { value: index }\n },\n [\n _vm._v(\n \" \" +\n _vm._s(option.name) +\n \" (\" +\n _vm._s(option.model) +\n \" - \" +\n _vm._s(_vm.renderSize(option.size)) +\n \") \"\n )\n ]\n )\n }),\n 0\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm.createStorageType == \"format\"\n ? _c(\n \"article\",\n { staticClass: \"message is-danger mt-5\" },\n [\n _c(\"section\", { staticClass: \"message-body\" }, [\n _c(\"div\", { staticClass: \"media\" }, [\n _vm._m(0),\n _c(\"div\", { staticClass: \"media-content\" }, [\n _c(\"h3\", { staticClass: \"is-size-5\" }, [\n _vm._v(_vm._s(_vm.$t(\"Warning\")))\n ]),\n _c(\"p\", { staticClass: \"is-size-65\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"The selected drive will be emptied.\"\n )\n )\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\"\n )\n ) +\n \" \"\n )\n ])\n ])\n ])\n ])\n ]\n )\n : _c(\n \"article\",\n { staticClass: \"message is-danger mt-5\" },\n [\n _c(\"section\", { staticClass: \"message-body\" }, [\n _c(\"div\", { staticClass: \"media\" }, [\n _vm._m(1),\n _c(\"div\", { staticClass: \"media-content\" }, [\n _c(\"h3\", { staticClass: \"is-size-5\" }, [\n _vm._v(_vm._s(_vm.$t(\"Attention\")))\n ]),\n _c(\"p\", { staticClass: \"is-size-65\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"The drive you select can be used directly as storage.\"\n )\n )\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\"\n )\n )\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\"\n )\n ) +\n \" \"\n )\n ])\n ])\n ])\n ])\n ]\n )\n ],\n 1\n )\n : _vm._e()\n ]\n : _vm._e(),\n _vm.isCreating\n ? [\n _c(\"div\", { staticClass: \"installing-warpper mt-6 mb-6\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center mb-5\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"creating-animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/creating.json */ \"./src/assets/ani/creating.json\"),\n loop: true,\n autoPlay: true\n }\n })\n ],\n 1\n ),\n _c(\n \"h3\",\n {\n staticClass:\n \"title is-4 has-text-centered has-text-weight-light\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Creation in progress\")) + \"...\")]\n )\n ])\n ]\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 2\n ),\n _vm.creatIsShow && !_vm.isCreating\n ? _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center \" },\n [\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Cancel\"), rounded: \"\" },\n on: { click: _vm.showDefault }\n }),\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Format and Create\"),\n type:\n _vm.createStorageType == \"format\" ? \"is-primary\" : \"\",\n rounded: \"\",\n loading: _vm.isValiding\n },\n on: {\n click: function($event) {\n return _vm.createStorge(true)\n }\n }\n }),\n _vm.createStorageType == \"mountable\"\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Create\"),\n type: \"is-primary\",\n rounded: \"\",\n loading: _vm.isValiding\n },\n on: {\n click: function($event) {\n return _vm.createStorge(false)\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n ],\n 2\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"media-left\" }, [\n _c(\"span\", { staticClass: \"icon is-large is-danger\" }, [\n _c(\"i\", { staticClass: \"mdi mdi-alert-circle mdi-48px\" })\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"media-left\" }, [\n _c(\"span\", { staticClass: \"icon is-large is-danger\" }, [\n _c(\"i\", { staticClass: \"mdi mdi-alert-circle mdi-48px\" })\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/StorageManagerPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\n \"section\",\n { staticClass: \"modal-card-body \" },\n [\n !_vm.isCreating\n ? [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.title))\n ]),\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n !_vm.creatIsShow\n ? _c(\n \"div\",\n { staticClass: \"flex1 is-relative\" },\n [\n _vm.activeTab == 0 && _vm.unDiskData.length > 0\n ? _c(\n \"div\",\n { staticClass: \"create-container\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n size: \"is-small\",\n type: \"is-link is-light\",\n rounded: \"\"\n },\n on: { click: _vm.showCreate }\n },\n [_vm._v(_vm._s(_vm.$t(\"Create Storage\")))]\n )\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"b-tabs\",\n {\n attrs: { animated: false },\n model: {\n value: _vm.activeTab,\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Storage\") } },\n _vm._l(_vm.storageData, function(item, index) {\n return _c(\"storage-item\", {\n key: \"storage\" + index,\n attrs: { item: item },\n on: { getDiskList: _vm.getDiskList }\n })\n }),\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Drive\") } },\n _vm._l(_vm.diskData, function(item, index) {\n return _c(\"drive-item\", {\n key: \"disk\" + index,\n attrs: { item: item }\n })\n }),\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.creatIsShow\n ? _c(\n \"div\",\n { staticClass: \"flex1 is-relative\" },\n [\n _c(\n \"ValidationObserver\",\n { ref: \"ob1\" },\n [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"StorageName\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"Storage Name\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n nativeOn: {\n keyup: function($event) {\n _vm.createStorageName = _vm.createStorageName.replace(\n /[^\\w]/g,\n \"\"\n )\n },\n paste: function($event) {\n _vm.createStorageName = _vm.createStorageName.replace(\n /[^\\w]/g,\n \"\"\n )\n }\n },\n model: {\n value: _vm.createStorageName,\n callback: function($$v) {\n _vm.createStorageName = $$v\n },\n expression: \"createStorageName\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 3013383262\n )\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Choose Drive\") } },\n [\n _c(\n \"b-select\",\n {\n attrs: { expanded: \"\" },\n on: { input: _vm.onDiskChoose },\n model: {\n value: _vm.activeDisk,\n callback: function($$v) {\n _vm.activeDisk = $$v\n },\n expression: \"activeDisk\"\n }\n },\n _vm._l(_vm.unDiskData, function(option, index) {\n return _c(\n \"option\",\n {\n key: option.path,\n domProps: { value: index }\n },\n [\n _vm._v(\n \" \" +\n _vm._s(option.name) +\n \" (\" +\n _vm._s(option.model) +\n \" - \" +\n _vm._s(_vm.renderSize(option.size)) +\n \") \"\n )\n ]\n )\n }),\n 0\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm.createStorageType == \"format\"\n ? _c(\n \"article\",\n { staticClass: \"message is-danger mt-5\" },\n [\n _c(\"section\", { staticClass: \"message-body\" }, [\n _c(\"div\", { staticClass: \"media\" }, [\n _vm._m(0),\n _c(\"div\", { staticClass: \"media-content\" }, [\n _c(\"h3\", { staticClass: \"is-size-5\" }, [\n _vm._v(_vm._s(_vm.$t(\"Warning\")))\n ]),\n _c(\"p\", { staticClass: \"is-size-65\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"The selected drive will be emptied.\"\n )\n )\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\"\n )\n ) +\n \" \"\n )\n ])\n ])\n ])\n ])\n ]\n )\n : _c(\n \"article\",\n { staticClass: \"message is-danger mt-5\" },\n [\n _c(\"section\", { staticClass: \"message-body\" }, [\n _c(\"div\", { staticClass: \"media\" }, [\n _vm._m(1),\n _c(\"div\", { staticClass: \"media-content\" }, [\n _c(\"h3\", { staticClass: \"is-size-5\" }, [\n _vm._v(_vm._s(_vm.$t(\"Attention\")))\n ]),\n _c(\"p\", { staticClass: \"is-size-65\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"The drive you select can be used directly as storage.\"\n )\n )\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\"\n )\n )\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\"\n )\n ) +\n \" \"\n )\n ])\n ])\n ])\n ])\n ]\n )\n ],\n 1\n )\n : _vm._e()\n ]\n : _vm._e(),\n _vm.isCreating\n ? [\n _c(\"div\", { staticClass: \"installing-warpper mt-6 mb-6\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center mb-5\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"creating-animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/creating.json */ \"./src/assets/ani/creating.json\"),\n loop: true,\n autoPlay: true\n }\n })\n ],\n 1\n ),\n _c(\n \"h3\",\n {\n staticClass:\n \"title is-4 has-text-centered has-text-weight-light\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Creation in progress\")) + \"...\")]\n )\n ])\n ]\n : _vm._e(),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 2\n ),\n _vm.creatIsShow && !_vm.isCreating\n ? _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center \" },\n [\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Cancel\"), rounded: \"\" },\n on: { click: _vm.showDefault }\n }),\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Format and Create\"),\n type:\n _vm.createStorageType == \"format\" ? \"is-primary\" : \"\",\n rounded: \"\",\n loading: _vm.isValiding\n },\n on: {\n click: function($event) {\n return _vm.createStorge(true)\n }\n }\n }),\n _vm.createStorageType == \"mountable\"\n ? _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Create\"),\n type: \"is-primary\",\n rounded: \"\",\n loading: _vm.isValiding\n },\n on: {\n click: function($event) {\n return _vm.createStorge(false)\n }\n }\n })\n : _vm._e()\n ],\n 1\n )\n ]\n ],\n 2\n )\n : _vm._e()\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"media-left\" }, [\n _c(\"span\", { staticClass: \"icon is-large is-danger\" }, [\n _c(\"i\", { staticClass: \"mdi mdi-alert-circle mdi-48px\" })\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"media-left\" }, [\n _c(\"span\", { staticClass: \"icon is-large is-danger\" }, [\n _c(\"i\", { staticClass: \"mdi mdi-alert-circle mdi-48px\" })\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/StorageManagerPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncBlock.vue?vue&type=template&id=8ba71c9c&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncBlock.vue?vue&type=template&id=8ba71c9c&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SyncBlock.vue?vue&type=template&id=8ba71c9c& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SyncBlock.vue?vue&type=template&id=8ba71c9c& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"column is-one-half\" }, [\n _c(\n \"div\",\n { staticClass: \"wuji-card\" },\n [\n _vm.state == 1\n ? [\n _c(\"h6\", { staticClass: \"title is-6 mb-2 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Sync your data\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"info \" }, [\n _c(\"div\", { staticClass: \"des two-line\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"Follow the guide to start syncing your files across multiple devices.\"\n )\n ) +\n \" \"\n )\n ])\n ]),\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/sync_icon.png */ \"./src/assets/img/sync_icon.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"buttons\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary\",\n size: \"is-small\",\n rounded: \"\"\n },\n on: { click: _vm.openSyncPanel }\n },\n [_vm._v(_vm._s(_vm.$t(\"Go !\")))]\n )\n ],\n 1\n )\n ]\n : _vm._e(),\n _vm.state == 2\n ? [\n _c(\"div\", { staticClass: \"is-flex is-align-items-center\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h6\", { staticClass: \"title is-6 mb-2 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Sync your data\")))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Add New Device\"),\n position: \"is-top\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button-new mdi mdi-plus\",\n attrs: { type: \"button\" },\n on: { click: _vm.openSyncPanel }\n })\n ]\n ),\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Config\"),\n position: \"is-top\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button-new mdi mdi-cog-outline\",\n attrs: { type: \"button\" },\n on: { click: _vm.gotoAdvancedPanel }\n })\n ]\n )\n ],\n 1\n )\n ]),\n _c(\"div\", { staticClass: \"columns mb-0 mt-2 is-mobile\" }, [\n _c(\n \"div\",\n { staticClass: \"column is-flex is-align-items-center\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-32x32\",\n attrs: { src: __webpack_require__(/*! @/assets/img/device.png */ \"./src/assets/img/device.png\") }\n }),\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"p\", { staticClass: \"is-size-65 ml-2 one-line\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Up to Date\")) +\n \" \" +\n _vm._s(_vm.activeDevice) +\n \"/\" +\n _vm._s(_vm.totalDevice)\n )\n ])\n ])\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"column is-flex is-align-items-center\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-32x32\",\n attrs: { src: __webpack_require__(/*! @/assets/img/folder1.png */ \"./src/assets/img/folder1.png\") }\n }),\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"p\", { staticClass: \"is-size-65 ml-2 one-line\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Up to Date\")) +\n \" \" +\n _vm._s(_vm.activeFolders.length) +\n \"/\" +\n _vm._s(_vm.folders)\n )\n ])\n ])\n ],\n 1\n )\n ]),\n _c(\"div\", { staticClass: \"columns mb-0 mt-1 is-mobile\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"column pt-0 pb-0 is-flex is-align-items-center is-size-65\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: _vm.syncIcon,\n type: \"is-success\",\n \"custom-size\": \"mdi-18px\",\n \"custom-class\": _vm.spinner\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(_vm.syncState)) + \" \")\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"column pt-0 pb-0 is-flex is-align-items-center is-size-65 is-justify-content-end \"\n },\n [\n _vm.syncState == \"Synchronized\"\n ? _c(\"b\", { staticClass: \"one-line\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Total\")) +\n \":\" +\n _vm._s(_vm._f(\"renderSize\")(_vm.totalSize))\n )\n ])\n : _vm._e(),\n _vm.syncState == \"Synchronizing\"\n ? _c(\n \"p\",\n {\n staticClass:\n \"one-line is-flex is-align-items-center\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"cloud-upload-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm._f(\"renderBps\")(_vm.upSpeed)) +\n \" \"\n ),\n _c(\"b-icon\", {\n staticClass: \"ml-2 mr-1\",\n attrs: {\n icon: \"cloud-download-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm._f(\"renderBps\")(_vm.downSpeed)) +\n \" \"\n )\n ],\n 1\n )\n : _vm._e()\n ]\n )\n ])\n ]\n : _vm._e()\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SyncBlock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"column is-one-half\" }, [\n _c(\n \"div\",\n { staticClass: \"wuji-card\" },\n [\n _vm.state == 1\n ? [\n _c(\"h6\", { staticClass: \"title is-6 mb-2 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Sync your data\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"info \" }, [\n _c(\"div\", { staticClass: \"des two-line\" }, [\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n \"Follow the guide to start syncing your files across multiple devices.\"\n )\n ) +\n \" \"\n )\n ])\n ]),\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/sync_icon.png */ \"./src/assets/img/sync_icon.png\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"buttons\" },\n [\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-primary\",\n size: \"is-small\",\n rounded: \"\"\n },\n on: { click: _vm.openSyncPanel }\n },\n [_vm._v(_vm._s(_vm.$t(\"Go !\")))]\n )\n ],\n 1\n )\n ]\n : _vm._e(),\n _vm.state == 2\n ? [\n _c(\"div\", { staticClass: \"is-flex is-align-items-center\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h6\", { staticClass: \"title is-6 mb-2 has-text-white\" }, [\n _vm._v(_vm._s(_vm.$t(\"Sync your data\")))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Add New Device\"),\n position: \"is-top\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button-new mdi mdi-plus\",\n attrs: { type: \"button\" },\n on: { click: _vm.openSyncPanel }\n })\n ]\n ),\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Config\"),\n position: \"is-top\",\n type: \"is-dark\"\n }\n },\n [\n _c(\"button\", {\n staticClass: \"icon-button-new mdi mdi-cog-outline\",\n attrs: { type: \"button\" },\n on: { click: _vm.gotoAdvancedPanel }\n })\n ]\n )\n ],\n 1\n )\n ]),\n _c(\"div\", { staticClass: \"columns mb-0 mt-2 is-mobile\" }, [\n _c(\n \"div\",\n { staticClass: \"column is-flex is-align-items-center\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-32x32\",\n attrs: { src: __webpack_require__(/*! @/assets/img/device.png */ \"./src/assets/img/device.png\") }\n }),\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"p\", { staticClass: \"is-size-65 ml-2 one-line\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Up to Date\")) +\n \" \" +\n _vm._s(_vm.activeDevice) +\n \"/\" +\n _vm._s(_vm.totalDevice)\n )\n ])\n ])\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"column is-flex is-align-items-center\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-32x32\",\n attrs: { src: __webpack_require__(/*! @/assets/img/folder1.png */ \"./src/assets/img/folder1.png\") }\n }),\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"p\", { staticClass: \"is-size-65 ml-2 one-line\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Up to Date\")) +\n \" \" +\n _vm._s(_vm.activeFolders.length) +\n \"/\" +\n _vm._s(_vm.folders)\n )\n ])\n ])\n ],\n 1\n )\n ]),\n _c(\"div\", { staticClass: \"columns mb-0 mt-1 is-mobile\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"column pt-0 pb-0 is-flex is-align-items-center is-size-65\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: _vm.syncIcon,\n type: \"is-success\",\n \"custom-size\": \"mdi-18px\",\n \"custom-class\": _vm.spinner\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(_vm.syncState)) + \" \")\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"column pt-0 pb-0 is-flex is-align-items-center is-size-65 is-justify-content-end \"\n },\n [\n _vm.syncState == \"Synchronized\"\n ? _c(\"b\", { staticClass: \"one-line\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Total\")) +\n \":\" +\n _vm._s(_vm._f(\"renderSize\")(_vm.totalSize))\n )\n ])\n : _vm._e(),\n _vm.syncState == \"Synchronizing\"\n ? _c(\n \"p\",\n {\n staticClass:\n \"one-line is-flex is-align-items-center\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"cloud-upload-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm._f(\"renderBps\")(_vm.upSpeed)) +\n \" \"\n ),\n _c(\"b-icon\", {\n staticClass: \"ml-2 mr-1\",\n attrs: {\n icon: \"cloud-download-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm._f(\"renderBps\")(_vm.downSpeed)) +\n \" \"\n )\n ],\n 1\n )\n : _vm._e()\n ]\n )\n ])\n ]\n : _vm._e()\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SyncBlock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncPanel.vue?vue&type=template&id=2dcf23a9&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncPanel.vue?vue&type=template&id=2dcf23a9&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SyncPanel.vue?vue&type=template&id=2dcf23a9& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SyncPanel.vue?vue&type=template&id=2dcf23a9& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.$t(\"Sync Guide\")))\n ])\n ]),\n _c(\"div\", { staticClass: \"is-flex is-align-items-center\" }, [\n _c(\n \"div\",\n {\n staticClass: \"is-flex is-align-items-center modal-close-container\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]\n )\n ])\n ]),\n _c(\"section\", { staticClass: \"modal-card-body\" }, [\n _c(\"div\", { staticClass: \"columns is-mobile\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"column is-8 is-offset-2 is-12-mobile is-offset-0-mobile\"\n },\n [\n _c(\"div\", { staticClass: \"columns is-mobile steps\" }, [\n _c(\"div\", { staticClass: \"column has-text-centered\" }, [\n _c(\n \"span\",\n {\n staticClass: \"dot\",\n class: [\n { active: _vm.step == 1 },\n { \"ok-dot\": _vm.step > 1 }\n ],\n attrs: { \"data-title\": \"1\" }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ]),\n _c(\"div\", { staticClass: \"column has-text-centered\" }, [\n _c(\n \"span\",\n {\n staticClass: \"dot \",\n class: [\n { active: _vm.step == 2 },\n { \"ok-dot\": _vm.step > 2 }\n ],\n attrs: { \"data-title\": \"2\" }\n },\n [_vm._v(_vm._s(_vm.$t(\"Config\")))]\n )\n ]),\n _c(\"div\", { staticClass: \"column has-text-centered\" }, [\n _c(\n \"span\",\n {\n staticClass: \"dot \",\n class: [\n { active: _vm.step == 3 },\n { \"ok-dot\": _vm.step > 2 }\n ],\n attrs: { \"data-title\": \"3\" }\n },\n [_vm._v(_vm._s(_vm.$t(\"Complete\")))]\n )\n ])\n ])\n ]\n )\n ]),\n _c(\"div\", [\n _vm.step == 1\n ? _c(\n \"div\",\n { staticClass: \"step1 has-text-centered \" },\n [\n _c(\"h1\", { staticClass: \"title is-5 has-text-weight-normal\" }, [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Download Syncthing on the device you want to sync with CasaOS\"\n )\n )\n )\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-justify-content-center mt-6\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-176x176\",\n attrs: {\n src: __webpack_require__(\"./src/assets/img sync recursive ^\\\\.\\\\/.*\\\\.svg$\")(\"./\" + _vm.icon + \".svg\")\n }\n })\n ],\n 1\n ),\n !_vm.showMore\n ? [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center mt-5\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n size: \"is-large\",\n label: _vm.$t(\"Get Syncthing for\", {\n os: _vm.broswerUA.os.name\n }),\n loading: _vm.isGettingUrl,\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(_vm.osName)\n }\n }\n })\n ],\n 1\n ),\n _vm.platform == \"android\"\n ? _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-ghost\",\n label: _vm.$t(\"Download APK\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\"Android\", \"apk\")\n }\n }\n })\n ],\n 1\n )\n : _vm._e()\n ]\n : _vm._e(),\n _vm.showMore\n ? _c(\"div\", { staticClass: \"columns is-mobile mt-4\" }, [\n _c(\"div\", { staticClass: \"column is-8 is-offset-2\" }, [\n _c(\"div\", { staticClass: \"columns is-mobile \" }, [\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing Win x64\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\n \"Windows\",\n \"x64\"\n )\n }\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing Win x32\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\n \"Windows\",\n \"x64\"\n )\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ]),\n _c(\"div\", { staticClass: \"columns is-mobile\" }, [\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing macOS\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\"macOS\")\n }\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing Andorid\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.downloadSyncthing(\n _vm.syncthingAndroidDlUrl\n )\n }\n }\n })\n ],\n 1\n ),\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-ghost\",\n label: _vm.$t(\"Download APK\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.downloadSyncthing(\n _vm.syncthingAndroidDlUrl1\n )\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n ])\n ])\n : _vm._e(),\n !_vm.showMore\n ? _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center mt-5 mb-5\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-ghost\",\n label: _vm.$t(\"Show all Platforms\"),\n rounded: \"\"\n },\n on: { click: _vm.showMorePlatform }\n })\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"p\",\n {\n staticClass:\n \"is-flex is-align-items-top is-size-65 is-justify-content-center\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2\",\n staticStyle: { color: \"#F8D149\" },\n attrs: { icon: \"information\" }\n }),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n 'Install and open the downloaded application, then click the \"Next\" button.'\n )\n ) +\n \" \"\n )\n ],\n 1\n )\n ],\n 2\n )\n : _vm._e(),\n _vm.step == 2\n ? _c(\n \"div\",\n { staticClass: \"step2\" },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Device ID\"), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\n \"Fill in your Device ID to continue\"\n ),\n disabled: _vm.isSubmited,\n expanded: \"\"\n },\n on: { input: _vm.checkDeviceId },\n model: {\n value: _vm.deviceId,\n callback: function($$v) {\n _vm.deviceId = $$v\n },\n expression: \"deviceId\"\n }\n }),\n _c(\n \"p\",\n { staticClass: \"control\" },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-primary\",\n label: _vm.$t(\"Submit\"),\n loading: _vm.isSubmiting,\n disabled: !_vm.isValId || _vm.isSubmited\n },\n on: { click: _vm.submitNewDevice }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"h3\", { staticClass: \"title is-6 mt-5 mb-3\" }, [\n _vm._v(_vm._s(_vm.$t(_vm.helpTitle)))\n ]),\n _c(\n \"b-tabs\",\n {\n model: {\n value: _vm.platform,\n callback: function($$v) {\n _vm.platform = $$v\n },\n expression: \"platform\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n {\n key: \"windows\",\n attrs: {\n label: \"Windows\",\n icon: \"microsoft-windows\",\n value: \"windows\"\n }\n },\n [\n _c(\"div\", { staticClass: \"t-box\" }, [\n !_vm.isSubmited\n ? _c(\"div\", [\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\n _vm._s(_vm.$t(\"Open the SyncTrayzor\"))\n )\n ]),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Find the Device ID\")) +\n \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-2\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-ShowID.png */ \"./src/assets/syncthing_tutorials/Windows-ShowID.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-DeviceID.png */ \"./src/assets/syncthing_tutorials/Windows-DeviceID.png\")\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e(),\n _vm.isSubmited\n ? _c(\"div\", [\n _c(\n \"ol\",\n [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new device on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDevice.png */ \"./src/assets/syncthing_tutorials/Windows-NewDevice.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDeviceSave.png */ \"./src/assets/syncthing_tutorials/Windows-NewDeviceSave.png\")\n }\n }),\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new folder on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewFolder.png */ \"./src/assets/syncthing_tutorials/Windows-NewFolder.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewFolderSave.png */ \"./src/assets/syncthing_tutorials/Windows-NewFolderSave.png\")\n }\n }),\n _c(\"li\", [_vm._v(_vm._s(_vm.$t(\"Done!\")))])\n ],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n ),\n _c(\n \"b-tab-item\",\n {\n key: \"macos\",\n attrs: { label: \"macOS\", icon: \"apple\", value: \"macos\" }\n },\n [\n _c(\"div\", { staticClass: \"t-box\" }, [\n !_vm.isSubmited\n ? _c(\"div\", [\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Open Syncthing in the Launchpad\"\n )\n )\n )\n ]),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Find the Syncthing icon in the menubar\"\n )\n ) + \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-1\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-icon.png */ \"./src/assets/syncthing_tutorials/macOS-icon.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-2\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-Config.png */ \"./src/assets/syncthing_tutorials/macOS-Config.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Find the Device ID\")) +\n \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-2\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-ShowID.png */ \"./src/assets/syncthing_tutorials/macOS-ShowID.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-DeviceID.png */ \"./src/assets/syncthing_tutorials/macOS-DeviceID.png\")\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e(),\n _vm.isSubmited\n ? _c(\"div\", [\n _c(\n \"ol\",\n [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new device on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDevice.png */ \"./src/assets/syncthing_tutorials/Windows-NewDevice.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDeviceSave.png */ \"./src/assets/syncthing_tutorials/Windows-NewDeviceSave.png\")\n }\n }),\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new folder on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-NewFolder.png */ \"./src/assets/syncthing_tutorials/macOS-NewFolder.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-NewFolderSave.png */ \"./src/assets/syncthing_tutorials/macOS-NewFolderSave.png\")\n }\n }),\n _c(\"li\", [_vm._v(_vm._s(_vm.$t(\"Done!\")))])\n ],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n ),\n _c(\n \"b-tab-item\",\n {\n key: \"android\",\n attrs: {\n label: \"Android\",\n icon: \"android\",\n value: \"android\"\n }\n },\n [\n _c(\"div\", { staticClass: \"t-box\" }, [\n !_vm.isSubmited\n ? _c(\"div\", [\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(_vm._s(_vm.$t(\"Open Syncthing\")))\n ]),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Open the menu\")) + \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-Menu.png */ \"./src/assets/syncthing_tutorials/Android-Menu.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(\n _vm.$t('Choose \"Show device ID\"')\n ) + \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-ShowDeviceID.png */ \"./src/assets/syncthing_tutorials/Android-ShowDeviceID.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Copy the Device ID\")) +\n \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-DeviceID.png */ \"./src/assets/syncthing_tutorials/Android-DeviceID.png\")\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e(),\n _vm.isSubmited\n ? _c(\"div\", [\n _c(\n \"ol\",\n [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new device on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewDevice.png */ \"./src/assets/syncthing_tutorials/Android-NewDevice.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewDeviceAdd.png */ \"./src/assets/syncthing_tutorials/Android-NewDeviceAdd.png\")\n }\n }),\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new folder on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewFolder.png */ \"./src/assets/syncthing_tutorials/Android-NewFolder.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewFolderCreate.png */ \"./src/assets/syncthing_tutorials/Android-NewFolderCreate.png\")\n }\n }),\n _c(\"li\", [_vm._v(_vm._s(_vm.$t(\"Done!\")))])\n ],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.step == 3\n ? _c(\"div\", { staticClass: \"step3\" }, [\n _c(\"div\", { staticClass: \"mt-6\" }, [\n _c(\n \"h3\",\n {\n staticClass:\n \"title is-4 has-text-centered has-text-weight-normal\"\n },\n [_vm._v(_vm._s(_vm.$t(\"There you go!\")))]\n ),\n _c(\n \"h2\",\n {\n staticClass:\n \"subtitle is-5 has-text-centered has-text-weight-light\"\n },\n [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\"\n )\n )\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/sync.json */ \"./src/assets/ani/sync.json\"),\n autoPlay: true,\n loop: true\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e()\n ])\n ]),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center \" },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 is-flex is-align-items-center is-justify-content-center \",\n class: { \"pl-7\": !(_vm.step == 2 && !_vm.isSubmited) }\n },\n [\n _c(\"p\", { staticClass: \"is-size-7 has-text-grey\\tmr-2\" }, [\n _vm._v(\"Powered by\")\n ]),\n _c(\"b-image\", {\n staticClass: \"syncthing-logo\",\n attrs: { src: __webpack_require__(/*! @/assets/img/syncthing-logo.svg */ \"./src/assets/img/syncthing-logo.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.step == 1 || (_vm.step == 2 && _vm.isSubmited),\n expression: \"step == 1 || (step == 2 && isSubmited)\"\n }\n ],\n attrs: { label: _vm.$t(\"Next\"), type: \"is-primary\", rounded: \"\" },\n on: { click: _vm.nextStep }\n }),\n _c(\"b-button\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.step == 3,\n expression: \"step == 3\"\n }\n ],\n attrs: {\n label: _vm.$t(\"Close\"),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SyncPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.$t(\"Sync Guide\")))\n ])\n ]),\n _c(\"div\", { staticClass: \"is-flex is-align-items-center\" }, [\n _c(\n \"div\",\n {\n staticClass: \"is-flex is-align-items-center modal-close-container\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]\n )\n ])\n ]),\n _c(\"section\", { staticClass: \"modal-card-body\" }, [\n _c(\"div\", { staticClass: \"columns is-mobile\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"column is-8 is-offset-2 is-12-mobile is-offset-0-mobile\"\n },\n [\n _c(\"div\", { staticClass: \"columns is-mobile steps\" }, [\n _c(\"div\", { staticClass: \"column has-text-centered\" }, [\n _c(\n \"span\",\n {\n staticClass: \"dot\",\n class: [\n { active: _vm.step == 1 },\n { \"ok-dot\": _vm.step > 1 }\n ],\n attrs: { \"data-title\": \"1\" }\n },\n [_vm._v(_vm._s(_vm.$t(\"Install\")))]\n )\n ]),\n _c(\"div\", { staticClass: \"column has-text-centered\" }, [\n _c(\n \"span\",\n {\n staticClass: \"dot \",\n class: [\n { active: _vm.step == 2 },\n { \"ok-dot\": _vm.step > 2 }\n ],\n attrs: { \"data-title\": \"2\" }\n },\n [_vm._v(_vm._s(_vm.$t(\"Config\")))]\n )\n ]),\n _c(\"div\", { staticClass: \"column has-text-centered\" }, [\n _c(\n \"span\",\n {\n staticClass: \"dot \",\n class: [\n { active: _vm.step == 3 },\n { \"ok-dot\": _vm.step > 2 }\n ],\n attrs: { \"data-title\": \"3\" }\n },\n [_vm._v(_vm._s(_vm.$t(\"Complete\")))]\n )\n ])\n ])\n ]\n )\n ]),\n _c(\"div\", [\n _vm.step == 1\n ? _c(\n \"div\",\n { staticClass: \"step1 has-text-centered \" },\n [\n _c(\"h1\", { staticClass: \"title is-5 has-text-weight-normal\" }, [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Download Syncthing on the device you want to sync with CasaOS\"\n )\n )\n )\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-justify-content-center mt-6\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-176x176\",\n attrs: {\n src: __webpack_require__(\"./src/assets/img sync recursive ^\\\\.\\\\/.*\\\\.svg$\")(\"./\" + _vm.icon + \".svg\")\n }\n })\n ],\n 1\n ),\n !_vm.showMore\n ? [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center mt-5\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n size: \"is-large\",\n label: _vm.$t(\"Get Syncthing for\", {\n os: _vm.broswerUA.os.name\n }),\n loading: _vm.isGettingUrl,\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(_vm.osName)\n }\n }\n })\n ],\n 1\n ),\n _vm.platform == \"android\"\n ? _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-ghost\",\n label: _vm.$t(\"Download APK\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\"Android\", \"apk\")\n }\n }\n })\n ],\n 1\n )\n : _vm._e()\n ]\n : _vm._e(),\n _vm.showMore\n ? _c(\"div\", { staticClass: \"columns is-mobile mt-4\" }, [\n _c(\"div\", { staticClass: \"column is-8 is-offset-2\" }, [\n _c(\"div\", { staticClass: \"columns is-mobile \" }, [\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing Win x64\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\n \"Windows\",\n \"x64\"\n )\n }\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing Win x32\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\n \"Windows\",\n \"x64\"\n )\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ]),\n _c(\"div\", { staticClass: \"columns is-mobile\" }, [\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing macOS\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.getDownloadUrl(\"macOS\")\n }\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"column has-text-centered\" },\n [\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-dark\",\n label: \"Syncthing Andorid\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.downloadSyncthing(\n _vm.syncthingAndroidDlUrl\n )\n }\n }\n })\n ],\n 1\n ),\n _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-ghost\",\n label: _vm.$t(\"Download APK\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.downloadSyncthing(\n _vm.syncthingAndroidDlUrl1\n )\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n ])\n ])\n : _vm._e(),\n !_vm.showMore\n ? _c(\n \"p\",\n {\n staticClass:\n \"control is-flex is-justify-content-center mt-5 mb-5\"\n },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-ghost\",\n label: _vm.$t(\"Show all Platforms\"),\n rounded: \"\"\n },\n on: { click: _vm.showMorePlatform }\n })\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"p\",\n {\n staticClass:\n \"is-flex is-align-items-top is-size-65 is-justify-content-center\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2\",\n staticStyle: { color: \"#F8D149\" },\n attrs: { icon: \"information\" }\n }),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n 'Install and open the downloaded application, then click the \"Next\" button.'\n )\n ) +\n \" \"\n )\n ],\n 1\n )\n ],\n 2\n )\n : _vm._e(),\n _vm.step == 2\n ? _c(\n \"div\",\n { staticClass: \"step2\" },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Device ID\"), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\n \"Fill in your Device ID to continue\"\n ),\n disabled: _vm.isSubmited,\n expanded: \"\"\n },\n on: { input: _vm.checkDeviceId },\n model: {\n value: _vm.deviceId,\n callback: function($$v) {\n _vm.deviceId = $$v\n },\n expression: \"deviceId\"\n }\n }),\n _c(\n \"p\",\n { staticClass: \"control\" },\n [\n _c(\"b-button\", {\n attrs: {\n type: \"is-primary\",\n label: _vm.$t(\"Submit\"),\n loading: _vm.isSubmiting,\n disabled: !_vm.isValId || _vm.isSubmited\n },\n on: { click: _vm.submitNewDevice }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"h3\", { staticClass: \"title is-6 mt-5 mb-3\" }, [\n _vm._v(_vm._s(_vm.$t(_vm.helpTitle)))\n ]),\n _c(\n \"b-tabs\",\n {\n model: {\n value: _vm.platform,\n callback: function($$v) {\n _vm.platform = $$v\n },\n expression: \"platform\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n {\n key: \"windows\",\n attrs: {\n label: \"Windows\",\n icon: \"microsoft-windows\",\n value: \"windows\"\n }\n },\n [\n _c(\"div\", { staticClass: \"t-box\" }, [\n !_vm.isSubmited\n ? _c(\"div\", [\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\n _vm._s(_vm.$t(\"Open the SyncTrayzor\"))\n )\n ]),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Find the Device ID\")) +\n \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-2\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-ShowID.png */ \"./src/assets/syncthing_tutorials/Windows-ShowID.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-DeviceID.png */ \"./src/assets/syncthing_tutorials/Windows-DeviceID.png\")\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e(),\n _vm.isSubmited\n ? _c(\"div\", [\n _c(\n \"ol\",\n [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new device on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDevice.png */ \"./src/assets/syncthing_tutorials/Windows-NewDevice.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDeviceSave.png */ \"./src/assets/syncthing_tutorials/Windows-NewDeviceSave.png\")\n }\n }),\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new folder on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewFolder.png */ \"./src/assets/syncthing_tutorials/Windows-NewFolder.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewFolderSave.png */ \"./src/assets/syncthing_tutorials/Windows-NewFolderSave.png\")\n }\n }),\n _c(\"li\", [_vm._v(_vm._s(_vm.$t(\"Done!\")))])\n ],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n ),\n _c(\n \"b-tab-item\",\n {\n key: \"macos\",\n attrs: { label: \"macOS\", icon: \"apple\", value: \"macos\" }\n },\n [\n _c(\"div\", { staticClass: \"t-box\" }, [\n !_vm.isSubmited\n ? _c(\"div\", [\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Open Syncthing in the Launchpad\"\n )\n )\n )\n ]),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Find the Syncthing icon in the menubar\"\n )\n ) + \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-1\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-icon.png */ \"./src/assets/syncthing_tutorials/macOS-icon.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-2\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-Config.png */ \"./src/assets/syncthing_tutorials/macOS-Config.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Find the Device ID\")) +\n \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-2\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-ShowID.png */ \"./src/assets/syncthing_tutorials/macOS-ShowID.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-DeviceID.png */ \"./src/assets/syncthing_tutorials/macOS-DeviceID.png\")\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e(),\n _vm.isSubmited\n ? _c(\"div\", [\n _c(\n \"ol\",\n [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new device on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDevice.png */ \"./src/assets/syncthing_tutorials/Windows-NewDevice.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Windows-NewDeviceSave.png */ \"./src/assets/syncthing_tutorials/Windows-NewDeviceSave.png\")\n }\n }),\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new folder on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-NewFolder.png */ \"./src/assets/syncthing_tutorials/macOS-NewFolder.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/macOS-NewFolderSave.png */ \"./src/assets/syncthing_tutorials/macOS-NewFolderSave.png\")\n }\n }),\n _c(\"li\", [_vm._v(_vm._s(_vm.$t(\"Done!\")))])\n ],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n ),\n _c(\n \"b-tab-item\",\n {\n key: \"android\",\n attrs: {\n label: \"Android\",\n icon: \"android\",\n value: \"android\"\n }\n },\n [\n _c(\"div\", { staticClass: \"t-box\" }, [\n !_vm.isSubmited\n ? _c(\"div\", [\n _c(\"ol\", [\n _c(\"li\", [\n _vm._v(_vm._s(_vm.$t(\"Open Syncthing\")))\n ]),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Open the menu\")) + \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-Menu.png */ \"./src/assets/syncthing_tutorials/Android-Menu.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(\n _vm.$t('Choose \"Show device ID\"')\n ) + \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-ShowDeviceID.png */ \"./src/assets/syncthing_tutorials/Android-ShowDeviceID.png\")\n }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n [\n _vm._v(\n _vm._s(_vm.$t(\"Copy the Device ID\")) +\n \" \"\n ),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-DeviceID.png */ \"./src/assets/syncthing_tutorials/Android-DeviceID.png\")\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e(),\n _vm.isSubmited\n ? _c(\"div\", [\n _c(\n \"ol\",\n [\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new device on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewDevice.png */ \"./src/assets/syncthing_tutorials/Android-NewDevice.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewDeviceAdd.png */ \"./src/assets/syncthing_tutorials/Android-NewDeviceAdd.png\")\n }\n }),\n _c(\"li\", [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Add new folder on your device\"\n )\n )\n )\n ]),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewFolder.png */ \"./src/assets/syncthing_tutorials/Android-NewFolder.png\")\n }\n }),\n _c(\"b-image\", {\n staticClass: \"t-img t-img-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/syncthing_tutorials/Android-NewFolderCreate.png */ \"./src/assets/syncthing_tutorials/Android-NewFolderCreate.png\")\n }\n }),\n _c(\"li\", [_vm._v(_vm._s(_vm.$t(\"Done!\")))])\n ],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.step == 3\n ? _c(\"div\", { staticClass: \"step3\" }, [\n _c(\"div\", { staticClass: \"mt-6\" }, [\n _c(\n \"h3\",\n {\n staticClass:\n \"title is-4 has-text-centered has-text-weight-normal\"\n },\n [_vm._v(_vm._s(_vm.$t(\"There you go!\")))]\n ),\n _c(\n \"h2\",\n {\n staticClass:\n \"subtitle is-5 has-text-centered has-text-weight-light\"\n },\n [\n _vm._v(\n _vm._s(\n _vm.$t(\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\"\n )\n )\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/sync.json */ \"./src/assets/ani/sync.json\"),\n autoPlay: true,\n loop: true\n }\n })\n ],\n 1\n )\n ])\n ])\n : _vm._e()\n ])\n ]),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center \" },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"flex1 is-flex is-align-items-center is-justify-content-center \",\n class: { \"pl-7\": !(_vm.step == 2 && !_vm.isSubmited) }\n },\n [\n _c(\"p\", { staticClass: \"is-size-7 has-text-grey\\tmr-2\" }, [\n _vm._v(\"Powered by\")\n ]),\n _c(\"b-image\", {\n staticClass: \"syncthing-logo\",\n attrs: { src: __webpack_require__(/*! @/assets/img/syncthing-logo.svg */ \"./src/assets/img/syncthing-logo.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.step == 1 || (_vm.step == 2 && _vm.isSubmited),\n expression: \"step == 1 || (step == 2 && isSubmited)\"\n }\n ],\n attrs: { label: _vm.$t(\"Next\"), type: \"is-primary\", rounded: \"\" },\n on: { click: _vm.nextStep }\n }),\n _c(\"b-button\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.step == 3,\n expression: \"step == 3\"\n }\n ],\n attrs: {\n label: _vm.$t(\"Close\"),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/SyncPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalCard.vue?vue&type=template&id=6617c1dc&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalCard.vue?vue&type=template&id=6617c1dc&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TerminalCard.vue?vue&type=template&id=6617c1dc& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TerminalCard.vue?vue&type=template&id=6617c1dc& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fullscreen\",\n {\n staticClass: \"fullScreen pl-2 pt-2 pb-2\",\n class: { \"mt-5\": !_vm.fullscreen },\n attrs: { fullscreen: _vm.fullscreen, teleport: true, \"page-only\": true },\n on: {\n \"update:fullscreen\": function($event) {\n _vm.fullscreen = $event\n },\n change: _vm.onWindowResize\n }\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"fullscreen-button\",\n on: { click: _vm.toggleFullScreen }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.buttonIcon } })],\n 1\n ),\n _c(\"div\", { staticClass: \"xterm\", attrs: { id: \"xterm\" } })\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"fullscreen\",\n {\n staticClass: \"fullScreen pl-2 pt-2 pb-2\",\n class: { \"mt-5\": !_vm.fullscreen },\n attrs: { fullscreen: _vm.fullscreen, teleport: true, \"page-only\": true },\n on: {\n \"update:fullscreen\": function($event) {\n _vm.fullscreen = $event\n },\n change: _vm.onWindowResize\n }\n },\n [\n _c(\n \"a\",\n {\n staticClass: \"fullscreen-button\",\n on: { click: _vm.toggleFullScreen }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.buttonIcon } })],\n 1\n ),\n _c(\"div\", { staticClass: \"xterm\", attrs: { id: \"xterm\" } })\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalPanel.vue?vue&type=template&id=15bf04e8&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalPanel.vue?vue&type=template&id=15bf04e8&":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TerminalPanel.vue?vue&type=template&id=15bf04e8& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TerminalPanel.vue?vue&type=template&id=15bf04e8& ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\"h2\", { staticClass: \"title is-4\" }, [_vm._v(\"CasaOS\")]),\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n _c(\n \"div\",\n { staticClass: \"flex1\" },\n [\n _c(\n \"b-tabs\",\n { attrs: { animated: false }, on: { input: _vm.onInput } },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Terminal\"), value: \"terminal\" } },\n [\n _c(\"terminal-card\", {\n ref: \"terminal\",\n attrs: { wsUrl: _vm.wsUrl }\n })\n ],\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Logs\"), value: \"logs\" } },\n [\n _c(\"logs-card\", {\n ref: \"logs\",\n attrs: { data: _vm.logData }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ]),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\"h2\", { staticClass: \"title is-4\" }, [_vm._v(\"CasaOS\")]),\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n _c(\n \"div\",\n { staticClass: \"flex1\" },\n [\n _c(\n \"b-tabs\",\n { attrs: { animated: false }, on: { input: _vm.onInput } },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Terminal\"), value: \"terminal\" } },\n [\n _c(\"terminal-card\", {\n ref: \"terminal\",\n attrs: { wsUrl: _vm.wsUrl }\n })\n ],\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"Logs\"), value: \"logs\" } },\n [\n _c(\"logs-card\", {\n ref: \"logs\",\n attrs: { data: _vm.logData }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ]),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TopBar.vue?vue&type=template&id=ae7504a4&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TopBar.vue?vue&type=template&id=ae7504a4&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TopBar.vue?vue&type=template&id=ae7504a4& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TopBar.vue?vue&type=template&id=ae7504a4& ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"navbar top-bar is-flex is-align-items-center\" },\n [\n _c(\n \"div\",\n { staticClass: \"navbar-brand ml-3\" },\n [\n _c(\n \"div\",\n {\n staticClass: \"is-flex is-align-items-center mr-3 ml-3\",\n attrs: { id: \"sidebar-btn\" }\n },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.sidebarIconLabel,\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n {\n attrs: { role: \"button\" },\n on: { click: _vm.showSideBar }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.sidebarIcon } })],\n 1\n )\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-dropdown\",\n {\n staticClass: \"navbar-item \",\n attrs: { \"aria-role\": \"list\", animation: \"slide-fade\" },\n on: { \"active-change\": _vm.getUserInfo },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Account\"),\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"account-circle\" }\n })\n ],\n 1\n )\n ]\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n attrs: {\n \"aria-role\": \"menu-item\",\n focusable: false,\n custom: \"\"\n }\n },\n [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Account\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center item\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-40x40 mr-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/Account.png */ \"./src/assets/img/Account.png\"),\n rounded: \"\"\n }\n }),\n _c(\"b\", [_vm._v(_vm._s(_vm.userInfo.user_name))])\n ],\n 1\n ),\n _c(\"div\", [\n _c(\n \"a\",\n {\n attrs: { \"aria-role\": \"button\" },\n on: { click: _vm.showAccountPanel }\n },\n [_c(\"b-icon\", { attrs: { icon: \"account-edit\" } })],\n 1\n )\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center item mt-2\" },\n [\n _c(\"div\", {\n staticClass: \"is-flex is-align-items-center flex1\"\n }),\n _c(\n \"div\",\n [\n _c(\n \"b-button\",\n {\n staticClass: \"ml-2\",\n attrs: {\n type: \"is-dark\",\n size: \"is-small\",\n rounded: \"\"\n },\n on: { click: _vm.logout }\n },\n [_vm._v(_vm._s(_vm.$t(\"Logout\")))]\n )\n ],\n 1\n )\n ]\n )\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-dropdown\",\n {\n staticClass: \"navbar-item\",\n attrs: { \"aria-role\": \"list\", animation: \"slide-fade\" },\n on: { \"active-change\": _vm.onOpen },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Settings\"),\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [_c(\"b-icon\", { attrs: { icon: \"tune\" } })],\n 1\n )\n ]\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n attrs: {\n \"aria-role\": \"menu-item\",\n focusable: false,\n custom: \"\"\n }\n },\n [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Dashboard Setting\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-2\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"magnify\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"Search Engine\")))])\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _c(\n \"b-field\",\n [\n _c(\n \"b-select\",\n {\n staticClass: \"set-select\",\n attrs: { size: \"is-small\" },\n on: { input: _vm.saveData },\n model: {\n value: _vm.barData.search_engine,\n callback: function($$v) {\n _vm.$set(\n _vm.barData,\n \"search_engine\",\n $$v\n )\n },\n expression: \"barData.search_engine\"\n }\n },\n [\n _c(\n \"option\",\n {\n attrs: {\n value: \"https://duckduckgo.com/?q=\"\n }\n },\n [_vm._v(\"DuckDuckGo\")]\n ),\n _c(\n \"option\",\n {\n attrs: {\n value:\n \"https://www.google.com/search?q=\"\n }\n },\n [_vm._v(\"Google\")]\n ),\n _c(\n \"option\",\n {\n attrs: {\n value: \"https://www.bing.com/search?q=\"\n }\n },\n [_vm._v(\"Bing\")]\n )\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-2\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"translate\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"Language\")))])\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _c(\n \"b-field\",\n [\n _c(\n \"b-select\",\n {\n staticClass: \"set-select\",\n attrs: { size: \"is-small\" },\n on: { input: _vm.saveData },\n model: {\n value: _vm.barData.lang,\n callback: function($$v) {\n _vm.$set(_vm.barData, \"lang\", $$v)\n },\n expression: \"barData.lang\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"de\" } }, [\n _vm._v(\"Deutsch\")\n ]),\n _c(\"option\", { attrs: { value: \"en\" } }, [\n _vm._v(\"English\")\n ]),\n _c(\"option\", { attrs: { value: \"es\" } }, [\n _vm._v(\"Español\")\n ]),\n _c(\"option\", { attrs: { value: \"fr\" } }, [\n _vm._v(\"Français\")\n ]),\n _c(\"option\", { attrs: { value: \"it\" } }, [\n _vm._v(\"Italiano\")\n ]),\n _c(\"option\", { attrs: { value: \"ru\" } }, [\n _vm._v(\"Русский\")\n ]),\n _c(\"option\", { attrs: { value: \"zh\" } }, [\n _vm._v(\"简体中文\")\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-1\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"view-dashboard-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"WebUI Port\")))])\n ],\n 1\n ),\n _c(\"div\", [_vm._v(\" \" + _vm._s(_vm.port) + \" \")])\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-end update-container mb-2\"\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-dark\",\n size: \"is-small\",\n rounded: \"\"\n },\n on: { click: _vm.showPortPanel }\n },\n [_vm._v(_vm._s(_vm.$t(\"Edit\")))]\n )\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center item\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: { icon: \"sync\", \"custom-size\": \"mdi-18px\" }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"Update\")))])\n ],\n 1\n ),\n _c(\"div\", [\n _vm._v(\n \" v\" + _vm._s(_vm.updateInfo.current_version) + \" \"\n )\n ])\n ]\n ),\n !_vm.updateInfo.is_need\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center pl-55\" },\n [\n _vm._v(\" \" + _vm._s(_vm.$t(_vm.latestText)) + \" \"),\n _c(\"b-icon\", {\n staticClass: \"ml-1\",\n attrs: {\n type: \"is-success\",\n icon: \"check\",\n \"custom-size\": \"mdi-18px\"\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.updateInfo.is_need\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-end update-container pl-5\"\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _vm._v(_vm._s(_vm.$t(_vm.updateText)))\n ]),\n _c(\n \"b-button\",\n {\n staticClass: \"ml-2\",\n attrs: {\n type: \"is-dark\",\n size: \"is-small\",\n loading: _vm.isUpdating,\n rounded: \"\"\n },\n on: { click: _vm.updateSystem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Update\")))]\n )\n ],\n 1\n )\n : _vm._e()\n ]\n )\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center ml-3\" },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Terminal & Logs\"),\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n {\n attrs: { role: \"button\" },\n on: { click: _vm.showTerminalPanel }\n },\n [_c(\"b-icon\", { attrs: { icon: \"console\" } })],\n 1\n )\n ]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._m(0)\n ]\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"navbar-menu\" }, [\n _c(\"div\", { staticClass: \"navbar-end mr-3\" })\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/TopBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"navbar top-bar is-flex is-align-items-center\" },\n [\n _c(\n \"div\",\n { staticClass: \"navbar-brand ml-3\" },\n [\n _c(\n \"div\",\n {\n staticClass: \"is-flex is-align-items-center mr-3 ml-3\",\n attrs: { id: \"sidebar-btn\" }\n },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.sidebarIconLabel,\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n {\n attrs: { role: \"button\" },\n on: { click: _vm.showSideBar }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.sidebarIcon } })],\n 1\n )\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-dropdown\",\n {\n staticClass: \"navbar-item \",\n attrs: { \"aria-role\": \"list\", animation: \"slide-fade\" },\n on: { \"active-change\": _vm.getUserInfo },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Account\"),\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"account-circle\" }\n })\n ],\n 1\n )\n ]\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n attrs: {\n \"aria-role\": \"menu-item\",\n focusable: false,\n custom: \"\"\n }\n },\n [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Account\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center item\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-40x40 mr-3\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/Account.png */ \"./src/assets/img/Account.png\"),\n rounded: \"\"\n }\n }),\n _c(\"b\", [_vm._v(_vm._s(_vm.userInfo.user_name))])\n ],\n 1\n ),\n _c(\"div\", [\n _c(\n \"a\",\n {\n attrs: { \"aria-role\": \"button\" },\n on: { click: _vm.showAccountPanel }\n },\n [_c(\"b-icon\", { attrs: { icon: \"account-edit\" } })],\n 1\n )\n ])\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center item mt-2\" },\n [\n _c(\"div\", {\n staticClass: \"is-flex is-align-items-center flex1\"\n }),\n _c(\n \"div\",\n [\n _c(\n \"b-button\",\n {\n staticClass: \"ml-2\",\n attrs: {\n type: \"is-dark\",\n size: \"is-small\",\n rounded: \"\"\n },\n on: { click: _vm.logout }\n },\n [_vm._v(_vm._s(_vm.$t(\"Logout\")))]\n )\n ],\n 1\n )\n ]\n )\n ]\n )\n ],\n 1\n ),\n _c(\n \"b-dropdown\",\n {\n staticClass: \"navbar-item\",\n attrs: { \"aria-role\": \"list\", animation: \"slide-fade\" },\n on: { \"active-change\": _vm.onOpen },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Settings\"),\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [_c(\"b-icon\", { attrs: { icon: \"tune\" } })],\n 1\n )\n ]\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n attrs: {\n \"aria-role\": \"menu-item\",\n focusable: false,\n custom: \"\"\n }\n },\n [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Dashboard Setting\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-2\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"magnify\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"Search Engine\")))])\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _c(\n \"b-field\",\n [\n _c(\n \"b-select\",\n {\n staticClass: \"set-select\",\n attrs: { size: \"is-small\" },\n on: { input: _vm.saveData },\n model: {\n value: _vm.barData.search_engine,\n callback: function($$v) {\n _vm.$set(\n _vm.barData,\n \"search_engine\",\n $$v\n )\n },\n expression: \"barData.search_engine\"\n }\n },\n [\n _c(\n \"option\",\n {\n attrs: {\n value: \"https://duckduckgo.com/?q=\"\n }\n },\n [_vm._v(\"DuckDuckGo\")]\n ),\n _c(\n \"option\",\n {\n attrs: {\n value:\n \"https://www.google.com/search?q=\"\n }\n },\n [_vm._v(\"Google\")]\n ),\n _c(\n \"option\",\n {\n attrs: {\n value: \"https://www.bing.com/search?q=\"\n }\n },\n [_vm._v(\"Bing\")]\n )\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-2\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"translate\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"Language\")))])\n ],\n 1\n ),\n _c(\n \"div\",\n [\n _c(\n \"b-field\",\n [\n _c(\n \"b-select\",\n {\n staticClass: \"set-select\",\n attrs: { size: \"is-small\" },\n on: { input: _vm.saveData },\n model: {\n value: _vm.barData.lang,\n callback: function($$v) {\n _vm.$set(_vm.barData, \"lang\", $$v)\n },\n expression: \"barData.lang\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"de_de\" } }, [\n _vm._v(\"Deutsch\")\n ]),\n _c(\"option\", { attrs: { value: \"en_us\" } }, [\n _vm._v(\"English\")\n ]),\n _c(\"option\", { attrs: { value: \"es_es\" } }, [\n _vm._v(\"Español\")\n ]),\n _c(\"option\", { attrs: { value: \"fr_fr\" } }, [\n _vm._v(\"Français\")\n ]),\n _c(\"option\", { attrs: { value: \"it_ir\" } }, [\n _vm._v(\"Italiano\")\n ]),\n _c(\"option\", { attrs: { value: \"ru_ru\" } }, [\n _vm._v(\"Русский\")\n ]),\n _c(\"option\", { attrs: { value: \"zh_cn\" } }, [\n _vm._v(\"简体中文\")\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-1\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"view-dashboard-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"WebUI Port\")))])\n ],\n 1\n ),\n _c(\"div\", [_vm._v(\" \" + _vm._s(_vm.port) + \" \")])\n ]\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-end update-container mb-2\"\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"b-button\",\n {\n attrs: {\n type: \"is-dark\",\n size: \"is-small\",\n rounded: \"\"\n },\n on: { click: _vm.showPortPanel }\n },\n [_vm._v(_vm._s(_vm.$t(\"Edit\")))]\n )\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center item\" },\n [\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center flex1\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: { icon: \"sync\", \"custom-size\": \"mdi-18px\" }\n }),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(_vm._s(_vm.$t(\"Update\")))])\n ],\n 1\n ),\n _c(\"div\", [\n _vm._v(\n \" v\" + _vm._s(_vm.updateInfo.current_version) + \" \"\n )\n ])\n ]\n ),\n !_vm.updateInfo.is_need\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center pl-55\" },\n [\n _vm._v(\" \" + _vm._s(_vm.$t(_vm.latestText)) + \" \"),\n _c(\"b-icon\", {\n staticClass: \"ml-1\",\n attrs: {\n type: \"is-success\",\n icon: \"check\",\n \"custom-size\": \"mdi-18px\"\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.updateInfo.is_need\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-end update-container pl-5\"\n },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _vm._v(_vm._s(_vm.$t(_vm.updateText)))\n ]),\n _c(\n \"b-button\",\n {\n staticClass: \"ml-2\",\n attrs: {\n type: \"is-dark\",\n size: \"is-small\",\n loading: _vm.isUpdating,\n rounded: \"\"\n },\n on: { click: _vm.updateSystem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Update\")))]\n )\n ],\n 1\n )\n : _vm._e()\n ]\n )\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center ml-3\" },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Terminal & Logs\"),\n position: \"is-right\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n {\n attrs: { role: \"button\" },\n on: { click: _vm.showTerminalPanel }\n },\n [_c(\"b-icon\", { attrs: { icon: \"console\" } })],\n 1\n )\n ]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._m(0)\n ]\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"navbar-menu\" }, [\n _c(\"div\", { staticClass: \"navbar-end mr-3\" })\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/TopBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/CreatePanel.vue?vue&type=template&id=4de55683&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/CreatePanel.vue?vue&type=template&id=4de55683&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fileList/CreatePanel.vue?vue&type=template&id=4de55683& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fileList/CreatePanel.vue?vue&type=template&id=4de55683& ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.title))\n ])\n ])\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body\" },\n [\n _c(\n \"b-field\",\n {\n attrs: { label: \"Name\", type: _vm.errorType, message: _vm.message }\n },\n [\n _c(\"b-input\", {\n attrs: { maxlength: \"255\", expanded: \"\" },\n model: {\n value: _vm.name,\n callback: function($$v) {\n _vm.name = $$v\n },\n expression: \"name\"\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: \"Cancel\", type: \"is-grey\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: { label: \"Submit\", type: \"is-dark\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.create()\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/CreatePanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.title))\n ])\n ])\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body\" },\n [\n _c(\n \"b-field\",\n {\n attrs: { label: \"Name\", type: _vm.errorType, message: _vm.message }\n },\n [\n _c(\"b-input\", {\n attrs: { maxlength: \"255\", expanded: \"\" },\n model: {\n value: _vm.name,\n callback: function($$v) {\n _vm.name = $$v\n },\n expression: \"name\"\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: \"Cancel\", type: \"is-grey\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: { label: \"Submit\", type: \"is-dark\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.create()\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/CreatePanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/FilePanel.vue?vue&type=template&id=609296c3&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/FilePanel.vue?vue&type=template&id=609296c3&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fileList/FilePanel.vue?vue&type=template&id=609296c3& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fileList/FilePanel.vue?vue&type=template&id=609296c3& ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _vm._m(0),\n _c(\"section\", { staticClass: \"modal-card-body\" }, [\n _c(\n \"nav\",\n { staticClass: \"breadcrumb \", attrs: { \"aria-label\": \"breadcrumbs\" } },\n [\n _c(\"ul\", [\n _c(\"li\", [\n _vm.showItem\n ? _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.getParentList()\n }\n }\n },\n [_c(\"b-icon\", { attrs: { icon: \"arrow-up\" } })],\n 1\n )\n : _vm._e()\n ]),\n _vm.showItem\n ? _c(\"li\", [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.getFileList(_vm.rootPath)\n }\n }\n },\n [_vm._v(_vm._s(_vm.rootName))]\n )\n ])\n : _vm._e(),\n _vm.showItem & _vm.showDots\n ? _c(\"li\", [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.getParentList()\n }\n }\n },\n [_vm._v(\"...\")]\n )\n ])\n : _vm._e(),\n _c(\"li\", { staticClass: \"is-active \" }, [\n _c(\"div\", [_vm._v(_vm._s(_vm.lastFolder))])\n ])\n ])\n ]\n ),\n _c(\n \"ul\",\n { staticClass: \"filelist\" },\n _vm._l(_vm.fileList, function(item, index) {\n return _c(\"list-item\", {\n key: item.path,\n attrs: {\n id: item.path,\n name: item.name,\n IsDir: item.is_dir,\n path: item.path,\n state: _vm.checkActive(item.path)\n },\n on: { active: _vm.activeFile, expand: _vm.getFileList }\n })\n }),\n 1\n )\n ]),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _vm.rootPath == \"/DATA\"\n ? _c(\n \"div\",\n [\n _c(\n \"b-tooltip\",\n { attrs: { label: \"Create Folder\", type: \"is-dark\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"add-button\",\n on: {\n click: function($event) {\n return _vm.showCreatePanel(true)\n }\n }\n },\n [_c(\"b-icon\", { attrs: { icon: \"folder-plus\" } })],\n 1\n )\n ]\n ),\n _vm.rootPath != _vm.path\n ? [\n _c(\n \"b-tooltip\",\n { attrs: { label: \"Create File\", type: \"is-dark\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"add-button\",\n on: {\n click: function($event) {\n return _vm.showCreatePanel(false)\n }\n }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"file-plus-outline\" }\n })\n ],\n 1\n )\n ]\n )\n ]\n : _vm._e()\n ],\n 2\n )\n : _vm._e()\n ]),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: \"Cancel\", type: \"is-grey\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: { label: \"Select\", type: \"is-dark\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.selectFile()\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(\"Select\")\n ])\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/FilePanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _vm._m(0),\n _c(\"section\", { staticClass: \"modal-card-body\" }, [\n _c(\n \"nav\",\n { staticClass: \"breadcrumb \", attrs: { \"aria-label\": \"breadcrumbs\" } },\n [\n _c(\"ul\", [\n _c(\"li\", [\n _vm.showItem\n ? _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.getParentList()\n }\n }\n },\n [_c(\"b-icon\", { attrs: { icon: \"arrow-up\" } })],\n 1\n )\n : _vm._e()\n ]),\n _vm.showItem\n ? _c(\"li\", [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.getFileList(_vm.rootPath)\n }\n }\n },\n [_vm._v(_vm._s(_vm.rootName))]\n )\n ])\n : _vm._e(),\n _vm.showItem & _vm.showDots\n ? _c(\"li\", [\n _c(\n \"a\",\n {\n on: {\n click: function($event) {\n return _vm.getParentList()\n }\n }\n },\n [_vm._v(\"...\")]\n )\n ])\n : _vm._e(),\n _c(\"li\", { staticClass: \"is-active \" }, [\n _c(\"div\", [_vm._v(_vm._s(_vm.lastFolder))])\n ])\n ])\n ]\n ),\n _c(\n \"ul\",\n { staticClass: \"filelist\" },\n _vm._l(_vm.fileList, function(item, index) {\n return _c(\"list-item\", {\n key: item.path,\n attrs: {\n id: item.path,\n name: item.name,\n IsDir: item.is_dir,\n path: item.path,\n state: _vm.checkActive(item.path)\n },\n on: { active: _vm.activeFile, expand: _vm.getFileList }\n })\n }),\n 1\n )\n ]),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _vm.rootPath == \"/DATA\"\n ? _c(\n \"div\",\n [\n _c(\n \"b-tooltip\",\n { attrs: { label: \"Create Folder\", type: \"is-dark\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"add-button\",\n on: {\n click: function($event) {\n return _vm.showCreatePanel(true)\n }\n }\n },\n [_c(\"b-icon\", { attrs: { icon: \"folder-plus\" } })],\n 1\n )\n ]\n ),\n _vm.rootPath != _vm.path\n ? [\n _c(\n \"b-tooltip\",\n { attrs: { label: \"Create File\", type: \"is-dark\" } },\n [\n _c(\n \"a\",\n {\n staticClass: \"add-button\",\n on: {\n click: function($event) {\n return _vm.showCreatePanel(false)\n }\n }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"file-plus-outline\" }\n })\n ],\n 1\n )\n ]\n )\n ]\n : _vm._e()\n ],\n 2\n )\n : _vm._e()\n ]),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: \"Cancel\", type: \"is-grey\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: { label: \"Select\", type: \"is-dark\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.selectFile()\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(\"Select\")\n ])\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/FilePanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/ListItem.vue?vue&type=template&id=2e6e6f74&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/ListItem.vue?vue&type=template&id=2e6e6f74&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fileList/ListItem.vue?vue&type=template&id=2e6e6f74& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fileList/ListItem.vue?vue&type=template&id=2e6e6f74& ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"li\",\n {\n staticClass: \"ficon\",\n class: [_vm.icon, { active: _vm.state }],\n on: { click: _vm.activeSelf, dblclick: _vm.expandDir }\n },\n [_vm._v(_vm._s(_vm.name))]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/ListItem.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"li\",\n {\n staticClass: \"ficon\",\n class: [_vm.icon, { active: _vm.state }],\n on: { click: _vm.activeSelf, dblclick: _vm.expandDir }\n },\n [_vm._v(_vm._s(_vm.name))]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/ListItem.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/EnvInputGroup.vue?vue&type=template&id=1b52fcc2&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/EnvInputGroup.vue?vue&type=template&id=1b52fcc2&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/EnvInputGroup.vue?vue&type=template&id=1b52fcc2& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/EnvInputGroup.vue?vue&type=template&id=1b52fcc2& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5\" },\n [\n _c(\n \"div\",\n { staticClass: \"field is-flex is-align-items-center mb-2\" },\n [\n _c(\"label\", { staticClass: \"label mb-0 flex1\" }, [\n _vm._v(_vm._s(_vm.label))\n ]),\n _c(\n \"b-button\",\n {\n attrs: { \"icon-left\": \"plus\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.addItem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Add\")))]\n )\n ],\n 1\n ),\n _vm.vdata.length == 0\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-5 info\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"information\", size: \"is-small\" }\n }),\n _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.message) + \" \")])\n ],\n 1\n )\n : _vm._e(),\n _vm._l(_vm.vdata, function(item, index) {\n return _c(\n \"div\",\n { key: \"port\" + index, staticClass: \"port-item\" },\n [\n _c(\"b-icon\", {\n staticClass: \"is-clickable\",\n attrs: { icon: \"close\", size: \"is-small\" },\n nativeOn: {\n click: function($event) {\n return _vm.removeItem(index)\n }\n }\n }),\n index < 1\n ? [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name1), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name1),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name2), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name2),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n : [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\"b-input\", {\n attrs: { placeholder: _vm.$t(_vm.name1), expanded: \"\" },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n }),\n _c(\"b-input\", {\n attrs: { placeholder: _vm.$t(_vm.name2), expanded: \"\" },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n )\n ]\n ],\n 2\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/EnvInputGroup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5\" },\n [\n _c(\n \"div\",\n { staticClass: \"field is-flex is-align-items-center mb-2\" },\n [\n _c(\"label\", { staticClass: \"label mb-0 flex1\" }, [\n _vm._v(_vm._s(_vm.label))\n ]),\n _c(\n \"b-button\",\n {\n attrs: { \"icon-left\": \"plus\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.addItem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Add\")))]\n )\n ],\n 1\n ),\n _vm.vdata.length == 0\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-5 info\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"information\", size: \"is-small\" }\n }),\n _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.message) + \" \")])\n ],\n 1\n )\n : _vm._e(),\n _vm._l(_vm.vdata, function(item, index) {\n return _c(\n \"div\",\n { key: \"port\" + index, staticClass: \"port-item\" },\n [\n _c(\"b-icon\", {\n staticClass: \"is-clickable\",\n attrs: { icon: \"close\", size: \"is-small\" },\n nativeOn: {\n click: function($event) {\n return _vm.removeItem(index)\n }\n }\n }),\n index < 1\n ? [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name1), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name1),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name2), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name2),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n : [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\"b-input\", {\n attrs: { placeholder: _vm.$t(_vm.name1), expanded: \"\" },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n }),\n _c(\"b-input\", {\n attrs: { placeholder: _vm.$t(_vm.name2), expanded: \"\" },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n )\n ]\n ],\n 2\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/EnvInputGroup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/IconInput.vue?vue&type=template&id=062d0271&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/IconInput.vue?vue&type=template&id=062d0271&":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/IconInput.vue?vue&type=template&id=062d0271& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/IconInput.vue?vue&type=template&id=062d0271& ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"b-input\", {\n attrs: {\n placeholder: _vm.placeholder,\n expanded: \"\",\n \"icon-right\": \"image-filter-center-focus-strong\",\n \"icon-right-clickable\": \"\"\n },\n on: { input: _vm.handleInput, \"icon-right-click\": _vm.selectFile },\n model: {\n value: _vm.path,\n callback: function($$v) {\n _vm.path = $$v\n },\n expression: \"path\"\n }\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/IconInput.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"b-input\", {\n attrs: {\n placeholder: _vm.placeholder,\n expanded: \"\",\n \"icon-right\": \"image-filter-center-focus-strong\",\n \"icon-right-clickable\": \"\"\n },\n on: { input: _vm.handleInput, \"icon-right-click\": _vm.selectFile },\n model: {\n value: _vm.path,\n callback: function($$v) {\n _vm.path = $$v\n },\n expression: \"path\"\n }\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/IconInput.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/ImportPanel.vue?vue&type=template&id=03d0dfff&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/ImportPanel.vue?vue&type=template&id=03d0dfff&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/ImportPanel.vue?vue&type=template&id=03d0dfff& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/ImportPanel.vue?vue&type=template&id=03d0dfff& ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.$t(\"Import\")))\n ])\n ])\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body\" },\n [\n _c(\n \"b-tabs\",\n {\n model: {\n value: _vm.activeTab,\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: \"Docker CLI\" } },\n [\n _c(\n \"b-field\",\n {\n attrs: {\n type: { \"is-danger\": _vm.parseError },\n message: _vm.errors\n }\n },\n [\n _c(\"b-input\", {\n staticClass: \"import-area\",\n attrs: { maxlength: \"800\", type: \"textarea\" },\n model: {\n value: _vm.dockerCliCommands,\n callback: function($$v) {\n _vm.dockerCliCommands = $$v\n },\n expression: \"dockerCliCommands\"\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"AppFile\") } },\n [\n _c(\n \"b-field\",\n {\n attrs: {\n type: { \"is-danger\": _vm.parseError },\n message: _vm.errors\n }\n },\n [\n _c(\n \"b-upload\",\n {\n attrs: {\n \"drag-drop\": \"\",\n expanded: \"\",\n accept: \"application/json\"\n },\n on: { input: _vm.onSelect },\n model: {\n value: _vm.dropFiles,\n callback: function($$v) {\n _vm.dropFiles = $$v\n },\n expression: \"dropFiles\"\n }\n },\n [\n _c(\"section\", { staticClass: \"section\" }, [\n _c(\n \"div\",\n { staticClass: \"content has-text-centered\" },\n [\n _c(\n \"p\",\n [\n _c(\"b-icon\", {\n attrs: { icon: \"upload\", size: \"is-large\" }\n })\n ],\n 1\n ),\n _c(\"p\", [_vm._v(_vm._s(_vm.dropText))])\n ]\n )\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Cancel\"), rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: { click: _vm.emitSubmit }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/ImportPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1\" }, [\n _c(\"h3\", { staticClass: \"title is-4 has-text-weight-normal\" }, [\n _vm._v(_vm._s(_vm.$t(\"Import\")))\n ])\n ])\n ]),\n _c(\n \"section\",\n { staticClass: \"modal-card-body\" },\n [\n _c(\n \"b-tabs\",\n {\n model: {\n value: _vm.activeTab,\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: \"Docker CLI\" } },\n [\n _c(\n \"b-field\",\n {\n attrs: {\n type: { \"is-danger\": _vm.parseError },\n message: _vm.errors\n }\n },\n [\n _c(\"b-input\", {\n staticClass: \"import-area\",\n attrs: { maxlength: \"800\", type: \"textarea\" },\n model: {\n value: _vm.dockerCliCommands,\n callback: function($$v) {\n _vm.dockerCliCommands = $$v\n },\n expression: \"dockerCliCommands\"\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: _vm.$t(\"AppFile\") } },\n [\n _c(\n \"b-field\",\n {\n attrs: {\n type: { \"is-danger\": _vm.parseError },\n message: _vm.errors\n }\n },\n [\n _c(\n \"b-upload\",\n {\n attrs: {\n \"drag-drop\": \"\",\n expanded: \"\",\n accept: \"application/json\"\n },\n on: { input: _vm.onSelect },\n model: {\n value: _vm.dropFiles,\n callback: function($$v) {\n _vm.dropFiles = $$v\n },\n expression: \"dropFiles\"\n }\n },\n [\n _c(\"section\", { staticClass: \"section\" }, [\n _c(\n \"div\",\n { staticClass: \"content has-text-centered\" },\n [\n _c(\n \"p\",\n [\n _c(\"b-icon\", {\n attrs: { icon: \"upload\", size: \"is-large\" }\n })\n ],\n 1\n ),\n _c(\"p\", [_vm._v(_vm._s(_vm.dropText))])\n ]\n )\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center\" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: { label: _vm.$t(\"Cancel\"), rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n }),\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: { click: _vm.emitSubmit }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/ImportPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/InputGroup.vue?vue&type=template&id=22835c65&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/InputGroup.vue?vue&type=template&id=22835c65&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/InputGroup.vue?vue&type=template&id=22835c65& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/InputGroup.vue?vue&type=template&id=22835c65& ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5\" },\n [\n _c(\n \"div\",\n { staticClass: \"field is-flex is-align-items-center mb-2\" },\n [\n _c(\"label\", { staticClass: \"label mb-0 flex1\" }, [\n _vm._v(_vm._s(_vm.label))\n ]),\n _c(\n \"b-button\",\n {\n attrs: { \"icon-left\": \"plus\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.addItem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Add\")))]\n )\n ],\n 1\n ),\n _vm.vdata.length == 0\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-5 info\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"information\", size: \"is-small\" }\n }),\n _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.message) + \" \")])\n ],\n 1\n )\n : _vm._e(),\n _vm._l(_vm.vdata, function(item, index) {\n return _c(\n \"div\",\n { key: \"port\" + index, staticClass: \"port-item\" },\n [\n _c(\"b-icon\", {\n staticClass: \"is-clickable\",\n attrs: { icon: \"close\", size: \"is-small\" },\n nativeOn: {\n click: function($event) {\n return _vm.removeItem(index)\n }\n }\n }),\n index < 1\n ? [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name2), expanded: \"\" } },\n [\n _c(\"icon-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name2),\n type: _vm.type,\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name1), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name1),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n : [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\n \"b-field\",\n { attrs: { expanded: \"\" } },\n [\n _c(\"icon-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name2),\n type: _vm.type,\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name1),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n ],\n 2\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/InputGroup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5\" },\n [\n _c(\n \"div\",\n { staticClass: \"field is-flex is-align-items-center mb-2\" },\n [\n _c(\"label\", { staticClass: \"label mb-0 flex1\" }, [\n _vm._v(_vm._s(_vm.label))\n ]),\n _c(\n \"b-button\",\n {\n attrs: { \"icon-left\": \"plus\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.addItem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Add\")))]\n )\n ],\n 1\n ),\n _vm.vdata.length == 0\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-5 info\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"information\", size: \"is-small\" }\n }),\n _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.message) + \" \")])\n ],\n 1\n )\n : _vm._e(),\n _vm._l(_vm.vdata, function(item, index) {\n return _c(\n \"div\",\n { key: \"port\" + index, staticClass: \"port-item\" },\n [\n _c(\"b-icon\", {\n staticClass: \"is-clickable\",\n attrs: { icon: \"close\", size: \"is-small\" },\n nativeOn: {\n click: function($event) {\n return _vm.removeItem(index)\n }\n }\n }),\n index < 1\n ? [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name2), expanded: \"\" } },\n [\n _c(\"icon-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name2),\n type: _vm.type,\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(_vm.name1), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name1),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n : [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _c(\n \"b-field\",\n { attrs: { expanded: \"\" } },\n [\n _c(\"icon-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name2),\n type: _vm.type,\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(_vm.name1),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n ],\n 2\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/InputGroup.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/Ports.vue?vue&type=template&id=431c319c&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/Ports.vue?vue&type=template&id=431c319c&":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/Ports.vue?vue&type=template&id=431c319c& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/forms/Ports.vue?vue&type=template&id=431c319c& ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5\" },\n [\n _c(\n \"div\",\n { staticClass: \"field is-flex is-align-items-center mb-2\" },\n [\n _c(\"label\", { staticClass: \"label mb-0 flex1\" }, [\n _vm._v(_vm._s(_vm.$t(\"Ports\")))\n ]),\n _c(\n \"b-button\",\n {\n attrs: { \"icon-left\": \"plus\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.addItem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Add\")))]\n )\n ],\n 1\n ),\n _vm.vdata.length == 0\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-5 info\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"information\", size: \"is-small\" }\n }),\n _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"No ports now, click “+” to add one.\")) +\n \" \"\n )\n ])\n ],\n 1\n )\n : _vm._e(),\n _vm._l(_vm.vdata, function(item, index) {\n return _c(\n \"div\",\n { key: \"port\" + index, staticClass: \"port-item\" },\n [\n _c(\"b-icon\", {\n staticClass: \"is-clickable\",\n attrs: { icon: \"close\", size: \"is-small\" },\n nativeOn: {\n click: function($event) {\n return _vm.removeItem(index)\n }\n }\n }),\n index < 1\n ? [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _vm.showHostPost\n ? _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Host\"), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Host\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Container\"), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Container\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Protocol\"), expanded: \"\" } },\n [\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Protocol\"),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.protocol,\n callback: function($$v) {\n _vm.$set(item, \"protocol\", $$v)\n },\n expression: \"item.protocol\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"tcp\" } }, [\n _vm._v(\"TCP\")\n ]),\n _c(\"option\", { attrs: { value: \"udp\" } }, [\n _vm._v(\"UDP\")\n ]),\n _c(\"option\", { attrs: { value: \"both\" } }, [\n _vm._v(\"TCP + UDP\")\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ]\n : [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _vm.showHostPost\n ? _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Host\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n : _vm._e(),\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Container\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n }),\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Protocol\"),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.protocol,\n callback: function($$v) {\n _vm.$set(item, \"protocol\", $$v)\n },\n expression: \"item.protocol\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"tcp\" } }, [\n _vm._v(\"TCP\")\n ]),\n _c(\"option\", { attrs: { value: \"udp\" } }, [\n _vm._v(\"UDP\")\n ]),\n _c(\"option\", { attrs: { value: \"both\" } }, [\n _vm._v(\"TCP + UDP\")\n ])\n ]\n )\n ],\n 1\n )\n ]\n ],\n 2\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/Ports.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"mb-5\" },\n [\n _c(\n \"div\",\n { staticClass: \"field is-flex is-align-items-center mb-2\" },\n [\n _c(\"label\", { staticClass: \"label mb-0 flex1\" }, [\n _vm._v(_vm._s(_vm.$t(\"Ports\")))\n ]),\n _c(\n \"b-button\",\n {\n attrs: { \"icon-left\": \"plus\", size: \"is-small\", rounded: \"\" },\n on: { click: _vm.addItem }\n },\n [_vm._v(_vm._s(_vm.$t(\"Add\")))]\n )\n ],\n 1\n ),\n _vm.vdata.length == 0\n ? _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center mb-5 info\" },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2 \",\n attrs: { icon: \"information\", size: \"is-small\" }\n }),\n _c(\"span\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"No ports now, click “+” to add one.\")) +\n \" \"\n )\n ])\n ],\n 1\n )\n : _vm._e(),\n _vm._l(_vm.vdata, function(item, index) {\n return _c(\n \"div\",\n { key: \"port\" + index, staticClass: \"port-item\" },\n [\n _c(\"b-icon\", {\n staticClass: \"is-clickable\",\n attrs: { icon: \"close\", size: \"is-small\" },\n nativeOn: {\n click: function($event) {\n return _vm.removeItem(index)\n }\n }\n }),\n index < 1\n ? [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _vm.showHostPost\n ? _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Host\"), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Host\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Container\"), expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Container\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Protocol\"), expanded: \"\" } },\n [\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Protocol\"),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.protocol,\n callback: function($$v) {\n _vm.$set(item, \"protocol\", $$v)\n },\n expression: \"item.protocol\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"tcp\" } }, [\n _vm._v(\"TCP\")\n ]),\n _c(\"option\", { attrs: { value: \"udp\" } }, [\n _vm._v(\"UDP\")\n ]),\n _c(\"option\", { attrs: { value: \"both\" } }, [\n _vm._v(\"TCP + UDP\")\n ])\n ]\n )\n ],\n 1\n )\n ],\n 1\n )\n ]\n : [\n _c(\n \"b-field\",\n { attrs: { grouped: \"\" } },\n [\n _vm.showHostPost\n ? _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Host\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.host,\n callback: function($$v) {\n _vm.$set(item, \"host\", $$v)\n },\n expression: \"item.host\"\n }\n })\n : _vm._e(),\n _c(\"b-input\", {\n attrs: {\n placeholder: _vm.$t(\"Container\"),\n type: \"number\",\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.container,\n callback: function($$v) {\n _vm.$set(item, \"container\", $$v)\n },\n expression: \"item.container\"\n }\n }),\n _c(\n \"b-select\",\n {\n attrs: {\n placeholder: _vm.$t(\"Protocol\"),\n expanded: \"\"\n },\n on: { input: _vm.handleInput },\n model: {\n value: item.protocol,\n callback: function($$v) {\n _vm.$set(item, \"protocol\", $$v)\n },\n expression: \"item.protocol\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"tcp\" } }, [\n _vm._v(\"TCP\")\n ]),\n _c(\"option\", { attrs: { value: \"udp\" } }, [\n _vm._v(\"UDP\")\n ]),\n _c(\"option\", { attrs: { value: \"both\" } }, [\n _vm._v(\"TCP + UDP\")\n ])\n ]\n )\n ],\n 1\n )\n ]\n ],\n 2\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/Ports.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Home.vue?vue&type=template&id=fae5bece&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Home.vue?vue&type=template&id=fae5bece&":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Home.vue?vue&type=template&id=fae5bece& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Home.vue?vue&type=template&id=fae5bece& ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.isLoading\n ? _c(\n \"div\",\n { staticClass: \"out-container\" },\n [\n _c(\"top-bar\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.topBarAni,\n expression: \"topBarAni\"\n }\n ],\n on: { showSideBar: _vm.showSideBar }\n }),\n _c(\"div\", { staticClass: \"contents pt-55\" }, [\n _c(\"div\", { staticClass: \"container\" }, [\n _c(\n \"div\",\n { staticClass: \"is-flex\" },\n [\n !_vm.hardwareInfoLoading ? _c(\"side-bar\") : _vm._e(),\n _c(\"div\", {\n staticClass: \"dark-bg\",\n class: { open: _vm.sidebarOpen }\n }),\n _c(\"div\", { staticClass: \"main-content\" }, [\n _c(\"section\", [_c(\"search-bar\")], 1),\n _c(\"section\", [_c(\"core-service\")], 1),\n _c(\"section\", [_c(\"apps\")], 1)\n ])\n ],\n 1\n )\n ])\n ])\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/Home.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.isLoading\n ? _c(\n \"div\",\n { staticClass: \"out-container\" },\n [\n _c(\"top-bar\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.topBarAni,\n expression: \"topBarAni\"\n }\n ],\n on: { showSideBar: _vm.showSideBar }\n }),\n _c(\"div\", { staticClass: \"contents pt-55\" }, [\n _c(\"div\", { staticClass: \"container\" }, [\n _c(\n \"div\",\n { staticClass: \"is-flex\" },\n [\n !_vm.hardwareInfoLoading ? _c(\"side-bar\") : _vm._e(),\n _c(\"div\", {\n staticClass: \"dark-bg\",\n class: { open: _vm.sidebarOpen }\n }),\n _c(\"div\", { staticClass: \"main-content\" }, [\n _c(\"section\", [_c(\"search-bar\")], 1),\n _c(\"section\", [_c(\"core-service\")], 1),\n _c(\"section\", [_c(\"apps\")], 1)\n ])\n ],\n 1\n )\n ])\n ])\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/Home.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Clock.vue?vue&type=template&id=072e1685&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Clock.vue?vue&type=template&id=072e1685&":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/widgets/Clock.vue?vue&type=template&id=072e1685& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/widgets/Clock.vue?vue&type=template&id=072e1685& ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"widget has-text-white clock\" }, [\n _c(\"div\", { staticClass: \"time\" }, [_vm._v(_vm._s(_vm.timeText))]),\n _c(\"div\", { staticClass: \"data\" }, [_vm._v(_vm._s(_vm.dateText))])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/widgets/Clock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"widget has-text-white clock\" }, [\n _c(\"div\", { staticClass: \"time\" }, [_vm._v(_vm._s(_vm.timeText))]),\n _c(\"div\", { staticClass: \"data\" }, [_vm._v(_vm._s(_vm.dateText))])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/widgets/Clock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Cpu.vue?vue&type=template&id=6accea42&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Cpu.vue?vue&type=template&id=6accea42&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/widgets/Cpu.vue?vue&type=template&id=6accea42& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/widgets/Cpu.vue?vue&type=template&id=6accea42& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"widget has-text-white clock is-relative pb-1\" },\n [\n _c(\n \"div\",\n { staticClass: \"arrow-btn\", on: { click: _vm.showMoreInfo } },\n [\n _c(\"b-icon\", {\n class: { open: _vm.showMore },\n attrs: { icon: \"chevron-right\" }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"columns is-mobile \" }, [\n _c(\n \"div\",\n { staticClass: \"column is-half has-text-centered\" },\n [\n _c(\"apexchart\", {\n attrs: {\n type: \"radialBar\",\n height: _vm.barHeight,\n options: _vm.chartOptions,\n series: _vm.cpuSeries\n }\n }),\n _c(\"p\", { staticClass: \"is-size-6-5\" }, [_vm._v(\"CPU\")])\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"column is-half has-text-centered\" },\n [\n _c(\"apexchart\", {\n attrs: {\n type: \"radialBar\",\n height: _vm.barHeight,\n options: _vm.chartOptions,\n series: _vm.ramSeries\n }\n }),\n _c(\"p\", { staticClass: \"is-size-6-5\" }, [_vm._v(\"RAM\")])\n ],\n 1\n )\n ]),\n _vm.showMore\n ? _c(\"div\", [\n _c(\n \"div\",\n { staticClass: \"more-info pt-3 pb-1\" },\n [\n _c(\n \"b-tabs\",\n {\n model: {\n value: _vm.activeTab,\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: \"CPU\" } },\n _vm._l(_vm.containerCpuList, function(item, index) {\n return _c(\"div\", { key: index + \"-cpu\" }, [\n !isNaN(item.usage)\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-size-7 is-align-items-center mb-2\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex-grow-1 is-flex is-align-items-center\"\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-16x16 mr-2\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n }),\n _c(\"span\", [_vm._v(_vm._s(item.title))])\n ],\n 1\n ),\n _c(\"div\", [_vm._v(_vm._s(item.usage) + \"%\")])\n ]\n )\n : _vm._e()\n ])\n }),\n 0\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: \"RAM\" } },\n _vm._l(_vm.containerRamList, function(item, index) {\n return _c(\"div\", { key: index + \"-rem\" }, [\n !isNaN(item.usage)\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-size-7 is-align-items-center mb-2\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex-grow-1 is-flex is-align-items-center\"\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-16x16 mr-2\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n }),\n _c(\"span\", [_vm._v(_vm._s(item.title))])\n ],\n 1\n ),\n _c(\"div\", [\n _vm._v(\n _vm._s(_vm._f(\"renderSize\")(item.usage))\n )\n ])\n ]\n )\n : _vm._e()\n ])\n }),\n 0\n )\n ],\n 1\n )\n ],\n 1\n )\n ])\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/widgets/Cpu.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"widget has-text-white clock is-relative pb-1\" },\n [\n _c(\n \"div\",\n { staticClass: \"arrow-btn\", on: { click: _vm.showMoreInfo } },\n [\n _c(\"b-icon\", {\n class: { open: _vm.showMore },\n attrs: { icon: \"chevron-right\" }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"columns is-mobile \" }, [\n _c(\n \"div\",\n { staticClass: \"column is-half has-text-centered\" },\n [\n _c(\"apexchart\", {\n attrs: {\n type: \"radialBar\",\n height: _vm.barHeight,\n options: _vm.chartOptions,\n series: _vm.cpuSeries\n }\n }),\n _c(\"p\", { staticClass: \"is-size-6-5\" }, [_vm._v(\"CPU\")])\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"column is-half has-text-centered\" },\n [\n _c(\"apexchart\", {\n attrs: {\n type: \"radialBar\",\n height: _vm.barHeight,\n options: _vm.chartOptions,\n series: _vm.ramSeries\n }\n }),\n _c(\"p\", { staticClass: \"is-size-6-5\" }, [_vm._v(\"RAM\")])\n ],\n 1\n )\n ]),\n _vm.showMore\n ? _c(\"div\", [\n _c(\n \"div\",\n { staticClass: \"more-info pt-3 pb-1\" },\n [\n _c(\n \"b-tabs\",\n {\n model: {\n value: _vm.activeTab,\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n },\n [\n _c(\n \"b-tab-item\",\n { attrs: { label: \"CPU\" } },\n _vm._l(_vm.containerCpuList, function(item, index) {\n return _c(\"div\", { key: index + \"-cpu\" }, [\n !isNaN(item.usage)\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-size-7 is-align-items-center mb-2\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex-grow-1 is-flex is-align-items-center\"\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-16x16 mr-2\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n }),\n _c(\"span\", [_vm._v(_vm._s(item.title))])\n ],\n 1\n ),\n _c(\"div\", [_vm._v(_vm._s(item.usage) + \"%\")])\n ]\n )\n : _vm._e()\n ])\n }),\n 0\n ),\n _c(\n \"b-tab-item\",\n { attrs: { label: \"RAM\" } },\n _vm._l(_vm.containerRamList, function(item, index) {\n return _c(\"div\", { key: index + \"-rem\" }, [\n !isNaN(item.usage)\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-size-7 is-align-items-center mb-2\"\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex-grow-1 is-flex is-align-items-center\"\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-16x16 mr-2\",\n attrs: {\n src: item.icon,\n \"src-fallback\": __webpack_require__(/*! @/assets/img/default.png */ \"./src/assets/img/default.png\"),\n \"webp-fallback\": \".jpg\"\n }\n }),\n _c(\"span\", [_vm._v(_vm._s(item.title))])\n ],\n 1\n ),\n _c(\"div\", [\n _vm._v(\n _vm._s(_vm._f(\"renderSize\")(item.usage))\n )\n ])\n ]\n )\n : _vm._e()\n ])\n }),\n 0\n )\n ],\n 1\n )\n ],\n 1\n )\n ])\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/widgets/Cpu.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Disks.vue?vue&type=template&id=457f6ced&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Disks.vue?vue&type=template&id=457f6ced&":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/widgets/Disks.vue?vue&type=template&id=457f6ced& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/widgets/Disks.vue?vue&type=template&id=457f6ced& ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"widget has-text-white disk is-relative\" }, [\n _c(\n \"div\",\n { staticClass: \"arrow-btn\", on: { click: _vm.showDiskManagement } },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"cog-outline\", \"custom-size\": \"mdi-18px\" }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"columns is-mobile is-multiline pt-2 \" }, [\n _c(\n \"div\",\n { staticClass: \"column is-full pb-1\" },\n [\n _c(\"div\", { staticClass: \"is-flex\" }, [\n _c(\n \"div\",\n { staticClass: \"header-icon\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/storage.png */ \"./src/assets/img/storage.png\") }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"ml-3 is-flex-grow-1 \" }, [\n _c(\n \"h4\",\n {\n staticClass:\n \"title is-size-6-5 mb-2 mt-1 has-text-left has-text-white one-line is-align-items-center is-flex\"\n },\n [\n _vm._v(_vm._s(_vm.$t(\"Storage\")) + \" \"),\n _vm.health\n ? _c(\n \"b\",\n {\n staticClass:\n \"has-text-success is-size-7 has-text-weight-normal ml-3\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Healthy\")))]\n )\n : _c(\n \"b\",\n {\n staticClass:\n \"has-text-danger is-size-7 has-text-weight-normal ml-3\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Damage\")))]\n )\n ]\n ),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 mt-1\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Used\")) +\n \": \" +\n _vm._s(_vm.renderSize(_vm.totalUsed))\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"Total\")) +\n \": \" +\n _vm._s(_vm.renderSize(_vm.totalSize))\n )\n ])\n ])\n ]),\n _c(\"b-progress\", {\n staticClass: \"mt-2\",\n attrs: {\n type: _vm._f(\"getProgressType\")(_vm.totalPercent),\n size: \"is-small\",\n value: _vm.totalPercent\n }\n })\n ],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/widgets/Disks.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"widget has-text-white disk is-relative\" }, [\n _c(\n \"div\",\n { staticClass: \"arrow-btn\", on: { click: _vm.showDiskManagement } },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"cog-outline\", \"custom-size\": \"mdi-18px\" }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"columns is-mobile is-multiline pt-2 \" }, [\n _c(\n \"div\",\n { staticClass: \"column is-full pb-1\" },\n [\n _c(\"div\", { staticClass: \"is-flex\" }, [\n _c(\n \"div\",\n { staticClass: \"header-icon\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-64x64\",\n attrs: { src: __webpack_require__(/*! @/assets/img/storage.png */ \"./src/assets/img/storage.png\") }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"ml-3 is-flex-grow-1 \" }, [\n _c(\n \"h4\",\n {\n staticClass:\n \"title is-size-6-5 mb-2 mt-1 has-text-left has-text-white one-line is-align-items-center is-flex\"\n },\n [\n _vm._v(_vm._s(_vm.$t(\"Storage\")) + \" \"),\n _vm.health\n ? _c(\n \"b\",\n {\n staticClass:\n \"has-text-success is-size-7 has-text-weight-normal ml-3\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Healthy\")))]\n )\n : _c(\n \"b\",\n {\n staticClass:\n \"has-text-danger is-size-7 has-text-weight-normal ml-3\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Damage\")))]\n )\n ]\n ),\n _c(\"p\", { staticClass: \"has-text-left is-size-7 mt-1\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"Used\")) +\n \": \" +\n _vm._s(_vm.renderSize(_vm.totalUsed))\n ),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"Total\")) +\n \": \" +\n _vm._s(_vm.renderSize(_vm.totalSize))\n )\n ])\n ])\n ]),\n _c(\"b-progress\", {\n staticClass: \"mt-2\",\n attrs: {\n type: _vm._f(\"getProgressType\")(_vm.totalPercent),\n size: \"is-small\",\n value: _vm.totalPercent\n }\n })\n ],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/widgets/Disks.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
@@ -1081,17 +1081,6 @@ eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/
/***/ }),
-/***/ "./node_modules/core-js/modules/es.function.name.js":
-/*!**********************************************************!*\
- !*** ./node_modules/core-js/modules/es.function.name.js ***!
- \**********************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-eval("var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.function.name.js?");
-
-/***/ }),
-
/***/ "./node_modules/core-js/modules/es.number.constructor.js":
/*!***************************************************************!*\
!*** ./node_modules/core-js/modules/es.number.constructor.js ***!
@@ -3800,9 +3789,9 @@ eval("\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/mock/empty.j
!*** ./node_modules/regenerator-runtime/runtime.js ***!
\*****************************************************/
/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+/***/ (function(module, exports) {
-eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : undefined\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/regenerator-runtime/runtime.js?");
+eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n\n\n//# sourceURL=webpack:///./node_modules/regenerator-runtime/runtime.js?");
/***/ }),
@@ -4316,17 +4305,6 @@ eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals
/***/ }),
-/***/ "./node_modules/webpack/buildin/module.js":
-/*!***********************************!*\
- !*** (webpack)/buildin/module.js ***!
- \***********************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");
-
-/***/ }),
-
/***/ "./node_modules/xterm-addon-attach/lib/xterm-addon-attach.js":
/*!*******************************************************************!*\
!*** ./node_modules/xterm-addon-attach/lib/xterm-addon-attach.js ***!
@@ -4903,7 +4881,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountPanel_vue_vue_type_template_id_bb9496f2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./AccountPanel.vue?vue&type=template&id=bb9496f2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AccountPanel.vue?vue&type=template&id=bb9496f2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountPanel_vue_vue_type_template_id_bb9496f2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountPanel_vue_vue_type_template_id_bb9496f2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/AccountPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountPanel_vue_vue_type_template_id_bb9496f2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./AccountPanel.vue?vue&type=template&id=bb9496f2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AccountPanel.vue?vue&type=template&id=bb9496f2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountPanel_vue_vue_type_template_id_bb9496f2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountPanel_vue_vue_type_template_id_bb9496f2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/AccountPanel.vue?");
/***/ }),
@@ -4939,7 +4917,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Apps_vue_vue_type_template_id_1cbdeda2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Apps.vue?vue&type=template&id=1cbdeda2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps.vue?vue&type=template&id=1cbdeda2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Apps_vue_vue_type_template_id_1cbdeda2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Apps_vue_vue_type_template_id_1cbdeda2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Apps_vue_vue_type_template_id_1cbdeda2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Apps.vue?vue&type=template&id=1cbdeda2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps.vue?vue&type=template&id=1cbdeda2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Apps_vue_vue_type_template_id_1cbdeda2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Apps_vue_vue_type_template_id_1cbdeda2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps.vue?");
/***/ }),
@@ -4975,7 +4953,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppCard_vue_vue_type_template_id_0ef4e844___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./AppCard.vue?vue&type=template&id=0ef4e844& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppCard.vue?vue&type=template&id=0ef4e844&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppCard_vue_vue_type_template_id_0ef4e844___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppCard_vue_vue_type_template_id_0ef4e844___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppCard.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppCard_vue_vue_type_template_id_0ef4e844___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./AppCard.vue?vue&type=template&id=0ef4e844& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppCard.vue?vue&type=template&id=0ef4e844&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppCard_vue_vue_type_template_id_0ef4e844___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppCard_vue_vue_type_template_id_0ef4e844___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppCard.vue?");
/***/ }),
@@ -5011,7 +4989,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSideBar_vue_vue_type_template_id_7e7fa090___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSideBar.vue?vue&type=template&id=7e7fa090& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppSideBar.vue?vue&type=template&id=7e7fa090&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSideBar_vue_vue_type_template_id_7e7fa090___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSideBar_vue_vue_type_template_id_7e7fa090___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppSideBar.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSideBar_vue_vue_type_template_id_7e7fa090___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSideBar.vue?vue&type=template&id=7e7fa090& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppSideBar.vue?vue&type=template&id=7e7fa090&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSideBar_vue_vue_type_template_id_7e7fa090___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSideBar_vue_vue_type_template_id_7e7fa090___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppSideBar.vue?");
/***/ }),
@@ -5047,7 +5025,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppTerminalPanel_vue_vue_type_template_id_a489bf38___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./AppTerminalPanel.vue?vue&type=template&id=a489bf38& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppTerminalPanel.vue?vue&type=template&id=a489bf38&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppTerminalPanel_vue_vue_type_template_id_a489bf38___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppTerminalPanel_vue_vue_type_template_id_a489bf38___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppTerminalPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppTerminalPanel_vue_vue_type_template_id_a489bf38___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./AppTerminalPanel.vue?vue&type=template&id=a489bf38& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Apps/AppTerminalPanel.vue?vue&type=template&id=a489bf38&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppTerminalPanel_vue_vue_type_template_id_a489bf38___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AppTerminalPanel_vue_vue_type_template_id_a489bf38___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Apps/AppTerminalPanel.vue?");
/***/ }),
@@ -5083,7 +5061,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CoreService_vue_vue_type_template_id_5da81dd4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./CoreService.vue?vue&type=template&id=5da81dd4& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CoreService.vue?vue&type=template&id=5da81dd4&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CoreService_vue_vue_type_template_id_5da81dd4___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CoreService_vue_vue_type_template_id_5da81dd4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/CoreService.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CoreService_vue_vue_type_template_id_5da81dd4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./CoreService.vue?vue&type=template&id=5da81dd4& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CoreService.vue?vue&type=template&id=5da81dd4&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CoreService_vue_vue_type_template_id_5da81dd4___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CoreService_vue_vue_type_template_id_5da81dd4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/CoreService.vue?");
/***/ }),
@@ -5119,7 +5097,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogsCard_vue_vue_type_template_id_44dac3e2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./LogsCard.vue?vue&type=template&id=44dac3e2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/LogsCard.vue?vue&type=template&id=44dac3e2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogsCard_vue_vue_type_template_id_44dac3e2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogsCard_vue_vue_type_template_id_44dac3e2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/LogsCard.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogsCard_vue_vue_type_template_id_44dac3e2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./LogsCard.vue?vue&type=template&id=44dac3e2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/LogsCard.vue?vue&type=template&id=44dac3e2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogsCard_vue_vue_type_template_id_44dac3e2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogsCard_vue_vue_type_template_id_44dac3e2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/LogsCard.vue?");
/***/ }),
@@ -5155,7 +5133,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_template_id_d32d57f8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Panel.vue?vue&type=template&id=d32d57f8& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Panel.vue?vue&type=template&id=d32d57f8&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_template_id_d32d57f8___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_template_id_d32d57f8___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Panel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_template_id_d32d57f8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Panel.vue?vue&type=template&id=d32d57f8& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Panel.vue?vue&type=template&id=d32d57f8&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_template_id_d32d57f8___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_template_id_d32d57f8___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Panel.vue?");
/***/ }),
@@ -5191,7 +5169,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PortPanel_vue_vue_type_template_id_bc6e2efa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./PortPanel.vue?vue&type=template&id=bc6e2efa& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/PortPanel.vue?vue&type=template&id=bc6e2efa&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PortPanel_vue_vue_type_template_id_bc6e2efa___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PortPanel_vue_vue_type_template_id_bc6e2efa___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/PortPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PortPanel_vue_vue_type_template_id_bc6e2efa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./PortPanel.vue?vue&type=template&id=bc6e2efa& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/PortPanel.vue?vue&type=template&id=bc6e2efa&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PortPanel_vue_vue_type_template_id_bc6e2efa___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PortPanel_vue_vue_type_template_id_bc6e2efa___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/PortPanel.vue?");
/***/ }),
@@ -5239,7 +5217,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchBar_vue_vue_type_template_id_0eca37cb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SearchBar.vue?vue&type=template&id=0eca37cb& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SearchBar.vue?vue&type=template&id=0eca37cb&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchBar_vue_vue_type_template_id_0eca37cb___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchBar_vue_vue_type_template_id_0eca37cb___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SearchBar.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchBar_vue_vue_type_template_id_0eca37cb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SearchBar.vue?vue&type=template&id=0eca37cb& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SearchBar.vue?vue&type=template&id=0eca37cb&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchBar_vue_vue_type_template_id_0eca37cb___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchBar_vue_vue_type_template_id_0eca37cb___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SearchBar.vue?");
/***/ }),
@@ -5287,7 +5265,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_47aa12d3___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Settings.vue?vue&type=template&id=47aa12d3& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Settings.vue?vue&type=template&id=47aa12d3&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_47aa12d3___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_47aa12d3___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Settings.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_47aa12d3___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Settings.vue?vue&type=template&id=47aa12d3& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Settings.vue?vue&type=template&id=47aa12d3&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_47aa12d3___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_47aa12d3___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Settings.vue?");
/***/ }),
@@ -5335,7 +5313,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_3eca7188___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SideBar.vue?vue&type=template&id=3eca7188& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SideBar.vue?vue&type=template&id=3eca7188&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_3eca7188___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_3eca7188___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SideBar.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_3eca7188___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SideBar.vue?vue&type=template&id=3eca7188& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SideBar.vue?vue&type=template&id=3eca7188&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_3eca7188___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_3eca7188___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SideBar.vue?");
/***/ }),
@@ -5371,7 +5349,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SmartBlock_vue_vue_type_template_id_4e77cc74___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SmartBlock.vue?vue&type=template&id=4e77cc74& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SmartBlock.vue?vue&type=template&id=4e77cc74&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SmartBlock_vue_vue_type_template_id_4e77cc74___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SmartBlock_vue_vue_type_template_id_4e77cc74___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SmartBlock.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SmartBlock_vue_vue_type_template_id_4e77cc74___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SmartBlock.vue?vue&type=template&id=4e77cc74& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SmartBlock.vue?vue&type=template&id=4e77cc74&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SmartBlock_vue_vue_type_template_id_4e77cc74___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SmartBlock_vue_vue_type_template_id_4e77cc74___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SmartBlock.vue?");
/***/ }),
@@ -5407,7 +5385,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DriveItem_vue_vue_type_template_id_43c6a089___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./DriveItem.vue?vue&type=template&id=43c6a089& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/DriveItem.vue?vue&type=template&id=43c6a089&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DriveItem_vue_vue_type_template_id_43c6a089___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DriveItem_vue_vue_type_template_id_43c6a089___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/DriveItem.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DriveItem_vue_vue_type_template_id_43c6a089___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./DriveItem.vue?vue&type=template&id=43c6a089& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/DriveItem.vue?vue&type=template&id=43c6a089&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DriveItem_vue_vue_type_template_id_43c6a089___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DriveItem_vue_vue_type_template_id_43c6a089___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/DriveItem.vue?");
/***/ }),
@@ -5443,7 +5421,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageItem_vue_vue_type_template_id_0721290c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./StorageItem.vue?vue&type=template&id=0721290c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/StorageItem.vue?vue&type=template&id=0721290c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageItem_vue_vue_type_template_id_0721290c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageItem_vue_vue_type_template_id_0721290c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/StorageItem.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageItem_vue_vue_type_template_id_0721290c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./StorageItem.vue?vue&type=template&id=0721290c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/StorageItem.vue?vue&type=template&id=0721290c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageItem_vue_vue_type_template_id_0721290c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageItem_vue_vue_type_template_id_0721290c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Storage/StorageItem.vue?");
/***/ }),
@@ -5479,7 +5457,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageManagerPanel_vue_vue_type_template_id_59635d1c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./StorageManagerPanel.vue?vue&type=template&id=59635d1c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/StorageManagerPanel.vue?vue&type=template&id=59635d1c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageManagerPanel_vue_vue_type_template_id_59635d1c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageManagerPanel_vue_vue_type_template_id_59635d1c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/StorageManagerPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageManagerPanel_vue_vue_type_template_id_59635d1c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./StorageManagerPanel.vue?vue&type=template&id=59635d1c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/StorageManagerPanel.vue?vue&type=template&id=59635d1c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageManagerPanel_vue_vue_type_template_id_59635d1c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_StorageManagerPanel_vue_vue_type_template_id_59635d1c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/StorageManagerPanel.vue?");
/***/ }),
@@ -5515,7 +5493,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncBlock_vue_vue_type_template_id_8ba71c9c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SyncBlock.vue?vue&type=template&id=8ba71c9c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncBlock.vue?vue&type=template&id=8ba71c9c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncBlock_vue_vue_type_template_id_8ba71c9c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncBlock_vue_vue_type_template_id_8ba71c9c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SyncBlock.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncBlock_vue_vue_type_template_id_8ba71c9c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SyncBlock.vue?vue&type=template&id=8ba71c9c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncBlock.vue?vue&type=template&id=8ba71c9c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncBlock_vue_vue_type_template_id_8ba71c9c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncBlock_vue_vue_type_template_id_8ba71c9c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SyncBlock.vue?");
/***/ }),
@@ -5563,7 +5541,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncPanel_vue_vue_type_template_id_2dcf23a9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SyncPanel.vue?vue&type=template&id=2dcf23a9& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncPanel.vue?vue&type=template&id=2dcf23a9&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncPanel_vue_vue_type_template_id_2dcf23a9___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncPanel_vue_vue_type_template_id_2dcf23a9___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SyncPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncPanel_vue_vue_type_template_id_2dcf23a9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./SyncPanel.vue?vue&type=template&id=2dcf23a9& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SyncPanel.vue?vue&type=template&id=2dcf23a9&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncPanel_vue_vue_type_template_id_2dcf23a9___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SyncPanel_vue_vue_type_template_id_2dcf23a9___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/SyncPanel.vue?");
/***/ }),
@@ -5599,7 +5577,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalCard_vue_vue_type_template_id_6617c1dc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./TerminalCard.vue?vue&type=template&id=6617c1dc& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalCard.vue?vue&type=template&id=6617c1dc&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalCard_vue_vue_type_template_id_6617c1dc___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalCard_vue_vue_type_template_id_6617c1dc___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalCard.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalCard_vue_vue_type_template_id_6617c1dc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./TerminalCard.vue?vue&type=template&id=6617c1dc& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalCard.vue?vue&type=template&id=6617c1dc&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalCard_vue_vue_type_template_id_6617c1dc___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalCard_vue_vue_type_template_id_6617c1dc___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalCard.vue?");
/***/ }),
@@ -5635,7 +5613,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalPanel_vue_vue_type_template_id_15bf04e8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./TerminalPanel.vue?vue&type=template&id=15bf04e8& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalPanel.vue?vue&type=template&id=15bf04e8&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalPanel_vue_vue_type_template_id_15bf04e8___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalPanel_vue_vue_type_template_id_15bf04e8___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalPanel_vue_vue_type_template_id_15bf04e8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./TerminalPanel.vue?vue&type=template&id=15bf04e8& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TerminalPanel.vue?vue&type=template&id=15bf04e8&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalPanel_vue_vue_type_template_id_15bf04e8___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TerminalPanel_vue_vue_type_template_id_15bf04e8___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/TerminalPanel.vue?");
/***/ }),
@@ -5671,7 +5649,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TopBar_vue_vue_type_template_id_ae7504a4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./TopBar.vue?vue&type=template&id=ae7504a4& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TopBar.vue?vue&type=template&id=ae7504a4&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TopBar_vue_vue_type_template_id_ae7504a4___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TopBar_vue_vue_type_template_id_ae7504a4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/TopBar.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TopBar_vue_vue_type_template_id_ae7504a4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./TopBar.vue?vue&type=template&id=ae7504a4& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TopBar.vue?vue&type=template&id=ae7504a4&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TopBar_vue_vue_type_template_id_ae7504a4___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TopBar_vue_vue_type_template_id_ae7504a4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/TopBar.vue?");
/***/ }),
@@ -5707,7 +5685,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreatePanel_vue_vue_type_template_id_4de55683___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./CreatePanel.vue?vue&type=template&id=4de55683& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/CreatePanel.vue?vue&type=template&id=4de55683&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreatePanel_vue_vue_type_template_id_4de55683___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreatePanel_vue_vue_type_template_id_4de55683___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/CreatePanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreatePanel_vue_vue_type_template_id_4de55683___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./CreatePanel.vue?vue&type=template&id=4de55683& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/CreatePanel.vue?vue&type=template&id=4de55683&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreatePanel_vue_vue_type_template_id_4de55683___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreatePanel_vue_vue_type_template_id_4de55683___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/CreatePanel.vue?");
/***/ }),
@@ -5743,7 +5721,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FilePanel_vue_vue_type_template_id_609296c3___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./FilePanel.vue?vue&type=template&id=609296c3& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/FilePanel.vue?vue&type=template&id=609296c3&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FilePanel_vue_vue_type_template_id_609296c3___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FilePanel_vue_vue_type_template_id_609296c3___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/FilePanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FilePanel_vue_vue_type_template_id_609296c3___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./FilePanel.vue?vue&type=template&id=609296c3& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/FilePanel.vue?vue&type=template&id=609296c3&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FilePanel_vue_vue_type_template_id_609296c3___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FilePanel_vue_vue_type_template_id_609296c3___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/FilePanel.vue?");
/***/ }),
@@ -5779,7 +5757,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListItem_vue_vue_type_template_id_2e6e6f74___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./ListItem.vue?vue&type=template&id=2e6e6f74& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/ListItem.vue?vue&type=template&id=2e6e6f74&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListItem_vue_vue_type_template_id_2e6e6f74___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListItem_vue_vue_type_template_id_2e6e6f74___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/ListItem.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListItem_vue_vue_type_template_id_2e6e6f74___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./ListItem.vue?vue&type=template&id=2e6e6f74& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/fileList/ListItem.vue?vue&type=template&id=2e6e6f74&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListItem_vue_vue_type_template_id_2e6e6f74___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListItem_vue_vue_type_template_id_2e6e6f74___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/fileList/ListItem.vue?");
/***/ }),
@@ -5815,7 +5793,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EnvInputGroup_vue_vue_type_template_id_1b52fcc2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./EnvInputGroup.vue?vue&type=template&id=1b52fcc2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/EnvInputGroup.vue?vue&type=template&id=1b52fcc2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EnvInputGroup_vue_vue_type_template_id_1b52fcc2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EnvInputGroup_vue_vue_type_template_id_1b52fcc2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/EnvInputGroup.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EnvInputGroup_vue_vue_type_template_id_1b52fcc2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./EnvInputGroup.vue?vue&type=template&id=1b52fcc2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/EnvInputGroup.vue?vue&type=template&id=1b52fcc2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EnvInputGroup_vue_vue_type_template_id_1b52fcc2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EnvInputGroup_vue_vue_type_template_id_1b52fcc2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/EnvInputGroup.vue?");
/***/ }),
@@ -5851,7 +5829,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconInput_vue_vue_type_template_id_062d0271___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./IconInput.vue?vue&type=template&id=062d0271& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/IconInput.vue?vue&type=template&id=062d0271&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconInput_vue_vue_type_template_id_062d0271___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconInput_vue_vue_type_template_id_062d0271___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/IconInput.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconInput_vue_vue_type_template_id_062d0271___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./IconInput.vue?vue&type=template&id=062d0271& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/IconInput.vue?vue&type=template&id=062d0271&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconInput_vue_vue_type_template_id_062d0271___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconInput_vue_vue_type_template_id_062d0271___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/IconInput.vue?");
/***/ }),
@@ -5887,7 +5865,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImportPanel_vue_vue_type_template_id_03d0dfff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./ImportPanel.vue?vue&type=template&id=03d0dfff& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/ImportPanel.vue?vue&type=template&id=03d0dfff&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImportPanel_vue_vue_type_template_id_03d0dfff___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImportPanel_vue_vue_type_template_id_03d0dfff___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/ImportPanel.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImportPanel_vue_vue_type_template_id_03d0dfff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./ImportPanel.vue?vue&type=template&id=03d0dfff& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/ImportPanel.vue?vue&type=template&id=03d0dfff&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImportPanel_vue_vue_type_template_id_03d0dfff___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImportPanel_vue_vue_type_template_id_03d0dfff___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/ImportPanel.vue?");
/***/ }),
@@ -5923,7 +5901,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputGroup_vue_vue_type_template_id_22835c65___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./InputGroup.vue?vue&type=template&id=22835c65& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/InputGroup.vue?vue&type=template&id=22835c65&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputGroup_vue_vue_type_template_id_22835c65___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputGroup_vue_vue_type_template_id_22835c65___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/InputGroup.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputGroup_vue_vue_type_template_id_22835c65___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./InputGroup.vue?vue&type=template&id=22835c65& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/InputGroup.vue?vue&type=template&id=22835c65&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputGroup_vue_vue_type_template_id_22835c65___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputGroup_vue_vue_type_template_id_22835c65___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/InputGroup.vue?");
/***/ }),
@@ -5971,7 +5949,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Ports_vue_vue_type_template_id_431c319c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Ports.vue?vue&type=template&id=431c319c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/Ports.vue?vue&type=template&id=431c319c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Ports_vue_vue_type_template_id_431c319c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Ports_vue_vue_type_template_id_431c319c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/Ports.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Ports_vue_vue_type_template_id_431c319c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Ports.vue?vue&type=template&id=431c319c& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/Ports.vue?vue&type=template&id=431c319c&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Ports_vue_vue_type_template_id_431c319c___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Ports_vue_vue_type_template_id_431c319c___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/forms/Ports.vue?");
/***/ }),
@@ -6019,7 +5997,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_fae5bece___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Home.vue?vue&type=template&id=fae5bece& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Home.vue?vue&type=template&id=fae5bece&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_fae5bece___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_fae5bece___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/views/Home.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_fae5bece___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Home.vue?vue&type=template&id=fae5bece& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Home.vue?vue&type=template&id=fae5bece&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_fae5bece___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_fae5bece___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/views/Home.vue?");
/***/ }),
@@ -6089,7 +6067,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Clock_vue_vue_type_template_id_072e1685___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Clock.vue?vue&type=template&id=072e1685& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Clock.vue?vue&type=template&id=072e1685&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Clock_vue_vue_type_template_id_072e1685___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Clock_vue_vue_type_template_id_072e1685___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/widgets/Clock.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Clock_vue_vue_type_template_id_072e1685___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Clock.vue?vue&type=template&id=072e1685& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Clock.vue?vue&type=template&id=072e1685&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Clock_vue_vue_type_template_id_072e1685___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Clock_vue_vue_type_template_id_072e1685___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/widgets/Clock.vue?");
/***/ }),
@@ -6125,7 +6103,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Cpu_vue_vue_type_template_id_6accea42___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Cpu.vue?vue&type=template&id=6accea42& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Cpu.vue?vue&type=template&id=6accea42&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Cpu_vue_vue_type_template_id_6accea42___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Cpu_vue_vue_type_template_id_6accea42___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/widgets/Cpu.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Cpu_vue_vue_type_template_id_6accea42___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Cpu.vue?vue&type=template&id=6accea42& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Cpu.vue?vue&type=template&id=6accea42&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Cpu_vue_vue_type_template_id_6accea42___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Cpu_vue_vue_type_template_id_6accea42___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/widgets/Cpu.vue?");
/***/ }),
@@ -6173,7 +6151,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Disks_vue_vue_type_template_id_457f6ced___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Disks.vue?vue&type=template&id=457f6ced& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Disks.vue?vue&type=template&id=457f6ced&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Disks_vue_vue_type_template_id_457f6ced___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Disks_vue_vue_type_template_id_457f6ced___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/widgets/Disks.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Disks_vue_vue_type_template_id_457f6ced___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Disks.vue?vue&type=template&id=457f6ced& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Disks.vue?vue&type=template&id=457f6ced&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Disks_vue_vue_type_template_id_457f6ced___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Disks_vue_vue_type_template_id_457f6ced___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/widgets/Disks.vue?");
/***/ })
diff --git a/web/js/3.js b/web/js/3.js
index d09b405..d0684b6 100644
--- a/web/js/3.js
+++ b/web/js/3.js
@@ -12,15 +12,15 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vee_
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Welcome.vue?vue&type=template&id=e4731dd0&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Welcome.vue?vue&type=template&id=e4731dd0&":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Welcome.vue?vue&type=template&id=e4731dd0& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Welcome.vue?vue&type=template&id=e4731dd0& ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"is-flex is-justify-content-center is-align-items-center\",\n attrs: { id: \"login-page\" }\n },\n [\n !_vm.isLoading\n ? _c(\n \"div\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.initAni,\n expression: \"initAni\"\n }\n ],\n staticClass: \"login-panel is-shadow\",\n class: \"step\" + _vm.step\n },\n [\n _vm.step == 1\n ? _c(\n \"div\",\n { staticClass: \"has-text-centered\" },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s1Ani,\n expression: \"s1Ani\"\n }\n ],\n staticClass: \" is-flex is-justify-content-center\"\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128 mb-4\",\n attrs: { src: __webpack_require__(/*! @/assets/img/wuji.svg */ \"./src/assets/img/wuji.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"h2\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s2Ani,\n expression: \"s2Ani\"\n }\n ],\n staticClass: \"title is-2 mb-5 has-text-centered\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Welcome to CasaOS\")))]\n ),\n _c(\n \"h2\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s3Ani,\n expression: \"s3Ani\"\n }\n ],\n staticClass: \"subtitle has-text-centered\"\n },\n [\n _vm._v(\n _vm._s(_vm.$t(\"Let's create your initial account\"))\n )\n ]\n ),\n _c(\n \"b-button\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s4Ani,\n expression: \"s4Ani\"\n }\n ],\n staticClass: \"mt-2\",\n attrs: { type: \"is-primary\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.goToStep(2)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Go →\")))]\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.step == 2\n ? _c(\n \"div\",\n [\n _c(\n \"h2\",\n { staticClass: \"title is-3 has-text-centered\" },\n [_vm._v(_vm._s(_vm.$t(\"Create Account\")))]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-justify-content-center \" },\n [\n _c(\n \"div\",\n { staticClass: \"has-text-centered\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/Account.png */ \"./src/assets/img/Account.png\"),\n rounded: \"\"\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\"ValidationObserver\", {\n ref: \"observer\",\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var handleSubmit = ref.handleSubmit\n return [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"User\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"Username\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: { type: \"text\" },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\n \"key\"\n ) &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.reg\n )\n }\n },\n model: {\n value: _vm.username,\n callback: function($$v) {\n _vm.username = $$v\n },\n expression: \"username\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"password\",\n name: \"Password\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-4\",\n attrs: {\n label: _vm.$t(\"Password\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\n \"key\"\n ) &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.reg\n )\n }\n },\n model: {\n value: _vm.password,\n callback: function($$v) {\n _vm.password = $$v\n },\n expression: \"password\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|confirmed:password\",\n name: \"Password Confirmation\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-4\",\n attrs: {\n label: _vm.$t(\n \"Confirm Password\"\n ),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\n \"key\"\n ) &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.reg\n )\n }\n },\n model: {\n value: _vm.confirmation,\n callback: function($$v) {\n _vm.confirmation = $$v\n },\n expression: \"confirmation\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\n \"b-button\",\n {\n staticClass: \"mt-5\",\n attrs: {\n type: \"is-primary\",\n rounded: \"\",\n expanded: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.reg)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Create\")))]\n )\n ]\n }\n }\n ],\n null,\n false,\n 3231920384\n )\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.step == 3\n ? _c(\"div\", { staticClass: \"has-text-centered \" }, [\n _c(\"h2\", { staticClass: \"title is-3 has-text-centered\" }, [\n _vm._v(_vm._s(_vm.$t(\"All things done!\")))\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/done.json */ \"./src/assets/ani/done.json\"),\n autoPlay: true,\n loop: false\n },\n on: { complete: _vm.complete }\n })\n ],\n 1\n )\n ])\n : _vm._e()\n ]\n )\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/Welcome.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"is-flex is-justify-content-center is-align-items-center\",\n attrs: { id: \"login-page\" }\n },\n [\n !_vm.isLoading\n ? _c(\n \"div\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.initAni,\n expression: \"initAni\"\n }\n ],\n staticClass: \"login-panel is-shadow\",\n class: \"step\" + _vm.step\n },\n [\n _vm.step == 1\n ? _c(\n \"div\",\n { staticClass: \"has-text-centered\" },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s1Ani,\n expression: \"s1Ani\"\n }\n ],\n staticClass: \" is-flex is-justify-content-center\"\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128 mb-4\",\n attrs: { src: __webpack_require__(/*! @/assets/img/wuji.svg */ \"./src/assets/img/wuji.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"h2\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s2Ani,\n expression: \"s2Ani\"\n }\n ],\n staticClass: \"title is-2 mb-5 has-text-centered\"\n },\n [_vm._v(_vm._s(_vm.$t(\"Welcome to CasaOS\")))]\n ),\n _c(\n \"h2\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s3Ani,\n expression: \"s3Ani\"\n }\n ],\n staticClass: \"subtitle has-text-centered\"\n },\n [\n _vm._v(\n _vm._s(_vm.$t(\"Let's create your initial account\"))\n )\n ]\n ),\n _c(\n \"b-button\",\n {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.s4Ani,\n expression: \"s4Ani\"\n }\n ],\n staticClass: \"mt-2\",\n attrs: { type: \"is-primary\", rounded: \"\" },\n on: {\n click: function($event) {\n return _vm.goToStep(2)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Go →\")))]\n )\n ],\n 1\n )\n : _vm._e(),\n _vm.step == 2\n ? _c(\n \"div\",\n [\n _c(\n \"h2\",\n { staticClass: \"title is-3 has-text-centered\" },\n [_vm._v(_vm._s(_vm.$t(\"Create Account\")))]\n ),\n _c(\n \"div\",\n { staticClass: \"is-flex is-justify-content-center \" },\n [\n _c(\n \"div\",\n { staticClass: \"has-text-centered\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/Account.png */ \"./src/assets/img/Account.png\"),\n rounded: \"\"\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\"ValidationObserver\", {\n ref: \"observer\",\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var handleSubmit = ref.handleSubmit\n return [\n _c(\"ValidationProvider\", {\n attrs: { rules: \"required\", name: \"User\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n attrs: {\n label: _vm.$t(\"Username\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: { type: \"text\" },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\n \"key\"\n ) &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.reg\n )\n }\n },\n model: {\n value: _vm.username,\n callback: function($$v) {\n _vm.username = $$v\n },\n expression: \"username\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"password\",\n name: \"Password\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-4\",\n attrs: {\n label: _vm.$t(\"Password\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\n \"key\"\n ) &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.reg\n )\n }\n },\n model: {\n value: _vm.password,\n callback: function($$v) {\n _vm.password = $$v\n },\n expression: \"password\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|confirmed:password\",\n name: \"Password Confirmation\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-4\",\n attrs: {\n label: _vm.$t(\n \"Confirm Password\"\n ),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\n \"key\"\n ) &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(\n _vm.reg\n )\n }\n },\n model: {\n value: _vm.confirmation,\n callback: function($$v) {\n _vm.confirmation = $$v\n },\n expression: \"confirmation\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\n \"b-button\",\n {\n staticClass: \"mt-5\",\n attrs: {\n type: \"is-primary\",\n rounded: \"\",\n expanded: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.reg)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Create\")))]\n )\n ]\n }\n }\n ],\n null,\n false,\n 3231920384\n )\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.step == 3\n ? _c(\"div\", { staticClass: \"has-text-centered \" }, [\n _c(\"h2\", { staticClass: \"title is-3 has-text-centered\" }, [\n _vm._v(_vm._s(_vm.$t(\"All things done!\")))\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center\"\n },\n [\n _c(\"lottie-animation\", {\n staticClass: \"animation\",\n attrs: {\n animationData: __webpack_require__(/*! @/assets/ani/done.json */ \"./src/assets/ani/done.json\"),\n autoPlay: true,\n loop: false\n },\n on: { complete: _vm.complete }\n })\n ],\n 1\n )\n ])\n : _vm._e()\n ]\n )\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/Welcome.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
@@ -101,7 +101,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Welcome_vue_vue_type_template_id_e4731dd0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Welcome.vue?vue&type=template&id=e4731dd0& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Welcome.vue?vue&type=template&id=e4731dd0&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Welcome_vue_vue_type_template_id_e4731dd0___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Welcome_vue_vue_type_template_id_e4731dd0___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/views/Welcome.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Welcome_vue_vue_type_template_id_e4731dd0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Welcome.vue?vue&type=template&id=e4731dd0& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Welcome.vue?vue&type=template&id=e4731dd0&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Welcome_vue_vue_type_template_id_e4731dd0___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Welcome_vue_vue_type_template_id_e4731dd0___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/views/Welcome.vue?");
/***/ })
diff --git a/web/js/4.js b/web/js/4.js
index b3722ae..0f9206c 100644
--- a/web/js/4.js
+++ b/web/js/4.js
@@ -8,19 +8,19 @@
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vee_validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vee-validate */ \"./node_modules/vee-validate/dist/vee-validate.esm.js\");\n/* harmony import */ var _plugins_vee_validate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/vee-validate */ \"./src/plugins/vee-validate.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Login\",\n data: function data() {\n return {\n username: '',\n password: '',\n isLoading: true,\n message: \"\",\n notificationShow: false\n };\n },\n components: {\n ValidationObserver: vee_validate__WEBPACK_IMPORTED_MODULE_0__[\"ValidationObserver\"],\n ValidationProvider: vee_validate__WEBPACK_IMPORTED_MODULE_0__[\"ValidationProvider\"]\n },\n mounted: function mounted() {\n var _this = this;\n\n this.isLoading = false;\n this.$api.user.getUserInfo().then(function (user) {\n _this.username = user.data.data.user_name;\n });\n },\n methods: {\n login: function login() {\n var _this2 = this;\n\n this.$api.user.login({\n username: this.username,\n pwd: this.password\n }).then(function (res) {\n if (res.data.success == 200) {\n localStorage.setItem(\"user_token\", res.data.data.token);\n localStorage.setItem(\"version\", res.data.data.version);\n\n _this2.$store.commit('setToken', res.data.data.token);\n\n _this2.$api.user.getUserInfo().then(function (res) {\n if (res.data.success == 200) {\n _this2.$store.commit('changeUserInfo', res.data.data);\n\n _this2.$router.push('/');\n }\n });\n } else {\n _this2.notificationShow = true;\n _this2.message = _this2.$t(\"Password error!\");\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/views/Login.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vee_validate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vee-validate */ \"./node_modules/vee-validate/dist/vee-validate.esm.js\");\n/* harmony import */ var _plugins_vee_validate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/vee-validate */ \"./src/plugins/vee-validate.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Login\",\n data: function data() {\n return {\n username: '',\n password: '',\n isLoading: true,\n message: \"\",\n notificationShow: false,\n isInit: false\n };\n },\n components: {\n ValidationObserver: vee_validate__WEBPACK_IMPORTED_MODULE_0__[\"ValidationObserver\"],\n ValidationProvider: vee_validate__WEBPACK_IMPORTED_MODULE_0__[\"ValidationProvider\"]\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$api.info.guideCheck().then(function (res) {\n if (res.data.success == 200 && res.data.data.need_init_user) {\n _this.isLoading = false;\n } else {\n _this.isLoading = true;\n }\n });\n this.$api.user.getUserInfo().then(function (user) {\n _this.username = user.data.data.user_name;\n });\n },\n methods: {\n login: function login() {\n var _this2 = this;\n\n this.$api.user.login({\n username: this.username,\n pwd: this.password\n }).then(function (res) {\n if (res.data.success == 200) {\n localStorage.setItem(\"user_token\", res.data.data.token);\n localStorage.setItem(\"version\", res.data.data.version);\n\n _this2.$store.commit('setToken', res.data.data.token);\n\n _this2.$api.user.getUserInfo().then(function (res) {\n if (res.data.success == 200) {\n _this2.$store.commit('changeUserInfo', res.data.data);\n\n _this2.$router.push('/');\n }\n });\n } else {\n _this2.notificationShow = true;\n _this2.message = _this2.$t(\"Password error!\");\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/views/Login.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Login.vue?vue&type=template&id=26084dc2&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Login.vue?vue&type=template&id=26084dc2&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Login.vue?vue&type=template&id=26084dc2& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Login.vue?vue&type=template&id=26084dc2& ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"is-flex is-justify-content-center is-align-items-center \",\n attrs: { id: \"login-page\" }\n },\n [\n !_vm.isLoading\n ? _c(\n \"div\",\n { staticClass: \"login-panel step4 is-shadow\" },\n [\n _c(\"div\", { staticClass: \"is-flex is-justify-content-center \" }, [\n _c(\n \"div\",\n { staticClass: \"has-text-centered\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/Account.png */ \"./src/assets/img/Account.png\"),\n rounded: \"\"\n }\n }),\n _c(\n \"p\",\n { staticClass: \"is-size-5 has-text-weight-bold mt-3\" },\n [_vm._v(_vm._s(_vm.username))]\n )\n ],\n 1\n )\n ]),\n _c(\n \"b-notification\",\n {\n attrs: {\n \"auto-close\": \"\",\n type: \"is-danger\",\n \"aria-close-label\": \"Close notification\",\n role: \"alert\"\n },\n model: {\n value: _vm.notificationShow,\n callback: function($$v) {\n _vm.notificationShow = $$v\n },\n expression: \"notificationShow\"\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.message) + \" \")]\n ),\n _c(\"ValidationObserver\", {\n ref: \"observer\",\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var handleSubmit = ref.handleSubmit\n return [\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"password\",\n name: \"Password\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-5 has-text-light\",\n attrs: {\n label: _vm.$t(\"Password\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(_vm.login)\n }\n },\n model: {\n value: _vm.password,\n callback: function($$v) {\n _vm.password = $$v\n },\n expression: \"password\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\n \"b-button\",\n {\n staticClass: \"mt-5\",\n attrs: {\n type: \"is-primary\",\n rounded: \"\",\n expanded: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.login)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Login\")))]\n )\n ]\n }\n }\n ],\n null,\n false,\n 327051097\n )\n })\n ],\n 1\n )\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/Login.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"is-flex is-justify-content-center is-align-items-center \",\n attrs: { id: \"login-page\" }\n },\n [\n !_vm.isLoading\n ? _c(\n \"div\",\n { staticClass: \"login-panel step4 is-shadow\" },\n [\n _c(\"div\", { staticClass: \"is-flex is-justify-content-center \" }, [\n _c(\n \"div\",\n { staticClass: \"has-text-centered\" },\n [\n _c(\"b-image\", {\n staticClass: \"is-128x128\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/Account.png */ \"./src/assets/img/Account.png\"),\n rounded: \"\"\n }\n }),\n _c(\n \"p\",\n { staticClass: \"is-size-5 has-text-weight-bold mt-3\" },\n [_vm._v(_vm._s(_vm.username))]\n )\n ],\n 1\n )\n ]),\n _c(\n \"b-notification\",\n {\n attrs: {\n \"auto-close\": \"\",\n type: \"is-danger\",\n \"aria-close-label\": \"Close notification\",\n role: \"alert\"\n },\n model: {\n value: _vm.notificationShow,\n callback: function($$v) {\n _vm.notificationShow = $$v\n },\n expression: \"notificationShow\"\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.message) + \" \")]\n ),\n _c(\"ValidationObserver\", {\n ref: \"observer\",\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var handleSubmit = ref.handleSubmit\n return [\n _c(\"ValidationProvider\", {\n attrs: {\n rules: \"required|min:5\",\n vid: \"password\",\n name: \"Password\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(ref) {\n var errors = ref.errors\n var valid = ref.valid\n return [\n _c(\n \"b-field\",\n {\n staticClass: \"mt-5 has-text-light\",\n attrs: {\n label: _vm.$t(\"Password\"),\n type: {\n \"is-danger\": errors[0],\n \"is-success\": valid\n },\n message: _vm.$t(errors)\n }\n },\n [\n _c(\"b-input\", {\n attrs: {\n type: \"password\",\n \"password-reveal\": \"\"\n },\n nativeOn: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return handleSubmit(_vm.login)\n }\n },\n model: {\n value: _vm.password,\n callback: function($$v) {\n _vm.password = $$v\n },\n expression: \"password\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n true\n )\n }),\n _c(\n \"b-button\",\n {\n staticClass: \"mt-5\",\n attrs: {\n type: \"is-primary\",\n rounded: \"\",\n expanded: \"\"\n },\n on: {\n click: function($event) {\n return handleSubmit(_vm.login)\n }\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Login\")))]\n )\n ]\n }\n }\n ],\n null,\n false,\n 327051097\n )\n })\n ],\n 1\n )\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/Login.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
@@ -56,7 +56,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_26084dc2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Login.vue?vue&type=template&id=26084dc2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Login.vue?vue&type=template&id=26084dc2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_26084dc2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_26084dc2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/views/Login.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_26084dc2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./Login.vue?vue&type=template&id=26084dc2& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Login.vue?vue&type=template&id=26084dc2&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_26084dc2___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_26084dc2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/views/Login.vue?");
/***/ })
diff --git a/web/js/app.js b/web/js/app.js
index e5d183c..dafee0c 100644
--- a/web/js/app.js
+++ b/web/js/app.js
@@ -232,7 +232,7 @@
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_BrandBar_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/BrandBar.vue */ \"./src/components/BrandBar.vue\");\n/* harmony import */ var _components_ContactBar_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/ContactBar.vue */ \"./src/components/ContactBar.vue\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n BrandBar: _components_BrandBar_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n ContactBar: _components_ContactBar_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data: function data() {\n return {\n //isLoading: true,\n steps: [// {\n // target: '#v-step-0', // We're using document.querySelector() under the hood\n // content: `Add your first App!`\n // },\n // {\n // target: '#v-step-1', // We're using document.querySelector() under the hood\n // content: `Add your first App!`\n // }\n ],\n isWelcome: false,\n initAni: {\n classes: 'zoomOutIn',\n duration: 2500\n },\n brandAni: {\n classes: \"fadeInLeft\",\n duration: 700\n },\n contactAni: {\n classes: \"fadeInRight\",\n duration: 700\n }\n };\n },\n computed: {\n isLoading: function isLoading() {\n return this.$store.state.siteLoading;\n }\n },\n created: function created() {\n var _this = this;\n\n this.$api.info.guideCheck().then(function (res) {\n if (res.data.success == 200 && res.data.data.need_init_user) {\n _this.isWelcome = true;\n\n _this.$emit('changeSiteLoading');\n\n _this.$emit('changeInitialization', true);\n\n localStorage.removeItem(\"user_token\");\n\n _this.$router.push(\"/welcome\");\n } else {\n _this.isWelcome = false;\n }\n });\n },\n mounted: function mounted() {\n var lang = localStorage.getItem('lang') ? localStorage.getItem('lang') : this.getLangFromBrowser();\n this.setLang(lang); // const host = (process.env.NODE_ENV === \"'dev'\") ? `${this.$store.state.devIp}` : `${document.domain}`;\n // if (host == '127.0.0.1' || host == \"localhost\") {\n // this.$buefy.dialog.alert({\n // title: '⚠️ ' + this.$t('Attention'),\n // message: '' + this.$t('Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.') + '
',\n // type: 'is-dark'\n // })\n // }\n },\n methods: {\n getLangFromBrowser: function getLangFromBrowser() {\n var lang = navigator.language || navigator.userLanguage;\n lang = lang.substr(0, 2);\n return lang;\n },\n setLang: function setLang(lang) {\n localStorage.setItem('lang', lang);\n this.$i18n.locale = lang;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_BrandBar_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/BrandBar.vue */ \"./src/components/BrandBar.vue\");\n/* harmony import */ var _components_ContactBar_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/ContactBar.vue */ \"./src/components/ContactBar.vue\");\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n BrandBar: _components_BrandBar_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ContactBar: _components_ContactBar_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n data: function data() {\n return {\n //isLoading: true,\n steps: [// {\n // target: '#v-step-0', // We're using document.querySelector() under the hood\n // content: `Add your first App!`\n // },\n // {\n // target: '#v-step-1', // We're using document.querySelector() under the hood\n // content: `Add your first App!`\n // }\n ],\n isWelcome: false,\n initAni: {\n classes: 'zoomOutIn',\n duration: 2500\n },\n brandAni: {\n classes: \"fadeInLeft\",\n duration: 700\n },\n contactAni: {\n classes: \"fadeInRight\",\n duration: 700\n }\n };\n },\n computed: {\n isLoading: function isLoading() {\n return this.$store.state.siteLoading;\n }\n },\n created: function created() {\n var _this = this;\n\n this.$api.info.guideCheck().then(function (res) {\n if (res.data.success == 200 && res.data.data.need_init_user) {\n _this.isWelcome = true;\n\n _this.$emit('changeSiteLoading');\n\n _this.$emit('changeInitialization', true);\n\n localStorage.removeItem(\"user_token\");\n\n _this.$router.push(\"/welcome\");\n } else {\n _this.isWelcome = false;\n }\n });\n },\n mounted: function mounted() {\n var lang = localStorage.getItem('lang') ? localStorage.getItem('lang') : this.getLangFromBrowser();\n console.log(lang);\n this.setLang(lang); // const host = (process.env.NODE_ENV === \"'dev'\") ? `${this.$store.state.devIp}` : `${document.domain}`;\n // if (host == '127.0.0.1' || host == \"localhost\") {\n // this.$buefy.dialog.alert({\n // title: '⚠️ ' + this.$t('Attention'),\n // message: '' + this.$t('Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.') + '
',\n // type: 'is-dark'\n // })\n // }\n },\n methods: {\n getLangFromBrowser: function getLangFromBrowser() {\n var lang = navigator.language || navigator.userLanguage;\n lang = lang.toLowerCase().replace(\"-\", \"_\");\n return lang;\n },\n setLang: function setLang(lang) {\n localStorage.setItem('lang', lang);\n this.$i18n.locale = lang;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
@@ -256,43 +256,67 @@ eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"contact-bar\"\n});\n\n//# sourceURL=webpack:///./src/components/ContactBar.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_FeedbackPanel_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/FeedbackPanel.vue */ \"./src/components/FeedbackPanel.vue\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"contact-bar\",\n methods: {\n showFeedback: function showFeedback() {\n this.$buefy.modal.open({\n parent: this,\n component: _components_FeedbackPanel_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n hasModalCard: true,\n customClass: 'storage-modal',\n trapFocus: true,\n canCancel: [],\n scroll: \"keep\",\n animation: \"zoom-out\"\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/ContactBar.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/FeedbackPanel.vue?vue&type=script&lang=js&":
+/*!**********************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FeedbackPanel.vue?vue&type=script&lang=js& ***!
+ \**********************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue_markdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-markdown */ \"./node_modules/vue-markdown/dist/vue-markdown.common.js\");\n/* harmony import */ var vue_markdown__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue_markdown__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var browser_info__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser-info */ \"./node_modules/browser-info/index.js\");\n/* harmony import */ var browser_info__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(browser_info__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var new_github_issue_url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! new-github-issue-url */ \"./node_modules/new-github-issue-url/index.js\");\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"feedback-panel\",\n components: {\n VueMarkdown: vue_markdown__WEBPACK_IMPORTED_MODULE_3___default.a\n },\n data: function data() {\n return {\n isLoading: false,\n feedBody: \"\",\n postTitle: \"\",\n postBody: \"\"\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$api.info.getDebugInfo().then(function (res) {\n var browserInfos = browser_info__WEBPACK_IMPORTED_MODULE_4___default()();\n _this.feedBody = res.data.data.replace(\"$Browser$\", browserInfos.name).replace(\"$Version$\", browserInfos.fullVersion);\n });\n },\n methods: {\n submitIssue: function submitIssue() {\n var url = Object(new_github_issue_url__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n user: 'IceWhaleTech',\n repo: 'CasaOS',\n title: this.postTitle,\n body: \"**Describe the bug**\\n\\n\" + this.postBody + \"\\n\\n**System infomation**\\n\\n\" + this.feedBody\n });\n window.open(url, '_blank');\n this.$emit('close');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/FeedbackPanel.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+
+/***/ }),
+
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90& ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.isLoading,\n expression: \"!isLoading\"\n }\n ],\n staticClass: \"is-flex is-flex-direction-column\",\n attrs: { id: \"app\" }\n },\n [\n _vm.isWelcome\n ? _c(\"div\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.initAni,\n expression: \"initAni\"\n }\n ],\n style: {\n \"background-image\":\n \"url(\" + __webpack_require__(/*! ./assets/background/bg3.jpg */ \"./src/assets/background/bg3.jpg\") + \")\"\n },\n attrs: { id: \"background\" }\n })\n : _vm._e(),\n !_vm.isWelcome\n ? _c(\"div\", {\n style: {\n \"background-image\":\n \"url(\" + __webpack_require__(/*! ./assets/background/bg3.jpg */ \"./src/assets/background/bg3.jpg\") + \")\"\n },\n attrs: { id: \"background\" }\n })\n : _vm._e(),\n _c(\"router-view\"),\n _c(\"brand-bar\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.brandAni,\n expression: \"brandAni\"\n }\n ]\n }),\n _c(\"contact-bar\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.contactAni,\n expression: \"contactAni\"\n }\n ]\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"is-flex is-flex-direction-column\", attrs: { id: \"app\" } },\n [\n _vm.isWelcome\n ? _c(\"div\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.initAni,\n expression: \"initAni\"\n }\n ],\n style: {\n \"background-image\":\n \"url(\" + __webpack_require__(/*! ./assets/background/bg3.jpg */ \"./src/assets/background/bg3.jpg\") + \")\"\n },\n attrs: { id: \"background\" }\n })\n : _vm._e(),\n !_vm.isWelcome\n ? _c(\"div\", {\n style: {\n \"background-image\":\n \"url(\" + __webpack_require__(/*! ./assets/background/bg3.jpg */ \"./src/assets/background/bg3.jpg\") + \")\"\n },\n attrs: { id: \"background\" }\n })\n : _vm._e(),\n _c(\"router-view\"),\n _c(\"brand-bar\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.brandAni,\n expression: \"brandAni\"\n }\n ]\n }),\n _c(\"contact-bar\", {\n directives: [\n {\n name: \"animate-css\",\n rawName: \"v-animate-css\",\n value: _vm.contactAni,\n expression: \"contactAni\"\n }\n ]\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/App.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/BrandBar.vue?vue&type=template&id=dfac1d88&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/BrandBar.vue?vue&type=template&id=dfac1d88&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BrandBar.vue?vue&type=template&id=dfac1d88& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BrandBar.vue?vue&type=template&id=dfac1d88& ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"brand-bar is-flex is-align-items-center has-text-white\" },\n [\n _c(\"figure\", { staticClass: \"image is-32x32\" }, [\n _c(\"img\", { attrs: { src: __webpack_require__(/*! @/assets/img/casa.svg */ \"./src/assets/img/casa.svg\") } })\n ]),\n _c(\"span\", { staticClass: \"is-size-4 mr-3 ml-3\" }, [_vm._v(\"CasaOS\")]),\n _c(\"span\", [_vm._v(\"Made by IceWhale with ❤ and you !️\")])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/BrandBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"brand-bar is-flex is-align-items-center has-text-white\" },\n [\n _c(\"figure\", { staticClass: \"image is-32x32\" }, [\n _c(\"img\", { attrs: { src: __webpack_require__(/*! @/assets/img/casa.svg */ \"./src/assets/img/casa.svg\") } })\n ]),\n _c(\"span\", { staticClass: \"is-size-4 mr-3 ml-3\" }, [_vm._v(\"CasaOS\")]),\n _c(\"span\", [_vm._v(\"Made by IceWhale with ❤ and you !️\")])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/BrandBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
-/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ContactBar.vue?vue&type=template&id=f34e36fa&":
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ContactBar.vue?vue&type=template&id=f34e36fa&":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"c25436b0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ContactBar.vue?vue&type=template&id=f34e36fa& ***!
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ContactBar.vue?vue&type=template&id=f34e36fa& ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass:\n \"contact-bar is-flex is-align-items-center has-text-white pl-3 pr-3\"\n },\n [\n _c(\n \"a\",\n { attrs: { href: \"#\" } },\n [_c(\"b-icon\", { attrs: { icon: \"routes\" } })],\n 1\n ),\n _c(\n \"a\",\n { attrs: { href: \"https://discord.gg/knqAbbBbeX\", target: \"_blank\" } },\n [_c(\"b-icon\", { attrs: { icon: \"discord\" } })],\n 1\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/IceWhaleTech/CasaOS\",\n target: \"_blank\"\n }\n },\n [_c(\"b-icon\", { attrs: { icon: \"github\" } })],\n 1\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/ContactBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22c25436b0-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass:\n \"contact-bar is-flex is-align-items-center has-text-white pl-3 pr-3\"\n },\n [\n _c(\"b-tooltip\", { attrs: { label: _vm.$t(\"Bug report\") } }, [\n _c(\n \"a\",\n { on: { click: _vm.showFeedback } },\n [_c(\"b-icon\", { attrs: { icon: \"bug\" } })],\n 1\n )\n ]),\n _c(\"b-tooltip\", { attrs: { label: _vm.$t(\"Join Discord\") } }, [\n _c(\n \"a\",\n {\n attrs: { href: \"https://discord.gg/knqAbbBbeX\", target: \"_blank\" }\n },\n [_c(\"b-icon\", { attrs: { icon: \"discord\" } })],\n 1\n )\n ]),\n _c(\"b-tooltip\", { attrs: { label: _vm.$t(\"Visit our Github\") } }, [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/IceWhaleTech/CasaOS\",\n target: \"_blank\"\n }\n },\n [_c(\"b-icon\", { attrs: { icon: \"github\" } })],\n 1\n )\n ])\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/ContactBar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
+
+/***/ }),
+
+/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/FeedbackPanel.vue?vue&type=template&id=7769c5ff&":
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"445a19f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FeedbackPanel.vue?vue&type=template&id=7769c5ff& ***!
+ \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal-card\" },\n [\n _c(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\"h2\", { staticClass: \"title is-4\" }, [\n _vm._v(_vm._s(_vm.$t(\"Bug report\")))\n ]),\n _c(\"div\", { staticClass: \"close-container\" }, [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"close\")\n }\n }\n })\n ]),\n _c(\n \"div\",\n { staticClass: \"flex1 is-relative\" },\n [\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Title\") } },\n [\n _c(\"b-input\", {\n attrs: { maxlength: \"100\" },\n model: {\n value: _vm.postTitle,\n callback: function($$v) {\n _vm.postTitle = $$v\n },\n expression: \"postTitle\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Describe the bug\") } },\n [\n _c(\"b-input\", {\n attrs: {\n maxlength: \"500\",\n type: \"textarea\",\n placeholder: _vm.$t(\n \"A clear and concise description of what the bug is.\"\n )\n },\n model: {\n value: _vm.postBody,\n callback: function($$v) {\n _vm.postBody = $$v\n },\n expression: \"postBody\"\n }\n })\n ],\n 1\n ),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"System infomation\") } },\n [_c(\"vue-markdown\", { attrs: { source: _vm.feedBody } })],\n 1\n )\n ],\n 1\n )\n ]),\n _c(\n \"footer\",\n { staticClass: \"modal-card-foot is-flex is-align-items-center \" },\n [\n _c(\"div\", { staticClass: \"flex1\" }),\n _c(\n \"div\",\n [\n _c(\"b-button\", {\n attrs: {\n label: _vm.$t(\"Submit\"),\n type: \"is-primary\",\n rounded: \"\"\n },\n on: { click: _vm.submitIssue }\n })\n ],\n 1\n )\n ]\n ),\n _c(\"b-loading\", {\n attrs: { \"is-full-page\": false, \"can-cancel\": false },\n model: {\n value: _vm.isLoading,\n callback: function($$v) {\n _vm.isLoading = $$v\n },\n expression: \"isLoading\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/FeedbackPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22445a19f9-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
@@ -339,7 +363,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib??vue-loader-options!./App.vue?vue&type=template&id=7ba5bd90& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/App.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib??vue-loader-options!./App.vue?vue&type=template&id=7ba5bd90& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/App.vue?");
/***/ }),
@@ -395,7 +419,7 @@ eval("module.exports = __webpack_require__.p + \"img/xfile.402f9e59.png\";\n\n//
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// German\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Abbrechen\",\n \"Submit\": \"Speichern\",\n \"Back\": \"Zurück\",\n \"Edit\": \"Bearbeiten\",\n \"Update\": \"Aktualisieren\",\n \"Create\": \"Erstellen\",\n \"Next\": \"Weiter\",\n \"Close\": \"Schließen\",\n \"Select\": \"Auswählen\",\n \"Save\": \"Speichern\",\n \"Add\": \"Hinzufügen\",\n \"Go\": \"Loslegen\",\n \"Import\": \"Importieren\",\n \"Low\": \"Niedrig\",\n \"Medium\": \"Mittel\",\n \"High\": \"Hoch\",\n \"Language\": \"Sprache\",\n \"This field is required\": \"Dieses Feld ist erforderlich\",\n \"This field must be a valid email\": \"Dieses Feld beinhaltet keine gültige E-Mail-Adresse\",\n \"This field confirmation does not match\": \"Dieses Feld stimmt nicht überein\",\n \"This field must have 2 options\": \"Dieses Feld muss 2 Optionen enthalten\",\n \"This field must have more than 5 characters\": \"Dieses Feld muss mehr als 5 Zeichen enthalten\",\n // Init Page\n \"Welcome to CasaOS\": \"Willkommen im CasaOS\",\n \"Let's create your initial account\": \"Erstelle deinen Account\",\n \"Go →\": \"Loslegen →\",\n \"Create Account\": \"Account erstellen\",\n \"Username\": \"Benutzername\",\n \"Confirm Password\": \"Passwort bestätigen\",\n \"Username or Password error!\": \"Fehler bei Benutzername oder Passwort!\",\n \"All things done!\": \"Alles erledigt!\",\n // Login\n \"Login\": \"Anmelden\",\n \"Password error!\": \"Passwort fehlerhaft!\",\n // Account\n \"Account\": \"Account\",\n \"Logout\": \"Abmelden\",\n \"Name\": \"Name\",\n \"Password\": \"Passwort\",\n \"Change name\": \"Name ändern\",\n \"Change Password\": \"Passwort ändern\",\n \"Original password\": \"Aktuelles Passwort\",\n \"New password\": \"Neues Passwort\",\n \"Confirm the new password again\": \"Neues Passwort bestätigen\",\n // Dashboard Settings\n \"Settings\": \"Einstellungen\",\n \"Dashboard Setting\": \"Dashboard-Einstellungen\",\n \"Search Engine\": \"Suchmaschine\",\n \"WebUI Port\": \"Web-UI-Port\",\n \"Currently the latest version\": \"Aktuellste Version installiert\",\n \"A new version is available!\": \"Neue Version verfügbar!\",\n \"Edit Web UI port\": \"Web-UI-Port ändern\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & Logs\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Logs\",\n // Widgets\n \"Widgets Settings\": \"Widget-Einstellungen\",\n \"Time\": \"Uhrzeit\",\n \"System Status\": \"System-Status\",\n \"Disk Status\": \"Festplatten-Status\",\n \"Network Status\": \"Netzwerk-Status\",\n \"available of\": \"{avl} von {total} verfügbar\",\n // Search\n \"Search...\": \"Suchen...\",\n // Sync\n \"Sync your data\": \"Synchronisiere deine Daten\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Folge der Anleitung, um deine Dateien auf mehreren Geräten zu synchronisieren.\",\n \"Go !\": \"Loslegen!\",\n \"Sync Guide\": \"Synchronisation einrichten\",\n \"Install\": \"Installation\",\n \"Config\": \"Konfiguration\",\n \"Complete\": \"Abschluss\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Installiere Syncthing auf dem Gerät, das du mit CasaOS synchronisieren möchtest.\",\n \"Get Syncthing for\": \"Installiere Syncthing für {os}\",\n \"Download APK\": \"APK herunterladen\",\n \"Show all Platforms\": \"Alle Plattformen anzeigen\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Installiere und öffne die heruntergeladene App und klicke dann auf \"Weiter\".',\n \"Device ID\": \"Geräte-ID\",\n \"Fill in your Device ID to continue\": \"Trage deine Geräte-ID zum Fortfahren ein\",\n \"How to get Device ID\": \"Device-ID auslesen\",\n \"What do I need to do on my device?\": \"Was muss ich auf meinem Gerät tun?\",\n \"Open the SyncTrayzor\": \"Öffne den SyncTrayzor\",\n \"Find the Device ID\": \"Finde deine Geräte-ID\",\n \"Add new device on your device\": \"Neues Gerät auf deinem aktuellen Gerät hinzufügen\",\n \"Add new folder on your device\": \"Neuen Ordner auf deinem aktuellen Gerät hinzufügen\",\n \"Done!\": \"Fertig!\",\n \"Open Syncthing in the Launchpad\": \"Öffne Syncthing im Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Finde das Syncthing-Icon in der Menüleiste\",\n \"Open Syncthing\": \"Öffne Syncthing\",\n \"Open the menu\": \"Öffne das Menü\",\n 'Choose \"Show device ID\"': 'Wähle \"Geräte-ID anzeigen\" aus',\n \"Copy the Device ID\": \"Kopiere die Geräte-ID\",\n \"There you go!\": \"Und schon kann es losgehen!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Deine Dateien synchronisieren sich nun.
Das dauert einen kleinen Moment.\",\n \"Up to Date\": \"Aktuell\",\n \"Synchronizing\": \"Synchronisiere\",\n \"Synchronized\": \"Sychronisiert\",\n \"Total\": \"Gesamt\",\n \"Add New Device\": \"Neues Gerät hinzufügen\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Du hast eine Idee? Besuche uns im Discord!\",\n \"Smarten up your home\": \"Mach dein Zuhause smart\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Wir wollen dir ein Smart-Home-Erlebnis mit Privatsphäre, hoher Geschwindigkeit und lokalem Speicher anbieten.\",\n \"In development\": \"In Entwicklung\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"Öffnen\",\n \"Setting\": \"Einstellungen\",\n \"Uninstall\": \"Deinstallieren\",\n \"Attention\": \"Achtung\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Deine Daten können nach der Deinstallation nicht wiederhergestellt werden!
Willst du mit der Deinstallation der App fortfahren?\",\n \"Featured Apps\": \"Vorgestellte Apps\",\n \"Custom Install\": \"Eigene Installation\",\n \"Continue in background\": \"Im Hintergrund fortfahren\",\n \"Install a new App manually\": \"Neue App manuell installieren\",\n \"Docker Image\": \"Docker-Image\",\n \"App name\": \"App-Name\",\n \"Icon URL\": \"Icon-URL\",\n \"Network\": \"Netzwerk\",\n \"Ports\": \"Ports\",\n \"Volumes\": \"Volumes\",\n \"Environment Variables\": \"Umgebungsvariablen\",\n \"Devices\": \"Geräte\",\n \"Memory Limit\": \"Speicherlimit\",\n \"CPU Shares\": \"CPU-Anteile\",\n \"Restart Policy\": \"Neustartrichtlinie\",\n \"App Description\": \"App-Beschreibung\",\n \"No ports now, click “+” to add one.\": \"Keine Ports vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"No volumes now, click “+” to add one.\": \"Keine Volumes vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"No environment variables now, click “+” to add one.\": \"Keine Umgebungsvariablen vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"No devices now, click “+” to add one.\": \"Keine Geräte vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"e.g.,hello-world:latest\": \"z.B. hello-world:latest\",\n \"Your custom App Name\": \"Dein eigener App-Name\",\n \"Your custom icon URL\": \"Deine eigene Icon-URL\",\n \"Installing\": \"Installiere\",\n \"Export AppFile\": \"AppFile exportieren\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"Lege dein AppFile hier ab oder klicke zum Hochladen\",\n \"Host\": \"Host\",\n \"Container\": \"Container\",\n \"Key\": \"Schlüssel\",\n \"Value\": \"Wert\",\n \"Protocol\": \"Protokoll\",\n \"This is not a valid json file.\": \"Das ist keine valide JSON-Datei.\",\n \"Your browser does not support file reading.\": \"Dein Browser unterstützt das Auslesen von Dateien nicht.\",\n \"has been selected\": \"wurde ausgewählt\",\n \"Please fill correct command line\": \"Bitte gib das korrekte Kommando ein\",\n \"Please import a valid App file\": \"Bitte importiere ein valides AppFile\",\n \"AutoFill only helps you to complete most of the configuration.\": \"AutoFill hilft dir beim Ausfüllen des größten Teils der Konfiguration.\",\n \"Some configuration information such as:\": \"Einige Konfigurationsparameter wie:\",\n \"the port and path of the Web UI\": \"den Port und den Pfad der Web-UI\",\n \"the mount location of the volume or file\": \"den Speicherort des Volumes oder der Datei\",\n \"the port mapping of the Host\": \"die Portzuordnung des Hosts\",\n \"optional configuration items\": \"optionale Konfigurationsparameter\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Dazu gehören unter anderem diese Fälle, die noch bestätigt oder geändert werden müssen.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Du kannst gerne Verbesserungen für diese Funktion auf dem Discord-Server vorschlagen!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"Die Verwendung von localhost oder 127.0.0.1 führt dazu, dass die Anwendung nicht aufrufbar ist. Bitte verwende die echte IP-Adresse für den Zugriff.\",\n \"CATEGORY\": \"KATEGORIE\",\n \"DEVELOPER\": \"ENTWICKLER\",\n \"REQUIRE\": \"ERFORDERLICHER\",\n \"MEMORY\": \"RAM\",\n \"DISK\": \"SPEICHER\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"Community Apps\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"Von der Community zur Verfügung gestellt, aber nicht für CasaOS optimiert. Grundlegende App-Funktionen sind jedoch problemlos nutzbar.\",\n \"Sort by\": \"Sortieren nach\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/de_de.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// German\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Abbrechen\",\n \"Submit\": \"Speichern\",\n \"Back\": \"Zurück\",\n \"Edit\": \"Bearbeiten\",\n \"Update\": \"Aktualisieren\",\n \"Create\": \"Erstellen\",\n \"Next\": \"Weiter\",\n \"Close\": \"Schließen\",\n \"Select\": \"Auswählen\",\n \"Save\": \"Speichern\",\n \"Add\": \"Hinzufügen\",\n \"Go\": \"Loslegen\",\n \"Import\": \"Importieren\",\n \"Low\": \"Niedrig\",\n \"Medium\": \"Mittel\",\n \"High\": \"Hoch\",\n \"Language\": \"Sprache\",\n \"This field is required\": \"Dieses Feld ist erforderlich\",\n \"This field must be a valid email\": \"Dieses Feld beinhaltet keine gültige E-Mail-Adresse\",\n \"This field confirmation does not match\": \"Dieses Feld stimmt nicht überein\",\n \"This field must have 2 options\": \"Dieses Feld muss 2 Optionen enthalten\",\n \"This field must have more than 5 characters\": \"Dieses Feld muss mehr als 5 Zeichen enthalten\",\n // Init Page\n \"Welcome to CasaOS\": \"Willkommen im CasaOS\",\n \"Let's create your initial account\": \"Erstelle deinen Account\",\n \"Go →\": \"Loslegen →\",\n \"Create Account\": \"Account erstellen\",\n \"Username\": \"Benutzername\",\n \"Confirm Password\": \"Passwort bestätigen\",\n \"Username or Password error!\": \"Fehler bei Benutzername oder Passwort!\",\n \"All things done!\": \"Alles erledigt!\",\n // Login\n \"Login\": \"Anmelden\",\n \"Password error!\": \"Passwort fehlerhaft!\",\n // Account\n \"Account\": \"Account\",\n \"Logout\": \"Abmelden\",\n \"Name\": \"Name\",\n \"Password\": \"Passwort\",\n \"Change name\": \"Name ändern\",\n \"Change Password\": \"Passwort ändern\",\n \"Original password\": \"Aktuelles Passwort\",\n \"New password\": \"Neues Passwort\",\n \"Confirm the new password again\": \"Neues Passwort bestätigen\",\n // Dashboard Settings\n \"Settings\": \"Einstellungen\",\n \"Dashboard Setting\": \"Dashboard-Einstellungen\",\n \"Search Engine\": \"Suchmaschine\",\n \"WebUI Port\": \"Web-UI-Port\",\n \"Currently the latest version\": \"Aktuellste Version installiert\",\n \"A new version is available!\": \"Neue Version verfügbar!\",\n \"Edit Web UI port\": \"Web-UI-Port ändern\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & Logs\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Logs\",\n // Widgets\n \"Widgets Settings\": \"Widget-Einstellungen\",\n \"Time\": \"Uhrzeit\",\n \"System Status\": \"System-Status\",\n \"Disk Status\": \"Festplatten-Status\",\n \"Network Status\": \"Netzwerk-Status\",\n \"available of\": \"{avl} von {total} verfügbar\",\n // Search\n \"Search...\": \"Suchen...\",\n // Sync\n \"Sync your data\": \"Synchronisiere deine Daten\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Folge der Anleitung, um deine Dateien auf mehreren Geräten zu synchronisieren.\",\n \"Go !\": \"Loslegen!\",\n \"Sync Guide\": \"Synchronisation einrichten\",\n \"Install\": \"Installation\",\n \"Config\": \"Konfiguration\",\n \"Complete\": \"Abschluss\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Installiere Syncthing auf dem Gerät, das du mit CasaOS synchronisieren möchtest.\",\n \"Get Syncthing for\": \"Installiere Syncthing für {os}\",\n \"Download APK\": \"APK herunterladen\",\n \"Show all Platforms\": \"Alle Plattformen anzeigen\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Installiere und öffne die heruntergeladene App und klicke dann auf \"Weiter\".',\n \"Device ID\": \"Geräte-ID\",\n \"Fill in your Device ID to continue\": \"Trage deine Geräte-ID zum Fortfahren ein\",\n \"How to get Device ID\": \"Device-ID auslesen\",\n \"What do I need to do on my device?\": \"Was muss ich auf meinem Gerät tun?\",\n \"Open the SyncTrayzor\": \"Öffne den SyncTrayzor\",\n \"Find the Device ID\": \"Finde deine Geräte-ID\",\n \"Add new device on your device\": \"Neues Gerät auf deinem aktuellen Gerät hinzufügen\",\n \"Add new folder on your device\": \"Neuen Ordner auf deinem aktuellen Gerät hinzufügen\",\n \"Done!\": \"Fertig!\",\n \"Open Syncthing in the Launchpad\": \"Öffne Syncthing im Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Finde das Syncthing-Icon in der Menüleiste\",\n \"Open Syncthing\": \"Öffne Syncthing\",\n \"Open the menu\": \"Öffne das Menü\",\n 'Choose \"Show device ID\"': 'Wähle \"Geräte-ID anzeigen\" aus',\n \"Copy the Device ID\": \"Kopiere die Geräte-ID\",\n \"There you go!\": \"Und schon kann es losgehen!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Deine Dateien synchronisieren sich nun.
Das dauert einen kleinen Moment.\",\n \"Up to Date\": \"Aktuell\",\n \"Synchronizing\": \"Synchronisiere\",\n \"Synchronized\": \"Sychronisiert\",\n \"Total\": \"Gesamt\",\n \"Add New Device\": \"Neues Gerät hinzufügen\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Du hast eine Idee? Besuche uns im Discord!\",\n \"Smarten up your home\": \"Mach dein Zuhause smart\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Wir wollen dir ein Smart-Home-Erlebnis mit Privatsphäre, hoher Geschwindigkeit und lokalem Speicher anbieten.\",\n \"In development\": \"In Entwicklung\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"Öffnen\",\n \"Setting\": \"Einstellungen\",\n \"Uninstall\": \"Deinstallieren\",\n \"Attention\": \"Achtung\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Deine Daten können nach der Deinstallation nicht wiederhergestellt werden!
Willst du mit der Deinstallation der App fortfahren?\",\n \"Featured Apps\": \"Vorgestellte Apps\",\n \"Custom Install\": \"Eigene Installation\",\n \"Continue in background\": \"Im Hintergrund fortfahren\",\n \"Install a new App manually\": \"Neue App manuell installieren\",\n \"Docker Image\": \"Docker-Image\",\n \"App name\": \"App-Name\",\n \"Icon URL\": \"Icon-URL\",\n \"Network\": \"Netzwerk\",\n \"Ports\": \"Ports\",\n \"Volumes\": \"Volumes\",\n \"Environment Variables\": \"Umgebungsvariablen\",\n \"Devices\": \"Geräte\",\n \"Memory Limit\": \"Speicherlimit\",\n \"CPU Shares\": \"CPU-Anteile\",\n \"Restart Policy\": \"Neustartrichtlinie\",\n \"App Description\": \"App-Beschreibung\",\n \"No ports now, click “+” to add one.\": \"Keine Ports vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"No volumes now, click “+” to add one.\": \"Keine Volumes vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"No environment variables now, click “+” to add one.\": \"Keine Umgebungsvariablen vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"No devices now, click “+” to add one.\": \"Keine Geräte vorhanden. Klicke auf “+” zum Hinzuzufügen.\",\n \"e.g.,hello-world:latest\": \"z.B. hello-world:latest\",\n \"Your custom App Name\": \"Dein eigener App-Name\",\n \"Your custom icon URL\": \"Deine eigene Icon-URL\",\n \"Installing\": \"Installiere\",\n \"Export AppFile\": \"AppFile exportieren\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"Lege dein AppFile hier ab oder klicke zum Hochladen\",\n \"Host\": \"Host\",\n \"Container\": \"Container\",\n \"Key\": \"Schlüssel\",\n \"Value\": \"Wert\",\n \"Protocol\": \"Protokoll\",\n \"This is not a valid json file.\": \"Das ist keine valide JSON-Datei.\",\n \"Your browser does not support file reading.\": \"Dein Browser unterstützt das Auslesen von Dateien nicht.\",\n \"has been selected\": \"wurde ausgewählt\",\n \"Please fill correct command line\": \"Bitte gib das korrekte Kommando ein\",\n \"Please import a valid App file\": \"Bitte importiere ein valides AppFile\",\n \"AutoFill only helps you to complete most of the configuration.\": \"AutoFill hilft dir beim Ausfüllen des größten Teils der Konfiguration.\",\n \"Some configuration information such as:\": \"Einige Konfigurationsparameter wie:\",\n \"the port and path of the Web UI\": \"den Port und den Pfad der Web-UI\",\n \"the mount location of the volume or file\": \"den Speicherort des Volumes oder der Datei\",\n \"the port mapping of the Host\": \"die Portzuordnung des Hosts\",\n \"optional configuration items\": \"optionale Konfigurationsparameter\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Dazu gehören unter anderem diese Fälle, die noch bestätigt oder geändert werden müssen.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Du kannst gerne Verbesserungen für diese Funktion auf dem Discord-Server vorschlagen!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"Die Verwendung von localhost oder 127.0.0.1 führt dazu, dass die Anwendung nicht aufrufbar ist. Bitte verwende die echte IP-Adresse für den Zugriff.\",\n \"CATEGORY\": \"KATEGORIE\",\n \"DEVELOPER\": \"ENTWICKLER\",\n \"REQUIRE\": \"ERFORDERLICHER\",\n \"MEMORY\": \"RAM\",\n \"DISK\": \"SPEICHER\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"Community Apps\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"Von der Community zur Verfügung gestellt, aber nicht für CasaOS optimiert. Grundlegende App-Funktionen sind jedoch problemlos nutzbar.\",\n \"Sort by\": \"Sortieren nach\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\",\n // Feedback\n \"Join Discord\": \"Join Discord\",\n \"Visit our Github\": \"Visit our Github\",\n \"Bug report\": \"Bug report\",\n \"Title\": \"Title\",\n \"Describe the bug\": \"Describe the bug\",\n \"A clear and concise description of what the bug is.\": \"A clear and concise description of what the bug is.\",\n \"System infomation\": \"System infomation\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/de_de.js?");
/***/ }),
@@ -407,7 +431,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// German\n/* harmony default
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// English\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Cancel\",\n \"Submit\": \"Submit\",\n \"Back\": \"Back\",\n \"Edit\": \"Edit\",\n \"Update\": \"Update\",\n \"Create\": \"Create\",\n \"Next\": \"Next\",\n \"Close\": \"Close\",\n \"Select\": \"Select\",\n \"Save\": \"Save\",\n \"Add\": \"Add\",\n \"Go\": \"Go\",\n \"Import\": \"Import\",\n \"Low\": \"Low\",\n \"Medium\": \"Medium\",\n \"High\": \"High\",\n \"Language\": \"Language\",\n \"This field is required\": \"This field is required\",\n \"This field must be a valid email\": \"This field must be a valid email\",\n \"This field confirmation does not match\": \"This field confirmation does not match\",\n \"This field must have 2 options\": \"This field must have 2 options\",\n \"This field must have more than 5 characters\": \"This field must have more than 5 characters\",\n // Init Page\n \"Welcome to CasaOS\": \"Welcome to CasaOS\",\n \"Let's create your initial account\": \"Let's create your initial account\",\n \"Go →\": \"Go →\",\n \"Create Account\": \"Create Account\",\n \"Username\": \"Username\",\n \"Confirm Password\": \"Confirm Password\",\n \"Username or Password error!\": \"Username or Password error!\",\n \"All things done!\": \"All things done!\",\n // Login\n \"Login\": \"Login\",\n \"Password error!\": \"Password error!\",\n // Account\n \"Account\": \"Account\",\n \"Logout\": \"Logout\",\n \"Name\": \"Name\",\n \"Password\": \"Password\",\n \"Change name\": \"Change name\",\n \"Change Password\": \"Change Password\",\n \"Original password\": \"Original password\",\n \"New password\": \"New password\",\n \"Confirm the new password again\": \"Confirm the new password again\",\n // Dashboard Settings\n \"Settings\": \"Settings\",\n \"Dashboard Setting\": \"Dashboard Setting\",\n \"Search Engine\": \"Search Engine\",\n \"WebUI Port\": \"WebUI Port\",\n \"Currently the latest version\": \"Currently the latest version\",\n \"A new version is available!\": \"A new version is available!\",\n \"Edit Web UI port\": \"Edit WebUI port\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & Logs\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Logs\",\n // Widgets\n \"Widgets Settings\": \"Widgets Settings\",\n \"Time\": \"Time\",\n \"System Status\": \"System Status\",\n \"Disk Status\": \"Disk Status\",\n \"Network Status\": \"Network Status\",\n \"available of\": \"{avl} available of {total}\",\n // Search \n \"Search...\": \"Search...\",\n // Sync\n \"Sync your data\": \"Sync your data\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Follow the guide to start syncing your files across multiple devices.\",\n \"Go !\": \"Go !\",\n \"Sync Guide\": \"Sync Guide\",\n \"Install\": \"Install\",\n \"Config\": \"Config\",\n \"Complete\": \"Complete\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Download Syncthing on the device you want to sync with CasaOS\",\n \"Get Syncthing for\": \"Get Syncthing for {os}\",\n \"Download APK\": \"Download APK\",\n \"Show all Platforms\": \"Show all Platforms\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Install and open the downloaded application, then click the \"Next\" button.',\n \"Device ID\": \"Device ID\",\n \"Fill in your Device ID to continue\": \"Fill in your Device ID to continue\",\n \"How to get Device ID\": \"How to get Device ID\",\n \"What do I need to do on my device?\": \"What do I need to do on my device?\",\n \"Open the SyncTrayzor\": \"Open the SyncTrayzor\",\n \"Find the Device ID\": \"Find the Device ID\",\n \"Add new device on your device\": \"Add new device on your device\",\n \"Add new folder on your device\": \"Add new folder on your device\",\n \"Done!\": \"Done!\",\n \"Open Syncthing in the Launchpad\": \"Open Syncthing in the Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Find the Syncthing icon in the menubar\",\n \"Open Syncthing\": \"Open Syncthing\",\n \"Open the menu\": \"Open the menu\",\n 'Choose \"Show device ID\"': 'Choose \"Show device ID\"',\n \"Copy the Device ID\": \"Copy the Device ID\",\n \"There you go!\": \"There you go!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Your data has started to sync.
It may take some minutes to fulfill synchronization.\",\n \"Up to Date\": \"Up to Date\",\n \"Synchronizing\": \"Synchronizing\",\n \"Synchronized\": \"Synchronized\",\n \"Total\": \"Total\",\n \"Add New Device\": \"Add New Device\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Have an idea? Shoot it on Discord!\",\n \"Smarten up your home\": \"Smarten up your home\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"We want to give you a smart home experience with privacy, high speed, and localized storage.\",\n \"In development\": \"In development\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"Open\",\n \"Setting\": \"Setting\",\n \"Uninstall\": \"Uninstall\",\n \"Attention\": \"Attention\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\",\n \"Featured Apps\": \"Featured Apps\",\n \"Custom Install\": \"Custom Install\",\n \"Continue in background\": \"Continue in background\",\n \"Install a new App manually\": \"Install a new App manually\",\n \"Docker Image\": \"Docker Image\",\n \"App name\": \"App name\",\n \"Icon URL\": \"Icon URL\",\n \"Network\": \"Network\",\n \"Ports\": \"Ports\",\n \"Volumes\": \"Volumes\",\n \"Environment Variables\": \"Environment Variables\",\n \"Devices\": \"Devices\",\n \"Memory Limit\": \"Memory Limit\",\n \"CPU Shares\": \"CPU Shares\",\n \"Restart Policy\": \"Restart Policy\",\n \"App Description\": \"App Description\",\n \"No ports now, click “+” to add one.\": \"No ports now, click “+” to add one.\",\n \"No volumes now, click “+” to add one.\": \"No volumes now, click “+” to add one.\",\n \"No environment variables now, click “+” to add one.\": \"No environment variables now, click “+” to add one.\",\n \"No devices now, click “+” to add one.\": \"No devices now, click “+” to add one.\",\n \"e.g.,hello-world:latest\": \"e.g.,hello-world:latest\",\n \"Your custom App Name\": \"Your custom App Name\",\n \"Your custom icon URL\": \"Your custom icon URL\",\n \"Installing\": \"Installing\",\n \"Export AppFile\": \"Export AppFile\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"Drop your app file here or click to upload\",\n \"Host\": \"Host\",\n \"Container\": \"Container\",\n \"Key\": \"Key\",\n \"Value\": \"Value\",\n \"Protocol\": \"Protocol\",\n \"This is not a valid json file.\": \"This is not a valid json file.\",\n \"Your browser does not support file reading.\": \"Your browser does not support file reading.\",\n \"has been selected\": \"has been selected\",\n \"Please fill correct command line\": \"Please fill correct command line\",\n \"Please import a valid App file\": \"Please import a valid App file\",\n \"AutoFill only helps you to complete most of the configuration.\": \"AutoFill only helps you to complete most of the configuration.\",\n \"Some configuration information such as:\": \"Some configuration information such as:\",\n \"the port and path of the Web UI\": \"the port and path of the Web UI\",\n \"the mount location of the volume or file\": \"the mount location of the volume or file\",\n \"the port mapping of the Host\": \"the port mapping of the Host\",\n \"optional configuration items\": \"optional configuration items\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"These include but are not limited to these cases and still need to be confirmed or modified by you.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Feel free to suggest improvements to this feature in Discord Server!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\",\n \"CATEGORY\": \"CATEGORY\",\n \"DEVELOPER\": \"DEVELOPER\",\n \"REQUIRE\": \"REQUIRE\",\n \"MEMORY\": \"MEMORY\",\n \"DISK\": \"DISK\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"Community Apps\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\",\n \"Sort by\": \"Sort by\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/en_us.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// English\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Cancel\",\n \"Submit\": \"Submit\",\n \"Back\": \"Back\",\n \"Edit\": \"Edit\",\n \"Update\": \"Update\",\n \"Create\": \"Create\",\n \"Next\": \"Next\",\n \"Close\": \"Close\",\n \"Select\": \"Select\",\n \"Save\": \"Save\",\n \"Add\": \"Add\",\n \"Go\": \"Go\",\n \"Import\": \"Import\",\n \"Low\": \"Low\",\n \"Medium\": \"Medium\",\n \"High\": \"High\",\n \"Language\": \"Language\",\n \"This field is required\": \"This field is required\",\n \"This field must be a valid email\": \"This field must be a valid email\",\n \"This field confirmation does not match\": \"This field confirmation does not match\",\n \"This field must have 2 options\": \"This field must have 2 options\",\n \"This field must have more than 5 characters\": \"This field must have more than 5 characters\",\n // Init Page\n \"Welcome to CasaOS\": \"Welcome to CasaOS\",\n \"Let's create your initial account\": \"Let's create your initial account\",\n \"Go →\": \"Go →\",\n \"Create Account\": \"Create Account\",\n \"Username\": \"Username\",\n \"Confirm Password\": \"Confirm Password\",\n \"Username or Password error!\": \"Username or Password error!\",\n \"All things done!\": \"All things done!\",\n // Login\n \"Login\": \"Login\",\n \"Password error!\": \"Password error!\",\n // Account\n \"Account\": \"Account\",\n \"Logout\": \"Logout\",\n \"Name\": \"Name\",\n \"Password\": \"Password\",\n \"Change name\": \"Change name\",\n \"Change Password\": \"Change Password\",\n \"Original password\": \"Original password\",\n \"New password\": \"New password\",\n \"Confirm the new password again\": \"Confirm the new password again\",\n // Dashboard Settings\n \"Settings\": \"Settings\",\n \"Dashboard Setting\": \"Dashboard Setting\",\n \"Search Engine\": \"Search Engine\",\n \"WebUI Port\": \"WebUI Port\",\n \"Currently the latest version\": \"Currently the latest version\",\n \"A new version is available!\": \"A new version is available!\",\n \"Edit Web UI port\": \"Edit WebUI port\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & Logs\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Logs\",\n // Widgets\n \"Widgets Settings\": \"Widgets Settings\",\n \"Time\": \"Time\",\n \"System Status\": \"System Status\",\n \"Disk Status\": \"Disk Status\",\n \"Network Status\": \"Network Status\",\n \"available of\": \"{avl} available of {total}\",\n // Search \n \"Search...\": \"Search...\",\n // Sync\n \"Sync your data\": \"Sync your data\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Follow the guide to start syncing your files across multiple devices.\",\n \"Go !\": \"Go !\",\n \"Sync Guide\": \"Sync Guide\",\n \"Install\": \"Install\",\n \"Config\": \"Config\",\n \"Complete\": \"Complete\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Download Syncthing on the device you want to sync with CasaOS\",\n \"Get Syncthing for\": \"Get Syncthing for {os}\",\n \"Download APK\": \"Download APK\",\n \"Show all Platforms\": \"Show all Platforms\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Install and open the downloaded application, then click the \"Next\" button.',\n \"Device ID\": \"Device ID\",\n \"Fill in your Device ID to continue\": \"Fill in your Device ID to continue\",\n \"How to get Device ID\": \"How to get Device ID\",\n \"What do I need to do on my device?\": \"What do I need to do on my device?\",\n \"Open the SyncTrayzor\": \"Open the SyncTrayzor\",\n \"Find the Device ID\": \"Find the Device ID\",\n \"Add new device on your device\": \"Add new device on your device\",\n \"Add new folder on your device\": \"Add new folder on your device\",\n \"Done!\": \"Done!\",\n \"Open Syncthing in the Launchpad\": \"Open Syncthing in the Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Find the Syncthing icon in the menubar\",\n \"Open Syncthing\": \"Open Syncthing\",\n \"Open the menu\": \"Open the menu\",\n 'Choose \"Show device ID\"': 'Choose \"Show device ID\"',\n \"Copy the Device ID\": \"Copy the Device ID\",\n \"There you go!\": \"There you go!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Your data has started to sync.
It may take some minutes to fulfill synchronization.\",\n \"Up to Date\": \"Up to Date\",\n \"Synchronizing\": \"Synchronizing\",\n \"Synchronized\": \"Synchronized\",\n \"Total\": \"Total\",\n \"Add New Device\": \"Add New Device\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Have an idea? Shoot it on Discord!\",\n \"Smarten up your home\": \"Smarten up your home\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"We want to give you a smart home experience with privacy, high speed, and localized storage.\",\n \"In development\": \"In development\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"Open\",\n \"Setting\": \"Setting\",\n \"Uninstall\": \"Uninstall\",\n \"Attention\": \"Attention\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\",\n \"Featured Apps\": \"Featured Apps\",\n \"Custom Install\": \"Custom Install\",\n \"Continue in background\": \"Continue in background\",\n \"Install a new App manually\": \"Install a new App manually\",\n \"Docker Image\": \"Docker Image\",\n \"App name\": \"App name\",\n \"Icon URL\": \"Icon URL\",\n \"Network\": \"Network\",\n \"Ports\": \"Ports\",\n \"Volumes\": \"Volumes\",\n \"Environment Variables\": \"Environment Variables\",\n \"Devices\": \"Devices\",\n \"Memory Limit\": \"Memory Limit\",\n \"CPU Shares\": \"CPU Shares\",\n \"Restart Policy\": \"Restart Policy\",\n \"App Description\": \"App Description\",\n \"No ports now, click “+” to add one.\": \"No ports now, click “+” to add one.\",\n \"No volumes now, click “+” to add one.\": \"No volumes now, click “+” to add one.\",\n \"No environment variables now, click “+” to add one.\": \"No environment variables now, click “+” to add one.\",\n \"No devices now, click “+” to add one.\": \"No devices now, click “+” to add one.\",\n \"e.g.,hello-world:latest\": \"e.g.,hello-world:latest\",\n \"Your custom App Name\": \"Your custom App Name\",\n \"Your custom icon URL\": \"Your custom icon URL\",\n \"Installing\": \"Installing\",\n \"Export AppFile\": \"Export AppFile\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"Drop your app file here or click to upload\",\n \"Host\": \"Host\",\n \"Container\": \"Container\",\n \"Key\": \"Key\",\n \"Value\": \"Value\",\n \"Protocol\": \"Protocol\",\n \"This is not a valid json file.\": \"This is not a valid json file.\",\n \"Your browser does not support file reading.\": \"Your browser does not support file reading.\",\n \"has been selected\": \"has been selected\",\n \"Please fill correct command line\": \"Please fill correct command line\",\n \"Please import a valid App file\": \"Please import a valid App file\",\n \"AutoFill only helps you to complete most of the configuration.\": \"AutoFill only helps you to complete most of the configuration.\",\n \"Some configuration information such as:\": \"Some configuration information such as:\",\n \"the port and path of the Web UI\": \"the port and path of the Web UI\",\n \"the mount location of the volume or file\": \"the mount location of the volume or file\",\n \"the port mapping of the Host\": \"the port mapping of the Host\",\n \"optional configuration items\": \"optional configuration items\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"These include but are not limited to these cases and still need to be confirmed or modified by you.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Feel free to suggest improvements to this feature in Discord Server!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\",\n \"CATEGORY\": \"CATEGORY\",\n \"DEVELOPER\": \"DEVELOPER\",\n \"REQUIRE\": \"REQUIRE\",\n \"MEMORY\": \"MEMORY\",\n \"DISK\": \"DISK\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"Community Apps\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\",\n \"Sort by\": \"Sort by\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\",\n // Feedback\n \"Join Discord\": \"Join Discord\",\n \"Visit our Github\": \"Visit our Github\",\n \"Bug report\": \"Bug report\",\n \"Title\": \"Title\",\n \"Describe the bug\": \"Describe the bug\",\n \"A clear and concise description of what the bug is.\": \"A clear and concise description of what the bug is.\",\n \"System infomation\": \"System infomation\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/en_us.js?");
/***/ }),
@@ -419,7 +443,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// English\n/* harmony defaul
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// Spanish\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Cancelar\",\n \"Submit\": \"Enviar\",\n \"Back\": \"Volver\",\n \"Edit\": \"Editar\",\n \"Update\": \"Actualización\",\n \"Create\": \"Crear\",\n \"Next\": \"Siguiente\",\n \"Close\": \"Cerrar\",\n \"Select\": \"Seleccione\",\n \"Save\": \"Guardar\",\n \"Add\": \"Añadir\",\n \"Go\": \"Ir\",\n \"Import\": \"Importar\",\n \"Low\": \"Bajo\",\n \"Medium\": \"Medio\",\n \"High\": \"Alta\",\n \"Language\": \"Lengua\",\n \"This field is required\": \"Este campo es obligatorio\",\n \"This field must be a valid email\": \"Este campo debe ser un correo electrónico válido\",\n \"This field confirmation does not match\": \"Esta confirmación de campo no corresponde\",\n \"This field must have 2 options\": \"Este campo debe tener 2 opciones\",\n \"This field must have more than 5 characters\": \"Este campo debe tener más de 5 caracteres\",\n // Init Page\n \"Welcome to CasaOS\": \"Bienvenido a CasaOS\",\n \"Let's create your initial account\": \"Creemos tu cuenta inicial\",\n \"Go →\": \"Ir →\",\n \"Create Account\": \"Crear cuenta\",\n \"Username\": \"Nombre de usuario\",\n \"Confirm Password\": \"Confirmar contraseña\",\n \"Username or Password error!\": \"Error de nombre de usuario o contraseña.\",\n \"All things done!\": \"¡Todo hecho!\",\n // Login\n \"Login\": \"Inicio de sesión\",\n \"Password error!\": \"Error de contraseña.\",\n // Account\n \"Account\": \"Cuenta\",\n \"Logout\": \"Cierre la sesión\",\n \"Name\": \"Nombre\",\n \"Password\": \"Contraseña\",\n \"Change name\": \"Cambiar el nombre\",\n \"Change Password\": \"Cambiar la contraseña\",\n \"Original password\": \"Contraseña original\",\n \"New password\": \"Nueva contraseña\",\n \"Confirm the new password again\": \"Confirmar de nuevo la nueva contraseña\",\n // Dashboard Settings\n \"Settings\": \"Ajustes\",\n \"Dashboard Setting\": \"Configuración del panel de control\",\n \"Search Engine\": \"Motor de búsqueda\",\n \"WebUI Port\": \"Puerto de la WebUI\",\n \"Currently the latest version\": \"Actualmente la última versión\",\n \"A new version is available!\": \"¡Una nueva versión está disponible!\",\n \"Edit Web UI port\": \"Editar el puerto de la WebUI\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & registros\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Registros\",\n // Widgets\n \"Widgets Settings\": \"Configuración de widgets\",\n \"Time\": \"Hora\",\n \"System Status\": \"Estado del sistema\",\n \"Disk Status\": \"Estado del disco\",\n \"Network Status\": \"Estado de la red\",\n \"available of\": \"{avl} disponible en {total}\",\n // Search \n \"Search...\": \"Buscar...\",\n // Sync\n \"Sync your data\": \"Sincroniza tus datos\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Sigue la guía para empezar a sincronizar tus archivos en varios dispositivos.\",\n \"Go !\": \"¡Venga!\",\n \"Sync Guide\": \"Guía de sincronización\",\n \"Install\": \"Instalar\",\n \"Config\": \"Configurar\",\n \"Complete\": \"Completa\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Descargue Syncthing en el equipo que desea sincronizar con CasaOS\",\n \"Get Syncthing for\": \"Obtenga Syncthing para {os}\",\n \"Download APK\": \"Descargar APK\",\n \"Show all Platforms\": \"Mostrar todas las plataformas\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Instale y abra la aplicación descargada, y luego haga clic en el botón \"Siguiente\".',\n \"Device ID\": \"Identificación del dispositivo\",\n \"Fill in your Device ID to continue\": \"Introduzca su ID de equipo para continuar\",\n \"How to get Device ID\": \"Cómo obtener el ID del equipo\",\n \"What do I need to do on my device?\": \"¿Qué tengo que hacer en mi dispositivo?\",\n \"Open the SyncTrayzor\": \"Abrir el SyncTrayzor\",\n \"Find the Device ID\": \"Encuentre el ID del equipo\",\n \"Add new device on your device\": \"Añadir un nuevo dispositivo en su equipo\",\n \"Add new folder on your device\": \"Añade una nueva carpeta en tu equipo\",\n \"Done!\": \"¡Hecho!\",\n \"Open Syncthing in the Launchpad\": \"Abrir Syncthing en el Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Busque el icono de Syncthing en la barra de menús\",\n \"Open Syncthing\": \"Abrir Syncthing\",\n \"Open the menu\": \"Abrir el menú\",\n 'Choose \"Show device ID\"': 'Elija \"Mostrar el ID del equipo\"',\n \"Copy the Device ID\": \"Copiar el ID del equipo\",\n \"There you go!\": \"¡Ahí lo tienes!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Sus datos han comenzado a sincronizarse.
Puede tardar unos minutos en completarse la sincronización.\",\n \"Up to Date\": \"Hasta la fecha\",\n \"Synchronizing\": \"Sincronizando\",\n \"Synchronized\": \"Sincronizado\",\n \"Total\": \"Total\",\n \"Add New Device\": \"Añadir nuevo dispositivo\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"¿Tienes una idea? ¡Distribúyela en Discord!\",\n \"Smarten up your home\": \"Mejore su hogar\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Queremos ofrecerte una experiencia doméstica inteligente con privacidad, alta velocidad y almacenamiento localizado.\",\n \"In development\": \"En desarrollo\",\n // Apps\n \"Apps\": \"Aplicaciones\",\n \"App\": \"Aplicación\",\n \"Open\": \"Abrir\",\n \"Setting\": \"Configuración\",\n \"Uninstall\": \"Desinstalar\",\n \"Attention\": \"Atención\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"¡Los datos no se pueden recuperar después de la eliminación!
¿Continuar para desinstalar esta aplicación?\",\n \"Featured Apps\": \"Aplicaciones destacadas\",\n \"Custom Install\": \"Instalación personalizada\",\n \"Continue in background\": \"Continuar en el fondo\",\n \"Install a new App manually\": \"Instalar una nueva aplicación manualmente\",\n \"Docker Image\": \"Imagen Docker\",\n \"App name\": \"Nombre de la aplicación\",\n \"Icon URL\": \"Icono URL\",\n \"Network\": \"Red\",\n \"Ports\": \"Puertos\",\n \"Volumes\": \"Volúmenes\",\n \"Environment Variables\": \"Variables de entorno\",\n \"Devices\": \"Devices\",\n \"Memory Limit\": \"Límite de memoria\",\n \"CPU Shares\": \"Acciones de la CPU\",\n \"Restart Policy\": \"Política de reinicio\",\n \"App Description\": \"Descripción de la aplicación\",\n \"No ports now, click “+” to add one.\": \"Ahora no hay puertos, haz clic en “+” para añadir uno.\",\n \"No volumes now, click “+” to add one.\": \"No hay volúmenes ahora, haga clic en “+” para añadir uno.\",\n \"No environment variables now, click “+” to add one.\": \"Ahora no hay variables de entorno, haz clic en “+” para añadir una.\",\n \"No devices now, click “+” to add one.\": \"No hay dispositivos ahora, haz clic en “+” para añadir uno.\",\n \"e.g.,hello-world:latest\": \"e.g.,hello-world:latest\",\n \"Your custom App Name\": \"Su nombre personalizado de la aplicación\",\n \"Your custom icon URL\": \"La URL de su icono personalizado\",\n \"Installing\": \"Instalación de\",\n \"Export AppFile\": \"Exportar AppFile\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"Suelte su archivo de aplicación aquí o haga clic para cargarlo\",\n \"Host\": \"Anfitrión\",\n \"Container\": \"Contenedor\",\n \"Key\": \"Clave\",\n \"Value\": \"Value\",\n \"Protocol\": \"Protocolo\",\n \"This is not a valid json file.\": \"Este no es un archivo json válido.\",\n \"Your browser does not support file reading.\": \"Su navegador no soporta la lectura de archivos.\",\n \"has been selected\": \"ha sido seleccionado\",\n \"Please fill correct command line\": \"Por favor, rellene la línea de comandos correcta\",\n \"Please import a valid App file\": \"Por favor, importe un archivo App válido\",\n \"AutoFill only helps you to complete most of the configuration.\": \"El autorelleno sólo le ayuda a completar la mayor parte de la configuración.\",\n \"Some configuration information such as:\": \"Algunas informaciones de configuración como:\",\n \"the port and path of the Web UI\": \"el puerto y la ruta de la interfaz web\",\n \"the mount location of the volume or file\": \"la ubicación de montaje del volumen o archivo\",\n \"the port mapping of the Host\": \"la asignación de puertos del Host\",\n \"optional configuration items\": \"elementos de configuración opcionales\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Estos incluyen pero no se limitan a estos casos y aún deben ser confirmados o modificados por usted.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"No dudes en sugerir mejoras para esta función en el Servidor de Discordia.\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"El uso de localhost o 127.0.0.1 hará que la aplicación sea inaccesible, por favor utilice la ip real para acceder.\",\n \"CATEGORY\": \"CATEGORÍA\",\n \"DEVELOPER\": \"DESARROLLO\",\n \"REQUIRE\": \"REQUIERE\",\n \"MEMORY\": \"MEMORIA\",\n \"DISK\": \"DISCO\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"Community Apps\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"De colaboradores de la comunidad, no está optimizado para CasaOS, pero proporciona una experiencia básica de la App.\",\n \"Sort by\": \"Ordenar por\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/es_es.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// Spanish\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Cancelar\",\n \"Submit\": \"Enviar\",\n \"Back\": \"Volver\",\n \"Edit\": \"Editar\",\n \"Update\": \"Actualización\",\n \"Create\": \"Crear\",\n \"Next\": \"Siguiente\",\n \"Close\": \"Cerrar\",\n \"Select\": \"Seleccione\",\n \"Save\": \"Guardar\",\n \"Add\": \"Añadir\",\n \"Go\": \"Ir\",\n \"Import\": \"Importar\",\n \"Low\": \"Bajo\",\n \"Medium\": \"Medio\",\n \"High\": \"Alta\",\n \"Language\": \"Lengua\",\n \"This field is required\": \"Este campo es obligatorio\",\n \"This field must be a valid email\": \"Este campo debe ser un correo electrónico válido\",\n \"This field confirmation does not match\": \"Esta confirmación de campo no corresponde\",\n \"This field must have 2 options\": \"Este campo debe tener 2 opciones\",\n \"This field must have more than 5 characters\": \"Este campo debe tener más de 5 caracteres\",\n // Init Page\n \"Welcome to CasaOS\": \"Bienvenido a CasaOS\",\n \"Let's create your initial account\": \"Creemos tu cuenta inicial\",\n \"Go →\": \"Ir →\",\n \"Create Account\": \"Crear cuenta\",\n \"Username\": \"Nombre de usuario\",\n \"Confirm Password\": \"Confirmar contraseña\",\n \"Username or Password error!\": \"Error de nombre de usuario o contraseña.\",\n \"All things done!\": \"¡Todo hecho!\",\n // Login\n \"Login\": \"Inicio de sesión\",\n \"Password error!\": \"Error de contraseña.\",\n // Account\n \"Account\": \"Cuenta\",\n \"Logout\": \"Cierre la sesión\",\n \"Name\": \"Nombre\",\n \"Password\": \"Contraseña\",\n \"Change name\": \"Cambiar el nombre\",\n \"Change Password\": \"Cambiar la contraseña\",\n \"Original password\": \"Contraseña original\",\n \"New password\": \"Nueva contraseña\",\n \"Confirm the new password again\": \"Confirmar de nuevo la nueva contraseña\",\n // Dashboard Settings\n \"Settings\": \"Ajustes\",\n \"Dashboard Setting\": \"Configuración del panel de control\",\n \"Search Engine\": \"Motor de búsqueda\",\n \"WebUI Port\": \"Puerto de la WebUI\",\n \"Currently the latest version\": \"Actualmente la última versión\",\n \"A new version is available!\": \"¡Una nueva versión está disponible!\",\n \"Edit Web UI port\": \"Editar el puerto de la WebUI\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & registros\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Registros\",\n // Widgets\n \"Widgets Settings\": \"Configuración de widgets\",\n \"Time\": \"Hora\",\n \"System Status\": \"Estado del sistema\",\n \"Disk Status\": \"Estado del disco\",\n \"Network Status\": \"Estado de la red\",\n \"available of\": \"{avl} disponible en {total}\",\n // Search \n \"Search...\": \"Buscar...\",\n // Sync\n \"Sync your data\": \"Sincroniza tus datos\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Sigue la guía para empezar a sincronizar tus archivos en varios dispositivos.\",\n \"Go !\": \"¡Venga!\",\n \"Sync Guide\": \"Guía de sincronización\",\n \"Install\": \"Instalar\",\n \"Config\": \"Configurar\",\n \"Complete\": \"Completa\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Descargue Syncthing en el equipo que desea sincronizar con CasaOS\",\n \"Get Syncthing for\": \"Obtenga Syncthing para {os}\",\n \"Download APK\": \"Descargar APK\",\n \"Show all Platforms\": \"Mostrar todas las plataformas\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Instale y abra la aplicación descargada, y luego haga clic en el botón \"Siguiente\".',\n \"Device ID\": \"Identificación del dispositivo\",\n \"Fill in your Device ID to continue\": \"Introduzca su ID de equipo para continuar\",\n \"How to get Device ID\": \"Cómo obtener el ID del equipo\",\n \"What do I need to do on my device?\": \"¿Qué tengo que hacer en mi dispositivo?\",\n \"Open the SyncTrayzor\": \"Abrir el SyncTrayzor\",\n \"Find the Device ID\": \"Encuentre el ID del equipo\",\n \"Add new device on your device\": \"Añadir un nuevo dispositivo en su equipo\",\n \"Add new folder on your device\": \"Añade una nueva carpeta en tu equipo\",\n \"Done!\": \"¡Hecho!\",\n \"Open Syncthing in the Launchpad\": \"Abrir Syncthing en el Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Busque el icono de Syncthing en la barra de menús\",\n \"Open Syncthing\": \"Abrir Syncthing\",\n \"Open the menu\": \"Abrir el menú\",\n 'Choose \"Show device ID\"': 'Elija \"Mostrar el ID del equipo\"',\n \"Copy the Device ID\": \"Copiar el ID del equipo\",\n \"There you go!\": \"¡Ahí lo tienes!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Sus datos han comenzado a sincronizarse.
Puede tardar unos minutos en completarse la sincronización.\",\n \"Up to Date\": \"Hasta la fecha\",\n \"Synchronizing\": \"Sincronizando\",\n \"Synchronized\": \"Sincronizado\",\n \"Total\": \"Total\",\n \"Add New Device\": \"Añadir nuevo dispositivo\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"¿Tienes una idea? ¡Distribúyela en Discord!\",\n \"Smarten up your home\": \"Mejore su hogar\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Queremos ofrecerte una experiencia doméstica inteligente con privacidad, alta velocidad y almacenamiento localizado.\",\n \"In development\": \"En desarrollo\",\n // Apps\n \"Apps\": \"Aplicaciones\",\n \"App\": \"Aplicación\",\n \"Open\": \"Abrir\",\n \"Setting\": \"Configuración\",\n \"Uninstall\": \"Desinstalar\",\n \"Attention\": \"Atención\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"¡Los datos no se pueden recuperar después de la eliminación!
¿Continuar para desinstalar esta aplicación?\",\n \"Featured Apps\": \"Aplicaciones destacadas\",\n \"Custom Install\": \"Instalación personalizada\",\n \"Continue in background\": \"Continuar en el fondo\",\n \"Install a new App manually\": \"Instalar una nueva aplicación manualmente\",\n \"Docker Image\": \"Imagen Docker\",\n \"App name\": \"Nombre de la aplicación\",\n \"Icon URL\": \"Icono URL\",\n \"Network\": \"Red\",\n \"Ports\": \"Puertos\",\n \"Volumes\": \"Volúmenes\",\n \"Environment Variables\": \"Variables de entorno\",\n \"Devices\": \"Devices\",\n \"Memory Limit\": \"Límite de memoria\",\n \"CPU Shares\": \"Acciones de la CPU\",\n \"Restart Policy\": \"Política de reinicio\",\n \"App Description\": \"Descripción de la aplicación\",\n \"No ports now, click “+” to add one.\": \"Ahora no hay puertos, haz clic en “+” para añadir uno.\",\n \"No volumes now, click “+” to add one.\": \"No hay volúmenes ahora, haga clic en “+” para añadir uno.\",\n \"No environment variables now, click “+” to add one.\": \"Ahora no hay variables de entorno, haz clic en “+” para añadir una.\",\n \"No devices now, click “+” to add one.\": \"No hay dispositivos ahora, haz clic en “+” para añadir uno.\",\n \"e.g.,hello-world:latest\": \"e.g.,hello-world:latest\",\n \"Your custom App Name\": \"Su nombre personalizado de la aplicación\",\n \"Your custom icon URL\": \"La URL de su icono personalizado\",\n \"Installing\": \"Instalación de\",\n \"Export AppFile\": \"Exportar AppFile\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"Suelte su archivo de aplicación aquí o haga clic para cargarlo\",\n \"Host\": \"Anfitrión\",\n \"Container\": \"Contenedor\",\n \"Key\": \"Clave\",\n \"Value\": \"Value\",\n \"Protocol\": \"Protocolo\",\n \"This is not a valid json file.\": \"Este no es un archivo json válido.\",\n \"Your browser does not support file reading.\": \"Su navegador no soporta la lectura de archivos.\",\n \"has been selected\": \"ha sido seleccionado\",\n \"Please fill correct command line\": \"Por favor, rellene la línea de comandos correcta\",\n \"Please import a valid App file\": \"Por favor, importe un archivo App válido\",\n \"AutoFill only helps you to complete most of the configuration.\": \"El autorelleno sólo le ayuda a completar la mayor parte de la configuración.\",\n \"Some configuration information such as:\": \"Algunas informaciones de configuración como:\",\n \"the port and path of the Web UI\": \"el puerto y la ruta de la interfaz web\",\n \"the mount location of the volume or file\": \"la ubicación de montaje del volumen o archivo\",\n \"the port mapping of the Host\": \"la asignación de puertos del Host\",\n \"optional configuration items\": \"elementos de configuración opcionales\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Estos incluyen pero no se limitan a estos casos y aún deben ser confirmados o modificados por usted.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"No dudes en sugerir mejoras para esta función en el Servidor de Discordia.\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"El uso de localhost o 127.0.0.1 hará que la aplicación sea inaccesible, por favor utilice la ip real para acceder.\",\n \"CATEGORY\": \"CATEGORÍA\",\n \"DEVELOPER\": \"DESARROLLO\",\n \"REQUIRE\": \"REQUIERE\",\n \"MEMORY\": \"MEMORIA\",\n \"DISK\": \"DISCO\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"Community Apps\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"De colaboradores de la comunidad, no está optimizado para CasaOS, pero proporciona una experiencia básica de la App.\",\n \"Sort by\": \"Ordenar por\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\",\n // Feedback\n \"Join Discord\": \"Join Discord\",\n \"Visit our Github\": \"Visit our Github\",\n \"Bug report\": \"Bug report\",\n \"Title\": \"Title\",\n \"Describe the bug\": \"Describe the bug\",\n \"A clear and concise description of what the bug is.\": \"A clear and concise description of what the bug is.\",\n \"System infomation\": \"System infomation\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/es_es.js?");
/***/ }),
@@ -431,7 +455,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// Spanish\n/* harmony defaul
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// French\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Annuler\",\n \"Submit\": \"Envoyer\",\n \"Back\": \"Retour\",\n \"Edit\": \"Éditer\",\n \"Update\": \"Mettre à jour\",\n \"Create\": \"Créer\",\n \"Next\": \"Suivant\",\n \"Close\": \"Fermer\",\n \"Select\": \"Sélectionner\",\n \"Save\": \"Enregistrer\",\n \"Add\": \"Ajouter\",\n \"Go\": \"Go\",\n \"Import\": \"Importer\",\n \"Low\": \"Bas\",\n \"Medium\": \"Moyen\",\n \"High\": \"Haut\",\n \"Language\": \"Langue\",\n \"This field is required\": \"Ce champ est requis\",\n \"This field must be a valid email\": \"Ce champ doit être une adresse e-mail valide\",\n \"This field confirmation does not match\": \"La confirmation de ce champ ne correspond pas\",\n \"This field must have 2 options\": \"Ce champ doit avoir 2 options\",\n \"This field must have more than 5 characters\": \"Ce champ doit comporter plus de 5 caractères\",\n // Init Page\n \"Welcome to CasaOS\": \"Bienvenue à CasaOS\",\n \"Let's create your initial account\": \"Créons votre compte initial\",\n \"Go →\": \"Allez →\",\n \"Create Account\": \"Créer un compte\",\n \"Username\": \"Nom d'utilisateur\",\n \"Confirm Password\": \"Confirmer le mot de passe\",\n \"Username or Password error!\": \"Erreur de nom d'utilisateur ou de mot de passe !\",\n \"All things done!\": \"Tout est en ordre !\",\n // Login\n \"Login\": \"Connexion\",\n \"Password error!\": \"Mot de passe incorrect !\",\n // Account\n \"Account\": \"Compte\",\n \"Logout\": \"Déconnexion\",\n \"Name\": \"Nom\",\n \"Password\": \"Mot de passe\",\n \"Change name\": \"Changement de nom\",\n \"Change Password\": \"Changer le mot de passe\",\n \"Original password\": \"Mot de passe d'origine\",\n \"New password\": \"Nouveau mot de passe\",\n \"Confirm the new password again\": \"Confirmez à nouveau le nouveau mot de passe\",\n // Dashboard Settings\n \"Settings\": \"Paramètres\",\n \"Dashboard Setting\": \"Réglage du tableau de bord\",\n \"Search Engine\": \"Moteur de recherche\",\n \"WebUI Port\": \"Port de l'interface Web\",\n \"Currently the latest version\": \"La dernière version en date\",\n \"A new version is available!\": \"Une nouvelle version est disponible !\",\n \"Edit Web UI port\": \"Editer le port WebUI\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & journaux\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Journaux\",\n // Widgets\n \"Widgets Settings\": \"Paramètres des widgets\",\n \"Time\": \"Heure\",\n \"System Status\": \"État du système\",\n \"Disk Status\": \"État du disque\",\n \"Network Status\": \"État du réseau\",\n \"available of\": \"{avl} disponible sur {total}\",\n // Search \n \"Search...\": \"Rechercher...\",\n // Sync\n \"Sync your data\": \"Synchronisez vos données\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Suivez le guide pour commencer à synchroniser vos fichiers sur plusieurs appareils.\",\n \"Go !\": \"Allez-y !\",\n \"Sync Guide\": \"Guide de la synchro\",\n \"Install\": \"Installer\",\n \"Config\": \"Config\",\n \"Complete\": \"Compléter\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Télécharger Syncthing sur l'appareil que vous voulez synchroniser avec CasaOS\",\n \"Get Syncthing for\": \"Obtenir Syncthing pour {os}\",\n \"Download APK\": \"Téléchargez l'APK\",\n \"Show all Platforms\": \"Afficher toutes les plates-formes\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Installez et ouvrez l\\'application téléchargée, puis cliquez sur le bouton \"Suivant\".',\n \"Device ID\": \"ID du périphérique\",\n \"Fill in your Device ID to continue\": \"Remplissez le code de votre appareil pour continuer\",\n \"How to get Device ID\": \"Comment obtenir le numéro d'identification du périphérique ?\",\n \"What do I need to do on my device?\": \"Que dois-je faire sur mon appareil ?\",\n \"Open the SyncTrayzor\": \"Ouvrez le SyncTrayzor\",\n \"Find the Device ID\": \"Trouver l'ID du périphérique\",\n \"Add new device on your device\": \"Ajouter un nouvel appareil sur votre appareil\",\n \"Add new folder on your device\": \"Ajouter un nouveau dossier sur votre appareil\",\n \"Done!\": \"Terminé !\",\n \"Open Syncthing in the Launchpad\": \"Ouvrir Syncthing dans le Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Trouvez l'icône Syncthing dans la barre de menu.\",\n \"Open Syncthing\": \"Ouvrir Syncthing\",\n \"Open the menu\": \"Ouvrir le menu\",\n 'Choose \"Show device ID\"': 'Choisissez \"Afficher l\\'ID du périphérique\".',\n \"Copy the Device ID\": \"Copier l'ID du périphérique\",\n \"There you go!\": \"Et voilà !\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Vos données ont commencé à se synchroniser.
La synchronisation peut prendre quelques minutes.\",\n \"Up to Date\": \"A jour\",\n \"Synchronizing\": \"Synchronisation\",\n \"Synchronized\": \"Synchronisé\",\n \"Total\": \"Total\",\n \"Add New Device\": \"Ajouter un nouveau périphérique\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Vous avez une idée ? Soumettez-la sur Discord !\",\n \"Smarten up your home\": \"Améliorez votre maison\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Nous voulons vous offrir une expérience de maison intelligente avec confidentialité, haut débit et stockage localisé.\",\n \"In development\": \"En cours de développement\",\n // Apps\n \"Apps\": \"Applications\",\n \"App\": \"Application\",\n \"Open\": \"Ouvrir\",\n \"Setting\": \"Réglage de\",\n \"Uninstall\": \"Désinstaller\",\n \"Attention\": \"Attention\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Les données ne peuvent pas être récupérées après la suppression !
Continuer pour désinstaller cette application ?\",\n \"Featured Apps\": \"Apps à la une\",\n \"Custom Install\": \"Installation personnalisée\",\n \"Continue in background\": \"Continuer en arrière-plan\",\n \"Install a new App manually\": \"Installer une nouvelle application manuellement\",\n \"Docker Image\": \"Image Docker\",\n \"App name\": \"Nom de l'application\",\n \"Icon URL\": \"URL de l'icône\",\n \"Network\": \"Réseau\",\n \"Ports\": \"Ports\",\n \"Volumes\": \"Volumes\",\n \"Environment Variables\": \"Variables d'environnement\",\n \"Devices\": \"Périphériques\",\n \"Memory Limit\": \"Limite de mémoire\",\n \"CPU Shares\": \"Parts du CPU\",\n \"Restart Policy\": \"Politique de redémarrage\",\n \"App Description\": \"Description de l'appli\",\n \"No ports now, click “+” to add one.\": \"Aucun port pour le moment, cliquez sur “+” pour en ajouter un.\",\n \"No volumes now, click “+” to add one.\": \"Aucun volume pour le moment, cliquez sur “+” pour en ajouter un.\",\n \"No environment variables now, click “+” to add one.\": \"Pas de variables d'environnement maintenant, cliquez sur “+” pour en ajouter une.\",\n \"No devices now, click “+” to add one.\": \"Aucun appareil pour le moment, cliquez sur “+” pour en ajouter un.\",\n \"e.g.,hello-world:latest\": \"e.g.,hello-world:latest\",\n \"Your custom App Name\": \"Votre nom d'application personnalisé\",\n \"Your custom icon URL\": \"URL de l'icône personnalisée\",\n \"Installing\": \"Installation de\",\n \"Export AppFile\": \"Exportation du fichier d'application\",\n \"AppFile\": \"Fichier d'application\",\n \"Drop your app file here or click to upload\": \"Déposez votre fichier d'application ici ou cliquez pour le télécharger\",\n \"Host\": \"Hôte\",\n \"Container\": \"Conteneur\",\n \"Key\": \"Clé\",\n \"Value\": \"Valeur\",\n \"Protocol\": \"Protocole\",\n \"This is not a valid json file.\": \"Ce n'est pas un fichier json valide.\",\n \"Your browser does not support file reading.\": \"Votre navigateur ne prend pas en charge la lecture des fichiers.\",\n \"has been selected\": \"a été sélectionné\",\n \"Please fill correct command line\": \"Veuillez saisir la ligne de commande appropriée.\",\n \"Please import a valid App file\": \"Veuillez importer un fichier App valide\",\n \"AutoFill only helps you to complete most of the configuration.\": \"La fonction AutoFill ne vous aide qu'à réaliser la majeure partie de la configuration.\",\n \"Some configuration information such as:\": \"Certaines informations de configuration telles que :\",\n \"the port and path of the Web UI\": \"le port et le chemin d'accès de l'interface utilisateur Web\",\n \"the mount location of the volume or file\": \"l'emplacement de montage du volume ou du fichier\",\n \"the port mapping of the Host\": \"le mappage du port de l'hôte\",\n \"optional configuration items\": \"éléments de configuration facultatifs\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Ces cas incluent, mais ne sont pas limités à ces cas et doivent encore être confirmés ou modifiés par vous.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"N'hésitez pas à suggérer des améliorations à cette fonctionnalité sur le serveur Discord !\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"L'utilisation de localhost ou 127.0.0.1 rendra l'application inaccessible, veuillez utiliser l'ip réelle pour accéder.\",\n \"CATEGORY\": \"CATÉGORIE\",\n \"DEVELOPER\": \"DÉVELOPPEUR\",\n \"REQUIRE\": \"EXIGER\",\n \"MEMORY\": \"MÉMOIRE\",\n \"DISK\": \"DISQUE\",\n \"App Store\": \"Magasin d'applications\",\n \"Community Apps\": \"Applications communautaires\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"De la part des contributeurs de la communauté, pas optimisé pour CasaOS, mais fournit une expérience d'application de base.\",\n \"Sort by\": \"Trier par\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/fr_fr.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// French\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Annuler\",\n \"Submit\": \"Envoyer\",\n \"Back\": \"Retour\",\n \"Edit\": \"Éditer\",\n \"Update\": \"Mettre à jour\",\n \"Create\": \"Créer\",\n \"Next\": \"Suivant\",\n \"Close\": \"Fermer\",\n \"Select\": \"Sélectionner\",\n \"Save\": \"Enregistrer\",\n \"Add\": \"Ajouter\",\n \"Go\": \"Go\",\n \"Import\": \"Importer\",\n \"Low\": \"Bas\",\n \"Medium\": \"Moyen\",\n \"High\": \"Haut\",\n \"Language\": \"Langue\",\n \"This field is required\": \"Ce champ est requis\",\n \"This field must be a valid email\": \"Ce champ doit être une adresse e-mail valide\",\n \"This field confirmation does not match\": \"La confirmation de ce champ ne correspond pas\",\n \"This field must have 2 options\": \"Ce champ doit avoir 2 options\",\n \"This field must have more than 5 characters\": \"Ce champ doit comporter plus de 5 caractères\",\n // Init Page\n \"Welcome to CasaOS\": \"Bienvenue à CasaOS\",\n \"Let's create your initial account\": \"Créons votre compte initial\",\n \"Go →\": \"Allez →\",\n \"Create Account\": \"Créer un compte\",\n \"Username\": \"Nom d'utilisateur\",\n \"Confirm Password\": \"Confirmer le mot de passe\",\n \"Username or Password error!\": \"Erreur de nom d'utilisateur ou de mot de passe !\",\n \"All things done!\": \"Tout est en ordre !\",\n // Login\n \"Login\": \"Connexion\",\n \"Password error!\": \"Mot de passe incorrect !\",\n // Account\n \"Account\": \"Compte\",\n \"Logout\": \"Déconnexion\",\n \"Name\": \"Nom\",\n \"Password\": \"Mot de passe\",\n \"Change name\": \"Changement de nom\",\n \"Change Password\": \"Changer le mot de passe\",\n \"Original password\": \"Mot de passe d'origine\",\n \"New password\": \"Nouveau mot de passe\",\n \"Confirm the new password again\": \"Confirmez à nouveau le nouveau mot de passe\",\n // Dashboard Settings\n \"Settings\": \"Paramètres\",\n \"Dashboard Setting\": \"Réglage du tableau de bord\",\n \"Search Engine\": \"Moteur de recherche\",\n \"WebUI Port\": \"Port de l'interface Web\",\n \"Currently the latest version\": \"La dernière version en date\",\n \"A new version is available!\": \"Une nouvelle version est disponible !\",\n \"Edit Web UI port\": \"Editer le port WebUI\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminal & journaux\",\n \"Terminal\": \"Terminal\",\n \"Logs\": \"Journaux\",\n // Widgets\n \"Widgets Settings\": \"Paramètres des widgets\",\n \"Time\": \"Heure\",\n \"System Status\": \"État du système\",\n \"Disk Status\": \"État du disque\",\n \"Network Status\": \"État du réseau\",\n \"available of\": \"{avl} disponible sur {total}\",\n // Search \n \"Search...\": \"Rechercher...\",\n // Sync\n \"Sync your data\": \"Synchronisez vos données\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Suivez le guide pour commencer à synchroniser vos fichiers sur plusieurs appareils.\",\n \"Go !\": \"Allez-y !\",\n \"Sync Guide\": \"Guide de la synchro\",\n \"Install\": \"Installer\",\n \"Config\": \"Config\",\n \"Complete\": \"Compléter\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Télécharger Syncthing sur l'appareil que vous voulez synchroniser avec CasaOS\",\n \"Get Syncthing for\": \"Obtenir Syncthing pour {os}\",\n \"Download APK\": \"Téléchargez l'APK\",\n \"Show all Platforms\": \"Afficher toutes les plates-formes\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Installez et ouvrez l\\'application téléchargée, puis cliquez sur le bouton \"Suivant\".',\n \"Device ID\": \"ID du périphérique\",\n \"Fill in your Device ID to continue\": \"Remplissez le code de votre appareil pour continuer\",\n \"How to get Device ID\": \"Comment obtenir le numéro d'identification du périphérique ?\",\n \"What do I need to do on my device?\": \"Que dois-je faire sur mon appareil ?\",\n \"Open the SyncTrayzor\": \"Ouvrez le SyncTrayzor\",\n \"Find the Device ID\": \"Trouver l'ID du périphérique\",\n \"Add new device on your device\": \"Ajouter un nouvel appareil sur votre appareil\",\n \"Add new folder on your device\": \"Ajouter un nouveau dossier sur votre appareil\",\n \"Done!\": \"Terminé !\",\n \"Open Syncthing in the Launchpad\": \"Ouvrir Syncthing dans le Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Trouvez l'icône Syncthing dans la barre de menu.\",\n \"Open Syncthing\": \"Ouvrir Syncthing\",\n \"Open the menu\": \"Ouvrir le menu\",\n 'Choose \"Show device ID\"': 'Choisissez \"Afficher l\\'ID du périphérique\".',\n \"Copy the Device ID\": \"Copier l'ID du périphérique\",\n \"There you go!\": \"Et voilà !\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Vos données ont commencé à se synchroniser.
La synchronisation peut prendre quelques minutes.\",\n \"Up to Date\": \"A jour\",\n \"Synchronizing\": \"Synchronisation\",\n \"Synchronized\": \"Synchronisé\",\n \"Total\": \"Total\",\n \"Add New Device\": \"Ajouter un nouveau périphérique\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Vous avez une idée ? Soumettez-la sur Discord !\",\n \"Smarten up your home\": \"Améliorez votre maison\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Nous voulons vous offrir une expérience de maison intelligente avec confidentialité, haut débit et stockage localisé.\",\n \"In development\": \"En cours de développement\",\n // Apps\n \"Apps\": \"Applications\",\n \"App\": \"Application\",\n \"Open\": \"Ouvrir\",\n \"Setting\": \"Réglage de\",\n \"Uninstall\": \"Désinstaller\",\n \"Attention\": \"Attention\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Les données ne peuvent pas être récupérées après la suppression !
Continuer pour désinstaller cette application ?\",\n \"Featured Apps\": \"Apps à la une\",\n \"Custom Install\": \"Installation personnalisée\",\n \"Continue in background\": \"Continuer en arrière-plan\",\n \"Install a new App manually\": \"Installer une nouvelle application manuellement\",\n \"Docker Image\": \"Image Docker\",\n \"App name\": \"Nom de l'application\",\n \"Icon URL\": \"URL de l'icône\",\n \"Network\": \"Réseau\",\n \"Ports\": \"Ports\",\n \"Volumes\": \"Volumes\",\n \"Environment Variables\": \"Variables d'environnement\",\n \"Devices\": \"Périphériques\",\n \"Memory Limit\": \"Limite de mémoire\",\n \"CPU Shares\": \"Parts du CPU\",\n \"Restart Policy\": \"Politique de redémarrage\",\n \"App Description\": \"Description de l'appli\",\n \"No ports now, click “+” to add one.\": \"Aucun port pour le moment, cliquez sur “+” pour en ajouter un.\",\n \"No volumes now, click “+” to add one.\": \"Aucun volume pour le moment, cliquez sur “+” pour en ajouter un.\",\n \"No environment variables now, click “+” to add one.\": \"Pas de variables d'environnement maintenant, cliquez sur “+” pour en ajouter une.\",\n \"No devices now, click “+” to add one.\": \"Aucun appareil pour le moment, cliquez sur “+” pour en ajouter un.\",\n \"e.g.,hello-world:latest\": \"e.g.,hello-world:latest\",\n \"Your custom App Name\": \"Votre nom d'application personnalisé\",\n \"Your custom icon URL\": \"URL de l'icône personnalisée\",\n \"Installing\": \"Installation de\",\n \"Export AppFile\": \"Exportation du fichier d'application\",\n \"AppFile\": \"Fichier d'application\",\n \"Drop your app file here or click to upload\": \"Déposez votre fichier d'application ici ou cliquez pour le télécharger\",\n \"Host\": \"Hôte\",\n \"Container\": \"Conteneur\",\n \"Key\": \"Clé\",\n \"Value\": \"Valeur\",\n \"Protocol\": \"Protocole\",\n \"This is not a valid json file.\": \"Ce n'est pas un fichier json valide.\",\n \"Your browser does not support file reading.\": \"Votre navigateur ne prend pas en charge la lecture des fichiers.\",\n \"has been selected\": \"a été sélectionné\",\n \"Please fill correct command line\": \"Veuillez saisir la ligne de commande appropriée.\",\n \"Please import a valid App file\": \"Veuillez importer un fichier App valide\",\n \"AutoFill only helps you to complete most of the configuration.\": \"La fonction AutoFill ne vous aide qu'à réaliser la majeure partie de la configuration.\",\n \"Some configuration information such as:\": \"Certaines informations de configuration telles que :\",\n \"the port and path of the Web UI\": \"le port et le chemin d'accès de l'interface utilisateur Web\",\n \"the mount location of the volume or file\": \"l'emplacement de montage du volume ou du fichier\",\n \"the port mapping of the Host\": \"le mappage du port de l'hôte\",\n \"optional configuration items\": \"éléments de configuration facultatifs\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Ces cas incluent, mais ne sont pas limités à ces cas et doivent encore être confirmés ou modifiés par vous.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"N'hésitez pas à suggérer des améliorations à cette fonctionnalité sur le serveur Discord !\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"L'utilisation de localhost ou 127.0.0.1 rendra l'application inaccessible, veuillez utiliser l'ip réelle pour accéder.\",\n \"CATEGORY\": \"CATÉGORIE\",\n \"DEVELOPER\": \"DÉVELOPPEUR\",\n \"REQUIRE\": \"EXIGER\",\n \"MEMORY\": \"MÉMOIRE\",\n \"DISK\": \"DISQUE\",\n \"App Store\": \"Magasin d'applications\",\n \"Community Apps\": \"Applications communautaires\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"De la part des contributeurs de la communauté, pas optimisé pour CasaOS, mais fournit une expérience d'application de base.\",\n \"Sort by\": \"Trier par\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\",\n // Feedback\n \"Join Discord\": \"Join Discord\",\n \"Visit our Github\": \"Visit our Github\",\n \"Bug report\": \"Bug report\",\n \"Title\": \"Title\",\n \"Describe the bug\": \"Describe the bug\",\n \"A clear and concise description of what the bug is.\": \"A clear and concise description of what the bug is.\",\n \"System infomation\": \"System infomation\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/fr_fr.js?");
/***/ }),
@@ -443,7 +467,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// French\n/* harmony default
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _zh_cn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zh_cn */ \"./src/assets/lang/zh_cn.js\");\n/* harmony import */ var _en_us__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en_us */ \"./src/assets/lang/en_us.js\");\n/* harmony import */ var _ru_ru__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ru_ru */ \"./src/assets/lang/ru_ru.js\");\n/* harmony import */ var _fr_fr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fr_fr */ \"./src/assets/lang/fr_fr.js\");\n/* harmony import */ var _es_es__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./es_es */ \"./src/assets/lang/es_es.js\");\n/* harmony import */ var _de_de__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./de_de */ \"./src/assets/lang/de_de.js\");\n/* harmony import */ var _it_it__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./it_it */ \"./src/assets/lang/it_it.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n zh: _zh_cn__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n en: _en_us__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n ru: _ru_ru__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n fr: _fr_fr__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n es: _es_es__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n de: _de_de__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n it: _it_it__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n});\n\n//# sourceURL=webpack:///./src/assets/lang/index.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _zh_cn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zh_cn */ \"./src/assets/lang/zh_cn.js\");\n/* harmony import */ var _en_us__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en_us */ \"./src/assets/lang/en_us.js\");\n/* harmony import */ var _ru_ru__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ru_ru */ \"./src/assets/lang/ru_ru.js\");\n/* harmony import */ var _fr_fr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fr_fr */ \"./src/assets/lang/fr_fr.js\");\n/* harmony import */ var _es_es__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./es_es */ \"./src/assets/lang/es_es.js\");\n/* harmony import */ var _de_de__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./de_de */ \"./src/assets/lang/de_de.js\");\n/* harmony import */ var _it_it__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./it_it */ \"./src/assets/lang/it_it.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n zh_cn: _zh_cn__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n en_us: _en_us__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n ru_ru: _ru_ru__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n fr_fr: _fr_fr__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n es_es: _es_es__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n de_de: _de_de__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n it_it: _it_it__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n});\n\n//# sourceURL=webpack:///./src/assets/lang/index.js?");
/***/ }),
@@ -455,7 +479,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _zh_
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// Italiano\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Cancella\",\n \"Submit\": \"Invia\",\n \"Back\": \"Indietro\",\n \"Edit\": \"Modifica\",\n \"Update\": \"Update\",\n \"Create\": \"Create\",\n \"Next\": \"Prossimo\",\n \"Close\": \"Chiudi\",\n \"Select\": \"Seleziona\",\n \"Save\": \"Salva\",\n \"Add\": \"Aggiungi\",\n \"Go\": \"Vai\",\n \"Import\": \"Importa\",\n \"Low\": \"Basso\",\n \"Medium\": \"Medio\",\n \"High\": \"Alto\",\n \"Language\": \"Language\",\n \"This field is required\": \"Questo campo è obbligatorio\",\n \"This field must be a valid email\": \"Questo campo deve avere un e-mail valida\",\n \"This field confirmation does not match\": \"La conferma di questo campo non corrisponde\",\n \"This field must have 2 options\": \"Questo campo deve avere 2 opzioni\",\n \"This field must have more than 5 characters\": \"Questo campo deve contenere più di 5 caratteri\",\n // Init Page\n \"Welcome to CasaOS\": \"Benvenuto in CasaOS\",\n \"Let's create your initial account\": \"Creiamo il tuo primo account\",\n \"Go →\": \"Vai →\",\n \"Create Account\": \"Crea Account\",\n \"Username\": \"Nome Utente\",\n \"Confirm Password\": \"Conferma Password\",\n \"Username or Password error!\": \"Nome utente o password errati!\",\n \"All things done!\": \"Tutto fatto!\",\n // Login\n \"Login\": \"Login\",\n \"Password error!\": \"Password errata!\",\n // Account\n \"Account\": \"Account\",\n \"Logout\": \"Logout\",\n \"Name\": \"Nome\",\n \"Password\": \"Password\",\n \"Change name\": \"Cambia Nome\",\n \"Change Password\": \"Cambia Password\",\n \"Original password\": \"Password originale\",\n \"New password\": \"Nuova password\",\n \"Confirm the new password again\": \"Conferma di nuovo la nuova password\",\n // Dashboard Settings\n \"Settings\": \"Impostazioni\",\n \"Dashboard Setting\": \"Impostazione della Dashboard\",\n \"Search Engine\": \"Motore di ricerca\",\n \"WebUI port\": \"Porta WebUI\",\n \"Currently the latest version\": \"Attualmente l'ultima versione\",\n \"A new version is available!\": \"È disponibile una nuova versione!\",\n \"Edit Web UI port\": \"Modifica porta WebUI\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminale & Log\",\n \"Terminal\": \"Terminale\",\n \"Logs\": \"Log\",\n // Widgets\n \"Widgets Settings\": \"Impostazioni widget\",\n \"Time\": \"Time\",\n \"System Status\": \"Stato del sistema\",\n \"Disk Status\": \"Stato del disco\",\n \"Network Status\": \"Stato della rete\",\n \"available of\": \"{avl} disponibile di {total}\",\n // Search \n \"Search...\": \"Cerca...\",\n // Sync\n \"Sync your data\": \"Sincronizza i tuoi dati\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Segui la guida per iniziare a sincronizzare i tuoi file su più dispositivi.\",\n \"Go !\": \"Andiamo !\",\n \"Sync Guide\": \"Guida alla sincronizzazione\",\n \"Install\": \"Installa\",\n \"Config\": \"Configura\",\n \"Complete\": \"Completa\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Scarica Syncthing sul dispositivo che desideri sincronizzare con CasaOS\",\n \"Get Syncthing for\": \"Ottieni Syncthing per {os}\",\n \"Download APK\": \"Download APK\",\n \"Show all Platforms\": \"Mostra tutte le piattaforme\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Installa e apri l\\'applicazione scaricata, quindi fai clic sul pulsante \"Avanti\".',\n \"Device ID\": \"ID del dispositivo\",\n \"Fill in your Device ID to continue\": \"Inserisci il tuo ID dispositivo per continuare\",\n \"How to get Device ID\": \"Come ottenere l'ID del dispositivo\",\n \"What do I need to do on my device?\": \"Cosa devo fare sul mio dispositivo?\",\n \"Open the SyncTrayzor\": \"Apri il SyncTrayzor\",\n \"Find the Device ID\": \"Trova l'ID del dispositivo\",\n \"Add new device on your device\": \"Aggiungi un nuovo dispositivo sul tuo dispositivo\",\n \"Add new folder on your device\": \"Aggiungi una nuova cartella sul tuo dispositivo\",\n \"Done!\": \"Fatto!\",\n \"Open Syncthing in the Launchpad\": \"Apri Syncthing nel Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Trova l'icona Syncthing nella barra dei menu\",\n \"Open Syncthing\": \"Opri Syncthing\",\n \"Open the menu\": \"Apri il menu\",\n 'Choose \"Show device ID\"': 'Scegli \"Mostra ID dispositivo\"',\n \"Copy the Device ID\": \"Copia l'ID del dispositivo\",\n \"There you go!\": \"Ecco fatto!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"La sincronizzazione dei tuoi dati è iniziata.
Potrebbero essere necessari alcuni minuti per completare la sincronizzazione.\",\n \"Up to Date\": \"Aggiornato\",\n \"Synchronizing\": \"Sincronizzazione\",\n \"Synchronized\": \"Sincronizzato\",\n \"Total\": \"Totale\",\n \"Add New Device\": \"Aggiungi nuovo dispositivo\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Hai un'idea? Girala su Discord!\",\n \"Smarten up your home\": \"Rendi più Smart la tua casa\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Vogliamo offrirti un'esperienza di casa intelligente con privacy, alta velocità e spazio di archiviazione localizzato.\",\n \"In development\": \"In sviluppo\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"Opri\",\n \"Setting\": \"Impostazione\",\n \"Uninstall\": \"Disinstalla\",\n \"Attention\": \"Attenzione\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"I dati non possono essere recuperati dopo la cancellazione!
Continuare a disinstallare questa applicazione?\",\n \"Featured Apps\": \"App in evidenza\",\n \"Custom Install\": \"Installazione personalizzata\",\n \"Continue in background\": \"Continua in background\",\n \"Install a new App manually\": \"Installa una nuova app manualmente\",\n \"Docker Image\": \"Immagine Docker\",\n \"App name\": \"Nome App\",\n \"Icon URL\": \"Icona URL\",\n \"Network\": \"Rete\",\n \"Ports\": \"Porte\",\n \"Volumes\": \"Volume\",\n \"Environment Variables\": \"Variabili d'ambiente\",\n \"Devices\": \"Dispositivi\",\n \"Memory Limit\": \"Limite di memoria\",\n \"CPU Shares\": \"CPU condivise\",\n \"Restart Policy\": \"Riavvia Policy\",\n \"App Description\": \"Descriptione App\",\n \"No ports now, click “+” to add one.\": \"Nessuna porta ora, fai clic su “+” per aggiungerne una.\",\n \"No volumes now, click “+” to add one.\": \"Nessun volume ora, fai clic su “+” per aggiungerne uno.\",\n \"No environment variables now, click “+” to add one.\": \"Nessuna variabile d'ambiente ora, fai clic su “+” per aggiungerne una.\",\n \"No devices now, click “+” to add one.\": \"Nessun dispositivo ora, fai clic su “+” per aggiungerne uno.\",\n \"e.g.,hello-world:latest\": \"ad es.,hello-world:più recente\",\n \"Your custom App Name\": \"Il nome della tua app personalizzata\",\n \"Your custom icon URL\": \"La tua icona personalizzata URL\",\n \"Installing\": \"Installazione\",\n \"Export AppFile\": \"Esporta FileApp\",\n \"AppFile\": \"FileApp\",\n \"Drop your app file here or click to upload\": \"Trascina qui il file dell'app o fai clic per caricarlo\",\n \"Host\": \"Host\",\n \"Container\": \"Container\",\n \"Key\": \"Chiave\",\n \"Value\": \"Valore\",\n \"Protocol\": \"Protocollo\",\n \"This is not a valid json file.\": \"Questo non è un file json valido.\",\n \"Your browser does not support file reading.\": \"Il tuo browser non supporta la lettura dei file.\",\n \"has been selected\": \"è stato selezionato\",\n \"Please fill correct command line\": \"Si prega di compilare la riga di comando corretta\",\n \"Please import a valid App file\": \"Si prega di importare un file App valido\",\n \"AutoFill only helps you to complete most of the configuration.\": \"La compilazione automatica ti aiuta solo a completare la maggior parte della configurazione.\",\n \"Some configuration information such as:\": \"Alcune informazioni di configurazione come:\",\n \"the port and path of the Web UI\": \"la porta e il percorso dell'interfaccia utente Web\",\n \"the mount location of the volume or file\": \"la posizione di montaggio del volume o del file\",\n \"the port mapping of the Host\": \"la mappatura delle porte dell'host\",\n \"optional configuration items\": \"elementi di configurazione opzionali\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Questi includono ma non sono limitati a questi casi e devono ancora essere confermati o modificati da te.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Sentiti libero di suggerire miglioramenti a questa funzione in Discord Server!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"L'utilizzo di localhost o 127.0.0.1 renderà l'applicazione inaccessibile, utilizzare l'ip reale per accedere.\",\n \"CATEGORY\": \"CATEGORIA\",\n \"DEVELOPER\": \"SVILUPPATORE\",\n \"REQUIRE\": \"RICHIEDERE\",\n \"MEMORY\": \"MEMORIA\",\n \"DISK\": \"DISCO\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"App della Comunità\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"Da contributori della community, non ottimizzato per CasaOS, ma fornisce un'esperienza di base dell'app.\",\n \"Sort by\": \"Ordina per\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/it_it.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// Italiano\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"OK\",\n \"Cancel\": \"Cancella\",\n \"Submit\": \"Invia\",\n \"Back\": \"Indietro\",\n \"Edit\": \"Modifica\",\n \"Update\": \"Update\",\n \"Create\": \"Create\",\n \"Next\": \"Prossimo\",\n \"Close\": \"Chiudi\",\n \"Select\": \"Seleziona\",\n \"Save\": \"Salva\",\n \"Add\": \"Aggiungi\",\n \"Go\": \"Vai\",\n \"Import\": \"Importa\",\n \"Low\": \"Basso\",\n \"Medium\": \"Medio\",\n \"High\": \"Alto\",\n \"Language\": \"Language\",\n \"This field is required\": \"Questo campo è obbligatorio\",\n \"This field must be a valid email\": \"Questo campo deve avere un e-mail valida\",\n \"This field confirmation does not match\": \"La conferma di questo campo non corrisponde\",\n \"This field must have 2 options\": \"Questo campo deve avere 2 opzioni\",\n \"This field must have more than 5 characters\": \"Questo campo deve contenere più di 5 caratteri\",\n // Init Page\n \"Welcome to CasaOS\": \"Benvenuto in CasaOS\",\n \"Let's create your initial account\": \"Creiamo il tuo primo account\",\n \"Go →\": \"Vai →\",\n \"Create Account\": \"Crea Account\",\n \"Username\": \"Nome Utente\",\n \"Confirm Password\": \"Conferma Password\",\n \"Username or Password error!\": \"Nome utente o password errati!\",\n \"All things done!\": \"Tutto fatto!\",\n // Login\n \"Login\": \"Login\",\n \"Password error!\": \"Password errata!\",\n // Account\n \"Account\": \"Account\",\n \"Logout\": \"Logout\",\n \"Name\": \"Nome\",\n \"Password\": \"Password\",\n \"Change name\": \"Cambia Nome\",\n \"Change Password\": \"Cambia Password\",\n \"Original password\": \"Password originale\",\n \"New password\": \"Nuova password\",\n \"Confirm the new password again\": \"Conferma di nuovo la nuova password\",\n // Dashboard Settings\n \"Settings\": \"Impostazioni\",\n \"Dashboard Setting\": \"Impostazione della Dashboard\",\n \"Search Engine\": \"Motore di ricerca\",\n \"WebUI port\": \"Porta WebUI\",\n \"Currently the latest version\": \"Attualmente l'ultima versione\",\n \"A new version is available!\": \"È disponibile una nuova versione!\",\n \"Edit Web UI port\": \"Modifica porta WebUI\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Terminale & Log\",\n \"Terminal\": \"Terminale\",\n \"Logs\": \"Log\",\n // Widgets\n \"Widgets Settings\": \"Impostazioni widget\",\n \"Time\": \"Time\",\n \"System Status\": \"Stato del sistema\",\n \"Disk Status\": \"Stato del disco\",\n \"Network Status\": \"Stato della rete\",\n \"available of\": \"{avl} disponibile di {total}\",\n // Search \n \"Search...\": \"Cerca...\",\n // Sync\n \"Sync your data\": \"Sincronizza i tuoi dati\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Segui la guida per iniziare a sincronizzare i tuoi file su più dispositivi.\",\n \"Go !\": \"Andiamo !\",\n \"Sync Guide\": \"Guida alla sincronizzazione\",\n \"Install\": \"Installa\",\n \"Config\": \"Configura\",\n \"Complete\": \"Completa\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Scarica Syncthing sul dispositivo che desideri sincronizzare con CasaOS\",\n \"Get Syncthing for\": \"Ottieni Syncthing per {os}\",\n \"Download APK\": \"Download APK\",\n \"Show all Platforms\": \"Mostra tutte le piattaforme\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Installa e apri l\\'applicazione scaricata, quindi fai clic sul pulsante \"Avanti\".',\n \"Device ID\": \"ID del dispositivo\",\n \"Fill in your Device ID to continue\": \"Inserisci il tuo ID dispositivo per continuare\",\n \"How to get Device ID\": \"Come ottenere l'ID del dispositivo\",\n \"What do I need to do on my device?\": \"Cosa devo fare sul mio dispositivo?\",\n \"Open the SyncTrayzor\": \"Apri il SyncTrayzor\",\n \"Find the Device ID\": \"Trova l'ID del dispositivo\",\n \"Add new device on your device\": \"Aggiungi un nuovo dispositivo sul tuo dispositivo\",\n \"Add new folder on your device\": \"Aggiungi una nuova cartella sul tuo dispositivo\",\n \"Done!\": \"Fatto!\",\n \"Open Syncthing in the Launchpad\": \"Apri Syncthing nel Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Trova l'icona Syncthing nella barra dei menu\",\n \"Open Syncthing\": \"Opri Syncthing\",\n \"Open the menu\": \"Apri il menu\",\n 'Choose \"Show device ID\"': 'Scegli \"Mostra ID dispositivo\"',\n \"Copy the Device ID\": \"Copia l'ID del dispositivo\",\n \"There you go!\": \"Ecco fatto!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"La sincronizzazione dei tuoi dati è iniziata.
Potrebbero essere necessari alcuni minuti per completare la sincronizzazione.\",\n \"Up to Date\": \"Aggiornato\",\n \"Synchronizing\": \"Sincronizzazione\",\n \"Synchronized\": \"Sincronizzato\",\n \"Total\": \"Totale\",\n \"Add New Device\": \"Aggiungi nuovo dispositivo\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Hai un'idea? Girala su Discord!\",\n \"Smarten up your home\": \"Rendi più Smart la tua casa\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Vogliamo offrirti un'esperienza di casa intelligente con privacy, alta velocità e spazio di archiviazione localizzato.\",\n \"In development\": \"In sviluppo\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"Opri\",\n \"Setting\": \"Impostazione\",\n \"Uninstall\": \"Disinstalla\",\n \"Attention\": \"Attenzione\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"I dati non possono essere recuperati dopo la cancellazione!
Continuare a disinstallare questa applicazione?\",\n \"Featured Apps\": \"App in evidenza\",\n \"Custom Install\": \"Installazione personalizzata\",\n \"Continue in background\": \"Continua in background\",\n \"Install a new App manually\": \"Installa una nuova app manualmente\",\n \"Docker Image\": \"Immagine Docker\",\n \"App name\": \"Nome App\",\n \"Icon URL\": \"Icona URL\",\n \"Network\": \"Rete\",\n \"Ports\": \"Porte\",\n \"Volumes\": \"Volume\",\n \"Environment Variables\": \"Variabili d'ambiente\",\n \"Devices\": \"Dispositivi\",\n \"Memory Limit\": \"Limite di memoria\",\n \"CPU Shares\": \"CPU condivise\",\n \"Restart Policy\": \"Riavvia Policy\",\n \"App Description\": \"Descriptione App\",\n \"No ports now, click “+” to add one.\": \"Nessuna porta ora, fai clic su “+” per aggiungerne una.\",\n \"No volumes now, click “+” to add one.\": \"Nessun volume ora, fai clic su “+” per aggiungerne uno.\",\n \"No environment variables now, click “+” to add one.\": \"Nessuna variabile d'ambiente ora, fai clic su “+” per aggiungerne una.\",\n \"No devices now, click “+” to add one.\": \"Nessun dispositivo ora, fai clic su “+” per aggiungerne uno.\",\n \"e.g.,hello-world:latest\": \"ad es.,hello-world:più recente\",\n \"Your custom App Name\": \"Il nome della tua app personalizzata\",\n \"Your custom icon URL\": \"La tua icona personalizzata URL\",\n \"Installing\": \"Installazione\",\n \"Export AppFile\": \"Esporta FileApp\",\n \"AppFile\": \"FileApp\",\n \"Drop your app file here or click to upload\": \"Trascina qui il file dell'app o fai clic per caricarlo\",\n \"Host\": \"Host\",\n \"Container\": \"Container\",\n \"Key\": \"Chiave\",\n \"Value\": \"Valore\",\n \"Protocol\": \"Protocollo\",\n \"This is not a valid json file.\": \"Questo non è un file json valido.\",\n \"Your browser does not support file reading.\": \"Il tuo browser non supporta la lettura dei file.\",\n \"has been selected\": \"è stato selezionato\",\n \"Please fill correct command line\": \"Si prega di compilare la riga di comando corretta\",\n \"Please import a valid App file\": \"Si prega di importare un file App valido\",\n \"AutoFill only helps you to complete most of the configuration.\": \"La compilazione automatica ti aiuta solo a completare la maggior parte della configurazione.\",\n \"Some configuration information such as:\": \"Alcune informazioni di configurazione come:\",\n \"the port and path of the Web UI\": \"la porta e il percorso dell'interfaccia utente Web\",\n \"the mount location of the volume or file\": \"la posizione di montaggio del volume o del file\",\n \"the port mapping of the Host\": \"la mappatura delle porte dell'host\",\n \"optional configuration items\": \"elementi di configurazione opzionali\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"Questi includono ma non sono limitati a questi casi e devono ancora essere confermati o modificati da te.\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Sentiti libero di suggerire miglioramenti a questa funzione in Discord Server!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"L'utilizzo di localhost o 127.0.0.1 renderà l'applicazione inaccessibile, utilizzare l'ip reale per accedere.\",\n \"CATEGORY\": \"CATEGORIA\",\n \"DEVELOPER\": \"SVILUPPATORE\",\n \"REQUIRE\": \"RICHIEDERE\",\n \"MEMORY\": \"MEMORIA\",\n \"DISK\": \"DISCO\",\n \"App Store\": \"App Store\",\n \"Community Apps\": \"App della Comunità\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"Da contributori della community, non ottimizzato per CasaOS, ma fornisce un'esperienza di base dell'app.\",\n \"Sort by\": \"Ordina per\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\",\n // Feedback\n \"Join Discord\": \"Join Discord\",\n \"Visit our Github\": \"Visit our Github\",\n \"Bug report\": \"Bug report\",\n \"Title\": \"Title\",\n \"Describe the bug\": \"Describe the bug\",\n \"A clear and concise description of what the bug is.\": \"A clear and concise description of what the bug is.\",\n \"System infomation\": \"System infomation\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/it_it.js?");
/***/ }),
@@ -467,7 +491,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// Italiano\n/* harmony defau
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// Russian localize by t.me/im_ostrovskiy\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"ОК\",\n \"Cancel\": \"Отмена\",\n \"Submit\": \"Принять\",\n \"Back\": \"Назад\",\n \"Edit\": \"Редактировать\",\n \"Update\": \"Обновить\",\n \"Create\": \"Создать\",\n \"Next\": \"Дальше\",\n \"Close\": \"Закрыть\",\n \"Select\": \"Выбрать\",\n \"Save\": \"Сохранить\",\n \"Add\": \"Добавить\",\n \"Go\": \"Перейти\",\n \"Import\": \"Импорт\",\n \"Low\": \"Низкий\",\n \"Medium\": \"Средний\",\n \"High\": \"Высокий\",\n \"Language\": \"Язык\",\n \"This field is required\": \"Это поле обязательно\",\n \"This field must be a valid email\": \"В этом поле должен быть действующий адрес электронной почты.\",\n \"This field confirmation does not match\": \"Подтверждение в этом поле не совпадает\",\n \"This field must have 2 options\": \"В этом поле должно быть 2 опции\",\n \"This field must have more than 5 characters\": \"В этом поле должно быть больше чем 5 символов\",\n // Init Page\n \"Welcome to CasaOS\": \"Добро пожаловать в CasaOS\",\n \"Let's create your initial account\": \"Давайте создадим ваш аккаунт\",\n \"Go →\": \"Поехали →\",\n \"Create Account\": \"Создать аккаунт\",\n \"Username\": \"Имя пользователя\",\n \"Confirm Password\": \"Подтвердить пароль\",\n \"Username or Password error!\": \"Ошибка имени пользователя или пароля!\",\n \"All things done!\": \"Все готово!\",\n // Login\n \"Login\": \"Логин\",\n \"Password error!\": \"Неверный пароль!\",\n // Account\n \"Account\": \"Аккаунт\",\n \"Logout\": \"Выйти\",\n \"Name\": \"Имя\",\n \"Password\": \"Пароль\",\n \"Change name\": \"Изменить имя\",\n \"Change Password\": \"Изменить пароль\",\n \"Original password\": \"Текуший пароль\",\n \"New password\": \"Новый пароль\",\n \"Confirm the new password again\": \"Подтвердите новый пароль еще раз\",\n // Dashboard Settings\n \"Settings\": \"Настройки\",\n \"Dashboard Setting\": \"Настройка панели\",\n \"Search Engine\": \"Поисковой движок\",\n \"WebUI Port\": \"Порт Веб-Интерфейса\",\n \"Currently the latest version\": \"На данный момент последняя версия\",\n \"A new version is available!\": \"Доступна новая версия!\",\n \"Edit Web UI port\": \"Изменить порт Веб-Интерфейса\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Терминал и Логи\",\n \"Terminal\": \"Терминал\",\n \"Logs\": \"Логи\",\n // Widgets\n \"Widgets Settings\": \"Настройки виджетов\",\n \"Time\": \"Время\",\n \"System Status\": \"Состояние системы\",\n \"Disk Status\": \"Состояние диска\",\n \"Network Status\": \"Состояние сети\",\n \"available of\": \"{avl} доступно из {total}\",\n // Search \n \"Search...\": \"Поиск...\",\n // Sync\n \"Sync your data\": \"Синхронизируйте ваши данные\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Следуйте инструкциям, чтобы начать синхронизацию файлов на нескольких устройствах.\",\n \"Go !\": \"Поехали !\",\n \"Sync Guide\": \"Руководство по синхронизации\",\n \"Install\": \"Установить\",\n \"Config\": \"Настройка\",\n \"Complete\": \"Готово\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Загрузите Syncthing на устройство, которое хотите синхронизировать данные с CasaOS.\",\n \"Get Syncthing for\": \"Загрузить Syncthing для {os}\",\n \"Download APK\": \"Скачать APK\",\n \"Show all Platforms\": \"Показать все платформы\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Установите и откройте загруженное приложение, затем нажмите кнопку «Далее».',\n \"Device ID\": \"ID устройства\",\n \"Fill in your Device ID to continue\": \"Введите свой ID устройства, чтобы продолжить\",\n \"How to get Device ID\": \"Как получить ID устройства\",\n \"What do I need to do on my device?\": \"Что мне нужно делать на моем устройстве?\",\n \"Open the SyncTrayzor\": \"Откройте SyncTrayzor\",\n \"Find the Device ID\": \"Найдите ID устройства\",\n \"Add new device on your device\": \"Добавить новое устройство на ваше устройство\",\n \"Add new folder on your device\": \"Добавить новую папку на вашем устройстве\",\n \"Done!\": \"Готово!\",\n \"Open Syncthing in the Launchpad\": \"Откройте Syncthing в Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Найдите значок Syncthing в строке меню.\",\n \"Open Syncthing\": \"Откройте Syncthing\",\n \"Open the menu\": \"Откройте меню\",\n 'Choose \"Show device ID\"': 'Выберите «Показать ID устройства».',\n \"Copy the Device ID\": \"Скопируйте ID устройства\",\n \"There you go!\": \"Готово!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Ваши данные начали синхронизироваться.
Синхронизация может занять несколько минут.\",\n \"Up to Date\": \"Обновленно\",\n \"Synchronizing\": \"Синхронизация\",\n \"Synchronized\": \"Синхронизировано\",\n \"Total\": \"Всего\",\n \"Add New Device\": \"Добавить новое устройство\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Есть идея? Напиши её в Discord!\",\n \"Smarten up your home\": \"Сделайте свой дом умнее\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Мы хотим дать вам опыт умного дома с конфиденциальностью, высокой скоростью и локализованным хранилищем.\",\n \"In development\": \"В разработке\",\n // Apps\n \"Apps\": \"Приложения\",\n \"App\": \"Приложение\",\n \"Open\": \"Открыть\",\n \"Setting\": \"Настройка\",\n \"Uninstall\": \"Удалить\",\n \"Attention\": \"Внимание\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Данные не подлежат восстановлению после удаления!
Продолжить, чтобы удалить это приложение?\",\n \"Featured Apps\": \"Популярные приложения\",\n \"Custom Install\": \"Своё приложение\",\n \"Continue in background\": \"Продолжить в фоне\",\n \"Install a new App manually\": \"Установить новое приложение вручную\",\n \"Docker Image\": \"Docker-Образ\",\n \"App name\": \"Имя приложения\",\n \"Icon URL\": \"URL значка\",\n \"Network\": \"Сеть\",\n \"Ports\": \"Порты\",\n \"Volumes\": \"Тома\",\n \"Environment Variables\": \"Переменные среды\",\n \"Devices\": \"Устройства\",\n \"Memory Limit\": \"Ограничение памяти\",\n \"CPU Shares\": \"Доли ЦП\",\n \"Restart Policy\": \"Политика перезагрузки\",\n \"App Description\": \"Описание приложения\",\n \"No ports now, click “+” to add one.\": \"Сейчас портов нет, нажмите “+”, чтобы добавить его.\",\n \"No volumes now, click “+” to add one.\": \"Томов сейчас нет, нажмите “+”, чтобы добавить его.\",\n \"No environment variables now, click “+” to add one.\": \"Переменных среды сейчас нет, нажмите “+”, чтобы добавить их.\",\n \"No devices now, click “+” to add one.\": \"Устройств сейчас нет, нажмите “+”, чтобы добавить их.\",\n \"e.g.,hello-world:latest\": \"например,hello-world:latest\",\n \"Your custom App Name\": \"Ваше собственное имя приложения\",\n \"Your custom icon URL\": \"URL вашего собственного значка\",\n \"Installing\": \"Установка\",\n \"Export AppFile\": \"Экспорт файла приложения\",\n \"AppFile\": \"Файл приложения\",\n \"Drop your app file here or click to upload\": \"Перетащите файл приложения сюда или нажмите, чтобы загрузить\",\n \"Host\": \"Хост\",\n \"Container\": \"Контейнер\",\n \"Key\": \"Ключ\",\n \"Value\": \"Значение\",\n \"Protocol\": \"Протокол\",\n \"This is not a valid json file.\": \"Это недопустимый файл json.\",\n \"Your browser does not support file reading.\": \"Ваш браузер не поддерживает чтение файлов.\",\n \"has been selected\": \"был выбран\",\n \"Please fill correct command line\": \"Пожалуйста, заполните командную строку правильно\",\n \"Please import a valid App file\": \"Пожалуйста, импортируйте правильный файл приложения\",\n \"AutoFill only helps you to complete most of the configuration.\": \"Автозаполнение только помогает выполнить большую часть настройки.\",\n \"Some configuration information such as:\": \"Некоторая информация о конфигурации, такая как:\",\n \"the port and path of the Web UI\": \"порт и путь веб-интерфейса\",\n \"the mount location of the volume or file\": \"место монтирования тома или файла\",\n \"the port mapping of the Host\": \"отображение портов хоста\",\n \"optional configuration items\": \"дополнительные элементы конфигурации\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"К ним относятся, но не ограничиваются этими случаями, и вы все равно должны подтвердить или изменить их. \",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Не стесняйтесь предлагать улучшения этой функции в Discord!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"Использование localhost или 127.0.0.1 приведет к тому, что приложение станет недоступным, используйте для доступа реальный IP-адрес.\",\n \"CATEGORY\": \"КАТЕГОРИЯ\",\n \"DEVELOPER\": \"РАЗРАБОТЧИК\",\n \"REQUIRE\": \"ТРЕБУЕТСЯ\",\n \"MEMORY\": \"ПАМЯТИ\",\n \"DISK\": \"МЕСТА\",\n \"App Store\": \"Магазин приложений\",\n \"Community Apps\": \"Пользовательские приложения\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"От участников сообщества, не оптимизированы для CasaOS, но предоставляют базовые возможности приложения.\",\n \"Sort by\": \"Сортировать по\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/ru_ru.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// Russian localize by t.me/im_ostrovskiy\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"ОК\",\n \"Cancel\": \"Отмена\",\n \"Submit\": \"Принять\",\n \"Back\": \"Назад\",\n \"Edit\": \"Редактировать\",\n \"Update\": \"Обновить\",\n \"Create\": \"Создать\",\n \"Next\": \"Дальше\",\n \"Close\": \"Закрыть\",\n \"Select\": \"Выбрать\",\n \"Save\": \"Сохранить\",\n \"Add\": \"Добавить\",\n \"Go\": \"Перейти\",\n \"Import\": \"Импорт\",\n \"Low\": \"Низкий\",\n \"Medium\": \"Средний\",\n \"High\": \"Высокий\",\n \"Language\": \"Язык\",\n \"This field is required\": \"Это поле обязательно\",\n \"This field must be a valid email\": \"В этом поле должен быть действующий адрес электронной почты.\",\n \"This field confirmation does not match\": \"Подтверждение в этом поле не совпадает\",\n \"This field must have 2 options\": \"В этом поле должно быть 2 опции\",\n \"This field must have more than 5 characters\": \"В этом поле должно быть больше чем 5 символов\",\n // Init Page\n \"Welcome to CasaOS\": \"Добро пожаловать в CasaOS\",\n \"Let's create your initial account\": \"Давайте создадим ваш аккаунт\",\n \"Go →\": \"Поехали →\",\n \"Create Account\": \"Создать аккаунт\",\n \"Username\": \"Имя пользователя\",\n \"Confirm Password\": \"Подтвердить пароль\",\n \"Username or Password error!\": \"Ошибка имени пользователя или пароля!\",\n \"All things done!\": \"Все готово!\",\n // Login\n \"Login\": \"Логин\",\n \"Password error!\": \"Неверный пароль!\",\n // Account\n \"Account\": \"Аккаунт\",\n \"Logout\": \"Выйти\",\n \"Name\": \"Имя\",\n \"Password\": \"Пароль\",\n \"Change name\": \"Изменить имя\",\n \"Change Password\": \"Изменить пароль\",\n \"Original password\": \"Текуший пароль\",\n \"New password\": \"Новый пароль\",\n \"Confirm the new password again\": \"Подтвердите новый пароль еще раз\",\n // Dashboard Settings\n \"Settings\": \"Настройки\",\n \"Dashboard Setting\": \"Настройка панели\",\n \"Search Engine\": \"Поисковой движок\",\n \"WebUI Port\": \"Порт Веб-Интерфейса\",\n \"Currently the latest version\": \"На данный момент последняя версия\",\n \"A new version is available!\": \"Доступна новая версия!\",\n \"Edit Web UI port\": \"Изменить порт Веб-Интерфейса\",\n // Terminal & Logs\n \"Terminal & Logs\": \"Терминал и Логи\",\n \"Terminal\": \"Терминал\",\n \"Logs\": \"Логи\",\n // Widgets\n \"Widgets Settings\": \"Настройки виджетов\",\n \"Time\": \"Время\",\n \"System Status\": \"Состояние системы\",\n \"Disk Status\": \"Состояние диска\",\n \"Network Status\": \"Состояние сети\",\n \"available of\": \"{avl} доступно из {total}\",\n // Search \n \"Search...\": \"Поиск...\",\n // Sync\n \"Sync your data\": \"Синхронизируйте ваши данные\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"Следуйте инструкциям, чтобы начать синхронизацию файлов на нескольких устройствах.\",\n \"Go !\": \"Поехали !\",\n \"Sync Guide\": \"Руководство по синхронизации\",\n \"Install\": \"Установить\",\n \"Config\": \"Настройка\",\n \"Complete\": \"Готово\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"Загрузите Syncthing на устройство, которое хотите синхронизировать данные с CasaOS.\",\n \"Get Syncthing for\": \"Загрузить Syncthing для {os}\",\n \"Download APK\": \"Скачать APK\",\n \"Show all Platforms\": \"Показать все платформы\",\n 'Install and open the downloaded application, then click the \"Next\" button.': 'Установите и откройте загруженное приложение, затем нажмите кнопку «Далее».',\n \"Device ID\": \"ID устройства\",\n \"Fill in your Device ID to continue\": \"Введите свой ID устройства, чтобы продолжить\",\n \"How to get Device ID\": \"Как получить ID устройства\",\n \"What do I need to do on my device?\": \"Что мне нужно делать на моем устройстве?\",\n \"Open the SyncTrayzor\": \"Откройте SyncTrayzor\",\n \"Find the Device ID\": \"Найдите ID устройства\",\n \"Add new device on your device\": \"Добавить новое устройство на ваше устройство\",\n \"Add new folder on your device\": \"Добавить новую папку на вашем устройстве\",\n \"Done!\": \"Готово!\",\n \"Open Syncthing in the Launchpad\": \"Откройте Syncthing в Launchpad\",\n \"Find the Syncthing icon in the menubar\": \"Найдите значок Syncthing в строке меню.\",\n \"Open Syncthing\": \"Откройте Syncthing\",\n \"Open the menu\": \"Откройте меню\",\n 'Choose \"Show device ID\"': 'Выберите «Показать ID устройства».',\n \"Copy the Device ID\": \"Скопируйте ID устройства\",\n \"There you go!\": \"Готово!\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"Ваши данные начали синхронизироваться.
Синхронизация может занять несколько минут.\",\n \"Up to Date\": \"Обновленно\",\n \"Synchronizing\": \"Синхронизация\",\n \"Synchronized\": \"Синхронизировано\",\n \"Total\": \"Всего\",\n \"Add New Device\": \"Добавить новое устройство\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"Есть идея? Напиши её в Discord!\",\n \"Smarten up your home\": \"Сделайте свой дом умнее\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"Мы хотим дать вам опыт умного дома с конфиденциальностью, высокой скоростью и локализованным хранилищем.\",\n \"In development\": \"В разработке\",\n // Apps\n \"Apps\": \"Приложения\",\n \"App\": \"Приложение\",\n \"Open\": \"Открыть\",\n \"Setting\": \"Настройка\",\n \"Uninstall\": \"Удалить\",\n \"Attention\": \"Внимание\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"Данные не подлежат восстановлению после удаления!
Продолжить, чтобы удалить это приложение?\",\n \"Featured Apps\": \"Популярные приложения\",\n \"Custom Install\": \"Своё приложение\",\n \"Continue in background\": \"Продолжить в фоне\",\n \"Install a new App manually\": \"Установить новое приложение вручную\",\n \"Docker Image\": \"Docker-Образ\",\n \"App name\": \"Имя приложения\",\n \"Icon URL\": \"URL значка\",\n \"Network\": \"Сеть\",\n \"Ports\": \"Порты\",\n \"Volumes\": \"Тома\",\n \"Environment Variables\": \"Переменные среды\",\n \"Devices\": \"Устройства\",\n \"Memory Limit\": \"Ограничение памяти\",\n \"CPU Shares\": \"Доли ЦП\",\n \"Restart Policy\": \"Политика перезагрузки\",\n \"App Description\": \"Описание приложения\",\n \"No ports now, click “+” to add one.\": \"Сейчас портов нет, нажмите “+”, чтобы добавить его.\",\n \"No volumes now, click “+” to add one.\": \"Томов сейчас нет, нажмите “+”, чтобы добавить его.\",\n \"No environment variables now, click “+” to add one.\": \"Переменных среды сейчас нет, нажмите “+”, чтобы добавить их.\",\n \"No devices now, click “+” to add one.\": \"Устройств сейчас нет, нажмите “+”, чтобы добавить их.\",\n \"e.g.,hello-world:latest\": \"например,hello-world:latest\",\n \"Your custom App Name\": \"Ваше собственное имя приложения\",\n \"Your custom icon URL\": \"URL вашего собственного значка\",\n \"Installing\": \"Установка\",\n \"Export AppFile\": \"Экспорт файла приложения\",\n \"AppFile\": \"Файл приложения\",\n \"Drop your app file here or click to upload\": \"Перетащите файл приложения сюда или нажмите, чтобы загрузить\",\n \"Host\": \"Хост\",\n \"Container\": \"Контейнер\",\n \"Key\": \"Ключ\",\n \"Value\": \"Значение\",\n \"Protocol\": \"Протокол\",\n \"This is not a valid json file.\": \"Это недопустимый файл json.\",\n \"Your browser does not support file reading.\": \"Ваш браузер не поддерживает чтение файлов.\",\n \"has been selected\": \"был выбран\",\n \"Please fill correct command line\": \"Пожалуйста, заполните командную строку правильно\",\n \"Please import a valid App file\": \"Пожалуйста, импортируйте правильный файл приложения\",\n \"AutoFill only helps you to complete most of the configuration.\": \"Автозаполнение только помогает выполнить большую часть настройки.\",\n \"Some configuration information such as:\": \"Некоторая информация о конфигурации, такая как:\",\n \"the port and path of the Web UI\": \"порт и путь веб-интерфейса\",\n \"the mount location of the volume or file\": \"место монтирования тома или файла\",\n \"the port mapping of the Host\": \"отображение портов хоста\",\n \"optional configuration items\": \"дополнительные элементы конфигурации\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"К ним относятся, но не ограничиваются этими случаями, и вы все равно должны подтвердить или изменить их. \",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"Не стесняйтесь предлагать улучшения этой функции в Discord!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"Использование localhost или 127.0.0.1 приведет к тому, что приложение станет недоступным, используйте для доступа реальный IP-адрес.\",\n \"CATEGORY\": \"КАТЕГОРИЯ\",\n \"DEVELOPER\": \"РАЗРАБОТЧИК\",\n \"REQUIRE\": \"ТРЕБУЕТСЯ\",\n \"MEMORY\": \"ПАМЯТИ\",\n \"DISK\": \"МЕСТА\",\n \"App Store\": \"Магазин приложений\",\n \"Community Apps\": \"Пользовательские приложения\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"От участников сообщества, не оптимизированы для CasaOS, но предоставляют базовые возможности приложения.\",\n \"Sort by\": \"Сортировать по\",\n //Storage\n \"Create Storage\": \"Create Storage\",\n \"Storage Manager\": \"Storage Manager\",\n \"Storage\": \"Storage\",\n \"Drive\": \"Drive\",\n \"Single Drive Storage\": \"Single Drive Storage\",\n \"Format\": \"Format\",\n \"Remove\": \"Remove\",\n \"Available Total\": \"{name} | Available: {avl} (Total: {total})\",\n \"Health\": \"Health\",\n \"Healthy\": \"Healthy\",\n \"Damage\": \"Damage\",\n \"Temp\": \"Temp\",\n \"WARNING!\": \"WARNING!\",\n \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\": \"This selected drive will be emptied if there is data on it. Make sure again that there is no important data on the selected drive that has not been backed up. If there is data to be migrated, the related apps will be stopped during the migration process.\",\n \"Creation in progress\": \"Creation in progress\",\n \"Apply\": \"Apply\",\n \"Just Mount\": \"Just Mount\",\n \"Storage Name\": \"Storage Name\",\n \"Choose Drive\": \"Choose Drive\",\n \"Enter the password to continue:\": \"Enter the password to continue:\",\n \"Used\": \"Used\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\",\n \"The selected drive will be emptied.\": \"The selected drive will be emptied.\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\",\n \"The drive you select can be used directly as storage.\": \"The drive you select can be used directly as storage.\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\",\n \"Format and Create\": \"Format and Create\",\n // Feedback\n \"Join Discord\": \"Join Discord\",\n \"Visit our Github\": \"Visit our Github\",\n \"Bug report\": \"Bug report\",\n \"Title\": \"Title\",\n \"Describe the bug\": \"Describe the bug\",\n \"A clear and concise description of what the bug is.\": \"A clear and concise description of what the bug is.\",\n \"System infomation\": \"System infomation\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/ru_ru.js?");
/***/ }),
@@ -479,7 +503,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// Russian localize by t.me/i
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// Chinese\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"好\",\n \"Cancel\": \"取消\",\n \"Submit\": \"提交\",\n \"Back\": \"返回\",\n \"Edit\": \"编辑\",\n \"Update\": \"更新\",\n \"Create\": \"创建\",\n \"Next\": \"下一步\",\n \"Close\": \"关闭\",\n \"Select\": \"选择\",\n \"Save\": \"保存\",\n \"Add\": \"添加\",\n \"Go\": \"访问\",\n \"Import\": \"导入\",\n \"Low\": \"低\",\n \"Medium\": \"中\",\n \"High\": \"高\",\n \"Language\": \"语言\",\n \"This field is required\": \"此字段是必填项\",\n \"This field must be a valid email\": \"此字段必须是有效的电子邮件\",\n \"This field confirmation does not match\": \"此字段确认不匹配\",\n \"This field must have 2 options\": \"此字段必须有 2 个选项\",\n \"This field must have more than 5 characters\": \"此字段不少于 5 个字符\",\n // Init Page\n \"Welcome to CasaOS\": \"欢迎进入CsasOS\",\n \"Let's create your initial account\": \"让我们来创建你的初始账户\",\n \"Go →\": \"开始 →\",\n \"Create Account\": \"创建账户\",\n \"Username\": \"用户名\",\n \"Confirm Password\": \"确认密码\",\n \"Username or Password error!\": \"用户名或密码错误!\",\n \"All things done!\": \"一切就绪!\",\n // Login\n \"Login\": \"登录\",\n \"Password error!\": \"密码错误!\",\n // Account\n \"Account\": \"用户\",\n \"Logout\": \"退出账户\",\n \"Name\": \"用户名\",\n \"Password\": \"密码\",\n \"Change name\": \"修改用户名\",\n \"Change Password\": \"修改密码\",\n \"Original password\": \"原密码\",\n \"New password\": \"新密码\",\n \"Confirm the new password again\": \"确认新密码\",\n // Dashboard Settings\n \"Settings\": \"系统设置\",\n \"Dashboard Setting\": \"系统设置\",\n \"Search Engine\": \"搜索引擎\",\n \"WebUI Port\": \"网页界面端口\",\n \"Currently the latest version\": \"当前已经是最新版\",\n \"A new version is available!\": \"有新的可用版本!\",\n \"Edit Web UI port\": \"修改网页界面端口\",\n // Terminal & Logs\n \"Terminal & Logs\": \"终端与日志\",\n \"Terminal\": \"终端\",\n \"Logs\": \"日志\",\n // Widgets\n \"Widgets Settings\": \"小组件设置\",\n \"Time\": \"时间\",\n \"System Status\": \"系统状况\",\n \"Disk Status\": \"磁盘状况\",\n \"Network Status\": \"网络状况\",\n \"available of\": \"{avl}可用(共{total})\",\n // Search \n \"Search...\": \"搜索...\",\n // Sync\n \"Sync your data\": \"同步你的数据\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"跟随指引在多个设备之间同步你的文件。\",\n \"Go !\": \"开始 !\",\n \"Sync Guide\": \"同步向导\",\n \"Install\": \"安装\",\n \"Config\": \"配置\",\n \"Complete\": \"完成\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"在要与 CasaOS 同步的设备上下载 Syncthing\",\n \"Get Syncthing for\": \"下载 {os} 版\",\n \"Download APK\": \"下载 APK\",\n \"Show all Platforms\": \"显示所有平台\",\n 'Install and open the downloaded application, then click the \"Next\" button.': '安装并打开下载的应用程序,然后单击“下一步”按钮。',\n \"Device ID\": \"设备ID\",\n \"Fill in your Device ID to continue\": \"填入你的设备ID以继续\",\n \"How to get Device ID\": \"如何获取设备ID\",\n \"What do I need to do on my device?\": \"我需要在我的设备上做什么?\",\n \"Open the SyncTrayzor\": \"打开SyncTrayzor\",\n \"Find the Device ID\": \"找到设备ID\",\n \"Add new device on your device\": \"在你的设备上添加新设备\",\n \"Add new folder on your device\": \"在你的设备上添加新文件夹\",\n \"Done!\": \"完成!\",\n \"Open Syncthing in the Launchpad\": \"在启动板中打开 Syncthing\",\n \"Find the Syncthing icon in the menubar\": \"在菜单栏中找到 Syncthing 的图标\",\n \"Open Syncthing\": \"打开 Syncthing\",\n \"Open the menu\": \"打开菜单\",\n 'Choose \"Show device ID\"': '选择 \"显示设备ID\"',\n \"Copy the Device ID\": \"复制设备ID\",\n \"There you go!\": \"一切就绪\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"你的数据已经开始同步,完成同步可能需要几分钟时间。\",\n \"Up to Date\": \"已同步\",\n \"Synchronizing\": \"同步中\",\n \"Synchronized\": \"同步完成\",\n \"Total\": \"总计\",\n \"Add New Device\": \"添加新设备\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"有想法?在 Discord 上告诉我们!\",\n \"Smarten up your home\": \"智能化你的家庭\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"我们希望为你提供隐私、高速和本地化存储的智能家居体验。\",\n \"In development\": \"正在开发中\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"打开\",\n \"Setting\": \"设置\",\n \"Uninstall\": \"卸载\",\n \"Attention\": \"注意\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"删除后数据无法恢复! 继续卸载App?\",\n \"Featured Apps\": \"精选App\",\n \"Custom Install\": \"自定义安装\",\n \"Continue in background\": \"在后台继续\",\n \"Install a new App manually\": \"手动安装App\",\n \"Docker Image\": \"Docker 镜像\",\n \"App name\": \"App名称\",\n \"Icon URL\": \"图标路径\",\n \"Network\": \"网络\",\n \"Ports\": \"端口\",\n \"Volumes\": \"卷\",\n \"Environment Variables\": \"环境变量\",\n \"Devices\": \"设备\",\n \"Memory Limit\": \"内存限制\",\n \"CPU Shares\": \"CPU 限制\",\n \"Restart Policy\": \"重启策略\",\n \"App Description\": \"App简介\",\n \"No ports now, click “+” to add one.\": \"目前没有端口,点击 + 添加一个。\",\n \"No volumes now, click “+” to add one.\": \"目前没有卷,点击 + 添加一个。\",\n \"No environment variables now, click “+” to add one.\": \"目前没有环境变量,点击 + 添加一个。\",\n \"No devices now, click “+” to add one.\": \"目前没有设备,点击 + 添加一个。\",\n \"e.g.,hello-world:latest\": \"例如: hello-world:latest\",\n \"Your custom App Name\": \"自定义App名称\",\n \"Your custom icon URL\": \"自定义图标路径\",\n \"Installing\": \"正在安装\",\n \"Export AppFile\": \"导出AppFile\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"将你的AppFile拖放到此处或点击上传\",\n \"Host\": \"主机\",\n \"Container\": \"容器\",\n \"Key\": \"键\",\n \"Value\": \"值\",\n \"Protocol\": \"协议\",\n \"This is not a valid json file.\": \"这不是有效的 json 文件。\",\n \"Your browser does not support file reading.\": \"你的浏览器不支持文件读取。\",\n \"has been selected\": \"已被选中\",\n \"Please fill correct command line\": \"请填写正确的命令行\",\n \"Please import a valid App file\": \"请导入有效的AppFile\",\n \"AutoFill only helps you to complete most of the configuration.\": \"自动填写仅会帮助你完成大部分配置。\",\n \"Some configuration information such as:\": \"一些配置信息,例如:\",\n \"the port and path of the Web UI\": \"Web UI 的端口和路径\",\n \"the mount location of the volume or file\": \"卷或文件的安装位置\",\n \"the port mapping of the Host\": \"Host的端口映射\",\n \"optional configuration items\": \"可选配置项\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"这些包括但不限于这些情况,还需要你确认或修改。\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"欢迎随时随时在 Discord 中对此功能提出改进建议!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"当你使用 localhost 或 127.0.0.1 时将会导致App无法打开, 请使用实际IP地址来访问。\",\n \"CATEGORY\": \"分类\",\n \"DEVELOPER\": \"开发者\",\n \"REQUIRE\": \"需要\",\n \"MEMORY\": \"内存\",\n \"DISK\": \"磁盘\",\n \"App Store\": \"应用中心\",\n \"Community Apps\": \"社区App\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"来自社区贡献者。提供了基础的App体验,但不是专门为CasaOS优化的。\",\n \"Sort by\": \"排序\",\n //Storage\n \"Create Storage\": \"创建存储空间\",\n \"Storage Manager\": \"存储空间管理器\",\n \"Storage\": \"存储空间\",\n \"Drive\": \"硬盘\",\n \"Single Drive Storage\": \"单硬盘存储空间\",\n \"Format\": \"格式化\",\n \"Remove\": \"移除\",\n \"Available Total\": \"{name} | {avl} 可用 (共计 {total})\",\n \"Health\": \"健康度\",\n \"Healthy\": \"健康\",\n \"Damage\": \"损毁\",\n \"Temp\": \"温度\",\n \"Warning\": \"警告\",\n \"Creation in progress\": \"正在创建中\",\n \"Apply\": \"提交\",\n \"Just Mount\": \"只挂载\",\n \"Storage Name\": \"存储空间名称\",\n \"Choose Drive\": \"选择硬盘\",\n \"Enter the password to continue:\": \"输入密码以继续:\",\n \"Used\": \"已用\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS在创建EXT4格式的存储空间时会预留 1% 的文件空间。\",\n \"The selected drive will be emptied.\": \"选中的硬盘将会被清空。\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"请再次确保所选的硬盘上没有需要备份的重要数据。\",\n \"The drive you select can be used directly as storage.\": \"你所选择的硬盘可以直接作为存储空间使用。\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"你也可以选择在格式化后创建。如果格式化的话,选中的硬盘将会被清空。\",\n \"Format and Create\": \"格式化并创建\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/zh_cn.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n// Chinese\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Commons\n \"\": \"\",\n \"OK\": \"好\",\n \"Cancel\": \"取消\",\n \"Submit\": \"提交\",\n \"Back\": \"返回\",\n \"Edit\": \"编辑\",\n \"Update\": \"更新\",\n \"Create\": \"创建\",\n \"Next\": \"下一步\",\n \"Close\": \"关闭\",\n \"Select\": \"选择\",\n \"Save\": \"保存\",\n \"Add\": \"添加\",\n \"Go\": \"访问\",\n \"Import\": \"导入\",\n \"Low\": \"低\",\n \"Medium\": \"中\",\n \"High\": \"高\",\n \"Language\": \"语言\",\n \"This field is required\": \"此字段是必填项\",\n \"This field must be a valid email\": \"此字段必须是有效的电子邮件\",\n \"This field confirmation does not match\": \"此字段确认不匹配\",\n \"This field must have 2 options\": \"此字段必须有 2 个选项\",\n \"This field must have more than 5 characters\": \"此字段不少于 5 个字符\",\n // Init Page\n \"Welcome to CasaOS\": \"欢迎进入CasaOS\",\n \"Let's create your initial account\": \"让我们来创建你的初始账户\",\n \"Go →\": \"开始 →\",\n \"Create Account\": \"创建账户\",\n \"Username\": \"用户名\",\n \"Confirm Password\": \"确认密码\",\n \"Username or Password error!\": \"用户名或密码错误!\",\n \"All things done!\": \"一切就绪!\",\n // Login\n \"Login\": \"登录\",\n \"Password error!\": \"密码错误!\",\n // Account\n \"Account\": \"用户\",\n \"Logout\": \"退出账户\",\n \"Name\": \"用户名\",\n \"Password\": \"密码\",\n \"Change name\": \"修改用户名\",\n \"Change Password\": \"修改密码\",\n \"Original password\": \"原密码\",\n \"New password\": \"新密码\",\n \"Confirm the new password again\": \"确认新密码\",\n // Dashboard Settings\n \"Settings\": \"系统设置\",\n \"Dashboard Setting\": \"系统设置\",\n \"Search Engine\": \"搜索引擎\",\n \"WebUI Port\": \"网页界面端口\",\n \"Currently the latest version\": \"当前已经是最新版\",\n \"A new version is available!\": \"有新的可用版本!\",\n \"Edit Web UI port\": \"修改网页界面端口\",\n // Terminal & Logs\n \"Terminal & Logs\": \"终端与日志\",\n \"Terminal\": \"终端\",\n \"Logs\": \"日志\",\n // Widgets\n \"Widgets Settings\": \"小组件设置\",\n \"Time\": \"时间\",\n \"System Status\": \"系统状况\",\n \"Disk Status\": \"磁盘状况\",\n \"Network Status\": \"网络状况\",\n \"available of\": \"{avl}可用(共{total})\",\n // Search \n \"Search...\": \"搜索...\",\n // Sync\n \"Sync your data\": \"同步你的数据\",\n \"Follow the guide to start syncing your files across multiple devices.\": \"跟随指引在多个设备之间同步你的文件。\",\n \"Go !\": \"开始 !\",\n \"Sync Guide\": \"同步向导\",\n \"Install\": \"安装\",\n \"Config\": \"配置\",\n \"Complete\": \"完成\",\n \"Download Syncthing on the device you want to sync with CasaOS\": \"在要与 CasaOS 同步的设备上下载 Syncthing\",\n \"Get Syncthing for\": \"下载 {os} 版\",\n \"Download APK\": \"下载 APK\",\n \"Show all Platforms\": \"显示所有平台\",\n 'Install and open the downloaded application, then click the \"Next\" button.': '安装并打开下载的应用程序,然后单击“下一步”按钮。',\n \"Device ID\": \"设备ID\",\n \"Fill in your Device ID to continue\": \"填入你的设备ID以继续\",\n \"How to get Device ID\": \"如何获取设备ID\",\n \"What do I need to do on my device?\": \"我需要在我的设备上做什么?\",\n \"Open the SyncTrayzor\": \"打开SyncTrayzor\",\n \"Find the Device ID\": \"找到设备ID\",\n \"Add new device on your device\": \"在你的设备上添加新设备\",\n \"Add new folder on your device\": \"在你的设备上添加新文件夹\",\n \"Done!\": \"完成!\",\n \"Open Syncthing in the Launchpad\": \"在启动板中打开 Syncthing\",\n \"Find the Syncthing icon in the menubar\": \"在菜单栏中找到 Syncthing 的图标\",\n \"Open Syncthing\": \"打开 Syncthing\",\n \"Open the menu\": \"打开菜单\",\n 'Choose \"Show device ID\"': '选择 \"显示设备ID\"',\n \"Copy the Device ID\": \"复制设备ID\",\n \"There you go!\": \"一切就绪\",\n \"Your data has started to sync.It may take some minutes to fulfill synchronization.\": \"你的数据已经开始同步,完成同步可能需要几分钟时间。\",\n \"Up to Date\": \"已同步\",\n \"Synchronizing\": \"同步中\",\n \"Synchronized\": \"同步完成\",\n \"Total\": \"总计\",\n \"Add New Device\": \"添加新设备\",\n // Iot\n \"Have an idea? Shoot it on Discord!\": \"有想法?在 Discord 上告诉我们!\",\n \"Smarten up your home\": \"智能化你的家庭\",\n \"We want to give you a smart home experience with privacy, high speed, and localized storage.\": \"我们希望为你提供隐私、高速和本地化存储的智能家居体验。\",\n \"In development\": \"正在开发中\",\n // Apps\n \"Apps\": \"Apps\",\n \"App\": \"App\",\n \"Open\": \"打开\",\n \"Setting\": \"设置\",\n \"Uninstall\": \"卸载\",\n \"Attention\": \"注意\",\n \"Data cannot be recovered after deletion!
Continue on to uninstall this application?\": \"删除后数据无法恢复! 继续卸载App?\",\n \"Featured Apps\": \"精选App\",\n \"Custom Install\": \"自定义安装\",\n \"Continue in background\": \"在后台继续\",\n \"Install a new App manually\": \"手动安装App\",\n \"Docker Image\": \"Docker 镜像\",\n \"App name\": \"App名称\",\n \"Icon URL\": \"图标路径\",\n \"Network\": \"网络\",\n \"Ports\": \"端口\",\n \"Volumes\": \"卷\",\n \"Environment Variables\": \"环境变量\",\n \"Devices\": \"设备\",\n \"Memory Limit\": \"内存限制\",\n \"CPU Shares\": \"CPU 限制\",\n \"Restart Policy\": \"重启策略\",\n \"App Description\": \"App简介\",\n \"No ports now, click “+” to add one.\": \"目前没有端口,点击 + 添加一个。\",\n \"No volumes now, click “+” to add one.\": \"目前没有卷,点击 + 添加一个。\",\n \"No environment variables now, click “+” to add one.\": \"目前没有环境变量,点击 + 添加一个。\",\n \"No devices now, click “+” to add one.\": \"目前没有设备,点击 + 添加一个。\",\n \"e.g.,hello-world:latest\": \"例如: hello-world:latest\",\n \"Your custom App Name\": \"自定义App名称\",\n \"Your custom icon URL\": \"自定义图标路径\",\n \"Installing\": \"正在安装\",\n \"Export AppFile\": \"导出AppFile\",\n \"AppFile\": \"AppFile\",\n \"Drop your app file here or click to upload\": \"将你的AppFile拖放到此处或点击上传\",\n \"Host\": \"主机\",\n \"Container\": \"容器\",\n \"Key\": \"键\",\n \"Value\": \"值\",\n \"Protocol\": \"协议\",\n \"This is not a valid json file.\": \"这不是有效的 json 文件。\",\n \"Your browser does not support file reading.\": \"你的浏览器不支持文件读取。\",\n \"has been selected\": \"已被选中\",\n \"Please fill correct command line\": \"请填写正确的命令行\",\n \"Please import a valid App file\": \"请导入有效的AppFile\",\n \"AutoFill only helps you to complete most of the configuration.\": \"自动填写仅会帮助你完成大部分配置。\",\n \"Some configuration information such as:\": \"一些配置信息,例如:\",\n \"the port and path of the Web UI\": \"Web UI 的端口和路径\",\n \"the mount location of the volume or file\": \"卷或文件的安装位置\",\n \"the port mapping of the Host\": \"Host的端口映射\",\n \"optional configuration items\": \"可选配置项\",\n \"These include but are not limited to these cases and still need to be confirmed or modified by you.\": \"这些包括但不限于这些情况,还需要你确认或修改。\",\n \"Feel free to suggest improvements to this feature in Discord Server!\": \"欢迎随时随时在 Discord 中对此功能提出改进建议!\",\n \"Using localhost or 127.0.0.1 will cause the application to be inaccessible, please use the real ip to access.\": \"当你使用 localhost 或 127.0.0.1 时将会导致App无法打开, 请使用实际IP地址来访问。\",\n \"CATEGORY\": \"分类\",\n \"DEVELOPER\": \"开发者\",\n \"REQUIRE\": \"需要\",\n \"MEMORY\": \"内存\",\n \"DISK\": \"磁盘\",\n \"App Store\": \"应用中心\",\n \"Community Apps\": \"社区App\",\n \"From community contributors, not optimized for CasaOS, but provides a basic App experience.\": \"来自社区贡献者。提供了基础的App体验,但不是专门为CasaOS优化的。\",\n \"Sort by\": \"排序\",\n //Storage\n \"Create Storage\": \"创建存储空间\",\n \"Storage Manager\": \"存储空间管理器\",\n \"Storage\": \"存储空间\",\n \"Drive\": \"硬盘\",\n \"Single Drive Storage\": \"单硬盘存储空间\",\n \"Format\": \"格式化\",\n \"Remove\": \"移除\",\n \"Available Total\": \"{name} | {avl} 可用 (共计 {total})\",\n \"Health\": \"健康度\",\n \"Healthy\": \"健康\",\n \"Damage\": \"损毁\",\n \"Temp\": \"温度\",\n \"Warning\": \"警告\",\n \"Creation in progress\": \"正在创建中\",\n \"Apply\": \"提交\",\n \"Just Mount\": \"只挂载\",\n \"Storage Name\": \"存储空间名称\",\n \"Choose Drive\": \"选择硬盘\",\n \"Enter the password to continue:\": \"输入密码以继续:\",\n \"Used\": \"已用\",\n \"CasaOS reserves 1% of file space when creating storage in EXT4 format.\": \"CasaOS在创建EXT4格式的存储空间时会预留 1% 的文件空间。\",\n \"The selected drive will be emptied.\": \"选中的硬盘将会被清空。\",\n \"Please make sure again that there is no important data on the selected drive that needs to be backed up.\": \"请再次确保所选的硬盘上没有需要备份的重要数据。\",\n \"The drive you select can be used directly as storage.\": \"你所选择的硬盘可以直接作为存储空间使用。\",\n \"You can also choose to create it after formatting. If formatted, the selected drive will be emptied.\": \"你也可以选择在格式化后创建。如果格式化的话,选中的硬盘将会被清空。\",\n \"Format and Create\": \"格式化并创建\",\n // Feedback\n \"Join Discord\": \"加入Discord\",\n \"Visit our Github\": \"访问我们的Github\",\n \"Bug report\": \"错误报告\",\n \"Title\": \"标题\",\n \"Describe the bug\": \"描述一下这个错误\",\n \"A clear and concise description of what the bug is.\": \"清晰而简明地描述什么是错误。\",\n \"System infomation\": \"系统信息\"\n});\n\n//# sourceURL=webpack:///./src/assets/lang/zh_cn.js?");
/***/ }),
@@ -526,7 +550,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BrandBar_vue_vue_type_template_id_dfac1d88___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./BrandBar.vue?vue&type=template&id=dfac1d88& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/BrandBar.vue?vue&type=template&id=dfac1d88&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BrandBar_vue_vue_type_template_id_dfac1d88___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BrandBar_vue_vue_type_template_id_dfac1d88___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/BrandBar.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BrandBar_vue_vue_type_template_id_dfac1d88___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./BrandBar.vue?vue&type=template&id=dfac1d88& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/BrandBar.vue?vue&type=template&id=dfac1d88&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BrandBar_vue_vue_type_template_id_dfac1d88___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BrandBar_vue_vue_type_template_id_dfac1d88___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/BrandBar.vue?");
/***/ }),
@@ -562,7 +586,43 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ContactBar_vue_vue_type_template_id_f34e36fa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"c25436b0-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./ContactBar.vue?vue&type=template&id=f34e36fa& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"c25436b0-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ContactBar.vue?vue&type=template&id=f34e36fa&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ContactBar_vue_vue_type_template_id_f34e36fa___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_c25436b0_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ContactBar_vue_vue_type_template_id_f34e36fa___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/ContactBar.vue?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ContactBar_vue_vue_type_template_id_f34e36fa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./ContactBar.vue?vue&type=template&id=f34e36fa& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ContactBar.vue?vue&type=template&id=f34e36fa&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ContactBar_vue_vue_type_template_id_f34e36fa___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ContactBar_vue_vue_type_template_id_f34e36fa___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/ContactBar.vue?");
+
+/***/ }),
+
+/***/ "./src/components/FeedbackPanel.vue":
+/*!******************************************!*\
+ !*** ./src/components/FeedbackPanel.vue ***!
+ \******************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FeedbackPanel_vue_vue_type_template_id_7769c5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FeedbackPanel.vue?vue&type=template&id=7769c5ff& */ \"./src/components/FeedbackPanel.vue?vue&type=template&id=7769c5ff&\");\n/* harmony import */ var _FeedbackPanel_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FeedbackPanel.vue?vue&type=script&lang=js& */ \"./src/components/FeedbackPanel.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _FeedbackPanel_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _FeedbackPanel_vue_vue_type_template_id_7769c5ff___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _FeedbackPanel_vue_vue_type_template_id_7769c5ff___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/FeedbackPanel.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/components/FeedbackPanel.vue?");
+
+/***/ }),
+
+/***/ "./src/components/FeedbackPanel.vue?vue&type=script&lang=js&":
+/*!*******************************************************************!*\
+ !*** ./src/components/FeedbackPanel.vue?vue&type=script&lang=js& ***!
+ \*******************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_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_FeedbackPanel_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./FeedbackPanel.vue?vue&type=script&lang=js& */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/FeedbackPanel.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_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_FeedbackPanel_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/components/FeedbackPanel.vue?");
+
+/***/ }),
+
+/***/ "./src/components/FeedbackPanel.vue?vue&type=template&id=7769c5ff&":
+/*!*************************************************************************!*\
+ !*** ./src/components/FeedbackPanel.vue?vue&type=template&id=7769c5ff& ***!
+ \*************************************************************************/
+/*! exports provided: render, staticRenderFns */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FeedbackPanel_vue_vue_type_template_id_7769c5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"445a19f9-vue-loader-template\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib??vue-loader-options!./FeedbackPanel.vue?vue&type=template&id=7769c5ff& */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"445a19f9-vue-loader-template\\\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/FeedbackPanel.vue?vue&type=template&id=7769c5ff&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FeedbackPanel_vue_vue_type_template_id_7769c5ff___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_445a19f9_vue_loader_template_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FeedbackPanel_vue_vue_type_template_id_7769c5ff___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/FeedbackPanel.vue?");
/***/ }),
@@ -658,7 +718,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ser
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _service_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./service.js */ \"./src/service/service.js\");\n/*\n * @Author: JerryK\n * @Date: 2021-09-18 21:32:13\n * @LastEditors: JerryK\n * @LastEditTime: 2021-12-29 14:55:53\n * @Description: System HardWare Info API\n * @FilePath: /CasaOS-UI/src/service/info.js\n */\n\nvar info = {\n //CPU info\n cpuInfo: function cpuInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get(\"/zima/getcpuinfo\");\n },\n //Memory Info\n memoryInfo: function memoryInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get(\"/zima/getmeminfo\");\n },\n //Network Info\n networkInfo: function networkInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/zima/getnetinfo');\n },\n //Disk Info\n diskInfo: function diskInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/zima/getdiskinfo');\n },\n //All Info\n allInfo: function allInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/info');\n },\n // System Info\n systemInfo: function systemInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/zima/sysinfo');\n },\n //Get CasaOS Config\n systemConfig: function systemConfig() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/config');\n },\n //Save CasaOs Config\n saveSystemConfig: function saveSystemConfig(data) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/config', data);\n },\n // Check Verison\n checkVersion: function checkVersion() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/check');\n },\n //Update System\n updateSystem: function updateSystem() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/update');\n },\n //ip\n getIp: function getIp() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('https://ipapi.co/json/');\n },\n //Get CasaOS Config\n widgetsConfig: function widgetsConfig() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/widget/config');\n },\n //Save CasaOs Config\n saveWidgetsConfig: function saveWidgetsConfig(data) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/widget/config', data);\n },\n // Get System state\n guideCheck: function guideCheck() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/guide/check');\n },\n // Get System logs\n systemLogs: function systemLogs() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/error/logs');\n },\n // Get System Port\n getSystemPort: function getSystemPort() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/port');\n },\n // Save System Port\n saveSystemPort: function saveSystemPort(data) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].put('/sys/port', data);\n },\n //Kill System\n killSystem: function killSystem() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/kill');\n },\n //Check web ui Port\n checkUiPort: function checkUiPort(url) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get(url);\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (info);\n\n//# sourceURL=webpack:///./src/service/info.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _service_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./service.js */ \"./src/service/service.js\");\n/*\n * @Author: JerryK\n * @Date: 2021-09-18 21:32:13\n * @LastEditors: JerryK\n * @LastEditTime: 2022-01-24 16:36:09\n * @Description: System HardWare Info API\n * @FilePath: /CasaOS-UI/src/service/info.js\n */\n\nvar info = {\n //CPU info\n cpuInfo: function cpuInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get(\"/zima/getcpuinfo\");\n },\n //Memory Info\n memoryInfo: function memoryInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get(\"/zima/getmeminfo\");\n },\n //Network Info\n networkInfo: function networkInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/zima/getnetinfo');\n },\n //Disk Info\n diskInfo: function diskInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/zima/getdiskinfo');\n },\n //All Info\n allInfo: function allInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/info');\n },\n // System Info\n systemInfo: function systemInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/zima/sysinfo');\n },\n //Get CasaOS Config\n systemConfig: function systemConfig() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/config');\n },\n //Save CasaOs Config\n saveSystemConfig: function saveSystemConfig(data) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/config', data);\n },\n // Check Verison\n checkVersion: function checkVersion() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/check');\n },\n //Update System\n updateSystem: function updateSystem() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/update');\n },\n //ip\n getIp: function getIp() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('https://ipapi.co/json/');\n },\n //Get CasaOS Config\n widgetsConfig: function widgetsConfig() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/widget/config');\n },\n //Save CasaOs Config\n saveWidgetsConfig: function saveWidgetsConfig(data) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/widget/config', data);\n },\n // Get System state\n guideCheck: function guideCheck() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/guide/check');\n },\n // Get System logs\n systemLogs: function systemLogs() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/error/logs');\n },\n // Get System Port\n getSystemPort: function getSystemPort() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('/sys/port');\n },\n // Save System Port\n saveSystemPort: function saveSystemPort(data) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].put('/sys/port', data);\n },\n //Kill System\n killSystem: function killSystem() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].post('/sys/kill');\n },\n //Check web ui Port\n checkUiPort: function checkUiPort(url) {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get(url);\n },\n //Get Debug Info\n getDebugInfo: function getDebugInfo() {\n return _service_js__WEBPACK_IMPORTED_MODULE_0__[\"api\"].get('debug');\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (info);\n\n//# sourceURL=webpack:///./src/service/info.js?");
/***/ }),
@@ -718,7 +778,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ser
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/*\n * @Author: JerryK\n * @Date: 2021-09-18 21:32:13\n * @LastEditors: JerryK\n * @LastEditTime: 2022-01-21 14:31:51\n * @Description: \n * @FilePath: /CasaOS-UI/src/store/index.js\n */\n\n // import createPersistedState from \"vuex-persistedstate\";\n\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].use(vuex__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new vuex__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Store({\n // plugins: [createPersistedState()],\n state: {\n token: \"\",\n devIp: \"192.168.2.233\",\n devPort: \"80\",\n serviceError: false,\n userinfo: {},\n sidebarOpen: false,\n syncthingKey: '',\n syncthingPort: '',\n searchEngine: '',\n siteLoading: true,\n needInitialization: false,\n widgetsSwitch: {\n clock: true,\n weather: true,\n cpu: true,\n disk: true\n },\n hardwareInfo: {}\n },\n mutations: {\n setToken: function setToken(state, val) {\n state.token = val;\n },\n setServiceError: function setServiceError(state, val) {\n state.serviceError = val;\n },\n setWidgets: function setWidgets(state, val) {\n state.widgetsSwitch[val.k] = val.v;\n },\n changeUserInfo: function changeUserInfo(state, val) {\n state.userinfo = val;\n },\n changeSideBarState: function changeSideBarState(state) {\n state.sidebarOpen = !state.sidebarOpen;\n },\n closeSideBar: function closeSideBar(state) {\n state.sidebarOpen = false;\n },\n changeSyncthingInfo: function changeSyncthingInfo(state, val) {\n state.syncthingKey = val.key;\n state.syncthingPort = val.port;\n },\n changeSearchEngine: function changeSearchEngine(state, val) {\n state.searchEngine = val;\n },\n changeSiteLoading: function changeSiteLoading(state) {\n state.siteLoading = false;\n },\n changeInitialization: function changeInitialization(state, val) {\n state.needInitialization = val;\n },\n changeHardwareInfo: function changeHardwareInfo(state, val) {\n state.hardwareInfo = val;\n }\n },\n actions: {},\n modules: {}\n}));\n\n//# sourceURL=webpack:///./src/store/index.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/*\n * @Author: JerryK\n * @Date: 2021-09-18 21:32:13\n * @LastEditors: JerryK\n * @LastEditTime: 2022-01-26 16:01:12\n * @Description: \n * @FilePath: /CasaOS-UI/src/store/index.js\n */\n\n // import createPersistedState from \"vuex-persistedstate\";\n\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].use(vuex__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new vuex__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Store({\n // plugins: [createPersistedState()],\n state: {\n token: \"\",\n devIp: \"192.168.2.101\",\n devPort: \"80\",\n serviceError: false,\n userinfo: {},\n sidebarOpen: false,\n syncthingKey: '',\n syncthingPort: '',\n searchEngine: '',\n siteLoading: true,\n needInitialization: false,\n widgetsSwitch: {\n clock: true,\n weather: true,\n cpu: true,\n disk: true\n },\n hardwareInfo: {}\n },\n mutations: {\n setToken: function setToken(state, val) {\n state.token = val;\n },\n setServiceError: function setServiceError(state, val) {\n state.serviceError = val;\n },\n setWidgets: function setWidgets(state, val) {\n state.widgetsSwitch[val.k] = val.v;\n },\n changeUserInfo: function changeUserInfo(state, val) {\n state.userinfo = val;\n },\n changeSideBarState: function changeSideBarState(state) {\n state.sidebarOpen = !state.sidebarOpen;\n },\n closeSideBar: function closeSideBar(state) {\n state.sidebarOpen = false;\n },\n changeSyncthingInfo: function changeSyncthingInfo(state, val) {\n state.syncthingKey = val.key;\n state.syncthingPort = val.port;\n },\n changeSearchEngine: function changeSearchEngine(state, val) {\n state.searchEngine = val;\n },\n changeSiteLoading: function changeSiteLoading(state) {\n state.siteLoading = false;\n },\n changeInitialization: function changeInitialization(state, val) {\n state.needInitialization = val;\n },\n changeHardwareInfo: function changeHardwareInfo(state, val) {\n state.hardwareInfo = val;\n }\n },\n actions: {},\n modules: {}\n}));\n\n//# sourceURL=webpack:///./src/store/index.js?");
/***/ }),
diff --git a/web/js/chunk-vendors.js b/web/js/chunk-vendors.js
index abef656..30d442f 100644
--- a/web/js/chunk-vendors.js
+++ b/web/js/chunk-vendors.js
@@ -346,6 +346,661 @@ eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"axios\\\",\\\"version\\\":
/***/ }),
+/***/ "./node_modules/babel-runtime/core-js/get-iterator.js":
+/*!************************************************************!*\
+ !*** ./node_modules/babel-runtime/core-js/get-iterator.js ***!
+ \************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn/get-iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js\"), __esModule: true };\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/core-js/get-iterator.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/core-js/object/keys.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/babel-runtime/core-js/object/keys.js ***!
+ \***********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn/object/keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js\"), __esModule: true };\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/core-js/object/keys.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js":
+/*!************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js ***!
+ \************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("__webpack_require__(/*! ../modules/web.dom.iterable */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js\");\n__webpack_require__(/*! ../modules/es6.string.iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js\");\nmodule.exports = __webpack_require__(/*! ../modules/core.get-iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js\");\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js":
+/*!***********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js ***!
+ \***********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("__webpack_require__(/*! ../../modules/es6.object.keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js\");\nmodule.exports = __webpack_require__(/*! ../../modules/_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\").Object.keys;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js":
+/*!************************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js ***!
+ \************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = function () { /* empty */ };\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js":
+/*!********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js ***!
+ \********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js":
+/*!*************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js ***!
+ \*************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js\");\nvar TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js ***!
+ \*********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js ***!
+ \**********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js ***!
+ \*********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// optional / simple context binding\nvar aFunction = __webpack_require__(/*! ./_a-function */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js":
+/*!*************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js ***!
+ \*************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js ***!
+ \*****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\nvar document = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js":
+/*!*******************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js ***!
+ \*******************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js":
+/*!************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js ***!
+ \************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\");\nvar ctx = __webpack_require__(/*! ./_ctx */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js":
+/*!***********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js ***!
+ \***********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js":
+/*!************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js ***!
+ \************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js ***!
+ \*********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js ***!
+ \**********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js\");\nmodule.exports = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js ***!
+ \**********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var document = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\").document;\nmodule.exports = document && document.documentElement;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js":
+/*!********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js ***!
+ \********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("module.exports = !__webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") && !__webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\")(function () {\n return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js":
+/*!*************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js ***!
+ \*************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js ***!
+ \*****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar create = __webpack_require__(/*! ./_object-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js\");\nvar descriptor = __webpack_require__(/*! ./_property-desc */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\")(IteratorPrototype, __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js ***!
+ \*****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar LIBRARY = __webpack_require__(/*! ./_library */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nvar $iterCreate = __webpack_require__(/*! ./_iter-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js\");\nvar getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js\");\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = {};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js":
+/*!*************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js ***!
+ \*************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = true;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js":
+/*!*******************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js ***!
+ \*******************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar dPs = __webpack_require__(/*! ./_object-dps */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js\");\nvar enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js\");\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(/*! ./_dom-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(/*! ./_html */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js\");\n\nmodule.exports = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js\");\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js":
+/*!**************************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js ***!
+ \**************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar arrayIndexOf = __webpack_require__(/*! ./_array-includes */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js\")(false);\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js ***!
+ \*****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(/*! ./_object-keys-internal */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\");\nvar fails = __webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js":
+/*!*******************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js ***!
+ \*******************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js":
+/*!**************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js ***!
+ \**************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("module.exports = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js":
+/*!***********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js ***!
+ \***********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var def = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\").f;\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var shared = __webpack_require__(/*! ./_shared */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js\")('keys');\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js":
+/*!************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js ***!
+ \************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var core = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\");\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(/*! ./_library */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js\") ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js":
+/*!***********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js ***!
+ \***********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js":
+/*!****************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js ***!
+ \****************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(/*! ./_iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js ***!
+ \***************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js":
+/*!******************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js ***!
+ \******************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js ***!
+ \*********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js ***!
+ \*********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var store = __webpack_require__(/*! ./_shared */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js\")('wks');\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js\");\nvar Symbol = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js":
+/*!*****************************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js ***!
+ \*****************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var classof = __webpack_require__(/*! ./_classof */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js\");\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('iterator');\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nmodule.exports = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\").getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js":
+/*!**********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js ***!
+ \**********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar get = __webpack_require__(/*! ./core.get-iterator-method */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js\");\nmodule.exports = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\").getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js":
+/*!***********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js ***!
+ \***********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js\");\nvar step = __webpack_require__(/*! ./_iter-step */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(/*! ./_iter-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js":
+/*!********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js ***!
+ \********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js\");\nvar $keys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js\");\n\n__webpack_require__(/*! ./_object-sap */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js":
+/*!************************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js ***!
+ \************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\nvar $at = __webpack_require__(/*! ./_string-at */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(/*! ./_iter-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js\")(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js?");
+
+/***/ }),
+
+/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js":
+/*!*********************************************************************************************!*\
+ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js ***!
+ \*********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("__webpack_require__(/*! ./es6.array.iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js\");\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nvar TO_STRING_TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js?");
+
+/***/ }),
+
+/***/ "./node_modules/base64-js/index.js":
+/*!*****************************************!*\
+ !*** ./node_modules/base64-js/index.js ***!
+ \*****************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?");
+
+/***/ }),
+
+/***/ "./node_modules/browser-info/index.js":
+/*!********************************************!*\
+ !*** ./node_modules/browser-info/index.js ***!
+ \********************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* globals navigator*/\n\n\n\nfunction getOS(userAgent){\n if (userAgent.indexOf('Windows Phone') !== -1) {\n return 'Windows Phone';\n }\n if (userAgent.indexOf('Win') !== -1) {\n return 'Windows';\n }\n if (userAgent.indexOf('Android') !== -1) {\n return 'Android';\n }\n if (userAgent.indexOf('Linux') !== -1) {\n return 'Linux';\n }\n if (userAgent.indexOf('X11') !== -1) {\n return 'UNIX';\n }\n if (/iPad|iPhone|iPod/.test(userAgent)) {\n return 'iOS';\n }\n if (userAgent.indexOf('Mac') !== -1) {\n return 'OS X';\n }\n}\n\nfunction info(userAgent){\n var ua = userAgent || navigator.userAgent;\n var tem;\n\n var os = getOS(ua);\n var match = ua.match(/(opera|coast|chrome|safari|firefox|edge|trident(?=\\/))\\/?\\s*?(\\S+)/i) || [];\n\n tem = ua.match(/\\bIEMobile\\/(\\S+[0-9])/);\n if (tem !== null) {\n return {\n name: 'IEMobile',\n version: tem[1].split('.')[0],\n fullVersion: tem[1],\n os: os\n };\n }\n\n if (/trident/i.test(match[1])) {\n tem = /\\brv[ :]+(\\S+[0-9])/g.exec(ua) || [];\n return {\n name: 'IE',\n version: tem[1] && tem[1].split('.')[0],\n fullVersion: tem[1],\n os: os\n };\n }\n\n if (match[1] === 'Chrome') {\n tem = ua.match(/\\bOPR\\/(\\d+)/);\n if (tem !== null) {\n return {\n name: 'Opera',\n version: tem[1].split('.')[0],\n fullVersion: tem[1],\n os: os\n };\n }\n\n tem = ua.match(/\\bEdg\\/(\\S+)/) || ua.match(/\\bEdge\\/(\\S+)/);\n if (tem !== null) {\n return {\n name: 'Edge',\n version: tem[1].split('.')[0],\n fullVersion: tem[1],\n os: os\n };\n }\n }\n match = match[2]? [match[1], match[2]]: [navigator.appName, navigator.appVersion, '-?'];\n\n if (match[0] === 'Coast') {\n match[0] = 'OperaCoast';\n }\n\n if (match[0] !== 'Chrome') {\n var tem = ua.match(/version\\/(\\S+)/i)\n if (tem !== null && tem !== '') {\n match.splice(1, 1, tem[1]);\n }\n }\n\n if (match[0] === 'Firefox') {\n match[0] = /waterfox/i.test(ua)\n ? 'Waterfox'\n : match[0];\n }\n\n return {\n name: match[0],\n version: match[1].split('.')[0],\n fullVersion: match[1],\n os: os\n };\n}\n\nmodule.exports = info;\n\n\n//# sourceURL=webpack:///./node_modules/browser-info/index.js?");
+
+/***/ }),
+
/***/ "./node_modules/buefy/dist/esm/autocomplete.js":
/*!*****************************************************!*\
!*** ./node_modules/buefy/dist/esm/autocomplete.js ***!
@@ -1186,6 +1841,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
/***/ }),
+/***/ "./node_modules/buffer/index.js":
+/*!**************************************!*\
+ !*** ./node_modules/buffer/index.js ***!
+ \**************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/buffer/index.js?");
+
+/***/ }),
+
/***/ "./node_modules/call-bind/callBound.js":
/*!*********************************************!*\
!*** ./node_modules/call-bind/callBound.js ***!
@@ -1210,6 +1877,17 @@ eval("\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/f
/***/ }),
+/***/ "./node_modules/clone/clone.js":
+/*!*************************************!*\
+ !*** ./node_modules/clone/clone.js ***!
+ \*************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif ( true && module.exports) {\n module.exports = clone;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/clone/clone.js?");
+
+/***/ }),
+
/***/ "./node_modules/core-js/internals/a-function.js":
/*!******************************************************!*\
!*** ./node_modules/core-js/internals/a-function.js ***!
@@ -2468,6 +3146,17 @@ eval("\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-ob
/***/ }),
+/***/ "./node_modules/core-js/modules/es.function.name.js":
+/*!**********************************************************!*\
+ !*** ./node_modules/core-js/modules/es.function.name.js ***!
+ \**********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.function.name.js?");
+
+/***/ }),
+
/***/ "./node_modules/core-js/modules/es.object.assign.js":
/*!**********************************************************!*\
!*** ./node_modules/core-js/modules/es.object.assign.js ***!
@@ -2668,6 +3357,1202 @@ eval("\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/f
/***/ }),
+/***/ "./node_modules/ieee754/index.js":
+/*!***************************************!*\
+ !*** ./node_modules/ieee754/index.js ***!
+ \***************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?");
+
+/***/ }),
+
+/***/ "./node_modules/isarray/index.js":
+/*!***************************************!*\
+ !*** ./node_modules/isarray/index.js ***!
+ \***************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/isarray/index.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/katex.js":
+/*!*************************************!*\
+ !*** ./node_modules/katex/katex.js ***!
+ \*************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/* eslint no-console:0 */\n/**\n * This is the main entry point for KaTeX. Here, we expose functions for\n * rendering expressions either to DOM nodes or to markup strings.\n *\n * We also expose the ParseError class to check if errors thrown from KaTeX are\n * errors in the expression, or errors in javascript handling.\n */\n\nvar ParseError = __webpack_require__(/*! ./src/ParseError */ \"./node_modules/katex/src/ParseError.js\");\nvar Settings = __webpack_require__(/*! ./src/Settings */ \"./node_modules/katex/src/Settings.js\");\n\nvar buildTree = __webpack_require__(/*! ./src/buildTree */ \"./node_modules/katex/src/buildTree.js\");\nvar parseTree = __webpack_require__(/*! ./src/parseTree */ \"./node_modules/katex/src/parseTree.js\");\nvar utils = __webpack_require__(/*! ./src/utils */ \"./node_modules/katex/src/utils.js\");\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function(expression, baseNode, options) {\n utils.clearNode(baseNode);\n\n var settings = new Settings(options);\n\n var tree = parseTree(expression, settings);\n var node = buildTree(tree, expression, settings).toNode();\n\n baseNode.appendChild(node);\n};\n\n// KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\n \"Warning: KaTeX doesn't work in quirks mode. Make sure your \" +\n \"website has a suitable doctype.\");\n\n render = function() {\n throw new ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n\n/**\n * Parse and build an expression, and return the markup for that.\n */\nvar renderToString = function(expression, options) {\n var settings = new Settings(options);\n\n var tree = parseTree(expression, settings);\n return buildTree(tree, expression, settings).toMarkup();\n};\n\n/**\n * Parse an expression and return the parse tree.\n */\nvar generateParseTree = function(expression, options) {\n var settings = new Settings(options);\n return parseTree(expression, settings);\n};\n\nmodule.exports = {\n render: render,\n renderToString: renderToString,\n /**\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n ParseError: ParseError,\n};\n\n\n//# sourceURL=webpack:///./node_modules/katex/katex.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/Lexer.js":
+/*!*****************************************!*\
+ !*** ./node_modules/katex/src/Lexer.js ***!
+ \*****************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\nvar matchAt = __webpack_require__(/*! match-at */ \"./node_modules/match-at/lib/matchAt.js\");\n\nvar ParseError = __webpack_require__(/*! ./ParseError */ \"./node_modules/katex/src/ParseError.js\");\n\n// The main lexer class\nfunction Lexer(input) {\n this._input = input;\n}\n\n// The resulting token returned from `lex`.\nfunction Token(text, data, position) {\n this.text = text;\n this.data = data;\n this.position = position;\n}\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - matches symbol combinations which result in a single output character\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more letters\n * - matches a backslash followed by any BMP character, including newline\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar tokenRegex = new RegExp(\n \"([ \\r\\n\\t]+)|(\" + // whitespace\n \"---?\" + // special combinations\n \"|[!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + // single codepoint\n \"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + // surrogate pair\n \"|\\\\\\\\(?:[a-zA-Z]+|[^\\uD800-\\uDFFF])\" + // function name\n \")\"\n);\n\nvar whitespaceRegex = /\\s*/;\n\n/**\n * This function lexes a single normal token. It takes a position and\n * whether it should completely ignore whitespace or not.\n */\nLexer.prototype._innerLex = function(pos, ignoreWhitespace) {\n var input = this._input;\n if (pos === input.length) {\n return new Token(\"EOF\", null, pos);\n }\n var match = matchAt(tokenRegex, input, pos);\n if (match === null) {\n throw new ParseError(\n \"Unexpected character: '\" + input[pos] + \"'\",\n this, pos);\n } else if (match[2]) { // matched non-whitespace\n return new Token(match[2], null, pos + match[2].length);\n } else if (ignoreWhitespace) {\n return this._innerLex(pos + match[1].length, true);\n } else { // concatenate whitespace to a single space\n return new Token(\" \", null, pos + match[1].length);\n }\n};\n\n// A regex to match a CSS color (like #ffffff or BlueViolet)\nvar cssColor = /#[a-z0-9]+|[a-z]+/i;\n\n/**\n * This function lexes a CSS color.\n */\nLexer.prototype._innerLexColor = function(pos) {\n var input = this._input;\n\n // Ignore whitespace\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n var match;\n if ((match = matchAt(cssColor, input, pos))) {\n // If we look like a color, return a color\n return new Token(match[0], null, pos + match[0].length);\n } else {\n throw new ParseError(\"Invalid color\", this, pos);\n }\n};\n\n// A regex to match a dimension. Dimensions look like\n// \"1.2em\" or \".4pt\" or \"1 ex\"\nvar sizeRegex = /(-?)\\s*(\\d+(?:\\.\\d*)?|\\.\\d+)\\s*([a-z]{2})/;\n\n/**\n * This function lexes a dimension.\n */\nLexer.prototype._innerLexSize = function(pos) {\n var input = this._input;\n\n // Ignore whitespace\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n var match;\n if ((match = matchAt(sizeRegex, input, pos))) {\n var unit = match[3];\n // We only currently handle \"em\" and \"ex\" units\n if (unit !== \"em\" && unit !== \"ex\") {\n throw new ParseError(\"Invalid unit: '\" + unit + \"'\", this, pos);\n }\n return new Token(match[0], {\n number: +(match[1] + match[2]),\n unit: unit,\n }, pos + match[0].length);\n }\n\n throw new ParseError(\"Invalid size\", this, pos);\n};\n\n/**\n * This function lexes a string of whitespace.\n */\nLexer.prototype._innerLexWhitespace = function(pos) {\n var input = this._input;\n\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n return new Token(whitespace[0], null, pos);\n};\n\n/**\n * This function lexes a single token starting at `pos` and of the given mode.\n * Based on the mode, we defer to one of the `_innerLex` functions.\n */\nLexer.prototype.lex = function(pos, mode) {\n if (mode === \"math\") {\n return this._innerLex(pos, true);\n } else if (mode === \"text\") {\n return this._innerLex(pos, false);\n } else if (mode === \"color\") {\n return this._innerLexColor(pos);\n } else if (mode === \"size\") {\n return this._innerLexSize(pos);\n } else if (mode === \"whitespace\") {\n return this._innerLexWhitespace(pos);\n }\n};\n\nmodule.exports = Lexer;\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/Lexer.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/Options.js":
+/*!*******************************************!*\
+ !*** ./node_modules/katex/src/Options.js ***!
+ \*******************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\n\n/**\n * This is the main options class. It contains the style, size, color, and font\n * of the current parse level. It also contains the style and size of the parent\n * parse level, so size changes can be handled efficiently.\n *\n * Each of the `.with*` and `.reset` functions passes its current style and size\n * as the parentStyle and parentSize of the new options class, so parent\n * handling is taken care of automatically.\n */\nfunction Options(data) {\n this.style = data.style;\n this.color = data.color;\n this.size = data.size;\n this.phantom = data.phantom;\n this.font = data.font;\n\n if (data.parentStyle === undefined) {\n this.parentStyle = data.style;\n } else {\n this.parentStyle = data.parentStyle;\n }\n\n if (data.parentSize === undefined) {\n this.parentSize = data.size;\n } else {\n this.parentSize = data.parentSize;\n }\n}\n\n/**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\nOptions.prototype.extend = function(extension) {\n var data = {\n style: this.style,\n size: this.size,\n color: this.color,\n parentStyle: this.style,\n parentSize: this.size,\n phantom: this.phantom,\n font: this.font,\n };\n\n for (var key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n};\n\n/**\n * Create a new options object with the given style.\n */\nOptions.prototype.withStyle = function(style) {\n return this.extend({\n style: style,\n });\n};\n\n/**\n * Create a new options object with the given size.\n */\nOptions.prototype.withSize = function(size) {\n return this.extend({\n size: size,\n });\n};\n\n/**\n * Create a new options object with the given color.\n */\nOptions.prototype.withColor = function(color) {\n return this.extend({\n color: color,\n });\n};\n\n/**\n * Create a new options object with \"phantom\" set to true.\n */\nOptions.prototype.withPhantom = function() {\n return this.extend({\n phantom: true,\n });\n};\n\n/**\n * Create a new options objects with the give font.\n */\nOptions.prototype.withFont = function(font) {\n return this.extend({\n font: font,\n });\n};\n\n/**\n * Create a new options object with the same style, size, and color. This is\n * used so that parent style and size changes are handled correctly.\n */\nOptions.prototype.reset = function() {\n return this.extend({});\n};\n\n/**\n * A map of color names to CSS colors.\n * TODO(emily): Remove this when we have real macros\n */\nvar colorMap = {\n \"katex-blue\": \"#6495ed\",\n \"katex-orange\": \"#ffa500\",\n \"katex-pink\": \"#ff00af\",\n \"katex-red\": \"#df0030\",\n \"katex-green\": \"#28ae7b\",\n \"katex-gray\": \"gray\",\n \"katex-purple\": \"#9d38bd\",\n \"katex-blueA\": \"#c7e9f1\",\n \"katex-blueB\": \"#9cdceb\",\n \"katex-blueC\": \"#58c4dd\",\n \"katex-blueD\": \"#29abca\",\n \"katex-blueE\": \"#1c758a\",\n \"katex-tealA\": \"#acead7\",\n \"katex-tealB\": \"#76ddc0\",\n \"katex-tealC\": \"#5cd0b3\",\n \"katex-tealD\": \"#55c1a7\",\n \"katex-tealE\": \"#49a88f\",\n \"katex-greenA\": \"#c9e2ae\",\n \"katex-greenB\": \"#a6cf8c\",\n \"katex-greenC\": \"#83c167\",\n \"katex-greenD\": \"#77b05d\",\n \"katex-greenE\": \"#699c52\",\n \"katex-goldA\": \"#f7c797\",\n \"katex-goldB\": \"#f9b775\",\n \"katex-goldC\": \"#f0ac5f\",\n \"katex-goldD\": \"#e1a158\",\n \"katex-goldE\": \"#c78d46\",\n \"katex-redA\": \"#f7a1a3\",\n \"katex-redB\": \"#ff8080\",\n \"katex-redC\": \"#fc6255\",\n \"katex-redD\": \"#e65a4c\",\n \"katex-redE\": \"#cf5044\",\n \"katex-maroonA\": \"#ecabc1\",\n \"katex-maroonB\": \"#ec92ab\",\n \"katex-maroonC\": \"#c55f73\",\n \"katex-maroonD\": \"#a24d61\",\n \"katex-maroonE\": \"#94424f\",\n \"katex-purpleA\": \"#caa3e8\",\n \"katex-purpleB\": \"#b189c6\",\n \"katex-purpleC\": \"#9a72ac\",\n \"katex-purpleD\": \"#715582\",\n \"katex-purpleE\": \"#644172\",\n \"katex-mintA\": \"#f5f9e8\",\n \"katex-mintB\": \"#edf2df\",\n \"katex-mintC\": \"#e0e5cc\",\n \"katex-grayA\": \"#fdfdfd\",\n \"katex-grayB\": \"#f7f7f7\",\n \"katex-grayC\": \"#eeeeee\",\n \"katex-grayD\": \"#dddddd\",\n \"katex-grayE\": \"#cccccc\",\n \"katex-grayF\": \"#aaaaaa\",\n \"katex-grayG\": \"#999999\",\n \"katex-grayH\": \"#555555\",\n \"katex-grayI\": \"#333333\",\n \"katex-kaBlue\": \"#314453\",\n \"katex-kaGreen\": \"#639b24\",\n};\n\n/**\n * Gets the CSS color of the current options object, accounting for the\n * `colorMap`.\n */\nOptions.prototype.getColor = function() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return colorMap[this.color] || this.color;\n }\n};\n\nmodule.exports = Options;\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/Options.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/ParseError.js":
+/*!**********************************************!*\
+ !*** ./node_modules/katex/src/ParseError.js ***!
+ \**********************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n */\nfunction ParseError(message, lexer, position) {\n var error = \"KaTeX parse error: \" + message;\n\n if (lexer !== undefined && position !== undefined) {\n // If we have the input and a position, make the error a bit fancier\n\n // Prepend some information\n error += \" at position \" + position + \": \";\n\n // Get the input\n var input = lexer._input;\n // Insert a combining underscore at the correct position\n input = input.slice(0, position) + \"\\u0332\" +\n input.slice(position);\n\n // Extract some context from the input and add it to the error\n var begin = Math.max(0, position - 15);\n var end = position + 15;\n error += input.slice(begin, end);\n }\n\n // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n var self = new Error(error);\n self.name = \"ParseError\";\n self.__proto__ = ParseError.prototype;\n\n self.position = position;\n return self;\n}\n\n// More hackery\nParseError.prototype.__proto__ = Error.prototype;\n\nmodule.exports = ParseError;\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/ParseError.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/Parser.js":
+/*!******************************************!*\
+ !*** ./node_modules/katex/src/Parser.js ***!
+ \******************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/* eslint no-constant-condition:0 */\nvar functions = __webpack_require__(/*! ./functions */ \"./node_modules/katex/src/functions.js\");\nvar environments = __webpack_require__(/*! ./environments */ \"./node_modules/katex/src/environments.js\");\nvar Lexer = __webpack_require__(/*! ./Lexer */ \"./node_modules/katex/src/Lexer.js\");\nvar symbols = __webpack_require__(/*! ./symbols */ \"./node_modules/katex/src/symbols.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/katex/src/utils.js\");\n\nvar parseData = __webpack_require__(/*! ./parseData */ \"./node_modules/katex/src/parseData.js\");\nvar ParseError = __webpack_require__(/*! ./ParseError */ \"./node_modules/katex/src/ParseError.js\");\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The earlier functions return ParseNodes.\n * The later functions (which are called deeper in the parse) sometimes return\n * ParseFuncOrArgument, which contain a ParseNode as well as some data about\n * whether the parsed object is a function which is missing some arguments, or a\n * standalone object which can be used as an argument to another function.\n */\n\n/**\n * Main Parser class\n */\nfunction Parser(input, settings) {\n // Make a new lexer\n this.lexer = new Lexer(input);\n // Store the settings for use in parsing\n this.settings = settings;\n}\n\nvar ParseNode = parseData.ParseNode;\n\n/**\n * An initial function (without its arguments), or an argument to a function.\n * The `result` argument should be a ParseNode.\n */\nfunction ParseFuncOrArgument(result, isFunction) {\n this.result = result;\n // Is this a function (i.e. is it something defined in functions.js)?\n this.isFunction = isFunction;\n}\n\n/**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n *\n * @param {boolean=} consume whether to consume the expected token,\n * defaults to true\n */\nParser.prototype.expect = function(text, consume) {\n if (this.nextToken.text !== text) {\n throw new ParseError(\n \"Expected '\" + text + \"', got '\" + this.nextToken.text + \"'\",\n this.lexer, this.nextToken.position\n );\n }\n if (consume !== false) {\n this.consume();\n }\n};\n\n/**\n * Considers the current look ahead token as consumed,\n * and fetches the one after that as the new look ahead.\n */\nParser.prototype.consume = function() {\n this.pos = this.nextToken.position;\n this.nextToken = this.lexer.lex(this.pos, this.mode);\n};\n\n/**\n * Main parsing function, which parses an entire input.\n *\n * @return {?Array.}\n */\nParser.prototype.parse = function() {\n // Try to parse the input\n this.mode = \"math\";\n this.pos = 0;\n this.nextToken = this.lexer.lex(this.pos, this.mode);\n var parse = this.parseInput();\n return parse;\n};\n\n/**\n * Parses an entire input tree.\n */\nParser.prototype.parseInput = function() {\n // Parse an expression\n var expression = this.parseExpression(false);\n // If we succeeded, make sure there's an EOF at the end\n this.expect(\"EOF\", false);\n return expression;\n};\n\nvar endOfExpression = [\"}\", \"\\\\end\", \"\\\\right\", \"&\", \"\\\\\\\\\", \"\\\\cr\"];\n\n/**\n * Parses an \"expression\", which is a list of atoms.\n *\n * @param {boolean} breakOnInfix Should the parsing stop when we hit infix\n * nodes? This happens when functions have higher precendence\n * than infix nodes in implicit parses.\n *\n * @param {?string} breakOnToken The token that the expression should end with,\n * or `null` if something else should end the expression.\n *\n * @return {ParseNode}\n */\nParser.prototype.parseExpression = function(breakOnInfix, breakOnToken) {\n var body = [];\n // Keep adding atoms to the body until we can't parse any more atoms (either\n // we reached the end, a }, or a \\right)\n while (true) {\n var lex = this.nextToken;\n var pos = this.pos;\n if (endOfExpression.indexOf(lex.text) !== -1) {\n break;\n }\n if (breakOnToken && lex.text === breakOnToken) {\n break;\n }\n var atom = this.parseAtom();\n if (!atom) {\n if (!this.settings.throwOnError && lex.text[0] === \"\\\\\") {\n var errorNode = this.handleUnsupportedCmd();\n body.push(errorNode);\n\n pos = lex.position;\n continue;\n }\n\n break;\n }\n if (breakOnInfix && atom.type === \"infix\") {\n // rewind so we can parse the infix atom again\n this.pos = pos;\n this.nextToken = lex;\n break;\n }\n body.push(atom);\n }\n return this.handleInfixNodes(body);\n};\n\n/**\n * Rewrites infix operators such as \\over with corresponding commands such\n * as \\frac.\n *\n * There can only be one infix operator per group. If there's more than one\n * then the expression is ambiguous. This can be resolved by adding {}.\n *\n * @returns {Array}\n */\nParser.prototype.handleInfixNodes = function(body) {\n var overIndex = -1;\n var funcName;\n\n for (var i = 0; i < body.length; i++) {\n var node = body[i];\n if (node.type === \"infix\") {\n if (overIndex !== -1) {\n throw new ParseError(\"only one infix operator per group\",\n this.lexer, -1);\n }\n overIndex = i;\n funcName = node.value.replaceWith;\n }\n }\n\n if (overIndex !== -1) {\n var numerNode;\n var denomNode;\n\n var numerBody = body.slice(0, overIndex);\n var denomBody = body.slice(overIndex + 1);\n\n if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n numerNode = numerBody[0];\n } else {\n numerNode = new ParseNode(\"ordgroup\", numerBody, this.mode);\n }\n\n if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n denomNode = denomBody[0];\n } else {\n denomNode = new ParseNode(\"ordgroup\", denomBody, this.mode);\n }\n\n var value = this.callFunction(\n funcName, [numerNode, denomNode], null);\n return [new ParseNode(value.type, value, this.mode)];\n } else {\n return body;\n }\n};\n\n// The greediness of a superscript or subscript\nvar SUPSUB_GREEDINESS = 1;\n\n/**\n * Handle a subscript or superscript with nice errors.\n */\nParser.prototype.handleSupSubscript = function(name) {\n var symbol = this.nextToken.text;\n var symPos = this.pos;\n this.consume();\n var group = this.parseGroup();\n\n if (!group) {\n if (!this.settings.throwOnError && this.nextToken.text[0] === \"\\\\\") {\n return this.handleUnsupportedCmd();\n } else {\n throw new ParseError(\n \"Expected group after '\" + symbol + \"'\",\n this.lexer,\n symPos + 1\n );\n }\n } else if (group.isFunction) {\n // ^ and _ have a greediness, so handle interactions with functions'\n // greediness\n var funcGreediness = functions[group.result].greediness;\n if (funcGreediness > SUPSUB_GREEDINESS) {\n return this.parseFunction(group);\n } else {\n throw new ParseError(\n \"Got function '\" + group.result + \"' with no arguments \" +\n \"as \" + name,\n this.lexer, symPos + 1);\n }\n } else {\n return group.result;\n }\n};\n\n/**\n * Converts the textual input of an unsupported command into a text node\n * contained within a color node whose color is determined by errorColor\n */\nParser.prototype.handleUnsupportedCmd = function() {\n var text = this.nextToken.text;\n var textordArray = [];\n\n for (var i = 0; i < text.length; i++) {\n textordArray.push(new ParseNode(\"textord\", text[i], \"text\"));\n }\n\n var textNode = new ParseNode(\n \"text\",\n {\n body: textordArray,\n type: \"text\",\n },\n this.mode);\n\n var colorNode = new ParseNode(\n \"color\",\n {\n color: this.settings.errorColor,\n value: [textNode],\n type: \"color\",\n },\n this.mode);\n\n this.consume();\n return colorNode;\n};\n\n/**\n * Parses a group with optional super/subscripts.\n *\n * @return {?ParseNode}\n */\nParser.prototype.parseAtom = function() {\n // The body of an atom is an implicit group, so that things like\n // \\left(x\\right)^2 work correctly.\n var base = this.parseImplicitGroup();\n\n // In text mode, we don't have superscripts or subscripts\n if (this.mode === \"text\") {\n return base;\n }\n\n // Note that base may be empty (i.e. null) at this point.\n\n var superscript;\n var subscript;\n while (true) {\n // Lex the first token\n var lex = this.nextToken;\n\n if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n // We got a limit control\n if (!base || base.type !== \"op\") {\n throw new ParseError(\n \"Limit controls must follow a math operator\",\n this.lexer, this.pos);\n } else {\n var limits = lex.text === \"\\\\limits\";\n base.value.limits = limits;\n base.value.alwaysHandleSupSub = true;\n }\n this.consume();\n } else if (lex.text === \"^\") {\n // We got a superscript start\n if (superscript) {\n throw new ParseError(\n \"Double superscript\", this.lexer, this.pos);\n }\n superscript = this.handleSupSubscript(\"superscript\");\n } else if (lex.text === \"_\") {\n // We got a subscript start\n if (subscript) {\n throw new ParseError(\n \"Double subscript\", this.lexer, this.pos);\n }\n subscript = this.handleSupSubscript(\"subscript\");\n } else if (lex.text === \"'\") {\n // We got a prime\n var prime = new ParseNode(\"textord\", \"\\\\prime\", this.mode);\n\n // Many primes can be grouped together, so we handle this here\n var primes = [prime];\n this.consume();\n // Keep lexing tokens until we get something that's not a prime\n while (this.nextToken.text === \"'\") {\n // For each one, add another prime to the list\n primes.push(prime);\n this.consume();\n }\n // Put them into an ordgroup as the superscript\n superscript = new ParseNode(\"ordgroup\", primes, this.mode);\n } else {\n // If it wasn't ^, _, or ', stop parsing super/subscripts\n break;\n }\n }\n\n if (superscript || subscript) {\n // If we got either a superscript or subscript, create a supsub\n return new ParseNode(\"supsub\", {\n base: base,\n sup: superscript,\n sub: subscript,\n }, this.mode);\n } else {\n // Otherwise return the original body\n return base;\n }\n};\n\n// A list of the size-changing functions, for use in parseImplicitGroup\nvar sizeFuncs = [\n \"\\\\tiny\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\",\n \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\",\n];\n\n// A list of the style-changing functions, for use in parseImplicitGroup\nvar styleFuncs = [\n \"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\",\n];\n\n/**\n * Parses an implicit group, which is a group that starts at the end of a\n * specified, and ends right before a higher explicit group ends, or at EOL. It\n * is used for functions that appear to affect the current style, like \\Large or\n * \\textrm, where instead of keeping a style we just pretend that there is an\n * implicit grouping after it until the end of the group. E.g.\n * small text {\\Large large text} small text again\n * It is also used for \\left and \\right to get the correct grouping.\n *\n * @return {?ParseNode}\n */\nParser.prototype.parseImplicitGroup = function() {\n var start = this.parseSymbol();\n\n if (start == null) {\n // If we didn't get anything we handle, fall back to parseFunction\n return this.parseFunction();\n }\n\n var func = start.result;\n var body;\n\n if (func === \"\\\\left\") {\n // If we see a left:\n // Parse the entire left function (including the delimiter)\n var left = this.parseFunction(start);\n // Parse out the implicit body\n body = this.parseExpression(false);\n // Check the next token\n this.expect(\"\\\\right\", false);\n var right = this.parseFunction();\n return new ParseNode(\"leftright\", {\n body: body,\n left: left.value.value,\n right: right.value.value,\n }, this.mode);\n } else if (func === \"\\\\begin\") {\n // begin...end is similar to left...right\n var begin = this.parseFunction(start);\n var envName = begin.value.name;\n if (!environments.hasOwnProperty(envName)) {\n throw new ParseError(\n \"No such environment: \" + envName,\n this.lexer, begin.value.namepos);\n }\n // Build the environment object. Arguments and other information will\n // be made available to the begin and end methods using properties.\n var env = environments[envName];\n var args = this.parseArguments(\"\\\\begin{\" + envName + \"}\", env);\n var context = {\n mode: this.mode,\n envName: envName,\n parser: this,\n lexer: this.lexer,\n positions: args.pop(),\n };\n var result = env.handler(context, args);\n this.expect(\"\\\\end\", false);\n var end = this.parseFunction();\n if (end.value.name !== envName) {\n throw new ParseError(\n \"Mismatch: \\\\begin{\" + envName + \"} matched \" +\n \"by \\\\end{\" + end.value.name + \"}\",\n this.lexer /* , end.value.namepos */);\n // TODO: Add position to the above line and adjust test case,\n // requires #385 to get merged first\n }\n result.position = end.position;\n return result;\n } else if (utils.contains(sizeFuncs, func)) {\n // If we see a sizing function, parse out the implict body\n body = this.parseExpression(false);\n return new ParseNode(\"sizing\", {\n // Figure out what size to use based on the list of functions above\n size: \"size\" + (utils.indexOf(sizeFuncs, func) + 1),\n value: body,\n }, this.mode);\n } else if (utils.contains(styleFuncs, func)) {\n // If we see a styling function, parse out the implict body\n body = this.parseExpression(true);\n return new ParseNode(\"styling\", {\n // Figure out what style to use by pulling out the style from\n // the function name\n style: func.slice(1, func.length - 5),\n value: body,\n }, this.mode);\n } else {\n // Defer to parseFunction if it's not a function we handle\n return this.parseFunction(start);\n }\n};\n\n/**\n * Parses an entire function, including its base and all of its arguments.\n * The base might either have been parsed already, in which case\n * it is provided as an argument, or it's the next group in the input.\n *\n * @param {ParseFuncOrArgument=} baseGroup optional as described above\n * @return {?ParseNode}\n */\nParser.prototype.parseFunction = function(baseGroup) {\n if (!baseGroup) {\n baseGroup = this.parseGroup();\n }\n\n if (baseGroup) {\n if (baseGroup.isFunction) {\n var func = baseGroup.result;\n var funcData = functions[func];\n if (this.mode === \"text\" && !funcData.allowedInText) {\n throw new ParseError(\n \"Can't use function '\" + func + \"' in text mode\",\n this.lexer, baseGroup.position);\n }\n\n var args = this.parseArguments(func, funcData);\n var result = this.callFunction(func, args, args.pop());\n return new ParseNode(result.type, result, this.mode);\n } else {\n return baseGroup.result;\n }\n } else {\n return null;\n }\n};\n\n/**\n * Call a function handler with a suitable context and arguments.\n */\nParser.prototype.callFunction = function(name, args, positions) {\n var context = {\n funcName: name,\n parser: this,\n lexer: this.lexer,\n positions: positions,\n };\n return functions[name].handler(context, args);\n};\n\n/**\n * Parses the arguments of a function or environment\n *\n * @param {string} func \"\\name\" or \"\\begin{name}\"\n * @param {{numArgs:number,numOptionalArgs:number|undefined}} funcData\n * @return the array of arguments, with the list of positions as last element\n */\nParser.prototype.parseArguments = function(func, funcData) {\n var totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n if (totalArgs === 0) {\n return [[this.pos]];\n }\n\n var baseGreediness = funcData.greediness;\n var positions = [this.pos];\n var args = [];\n\n for (var i = 0; i < totalArgs; i++) {\n var argType = funcData.argTypes && funcData.argTypes[i];\n var arg;\n if (i < funcData.numOptionalArgs) {\n if (argType) {\n arg = this.parseSpecialGroup(argType, true);\n } else {\n arg = this.parseOptionalGroup();\n }\n if (!arg) {\n args.push(null);\n positions.push(this.pos);\n continue;\n }\n } else {\n if (argType) {\n arg = this.parseSpecialGroup(argType);\n } else {\n arg = this.parseGroup();\n }\n if (!arg) {\n if (!this.settings.throwOnError &&\n this.nextToken.text[0] === \"\\\\\") {\n arg = new ParseFuncOrArgument(\n this.handleUnsupportedCmd(this.nextToken.text),\n false);\n } else {\n throw new ParseError(\n \"Expected group after '\" + func + \"'\",\n this.lexer, this.pos);\n }\n }\n }\n var argNode;\n if (arg.isFunction) {\n var argGreediness =\n functions[arg.result].greediness;\n if (argGreediness > baseGreediness) {\n argNode = this.parseFunction(arg);\n } else {\n throw new ParseError(\n \"Got function '\" + arg.result + \"' as \" +\n \"argument to '\" + func + \"'\",\n this.lexer, this.pos - 1);\n }\n } else {\n argNode = arg.result;\n }\n args.push(argNode);\n positions.push(this.pos);\n }\n\n args.push(positions);\n\n return args;\n};\n\n\n/**\n * Parses a group when the mode is changing. Takes a position, a new mode, and\n * an outer mode that is used to parse the outside.\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseSpecialGroup = function(innerMode, optional) {\n var outerMode = this.mode;\n // Handle `original` argTypes\n if (innerMode === \"original\") {\n innerMode = outerMode;\n }\n\n if (innerMode === \"color\" || innerMode === \"size\") {\n // color and size modes are special because they should have braces and\n // should only lex a single symbol inside\n var openBrace = this.nextToken;\n if (optional && openBrace.text !== \"[\") {\n // optional arguments should return null if they don't exist\n return null;\n }\n // The call to expect will lex the token after the '{' in inner mode\n this.mode = innerMode;\n this.expect(optional ? \"[\" : \"{\");\n var inner = this.nextToken;\n this.mode = outerMode;\n var data;\n if (innerMode === \"color\") {\n data = inner.text;\n } else {\n data = inner.data;\n }\n this.consume(); // consume the token stored in inner\n this.expect(optional ? \"]\" : \"}\");\n return new ParseFuncOrArgument(\n new ParseNode(innerMode, data, outerMode),\n false);\n } else if (innerMode === \"text\") {\n // text mode is special because it should ignore the whitespace before\n // it\n var whitespace = this.lexer.lex(this.pos, \"whitespace\");\n this.pos = whitespace.position;\n }\n\n // By the time we get here, innerMode is one of \"text\" or \"math\".\n // We switch the mode of the parser, recurse, then restore the old mode.\n this.mode = innerMode;\n this.nextToken = this.lexer.lex(this.pos, innerMode);\n var res;\n if (optional) {\n res = this.parseOptionalGroup();\n } else {\n res = this.parseGroup();\n }\n this.mode = outerMode;\n this.nextToken = this.lexer.lex(this.pos, outerMode);\n return res;\n};\n\n/**\n * Parses a group, which is either a single nucleus (like \"x\") or an expression\n * in braces (like \"{x+y}\")\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseGroup = function() {\n // Try to parse an open brace\n if (this.nextToken.text === \"{\") {\n // If we get a brace, parse an expression\n this.consume();\n var expression = this.parseExpression(false);\n // Make sure we get a close brace\n this.expect(\"}\");\n return new ParseFuncOrArgument(\n new ParseNode(\"ordgroup\", expression, this.mode),\n false);\n } else {\n // Otherwise, just return a nucleus\n return this.parseSymbol();\n }\n};\n\n/**\n * Parses a group, which is an expression in brackets (like \"[x+y]\")\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseOptionalGroup = function() {\n // Try to parse an open bracket\n if (this.nextToken.text === \"[\") {\n // If we get a brace, parse an expression\n this.consume();\n var expression = this.parseExpression(false, \"]\");\n // Make sure we get a close bracket\n this.expect(\"]\");\n return new ParseFuncOrArgument(\n new ParseNode(\"ordgroup\", expression, this.mode),\n false);\n } else {\n // Otherwise, return null,\n return null;\n }\n};\n\n/**\n * Parse a single symbol out of the string. Here, we handle both the functions\n * we have defined, as well as the single character symbols\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseSymbol = function() {\n var nucleus = this.nextToken;\n\n if (functions[nucleus.text]) {\n this.consume();\n // If there exists a function with this name, we return the function and\n // say that it is a function.\n return new ParseFuncOrArgument(\n nucleus.text,\n true);\n } else if (symbols[this.mode][nucleus.text]) {\n this.consume();\n // Otherwise if this is a no-argument function, find the type it\n // corresponds to in the symbols map\n return new ParseFuncOrArgument(\n new ParseNode(symbols[this.mode][nucleus.text].group,\n nucleus.text, this.mode),\n false);\n } else {\n return null;\n }\n};\n\nParser.prototype.ParseNode = ParseNode;\n\nmodule.exports = Parser;\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/Parser.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/Settings.js":
+/*!********************************************!*\
+ !*** ./node_modules/katex/src/Settings.js ***!
+ \********************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("/**\n * This is a module for storing settings passed into KaTeX. It correctly handles\n * default settings.\n */\n\n/**\n * Helper function for getting a default value if the value is undefined\n */\nfunction get(option, defaultValue) {\n return option === undefined ? defaultValue : option;\n}\n\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset by default in\n * textstyle or displaystyle (default false)\n */\nfunction Settings(options) {\n // allow null options\n options = options || {};\n this.displayMode = get(options.displayMode, false);\n this.throwOnError = get(options.throwOnError, true);\n this.errorColor = get(options.errorColor, \"#cc0000\");\n}\n\nmodule.exports = Settings;\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/Settings.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/Style.js":
+/*!*****************************************!*\
+ !*** ./node_modules/katex/src/Style.js ***!
+ \*****************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), a cramped flag, and a\n * size multiplier, which gives the size difference between a style and\n * textstyle.\n */\nfunction Style(id, size, multiplier, cramped) {\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n this.sizeMultiplier = multiplier;\n}\n\n/**\n * Get the style of a superscript given a base in the current style.\n */\nStyle.prototype.sup = function() {\n return styles[sup[this.id]];\n};\n\n/**\n * Get the style of a subscript given a base in the current style.\n */\nStyle.prototype.sub = function() {\n return styles[sub[this.id]];\n};\n\n/**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\nStyle.prototype.fracNum = function() {\n return styles[fracNum[this.id]];\n};\n\n/**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\nStyle.prototype.fracDen = function() {\n return styles[fracDen[this.id]];\n};\n\n/**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\nStyle.prototype.cramp = function() {\n return styles[cramp[this.id]];\n};\n\n/**\n * HTML class name, like \"displaystyle cramped\"\n */\nStyle.prototype.cls = function() {\n return sizeNames[this.size] + (this.cramped ? \" cramped\" : \" uncramped\");\n};\n\n/**\n * HTML Reset class name, like \"reset-textstyle\"\n */\nStyle.prototype.reset = function() {\n return resetNames[this.size];\n};\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7;\n\n// String names for the different sizes\nvar sizeNames = [\n \"displaystyle textstyle\",\n \"textstyle\",\n \"scriptstyle\",\n \"scriptscriptstyle\",\n];\n\n// Reset names for the different sizes\nvar resetNames = [\n \"reset-textstyle\",\n \"reset-textstyle\",\n \"reset-scriptstyle\",\n \"reset-scriptscriptstyle\",\n];\n\n// Instances of the different styles\nvar styles = [\n new Style(D, 0, 1.0, false),\n new Style(Dc, 0, 1.0, true),\n new Style(T, 1, 1.0, false),\n new Style(Tc, 1, 1.0, true),\n new Style(S, 2, 0.7, false),\n new Style(Sc, 2, 0.7, true),\n new Style(SS, 3, 0.5, false),\n new Style(SSc, 3, 0.5, true),\n];\n\n// Lookup tables for switching from one style to another\nvar sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\n\n// We only export some of the styles. Also, we don't export the `Style` class so\n// no more styles can be generated.\nmodule.exports = {\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS],\n};\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/Style.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/buildCommon.js":
+/*!***********************************************!*\
+ !*** ./node_modules/katex/src/buildCommon.js ***!
+ \***********************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/* eslint no-console:0 */\n/**\n * This module contains general functions that can be used for building\n * different kinds of domTree nodes in a consistent manner.\n */\n\nvar domTree = __webpack_require__(/*! ./domTree */ \"./node_modules/katex/src/domTree.js\");\nvar fontMetrics = __webpack_require__(/*! ./fontMetrics */ \"./node_modules/katex/src/fontMetrics.js\");\nvar symbols = __webpack_require__(/*! ./symbols */ \"./node_modules/katex/src/symbols.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/katex/src/utils.js\");\n\nvar greekCapitals = [\n \"\\\\Gamma\",\n \"\\\\Delta\",\n \"\\\\Theta\",\n \"\\\\Lambda\",\n \"\\\\Xi\",\n \"\\\\Pi\",\n \"\\\\Sigma\",\n \"\\\\Upsilon\",\n \"\\\\Phi\",\n \"\\\\Psi\",\n \"\\\\Omega\",\n];\n\nvar dotlessLetters = [\n \"\\u0131\", // dotless i, \\imath\n \"\\u0237\", // dotless j, \\jmath\n];\n\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n */\nvar makeSymbol = function(value, style, mode, color, classes) {\n // Replace the value with its replaced value from symbol.js\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var metrics = fontMetrics.getCharacterMetrics(value, style);\n\n var symbolNode;\n if (metrics) {\n symbolNode = new domTree.symbolNode(\n value, metrics.height, metrics.depth, metrics.italic, metrics.skew,\n classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\n \"No character metrics for '\" + value + \"' in style '\" +\n style + \"'\");\n symbolNode = new domTree.symbolNode(value, 0, 0, 0, 0, classes);\n }\n\n if (color) {\n symbolNode.style.color = color;\n }\n\n return symbolNode;\n};\n\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\nvar mathsym = function(value, mode, color, classes) {\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text\n if (value === \"\\\\\" || symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, color, classes);\n } else {\n return makeSymbol(\n value, \"AMS-Regular\", mode, color, classes.concat([\"amsrm\"]));\n }\n};\n\n/**\n * Makes a symbol in the default font for mathords and textords.\n */\nvar mathDefault = function(value, mode, color, classes, type) {\n if (type === \"mathord\") {\n return mathit(value, mode, color, classes);\n } else if (type === \"textord\") {\n return makeSymbol(\n value, \"Main-Regular\", mode, color, classes.concat([\"mathrm\"]));\n } else {\n throw new Error(\"unexpected type: \" + type + \" in mathDefault\");\n }\n};\n\n/**\n * Makes a symbol in the italic math font.\n */\nvar mathit = function(value, mode, color, classes) {\n if (/[0-9]/.test(value.charAt(0)) ||\n // glyphs for \\imath and \\jmath do not exist in Math-Italic so we\n // need to use Main-Italic instead\n utils.contains(dotlessLetters, value) ||\n utils.contains(greekCapitals, value)) {\n return makeSymbol(\n value, \"Main-Italic\", mode, color, classes.concat([\"mainit\"]));\n } else {\n return makeSymbol(\n value, \"Math-Italic\", mode, color, classes.concat([\"mathit\"]));\n }\n};\n\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\nvar makeOrd = function(group, options, type) {\n var mode = group.mode;\n var value = group.value;\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var classes = [\"mord\"];\n var color = options.getColor();\n\n var font = options.font;\n if (font) {\n if (font === \"mathit\" || utils.contains(dotlessLetters, value)) {\n return mathit(value, mode, color, classes);\n } else {\n var fontName = fontMap[font].fontName;\n if (fontMetrics.getCharacterMetrics(value, fontName)) {\n return makeSymbol(\n value, fontName, mode, color, classes.concat([font]));\n } else {\n return mathDefault(value, mode, color, classes, type);\n }\n }\n } else {\n return mathDefault(value, mode, color, classes, type);\n }\n};\n\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\nvar sizeElementFromChildren = function(elem) {\n var height = 0;\n var depth = 0;\n var maxFontSize = 0;\n\n if (elem.children) {\n for (var i = 0; i < elem.children.length; i++) {\n if (elem.children[i].height > height) {\n height = elem.children[i].height;\n }\n if (elem.children[i].depth > depth) {\n depth = elem.children[i].depth;\n }\n if (elem.children[i].maxFontSize > maxFontSize) {\n maxFontSize = elem.children[i].maxFontSize;\n }\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n\n/**\n * Makes a span with the given list of classes, list of children, and color.\n */\nvar makeSpan = function(classes, children, color) {\n var span = new domTree.span(classes, children);\n\n sizeElementFromChildren(span);\n\n if (color) {\n span.style.color = color;\n }\n\n return span;\n};\n\n/**\n * Makes a document fragment with the given list of children.\n */\nvar makeFragment = function(children) {\n var fragment = new domTree.documentFragment(children);\n\n sizeElementFromChildren(fragment);\n\n return fragment;\n};\n\n/**\n * Makes an element placed in each of the vlist elements to ensure that each\n * element has the same max font size. To do this, we create a zero-width space\n * with the correct font size.\n */\nvar makeFontSizer = function(options, fontSize) {\n var fontSizeInner = makeSpan([], [new domTree.symbolNode(\"\\u200b\")]);\n fontSizeInner.style.fontSize =\n (fontSize / options.style.sizeMultiplier) + \"em\";\n\n var fontSizer = makeSpan(\n [\"fontsize-ensurer\", \"reset-\" + options.size, \"size5\"],\n [fontSizeInner]);\n\n return fontSizer;\n};\n\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * Arguments:\n * - children: A list of child or kern nodes to be stacked on top of each other\n * (i.e. the first element will be at the bottom, and the last at\n * the top). Element nodes are specified as\n * {type: \"elem\", elem: node}\n * while kern nodes are specified as\n * {type: \"kern\", size: size}\n * - positionType: The method by which the vlist should be positioned. Valid\n * values are:\n * - \"individualShift\": The children list only contains elem\n * nodes, and each node contains an extra\n * \"shift\" value of how much it should be\n * shifted (note that shifting is always\n * moving downwards). positionData is\n * ignored.\n * - \"top\": The positionData specifies the topmost point of\n * the vlist (note this is expected to be a height,\n * so positive values move up)\n * - \"bottom\": The positionData specifies the bottommost point\n * of the vlist (note this is expected to be a\n * depth, so positive values move down\n * - \"shift\": The vlist will be positioned such that its\n * baseline is positionData away from the baseline\n * of the first child. Positive values move\n * downwards.\n * - \"firstBaseline\": The vlist will be positioned such that\n * its baseline is aligned with the\n * baseline of the first child.\n * positionData is ignored. (this is\n * equivalent to \"shift\" with\n * positionData=0)\n * - positionData: Data used in different ways depending on positionType\n * - options: An Options object\n *\n */\nvar makeVList = function(children, positionType, positionData, options) {\n var depth;\n var currPos;\n var i;\n if (positionType === \"individualShift\") {\n var oldChildren = children;\n children = [oldChildren[0]];\n\n // Add in kerns to the list of children to get each element to be\n // shifted to the correct specified shift\n depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n currPos = depth;\n for (i = 1; i < oldChildren.length; i++) {\n var diff = -oldChildren[i].shift - currPos -\n oldChildren[i].elem.depth;\n var size = diff -\n (oldChildren[i - 1].elem.height +\n oldChildren[i - 1].elem.depth);\n\n currPos = currPos + diff;\n\n children.push({type: \"kern\", size: size});\n children.push(oldChildren[i]);\n }\n } else if (positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n var bottom = positionData;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"kern\") {\n bottom -= children[i].size;\n } else {\n bottom -= children[i].elem.height + children[i].elem.depth;\n }\n }\n depth = bottom;\n } else if (positionType === \"bottom\") {\n depth = -positionData;\n } else if (positionType === \"shift\") {\n depth = -children[0].elem.depth - positionData;\n } else if (positionType === \"firstBaseline\") {\n depth = -children[0].elem.depth;\n } else {\n depth = 0;\n }\n\n // Make the fontSizer\n var maxFontSize = 0;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"elem\") {\n maxFontSize = Math.max(maxFontSize, children[i].elem.maxFontSize);\n }\n }\n var fontSizer = makeFontSizer(options, maxFontSize);\n\n // Create a new list of actual children at the correct offsets\n var realChildren = [];\n currPos = depth;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"kern\") {\n currPos += children[i].size;\n } else {\n var child = children[i].elem;\n\n var shift = -child.depth - currPos;\n currPos += child.height + child.depth;\n\n var childWrap = makeSpan([], [fontSizer, child]);\n childWrap.height -= shift;\n childWrap.depth += shift;\n childWrap.style.top = shift + \"em\";\n\n realChildren.push(childWrap);\n }\n }\n\n // Add in an element at the end with no offset to fix the calculation of\n // baselines in some browsers (namely IE, sometimes safari)\n var baselineFix = makeSpan(\n [\"baseline-fix\"], [fontSizer, new domTree.symbolNode(\"\\u200b\")]);\n realChildren.push(baselineFix);\n\n var vlist = makeSpan([\"vlist\"], realChildren);\n // Fix the final height and depth, in case there were kerns at the ends\n // since the makeSpan calculation won't take that in to account.\n vlist.height = Math.max(currPos, vlist.height);\n vlist.depth = Math.max(-depth, vlist.depth);\n return vlist;\n};\n\n// A table of size -> font size for the different sizing functions\nvar sizingMultiplier = {\n size1: 0.5,\n size2: 0.7,\n size3: 0.8,\n size4: 0.9,\n size5: 1.0,\n size6: 1.2,\n size7: 1.44,\n size8: 1.73,\n size9: 2.07,\n size10: 2.49,\n};\n\n// A map of spacing functions to their attributes, like size and corresponding\n// CSS class\nvar spacingFunctions = {\n \"\\\\qquad\": {\n size: \"2em\",\n className: \"qquad\",\n },\n \"\\\\quad\": {\n size: \"1em\",\n className: \"quad\",\n },\n \"\\\\enspace\": {\n size: \"0.5em\",\n className: \"enspace\",\n },\n \"\\\\;\": {\n size: \"0.277778em\",\n className: \"thickspace\",\n },\n \"\\\\:\": {\n size: \"0.22222em\",\n className: \"mediumspace\",\n },\n \"\\\\,\": {\n size: \"0.16667em\",\n className: \"thinspace\",\n },\n \"\\\\!\": {\n size: \"-0.16667em\",\n className: \"negativethinspace\",\n },\n};\n\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\nvar fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\",\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\",\n },\n\n // \"mathit\" is missing because it requires the use of two fonts: Main-Italic\n // and Math-Italic. This is handled by a special case in makeOrd which ends\n // up calling mathit.\n\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\",\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\",\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\",\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\",\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\",\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\",\n },\n};\n\nmodule.exports = {\n fontMap: fontMap,\n makeSymbol: makeSymbol,\n mathsym: mathsym,\n makeSpan: makeSpan,\n makeFragment: makeFragment,\n makeVList: makeVList,\n makeOrd: makeOrd,\n sizingMultiplier: sizingMultiplier,\n spacingFunctions: spacingFunctions,\n};\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/buildCommon.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/buildHTML.js":
+/*!*********************************************!*\
+ !*** ./node_modules/katex/src/buildHTML.js ***!
+ \*********************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/* eslint no-console:0 */\n/**\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupTypes functions are\n * called, to produce a final HTML tree.\n */\n\nvar ParseError = __webpack_require__(/*! ./ParseError */ \"./node_modules/katex/src/ParseError.js\");\nvar Style = __webpack_require__(/*! ./Style */ \"./node_modules/katex/src/Style.js\");\n\nvar buildCommon = __webpack_require__(/*! ./buildCommon */ \"./node_modules/katex/src/buildCommon.js\");\nvar delimiter = __webpack_require__(/*! ./delimiter */ \"./node_modules/katex/src/delimiter.js\");\nvar domTree = __webpack_require__(/*! ./domTree */ \"./node_modules/katex/src/domTree.js\");\nvar fontMetrics = __webpack_require__(/*! ./fontMetrics */ \"./node_modules/katex/src/fontMetrics.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/katex/src/utils.js\");\n\nvar makeSpan = buildCommon.makeSpan;\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. This function handles the `prev` node correctly, and passes the\n * previous element from the list as the prev of the next element.\n */\nvar buildExpression = function(expression, options, prev) {\n var groups = [];\n for (var i = 0; i < expression.length; i++) {\n var group = expression[i];\n groups.push(buildGroup(group, options, prev));\n prev = group;\n }\n return groups;\n};\n\n// List of types used by getTypeOfGroup,\n// see https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types\nvar groupToType = {\n mathord: \"mord\",\n textord: \"mord\",\n bin: \"mbin\",\n rel: \"mrel\",\n text: \"mord\",\n open: \"mopen\",\n close: \"mclose\",\n inner: \"minner\",\n genfrac: \"mord\",\n array: \"mord\",\n spacing: \"mord\",\n punct: \"mpunct\",\n ordgroup: \"mord\",\n op: \"mop\",\n katex: \"mord\",\n overline: \"mord\",\n underline: \"mord\",\n rule: \"mord\",\n leftright: \"minner\",\n sqrt: \"mord\",\n accent: \"mord\",\n};\n\n/**\n * Gets the final math type of an expression, given its group type. This type is\n * used to determine spacing between elements, and affects bin elements by\n * causing them to change depending on what types are around them. This type\n * must be attached to the outermost node of an element as a CSS class so that\n * spacing with its surrounding elements works correctly.\n *\n * Some elements can be mapped one-to-one from group type to math type, and\n * those are listed in the `groupToType` table.\n *\n * Others (usually elements that wrap around other elements) often have\n * recursive definitions, and thus call `getTypeOfGroup` on their inner\n * elements.\n */\nvar getTypeOfGroup = function(group) {\n if (group == null) {\n // Like when typesetting $^3$\n return groupToType.mathord;\n } else if (group.type === \"supsub\") {\n return getTypeOfGroup(group.value.base);\n } else if (group.type === \"llap\" || group.type === \"rlap\") {\n return getTypeOfGroup(group.value);\n } else if (group.type === \"color\") {\n return getTypeOfGroup(group.value.value);\n } else if (group.type === \"sizing\") {\n return getTypeOfGroup(group.value.value);\n } else if (group.type === \"styling\") {\n return getTypeOfGroup(group.value.value);\n } else if (group.type === \"delimsizing\") {\n return groupToType[group.value.delimType];\n } else {\n return groupToType[group.type];\n }\n};\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nvar shouldHandleSupSub = function(group, options) {\n if (!group) {\n return false;\n } else if (group.type === \"op\") {\n // Operators handle supsubs differently when they have limits\n // (e.g. `\\displaystyle\\sum_2^3`)\n return group.value.limits &&\n (options.style.size === Style.DISPLAY.size ||\n group.value.alwaysHandleSupSub);\n } else if (group.type === \"accent\") {\n return isCharacterBox(group.value.base);\n } else {\n return null;\n }\n};\n\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\nvar getBaseElem = function(group) {\n if (!group) {\n return false;\n } else if (group.type === \"ordgroup\") {\n if (group.value.length === 1) {\n return getBaseElem(group.value[0]);\n } else {\n return group;\n }\n } else if (group.type === \"color\") {\n if (group.value.value.length === 1) {\n return getBaseElem(group.value.value[0]);\n } else {\n return group;\n }\n } else {\n return group;\n }\n};\n\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\nvar isCharacterBox = function(group) {\n var baseElem = getBaseElem(group);\n\n // These are all they types of groups which hold single characters\n return baseElem.type === \"mathord\" ||\n baseElem.type === \"textord\" ||\n baseElem.type === \"bin\" ||\n baseElem.type === \"rel\" ||\n baseElem.type === \"inner\" ||\n baseElem.type === \"open\" ||\n baseElem.type === \"close\" ||\n baseElem.type === \"punct\";\n};\n\nvar makeNullDelimiter = function(options) {\n return makeSpan([\n \"sizing\", \"reset-\" + options.size, \"size5\",\n options.style.reset(), Style.TEXT.cls(),\n \"nulldelimiter\",\n ]);\n};\n\n/**\n * This is a map of group types to the function used to handle that type.\n * Simpler types come at the beginning, while complicated types come afterwards.\n */\nvar groupTypes = {};\n\ngroupTypes.mathord = function(group, options, prev) {\n return buildCommon.makeOrd(group, options, \"mathord\");\n};\n\ngroupTypes.textord = function(group, options, prev) {\n return buildCommon.makeOrd(group, options, \"textord\");\n};\n\ngroupTypes.bin = function(group, options, prev) {\n var className = \"mbin\";\n // Pull out the most recent element. Do some special handling to find\n // things at the end of a \\color group. Note that we don't use the same\n // logic for ordgroups (which count as ords).\n var prevAtom = prev;\n while (prevAtom && prevAtom.type === \"color\") {\n var atoms = prevAtom.value.value;\n prevAtom = atoms[atoms.length - 1];\n }\n // See TeXbook pg. 442-446, Rules 5 and 6, and the text before Rule 19.\n // Here, we determine whether the bin should turn into an ord. We\n // currently only apply Rule 5.\n if (!prev || utils.contains([\"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"],\n getTypeOfGroup(prevAtom))) {\n group.type = \"textord\";\n className = \"mord\";\n }\n\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [className]);\n};\n\ngroupTypes.rel = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mrel\"]);\n};\n\ngroupTypes.open = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mopen\"]);\n};\n\ngroupTypes.close = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mclose\"]);\n};\n\ngroupTypes.inner = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"minner\"]);\n};\n\ngroupTypes.punct = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mpunct\"]);\n};\n\ngroupTypes.ordgroup = function(group, options, prev) {\n return makeSpan(\n [\"mord\", options.style.cls()],\n buildExpression(group.value, options.reset())\n );\n};\n\ngroupTypes.text = function(group, options, prev) {\n return makeSpan([\"text\", \"mord\", options.style.cls()],\n buildExpression(group.value.body, options.reset()));\n};\n\ngroupTypes.color = function(group, options, prev) {\n var elements = buildExpression(\n group.value.value,\n options.withColor(group.value.color),\n prev\n );\n\n // \\color isn't supposed to affect the type of the elements it contains.\n // To accomplish this, we wrap the results in a fragment, so the inner\n // elements will be able to directly interact with their neighbors. For\n // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n return new buildCommon.makeFragment(elements);\n};\n\ngroupTypes.supsub = function(group, options, prev) {\n // Superscript and subscripts are handled in the TeXbook on page\n // 445-446, rules 18(a-f).\n\n // Here is where we defer to the inner group if it should handle\n // superscripts and subscripts itself.\n if (shouldHandleSupSub(group.value.base, options)) {\n return groupTypes[group.value.base.type](group, options, prev);\n }\n\n var base = buildGroup(group.value.base, options.reset());\n var supmid;\n var submid;\n var sup;\n var sub;\n\n if (group.value.sup) {\n sup = buildGroup(group.value.sup,\n options.withStyle(options.style.sup()));\n supmid = makeSpan(\n [options.style.reset(), options.style.sup().cls()], [sup]);\n }\n\n if (group.value.sub) {\n sub = buildGroup(group.value.sub,\n options.withStyle(options.style.sub()));\n submid = makeSpan(\n [options.style.reset(), options.style.sub().cls()], [sub]);\n }\n\n // Rule 18a\n var supShift;\n var subShift;\n if (isCharacterBox(group.value.base)) {\n supShift = 0;\n subShift = 0;\n } else {\n supShift = base.height - fontMetrics.metrics.supDrop;\n subShift = base.depth + fontMetrics.metrics.subDrop;\n }\n\n // Rule 18c\n var minSupShift;\n if (options.style === Style.DISPLAY) {\n minSupShift = fontMetrics.metrics.sup1;\n } else if (options.style.cramped) {\n minSupShift = fontMetrics.metrics.sup3;\n } else {\n minSupShift = fontMetrics.metrics.sup2;\n }\n\n // scriptspace is a font-size-independent size, so scale it\n // appropriately\n var multiplier = Style.TEXT.sizeMultiplier *\n options.style.sizeMultiplier;\n var scriptspace =\n (0.5 / fontMetrics.metrics.ptPerEm) / multiplier + \"em\";\n\n var supsub;\n if (!group.value.sup) {\n // Rule 18b\n subShift = Math.max(\n subShift, fontMetrics.metrics.sub1,\n sub.height - 0.8 * fontMetrics.metrics.xHeight);\n\n supsub = buildCommon.makeVList([\n {type: \"elem\", elem: submid},\n ], \"shift\", subShift, options);\n\n supsub.children[0].style.marginRight = scriptspace;\n\n // Subscripts shouldn't be shifted by the base's italic correction.\n // Account for that by shifting the subscript back the appropriate\n // amount. Note we only do this when the base is a single symbol.\n if (base instanceof domTree.symbolNode) {\n supsub.children[0].style.marginLeft = -base.italic + \"em\";\n }\n } else if (!group.value.sub) {\n // Rule 18c, d\n supShift = Math.max(supShift, minSupShift,\n sup.depth + 0.25 * fontMetrics.metrics.xHeight);\n\n supsub = buildCommon.makeVList([\n {type: \"elem\", elem: supmid},\n ], \"shift\", -supShift, options);\n\n supsub.children[0].style.marginRight = scriptspace;\n } else {\n supShift = Math.max(\n supShift, minSupShift,\n sup.depth + 0.25 * fontMetrics.metrics.xHeight);\n subShift = Math.max(subShift, fontMetrics.metrics.sub2);\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness;\n\n // Rule 18e\n if ((supShift - sup.depth) - (sub.height - subShift) <\n 4 * ruleWidth) {\n subShift = 4 * ruleWidth - (supShift - sup.depth) + sub.height;\n var psi = 0.8 * fontMetrics.metrics.xHeight -\n (supShift - sup.depth);\n if (psi > 0) {\n supShift += psi;\n subShift -= psi;\n }\n }\n\n supsub = buildCommon.makeVList([\n {type: \"elem\", elem: submid, shift: subShift},\n {type: \"elem\", elem: supmid, shift: -supShift},\n ], \"individualShift\", null, options);\n\n // See comment above about subscripts not being shifted\n if (base instanceof domTree.symbolNode) {\n supsub.children[0].style.marginLeft = -base.italic + \"em\";\n }\n\n supsub.children[0].style.marginRight = scriptspace;\n supsub.children[1].style.marginRight = scriptspace;\n }\n\n return makeSpan([getTypeOfGroup(group.value.base)],\n [base, supsub]);\n};\n\ngroupTypes.genfrac = function(group, options, prev) {\n // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n // Figure out what style this fraction should be in based on the\n // function used\n var fstyle = options.style;\n if (group.value.size === \"display\") {\n fstyle = Style.DISPLAY;\n } else if (group.value.size === \"text\") {\n fstyle = Style.TEXT;\n }\n\n var nstyle = fstyle.fracNum();\n var dstyle = fstyle.fracDen();\n\n var numer = buildGroup(group.value.numer, options.withStyle(nstyle));\n var numerreset = makeSpan([fstyle.reset(), nstyle.cls()], [numer]);\n\n var denom = buildGroup(group.value.denom, options.withStyle(dstyle));\n var denomreset = makeSpan([fstyle.reset(), dstyle.cls()], [denom]);\n\n var ruleWidth;\n if (group.value.hasBarLine) {\n ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n } else {\n ruleWidth = 0;\n }\n\n // Rule 15b\n var numShift;\n var clearance;\n var denomShift;\n if (fstyle.size === Style.DISPLAY.size) {\n numShift = fontMetrics.metrics.num1;\n if (ruleWidth > 0) {\n clearance = 3 * ruleWidth;\n } else {\n clearance = 7 * fontMetrics.metrics.defaultRuleThickness;\n }\n denomShift = fontMetrics.metrics.denom1;\n } else {\n if (ruleWidth > 0) {\n numShift = fontMetrics.metrics.num2;\n clearance = ruleWidth;\n } else {\n numShift = fontMetrics.metrics.num3;\n clearance = 3 * fontMetrics.metrics.defaultRuleThickness;\n }\n denomShift = fontMetrics.metrics.denom2;\n }\n\n var frac;\n if (ruleWidth === 0) {\n // Rule 15c\n var candiateClearance =\n (numShift - numer.depth) - (denom.height - denomShift);\n if (candiateClearance < clearance) {\n numShift += 0.5 * (clearance - candiateClearance);\n denomShift += 0.5 * (clearance - candiateClearance);\n }\n\n frac = buildCommon.makeVList([\n {type: \"elem\", elem: denomreset, shift: denomShift},\n {type: \"elem\", elem: numerreset, shift: -numShift},\n ], \"individualShift\", null, options);\n } else {\n // Rule 15d\n var axisHeight = fontMetrics.metrics.axisHeight;\n\n if ((numShift - numer.depth) - (axisHeight + 0.5 * ruleWidth) <\n clearance) {\n numShift +=\n clearance - ((numShift - numer.depth) -\n (axisHeight + 0.5 * ruleWidth));\n }\n\n if ((axisHeight - 0.5 * ruleWidth) - (denom.height - denomShift) <\n clearance) {\n denomShift +=\n clearance - ((axisHeight - 0.5 * ruleWidth) -\n (denom.height - denomShift));\n }\n\n var mid = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"frac-line\"]);\n // Manually set the height of the line because its height is\n // created in CSS\n mid.height = ruleWidth;\n\n var midShift = -(axisHeight - 0.5 * ruleWidth);\n\n frac = buildCommon.makeVList([\n {type: \"elem\", elem: denomreset, shift: denomShift},\n {type: \"elem\", elem: mid, shift: midShift},\n {type: \"elem\", elem: numerreset, shift: -numShift},\n ], \"individualShift\", null, options);\n }\n\n // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n // account for the possible size change here.\n frac.height *= fstyle.sizeMultiplier / options.style.sizeMultiplier;\n frac.depth *= fstyle.sizeMultiplier / options.style.sizeMultiplier;\n\n // Rule 15e\n var delimSize;\n if (fstyle.size === Style.DISPLAY.size) {\n delimSize = fontMetrics.metrics.delim1;\n } else {\n delimSize = fontMetrics.metrics.getDelim2(fstyle);\n }\n\n var leftDelim;\n var rightDelim;\n if (group.value.leftDelim == null) {\n leftDelim = makeNullDelimiter(options);\n } else {\n leftDelim = delimiter.customSizedDelim(\n group.value.leftDelim, delimSize, true,\n options.withStyle(fstyle), group.mode);\n }\n if (group.value.rightDelim == null) {\n rightDelim = makeNullDelimiter(options);\n } else {\n rightDelim = delimiter.customSizedDelim(\n group.value.rightDelim, delimSize, true,\n options.withStyle(fstyle), group.mode);\n }\n\n return makeSpan(\n [\"mord\", options.style.reset(), fstyle.cls()],\n [leftDelim, makeSpan([\"mfrac\"], [frac]), rightDelim],\n options.getColor());\n};\n\ngroupTypes.array = function(group, options, prev) {\n var r;\n var c;\n var nr = group.value.body.length;\n var nc = 0;\n var body = new Array(nr);\n\n // Horizontal spacing\n var pt = 1 / fontMetrics.metrics.ptPerEm;\n var arraycolsep = 5 * pt; // \\arraycolsep in article.cls\n\n // Vertical spacing\n var baselineskip = 12 * pt; // see size10.clo\n // Default \\arraystretch from lttab.dtx\n // TODO(gagern): may get redefined once we have user-defined macros\n var arraystretch = utils.deflt(group.value.arraystretch, 1);\n var arrayskip = arraystretch * baselineskip;\n var arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n var arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n var totalHeight = 0;\n for (r = 0; r < group.value.body.length; ++r) {\n var inrow = group.value.body[r];\n var height = arstrutHeight; // \\@array adds an \\@arstrut\n var depth = arstrutDepth; // to each tow (via the template)\n\n if (nc < inrow.length) {\n nc = inrow.length;\n }\n\n var outrow = new Array(inrow.length);\n for (c = 0; c < inrow.length; ++c) {\n var elt = buildGroup(inrow[c], options);\n if (depth < elt.depth) {\n depth = elt.depth;\n }\n if (height < elt.height) {\n height = elt.height;\n }\n outrow[c] = elt;\n }\n\n var gap = 0;\n if (group.value.rowGaps[r]) {\n gap = group.value.rowGaps[r].value;\n switch (gap.unit) {\n case \"em\":\n gap = gap.number;\n break;\n case \"ex\":\n gap = gap.number * fontMetrics.metrics.emPerEx;\n break;\n default:\n console.error(\"Can't handle unit \" + gap.unit);\n gap = 0;\n }\n if (gap > 0) { // \\@argarraycr\n gap += arstrutDepth;\n if (depth < gap) {\n depth = gap; // \\@xargarraycr\n }\n gap = 0;\n }\n }\n\n outrow.height = height;\n outrow.depth = depth;\n totalHeight += height;\n outrow.pos = totalHeight;\n totalHeight += depth + gap; // \\@yargarraycr\n body[r] = outrow;\n }\n\n var offset = totalHeight / 2 + fontMetrics.metrics.axisHeight;\n var colDescriptions = group.value.cols || [];\n var cols = [];\n var colSep;\n var colDescrNum;\n for (c = 0, colDescrNum = 0;\n // Continue while either there are more columns or more column\n // descriptions, so trailing separators don't get lost.\n c < nc || colDescrNum < colDescriptions.length;\n ++c, ++colDescrNum) {\n\n var colDescr = colDescriptions[colDescrNum] || {};\n\n var firstSeparator = true;\n while (colDescr.type === \"separator\") {\n // If there is more than one separator in a row, add a space\n // between them.\n if (!firstSeparator) {\n colSep = makeSpan([\"arraycolsep\"], []);\n colSep.style.width =\n fontMetrics.metrics.doubleRuleSep + \"em\";\n cols.push(colSep);\n }\n\n if (colDescr.separator === \"|\") {\n var separator = makeSpan(\n [\"vertical-separator\"],\n []);\n separator.style.height = totalHeight + \"em\";\n separator.style.verticalAlign =\n -(totalHeight - offset) + \"em\";\n\n cols.push(separator);\n } else {\n throw new ParseError(\n \"Invalid separator type: \" + colDescr.separator);\n }\n\n colDescrNum++;\n colDescr = colDescriptions[colDescrNum] || {};\n firstSeparator = false;\n }\n\n if (c >= nc) {\n continue;\n }\n\n var sepwidth;\n if (c > 0 || group.value.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.pregap, arraycolsep);\n if (sepwidth !== 0) {\n colSep = makeSpan([\"arraycolsep\"], []);\n colSep.style.width = sepwidth + \"em\";\n cols.push(colSep);\n }\n }\n\n var col = [];\n for (r = 0; r < nr; ++r) {\n var row = body[r];\n var elem = row[c];\n if (!elem) {\n continue;\n }\n var shift = row.pos - offset;\n elem.depth = row.depth;\n elem.height = row.height;\n col.push({type: \"elem\", elem: elem, shift: shift});\n }\n\n col = buildCommon.makeVList(col, \"individualShift\", null, options);\n col = makeSpan(\n [\"col-align-\" + (colDescr.align || \"c\")],\n [col]);\n cols.push(col);\n\n if (c < nc - 1 || group.value.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.postgap, arraycolsep);\n if (sepwidth !== 0) {\n colSep = makeSpan([\"arraycolsep\"], []);\n colSep.style.width = sepwidth + \"em\";\n cols.push(colSep);\n }\n }\n }\n body = makeSpan([\"mtable\"], cols);\n return makeSpan([\"mord\"], [body], options.getColor());\n};\n\ngroupTypes.spacing = function(group, options, prev) {\n if (group.value === \"\\\\ \" || group.value === \"\\\\space\" ||\n group.value === \" \" || group.value === \"~\") {\n // Spaces are generated by adding an actual space. Each of these\n // things has an entry in the symbols table, so these will be turned\n // into appropriate outputs.\n return makeSpan(\n [\"mord\", \"mspace\"],\n [buildCommon.mathsym(group.value, group.mode)]\n );\n } else {\n // Other kinds of spaces are of arbitrary width. We use CSS to\n // generate these.\n return makeSpan(\n [\"mord\", \"mspace\",\n buildCommon.spacingFunctions[group.value].className]);\n }\n};\n\ngroupTypes.llap = function(group, options, prev) {\n var inner = makeSpan(\n [\"inner\"], [buildGroup(group.value.body, options.reset())]);\n var fix = makeSpan([\"fix\"], []);\n return makeSpan(\n [\"llap\", options.style.cls()], [inner, fix]);\n};\n\ngroupTypes.rlap = function(group, options, prev) {\n var inner = makeSpan(\n [\"inner\"], [buildGroup(group.value.body, options.reset())]);\n var fix = makeSpan([\"fix\"], []);\n return makeSpan(\n [\"rlap\", options.style.cls()], [inner, fix]);\n};\n\ngroupTypes.op = function(group, options, prev) {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n if (group.type === \"supsub\" ) {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = group.value.sup;\n subGroup = group.value.sub;\n group = group.value.base;\n hasLimits = true;\n }\n\n // Most operators have a large successor symbol, but these don't.\n var noSuccessor = [\n \"\\\\smallint\",\n ];\n\n var large = false;\n if (options.style.size === Style.DISPLAY.size &&\n group.value.symbol &&\n !utils.contains(noSuccessor, group.value.body)) {\n\n // Most symbol operators get larger in displaystyle (rule 13)\n large = true;\n }\n\n var base;\n var baseShift = 0;\n var slant = 0;\n if (group.value.symbol) {\n // If this is a symbol, create the symbol.\n var style = large ? \"Size2-Regular\" : \"Size1-Regular\";\n base = buildCommon.makeSymbol(\n group.value.body, style, \"math\", options.getColor(),\n [\"op-symbol\", large ? \"large-op\" : \"small-op\", \"mop\"]);\n\n // Shift the symbol so its center lies on the axis (rule 13). It\n // appears that our fonts have the centers of the symbols already\n // almost on the axis, so these numbers are very small. Note we\n // don't actually apply this here, but instead it is used either in\n // the vlist creation or separately when there are no limits.\n baseShift = (base.height - base.depth) / 2 -\n fontMetrics.metrics.axisHeight *\n options.style.sizeMultiplier;\n\n // The slant of the symbol is just its italic correction.\n slant = base.italic;\n } else {\n // Otherwise, this is a text operator. Build the text from the\n // operator's name.\n // TODO(emily): Add a space in the middle of some of these\n // operators, like \\limsup\n var output = [];\n for (var i = 1; i < group.value.body.length; i++) {\n output.push(buildCommon.mathsym(group.value.body[i], group.mode));\n }\n base = makeSpan([\"mop\"], output, options.getColor());\n }\n\n if (hasLimits) {\n // IE 8 clips \\int if it is in a display: inline-block. We wrap it\n // in a new span so it is an inline, and works.\n base = makeSpan([], [base]);\n\n var supmid;\n var supKern;\n var submid;\n var subKern;\n // We manually have to handle the superscripts and subscripts. This,\n // aside from the kern calculations, is copied from supsub.\n if (supGroup) {\n var sup = buildGroup(\n supGroup, options.withStyle(options.style.sup()));\n supmid = makeSpan(\n [options.style.reset(), options.style.sup().cls()], [sup]);\n\n supKern = Math.max(\n fontMetrics.metrics.bigOpSpacing1,\n fontMetrics.metrics.bigOpSpacing3 - sup.depth);\n }\n\n if (subGroup) {\n var sub = buildGroup(\n subGroup, options.withStyle(options.style.sub()));\n submid = makeSpan(\n [options.style.reset(), options.style.sub().cls()],\n [sub]);\n\n subKern = Math.max(\n fontMetrics.metrics.bigOpSpacing2,\n fontMetrics.metrics.bigOpSpacing4 - sub.height);\n }\n\n // Build the final group as a vlist of the possible subscript, base,\n // and possible superscript.\n var finalGroup;\n var top;\n var bottom;\n if (!supGroup) {\n top = base.height - baseShift;\n\n finalGroup = buildCommon.makeVList([\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n {type: \"elem\", elem: submid},\n {type: \"kern\", size: subKern},\n {type: \"elem\", elem: base},\n ], \"top\", top, options);\n\n // Here, we shift the limits by the slant of the symbol. Note\n // that we are supposed to shift the limits by 1/2 of the slant,\n // but since we are centering the limits adding a full slant of\n // margin will shift by 1/2 that.\n finalGroup.children[0].style.marginLeft = -slant + \"em\";\n } else if (!subGroup) {\n bottom = base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList([\n {type: \"elem\", elem: base},\n {type: \"kern\", size: supKern},\n {type: \"elem\", elem: supmid},\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n ], \"bottom\", bottom, options);\n\n // See comment above about slants\n finalGroup.children[1].style.marginLeft = slant + \"em\";\n } else if (!supGroup && !subGroup) {\n // This case probably shouldn't occur (this would mean the\n // supsub was sending us a group with no superscript or\n // subscript) but be safe.\n return base;\n } else {\n bottom = fontMetrics.metrics.bigOpSpacing5 +\n submid.height + submid.depth +\n subKern +\n base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList([\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n {type: \"elem\", elem: submid},\n {type: \"kern\", size: subKern},\n {type: \"elem\", elem: base},\n {type: \"kern\", size: supKern},\n {type: \"elem\", elem: supmid},\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n ], \"bottom\", bottom, options);\n\n // See comment above about slants\n finalGroup.children[0].style.marginLeft = -slant + \"em\";\n finalGroup.children[2].style.marginLeft = slant + \"em\";\n }\n\n return makeSpan([\"mop\", \"op-limits\"], [finalGroup]);\n } else {\n if (group.value.symbol) {\n base.style.top = baseShift + \"em\";\n }\n\n return base;\n }\n};\n\ngroupTypes.katex = function(group, options, prev) {\n // The KaTeX logo. The offsets for the K and a were chosen to look\n // good, but the offsets for the T, E, and X were taken from the\n // definition of \\TeX in TeX (see TeXbook pg. 356)\n var k = makeSpan(\n [\"k\"], [buildCommon.mathsym(\"K\", group.mode)]);\n var a = makeSpan(\n [\"a\"], [buildCommon.mathsym(\"A\", group.mode)]);\n\n a.height = (a.height + 0.2) * 0.75;\n a.depth = (a.height - 0.2) * 0.75;\n\n var t = makeSpan(\n [\"t\"], [buildCommon.mathsym(\"T\", group.mode)]);\n var e = makeSpan(\n [\"e\"], [buildCommon.mathsym(\"E\", group.mode)]);\n\n e.height = (e.height - 0.2155);\n e.depth = (e.depth + 0.2155);\n\n var x = makeSpan(\n [\"x\"], [buildCommon.mathsym(\"X\", group.mode)]);\n\n return makeSpan(\n [\"katex-logo\", \"mord\"], [k, a, t, e, x], options.getColor());\n};\n\ngroupTypes.overline = function(group, options, prev) {\n // Overlines are handled in the TeXbook pg 443, Rule 9.\n\n // Build the inner group in the cramped style.\n var innerGroup = buildGroup(group.value.body,\n options.withStyle(options.style.cramp()));\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n\n // Create the line above the body\n var line = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"overline-line\"]);\n line.height = ruleWidth;\n line.maxFontSize = 1.0;\n\n // Generate the vlist, with the appropriate kerns\n var vlist = buildCommon.makeVList([\n {type: \"elem\", elem: innerGroup},\n {type: \"kern\", size: 3 * ruleWidth},\n {type: \"elem\", elem: line},\n {type: \"kern\", size: ruleWidth},\n ], \"firstBaseline\", null, options);\n\n return makeSpan([\"overline\", \"mord\"], [vlist], options.getColor());\n};\n\ngroupTypes.underline = function(group, options, prev) {\n // Underlines are handled in the TeXbook pg 443, Rule 10.\n\n // Build the inner group.\n var innerGroup = buildGroup(group.value.body, options);\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n\n // Create the line above the body\n var line = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"underline-line\"]);\n line.height = ruleWidth;\n line.maxFontSize = 1.0;\n\n // Generate the vlist, with the appropriate kerns\n var vlist = buildCommon.makeVList([\n {type: \"kern\", size: ruleWidth},\n {type: \"elem\", elem: line},\n {type: \"kern\", size: 3 * ruleWidth},\n {type: \"elem\", elem: innerGroup},\n ], \"top\", innerGroup.height, options);\n\n return makeSpan([\"underline\", \"mord\"], [vlist], options.getColor());\n};\n\ngroupTypes.sqrt = function(group, options, prev) {\n // Square roots are handled in the TeXbook pg. 443, Rule 11.\n\n // First, we do the same steps as in overline to build the inner group\n // and line\n var inner = buildGroup(group.value.body,\n options.withStyle(options.style.cramp()));\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n\n var line = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"sqrt-line\"], [],\n options.getColor());\n line.height = ruleWidth;\n line.maxFontSize = 1.0;\n\n var phi = ruleWidth;\n if (options.style.id < Style.TEXT.id) {\n phi = fontMetrics.metrics.xHeight;\n }\n\n // Calculate the clearance between the body and line\n var lineClearance = ruleWidth + phi / 4;\n\n var innerHeight =\n (inner.height + inner.depth) * options.style.sizeMultiplier;\n var minDelimiterHeight = innerHeight + lineClearance + ruleWidth;\n\n // Create a \\surd delimiter of the required minimum size\n var delim = makeSpan([\"sqrt-sign\"], [\n delimiter.customSizedDelim(\"\\\\surd\", minDelimiterHeight,\n false, options, group.mode)],\n options.getColor());\n\n var delimDepth = (delim.height + delim.depth) - ruleWidth;\n\n // Adjust the clearance based on the delimiter size\n if (delimDepth > inner.height + inner.depth + lineClearance) {\n lineClearance =\n (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n }\n\n // Shift the delimiter so that its top lines up with the top of the line\n var delimShift = -(inner.height + lineClearance + ruleWidth) + delim.height;\n delim.style.top = delimShift + \"em\";\n delim.height -= delimShift;\n delim.depth += delimShift;\n\n // We add a special case here, because even when `inner` is empty, we\n // still get a line. So, we use a simple heuristic to decide if we\n // should omit the body entirely. (note this doesn't work for something\n // like `\\sqrt{\\rlap{x}}`, but if someone is doing that they deserve for\n // it not to work.\n var body;\n if (inner.height === 0 && inner.depth === 0) {\n body = makeSpan();\n } else {\n body = buildCommon.makeVList([\n {type: \"elem\", elem: inner},\n {type: \"kern\", size: lineClearance},\n {type: \"elem\", elem: line},\n {type: \"kern\", size: ruleWidth},\n ], \"firstBaseline\", null, options);\n }\n\n if (!group.value.index) {\n return makeSpan([\"sqrt\", \"mord\"], [delim, body]);\n } else {\n // Handle the optional root index\n\n // The index is always in scriptscript style\n var root = buildGroup(\n group.value.index,\n options.withStyle(Style.SCRIPTSCRIPT));\n var rootWrap = makeSpan(\n [options.style.reset(), Style.SCRIPTSCRIPT.cls()],\n [root]);\n\n // Figure out the height and depth of the inner part\n var innerRootHeight = Math.max(delim.height, body.height);\n var innerRootDepth = Math.max(delim.depth, body.depth);\n\n // The amount the index is shifted by. This is taken from the TeX\n // source, in the definition of `\\r@@t`.\n var toShift = 0.6 * (innerRootHeight - innerRootDepth);\n\n // Build a VList with the superscript shifted up correctly\n var rootVList = buildCommon.makeVList(\n [{type: \"elem\", elem: rootWrap}],\n \"shift\", -toShift, options);\n // Add a class surrounding it so we can add on the appropriate\n // kerning\n var rootVListWrap = makeSpan([\"root\"], [rootVList]);\n\n return makeSpan([\"sqrt\", \"mord\"], [rootVListWrap, delim, body]);\n }\n};\n\ngroupTypes.sizing = function(group, options, prev) {\n // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n // these functions inside of math expressions, so we do some special\n // handling.\n var inner = buildExpression(group.value.value,\n options.withSize(group.value.size), prev);\n\n var span = makeSpan([\"mord\"],\n [makeSpan([\"sizing\", \"reset-\" + options.size, group.value.size,\n options.style.cls()],\n inner)]);\n\n // Calculate the correct maxFontSize manually\n var fontSize = buildCommon.sizingMultiplier[group.value.size];\n span.maxFontSize = fontSize * options.style.sizeMultiplier;\n\n return span;\n};\n\ngroupTypes.styling = function(group, options, prev) {\n // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n\n // Figure out what style we're changing to.\n var style = {\n \"display\": Style.DISPLAY,\n \"text\": Style.TEXT,\n \"script\": Style.SCRIPT,\n \"scriptscript\": Style.SCRIPTSCRIPT,\n };\n\n var newStyle = style[group.value.style];\n\n // Build the inner expression in the new style.\n var inner = buildExpression(\n group.value.value, options.withStyle(newStyle), prev);\n\n return makeSpan([options.style.reset(), newStyle.cls()], inner);\n};\n\ngroupTypes.font = function(group, options, prev) {\n var font = group.value.font;\n return buildGroup(group.value.body, options.withFont(font), prev);\n};\n\ngroupTypes.delimsizing = function(group, options, prev) {\n var delim = group.value.value;\n\n if (delim === \".\") {\n // Empty delimiters still count as elements, even though they don't\n // show anything.\n return makeSpan([groupToType[group.value.delimType]]);\n }\n\n // Use delimiter.sizedDelim to generate the delimiter.\n return makeSpan(\n [groupToType[group.value.delimType]],\n [delimiter.sizedDelim(\n delim, group.value.size, options, group.mode)]);\n};\n\ngroupTypes.leftright = function(group, options, prev) {\n // Build the inner expression\n var inner = buildExpression(group.value.body, options.reset());\n\n var innerHeight = 0;\n var innerDepth = 0;\n\n // Calculate its height and depth\n for (var i = 0; i < inner.length; i++) {\n innerHeight = Math.max(inner[i].height, innerHeight);\n innerDepth = Math.max(inner[i].depth, innerDepth);\n }\n\n // The size of delimiters is the same, regardless of what style we are\n // in. Thus, to correctly calculate the size of delimiter we need around\n // a group, we scale down the inner size based on the size.\n innerHeight *= options.style.sizeMultiplier;\n innerDepth *= options.style.sizeMultiplier;\n\n var leftDelim;\n if (group.value.left === \".\") {\n // Empty delimiters in \\left and \\right make null delimiter spaces.\n leftDelim = makeNullDelimiter(options);\n } else {\n // Otherwise, use leftRightDelim to generate the correct sized\n // delimiter.\n leftDelim = delimiter.leftRightDelim(\n group.value.left, innerHeight, innerDepth, options,\n group.mode);\n }\n // Add it to the beginning of the expression\n inner.unshift(leftDelim);\n\n var rightDelim;\n // Same for the right delimiter\n if (group.value.right === \".\") {\n rightDelim = makeNullDelimiter(options);\n } else {\n rightDelim = delimiter.leftRightDelim(\n group.value.right, innerHeight, innerDepth, options,\n group.mode);\n }\n // Add it to the end of the expression.\n inner.push(rightDelim);\n\n return makeSpan(\n [\"minner\", options.style.cls()], inner, options.getColor());\n};\n\ngroupTypes.rule = function(group, options, prev) {\n // Make an empty span for the rule\n var rule = makeSpan([\"mord\", \"rule\"], [], options.getColor());\n\n // Calculate the shift, width, and height of the rule, and account for units\n var shift = 0;\n if (group.value.shift) {\n shift = group.value.shift.number;\n if (group.value.shift.unit === \"ex\") {\n shift *= fontMetrics.metrics.xHeight;\n }\n }\n\n var width = group.value.width.number;\n if (group.value.width.unit === \"ex\") {\n width *= fontMetrics.metrics.xHeight;\n }\n\n var height = group.value.height.number;\n if (group.value.height.unit === \"ex\") {\n height *= fontMetrics.metrics.xHeight;\n }\n\n // The sizes of rules are absolute, so make it larger if we are in a\n // smaller style.\n shift /= options.style.sizeMultiplier;\n width /= options.style.sizeMultiplier;\n height /= options.style.sizeMultiplier;\n\n // Style the rule to the right size\n rule.style.borderRightWidth = width + \"em\";\n rule.style.borderTopWidth = height + \"em\";\n rule.style.bottom = shift + \"em\";\n\n // Record the height and width\n rule.width = width;\n rule.height = height + shift;\n rule.depth = -shift;\n\n return rule;\n};\n\ngroupTypes.accent = function(group, options, prev) {\n // Accents are handled in the TeXbook pg. 443, rule 12.\n var base = group.value.base;\n\n var supsubGroup;\n if (group.type === \"supsub\") {\n // If our base is a character box, and we have superscripts and\n // subscripts, the supsub will defer to us. In particular, we want\n // to attach the superscripts and subscripts to the inner body (so\n // that the position of the superscripts and subscripts won't be\n // affected by the height of the accent). We accomplish this by\n // sticking the base of the accent into the base of the supsub, and\n // rendering that, while keeping track of where the accent is.\n\n // The supsub group is the group that was passed in\n var supsub = group;\n // The real accent group is the base of the supsub group\n group = supsub.value.base;\n // The character box is the base of the accent group\n base = group.value.base;\n // Stick the character box into the base of the supsub group\n supsub.value.base = base;\n\n // Rerender the supsub group with its new base, and store that\n // result.\n supsubGroup = buildGroup(\n supsub, options.reset(), prev);\n }\n\n // Build the base group\n var body = buildGroup(\n base, options.withStyle(options.style.cramp()));\n\n // Calculate the skew of the accent. This is based on the line \"If the\n // nucleus is not a single character, let s = 0; otherwise set s to the\n // kern amount for the nucleus followed by the \\skewchar of its font.\"\n // Note that our skew metrics are just the kern between each character\n // and the skewchar.\n var skew;\n if (isCharacterBox(base)) {\n // If the base is a character box, then we want the skew of the\n // innermost character. To do that, we find the innermost character:\n var baseChar = getBaseElem(base);\n // Then, we render its group to get the symbol inside it\n var baseGroup = buildGroup(\n baseChar, options.withStyle(options.style.cramp()));\n // Finally, we pull the skew off of the symbol.\n skew = baseGroup.skew;\n // Note that we now throw away baseGroup, because the layers we\n // removed with getBaseElem might contain things like \\color which\n // we can't get rid of.\n // TODO(emily): Find a better way to get the skew\n } else {\n skew = 0;\n }\n\n // calculate the amount of space between the body and the accent\n var clearance = Math.min(body.height, fontMetrics.metrics.xHeight);\n\n // Build the accent\n var accent = buildCommon.makeSymbol(\n group.value.accent, \"Main-Regular\", \"math\", options.getColor());\n // Remove the italic correction of the accent, because it only serves to\n // shift the accent over to a place we don't want.\n accent.italic = 0;\n\n // The \\vec character that the fonts use is a combining character, and\n // thus shows up much too far to the left. To account for this, we add a\n // specific class which shifts the accent over to where we want it.\n // TODO(emily): Fix this in a better way, like by changing the font\n var vecClass = group.value.accent === \"\\\\vec\" ? \"accent-vec\" : null;\n\n var accentBody = makeSpan([\"accent-body\", vecClass], [\n makeSpan([], [accent])]);\n\n accentBody = buildCommon.makeVList([\n {type: \"elem\", elem: body},\n {type: \"kern\", size: -clearance},\n {type: \"elem\", elem: accentBody},\n ], \"firstBaseline\", null, options);\n\n // Shift the accent over by the skew. Note we shift by twice the skew\n // because we are centering the accent, so by adding 2*skew to the left,\n // we shift it to the right by 1*skew.\n accentBody.children[1].style.marginLeft = 2 * skew + \"em\";\n\n var accentWrap = makeSpan([\"mord\", \"accent\"], [accentBody]);\n\n if (supsubGroup) {\n // Here, we replace the \"base\" child of the supsub with our newly\n // generated accent.\n supsubGroup.children[0] = accentWrap;\n\n // Since we don't rerun the height calculation after replacing the\n // accent, we manually recalculate height.\n supsubGroup.height = Math.max(accentWrap.height, supsubGroup.height);\n\n // Accents should always be ords, even when their innards are not.\n supsubGroup.classes[0] = \"mord\";\n\n return supsubGroup;\n } else {\n return accentWrap;\n }\n};\n\ngroupTypes.phantom = function(group, options, prev) {\n var elements = buildExpression(\n group.value.value,\n options.withPhantom(),\n prev\n );\n\n // \\phantom isn't supposed to affect the elements it contains.\n // See \"color\" for more details.\n return new buildCommon.makeFragment(elements);\n};\n\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\nvar buildGroup = function(group, options, prev) {\n if (!group) {\n return makeSpan();\n }\n\n if (groupTypes[group.type]) {\n // Call the groupTypes function\n var groupNode = groupTypes[group.type](group, options, prev);\n var multiplier;\n\n // If the style changed between the parent and the current group,\n // account for the size difference\n if (options.style !== options.parentStyle) {\n multiplier = options.style.sizeMultiplier /\n options.parentStyle.sizeMultiplier;\n\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n // If the size changed between the parent and the current group, account\n // for that size difference.\n if (options.size !== options.parentSize) {\n multiplier = buildCommon.sizingMultiplier[options.size] /\n buildCommon.sizingMultiplier[options.parentSize];\n\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n return groupNode;\n } else {\n throw new ParseError(\n \"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\nvar buildHTML = function(tree, options) {\n // buildExpression is destructive, so we need to make a clone\n // of the incoming tree so that it isn't accidentally changed\n tree = JSON.parse(JSON.stringify(tree));\n\n // Build the expression contained in the tree\n var expression = buildExpression(tree, options);\n var body = makeSpan([\"base\", options.style.cls()], expression);\n\n // Add struts, which ensure that the top of the HTML element falls at the\n // height of the expression, and the bottom of the HTML element falls at the\n // depth of the expression.\n var topStrut = makeSpan([\"strut\"]);\n var bottomStrut = makeSpan([\"strut\", \"bottom\"]);\n\n topStrut.style.height = body.height + \"em\";\n bottomStrut.style.height = (body.height + body.depth) + \"em\";\n // We'd like to use `vertical-align: top` but in IE 9 this lowers the\n // baseline of the box to the bottom of this strut (instead staying in the\n // normal place) so we use an absolute value for vertical-align instead\n bottomStrut.style.verticalAlign = -body.depth + \"em\";\n\n // Wrap the struts and body together\n var htmlNode = makeSpan([\"katex-html\"], [topStrut, bottomStrut, body]);\n\n htmlNode.setAttribute(\"aria-hidden\", \"true\");\n\n return htmlNode;\n};\n\nmodule.exports = buildHTML;\n\n\n//# sourceURL=webpack:///./node_modules/katex/src/buildHTML.js?");
+
+/***/ }),
+
+/***/ "./node_modules/katex/src/buildMathML.js":
+/*!***********************************************!*\
+ !*** ./node_modules/katex/src/buildMathML.js ***!
+ \***********************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/**\n * This file converts a parse tree into a cooresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\nvar buildCommon = __webpack_require__(/*! ./buildCommon */ \"./node_modules/katex/src/buildCommon.js\");\nvar fontMetrics = __webpack_require__(/*! ./fontMetrics */ \"./node_modules/katex/src/fontMetrics.js\");\nvar mathMLTree = __webpack_require__(/*! ./mathMLTree */ \"./node_modules/katex/src/mathMLTree.js\");\nvar ParseError = __webpack_require__(/*! ./ParseError */ \"./node_modules/katex/src/ParseError.js\");\nvar symbols = __webpack_require__(/*! ./symbols */ \"./node_modules/katex/src/symbols.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/katex/src/utils.js\");\n\nvar makeSpan = buildCommon.makeSpan;\nvar fontMap = buildCommon.fontMap;\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function(text, mode) {\n if (symbols[mode][text] && symbols[mode][text].replace) {\n text = symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n\n/**\n * Returns the math variant as a string or null if none is required.\n */\nvar getVariant = function(group, options) {\n var font = options.font;\n if (!font) {\n return null;\n }\n\n var mode = group.mode;\n if (font === \"mathit\") {\n return \"italic\";\n }\n\n var value = group.value;\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], value)) {\n return null;\n }\n\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var fontName = fontMap[font].fontName;\n if (fontMetrics.getCharacterMetrics(value, fontName)) {\n return fontMap[options.font].variant;\n }\n\n return null;\n};\n\n/**\n * Functions for handling the different types of groups found in the parse\n * tree. Each function should take a parse group and return a MathML node.\n */\nvar groupTypes = {};\n\ngroupTypes.mathord = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mi\",\n [makeText(group.value, group.mode)]);\n\n var variant = getVariant(group, options);\n if (variant) {\n node.setAttribute(\"mathvariant\", variant);\n }\n return node;\n};\n\ngroupTypes.textord = function(group, options) {\n var text = makeText(group.value, group.mode);\n\n var variant = getVariant(group, options) || \"normal\";\n\n var node;\n if (/[0-9]/.test(group.value)) {\n // TODO(kevinb) merge adjacent nodes\n // do it as a post processing step\n node = new mathMLTree.MathNode(\"mn\", [text]);\n if (options.font) {\n node.setAttribute(\"mathvariant\", variant);\n }\n } else {\n node = new mathMLTree.MathNode(\"mi\", [text]);\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n};\n\ngroupTypes.bin = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.rel = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.open = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.close = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.inner = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.punct = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n node.setAttribute(\"separator\", \"true\");\n\n return node;\n};\n\ngroupTypes.ordgroup = function(group, options) {\n var inner = buildExpression(group.value, options);\n\n var node = new mathMLTree.MathNode(\"mrow\", inner);\n\n return node;\n};\n\ngroupTypes.text = function(group, options) {\n var inner = buildExpression(group.value.body, options);\n\n var node = new mathMLTree.MathNode(\"mtext\", inner);\n\n return node;\n};\n\ngroupTypes.color = function(group, options) {\n var inner = buildExpression(group.value.value, options);\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n\n node.setAttribute(\"mathcolor\", group.value.color);\n\n return node;\n};\n\ngroupTypes.supsub = function(group, options) {\n var children = [buildGroup(group.value.base, options)];\n\n if (group.value.sub) {\n children.push(buildGroup(group.value.sub, options));\n }\n\n if (group.value.sup) {\n children.push(buildGroup(group.value.sup, options));\n }\n\n var nodeType;\n if (!group.value.sub) {\n nodeType = \"msup\";\n } else if (!group.value.sup) {\n nodeType = \"msub\";\n } else {\n nodeType = \"msubsup\";\n }\n\n var node = new mathMLTree.MathNode(nodeType, children);\n\n return node;\n};\n\ngroupTypes.genfrac = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mfrac\",\n [buildGroup(group.value.numer, options),\n buildGroup(group.value.denom, options)]);\n\n if (!group.value.hasBarLine) {\n node.setAttribute(\"linethickness\", \"0px\");\n }\n\n if (group.value.leftDelim != null || group.value.rightDelim != null) {\n var withDelims = [];\n\n if (group.value.leftDelim != null) {\n var leftOp = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(group.value.leftDelim)]);\n\n leftOp.setAttribute(\"fence\", \"true\");\n\n withDelims.push(leftOp);\n }\n\n withDelims.push(node);\n\n if (group.value.rightDelim != null) {\n var rightOp = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(group.value.rightDelim)]);\n\n rightOp.setAttribute(\"fence\", \"true\");\n\n withDelims.push(rightOp);\n }\n\n var outerNode = new mathMLTree.MathNode(\"mrow\", withDelims);\n\n return outerNode;\n }\n\n return node;\n};\n\ngroupTypes.array = function(group, options) {\n return new mathMLTree.MathNode(\n \"mtable\", group.value.body.map(function(row) {\n return new mathMLTree.MathNode(\n \"mtr\", row.map(function(cell) {\n return new mathMLTree.MathNode(\n \"mtd\", [buildGroup(cell, options)]);\n }));\n }));\n};\n\ngroupTypes.sqrt = function(group, options) {\n var node;\n if (group.value.index) {\n node = new mathMLTree.MathNode(\n \"mroot\", [\n buildGroup(group.value.body, options),\n buildGroup(group.value.index, options),\n ]);\n } else {\n node = new mathMLTree.MathNode(\n \"msqrt\", [buildGroup(group.value.body, options)]);\n }\n\n return node;\n};\n\ngroupTypes.leftright = function(group, options) {\n var inner = buildExpression(group.value.body, options);\n\n if (group.value.left !== \".\") {\n var leftNode = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.left, group.mode)]);\n\n leftNode.setAttribute(\"fence\", \"true\");\n\n inner.unshift(leftNode);\n }\n\n if (group.value.right !== \".\") {\n var rightNode = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.right, group.mode)]);\n\n rightNode.setAttribute(\"fence\", \"true\");\n\n inner.push(rightNode);\n }\n\n var outerNode = new mathMLTree.MathNode(\"mrow\", inner);\n\n return outerNode;\n};\n\ngroupTypes.accent = function(group, options) {\n var accentNode = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.accent, group.mode)]);\n\n var node = new mathMLTree.MathNode(\n \"mover\",\n [buildGroup(group.value.base, options),\n accentNode]);\n\n node.setAttribute(\"accent\", \"true\");\n\n return node;\n};\n\ngroupTypes.spacing = function(group) {\n var node;\n\n if (group.value === \"\\\\ \" || group.value === \"\\\\space\" ||\n group.value === \" \" || group.value === \"~\") {\n node = new mathMLTree.MathNode(\n \"mtext\", [new mathMLTree.TextNode(\"\\u00a0\")]);\n } else {\n node = new mathMLTree.MathNode(\"mspace\");\n\n node.setAttribute(\n \"width\", buildCommon.spacingFunctions[group.value].size);\n }\n\n return node;\n};\n\ngroupTypes.op = function(group) {\n var node;\n\n // TODO(emily): handle big operators using the `largeop` attribute\n\n if (group.value.symbol) {\n // This is a symbol. Just add the symbol.\n node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.body, group.mode)]);\n } else {\n // This is a text operator. Add all of the characters from the\n // operator's name.\n // TODO(emily): Add a space in the middle of some of these\n // operators, like \\limsup.\n node = new mathMLTree.MathNode(\n \"mi\", [new mathMLTree.TextNode(group.value.body.slice(1))]);\n }\n\n return node;\n};\n\ngroupTypes.katex = function(group) {\n var node = new mathMLTree.MathNode(\n \"mtext\", [new mathMLTree.TextNode(\"KaTeX\")]);\n\n return node;\n};\n\ngroupTypes.font = function(group, options) {\n var font = group.value.font;\n return buildGroup(group.value.body, options.withFont(font));\n};\n\ngroupTypes.delimsizing = function(group) {\n var children = [];\n\n if (group.value.value !== \".\") {\n children.push(makeText(group.value.value, group.mode));\n }\n\n var node = new mathMLTree.MathNode(\"mo\", children);\n\n if (group.value.delimType === \"open\" ||\n group.value.delimType === \"close\") {\n // Only some of the delimsizing functions act as fences, and they\n // return \"open\" or \"close\" delimTypes.\n node.setAttribute(\"fence\", \"true\");\n } else {\n // Explicitly disable fencing if it's not a fence, to override the\n // defaults.\n node.setAttribute(\"fence\", \"false\");\n }\n\n return node;\n};\n\ngroupTypes.styling = function(group, options) {\n var inner = buildExpression(group.value.value, options);\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n\n var styleAttributes = {\n \"display\": [\"0\", \"true\"],\n \"text\": [\"0\", \"false\"],\n \"script\": [\"1\", \"false\"],\n \"scriptscript\": [\"2\", \"false\"],\n };\n\n var attr = styleAttributes[group.value.style];\n\n node.setAttribute(\"scriptlevel\", attr[0]);\n node.setAttribute(\"displaystyle\", attr[1]);\n\n return node;\n};\n\ngroupTypes.sizing = function(group, options) {\n var inner = buildExpression(group.value.value, options);\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n\n // TODO(emily): This doesn't produce the correct size for nested size\n // changes, because we don't keep state of what style we're currently\n // in, so we can't reset the size to normal before changing it. Now\n // that we're passing an options parameter we should be able to fix\n // this.\n node.setAttribute(\n \"mathsize\", buildCommon.sizingMultiplier[group.value.size] + \"em\");\n\n return node;\n};\n\ngroupTypes.overline = function(group, options) {\n var operator = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n\n var node = new mathMLTree.MathNode(\n \"mover\",\n [buildGroup(group.value.body, options),\n operator]);\n node.setAttribute(\"accent\", \"true\");\n\n return node;\n};\n\ngroupTypes.underline = function(group, options) {\n var operator = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n\n var node = new mathMLTree.MathNode(\n \"munder\",\n [buildGroup(group.value.body, options),\n operator]);\n node.setAttribute(\"accentunder\", \"true\");\n\n return node;\n};\n\ngroupTypes.rule = function(group) {\n // TODO(emily): Figure out if there's an actual way to draw black boxes\n // in MathML.\n var node = new mathMLTree.MathNode(\"mrow\");\n\n return node;\n};\n\ngroupTypes.llap = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mpadded\", [buildGroup(group.value.body, options)]);\n\n node.setAttribute(\"lspace\", \"-1width\");\n node.setAttribute(\"width\", \"0px\");\n\n return node;\n};\n\ngroupTypes.rlap = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mpadded\", [buildGroup(group.value.body, options)]);\n\n node.setAttribute(\"width\", \"0px\");\n\n return node;\n};\n\ngroupTypes.phantom = function(group, options, prev) {\n var inner = buildExpression(group.value.value, options);\n return new mathMLTree.MathNode(\"mphantom\", inner);\n};\n\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. A little simpler than the HTML version because we don't do any\n * previous-node handling.\n */\nvar buildExpression = function(expression, options) {\n var groups = [];\n for (var i = 0; i < expression.length; i++) {\n var group = expression[i];\n groups.push(buildGroup(group, options));\n }\n return groups;\n};\n\n/**\n * Takes a group from the parser and calls the appropriate groupTypes function\n * on it to produce a MathML node.\n */\nvar buildGroup = function(group, options) {\n if (!group) {\n return new mathMLTree.MathNode(\"mrow\");\n }\n\n if (groupTypes[group.type]) {\n // Call the groupTypes function\n return groupTypes[group.type](group, options);\n } else {\n throw new ParseError(\n \"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `