From dd0645ee0f580056231bc9aa2cd89cabdeaab0ab Mon Sep 17 00:00:00 2001 From: link Date: Wed, 6 Apr 2022 12:10:51 +0800 Subject: [PATCH] Add CasaConnect function --- UI | 2 +- conf/conf.ini.sample | 13 +- go.mod | 1 + go.sum | 1 + main.go | 38 +- model/net.go | 28 +- model/person.go | 7 + model/sys_common.go | 21 +- model/user.go | 9 + model/zima.go | 8 +- pkg/config/init.go | 4 - pkg/config/update.go | 21 +- pkg/sqlite/db.go | 2 +- pkg/utils/file/file.go | 13 + pkg/utils/httper/httper.go | 4 +- pkg/utils/ini_helper.go | 1 - pkg/utils/oasis_err/e.go | 21 +- pkg/zerotier/zerotier_api.go | 47 - route/init.go | 35 +- route/route.go | 84 +- route/v1/app.go | 2 +- route/v1/file.go | 53 +- route/v1/persion.go | 378 +- route/v1/system.go | 56 +- route/v1/user.go | 59 +- route/v1/zerotier.go | 475 -- route/v1/zima_info.go | 2 +- service/casa.go | 47 +- service/download.go | 38 +- service/friend.go | 13 +- service/model/o_download.go | 33 +- service/model/o_friend.go | 12 +- service/notify.go | 21 + service/person.go | 70 +- service/service.go | 6 - service/system.go | 16 + service/udpconn.go | 183 +- service/zerotier.go | 353 - service/zima_info.go | 71 +- shell/assist.sh | 15 +- shell/helper.sh | 19 +- shell/usb-mount.sh | 7 +- types/notify.go | 2 + types/{persion.go => person.go} | 1 + ...persion_download.go => person_download.go} | 1 + types/system.go | 4 +- web/img/1-small.1b74d2ba.png | Bin 0 -> 14609 bytes web/img/folder-publicshare.0219e0d4.svg | 55 + web/img/folder.c8ff81f3.png | Bin 4830 -> 0 bytes web/img/xfile.402f9e59.png | Bin 6205 -> 0 bytes web/index.html | 2 +- web/js/0.js | 44 +- web/js/1.js | 34 - web/js/2.js | 6956 +--------------- web/js/3.js | 137 +- web/js/4.js | 7011 ++++++++++++++++- web/js/5.js | 1045 ++- web/js/6.js | 119 + web/js/7.js | 74 + web/js/app.js | 104 +- web/js/chunk-vendors.js | 33 + 61 files changed, 9457 insertions(+), 8454 deletions(-) create mode 100644 model/user.go delete mode 100644 pkg/utils/ini_helper.go delete mode 100644 pkg/zerotier/zerotier_api.go delete mode 100644 route/v1/zerotier.go delete mode 100644 service/zerotier.go rename types/{persion.go => person.go} (81%) rename types/{persion_download.go => person_download.go} (87%) create mode 100644 web/img/1-small.1b74d2ba.png create mode 100644 web/img/folder-publicshare.0219e0d4.svg delete mode 100644 web/img/folder.c8ff81f3.png delete mode 100644 web/img/xfile.402f9e59.png create mode 100644 web/js/6.js create mode 100644 web/js/7.js diff --git a/UI b/UI index 247c099..74fa1f8 160000 --- a/UI +++ b/UI @@ -1 +1 @@ -Subproject commit 247c099bf14a2d9eb94bf7798e04d00dbc8f7efd +Subproject commit 74fa1f8920aa23f40b04b87cc04ebef5c36b0890 diff --git a/conf/conf.ini.sample b/conf/conf.ini.sample index 808e6ea..612c015 100644 --- a/conf/conf.ini.sample +++ b/conf/conf.ini.sample @@ -14,11 +14,12 @@ RootPath = /casaOS [server] HttpPort = 8089 +UDPPort = RunMode = release ServerApi = https://api.casaos.zimaboard.com -Handshake = +Handshake = socket.casaos.io Token = -NickName = +USBAutoMount = true [user] @@ -28,11 +29,7 @@ Email = user@gmail.com Description = description Initialized = false Avatar = - -[zerotier] -UserName = user -PWD = pwd -Token = yBKYyavr2RdFAIVN7iTpzlsB1o6CqTgm +NickName = [redis] Host = 127.0.0.1:6379 @@ -48,4 +45,4 @@ Analyse = [file] ShareDir = -DownloadDir = /DATA \ No newline at end of file +DownloadDir = \ No newline at end of file diff --git a/go.mod b/go.mod index 4d293b4..a703c0c 100644 --- a/go.mod +++ b/go.mod @@ -50,6 +50,7 @@ require ( github.com/sirupsen/logrus v1.8.1 github.com/smartystreets/assertions v1.2.0 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect + github.com/spf13/afero v1.2.2 github.com/swaggo/gin-swagger v1.3.0 github.com/swaggo/swag v1.7.3 github.com/tidwall/gjson v1.10.2 diff --git a/go.sum b/go.sum index 2043428..cce619d 100644 --- a/go.sum +++ b/go.sum @@ -794,6 +794,7 @@ github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:Udh github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= diff --git a/main.go b/main.go index d089b7a..9cf8f67 100644 --- a/main.go +++ b/main.go @@ -4,9 +4,9 @@ import ( "flag" "fmt" "net/http" + "runtime" "time" - "github.com/IceWhaleTech/CasaOS/model" "github.com/IceWhaleTech/CasaOS/pkg/cache" "github.com/IceWhaleTech/CasaOS/pkg/config" "github.com/IceWhaleTech/CasaOS/pkg/sqlite" @@ -29,6 +29,24 @@ func init() { config.InitSetup(*configFlag) config.UpdateSetup() loger2.LogSetup() + sysType := runtime.GOOS + if sysType == "windows" { + config.AppInfo.ProjectPath = "C:\\CasaOS\\service" + config.Cfg.Section("app").Key("ProjectPath").SetValue("C:\\CasaOS\\service") + + config.AppInfo.RootPath = "C:\\CasaOS" + config.Cfg.Section("app").Key("RootPath").SetValue("C:\\CasaOS") + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + } + if sysType == "darwin" { + config.AppInfo.ProjectPath = "./CasaOS/service" + config.Cfg.Section("app").Key("ProjectPath").SetValue("./CasaOS/service") + + config.AppInfo.RootPath = "./CasaOS" + config.Cfg.Section("app").Key("RootPath").SetValue("./CasaOS") + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + } + sqliteDB = sqlite.GetDb(config.AppInfo.ProjectPath) //gredis.GetRedisConn(config.RedisInfo), service.MyService = service.NewService(sqliteDB, loger2.NewOLoger()) @@ -36,10 +54,10 @@ func init() { go service.UDPService() - service.Summary = make(map[string]model.FileSummaryModel) + fmt.Println("token", service.GetToken()) service.UDPAddressMap = make(map[string]string) //go service.SocketConnect() - + service.CancelList = make(map[string]string) route.InitFunction() go service.SendIPToServer() @@ -69,20 +87,30 @@ func main() { //gredis.Setup() r := route.InitRouter() //service.SyncTask(sqliteDB) - cron2 := cron.New() //创建一个cron实例 + cron2 := cron.New() //every day execution err := cron2.AddFunc("0 0/5 * * * *", func() { //service.PushIpInfo(*&config.ServerInfo.Token) //service.UpdataDDNSList(mysqldb) //service.SyncTask(sqliteDB) + service.SendIPToServer() + service.LoopFriend() + }) if err != nil { fmt.Println(err) } + // err = cron2.AddFunc("0/1 * * * * *", func() { - //启动/关闭 + // //service.SendIPToServer() + // //service.LoopNet() + + // }) + // if err != nil { + // fmt.Println(err) + // } cron2.Start() defer cron2.Stop() s := &http.Server{ diff --git a/model/net.go b/model/net.go index fcc90a6..1f2897a 100644 --- a/model/net.go +++ b/model/net.go @@ -1,19 +1,17 @@ package model -import "time" - type IOCountersStat struct { - Name string `json:"name"` // interface name - BytesSent uint64 `json:"bytesSent"` // number of bytes sent - BytesRecv uint64 `json:"bytesRecv"` // number of bytes received - PacketsSent uint64 `json:"packetsSent"` // number of packets sent - PacketsRecv uint64 `json:"packetsRecv"` // number of packets received - Errin uint64 `json:"errin"` // total number of errors while receiving - Errout uint64 `json:"errout"` // total number of errors while sending - Dropin uint64 `json:"dropin"` // total number of incoming packets which were dropped - Dropout uint64 `json:"dropout"` // total number of outgoing packets which were dropped (always 0 on OSX and BSD) - Fifoin uint64 `json:"fifoin"` // total number of FIFO buffers errors while receiving - Fifoout uint64 `json:"fifoout"` // total number of FIFO buffers errors while sending - State string `json:"state"` - DateTime time.Time `json:"date_time"` + Name string `json:"name"` // interface name + BytesSent uint64 `json:"bytesSent"` // number of bytes sent + BytesRecv uint64 `json:"bytesRecv"` // number of bytes received + PacketsSent uint64 `json:"packetsSent"` // number of packets sent + PacketsRecv uint64 `json:"packetsRecv"` // number of packets received + Errin uint64 `json:"errin"` // total number of errors while receiving + Errout uint64 `json:"errout"` // total number of errors while sending + Dropin uint64 `json:"dropin"` // total number of incoming packets which were dropped + Dropout uint64 `json:"dropout"` // total number of outgoing packets which were dropped (always 0 on OSX and BSD) + Fifoin uint64 `json:"fifoin"` // total number of FIFO buffers errors while receiving + Fifoout uint64 `json:"fifoout"` // total number of FIFO buffers errors while sending + State string `json:"state"` + Time int64 `json:"time"` } diff --git a/model/person.go b/model/person.go index 0dbcf16..d8a119a 100644 --- a/model/person.go +++ b/model/person.go @@ -45,3 +45,10 @@ type FileSummaryModel struct { Size int64 `json:"size"` Message string `json:"message"` } + +type FriendsModel struct { + Id uint `gorm:"column:id;primary_key" json:"id"` + NickName string `json:"nick_name"` + Desc string `json:"desc"` + ShareId string `json:"share_id"` +} diff --git a/model/sys_common.go b/model/sys_common.go index 8c33ec7..0c166ce 100644 --- a/model/sys_common.go +++ b/model/sys_common.go @@ -22,12 +22,14 @@ type UserModel struct { //服务配置 type ServerModel struct { - HttpPort string - RunMode string - ServerApi string - LockAccount bool - Handshake string - Token string + HttpPort string + RunMode string + ServerApi string + LockAccount bool + Handshake string + Token string + UDPPort string + USBAutoMount string } //服务配置 @@ -50,13 +52,6 @@ type Result struct { Data interface{} `json:"data" example:"返回结果"` } -//zeritier相关 -type ZeroTierModel struct { - UserName string - PWD string - Token string -} - //redis配置文件 type RedisModel struct { Host string diff --git a/model/user.go b/model/user.go new file mode 100644 index 0000000..fbc9398 --- /dev/null +++ b/model/user.go @@ -0,0 +1,9 @@ +package model + +type UserInfo struct { + NickName string `json:"nick_name"` + Desc string `json:"desc"` + ShareId string `json:"share_id"` + Avatar string `json:"avatar"` + Version int `json:"version,omitempty"` +} diff --git a/model/zima.go b/model/zima.go index dafaa43..6d3afbb 100644 --- a/model/zima.go +++ b/model/zima.go @@ -3,11 +3,11 @@ package model import "time" type Path struct { - Name string `json:"name"` - Path string `json:"path"` - IsDir bool `json:"is_dir"` + Name string `json:"name"` //File name or document name + Path string `json:"path"` //Full path to file or folder + IsDir bool `json:"is_dir"` //Is it a folder Date time.Time `json:"date"` - Size int64 `json:"size"` + Size int64 `json:"size"` //File Size Type string `json:"type,omitempty"` Label string `json:"label,omitempty"` } diff --git a/pkg/config/init.go b/pkg/config/init.go index 5cb0df4..38680c0 100644 --- a/pkg/config/init.go +++ b/pkg/config/init.go @@ -25,9 +25,6 @@ var AppInfo = &model.APPModel{} //redis相关配置 var RedisInfo = &model.RedisModel{} -//zerotier相关 -var ZeroTierInfo = &model.ZeroTierModel{} - //server相关 var ServerInfo = &model.ServerModel{} @@ -56,7 +53,6 @@ func InitSetup(config string) { mapTo("user", UserInfo) mapTo("app", AppInfo) - mapTo("zerotier", ZeroTierInfo) mapTo("redis", RedisInfo) mapTo("server", ServerInfo) mapTo("system", SystemConfigInfo) diff --git a/pkg/config/update.go b/pkg/config/update.go index 9091a34..7dbae82 100644 --- a/pkg/config/update.go +++ b/pkg/config/update.go @@ -1,13 +1,30 @@ package config -import "github.com/IceWhaleTech/CasaOS/pkg/utils/file" +import ( + "runtime" + + "github.com/IceWhaleTech/CasaOS/pkg/utils/file" +) //检查目录是否存在 func mkdirDATAAll() { - dirArray := [7]string{"/DATA/AppData", "/DATA/Documents", "/DATA/Downloads", "/DATA/Gallery", "/DATA/Media/Movies", "/DATA/Media/TV Shows", "/DATA/Media/Music"} + sysType := runtime.GOOS + var dirArray []string + if sysType == "linux" { + dirArray = []string{"/DATA/AppData", "/DATA/Documents", "/DATA/Downloads", "/DATA/Gallery", "/DATA/Media/Movies", "/DATA/Media/TV Shows", "/DATA/Media/Music"} + } + + if sysType == "windows" { + dirArray = []string{"C:\\CasaOS\\DATA\\AppData", "C:\\CasaOS\\DATA\\Documents", "C:\\CasaOS\\DATA\\Downloads", "C:\\CasaOS\\DATA\\Gallery", "C:\\CasaOS\\DATA\\Media/Movies", "C:\\CasaOS\\DATA\\Media\\TV Shows", "C:\\CasaOS\\DATA\\Media\\Music"} + } + if sysType == "darwin" { + dirArray = []string{"./CasaOS/DATA/AppData", "./CasaOS/DATA/Documents", "./CasaOS/DATA/Downloads", "./CasaOS/DATA/Gallery", "./CasaOS/DATA/Media/Movies", "./CasaOS/DATA/Media/TV Shows", "./CasaOS/DATA/Media/Music"} + } + for _, v := range dirArray { file.IsNotExistMkDir(v) } + } func UpdateSetup() { diff --git a/pkg/sqlite/db.go b/pkg/sqlite/db.go index 2b85a71..0338d05 100644 --- a/pkg/sqlite/db.go +++ b/pkg/sqlite/db.go @@ -31,7 +31,7 @@ func GetDb(projectPath string) *gorm.DB { return nil } gdb = db - err = db.AutoMigrate(&model2.TaskDBModel{}, &model2.AppNotify{}, &model2.AppListDBModel{}, &model2.SerialDisk{}, model2.PersionDownloadDBModel{}, model2.FriendModel{}) + err = db.AutoMigrate(&model2.TaskDBModel{}, &model2.AppNotify{}, &model2.AppListDBModel{}, &model2.SerialDisk{}, model2.PersonDownloadDBModel{}, model2.FriendModel{}) if err != nil { fmt.Println("检查和创建数据库出错", err) } diff --git a/pkg/utils/file/file.go b/pkg/utils/file/file.go index c2d3316..069b2c0 100644 --- a/pkg/utils/file/file.go +++ b/pkg/utils/file/file.go @@ -8,6 +8,8 @@ import ( "mime/multipart" "os" "path" + path2 "path" + "path/filepath" "strconv" "strings" ) @@ -226,6 +228,17 @@ func CopyFile(src, dst string) error { return os.Chmod(dst, srcinfo.Mode()) } +//Check for duplicate file names +func GetNoDuplicateFileName(fullPath string) string { + path, fileName := filepath.Split(fullPath) + fileSuffix := path2.Ext(fileName) + filenameOnly := strings.TrimSuffix(fileName, fileSuffix) + for i := 0; Exists(fullPath); i++ { + fullPath = path2.Join(path, filenameOnly+"("+strconv.Itoa(i+1)+")"+fileSuffix) + } + return fullPath +} + // Dir copies a whole directory recursively func CopyDir(src string, dst string) error { var err error diff --git a/pkg/utils/httper/httper.go b/pkg/utils/httper/httper.go index 09848d9..651453f 100644 --- a/pkg/utils/httper/httper.go +++ b/pkg/utils/httper/httper.go @@ -3,6 +3,7 @@ package httper import ( "bytes" "encoding/json" + "fmt" "io" "io/ioutil" "net/http" @@ -67,7 +68,8 @@ func Post(url string, data []byte, contentType string, head map[string]string) ( client := &http.Client{Timeout: 5 * time.Second} resp, error := client.Do(req) if error != nil { - panic(error) + fmt.Println(error) + return } defer resp.Body.Close() diff --git a/pkg/utils/ini_helper.go b/pkg/utils/ini_helper.go deleted file mode 100644 index d4b585b..0000000 --- a/pkg/utils/ini_helper.go +++ /dev/null @@ -1 +0,0 @@ -package utils diff --git a/pkg/utils/oasis_err/e.go b/pkg/utils/oasis_err/e.go index 4b1c15c..bb6fcbd 100644 --- a/pkg/utils/oasis_err/e.go +++ b/pkg/utils/oasis_err/e.go @@ -37,13 +37,18 @@ const ( FILE_DOES_NOT_EXIST = 60001 FILE_READ_ERROR = 60002 FILE_DELETE_ERROR = 60003 + DIR_NOT_EXISTS = 60004 //shortcuts SHORTCUTS_URL_ERROR = 70001 - //persion - PERSION_REMOTE_ERROR = 80001 - PERSION_DOWN_NOT_EXIST = 80002 + //person + PERSON_REMOTE_ERROR = 80001 + PERSON_DOWN_NOT_EXIST = 80002 + PERSON_EXIST_DOWNLOAD = 80003 + PERSON_NOT_EXIST_USER = 80004 + PERSON_EXIST_FRIEND = 80005 + PERSON_MYSELF = 80006 ) var MsgFlags = map[int]string{ @@ -82,12 +87,18 @@ var MsgFlags = map[int]string{ // FILE_DOES_NOT_EXIST: "File does not exist", + DIR_NOT_EXISTS: "Directory does not exist", + FILE_READ_ERROR: "File read error", FILE_DELETE_ERROR: "Delete error", SHORTCUTS_URL_ERROR: "URL error", - PERSION_REMOTE_ERROR: "Remote connection error", - PERSION_DOWN_NOT_EXIST: "Download record does not exist", + PERSON_REMOTE_ERROR: "Remote connection error", + PERSON_DOWN_NOT_EXIST: "Download record does not exist", + PERSON_EXIST_DOWNLOAD: "The same download task exists", + PERSON_EXIST_FRIEND: "Friend already exist", + PERSON_NOT_EXIST_USER: "User does not exist", + PERSON_MYSELF: "You can not add yourself", } //获取错误信息 diff --git a/pkg/zerotier/zerotier_api.go b/pkg/zerotier/zerotier_api.go deleted file mode 100644 index f7ad214..0000000 --- a/pkg/zerotier/zerotier_api.go +++ /dev/null @@ -1,47 +0,0 @@ -package zerotier - -import ( - httper2 "github.com/IceWhaleTech/CasaOS/pkg/utils/httper" - "github.com/tidwall/gjson" - "net/http" -) - -func PostData(url, token string, data string) interface{} { - - body, code := httper2.ZeroTierPostJson(url, data, GetHead(token)) - - if code != http.StatusOK { - return "" - } - result := gjson.Parse(body) - return result.Value() -} - -func GetData(url, token string) interface{} { - - body, code := httper2.ZeroTierGet(url, GetHead(token)) - - if code != http.StatusOK { - return "" - } - result := gjson.Parse(body) - return result.Value() -} - -func DeleteMember(url, token string) interface{} { - - body, code := httper2.ZeroTierDelete(url, GetHead(token)) - - if code != http.StatusOK { - return "" - } - result := gjson.Parse(body) - return result.Value() -} - -func GetHead(token string) map[string]string { - var head = make(map[string]string) - head["Authorization"] = "Bearer " + token - head["Content-Type"] = "application/json" - return head -} diff --git a/route/init.go b/route/init.go index 4db6a6f..3859361 100644 --- a/route/init.go +++ b/route/init.go @@ -4,6 +4,7 @@ import ( "encoding/json" "encoding/xml" "fmt" + "runtime" "strconv" "time" @@ -231,10 +232,10 @@ func CheckSerialDiskMount() { } service.MyService.Disk().RemoveLSBLKCache() command.OnlyExec("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;AutoRemoveUnuseDir") - } func Update2_3() { command.OnlyExec("source " + config.AppInfo.ProjectPath + "/shell/assist.sh") + } func CheckToken2_11() { if len(config.ServerInfo.Token) == 0 { @@ -253,20 +254,34 @@ func CheckToken2_11() { // config.AppInfo.RootPath = "/casaOS" // config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) // } - if len(config.FileSettingInfo.ShareDir) == 0 { - config.Cfg.Section("file").Key("ShareDir").SetValue("/DATA") - config.FileSettingInfo.ShareDir[0] = "/DATA" - - config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) - } - + sysType := runtime.GOOS if len(config.FileSettingInfo.DownloadDir) == 0 { - config.Cfg.Section("file").Key("DownloadDir").SetValue("/DATA/share") - config.FileSettingInfo.DownloadDir = "/DATA/share" + downloadPath := "/DATA/Downloads" + if sysType == "windows" { + downloadPath = "C:\\CasaOS\\DATA\\Downloads" + } + if sysType == "darwin" { + downloadPath = "~/CasaOS/DATA/Downloads" + } + config.Cfg.Section("file").Key("DownloadDir").SetValue(downloadPath) + config.FileSettingInfo.DownloadDir = downloadPath file.IsNotExistMkDir(config.FileSettingInfo.DownloadDir) config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) } + if len(config.UserInfo.Description) == 0 { + config.Cfg.Section("user").Key("Description").SetValue("nothing") + config.UserInfo.Description = "nothing" + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + } + if len(config.ServerInfo.Handshake) == 0 { + config.Cfg.Section("server").Key("Handshake").SetValue("socket.casaos.io") + config.ServerInfo.Handshake = "socket.casaos.io" + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + } + + service.MyService.System().ExecUSBAutoMountShell(config.ServerInfo.USBAutoMount) + // str := []string{} // str = append(str, "ddd") // str = append(str, "aaa") diff --git a/route/route.go b/route/route.go index 04671dd..80b7eee 100644 --- a/route/route.go +++ b/route/route.go @@ -18,6 +18,7 @@ var OnlineDemo bool = false func InitRouter() *gin.Engine { r := gin.Default() + r.Use(middleware.Cors()) r.Use(gzip.Gzip(gzip.DefaultCompression)) gin.SetMode(config.ServerInfo.RunMode) @@ -52,13 +53,16 @@ func InitRouter() *gin.Engine { //chang head v1UserGroup.POST("/head", v1.PostUserHead) //chang user name - v1UserGroup.PUT("/changusername", v1.PutUserName) + v1UserGroup.PUT("/username", v1.PutUserName) //chang pwd - v1UserGroup.PUT("/changuserpwd", v1.PutUserPwd) + v1UserGroup.PUT("/password", v1.PutUserPwd) //edit user info v1UserGroup.POST("/info", v1.PostUserChangeInfo) v1UserGroup.PUT("/nick", v1.PutUserChangeNick) v1UserGroup.PUT("/desc", v1.PutUserChangeDesc) + v1UserGroup.POST("/person/info", v1.PostUserPersonInfo) + + v1UserGroup.GET("/shareid", v1.GetUserShareID) } @@ -78,51 +82,6 @@ func InitRouter() *gin.Engine { //获取系统信息 v1ZiMaGroup.GET("/sysinfo", v1.SysInfo) } - - v1ZeroTierGroup := v1Group.Group("/zerotier") - v1ZeroTierGroup.Use() - { - //获取zerotier token - v1ZeroTierGroup.POST("/login", v1.ZeroTierGetToken) - //注册zerotier - v1ZeroTierGroup.POST("/register", v1.ZeroTierRegister) - //是否需要登录 - v1ZeroTierGroup.GET("/islogin", v1.ZeroTierIsNeedLogin) - //获取网络列表 - v1ZeroTierGroup.GET("/list", v1.ZeroTierGetNetworkList) - //加入网络 - v1ZeroTierGroup.POST("/join/:id", v1.ZeroTierJoinNetwork) - //离开网络 - v1ZeroTierGroup.POST("/leave/:id", v1.ZeroTierLeaveNetwork) - //详情 - v1ZeroTierGroup.GET("/info/:id", v1.ZeroTierGetNetworkGetInfo) - ////网络状态 - //v1ZeroTierGroup.GET("/status", v1.ZeroTierGetNetworkGetStatus) - //修改网络类型 - //v1ZeroTierGroup.PUT("/type/:id", v1.ZeroTierEditType) - //修改网络类型 - //v1ZeroTierGroup.PUT("/name/:id", v1.ZeroTierEditName) - //修改v6 assign - //v1ZeroTierGroup.PUT("/v6assign/:id", v1.ZeroTierEditV6Assign) - //修改 broadcast - //v1ZeroTierGroup.PUT("/broadcast/:id", v1.ZeroTierEditBroadcast) - //create new network - v1ZeroTierGroup.POST("/create", v1.ZeroTierCreateNetwork) - //获取用户列表 - v1ZeroTierGroup.GET("/member/:id", v1.ZeroTierMemberList) - //修改用户信息 - //v1ZeroTierGroup.PUT("/members/:id/auth/:mId", v1.ZeroTierMemberAuth) - //修改网络用户name - //v1ZeroTierGroup.PUT("/members/:id/name/:mId", v1.ZeroTierMemberName) - v1ZeroTierGroup.DELETE("/members/:id/del/:mId", v1.ZeroTierMemberDelete) - v1ZeroTierGroup.DELETE("/network/:id/del", v1.ZeroTierDeleteNetwork) - //修改网络用户bridge功能 - //v1ZeroTierGroup.PUT("/members/:id/bridge/:mId", v1.ZeroTierMemberBridge) - v1ZeroTierGroup.PUT("/edit/:id", v1.ZeroTierEdit) - v1ZeroTierGroup.GET("/joined/list", v1.ZeroTierJoinedList) - v1ZeroTierGroup.PUT("/member/:id/edit/:mId", v1.ZeroTierMemberEdit) - - } v1DDNSGroup := v1Group.Group("/ddns") v1DDNSGroup.Use() { @@ -201,6 +160,9 @@ func InitRouter() *gin.Engine { v1SysGroup.PUT("/port", v1.PutCasaOSPort) v1SysGroup.POST("/kill", v1.PostKillCasaOS) v1SysGroup.GET("/info", v1.Info) + v1SysGroup.PUT("/usb/off", v1.PutSystemOffUSBAutoMount) + v1SysGroup.GET("/usb/on", v1.PutSystemOnUSBAutoMount) + v1SysGroup.GET("/usb", v1.GetSystemUSBAutoMount) } v1FileGroup := v1Group.Group("/file") v1FileGroup.Use() @@ -216,6 +178,7 @@ func InitRouter() *gin.Engine { v1FileGroup.POST("/create", v1.PostCreateFile) v1FileGroup.GET("/download", v1.GetDownloadFile) + v1FileGroup.GET("/new/download", v1.GetFileDownloadNew) v1FileGroup.POST("/operate", v1.PostOperateFileOrDir) v1FileGroup.DELETE("/delete", v1.DeleteFile) v1FileGroup.PUT("/update", v1.PutFileContent) @@ -289,19 +252,26 @@ func InitRouter() *gin.Engine { { v1SearchGroup.GET("/search", v1.GetSearchList) } - v1PersonGroup := v1Group.Group("/persion") + v1PersonGroup := v1Group.Group("/person") v1PersonGroup.Use() { v1PersonGroup.GET("/test", v1.PersonTest) - v1PersonGroup.GET("/users", v1.GetPersionFriend) - v1PersonGroup.POST("/user", v1.PostAddPersionFriend) - v1PersonGroup.GET("/directory", v1.GetPersionDirectory) - v1PersonGroup.GET("/file", v1.GetPersionFile) - v1PersonGroup.GET("/refile/:uuid", v1.GetPersionReFile) - v1PersonGroup.PUT("/nick/:token", v1.PutPersionNick) - v1PersonGroup.GET("/list", v1.GetPersionDownloadList) - v1PersonGroup.DELETE("/file/:uuid", v1.DeletePersionDownloadFile) - // v1PersonGroup.PUT("/state/:id", v1.PutPersionCancelDownload) //修改下载状态(开始暂停删除) + v1PersonGroup.GET("/users", v1.GetPersonFriend) + v1PersonGroup.POST("/user/:shareids", v1.PostAddPersonFriend) + v1PersonGroup.DELETE("/user/:shareid", v1.DeletePersonFriend) + v1PersonGroup.GET("/directory", v1.GetPersonDirectory) + v1PersonGroup.GET("/file", v1.GetPersonFile) + v1PersonGroup.GET("/refile/:uuid", v1.GetPersonReFile) + v1PersonGroup.PUT("/remarks/:shareid", v1.PutPersonRemarks) + v1PersonGroup.GET("/list", v1.GetPersonDownloadList) + v1PersonGroup.DELETE("/file/:uuid", v1.DeletePersonDownloadFile) + + v1PersonGroup.POST("/share", v1.PostPersonShare) + v1PersonGroup.GET("/share", v1.GetPersonShare) + v1PersonGroup.POST("/down/dir", v1.PostPersonDownDir) + v1PersonGroup.GET("/down/dir", v1.GetPersonDownDir) + v1PersonGroup.PUT("/block/:shareid", v1.PutPersonBlock) + v1PersonGroup.GET("/public", v1.GetPersonPublic) } v1AnalyseGroup := v1Group.Group("/analyse") diff --git a/route/v1/app.go b/route/v1/app.go index 6b2425b..a2b326e 100644 --- a/route/v1/app.go +++ b/route/v1/app.go @@ -248,7 +248,7 @@ func ShareAppFile(c *gin.Context) { // @Tags app // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /app/share [post] +// @Router /app/shares [post] func AppListResourceUsage() { } diff --git a/route/v1/file.go b/route/v1/file.go index 9f3a7c6..f85fbea 100644 --- a/route/v1/file.go +++ b/route/v1/file.go @@ -7,6 +7,7 @@ import ( "io" "io/ioutil" "net/http" + url2 "net/url" "os" "path" "strconv" @@ -17,6 +18,7 @@ import ( oasis_err2 "github.com/IceWhaleTech/CasaOS/pkg/utils/oasis_err" "github.com/IceWhaleTech/CasaOS/service" "github.com/gin-gonic/gin" + "github.com/spf13/afero" ) func downloadReadFile(c *gin.Context) { @@ -157,16 +159,59 @@ func GetDownloadFile(c *gin.Context) { //获取文件的名称 fileName := path.Base(filePath) c.Header("Content-Type", "application/octet-stream") - c.Header("Content-Disposition", "attachment; filename="+fileName) + c.Header("Content-Disposition", "attachment; filename*=utf-8''"+url2.PathEscape(fileName)) c.Header("Content-Transfer-Encoding", "binary") c.Header("Cache-Control", "no-cache") - c.Header("Content-Type", "application/octet-stream") - c.Header("Content-Disposition", "attachment; filename="+fileName) - c.Header("Content-Transfer-Encoding", "binary") c.File(filePath) } +// @Summary download +// @Produce application/json +// @Accept application/json +// @Tags file +// @Security ApiKeyAuth +// @Param path query string true "path of file" +// @Success 200 {string} string "ok" +// @Router /file/new/download [get] +func GetFileDownloadNew(c *gin.Context) { + filePath := c.Query("path") + if len(filePath) == 0 { + c.JSON(http.StatusOK, model.Result{ + Success: oasis_err2.INVALID_PARAMS, + Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS), + }) + return + } + if !file.Exists(filePath) { + c.JSON(http.StatusOK, model.Result{ + Success: oasis_err2.FILE_DOES_NOT_EXIST, + Message: oasis_err2.GetMsg(oasis_err2.FILE_DOES_NOT_EXIST), + }) + return + } + //打开文件 + fileStat, _ := os.Stat(filePath) + var AppFs = afero.NewOsFs() + fileT, _ := AppFs.Open(filePath) + //fileTmp, _ := os.Open(filePath) + //defer fileTmp.Close() + //获取文件的名称 + //fileName := path.Base(filePath) + + //c.Header("Content-Disposition", "attachment; filename*=utf-8''"+url2.PathEscape(fileName)) + //在线 + //c.Header("Content-Disposition", "inline") + // extraHeaders := map[string]string{ + // "Content-Disposition": `attachment; filename="` + url2.PathEscape(fileName) + `"`, + // } + + //c.Header("Cache-Control", "private") + //c.Header("Content-Type", "application/octet-stream") + + http.ServeContent(c.Writer, c.Request, fileStat.Name(), fileStat.ModTime(), fileT) +} + // @Summary 获取目录列表 // @Produce application/json // @Accept application/json diff --git a/route/v1/persion.go b/route/v1/persion.go index 3f7b651..7900fc1 100644 --- a/route/v1/persion.go +++ b/route/v1/persion.go @@ -7,9 +7,12 @@ import ( "net/http" "reflect" "strconv" + "strings" + "time" "github.com/IceWhaleTech/CasaOS/model" "github.com/IceWhaleTech/CasaOS/pkg/config" + "github.com/IceWhaleTech/CasaOS/pkg/utils/file" oasis_err2 "github.com/IceWhaleTech/CasaOS/pkg/utils/oasis_err" "github.com/IceWhaleTech/CasaOS/service" model2 "github.com/IceWhaleTech/CasaOS/service/model" @@ -19,8 +22,10 @@ import ( ) func PersonTest(c *gin.Context) { - token := c.Query("token") + _, err := uuid.FromString(token) + fmt.Println(err) + //service.MyService.Person().GetPersionInfo("fb2333a1-72b2-4cb4-9e31-61ccaffa55b9") msg := model.MessageModel{} @@ -35,45 +40,48 @@ func PersonTest(c *gin.Context) { fmt.Println(err) } fmt.Println(dd) + user := service.MyService.Casa().GetUserInfoByShareId(token) + if reflect.DeepEqual(user, model.UserInfo{}) { + fmt.Println("空数据") + } + fmt.Println(user) c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) } -// @Summary retry download file +// @Summary Retry the file that failed to download // @Produce application/json // @Accept application/json -// @Tags persion +// @Tags person // @Param uui path string true "download uuid" -// @Param path query string true "file path" // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /persion/refile/{uuid} [get] -func GetPersionReFile(c *gin.Context) { +// @Router /person/refile/{uuid} [get] +func GetPersonReFile(c *gin.Context) { - path := c.Query("path") - uuid := c.Param("uuid") - - if len(path) == 0 && len(uuid) == 0 { + uid := c.Param("uuid") + _, err := uuid.FromString(uid) + if err != nil { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } - task := service.MyService.Download().GetDownloadById(uuid) - if reflect.DeepEqual(task, model2.PersionDownloadDBModel{}) { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSION_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSION_REMOTE_ERROR)}) + task := service.MyService.Download().GetDownloadById(uid) + if reflect.DeepEqual(task, model2.PersonDownloadDBModel{}) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSON_REMOTE_ERROR)}) return } token := task.From if _, ok := service.UDPAddressMap[token]; !ok { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSION_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSION_REMOTE_ERROR)}) + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSON_REMOTE_ERROR)}) return } m := model.MessageModel{} - m.Data = path + m.Data = task.Path m.From = config.ServerInfo.Token m.To = token m.Type = types.PERSONDOWNLOAD - m.UUId = uuid + m.UUId = uid go service.Dial(m, false) c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) @@ -82,35 +90,57 @@ func GetPersionReFile(c *gin.Context) { // @Summary download file // @Produce application/json // @Accept application/json -// @Tags persion -// @Param token query string true "opponent token" +// @Tags person +// @Param share_id query string true "opponent share_id" // @Param path query string true "file path" +// @Param file_name query string true "file name" +// @Param local_path query string true "local_path" // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /persion/file [get] -func GetPersionFile(c *gin.Context) { +// @Router /person/file [get] +func GetPersonFile(c *gin.Context) { path := c.Query("path") - token := c.Query("token") - if len(path) == 0 && len(token) == 0 { + localPath := c.Query("local_path") + token := c.Query("share_id") + fileName := c.Query("file_name") + _, err := uuid.FromString(token) + if len(path) == 0 || err != nil || len(localPath) == 0 || len(fileName) == 0 { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } - if _, ok := service.UDPAddressMap[token]; !ok { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSION_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSION_REMOTE_ERROR)}) + if file.CheckNotExist(localPath) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.DIR_NOT_EXISTS, Message: oasis_err2.GetMsg(oasis_err2.DIR_NOT_EXISTS)}) return } + if _, ok := service.UDPAddressMap[token]; !ok { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSON_REMOTE_ERROR)}) + return + } + + if _, ok := service.UDPAddressMap[token]; !ok { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSON_REMOTE_ERROR)}) + return + } + // task id uuid := uuid.NewV4().String() - task := model2.PersionDownloadDBModel{} + task := model2.PersonDownloadDBModel{} task.UUID = uuid - task.Name = "" + task.Name = fileName task.Length = 0 task.From = token + task.Path = path task.Size = 0 task.State = types.DOWNLOADAWAIT + task.Created = time.Now().Unix() task.Type = 0 + task.LocalPath = localPath + if service.MyService.Download().GetDownloadListByPath(task) > 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_EXIST_DOWNLOAD, Message: oasis_err2.GetMsg(oasis_err2.PERSON_EXIST_DOWNLOAD)}) + return + } service.MyService.Download().AddDownloadTask(task) m := model.MessageModel{} @@ -127,79 +157,92 @@ func GetPersionFile(c *gin.Context) { // @Summary delete download file records // @Produce application/json // @Accept application/json -// @Tags persion +// @Tags person // @Param uuid path string true "download uuid" // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /persion/file/{uuid} [delete] -func DeletePersionDownloadFile(c *gin.Context) { +// @Router /person/file/{uuid} [delete] +func DeletePersonDownloadFile(c *gin.Context) { id := c.Param("uuid") - if len(id) == 0 { + _, err := uuid.FromString(id) + if err != nil { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } + task := service.MyService.Download().GetDownloadById(id) + if task.State == types.DOWNLOADING { + m := model.MessageModel{} + m.Data = "" + m.From = config.ServerInfo.Token + m.To = task.From + m.Type = types.PERSONCANCEL + m.UUId = task.UUID + service.CancelList[task.UUID] = task.UUID + service.Dial(m, false) + } service.MyService.Download().DelDownload(id) c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) } -// @Summary get file download list +// @Summary Get file download list // @Produce application/json // @Accept application/json -// @Tags persion -// @Param state query int true "wait:1,downloading:1,pause:2,finish:3,error:4" Enums(0,1,2,4) +// @Tags person +// @Param state query int false "wait:0,downloading:1,pause:2,finish:3,error:4,finished:5" Enums(0,1,2,3,4,5) // @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /persion/list [get] -func GetPersionDownloadList(c *gin.Context) { +// @Success 200 {object} []model2.PersonDownloadDBModel +// @Router /person/list [get] +func GetPersonDownloadList(c *gin.Context) { state := c.DefaultQuery("state", "") list := service.MyService.Download().GetDownloadListByState(state) //if it is downloading, it need to add 'already' - if state == strconv.Itoa(types.DOWNLOADING) { - for i := 0; i < len(list); i++ { + for i := 0; i < len(list); i++ { + if list[i].State == types.DOWNLOADING { tempDir := config.AppInfo.RootPath + "/temp" + "/" + list[i].UUID files, err := ioutil.ReadDir(tempDir) if err == nil { list[i].Already = len(files) } } + list[i].Duration = time.Now().Unix() - list[i].Created } c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: list}) } -// @Summary edit friend's nick +// @Summary edit friend's remarks // @Produce application/json // @Accept application/json -// @Tags persion -// @Param token path string true "token" -// @Param nick formData string true "nick name" +// @Tags person +// @Param remarks formData string true "remarks name" // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /persion/nick/{token} [put] -func PutPersionNick(c *gin.Context) { - token := c.Param("token") - nick := c.PostForm("nick") - if len(token) == 0 || len(nick) == 0 { +// @Router /person/remarks/{shareid} [put] +func PutPersonRemarks(c *gin.Context) { + token := c.Param("shareid") + _, err := uuid.FromString(token) + mark := c.PostForm("remarks") + if err != nil || len(mark) == 0 { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } friend := model2.FriendModel{} friend.Token = token - friend.NickName = nick - service.MyService.Friend().EditFriendNick(friend) + friend.Mark = mark + service.MyService.Friend().EditFriendMark(friend) c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) } -// @Summary get friend list +// @Summary get my friend list // @Produce application/json // @Accept application/json -// @Tags persion +// @Tags person // @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /persion/users [get] -func GetPersionFriend(c *gin.Context) { +// @Success 200 {object} []model2.FriendModel +// @Router /person/users [get] +func GetPersonFriend(c *gin.Context) { list := service.MyService.Friend().GetFriendList() for i := 0; i < len(list); i++ { if v, ok := service.UDPAddressMap[list[i].Token]; ok && len(v) > 0 { @@ -212,51 +255,79 @@ func GetPersionFriend(c *gin.Context) { // @Summary add friend // @Produce application/json // @Accept application/json -// @Tags persion -// @Param token formData int true "Opponent token" +// @Tags person // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /persion/user [post] -func PostAddPersionFriend(c *gin.Context) { - token := c.PostForm("token") - if len(token) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return +// @Router /person/user/{shareids} [post] +func PostAddPersonFriend(c *gin.Context) { + token := c.Param("shareids") + tokenList := strings.Split(token, ",") + + for _, v := range tokenList { + _, err := uuid.FromString(v) + if err != nil { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + + if v == config.ServerInfo.Token { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_MYSELF, Message: oasis_err2.GetMsg(oasis_err2.PERSON_MYSELF)}) + return + } + + udb := service.MyService.Friend().GetFriendById(model2.FriendModel{Token: v}) + if !reflect.DeepEqual(udb, model2.FriendModel{Token: v}) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_EXIST_FRIEND, Message: oasis_err2.GetMsg(oasis_err2.PERSON_EXIST_FRIEND)}) + return + } + + user := service.MyService.Casa().GetUserInfoByShareId(v) + if reflect.DeepEqual(user, model.UserInfo{}) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_NOT_EXIST_USER, Message: oasis_err2.GetMsg(oasis_err2.PERSON_NOT_EXIST_USER)}) + return + } + + message := model.MessageModel{} + message.Type = types.PERSONCONNECTION + message.Data = v + message.From = config.ServerInfo.Token + message.To = v + message.UUId = uuid.NewV4().String() + + go service.Dial(message, true) + + friend := model2.FriendModel{} + friend.Token = v + friend.Avatar = user.Avatar + friend.Block = false + friend.NickName = user.NickName + friend.Profile = user.Desc + friend.Version = user.Version + service.MyService.Friend().AddFriend(friend) } - msg := model.MessageModel{} - msg.Type = types.PERSONCONNECTION - msg.Data = token - msg.From = config.ServerInfo.Token - msg.To = token - msg.UUId = uuid.NewV4().String() - - go service.Dial(msg, true) - - friend := model2.FriendModel{} - friend.Token = token - service.MyService.Friend().AddFriend(friend) c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) } -// @Summary get directory list +// @Summary Get a list of directories // @Produce application/json // @Accept application/json -// @Tags persion -// @Param token query string true "Opponent token" +// @Tags person +// @Param share_id query string true "Opponent share_id" // @Param path query string true "dir path" // @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /persion/directory [get] -func GetPersionDirectory(c *gin.Context) { +// @Success 200 {object} []model.Path +// @Router /person/directory [get] +func GetPersonDirectory(c *gin.Context) { path := c.Query("path") - token := c.Query("token") - if len(path) == 0 && len(token) == 0 { + token := c.Query("share_id") + _, err := uuid.FromString(token) + if len(path) == 0 || err != nil { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } if _, ok := service.UDPAddressMap[token]; !ok { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSION_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSION_REMOTE_ERROR)}) + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PERSON_REMOTE_ERROR, Message: oasis_err2.GetMsg(oasis_err2.PERSON_REMOTE_ERROR)}) return } uuid := uuid.NewV4().String() @@ -282,3 +353,144 @@ func GetPersionDirectory(c *gin.Context) { } c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: dataModel}) } + +// @Summary Modify the download storage directory +// @Produce application/json +// @Accept multipart/form-data +// @Tags person +// @Security ApiKeyAuth +// @Param path formData string true "path" +// @Success 200 {string} string "ok" +// @Router /person/down/dir [post] +func PostPersonDownDir(c *gin.Context) { + + downPath := c.PostForm("path") + + if len(downPath) == 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + if file.CheckNotExist(downPath) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.DIR_NOT_EXISTS, Message: oasis_err2.GetMsg(oasis_err2.DIR_NOT_EXISTS)}) + return + } + config.Cfg.Section("file").Key("DownloadDir").SetValue(downPath) + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + config.FileSettingInfo.DownloadDir = downPath + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) +} + +// @Summary Get the download storage directory +// @Produce application/json +// @Accept application/json +// @Tags person +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /person/down/dir [get] +func GetPersonDownDir(c *gin.Context) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: config.FileSettingInfo.DownloadDir}) +} + +// @Summary Modify the shared directory +// @Produce application/json +// @Accept multipart/form-data +// @Tags person +// @Security ApiKeyAuth +// @Param share formData string true "share" +// @Success 200 {string} string "ok" +// @Router /person/share [post] +func PostPersonShare(c *gin.Context) { + + share := c.PostForm("share") + + if len(share) == 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + + var list []string + json.Unmarshal([]byte(share), &list) + + if len(list) == 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + for _, v := range list { + if !file.Exists(v) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.FILE_ALREADY_EXISTS, Message: oasis_err2.GetMsg(oasis_err2.FILE_ALREADY_EXISTS)}) + return + } + } + + config.Cfg.Section("file").Key("ShareDir").SetValue(strings.Join(list, "|")) + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + config.FileSettingInfo.ShareDir = list + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) +} + +// @Summary Get the shared directory +// @Produce application/json +// @Accept application/json +// @Tags person +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /person/share [get] +func GetPersonShare(c *gin.Context) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: config.FileSettingInfo.ShareDir}) +} + +// @Summary Modify disabled status +// @Produce application/json +// @Accept application/json +// @Tags person +// @Param block formData bool false "Disable or not,Default:false " +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /person/block/{shareid} [put] +func PutPersonBlock(c *gin.Context) { + token := c.Param("shareid") + _, err := uuid.FromString(token) + block, _ := strconv.ParseBool(c.PostForm("block")) + if err != nil { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + friend := model2.FriendModel{} + friend.Token = token + friend.Block = block + service.MyService.Friend().EditFriendBlock(friend) + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) +} + +// @Summary Delete my friend +// @Produce application/json +// @Accept application/json +// @Tags person +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /person/user/{shareid} [delete] +func DeletePersonFriend(c *gin.Context) { + token := c.Param("shareid") + _, err := uuid.FromString(token) + if err != nil { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + friend := model2.FriendModel{} + friend.Token = token + + service.MyService.Friend().DeleteFriend(friend) + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) +} + +// @Summary Get public person +// @Produce application/json +// @Accept application/json +// @Tags person +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /person/public [delete] +func GetPersonPublic(c *gin.Context) { + list := service.MyService.Casa().GetPersonPublic() + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: list}) +} diff --git a/route/v1/system.go b/route/v1/system.go index 472acdd..d30e93a 100644 --- a/route/v1/system.go +++ b/route/v1/system.go @@ -251,6 +251,60 @@ func PostKillCasaOS(c *gin.Context) { os.Exit(0) } +// @Summary Turn off usb auto-mount +// @Produce application/json +// @Accept application/json +// @Tags sys +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /sys/usg/off [put] +func PutSystemOffUSBAutoMount(c *gin.Context) { + service.MyService.System().UpdateUSBAutoMount("False") + service.MyService.System().ExecUSBAutoMountShell("False") + c.JSON(http.StatusOK, + model.Result{ + Success: oasis_err.SUCCESS, + Message: oasis_err.GetMsg(oasis_err.SUCCESS), + }) +} + +// @Summary Turn off usb auto-mount +// @Produce application/json +// @Accept application/json +// @Tags sys +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /sys/usb [get] +func GetSystemUSBAutoMount(c *gin.Context) { + state := "True" + if config.ServerInfo.USBAutoMount == "False" { + state = "False" + } + c.JSON(http.StatusOK, + model.Result{ + Success: oasis_err.SUCCESS, + Message: oasis_err.GetMsg(oasis_err.SUCCESS), + Data: state, + }) +} + +// @Summary Turn off usb auto-mount +// @Produce application/json +// @Accept application/json +// @Tags sys +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /sys/usb/on [put] +func PutSystemOnUSBAutoMount(c *gin.Context) { + service.MyService.System().UpdateUSBAutoMount("True") + service.MyService.System().ExecUSBAutoMountShell("True") + c.JSON(http.StatusOK, + model.Result{ + Success: oasis_err.SUCCESS, + Message: oasis_err.GetMsg(oasis_err.SUCCESS), + }) +} + // @Summary system info // @Produce application/json // @Accept application/json @@ -374,7 +428,7 @@ func Info(c *gin.Context) { if n.Name == netCardName { item := *(*model.IOCountersStat)(unsafe.Pointer(&n)) item.State = strings.TrimSpace(service.MyService.ZiMa().GetNetState(n.Name)) - item.DateTime = time.Now() + item.Time = time.Now().Unix() newNet = append(newNet, item) break } diff --git a/route/v1/user.go b/route/v1/user.go index a4d3a42..0ff05cd 100644 --- a/route/v1/user.go +++ b/route/v1/user.go @@ -121,7 +121,7 @@ func PostUserHead(c *gin.Context) { // @Param oldname formData string true "Old user name" // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /user/changusername [put] +// @Router /user/username [put] func PutUserName(c *gin.Context) { if config.ServerInfo.LockAccount { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ACCOUNT_LOCK, Message: oasis_err2.GetMsg(oasis_err2.ACCOUNT_LOCK)}) @@ -142,14 +142,14 @@ func PutUserName(c *gin.Context) { // @Accept multipart/form-data // @Tags user // @Param pwd formData string true "Password" -// @Param oldpwd formData string true "Old password" +// @Param old_pwd formData string true "Old password" // @Security ApiKeyAuth // @Success 200 {string} string "ok" -// @Router /user/changuserpwd [put] +// @Router /user/password [put] func PutUserPwd(c *gin.Context) { - oldpwd := c.PostForm("oldpwd") + oldPwd := c.PostForm("old_pwd") pwd := c.PostForm("pwd") - if config.UserInfo.PWD != oldpwd { + if config.UserInfo.PWD != oldPwd { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PWD_INVALID_OLD, Message: oasis_err2.GetMsg(oasis_err2.PWD_INVALID_OLD)}) return } @@ -199,7 +199,7 @@ func PostUserChangeInfo(c *gin.Context) { c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: data}) } -// @Summary edit user info +// @Summary edit user nick // @Produce application/json // @Accept multipart/form-data // @Tags user @@ -211,17 +211,18 @@ func PutUserChangeNick(c *gin.Context) { nickName := c.PostForm("nick_name") - if len(nickName) > 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PWD_INVALID, Message: oasis_err2.GetMsg(oasis_err2.PWD_INVALID)}) + if len(nickName) == 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } user_service.SetUser("", "", "", "", "", nickName) data := make(map[string]string, 1) data["nick_name"] = config.UserInfo.NickName + go service.MyService.Casa().PushUserInfo() c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: data}) } -// @Summary edit user info +// @Summary edit user description // @Produce application/json // @Accept multipart/form-data // @Tags user @@ -232,13 +233,38 @@ func PutUserChangeNick(c *gin.Context) { func PutUserChangeDesc(c *gin.Context) { desc := c.PostForm("description") - if len(desc) > 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.PWD_INVALID, Message: oasis_err2.GetMsg(oasis_err2.PWD_INVALID)}) + if len(desc) == 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) return } user_service.SetUser("", "", "", "", desc, "") data := make(map[string]string, 1) data["description"] = config.UserInfo.Description + go service.MyService.Casa().PushUserInfo() + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: data}) +} + +// @Summary Modify user person information (Initialization use) +// @Produce application/json +// @Accept multipart/form-data +// @Tags user +// @Param nick_name formData string false "user nick name" +// @Param description formData string false "Description" +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /user/person/info [post] +func PostUserPersonInfo(c *gin.Context) { + desc := c.PostForm("description") + nickName := c.PostForm("nick_name") + if len(desc) == 0 || len(nickName) == 0 { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) + return + } + user_service.SetUser("", "", "", "", desc, nickName) + data := make(map[string]string, 2) + data["description"] = config.UserInfo.Description + data["nick_name"] = config.UserInfo.NickName + go service.MyService.Casa().PushUserInfo() c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: data}) } @@ -262,3 +288,14 @@ func GetUserInfo(c *gin.Context) { Data: u, }) } + +// @Summary Get my shareId +// @Produce application/json +// @Accept application/json +// @Tags user +// @Security ApiKeyAuth +// @Success 200 {string} string "ok" +// @Router /user/shareid [get] +func GetUserShareID(c *gin.Context) { + c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: config.ServerInfo.Token}) +} diff --git a/route/v1/zerotier.go b/route/v1/zerotier.go deleted file mode 100644 index 0966ef9..0000000 --- a/route/v1/zerotier.go +++ /dev/null @@ -1,475 +0,0 @@ -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" -) - -// @Summary 登录zerotier获取token -// @Produce application/json -// @Accept multipart/form-data -// @Tags zerotier -// @Param username formData string true "User name" -// @Param pwd formData string true "password" -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/login [post] -func ZeroTierGetToken(c *gin.Context) { - username := c.PostForm("username") - pwd := c.PostForm("pwd") - if len(username) == 0 || len(pwd) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - errInfo := service.MyService.ZeroTier().GetToken(username, pwd) - - if len(errInfo) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.GET_TOKEN_ERROR)}) - } else { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) - } -} - -// @Summary 注册zerotier -// @Produce application/json -// @Accept multipart/form-data -// @Tags zerotier -// @Param firstName formData string true "first name" -// @Param pwd formData string true "password" -// @Param email formData string true "email" -// @Param lastName formData string true "last name" -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/register [post] -func ZeroTierRegister(c *gin.Context) { - firstName := c.PostForm("firstName") - pwd := c.PostForm("pwd") - email := c.PostForm("email") - lastName := c.PostForm("lastName") - if len(firstName) == 0 || len(pwd) == 0 || len(email) == 0 || len(lastName) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - errInfo := service.MyService.ZeroTier().ZeroTierRegister(email, lastName, firstName, pwd) - if len(errInfo) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) - } else { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: errInfo}) - } -} - -// @Summary 是否需要登录zerotier -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Success 200 {string} string "false:需要登录,true:不需要登录" -// @Router /zerotier/islogin [get] -func ZeroTierIsNeedLogin(c *gin.Context) { - if len(config.ZeroTierInfo.Token) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: false}) - } else { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: true}) - } -} - -// @Summary 获取zerotier网络列表 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/list [get] -func ZeroTierGetNetworkList(c *gin.Context) { - jsonList, joined := service.MyService.ZeroTier().ZeroTierNetworkList(config.ZeroTierInfo.Token) - rdata := make(map[string]interface{}) - rdata["network_list"] = jsonList - rdata["joined"] = joined - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: rdata}) -} - -// @Summary 获取zerotier网络详情 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Param id path string true "network id" -// @Success 200 {string} string "ok" -// @Router /zerotier/info/{id} [get] -func ZeroTierGetNetworkGetInfo(c *gin.Context) { - id := c.Param("id") - if len(id) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - info, joined := service.MyService.ZeroTier().ZeroTierGetInfo(config.ZeroTierInfo.Token, id) - rdata := make(map[string]interface{}) - rdata["info"] = info - rdata["joined"] = joined - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: rdata}) -} - -//// @Summary 获取zerotier网络状态 -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Success 200 {string} string "ok" -//// @Router /zerotier/status [get] -//func ZeroTierGetNetworkGetStatus(c *gin.Context) { -// status := service.MyService.ZeroTier().ZeroTierGetStatus(config.ZeroTierInfo.Token) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: status}) -//} - -//// @Summary 修改网络类型 -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param type formData string true "Private true/false" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/type/{id} [put] -//func ZeroTierEditType(c *gin.Context) { -// id := c.Param("id") -// t := c.PostForm("type") -// if len(id) == 0 || len(t) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// postData := `{"config":{"private":` + t + `}}` -// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -//// @Summary 修改名称 -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param name formData string true "需要过滤特殊字符串" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/name/{id} [put] -//func ZeroTierEditName(c *gin.Context) { -// id := c.Param("id") -// name := c.PostForm("name") -// if len(id) == 0 || len(name) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// postData := `{"config":{"name":"` + name + `"}}` -// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -//// @Summary V6Assign (注意三个属性需要一起传过来,不传的会被zerotier设置成false) -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param v6plan formData string false "true/false" -//// @Param rfc formData string false "true/false" -//// @Param auto formData string false "true/false" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/v6assign/{id} [put] -//func ZeroTierEditV6Assign(c *gin.Context) { -// id := c.Param("id") -// v6plan := c.PostForm("v6plan") -// rfc := c.PostForm("rfc") -// auto := c.PostForm("auto") -// if len(id) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// var spicing string -// if len(v6plan) > 0 { -// spicing = `"6plane":` + v6plan -// } -// if len(rfc) > 0 { -// if len(spicing) > 0 { -// spicing += "," -// } -// spicing += `"rfc4193":` + rfc -// } -// -// if len(auto) > 0 { -// if len(spicing) > 0 { -// spicing += "," -// } -// spicing += `"zt":` + auto -// } -// postData := `{"config":{"v6AssignMode":{` + spicing + `}}}` -// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -//// @Summary Broadcast -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param broadcast formData string true "true/false" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/broadcast/{id} [put] -//func ZeroTierEditBroadcast(c *gin.Context) { -// id := c.Param("id") -// broadcast := c.PostForm("broadcast") -// if len(id) == 0 || len(broadcast) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// postData := `{"config":{"enableBroadcast":` + broadcast + `}}` -// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -// @Summary 网络列表 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Param id path string true "network id" -// @Success 200 {string} string "ok" -// @Router /zerotier/member/{id} [get] -func ZeroTierMemberList(c *gin.Context) { - id := c.Param("id") - if len(id) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - info := service.MyService.ZeroTier().MemberList(config.ZeroTierInfo.Token, id) - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -} - -// @Summary create new network -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/create [post] -func ZeroTierCreateNetwork(c *gin.Context) { - info := service.MyService.ZeroTier().CreateNetwork(config.ZeroTierInfo.Token) - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -} - -//// @Summary 通过/拒绝客户端 -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param mId path string true "member_id" -//// @Param auth formData string true "true/false" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/member/{id}/auth/{mId} [put] -//func ZeroTierMemberAuth(c *gin.Context) { -// id := c.Param("id") -// mId := c.Param("mId") -// auth := c.PostForm("auth") -// if len(id) == 0 || len(mId) == 0 || len(auth) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// postData := `{"config":{"authorized":` + auth + `}}` -// info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, postData, id, mId) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -//// @Summary 修改名字 -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param mId path string true "member_id" -//// @Param name formData string true "name" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/member/{id}/name/{mId} [put] -//func ZeroTierMemberName(c *gin.Context) { -// id := c.Param("id") -// mId := c.Param("mId") -// name := c.PostForm("name") -// if len(id) == 0 || len(mId) == 0 || len(name) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// postData := `{"name":"` + name + `"}` -// info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, postData, id, mId) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -//// @Summary 修改桥接 -//// @Produce application/json -//// @Accept application/json -//// @Tags zerotier -//// @Security ApiKeyAuth -//// @Param id path string true "network id" -//// @Param mId path string true "member_id" -//// @Param bridge formData string true "true/false" -//// @Success 200 {string} string "ok" -//// @Router /zerotier/member/{id}/bridge/{mId} [put] -//func ZeroTierMemberBridge(c *gin.Context) { -// id := c.Param("id") -// mId := c.Param("mId") -// bridge := c.PostForm("bridge") -// if len(id) == 0 || len(mId) == 0 || len(bridge) == 0 { -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) -// return -// } -// postData := `{"config":{"activeBridge":` + bridge + `}}` -// info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, postData, id, mId) -// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -//} - -// @Summary 修改网络 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Param id path string true "network id" -// @Param json formData string true "json数据" -// @Success 200 {string} string "ok" -// @Router /zerotier/edit/{id} [put] -func ZeroTierEdit(c *gin.Context) { - id := c.Param("id") - json := c.PostForm("json") - if len(id) == 0 || len(json) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, json, id) - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -} - -// @Summary 获取已加入的网络 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/joined/list [get] -func ZeroTierJoinedList(c *gin.Context) { - info := service.MyService.ZeroTier().GetJoinNetworks() - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: json2.RawMessage(info)}) -} - -// @Summary 修改网络用户信息 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Param id path string true "network id" -// @Param mId path string true "mId" -// @Param json formData string true "json数据" -// @Success 200 {string} string "ok" -// @Router /zerotier/member/{id}/edit/{mId} [put] -func ZeroTierMemberEdit(c *gin.Context) { - id := c.Param("id") - mId := c.Param("mId") - json := c.PostForm("json") - if len(id) == 0 || len(json) == 0 || len(mId) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, json, id, mId) - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -} - -// @Summary 删除网络中的用户 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Param id path string true "network id" -// @Param mId path string true "member_id" -// @Success 200 {string} string "ok" -// @Router /zerotier/member/{id}/del/{mId} [delete] -func ZeroTierMemberDelete(c *gin.Context) { - id := c.Param("id") - mId := c.Param("mId") - if len(id) == 0 || len(mId) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - info := service.MyService.ZeroTier().DeleteMember(config.ZeroTierInfo.Token, id, mId) - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -} - -// @Summary 删除网络 -// @Produce application/json -// @Accept application/json -// @Tags zerotier -// @Security ApiKeyAuth -// @Param id path string true "network id" -// @Success 200 {string} string "ok" -// @Router /zerotier/network/{id}/del [delete] -func ZeroTierDeleteNetwork(c *gin.Context) { - id := c.Param("id") - if len(id) == 0 { - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)}) - return - } - info := service.MyService.ZeroTier().DeleteNetwork(config.ZeroTierInfo.Token, id) - c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info}) -} - -// @Summary 加入网络 -// @Produce application/json -// @Accept multipart/form-data -// @Tags zerotier -// @Param id path string true "network id" -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/join/{id} [post] -func ZeroTierJoinNetwork(c *gin.Context) { - networkId := c.Param("id") - 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)}) -} - -// @Summary 获取zerotier网络列表 -// @Produce application/json -// @Accept multipart/form-data -// @Tags zerotier -// @Param id path string true "network id" -// @Security ApiKeyAuth -// @Success 200 {string} string "ok" -// @Router /zerotier/leave/{id} [post] -func ZeroTierLeaveNetwork(c *gin.Context) { - networkId := c.Param("id") - - 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/route/v1/zima_info.go b/route/v1/zima_info.go index fa7ba9e..91bfda6 100644 --- a/route/v1/zima_info.go +++ b/route/v1/zima_info.go @@ -73,7 +73,7 @@ func NetInfo(c *gin.Context) { if n.Name == netCardName { item := *(*model.IOCountersStat)(unsafe.Pointer(&n)) item.State = strings.TrimSpace(service.MyService.ZiMa().GetNetState(n.Name)) - item.DateTime = time.Now() + item.Time = time.Now().Unix() newNet = append(newNet, item) break } diff --git a/service/casa.go b/service/casa.go index 62c890f..1c51da9 100644 --- a/service/casa.go +++ b/service/casa.go @@ -22,6 +22,9 @@ type CasaService interface { PushHeart(id, t string, language string) PushAppAnalyse(uuid, t string, name, language string) PushConnectionStatus(uuid, err string, from, to, event string) + PushUserInfo() + GetUserInfoByShareId(shareId string) model.UserInfo + GetPersonPublic() (list []model.FriendsModel) } type casaService struct { @@ -118,7 +121,6 @@ func GetToken() string { } go func() { str := httper2.Get(config.ServerInfo.ServerApi+"/token", nil) - t <- gjson.Get(str, "data").String() }() auth = <-t @@ -178,13 +180,54 @@ func (o *casaService) PushConnectionStatus(uuid, err string, from, to, event str head["Authorization"] = GetToken() - infoS := httper2.Post(config.ServerInfo.ServerApi+"/v1/analyse/app", b, "application/json", head) + infoS := httper2.Post(config.ServerInfo.ServerApi+"/v1/analyse/connect", b, "application/json", head) + + info := model.ServerAppList{} + json2.Unmarshal([]byte(gjson.Get(infoS, "data").String()), &info) + +} +func (o *casaService) PushUserInfo() { + m := model.UserInfo{} + m.Desc = config.UserInfo.Description + m.Avatar = config.UserInfo.Avatar + m.NickName = config.UserInfo.NickName + m.ShareId = config.ServerInfo.Token + b, _ := json.Marshal(m) + + head := make(map[string]string) + + head["Authorization"] = GetToken() + + infoS := httper2.Post(config.ServerInfo.ServerApi+"/v1/user/info", b, "application/json", head) info := model.ServerAppList{} json2.Unmarshal([]byte(gjson.Get(infoS, "data").String()), &info) } +func (o *casaService) GetUserInfoByShareId(shareId string) model.UserInfo { + + head := make(map[string]string) + + head["Authorization"] = GetToken() + + infoS := httper2.Get(config.ServerInfo.ServerApi+"/v1/user/info/"+shareId, head) + + info := model.UserInfo{} + json2.Unmarshal([]byte(gjson.Get(infoS, "data").String()), &info) + return info +} +func (o *casaService) GetPersonPublic() (list []model.FriendsModel) { + head := make(map[string]string) + + head["Authorization"] = GetToken() + + listS := httper2.Get(config.ServerInfo.ServerApi+"/v1/person/public", head) + + json2.Unmarshal([]byte(gjson.Get(listS, "data").String()), &list) + + return list +} func NewCasaService() CasaService { return &casaService{} } diff --git a/service/download.go b/service/download.go index d007c31..b2b2c46 100644 --- a/service/download.go +++ b/service/download.go @@ -6,43 +6,51 @@ import ( ) type DownloadService interface { - AddDownloadTask(m model2.PersionDownloadDBModel) //添加下载任务 - EditDownloadState(m model2.PersionDownloadDBModel) //只修改状态 - SaveDownload(m model2.PersionDownloadDBModel) + AddDownloadTask(m model2.PersonDownloadDBModel) //添加下载任务 + EditDownloadState(m model2.PersonDownloadDBModel) //只修改状态 + SaveDownload(m model2.PersonDownloadDBModel) DelDownload(uuid string) - GetDownloadById(uuid string) model2.PersionDownloadDBModel - GetDownloadListByState(state string) []model2.PersionDownloadDBModel - SetDownloadError(m model2.PersionDownloadDBModel) + GetDownloadById(uuid string) model2.PersonDownloadDBModel + GetDownloadListByState(state string) []model2.PersonDownloadDBModel + SetDownloadError(m model2.PersonDownloadDBModel) + GetDownloadListByPath(m model2.PersonDownloadDBModel) int } type downloadService struct { db *gorm.DB } -func (d *downloadService) AddDownloadTask(m model2.PersionDownloadDBModel) { +func (d *downloadService) GetDownloadListByPath(m model2.PersonDownloadDBModel) int { + var list []model2.PersonDownloadDBModel + d.db.Select("path").Where("path = ? AND `from` = ? AND state = 0", m.Path, m.From).Find(&list) + return len(list) +} + +func (d *downloadService) AddDownloadTask(m model2.PersonDownloadDBModel) { + d.db.Create(&m) } -func (d *downloadService) EditDownloadState(m model2.PersionDownloadDBModel) { +func (d *downloadService) EditDownloadState(m model2.PersonDownloadDBModel) { + d.db.Model(&m).Where("uuid = ?", m.UUID).Update("state", m.State) } //failed during download -func (d *downloadService) SetDownloadError(m model2.PersionDownloadDBModel) { +func (d *downloadService) SetDownloadError(m model2.PersonDownloadDBModel) { d.db.Model(&m).Updates(m) } func (d *downloadService) DelDownload(uuid string) { - var m model2.PersionDownloadDBModel + var m model2.PersonDownloadDBModel d.db.Where("uuid = ?", uuid).Delete(&m) } -func (d *downloadService) GetDownloadById(uuid string) model2.PersionDownloadDBModel { - var m model2.PersionDownloadDBModel +func (d *downloadService) GetDownloadById(uuid string) model2.PersonDownloadDBModel { + var m model2.PersonDownloadDBModel d.db.Model(m).Where("uuid = ?", uuid).First(&m) return m } -func (d *downloadService) GetDownloadListByState(state string) (list []model2.PersionDownloadDBModel) { +func (d *downloadService) GetDownloadListByState(state string) (list []model2.PersonDownloadDBModel) { if len(state) == 0 { d.db.Find(&list) - } else { d.db.Where("state = ?", state).Find(&list) } @@ -50,7 +58,7 @@ func (d *downloadService) GetDownloadListByState(state string) (list []model2.Pe return } -func (d *downloadService) SaveDownload(m model2.PersionDownloadDBModel) { +func (d *downloadService) SaveDownload(m model2.PersonDownloadDBModel) { d.db.Save(&m) } func NewDownloadService(db *gorm.DB) DownloadService { diff --git a/service/friend.go b/service/friend.go index 7a19ff0..23e7ad9 100644 --- a/service/friend.go +++ b/service/friend.go @@ -10,7 +10,8 @@ import ( type FriendService interface { AddFriend(m model2.FriendModel) DeleteFriend(m model2.FriendModel) - EditFriendNick(m model2.FriendModel) + EditFriendMark(m model2.FriendModel) + EditFriendBlock(m model2.FriendModel) GetFriendById(m model2.FriendModel) model2.FriendModel GetFriendList() (list []model2.FriendModel) UpdateAddFriendType(m model2.FriendModel) @@ -27,17 +28,19 @@ func (p *friendService) AddFriend(m model2.FriendModel) { func (p *friendService) DeleteFriend(m model2.FriendModel) { p.db.Where("token = ?", m.Token).Delete(&m) } -func (p *friendService) EditFriendNick(m model2.FriendModel) { - p.db.Model(&m).Where("token = ?", m.Token).Update("nick_name", m.NickName) +func (p *friendService) EditFriendMark(m model2.FriendModel) { + p.db.Model(&m).Where("token = ?", m.Token).Update("mark", m.Mark) +} +func (p *friendService) EditFriendBlock(m model2.FriendModel) { + p.db.Model(&m).Where("token = ?", m.Token).Update("block", m.Block) } - func (p *friendService) GetFriendById(m model2.FriendModel) model2.FriendModel { p.db.Model(m).Where("token = ?", m.Token).First(&m) return m } func (p *friendService) GetFriendList() (list []model2.FriendModel) { - p.db.Select("nick_name", "avatar", "name", "profile", "token", "state").Find(&list) + p.db.Select("nick_name", "avatar", "profile", "token", "state", "mark", "block", "version").Find(&list) return list } diff --git a/service/model/o_download.go b/service/model/o_download.go index f9af0c5..5c8b1a4 100644 --- a/service/model/o_download.go +++ b/service/model/o_download.go @@ -1,21 +1,24 @@ package model -type PersionDownloadDBModel struct { +type PersonDownloadDBModel struct { UUID string `gorm:"column:uuid;primary_key" json:"uuid"` - State int `json:"state"` // - Type int `json:"type"` //defult 1 - Name string `json:"name"` //file name - Size int64 `json:"size"` //file size - BlockSize int `json:"block_size"` - Length int `json:"length"` //slice length - Hash string `json:"hash"` - Error string `json:"error"` - From string `json:"from"` - Already int `json:"already" gorm:"-"` - CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` - UpdatedAt int64 `gorm:"autoCreateTime;autoUpdateTime" json:"updated_at"` + State int `json:"state"` // + Type int `json:"type"` //defult 1 + Name string `json:"name"` //file name + Size int64 `json:"size"` //file size + BlockSize int `json:"block_size"` //Size of each file block + Length int `json:"length"` //slice length + Hash string `json:"hash"` //File hash value + Error string `json:"error"` // + From string `json:"from"` //Error message + Path string `json:"path"` //Full path to the file + Already int `json:"already" gorm:"-"` //Folder blocks that have been downloaded + LocalPath string `json:"local_path"` //The address where the file is saved after download + Duration int64 `json:"duration" gorm:"-"` //Length of time + Created int64 `gorm:"autoCreateTime" json:"created"` + Updated int64 `gorm:"autoCreateTime;autoUpdateTime" json:"updated"` } -func (p *PersionDownloadDBModel) TableName() string { - return "o_persion_download" +func (p *PersonDownloadDBModel) TableName() string { + return "o_person_download" } diff --git a/service/model/o_friend.go b/service/model/o_friend.go index 56693bc..3d59aa9 100644 --- a/service/model/o_friend.go +++ b/service/model/o_friend.go @@ -1,15 +1,17 @@ package model type FriendModel struct { - State int `json:"state"` //备用 + State int `json:"state"` //Reserved CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` UpdatedAt int64 `gorm:"autoCreateTime;autoUpdateTime" json:"updated_at"` - NickName string `json:"nick_name"` //custom name - Avatar string `json:"avatar"` //头像 - Name string `json:"name"` + NickName string `json:"nick_name"` + Mark string `json:"mark"` //Remarks + Block bool `json:"block"` //Disable or not + Avatar string `json:"avatar"` //User avatar Token string `gorm:"column:token;primary_key" json:"token"` - Profile string `json:"profile"` + Profile string `json:"profile"` //Description OnLine bool `json:"on_line" gorm:"-"` + Version int `json:"version"` } func (p *FriendModel) TableName() string { diff --git a/service/notify.go b/service/notify.go index 33aa539..fb56c76 100644 --- a/service/notify.go +++ b/service/notify.go @@ -18,6 +18,7 @@ type NotifyServer interface { DelLog(id string) GetList(c int) (list []model.AppNotify) MarkRead(id string, state int) + SendText(m model.AppNotify) } type notifyServer struct { @@ -102,6 +103,26 @@ func SendMeg() { // } } +func (i notifyServer) SendText(m model.AppNotify) { + list := []model.AppNotify{} + list = append(list, m) + json, _ := json2.Marshal(list) + var temp []*websocket.Conn + for _, v := range WebSocketConns { + + err := v.WriteMessage(1, json) + if err == nil { + temp = append(temp, v) + } + } + WebSocketConns = temp + + if len(WebSocketConns) == 0 { + SocketRun = false + } + +} + func NewNotifyService(db *gorm.DB) NotifyServer { return ¬ifyServer{db: db} } diff --git a/service/person.go b/service/person.go index 5a3695d..25273ed 100644 --- a/service/person.go +++ b/service/person.go @@ -17,6 +17,7 @@ import ( "github.com/IceWhaleTech/CasaOS/pkg/quic_helper" "github.com/IceWhaleTech/CasaOS/pkg/utils/file" httper2 "github.com/IceWhaleTech/CasaOS/pkg/utils/httper" + port2 "github.com/IceWhaleTech/CasaOS/pkg/utils/port" model2 "github.com/IceWhaleTech/CasaOS/service/model" "github.com/IceWhaleTech/CasaOS/types" "github.com/lucas-clemente/quic-go" @@ -32,6 +33,7 @@ type personService struct { } var IpInfo model.PersionModel +var CancelList map[string]string func PushIpInfo(token string) { @@ -63,9 +65,16 @@ var StreamList map[string]quic.Stream var ServiceMessage chan model.MessageModel func UDPService() { + port := 0 + if len(config.ServerInfo.UDPPort) > 0 { + port, _ = strconv.Atoi(config.ServerInfo.UDPPort) + if port != 0 && !port2.IsPortAvailable(port, "udp") { + port = 0 + } + } srcAddr := &net.UDPAddr{ - IP: net.IPv4zero, Port: 9904} + IP: net.IPv4zero, Port: port} var err error UDPConn, err = net.ListenUDP("udp", srcAddr) if err != nil { @@ -146,6 +155,7 @@ func ProcessingContent(stream quic.Stream) { prefixByte := make([]byte, 6) _, err := io.ReadFull(stream, prefixByte) if err != nil { + fmt.Println(err) return } prefixLength, err := strconv.Atoi(string(prefixByte)) @@ -166,14 +176,22 @@ func ProcessingContent(stream quic.Stream) { //nothing continue } else if m.Type == types.PERSONDIRECTORY { + friend := model2.FriendModel{} + friend.Token = m.From var list []model.Path - if m.Data.(string) == "" || m.Data.(string) == "/" { - for _, v := range config.FileSettingInfo.ShareDir { - tempList := MyService.ZiMa().GetDirPath(v) - list = append(list, tempList...) + rFriend := MyService.Friend().GetFriendById(friend) + if !reflect.DeepEqual(rFriend, model2.FriendModel{Token: m.From}) && !rFriend.Block { + if m.Data.(string) == "" || m.Data.(string) == "/" { + for _, v := range config.FileSettingInfo.ShareDir { + //tempList := MyService.ZiMa().GetDirPath(v) + temp := MyService.ZiMa().GetDirPathOne(v) + list = append(list, temp) + } + } else { + list = MyService.ZiMa().GetDirPath(m.Data.(string)) } } else { - list = MyService.ZiMa().GetDirPath(m.Data.(string)) + list = []model.Path{} } m.To = m.From m.Data = list @@ -185,6 +203,7 @@ func ProcessingContent(stream quic.Stream) { SendFileData(stream, m.Data.(string), m.From, m.UUId) break } else if m.Type == types.PERSONADDFRIEND { + fmt.Println("有用户来请求加好友", m) friend := model2.FriendModel{} dataModelByte, _ := json.Marshal(m.Data) err := json.Unmarshal(dataModelByte, &friend) @@ -196,7 +215,7 @@ func ProcessingContent(stream quic.Stream) { mi := model2.FriendModel{} mi.Avatar = config.UserInfo.Avatar mi.Profile = config.UserInfo.Description - mi.Name = config.UserInfo.NickName + mi.NickName = config.UserInfo.NickName m.To = m.From m.Data = mi m.Type = types.PERSONADDFRIEND @@ -210,19 +229,34 @@ func ProcessingContent(stream quic.Stream) { } else { delete(UDPAddressMap, m.From) } - mi := model2.FriendModel{} - mi.Avatar = config.UserInfo.Avatar - mi.Profile = config.UserInfo.Description - mi.Name = config.UserInfo.NickName - mi.Token = config.ServerInfo.Token + // mi := model2.FriendModel{} + // mi.Avatar = config.UserInfo.Avatar + // mi.Profile = config.UserInfo.Description + // mi.NickName = config.UserInfo.NickName + // mi.Token = config.ServerInfo.Token + + user := MyService.Casa().GetUserInfoByShareId(m.From) + + friend := model2.FriendModel{} + friend.Token = m.From + friend.Avatar = user.Avatar + friend.Block = false + friend.NickName = user.NickName + friend.Profile = user.Avatar + friend.Version = user.Version + MyService.Friend().AddFriend(friend) + msg := model.MessageModel{} - msg.Type = types.PERSONADDFRIEND - msg.Data = mi + msg.Type = types.PERSONHELLO + msg.Data = "" msg.To = m.From msg.From = config.ServerInfo.Token msg.UUId = m.UUId Dial(msg, false) + break + } else if m.Type == types.PERSONCANCEL { + CancelList[m.UUId] = "cancel" break } else { //不应有不做返回的数据 @@ -289,6 +323,9 @@ func SendFileData(stream quic.Stream, filePath, to, uuid string) error { bufferedReader := bufio.NewReader(f) buf := make([]byte, blockSize) + + defer stream.Close() + for i := 0; i < length; i++ { tran := model.TranFileModel{} @@ -313,8 +350,11 @@ func SendFileData(stream quic.Stream, filePath, to, uuid string) error { prefixLength := file.PrefixLength(len(b)) dataLength := file.DataLength(len(buf[:n])) data := append(append(append(prefixLength, b...), dataLength...), buf[:n]...) + if _, ok := CancelList[uuid]; ok { + delete(CancelList, uuid) + return nil + } stream.Write(data) } - defer stream.Close() return nil } diff --git a/service/service.go b/service/service.go index c72a91c..8eb681d 100644 --- a/service/service.go +++ b/service/service.go @@ -21,7 +21,6 @@ type Repository interface { User() UserService Docker() DockerService //Redis() RedisService - ZeroTier() ZeroTierService ZiMa() ZiMaService Casa() CasaService Disk() DiskService @@ -45,7 +44,6 @@ func NewService(db *gorm.DB, log loger2.OLog) Repository { user: NewUserService(), docker: NewDockerService(log), //redis: NewRedisService(rp), - zerotier: NewZeroTierService(), zima: NewZiMaService(), casa: NewCasaService(), disk: NewDiskService(log, db), @@ -68,7 +66,6 @@ type store struct { ddns DDNSService user UserService docker DockerService - zerotier ZeroTierService zima ZiMaService casa CasaService disk DiskService @@ -123,9 +120,6 @@ func (c *store) Docker() DockerService { return c.docker } -func (c *store) ZeroTier() ZeroTierService { - return c.zerotier -} func (c *store) ZiMa() ZiMaService { return c.zima } diff --git a/service/system.go b/service/system.go index 8e35d83..bf92a43 100644 --- a/service/system.go +++ b/service/system.go @@ -18,6 +18,8 @@ type SystemService interface { UpdateAssist() UpSystemPort(port string) GetTimeZone() string + UpdateUSBAutoMount(state string) + ExecUSBAutoMountShell(state string) } type systemService struct { log loger.OLog @@ -37,6 +39,15 @@ func (s *systemService) GetTimeZone() string { return command2.ExecResultStr("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;GetTimeZone") } +func (s *systemService) ExecUSBAutoMountShell(state string) { + if state == "False" { + command2.OnlyExec("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;USB_Remove_File") + } else { + command2.OnlyExec("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;USB_Move_File") + } + +} + func (s *systemService) GetSystemConfigDebug() []string { return command2.ExecResultStrArray("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;GetSysInfo") } @@ -51,6 +62,11 @@ func (s *systemService) UpSystemConfig(str string, widget string) { } config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) } +func (s *systemService) UpdateUSBAutoMount(state string) { + config.ServerInfo.USBAutoMount = state + config.Cfg.Section("system").Key("USBAutoMount").SetValue(state) + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) +} func (s *systemService) UpSystemPort(port string) { if len(port) > 0 && port != config.ServerInfo.HttpPort { config.Cfg.Section("server").Key("HttpPort").SetValue(port) diff --git a/service/udpconn.go b/service/udpconn.go index 95ab2bc..90e3a25 100644 --- a/service/udpconn.go +++ b/service/udpconn.go @@ -10,6 +10,7 @@ import ( "io/ioutil" "net" "os" + path2 "path" "strconv" "time" @@ -32,29 +33,52 @@ func Dial(msg model.MessageModel, server bool) (m model.MessageModel, err error) ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() Message = make(chan model.MessageModel) - + _, port, err := net.SplitHostPort(UDPConn.LocalAddr().String()) + if config.ServerInfo.UDPPort != port { + config.ServerInfo.UDPPort = port + config.Cfg.Section("server").Key("UDPPort").SetValue(port) + config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath) + } + p, err := strconv.Atoi(port) srcAddr := &net.UDPAddr{ - IP: net.IPv4zero, Port: 9904} //注意端口必须固定 + IP: net.IPv4zero, Port: p} //注意端口必须固定 addr := UDPAddressMap[msg.To] - ticker := msg.To + ticket := msg.To if server { addr = config.ServerInfo.Handshake + ":9527" - ticker = "bench" + ticket = "bench" } dstAddr, err := net.ResolveUDPAddr("udp", addr) //DialTCP在网络协议net上连接本地地址laddr和远端地址raddr。net必须是"udp"、"udp4"、"udp6";如果laddr不是nil,将使用它作为本地地址,否则自动选择一个本地地址。 //(conn)UDPConn代表一个UDP网络连接,实现了Conn和PacketConn接口 - session, err := quic.DialContext(ctx, UDPConn, dstAddr, srcAddr.String(), quic_helper.GetClientTlsConfig(ticker), quic_helper.GetQUICConfig()) + session, err := quic.DialContext(ctx, UDPConn, dstAddr, srcAddr.String(), quic_helper.GetClientTlsConfig(ticket), quic_helper.GetQUICConfig()) if err != nil { - go MyService.Casa().PushConnectionStatus(m.UUId, err.Error(), m.From, m.To, m.Type) + if msg.Type == types.PERSONDOWNLOAD { + task := MyService.Download().GetDownloadById(msg.UUId) + task.Error = err.Error() + task.State = types.DOWNLOADERROR + MyService.Download().SetDownloadError(task) + } + if config.SystemConfigInfo.Analyse != "False" { + go MyService.Casa().PushConnectionStatus(msg.UUId, err.Error(), msg.From, msg.To, msg.Type) + } + return m, err } stream, err := session.OpenStreamSync(ctx) if err != nil { - go MyService.Casa().PushConnectionStatus(m.UUId, err.Error(), m.From, m.To, m.Type) + if msg.Type == types.PERSONDOWNLOAD { + task := MyService.Download().GetDownloadById(msg.UUId) + task.Error = err.Error() + task.State = types.DOWNLOADERROR + MyService.Download().SetDownloadError(task) + } + if config.SystemConfigInfo.Analyse != "False" { + go MyService.Casa().PushConnectionStatus(msg.UUId, err.Error(), msg.From, msg.To, msg.Type) + } session.CloseWithError(1, err.Error()) return m, err } @@ -66,7 +90,9 @@ func Dial(msg model.MessageModel, server bool) (m model.MessageModel, err error) go ReadContent(stream) result := <-Message stream.Close() - go MyService.Casa().PushConnectionStatus(m.UUId, "OK", m.From, m.To, m.Type) + if config.SystemConfigInfo.Analyse != "False" { + go MyService.Casa().PushConnectionStatus(msg.UUId, "OK", msg.From, msg.To, msg.Type) + } return result, nil } @@ -88,8 +114,6 @@ func SendData(stream quic.Stream, m model.MessageModel) { stream.Write(data) } -var Summary map[string]model.FileSummaryModel - //读取数据 func ReadContent(stream quic.Stream) { for { @@ -97,6 +121,12 @@ func ReadContent(stream quic.Stream) { _, err := io.ReadFull(stream, prefixByte) if err != nil { fmt.Println(err) + time.Sleep(time.Second * 1) + for k, v := range CancelList { + tempPath := config.AppInfo.RootPath + "/temp" + "/" + v + fmt.Println(file.RMDir(tempPath)) + delete(CancelList, k) + } break } prefixLength, err := strconv.Atoi(string(prefixByte)) @@ -112,12 +142,14 @@ func ReadContent(stream quic.Stream) { } m := model.MessageModel{} err = json.Unmarshal(messageByte, &m) + fmt.Println("客户端", m) if err != nil { fmt.Println(err) break } if m.Type == types.PERSONDOWNLOAD { + dataModelByte, _ := json.Marshal(m.Data) dataModel := model.TranFileModel{} err := json.Unmarshal(dataModelByte, &dataModel) @@ -149,29 +181,32 @@ func ReadContent(stream quic.Stream) { fmt.Println("hash不匹配", hash, dataModel.Hash) continue } - tempPath := config.AppInfo.RootPath + "/temp" + "/" + m.UUId file.IsNotExistMkDir(tempPath) filepath := tempPath + "/" + strconv.Itoa(dataModel.Index) - tempFile, err := os.Stat(filepath) + _, err = os.Stat(filepath) - if os.IsNotExist(err) || tempFile.Size() == 0 { + if os.IsNotExist(err) { err = ioutil.WriteFile(filepath, dataByte, 0644) - task := model2.PersionDownloadDBModel{} + task := model2.PersonDownloadDBModel{} task.UUID = m.UUId - task.Error = err.Error() - task.State = types.DOWNLOADERROR - MyService.Download().SetDownloadError(task) + if err != nil { + task.Error = err.Error() + task.State = types.DOWNLOADERROR + MyService.Download().SetDownloadError(task) + } } else { if file.GetHashByPath(filepath) != dataModel.Hash { os.Remove(filepath) err = ioutil.WriteFile(filepath, dataByte, 0644) - task := model2.PersionDownloadDBModel{} + task := model2.PersonDownloadDBModel{} task.UUID = m.UUId - task.Error = err.Error() - task.State = types.DOWNLOADERROR - MyService.Download().SetDownloadError(task) + if err != nil { + task.Error = err.Error() + task.State = types.DOWNLOADERROR + MyService.Download().SetDownloadError(task) + } } } @@ -181,21 +216,21 @@ func ReadContent(stream quic.Stream) { continue } if len(files) >= dataModel.Length { - summary := Summary[m.UUId] - file.SpliceFiles(tempPath, config.FileSettingInfo.DownloadDir+"/"+summary.Name, dataModel.Length, 0) - if file.GetHashByPath(config.FileSettingInfo.DownloadDir+"/"+summary.Name) == summary.Hash { + summary := MyService.Download().GetDownloadById(m.UUId) + summary.State = types.DOWNLOADFINISH + MyService.Download().EditDownloadState(summary) + fullPath := file.GetNoDuplicateFileName(path2.Join(summary.LocalPath, summary.Name)) + file.SpliceFiles(tempPath, fullPath, dataModel.Length, 0) + if file.GetHashByPath(fullPath) == summary.Hash { file.RMDir(tempPath) - task := model2.PersionDownloadDBModel{} - task.UUID = m.UUId - task.State = types.DOWNLOADFINISH - MyService.Download().EditDownloadState(task) - delete(Summary, m.UUId) + summary.State = types.DOWNLOADFINISHED + MyService.Download().EditDownloadState(summary) } else { os.Remove(config.FileSettingInfo.DownloadDir + "/" + summary.Name) - task := model2.PersionDownloadDBModel{} - task.UUID = m.UUId - task.State = types.DOWNLOADERROR - MyService.Download().EditDownloadState(task) + + summary.State = types.DOWNLOADERROR + summary.Error = "hash mismatch" + MyService.Download().SetDownloadError(summary) } break @@ -205,42 +240,55 @@ func ReadContent(stream quic.Stream) { dataModel := model.FileSummaryModel{} dataModelByte, _ := json.Marshal(m.Data) err := json.Unmarshal(dataModelByte, &dataModel) - fmt.Println(err) + if err != nil { + fmt.Println(err) + } - task := model2.PersionDownloadDBModel{} - task.UUID = m.UUId - task.Name = dataModel.Name - task.Length = dataModel.Length - task.Size = dataModel.Size + task := MyService.Download().GetDownloadById(m.UUId) + fullPath := path2.Join(task.LocalPath, task.Name) task.State = types.DOWNLOADING - task.BlockSize = dataModel.BlockSize - task.Hash = dataModel.Hash - task.Type = 0 - task.From = m.From if len(dataModel.Message) > 0 { task.State = types.DOWNLOADERROR task.Error = dataModel.Message } + if file.Exists(fullPath) && file.GetHashByPath(fullPath) == dataModel.Hash { + task.State = types.DOWNLOADFINISHED + go func(from, uuid string) { + m := model.MessageModel{} + m.Data = "" + m.From = config.ServerInfo.Token + m.To = from + m.Type = types.PERSONCANCEL + m.UUId = uuid + CancelList[uuid] = uuid + Dial(m, false) + }(task.From, task.UUID) + } + task.UUID = m.UUId + task.Name = dataModel.Name + task.Length = dataModel.Length + task.Size = dataModel.Size + task.BlockSize = dataModel.BlockSize + task.Hash = dataModel.Hash + task.Type = 0 + task.From = m.From MyService.Download().SaveDownload(task) - Summary[m.UUId] = dataModel - } else if m.Type == types.PERSONCONNECTION { - if len(m.Data.(string)) > 0 { UDPAddressMap[m.From] = m.Data.(string) } else { delete(UDPAddressMap, m.From) } - mi := model2.FriendModel{} - mi.Avatar = config.UserInfo.Avatar - mi.Profile = config.UserInfo.Description - mi.Name = config.UserInfo.NickName - mi.Token = config.ServerInfo.Token + // mi := model2.FriendModel{} + // mi.Avatar = config.UserInfo.Avatar + // mi.Profile = config.UserInfo.Description + // mi.NickName = config.UserInfo.NickName + // mi.Token = config.ServerInfo.Token msg := model.MessageModel{} - msg.Type = types.PERSONADDFRIEND - msg.Data = mi + msg.Type = types.PERSONHELLO + msg.Data = "" msg.To = m.From msg.From = config.ServerInfo.Token msg.UUId = m.UUId @@ -248,10 +296,21 @@ func ReadContent(stream quic.Stream) { Message <- m break } else if m.Type == "get_ip" { + notify := model2.AppNotify{} + notify.CustomId = m.From if len(m.Data.(string)) == 0 { + if _, ok := UDPAddressMap[m.From]; ok { + notify.Type = types.NOTIFY_TYPE_PERSION_FIRNED_LEAVE + go MyService.Notify().SendText(notify) + } delete(UDPAddressMap, m.From) + Message <- m break } + if _, ok := UDPAddressMap[m.From]; !ok { + notify.Type = types.NOTIFY_TYPE_PERSION_FIRNED_LIVE + go MyService.Notify().SendText(notify) + } UDPAddressMap[m.From] = m.Data.(string) Message <- m break @@ -264,7 +323,7 @@ func ReadContent(stream quic.Stream) { func SendIPToServer() { msg := model.MessageModel{} - msg.Type = "hello" + msg.Type = types.PERSONHELLO msg.Data = "" msg.From = config.ServerInfo.Token msg.To = config.ServerInfo.Token @@ -282,9 +341,10 @@ func LoopFriend() { msg.From = config.ServerInfo.Token msg.To = list[i].Token msg.UUId = uuid.NewV4().String() + Dial(msg, true) - msg.Type = "hello" + msg.Type = types.PERSONHELLO msg.Data = "" msg.From = config.ServerInfo.Token msg.To = list[i].Token @@ -292,6 +352,19 @@ func LoopFriend() { if _, ok := UDPAddressMap[list[i].Token]; ok { go Dial(msg, false) } + go func(shareId string) { + user := MyService.Casa().GetUserInfoByShareId(shareId) + m := model2.FriendModel{} + m.Token = shareId + friend := MyService.Friend().GetFriendById(m) + if friend.Version != user.Version { + friend.Avatar = user.Avatar + friend.NickName = user.NickName + friend.Profile = user.Desc + friend.Version = user.Version + MyService.Friend().UpdateOrCreate(friend) + } + }(list[i].Token) } } diff --git a/service/zerotier.go b/service/zerotier.go deleted file mode 100644 index d1b7862..0000000 --- a/service/zerotier.go +++ /dev/null @@ -1,353 +0,0 @@ -package service - -import ( - "bytes" - "errors" - "fmt" - "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 { - GetToken(username, pwd string) string - ZeroTierRegister(email, lastName, firstName, password string) string - ZeroTierNetworkList(token string) (interface{}, []string) - ZeroTierJoinNetwork(networkId string) - ZeroTierLeaveNetwork(networkId string) - ZeroTierGetInfo(token, id string) (interface{}, []string) - ZeroTierGetStatus(token string) interface{} - EditNetwork(token string, data string, id string) interface{} - CreateNetwork(token string) interface{} - MemberList(token string, id string) interface{} - EditNetworkMember(token string, data string, id, mId string) interface{} - DeleteMember(token string, id, mId string) interface{} - DeleteNetwork(token, id string) interface{} - GetJoinNetworks() string - NetworkIdFilter(letter rune) bool -} -type zerotierStruct struct { -} - -var client http.Client - -func (c *zerotierStruct) ZeroTierJoinNetwork(networkId string) { - command2.OnlyExec(`zerotier-cli join ` + networkId) -} -func (c *zerotierStruct) ZeroTierLeaveNetwork(networkId string) { - command2.OnlyExec(`zerotier-cli leave ` + networkId) -} - -//登录并获取token -func (c *zerotierStruct) GetToken(username, pwd string) string { - if len(config.ZeroTierInfo.Token) > 0 { - return config.ZeroTierInfo.Token - } else { - return LoginGetToken(username, pwd) - } -} - -func (c *zerotierStruct) ZeroTierRegister(email, lastName, firstName, password string) string { - - url := "https://accounts.zerotier.com/auth/realms/zerotier/protocol/openid-connect/registrations?client_id=zt-central&redirect_uri=https%3A%2F%2Fmy.zerotier.com%2Fapi%2F_auth%2Foidc%2Fcallback&response_type=code&scope=openid+profile+email+offline_access&state=state" - - action, cookies, _ := ZeroTierGet(url, nil, 4) - var buff bytes.Buffer - buff.WriteString("email=") - buff.WriteString(email) - buff.WriteString("&password=") - buff.WriteString(password) - buff.WriteString("&password-confirm=") - buff.WriteString(password) - buff.WriteString("&user.attributes.marketingOptIn=true") - buff.WriteString("&firstName") - buff.WriteString(firstName) - buff.WriteString("&lastName") - buff.WriteString(lastName) - - action, errInfo, _ := ZeroTierPost(buff, action, cookies, false) - if len(errInfo) > 0 { - return errInfo - } - action, _, _ = ZeroTierGet(action, cookies, 5) - return "" -} - -//固定请求head -func GetHead() map[string]string { - var head = make(map[string]string, 4) - head["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" - head["Accept-Language"] = "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3" - head["Connection"] = "keep-alive" - head["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" - return head -} - -//登录并获取token,会出现账号密码错误,和邮箱未验证情况,目前未出现其他情况 -func LoginGetToken(username, pwd string) string { - //拿到登录的action - var loginUrl = "https://accounts.zerotier.com/auth/realms/zerotier/protocol/openid-connect/auth?client_id=zt-central&redirect_uri=https%3A%2F%2Fmy.zerotier.com%2Fapi%2F_auth%2Foidc%2Fcallback&response_type=code&scope=openid+profile+email+offline_access&state=states" - action, cookies, _ := ZeroTierGet(loginUrl, nil, 1) - if len(action) == 0 { - //没有拿到action,页面结构变了 - return "" - } - //登录 - var str bytes.Buffer - str.WriteString("username=") - str.WriteString(username) - str.WriteString("&password=") - str.WriteString(pwd) - str.WriteString("&credentialId=&login=Log+In") - url, logingErrInfo, _ := ZeroTierPost(str, action, cookies, true) - - action, cookies, isLoginOk := ZeroTierGet(url, cookies, 2) - - if isLoginOk { - //登录成功,可以继续调用api - randomTokenUrl := "https://my.zerotier.com/api/randomToken" - json, _, _ := ZeroTierGet(randomTokenUrl, cookies, 3) - //获取一个随机token - token := gjson.Get(json, "token") - - userInfoUrl := "https://my.zerotier.com/api/status" - json, _, _ = ZeroTierGet(userInfoUrl, cookies, 3) - //拿到用户id - userId := gjson.Get(json, "user.id") - - //设置新token - addTokenUrl := "https://my.zerotier.com/api/user/" + userId.String() + "/token" - data := make(map[string]string) - rand.Seed(time.Now().UnixNano()) - data["tokenName"] = "oasis-token-" + strconv.Itoa(rand.Intn(1000)) - data["token"] = token.String() - head := make(map[string]string) - head["Content-Type"] = "application/json" - _, statusCode := httper2.ZeroTierPost(addTokenUrl, data, head, cookies) - if statusCode == http.StatusOK { - config.Cfg.Section("zerotier").Key("Token").SetValue(token.String()) - config.Cfg.SaveTo("conf/conf.ini") - config.ZeroTierInfo.Token = token.String() - } - } else { - //登录错误信息 - if len(logingErrInfo) > 0 { - return logingErrInfo - } else { - //验证邮箱 - action, _, _ = ZeroTierGet(url, cookies, 5) - return "You need to verify your email address to activate your account." - } - } - return "" -} - -// t 1:获取action,2:登录成功后拿session(可能需要验证有了或登录失败) 3:随机生成token 4:注册页面拿action 5:注册成功后拿验证邮箱的地址 -func ZeroTierGet(url string, cookies []*http.Cookie, t uint8) (action string, c []*http.Cookie, isExistSession bool) { - isExistSession = false - action = "" - c = []*http.Cookie{} - request, _ := http.NewRequest(http.MethodGet, url, nil) - for k, v := range GetHead() { - request.Header.Add(k, v) - } - for _, cookie := range cookies { - request.AddCookie(cookie) - } - resp, err := client.Do(request) - if err != nil { - return - } - defer resp.Body.Close() - c = resp.Cookies() - if t == 1 { - doc, err := goquery.NewDocumentFromReader(resp.Body) - if err != nil { - return - } - action, _ = doc.Find("#kc-form-login").Attr("action") - return - } else if t == 2 { - for _, cookie := range resp.Cookies() { - if cookie.Name == "pgx-session" { - isExistSession = true - break - } - } - //判断是否登录成功,如果需要验证邮箱,则返回验证邮箱的地址。 - if resp.StatusCode == http.StatusFound && len(resp.Header.Get("Location")) > 0 { - action = resp.Header.Get("Location") - } - return - } else if t == 3 { - //返回获取到的字符串 - byteArr, _ := ioutil.ReadAll(resp.Body) - action = string(byteArr) - } else if t == 4 { - doc, err := goquery.NewDocumentFromReader(resp.Body) - if err != nil { - return - } - action, _ = doc.Find("#kc-register-form").Attr("action") - return - - } else if t == 5 { - doc, _ := goquery.NewDocumentFromReader(resp.Body) - fmt.Println(doc.Html()) - action, _ = doc.Find("#kc-info-wrapper a").Attr("href") - return - } - - return -} - -//模拟提交表单 -func ZeroTierPost(str bytes.Buffer, action string, cookies []*http.Cookie, isLogin bool) (url, errInfo string, err error) { - req, err := http.NewRequest(http.MethodPost, action, strings.NewReader(str.String())) - if err != nil { - return "", "", errors.New("newrequest error") - } - for k, v := range GetHead() { - req.Header.Set(k, v) - } - req.Header.Set("Content-Type", "application/x-www-form-urlencoded") - for _, cookie := range cookies { - req.AddCookie(cookie) - } - res, err := client.Do(req) - defer res.Body.Close() - if err != nil { - return "", "", errors.New("request error") - } - if !isLogin { - //注册成功 - if res.StatusCode == http.StatusFound && len(res.Header.Get("Location")) > 0 { - return res.Header.Get("Location"), "", nil - } else { - register, _ := goquery.NewDocumentFromReader(res.Body) - firstErr := strings.TrimSpace(register.Find("#input-error-firstname").Text()) - lastErr := strings.TrimSpace(register.Find("#input-error-lastname").Text()) - emailErr := strings.TrimSpace(register.Find("#input-error-email").Text()) - pwdErr := strings.TrimSpace(register.Find("#input-error-password").Text()) - var errD strings.Builder - if len(firstErr) > 0 { - errD.WriteString(firstErr + ",") - } - if len(lastErr) > 0 { - errD.WriteString(lastErr + ",") - } - if len(emailErr) > 0 { - errD.WriteString(emailErr + ",") - } - if len(pwdErr) > 0 { - errD.WriteString(pwdErr + ",") - } - return "", errD.String(), nil - } - - } else { - if res.StatusCode == http.StatusFound && len(res.Header.Get("Location")) > 0 { - return res.Header.Get("Location"), "", nil - } - doc, err := goquery.NewDocumentFromReader(res.Body) - if err != nil { - return "", "", errors.New("request error") - } - - errDesc := doc.Find("#input-error").Text() - if len(errDesc) > 0 { - return "", strings.TrimSpace(errDesc), nil - } - - } - - return "", "", nil -} - -//获取zerotile网络列表和本地用户已加入的网络 -func (c *zerotierStruct) ZeroTierNetworkList(token string) (interface{}, []string) { - url := "https://my.zerotier.com/api/network" - return zerotier.GetData(url, token), command2.ExecResultStrArray(`zerotier-cli listnetworks | awk 'NR>1 {print $3} {line=$0}'`) -} - -// get network info -func (c *zerotierStruct) ZeroTierGetInfo(token, id string) (interface{}, []string) { - url := "https://my.zerotier.com/api/network/" + id - info := zerotier.GetData(url, token) - return info, command2.ExecResultStrArray(`zerotier-cli listnetworks | awk 'NR>1 {print $3} {line=$0}'`) -} - -//get status -func (c *zerotierStruct) ZeroTierGetStatus(token string) interface{} { - url := "https://my.zerotier.com/api/v1/status" - info := zerotier.GetData(url, token) - return info -} - -func (c *zerotierStruct) EditNetwork(token string, data string, id string) interface{} { - url := "https://my.zerotier.com/api/v1/network/" + id - info := zerotier.PostData(url, token, data) - return info -} - -func (c *zerotierStruct) EditNetworkMember(token string, data string, id, mId string) interface{} { - url := "https://my.zerotier.com/api/v1/network/" + id + "/member/" + mId - info := zerotier.PostData(url, token, data) - return info -} - -func (c *zerotierStruct) MemberList(token string, id string) interface{} { - url := "https://my.zerotier.com/api/v1/network/" + id + "/member" - info := zerotier.GetData(url, token) - return info -} - -func (c *zerotierStruct) DeleteMember(token string, id, mId string) interface{} { - url := "https://my.zerotier.com/api/v1/network/" + id + "/member/" + mId - info := zerotier.DeleteMember(url, token) - return info -} - -func (c *zerotierStruct) DeleteNetwork(token, id string) interface{} { - url := "https://my.zerotier.com/api/v1/network/" + id - info := zerotier.DeleteMember(url, token) - return info -} - -func (c *zerotierStruct) CreateNetwork(token string) interface{} { - url := "https://my.zerotier.com/api/v1/network" - info := zerotier.PostData(url, token, "{}") - return info -} - -func (c *zerotierStruct) GetJoinNetworks() string { - json := command2.ExecResultStr("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;GetLocalJoinNetworks") - 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 { - return http.ErrUseLastResponse //禁止重定向 - }, - } - return &zerotierStruct{} -} diff --git a/service/zima_info.go b/service/zima_info.go index 49c1667..0ff66c5 100644 --- a/service/zima_info.go +++ b/service/zima_info.go @@ -4,10 +4,12 @@ import ( "fmt" "io/ioutil" "os" + "path/filepath" "runtime" "strconv" "strings" "time" + "unsafe" "github.com/IceWhaleTech/CasaOS/model" "github.com/IceWhaleTech/CasaOS/pkg/config" @@ -32,12 +34,15 @@ type ZiMaService interface { GetNetState(name string) string GetSysInfo() host.InfoStat GetDirPath(path string) []model.Path + GetDirPathOne(path string) (m model.Path) MkdirAll(path string) (int, error) CreateFile(path string) (int, error) RenameFile(oldF, newF string) (int, error) GetCpuInfo() []cpu.InfoStat } +var NetArray [][]model.IOCountersStat + type zima struct { } @@ -84,10 +89,19 @@ func (c *zima) GetDirPath(path string) []model.Path { ls, _ := ioutil.ReadDir(path) dirs := []model.Path{} - if len(path) > 0 { for _, l := range ls { - dirs = append(dirs, model.Path{Name: l.Name(), Path: path + "/" + l.Name(), IsDir: l.IsDir(), Date: l.ModTime(), Size: l.Size()}) + filePath := filepath.Join(path, l.Name()) + link, err := filepath.EvalSymlinks(filePath) + if err != nil { + link = filePath + } + temp := model.Path{Name: l.Name(), Path: filePath, IsDir: l.IsDir(), Date: l.ModTime(), Size: l.Size()} + if filePath != link { + file, _ := os.Stat(link) + temp.IsDir = file.IsDir() + } + dirs = append(dirs, temp) } } else { dirs = append(dirs, model.Path{Name: "DATA", Path: "/DATA/", IsDir: true, Date: time.Now()}) @@ -95,6 +109,21 @@ func (c *zima) GetDirPath(path string) []model.Path { return dirs } +func (c *zima) GetDirPathOne(path string) (m model.Path) { + + f, err := os.Stat(path) + + if err != nil { + return + } + m.IsDir = f.IsDir() + m.Name = f.Name() + m.Path = path + m.Size = f.Size() + m.Date = f.ModTime() + return +} + //获取系统信息 func (c *zima) GetSysInfo() host.InfoStat { info, _ := host.Info() @@ -174,3 +203,41 @@ func (c *zima) RenameFile(oldF, newF string) (int, error) { func NewZiMaService() ZiMaService { return &zima{} } + +func LoopNet() { + netList := MyService.ZiMa().GetNetInfo() + + nets := MyService.ZiMa().GetNet(true) + num := 0 + for i := 0; i < len(netList); i++ { + + for _, netCardName := range nets { + + if netList[i].Name == netCardName { + var netArray []model.IOCountersStat + if len(NetArray) < (num + 1) { + netArray = []model.IOCountersStat{} + } else { + netArray = NetArray[num] + } + item := *(*model.IOCountersStat)(unsafe.Pointer(&netList[i])) + item.State = strings.TrimSpace(MyService.ZiMa().GetNetState(netList[i].Name)) + item.Time = time.Now().Unix() + + if len(netArray) >= 60 { + netArray = netArray[1:] + } + netArray = append(netArray, item) + if len(NetArray) < (num + 1) { + NetArray = append(NetArray, []model.IOCountersStat{}) + } + + NetArray[num] = netArray + + num++ + break + } + } + + } +} diff --git a/shell/assist.sh b/shell/assist.sh index d4fbe1d..a1686e8 100644 --- a/shell/assist.sh +++ b/shell/assist.sh @@ -1,13 +1,6 @@ #!/bin/bash -#add in v0.2.3 -version_0_2_3() { - ((EUID)) && sudo_cmd="sudo" - $sudo_cmd cp -rf /casaOS/server/shell/11-usb-mount.rules /etc/udev/rules.d/ - $sudo_cmd chmod +x /casaOS/server/shell/usb-mount.sh - $sudo_cmd cp -rf /casaOS/server/shell/usb-mount@.service /etc/systemd/system/ -} # add in v0.2.5 @@ -16,7 +9,9 @@ readonly CASA_DEPANDS="curl smartmontools parted fdisk ntfs-3g" version_0_2_5() { install_depends "$CASA_DEPANDS" } - +version_0_2_11() { + sysctl -w net.core.rmem_max=2500000 +} #Install Depends install_depends() { @@ -35,6 +30,6 @@ install_depends() { fi } -version_0_2_3 - version_0_2_5 + +version_0_2_11 diff --git a/shell/helper.sh b/shell/helper.sh index b48061f..dad3742 100644 --- a/shell/helper.sh +++ b/shell/helper.sh @@ -245,9 +245,13 @@ do_umount() { if [[ -z ${MOUNT_POINT} ]]; then ${log} "Warning: ${DEVICE} is not mounted" else + /bin/kill -9 $(lsof ${MOUNT_POINT}) umount -l ${DEVICE} ${log} "Unmounted ${DEVICE} from ${MOUNT_POINT}" - /bin/rmdir "${MOUNT_POINT}" + if [ "`ls -A ${MOUNT_POINT}`" = "" ]; then + /bin/rm -fr "${MOUNT_POINT}" + fi + sed -i.bak "\@${MOUNT_POINT}@d" /var/log/usb-mount.track fi @@ -325,3 +329,16 @@ TarFolder() { #查看固定文件夹大小 du -sh /DATA } + +USB_Move_File() { + ((EUID)) && sudo_cmd="sudo" + $sudo_cmd cp -rf /casaOS/server/shell/11-usb-mount.rules /etc/udev/rules.d/ + $sudo_cmd chmod +x /casaOS/server/shell/usb-mount.sh + $sudo_cmd cp -rf /casaOS/server/shell/usb-mount@.service /etc/systemd/system/ +} + +USB_Remove_File() { + ((EUID)) && sudo_cmd="sudo" + $sudo_cmd rm -fr /etc/udev/rules.d/11-usb-mount.rules + $sudo_cmd rm -fr /etc/systemd/system/usb-mount@.service +} \ No newline at end of file diff --git a/shell/usb-mount.sh b/shell/usb-mount.sh index 0376bb9..f6b6139 100644 --- a/shell/usb-mount.sh +++ b/shell/usb-mount.sh @@ -12,7 +12,7 @@ DEVBASE=$2 DEVICE="/dev/${DEVBASE}" # See if this drive is already mounted, and if so where -MOUNT_POINT=$(lsblk -o name,mountpoint | grep ${DEVICE} | awk '{print $2}') +MOUNT_POINT=$(lsblk -l -p -o name,mountpoint | grep ${DEVICE} | awk '{print $2}') do_mount() { @@ -112,9 +112,12 @@ do_umount() { if [[ -z ${MOUNT_POINT} ]]; then ${log} "Warning: ${DEVICE} is not mounted" else + #/bin/kill -9 $(lsof ${MOUNT_POINT}) umount -l ${DEVICE} ${log} "Unmounted ${DEVICE} from ${MOUNT_POINT}" - /bin/rmdir "${MOUNT_POINT}" + if [ "`ls -A ${MOUNT_POINT}`" = "" ]; then + /bin/rm -fr "${MOUNT_POINT}" + fi sed -i.bak "\@${MOUNT_POINT}@d" /var/log/usb-mount.track fi diff --git a/types/notify.go b/types/notify.go index 98999ca..1b7f1df 100644 --- a/types/notify.go +++ b/types/notify.go @@ -10,6 +10,8 @@ const ( NOTIFY_TYPE_NEED_CONFIRM NOTIFY_TYPE_ERROR NOTIFY_TYPE_INSTALL_LOG + NOTIFY_TYPE_PERSION_FIRNED_LEAVE + NOTIFY_TYPE_PERSION_FIRNED_LIVE ) const ( diff --git a/types/persion.go b/types/person.go similarity index 81% rename from types/persion.go rename to types/person.go index 440de5c..7e6e1a8 100644 --- a/types/persion.go +++ b/types/person.go @@ -6,3 +6,4 @@ const PERSONSUMMARY = "summary" const PERSONCONNECTION = "connection" const PERSONDIRECTORY = "directory" const PERSONHELLO = "hello" +const PERSONCANCEL = "cancel" // Cancel Download diff --git a/types/persion_download.go b/types/person_download.go similarity index 87% rename from types/persion_download.go rename to types/person_download.go index c0a5f82..01aeb6e 100644 --- a/types/persion_download.go +++ b/types/person_download.go @@ -6,4 +6,5 @@ const ( DOWNLOADPAUSE DOWNLOADFINISH DOWNLOADERROR + DOWNLOADFINISHED ) diff --git a/types/system.go b/types/system.go index f9d3235..54bf050 100644 --- a/types/system.go +++ b/types/system.go @@ -1,5 +1,5 @@ package types -const CURRENTVERSION = "0.2.10" +const CURRENTVERSION = "0.3.0" -const BODY = "
  • Added CasaOS own file manager
  • Fixed the problem of failed to create storage space
  • " +const BODY = "
  • Add CasaConnect function, now you can share private files peer-to-peer with your friends.
  • Add a widget for network traffic monitoring
  • Updated the initial directory of Files to the Root directory
  • Fix the application ipv6 opening problem
  • " diff --git a/web/img/1-small.1b74d2ba.png b/web/img/1-small.1b74d2ba.png new file mode 100644 index 0000000000000000000000000000000000000000..406d0bab25b55146f6b099dc797b01407eee437b GIT binary patch literal 14609 zcmV+sIqt@ZP)y2+<&z^Z zi-m#M1wZir;$P6#jK*Cf!6g<11{nQbtLiS9IVZiHw64%8Hh^!L2xf3M5^ zAzl;>zIo@uhMGk4(3=@KCs8CBkVfOaJH+-lnM~?Q6`Xg$0}-%8%t}NGMvN*3@`w0b z|9cwC%pOvYfjzi`nJGxO+kN?qUtC??_{s9**~iUfUJ_YKo7K(r&1-Mz{N%i7Dk7NF z4LdBVP|r?W;glFO1EL}Q-kkWa)mRVZ?CXT}@O_Ty`tr>`{_Wp>`Qq1Ol*Qxc3Ard& zIcovxB^M%w(2pHpUQDK#Z0HV$O%9vQbiQmBGcHO1K-2%RJd4ouoAPgFptiZY|IN?; z@%76W+uh;x?Brrvmg$i57`vok;C&ffG9WI_&L4ZT?f$SkZdAb?`rT^ZG|hZDZ%$4^ z-TV>Q>cbfe4eT4ZL;#vnx_R?zx84Fk5yGOGSFVtL9MjNt2UR_Q#gu|8o_z9I-^KgB zyWVWt{>WyGM?d)9qmMpy!GC2DGBf<9hJHH@{6Q}KPzas?#Q?}aZRq;9ufMo?`KEMC=*9e4 zgngge{e3>P$HVUK?#*_0MDOZQl+~1dflLYr1ZJjcK9s?GkLEGEm_k)7W)miuU0nR| z-~Rb*dCKe&O~JmM_|Yj^uxZ}wQaZSj;-WG1f}z*^U1QVJO_#G<(pS2r62$0zdwEa zj6B;zKk%)>@`p3o2ZRoYlH0@P^^2G7>b9OV)5Xc@qmPGdZ(hIn<;yQt*O&W4mokK+ znNDYm<#Kv@Ue#0foUcb@5 zh9CV;@$vKL6bc{$`&Z>zX3`$_Z+`RZalJoT%qG+MY%;xBZLe1MZ{A+MdGqpayERCyV8X?!Id`T^tp`m8B2N zg%6bibwdi;Ij(?m+Z}e&1AzCwcA+e|D2ie}tqSM&$5v#>$$))TFN^I zaCvpRJ+_CoGoT;yzn`B!My9X04gF&=)~y?gV{d!98Da@BsY<6*l! z_N(hRo9(LIZ&iVa%A%^4k0!IlVST&4z1nS8aqJn`*j0gs9Q*Fj_ucMztPY!M<)-Ci zQdhybSy2sc9J*1m`9O8qAZge3U&JdBX=d}HnUs_117G$>l(P`+Jumtd31um!zHO?a zsZOKn?dtG$+pX94$L=r;Lu}hLj0nJ?Dw|nd7DgB)N6D%t86qe%n|I7u2QNwDI2_W@ zkw1o5w_)B)n$mlqP?l{P$1yp^DohFcz8zm&-PAw*Sv8w~^n)LVx+GKkgLOv#4W4Dl zgxL&?2rTKCGL9)w@#gOK`et{v+Z>O_VQkZJ9Ap$p8WX!vPm7Xh*zVf#W`EozWna(D zdmG156debv2(tQAmSxwqDUXmeM5|Dx<&D~-9_Uh*9>fPnr`|ZBZ(hdD_NIB=6V;)+|2`Lm# zgUYCRJnV8BF%AyRTyWuJ@M9H+n8(Z`n+Gh=a?>bdEk)?9863R5D<|Z3RH}R^TRL3lhzooQL`kGtF3qxC%k6GJdHrji_&RUgM>%0Oyr zEU6=?~f65s50JLCzvcL{sL?VSi|kQHGQO$>wEqKA(L5 z>9e1F{^_GfPwL6U3{&3?qt2x`Z}7>)ZQ6|q9NYG0w~sj`OYF)6IMk#$Avr+QoQas7 zsgwva zKeXMEfsKqzz2n8Kc)mRU;YS~T`s|}ePoMZ^K@1wrmxY;V%911LET5~zY*`*ZO8Y1K z+w1Gw)rRixUS{dhDR54MBhEP|OAei5qB0P{{x}GC`$KOkr}J4;1OPa6Z89^{-R&b2x2`@HH6f+Y(vCv+|+ z1kBFZAbUqu?T4Wf*YAcA;dpj33!Xy=v5y&Szu#Ye@#>?`zIR#_!1T?0zzn`Ki|YQl z08}F)RrO}c!~;o+Ij3>GfA!||Z@zqayr%Dx5(H2AnNA2}Bv00Led0?g^YHB1_`2 zsX!KzpNw(S9@_r6AI4B{Z^5FB0%|b;>%-KV6p@3YWE#`3IT}cwHuJ))(086=G{xBJ8OyZhbYNPtmuN*YyCPG+`jX3tI^ zEtkupD4cU93f40@VJOt80RjMm36MiWrr=ZoT@2nCLY8sScW3MMVj5!hQL;Lg%pwxa zG9ltakpYL0MF4=%q1vt=6sh#VAd^8-IUaU#7$3TQ`*8A-e+G=`LqK}dHUpJGM$z_I8>Iw#$NO20J5oCV&)J6dm;c&41^AW z&?%u3l3`W*^V7w}Y(A@e9bCmwIyMs`(i9Pyh=>b7RS_~E1|=1dW8Z6*Kxk$X(_woU zx}%8vR@{9@&!XR|7l`;?_hP83mZFRUJ2V%}yZ+c;zJ7Ime;;GaIrk|>$tDUwWpHP+ z*=)A(MF1v2BtSG^Ks0qo6v6}LM8HTM0Gwgcq?Q37giy@q&Fu7ad2w;JTu$mqa793N z<{goNs){5uatNLs@eYt{L$voA1$dy) zG?PYDHOG+yq<+|JZ?4{5-`>Sx6p zNQkIthz?am!~p{;Fq(SbG@5hWcaP7`4u?H4;vQ4d9CAt{8pIf>bZCf(o(Ray1Q7w) zL}Sw9kmn5p@nPTZ?suyC0IJ`k#qT`Ja9{hBfD+(0=qe}4k$p*oF!aN5zrMMCcXhd1 z-L9n;W9C|nU^e0y{KqrR`2 z`r85n_-^3AJy89snSlijff2H)f@WYCW6zRfPRGsq?VHQjZ{DohHs{=C0Yjt=3L>L| zL(0DJMQAuMx(b8Cl3gf(fl)zKF@ip@g@A?*Nx&E(XGKyo=Nw>BhDkjg=T9F!)|5%E z`*GM0fms+S6G9x+ImZD#)>(RkOkmO2IEfMK7;_aWVAyQ$`*ugmrGCZees`Yh0p==^ z6H{*}kaEtPvq829m=1!W-?qQ})vvz%;)}cWN@HsKNTSh<%?*~KB7tgBR$%WalvsH5 z!BYc{9iReWRzx-eP-0X76U}HK1_)wi3K78p5rsO;VCl;5Gh+x_e z$L(%?xLY5O$1ci{6KGOHG9#y$h0qWogC!LKGXi!z}de>ngGwSa0U3m;50Dr74oARv!==yr$Q{q^p!-*@c;&0s`e z*|}nnQGvh=0R2Pt%;w9IiyE0s6d7}$H75cPR4@-5i2~4=6hKkIG$+vnB4g67i<|qq z>vuPItJ}WY%NXN006^(oJI2ycZ|snwjFbZ?vIB=SVnzhXfSysMk7GZC<*aCT`y>wn zO#B)-!goRNs+rJO(K(A_R>q8&5K%P6F1Evdb$fSxv*~t2mNAMNs(=Ec38<+h1tbGx zQq`!!Tr*b+CZaM%%?Tu$0y#Do237zQQ&luGv($H8*WTXVy}rD@yu4hm*9dxYa&msM zm_4myKfJwtH|E&guLvl34D8#S$1KLEk`~J`) z@3%wjHA~@%37EMod{LGm1Q$G-vVy6Ks^q-gZeRZT#jk(y^V|J8uzPxO^6c5O)APq< z06BKYO}noSWjL1QVH^wRQwcG~m@^qLVL>6&U_yjO44_1ceU96{?GM}TxEFcyp-6eB zgrZ;^zElP|A3eUfczj+@W@T9tJ41jhW7q9gtA2AkoA~qjQy@H!^5vVW zzkl)e&>p?$w1Qv=0Q08GIc2maa4g)|k4e#U!7e#8N>k zJhZ#}*>XOa7F_aT!t3>Vd)&RdzTe)zUEe(VZ2kDNPd>McN6^%sTn4ZdIdx54uoTCB zcy+t_@)+Nxd_S5>a>s2Q$7L0sp3i4>b=ow$t_KfI<-6WxF>~gLnKKKD0%8PUCe8#R za=$&i{Pl~^e*9-#1m+K*N_7NiKxC=}h?oJLhv69ahppx`4w~a2n#XY*a`r@Ridi#b zAl8`iL3FK%{Sb$gmlvncA3e$_>9D_DZ#Vn4kNaLm6S%*>Mv0F659*301^JS}kPMM5 zZkcOqfGPPrSkK@q+Hq%PU@^0%naNwcuk}x<3#)=t1vpNJb zL~oJ^2hFcuy|{V%X0bd)SA2I>pfg6atVC!4$Y`1j#`eg*a+8?fzEyy}m;KNY!g0(o zDv?u)Nq_;fA)vAmpbUK)$9{iU56AYWFJAui%gfh?v9BtJO(Vy19`}7496$Q_$&x?z z#f1DAk7X#!+39(1PEHniq9r%;1>on^#JDJ+562eu8HECdP28@WyYI)?cl$};uA`iV zkd&pu&_i}Ms*!h=wF;V8sqGH0fAx!}pMJ6^9({nEMM?_zRU@F;03?g1vMvs*+_zod zk13B0`8_6$0}vyL2{}UrAtD7d0#D(X#$IIK=eN7V7yBWfef;z%kNa^5$OYJ<+nv+E zg_mBb@NUw;$Uc<5nX8{phB0hcV;6DzR*jQGK!wy2>XD$?*sE?Kxe}3`Vx~NzEv0{JLlnu&K zx(O>b(;jQ!BEoRB-mO>bwakGO?~LQ7&Dpz2`I3EArdel84&|6=hG+8o=T40>fK*{_UBK^&$?ruQ##SZ z=Y>%2X}1Q?N7F4(JdAR;os5L-?(X`IOct{Wu|amtWML@_>I3stPMfN#n7xdh#+38h zVRI+_Zd#ScA%$@)*d zR`>h++euw9yD^HY3Mz|%fqEb{_6`6Xa?>>D=Z|t4-(Ftro3T4ZVz`sv@y>%+814i6|jRGc2lN zEZw@dLA4G(c#59WC;~!M1jktgqnQYy^8rV(Y-(n^^{Vgt>BFYgcc_W(8&2lE?!$$m z=*BViEi+HbYS;G$k}X0uLvWq|fE=j`P(eh?<=LZWAK$#aRMorvHpN`deNk4vEJ9fi zhc-rGCSOg_hpYShsOqZ1Pa3jCIhnp$zrEUQrqenU-cKi1*F+8o5!fIhGMPH7$~0M? zowV&C$9`xB2j+=^iHKA|3{(seD_0JwR|N$20A^r-ZFfw=pjpWAhveWNm`oxP(cnD? z)*dtq0~;$FnVEB5M3_pYY=-OGt3Xy&4I=M$$K9|$)l)yKn(1sdJ?XkGcC8_KS9Ce2 z)n*iBBqXBBElw|*``eszHVuZvP6@z_&>}={&(61ZI~dzdSzwCH?2$$^ zF&Ty-doMXxRW;;-7&lKP7|halg9XKYx@$QmnX`PW^NuNg=0{MvC@$G2?0ys@kJ7 z3)5-yczK4%DwtDbLu5iC1_lB`6Q&?I78M$DsAs2B)@8NYu^t>T5jZ3fOBsgTseUu^ za;_v(ff12NC8uN{X6^%w!u~1oibNdBf*F%U3WXyJ98!o3fanTW_7cgeL6Qmp=nzK{ zfuh>=!_E5EhL3U)h=|JyoFhVHGyq6L5jfN(2ag~|RyDJ;vy1J`&9GlnY}gOroO3}# zbXtOUB$m)Tsu1)sPA8`nQ&W5AT;*MMAvuW>6)}*DkVna?YRCa{wCK?>Su#+~s7T+9 z0dxRKUDx&<9?c+?J`~l|n#@`n zf&q!i;n+fw*}S$mbuI+wD(_$25R!p_IQ)(X{$Z~6 z)eO=QPyyA7W>Phcq(tb0r^1)yGa@(jG!y6J5m~adS-}wu!*DpRo_zG_-DZ7xd$(`9 z#VIgC5Co8|j)dNfLRke8b30}Ru-`rb@&ZHYRKCJ4+S=G!m zFoI8N>-DDl@A>N0@N>ZVUpQS(sa4nqPSL_|cuOwEAcezj@l%V!^do{!t>_5G74 zPr{fIw1#Xcj%~NPxw*Z*o?Kj1O%14`9+(UOpl7nle6qd2x!LZj$%0)qthclur?Zx- zibIhEyo&Rf#t2}+Q^7v46HcCq&>VrOnUV(s=dxum1^`DKf}1UtzNqM{N$7{Eh7UtS z1A?Nc7N^sbi*9>wC`FRVw5h83WHN7~v~i;;$FY6bF(h)%tc%?juU>xd`#*mC^wagB zU2PA5RHy-f48v}{e*NzC{d!d|<}!}4>wJ-cFb}c4zujKH9oyr0-15*WFixgc&sO`* ztGnNjrp09P^wEWD${a08Mx;4%o7c@0$bCQ+ z4FRa3f+!fVFQ%u1K-yAF90Fr*wN5j_;2ZU_?{!M1b9K|HUtU8bABt ztp35pYOCl9pTzReb~iUSmv1gvWIS#!fBm!Ju$@k)A`%bX-Q}0puU__fI9r^bot;*7 zVvM!dt8c4CJCKY(^)8+syKv6I4Ks@bkTQF#$mhPrEVYtbHoOLkqk#sVCshc zSHJlCes|kIBpEGbOMTnz?r!d7?9b0Hf}_pbciZb5UpP$GcDuu2?;SjU_Q~SnQPE7C z_f&XPD<_2Z$BO~Im$LBO%(Y^u&V$UqJW zp$x_R?4p`380iD+vk*~4P{m@-3f}wq>5_^ml@lU&XpisK?~d&zSyDh$AOuDSWCZF2 z6QC*H+^xR&@|Qn3UlbDKaOA^rf@ykj@$C60lf{W~Xm{)F=Ds}~%!HX2%V#H#pG_7g zP&sC=VAPMACG}F*^^bn|Cu4u8>JpJnjhr(CX3jb7V;}Qa`NknA6B?i+Lsdm0E`7kP zz7EauECd2apdV^{kEp8f{-_EBOPrD~o4T&3oRh0p$JOQKs##j&V_q{H}#0(X3Go4mNVMRR*!`;>O)$Nr?cB};CSOEwbRp4O( zPE5f-$${8vd-#V}FMjgbv-#ruL@7x$DwE`)>sbkaU>H){GZ$RAao4^3<(Has8i&{( zheNyTj#SP*`LiF-=hMOyGm9DkM#(0UbM7?}fkT)#b>)Ib9Gx<my?poL^7WgP5)qja2ZT&yAOH`P7Lm6c zje!-E!Bl^9dG%(!zWBlSr_;HaZ8n?D-F5SgA?^+jXNXKf-RI+R-v$l^yD}6d zxwFaH=?_19^u6z6?a(_&DfWFHMwQ(6{V)tE3o}1^{0Nk1 zL4}Dx4XUDi^!VAh-=lYv#R;-E69P0;H2N?J-c%7lG_xa8E`le+ZnL?%c{>g*DKc7# zoY_jpo`a!^Sd{!Au1;A;NJvCXkW)7K*%z;$E>9w>3sV6Q(jETIbYA%SrO zg#-?PiJaBGnVl@Q{jph|H)p3`%e=pfrT(e0)IgL80Kot~hl0FnZZ{hmdPn4#8iz&W zSqmQ+K$BRPrIs+tn4&|Bh!#bw;20_9bbHwT^*{WgDct|ebaHay3uhR3S^1A2@4k2; zZC5k1*r>xXN(5EH;>r2xkG~(DoEJq+W$zuMohzpE<&#H?&p#>7&g;n>EANR7Fr}`~F{ZrP?cTh*+#a?L(6e`* zrYEQK=bvA#_HS;k{OHI6dq?IMi)G>b^6b&YvyVenzNb|_h_w6R#4kiK_6TSM1#;zG zP95~e*zV#mIHHTiN#RkmblotFk(o8c$~%hCS|Y^Yy^shN2*92uT&Y<%3~yJf|Kn%B zG{nCw!pF})a%JVDATF?~y2oc}9GF6=%3?OFr<1Cj6qA~~_r6vdHA+g>x5w>feSh<= z>$kP{S_T3}29@lb^C8r}i6NRMhf{J|)K#db&2qUoKSK&1a(4#}Obt~G$cQ~t?TApv z^8}CT2*!7UadBZ;BtYG!4aB4S(dI(QM5qJq?LDSZW!~` zX8WK1;g`gr4AryeHCAO+l|@sZJbFal2VY`QF(Z;AG$3^3g(8lA><{hkezjU%-(7dd zU4=nw^~|GzK(;hUOo4EAzEHM!975wQLMV!QHa$Iif1ws z=*z&2O5UkT%FxIDaPQ0F(~p0&nO=4KU0F=BjkA+wJ(*BbJNAYIpdaK=DfhtqIWQzf zgaWO0q_OW0hjzQYy1BjH94;=-CQVuSGWES7Oq<3d?z_IJix}fzDk6-K5mjt4soS1Z zmC6tlz^Nz$T0h9U)%tIL{)?uZg7+7XAC*ju0ZdFViGZmmCIn&9YStemQPdtqPEIeX37RhuBZvZ%8exp88prl{*siax z-dw)w4x3rY9DLxwzVIQCV@*scrLKSR^77I5K07-(J%8$AjN8q|n8`cj;(=qJuf_`> zLhE2gzzpgL8t*+?yWYjVlbre?s=##CG}9S+2LL|sa=9!Ww{06jX_AQjXmK=zEPzC*(jq%yz{baV7HM3ASLWjtznse;C{joi) z?{2s2n>6%wRa8aooMTT^KJ3Pk2ST%|2>oIEU;goDpO5;{^XIdZlj-T%*dDzr0O)~n z|9ZUe->@F`TjPG`AQ3R3D+xSWJg$fKz-X35QK>9_F;T#NjFUPz=jwV2sU4FP&hN$; z0Wx4069N_FMi*(FK;A@^kdv^xAV!=kz?=JSIA^3 zj$=Q@?$~uYw4Pu-2~Ab_A^?#K!Icf8=B&sd=$eY2FDHNVH$Q*%_Ws$Ei}SOyPd@$h z+2cpklZEsAu&V{%QY-(K;m{sLTZ%?sL4tp79m64_CoBO9rg66#+9N>*;FyM-mDzjm z#pHB0O`7l9IGH)`JZX%tC@1py)l$3SK(MN!P^>UcaB&W{`m3FfTgJfI&` zF7MYd#`f5M|H-4Kq?B_?q6%Y5IcG*If}51(qz;p2R#lZRDo4Pfrofa~tWyO{ zt-x=qXb>G*QFt46?QxGX5>}?tM;TOzpeX61=g$MX*OzZQktZP>)n;|owug0_?vI@) zmcA@mn1F}?x$VXftgZ?fhan3AGFgc}y6i(5`lJe1+pbTq1{weKqo>biQ-d^)DUKiz zyyv1QrcG6sRa1E`>JXeEa}i8&%tKNGLLw5Cc4%`}ku->eQD1bgZf;la?r;C}$3OYx z<7bQId|EY1z=jB@W`L;hAoo{75>qBHV>4B>-|Dn~YemXA#KIK?;(E7_T{oM}ga{KV zf(k5V%STV1A5%Wwt~TAUXl7(_k|&9Vl3H!OeANu zI3hVU-L&n`-`(xnF2}^=5|0u&$IajV?ccwC`}VVsKYsS)+2fC%JwH30&Su^}v;<0E zX!;O$jHIdr3IGmC!Ty;QapxGBwCmgU{>B0kvh!8K9-W5}o;|tP^oL*l@^;Zwv!a-k z9FIF@?#H-KLs`~QwxY()2&ME+5zDIHABW%y%Q9=~ei#T`l(7t6opXV?w}hx_%sAxX zi`)B~!|~P4_Q%gIKDk&voz-<+v-ivlKshEdNG`I}44Nfo=~PG|@7n$!UcC9cFJB*q z4!{{i5@%=$D5ZRTvugM4uYU7laXLRgd-Ux5{N!vtuV?kNF3aFtSvXGw{4gkU;b8&% zxAPR?x0@takkdE}$K9bn&ioRb7fB+5Xp^!Slm6%b=jZ!TPQLd^S-MH#*So~tZQ8y~ zzNicI!RhFOD||4?Oc21C$(Uj`oloYw10Kn!A@NgV{(Z9Re zY#%S?pFchQ`0VszIa|~-@6|Ia5GdxHRfm}SINC6F_s9M>msfxD#TW0kJ5)0Qgojg( zfH5PGBppzP7&p89moMHlP196$Gp!fXNmf{kk1{kqVu2&MB0> zsDdBH41gKLIcFveSOo7~#Rwt-Xv9bajK=i9U;{pgy%-E&eK>C0?#TbO|9?(p{2mlNbO-%qEhQ=sj3|YmH>3BRI z+JQG)M*v2O`mnUd2vswg&*x7sPJi(EXFvSp)8)zhK??r6?UBplu-~qoiK+@1W<}4I zCChNP*{+8;pP$T%;yCn#)@3cK@^HJpJ9J~R!t<=~lFbo0-Z%Q+Ld(tBSP%+8S- z5&&2h3?Z;XL?Qwe05DVp!mo5;W_BFo@h)E8?SEdlSzXMVx+$uh#VHg7h2tsL6Jun{ok1jt3Gs;XjU#rJj*5D&x-iO>-w#0)~_j1V3abYNc} z4=<=g*Y{(0yV(;Fm@zXV=A;VpaO;c?(9jgf0RjQ)gM1MIRS{H>3q&9y12Aw7B`cAc zs1PF>03!kzqU2HJ^4;6jdh_z~>U*C&|6l&yUp&1yCCBgeMFs#siZNW_T8ikNyRs1yYFuf{k}~i!dx^(AflplV-`%{MqzYlK;+DfjEwAICryzMnb{k$BA_BLkvbz(RW-~aF^Pf!5C9PofG7fy10;MH zxR{_3z1M9pB8r(udKj0v7llEk5lc|_B~2L&bN4C0tom6!#P1P$1}_3s+U)Bzd^0H8NAARPzuq4`xMYPO-nj-)jp_!(K zU7{qzq5JE<{k#A5fB%nH*Y_gwb%*5oW6Q28Nz352U4Id3RUKoz-R-aLZo#>n(4m?jk%9ugKe|NFSk2e~O8{U&B|%Y9L??zJV2G%QN=S;J zU@0X4U{J~Y|2B0cyK*GS(ab%vvX;k34#{4%%=Admhv=Xm(6{QUiw*(?S|JFMde)wq z?k3rMd`m64M7Wy{QBA4N1r#db>EUi+3mB{tJq=E-oXsrii5v``7L7inQf)ftKmOuh zzk7fGw}123fBCbYx|5{MOGO#84DPE&Vn$%~hye>k2B?fGH9Ee>iwZnr+}$5ISyt5Fk?Fl~pM#u~Ln zNOA`amPS#8L3Ar-MuS8`grjFTpaIsi9H^|w)>_blk#M8K&CspFVOc~6uD8~WG9c9o zi?SumQcB8_ic}+MS#xdKgcMpMMYNWQT-Ry(pRa%U&;RxxwN}7vZlcKmqHVYPyj)Jl z2W6(P%xh-bZ-!KrSnKls@%(r`DH~JIwxvcMFK3D`c86EbZr0Wct0NP0RU`l3D2o*={qo)(*Sze3{=pJ}yfQwVnHhyni}hrp1}JhplDIYc<%jaX9R@ z<2XY0@OV01=3@Tx#m%NzjivyQEzy+h99x1er`=bJz6cIHuGXND`c?klL`J>?qAZGsv;ldRv%L6T1Ns*&+~~>%i8neB{D_VgQqYfSDvGvQ<|q8kIzA zZT;o1e|4D_8#jmT=&EbBHc)F@=vHi)*JZF_I}DrcW-P;YS00`o=Q=wvjze+ohh42r z#OJSHO-sG3bz8VAK92j{I25z<;r4o6!j8AGAdI>MWQQKDT9^F9BgP%y2Nf< zf}%l+KJCJY43drl4T{MUC^CnWi9m+4-QVB8|KYBD^5Ufp7MH4G0WmU@AdqUUP4gVt zcH^_tu9PKn zjkc(!!g2sxvM`gTA=TU*lpqoCL{Ni}W{gHJ>W{{Sv{DttgoF?zlVsQOTk8!hNXX2G zYzq=*NQO`{Q(6sdvW?Ub@Qsu(v#6;=DS%locCnfm8T0b>uf8th#tq6SR?0XOGpkWK zj%}@%br~p%#rg0!P1AH<=aS{H_ruLt)e3M^N^KKSZ;Bmu+uIk1O&JoHmiC)(-`=0k zmdb2SgDHinWu&>A6wu(vC`6->rYoXEcpyNSDnSWeJOn3AY6dE38S*ss{YHWSryQl3 z0x@WiM`qFs5C$_DJtNYET8O}cbdZX4LxP!-!3{_mRjUX~4Q^HOyWf3dFkhvbWVDD_ zYRyc8wTPB&$^_IZPV-b#Bk<|-;pd;ce!bnbc{=QdbUhuX4L~p3?H0DX)Tr`rzWw7L z-rd!jnXR*5%!h<0*s}plZiogU1naLu&p0xn8sI%x3`Tlfai#2f9nw2H1{TCwUERF3`8yf+`T(=A^P~?bgLPFj_0ZD#w{Z1x>NyX zErVVF)LILCLr2J1H_ShOdHa0e%~;B2IGs*I@z*bIkLSyvC{~8uhQoHMO|Z23`|sXB zu`B5?iI<2P1WY99{XI`!p%eBHDD%v?YLh_Hr0jV!|!BU4Z#$&NT@N=RrNM>9jqI@Psh?8jXuhRqhx z>2w;%!98PDQ6EfZNFin~k&ox8 z$m={CT_0wEn$*=d(K=j}OaR#`#Td|k@rpvwB{e7@0bjm;Wd=mVIxXkRvKhSw%&{!X z{rxeN`_YCXM4HkJ(;VO4eR%ufVLa@A^8A@~Dm)SCPg8q3PJm7G>BHR*#c752bA0uy#=*RJb|d{}3PU84`LhNz)dSOCxj8Dyjbh-=tRssmf>JFZehia%JPyTOzIQ&MU$n3>6#DMewC*xITLBp|x*v%mPN)b&zpeYjliACI5C ze4g!G#@ib6ak?xDrY_T3czJi6zxm<)H{ai{v3~LD#b4dLsI{Ih(>%|Y8t?Dlo7rKv z-)~2EfA{9ihs)*RQs*_6Rww1&x30V_>srI0Mo?1!CyMlfj6QH?CQJa0jHqVDG&AC3 zS`7duVUiJ2q=9KxkU?5fGFoRhw5BwYNYSV;M4}jm;K?|WCWTU0-CBYyfd(d8NMYT% z0^IC(fBMCj<@j`ttnc1G-k;B}Up>oUX1ml_Y8!`Pweih|hc|b}Ki)n5=WpIz*5%8W zFTVP-pWYm{Pp9+a`P5o_`*`{7yAQi@{NyAQ!As5xg2!w_P&821w5GUr^^ z5R3%+td;U&8I@+rh#;-EGn3p+LNW#Qn`KGYv+4?{f&(KGvT#@cY;amyNKGi>YUw$I zYf#CASVuVSMBFWOJ>e-z>0iZ#jK7W4m{N{fFb~|un4JJth00000NkvXX Hu0mjfeypoz literal 0 HcmV?d00001 diff --git a/web/img/folder-publicshare.0219e0d4.svg b/web/img/folder-publicshare.0219e0d4.svg new file mode 100644 index 0000000..8d5b97b --- /dev/null +++ b/web/img/folder-publicshare.0219e0d4.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/web/img/folder.c8ff81f3.png b/web/img/folder.c8ff81f3.png deleted file mode 100644 index 76109891228b6b16fbcad7ad06d1ac3fc88091c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4830 zcmbVQ^*+hyMz`n~H%74o*ut*}WqH4i0UAj=IXrVB8a1y>uHbhKKqv z___bFAHeW80gEtO9wV9ZS4rXFp zw0G);;UL=4VL+eLOx5WYQo(ki*07`=-EqosXSgJgdW)<#tu=gAV!i-df8_H2LOXFR ztp9dp0T9^hy_auzMa3@Xs2{a(X-K1!xR9RhPg_Lti+;r6(a7fH=H9nHhJq+u)aVTN zP{n)jVPjvE$JXqBMl+(ER?;v)cZ}25)Doj+N7O1jwB_NZZS3=0>0pkXt55IW)!#>R z*|0wZ?-)iLh>G(S<=bGebC)Zbnn%ida$hB`=YRi~9%yALba5MC5x%*cK}5 z@wuNusD7}0JQi-Q-I z;XVBjSqBWzO1po*8+JN994yLeUVvP?7kZ5ks~Kv5#cCNf-ya-LJ~0R~oJSiMn7p|q z(=yz+{x3=q%%Xfw+9pfIh8E4ybvC1fL2vIL%!~H2?Ixe(nHh`Z>7Ea@)qYK%ySW8K zo=MHkPgYBECv#l**orE3&TRSgUralq;1g^!>`?@w<$hqx|IS>67~L!!(F8fVzxp1| zSh{;Jb5k$3+1#n0@t$a1>`BN4U#Pz&F{*NG|Ef1G6kt^Tk~P5L`x!6vjK{L-V8VZ8 zVjqA9uu<0}lZ)aAzLUZnrr8??ka@Z@PYFXzuGW}ZTia80-}K(a+b_m9zg0}2F^Rm= zHp_$cyHTPa{0bO>dri;zY>*o>0@exSN(@&{hS$8jev|o%Cn;3cwiXLv(uzj6V7(~}NG6)cSI*wK) zuaC=$QV6iZy!A00uogP{@Yu2!&AYp&Ea3svI|adu!AdA25Xxq<;P_+iezIzFAuP z&E13wdkT;Jiicez@I1w5UQnRLo~!Q`XC0!77)VP*9MXRS^S<8TT(e!_z2D&^K(0Ed?E+MTQ~K4O zEVX*g%ivP&(fkZd@{;{T3WcW1a$bE)covn5ISL~{_Wmx@qAu3SPr!h<@@(8SbW21! zws_^XX>=rOWl3B~Zn3mQnK-d~9QyxuYtb~dpH7a!NGnCw3 z9AoOL#%!9~q^8erjzrD&*?OEdguoByBeNbyt_=I^tA*;5^B?OGp{44|=7<>h@eA^p zAJ&Z}o>gPo;});dD~^33QiPfS-Yq*Ai(vR1n0*g3Ffw01h2B~9+9-7!)5)c)6x4K@ zTvPqSDC2>6t!_Ph!|g&HX2$C}TL=bygvR)ooYJz@di_db|HKS8?D=5#Wl4g+<*Df` z-Wj4PM36B|A;X`*{}UI?1CqY?O#&+s?(=Piv_$T(G42bYvppZKf*NL?#u`4QY)No} zThguCO2rjSt=&?{5VocK60C>;(%3~qhK!Qk*W}V&)k+w&_QZGM&{>1ao(FF9GPpmd z*`U&VebYRAQ76tom1p+AIAnSbXhf_shm+VfL&t4XM|(@aC9%Wx-T2QC?)S1GZ|$6| zUNHL?*;;l{7+E2y*(g)%f*hJcL>_O6I8K_*!QUzHu^B;j!=#~&198su-U?fe?gykN z_!u7Vhe(oTn8-$>y1XRU`nZW13lBN;Wu^TqGvqsF9|&>Oszr@#@)^H@3=N#Tubfg4 z!jzS`i=(C&<&QkM%wB!}B*LRzI-;IRWkxA>J)H)hPI+AKW36bLU9x=E5VdK}I^NA` zp)Xl3=UoUf=eO-r6>#*+vM1kPGST> zlNAVHbVYFd>ZA_uE$Tv|l*YE>u=D%tKoZ(Wgrwr=B-QIRxN=1rXmK4Sw}H z8U?1J^c7~Zj;ENP0`6XzoJruOnwMKM@R8o&8AHq`u{y4Y6;_im^R4R7cjBCD6Hy{~ z=idX`vo01DM#r4=YOBz!-rNdW8D?J$G$3V5N_vlLms{e$8>=!N8nnN^hU4q6IN$tihaRb zoOkk1T0@$Z3%=?p2MeN3ctydW?#v5p1`t1KAWcX!U#dfk+{h?}KHYdZ)PV@0n{Wfuq?;H?kH^s&yh$TUCglPOYNR!wdJ&B`)={>*EKAwM<-nEc9x`^7q zifL+aiz98l_6K3F@bNWTG$MfHLUwudz1s)Yv-yEpc9#bwZz3av8}&ungA6NX>y;?- zinv-ZhJNv&YHT&MWFKr17J1se0F3FBt#CREcrv3VbnY?QxMD7_ahRKtZUUtSoKd1F zq{5Vr6U2pnG|W0lYEsU_a2hDlFaq5;{xHrbCDCC|jb$o`*`~riDJo#y9d1ODraUlu z*=FbHcTxC}*xhyn{qJApR-EBqi)_-G z`D$op*3YDyB^!J3(O=3eGaYxOVJ7fj?iq{vl@zDVL@l2&>)(zO`nr5_jpB*xsIgoI zR|0o)GPtY3-%3DUPFo3rZ)o%X<(heV4Pb8K^Q)`;B$2zt5T>Ip zK1=MHYNYd%NrMNRREkn%XHAbOg75N^#JT9z7FP&)U8-M1R!vd~K3a&aN(L7G!KX|smJmX@m;>>LH+X@%I@6Y^GOpvx}pz@RS0wQG8k-)*g z&5{8RQX6}+sB4dt8hCHbfc#-H7H-t?zM! zfiJmWMi#f&;8Y1B-}gHk6Stoigd)ZQd0n;v`VYrN6|+UJW(ur)?F=ijH0{qEyvtJ? zlzn56nbnst?SlP1pM1dBIYuaG1vl99o2KY1nh1VH;;UY{a!9Q|<`- zEAj@l*X-_h$9uW2<*JN%4D3w4EiL2oc?M8Pf<;WGvojLXG z!c4^e4dFWU-m9hU6;*#Pr*rnGhdxNMX~ugQ-vYd~)InL^WL6onTbJ|`2sMz zJ0R#)IC+c__YF>k4R45WS?QM#*KPOy)AefdOC8Gtn|rxsd7gfh6x)HRz9N8-t-jhf zyA|1=l#oe&4W`^{;})TYqtAzc5r$j|s~h<5TRc}rd8G(}HLbIkDb2RQx687#cvg1; z6`k(qh(8TX_D>T4@=11;Y#rs$$qDoLTx@iuexh^A;b6k%#9uPj+8@*MHh84=G~OlN zoRC=c&wk_u?4@5Zx$q|;;JX3F$y6i5w{|P{j8>|i0Qm2L{h21`vrWM^XtJ)~ zaCp0TzqjgoD&NshDaf_lkKk_iVw3E{#cvdAUH8BLmOkrEV{8#XeY=fq^Mpm7qFzTH zl1Rbm4ld1~bCW|wokZ~cCSq#XXw_k=kK?o-?g7LC0tj*1Ta!(lTki^HuY!TA!hyxc rrIsWnnZeMqoVkr{9Z8PT-43}(4IhItE zVknYSyp>f+S(UJ`jWG$WYGh9V-86|-N0B#4PDc|5AIyU~%d0${YkHiOKTZejS3muC zAZ=h_aM_aht@!`2ot%i5SR^?Y!}l9>V>*NSFR((el2Mn}CLyu|&51u+JzqwS6hR8k9$R(_mBJbO-z zOw8Z9iD-l6x4DLw;lW&Tbk5(KMShNEhuNwagHw=+Jt9s!`>OXLj;sohE)RM~ur)qr z$9h=la0o!g+vyrLn(N%^t zux71}v)sQr9v#%mdnoRWBoW;IfY+39=KC`HrTnxZ!!z^eh=hxd+r1olI+x9-7ZRtF z5xwEQ0#IAkDC;4nkp-R8PpPz9c(uq`8(t?7_vZNHs2X3UmL`|Kcjlc>e@~wFgV$ud zkD`{NeNNWnO?mCp)FbMz)50jWCC7`oLx!_a77-9r3|CeqPLsSLvb+qB(=ZWe6CO1| zmWN|}jpfPn_hN+#2EV0n;_KKo@OLe7|(-Lx7fTH zk#DvYad}AcIH&aiJ*o!qd$-f%yprloD@iPWe^mdQe=Bov3?YhuS^igV_73XFTx2Ol z9*^Rw#L8B~XZ6T3<|M!-P)7oAz+vnz_C?Mknc_~1Zl|sv?q)3H9!`7d?OBC9xwP`2 zp(4Jzh6tX@nW9bL*GJrxur`(~mXW=v;3Lx+F!@`1uKdlP+fv5VFosG3Y&$C!QX1yA zg9ppd)Pd;5A3lQ4D?bf_$`XwXAH8<=#y<)ly#X}9Bt7?_G`{1gM#qJS+uPgGAFCdk zG{Dyd(WNi;LJ%4b*=+3tW>Gbt=kNv^Qn}_t1@+}=UaYFw^Q}ZSa5&qM>xU6Fz)~6N z7KP-WcIue|PZN9pTUInqHoSc}pIiXL>g(!6B=9t+LBhEh0`!eBrP!*?_++pm|H9;b zMu-VeqUK~=fs}Jgqc#CS&EBlLkzIzgAsD31*@H_s-<@TV$lXMShlf+N(PMMvQJn)N z`h0#L|JcZ*zk{47ookCkl_C{lTS{W!n_?n7bm44F)BurbTzyI$GQ4oyWtACfb-$aK z7m;H&sMe=))jYwVyX$S$3&t#O*oUC<*CU;O%joQ^Lsojb?;iuI1-G zo%RkQlHnS#DvM4zFpO=GY%%4mDbzMYBKXSki>2oKPsB*d$LK42 zvR%tnJNB;kX;ImGA2TwTS}*6}QiJw4@e=Fmo=J^yKPlPnMHOSQirW}5L8xW9Ze5Kp zh%d8zQZ$SLQx;fSFIrQC3lvz(Fj>F?o^y*Wp8M8n7D1P_zom#stvZgIRz_&rkLM88 z)z4rKG_I_)MXfip)?!$qeO?T>5a%s|U(`+TEUYb|EQXATw1U842qQLXzwCAH-RMl2 z)_K55yP9&K>X0j~@}5YuscR`>ys`=KIbeN5Lk|9i(Rbs_kZ-iJ1BbsW|#W9sMGfa>X|;;&r_Tu8=(~p zsw$3*f)ICnBm*=wx$7};&5^l1-4b1b#~W{bI3otS)j?2QAK&lW<@xPJHfRL1-G1eV zH({GlLsKFxOX+O)ko0HsaMuG{;G0<%yzgJ?EzY0}2`*Gqe7ejs{SOg7kYp)%*`UyBy)k9UX9)jC$j zL>I^XA@k%TV4%gGaPp`);M2HGOBq3z+jph*Nt9?aMqp?xtw{moQj&^#cdkZK@E%w}hw2Z

    ~}$bVosJN zXED`0F7lPJ-Hzo6cI%Aac*RnOMK-q0-Rq^VpXGS+4MD?AKB}hmub^Yg?3?0^$Mii3 zr-B^Uj+TblprL10eo5S|htsIhCo!k%&rr^ukpeln;^&fg za*7GTl$c2zFWlu<)RIbz!b|dvuU2o*8_;Kib)nU>X(wDIv{m7&;?HW=Z8{0Ze`z{s zSXvf=1R-g$a5&YrI7n9l$f9-t zMBW1ck|yS~5GQPKN@g92Z{oxe!`1O4!r@}ZP8lwZW)^Zt6P}^W_ch*tbBZEa&(dGL zXdVlxQ|K~wZ^1#G72tM1WQ;hH;+Z^t06GG>gz~QN3O|rQjJ_Mr$9quel|je)W2x2f|OR2=- zDmc(BXl(zKXDPoOXtTjSGne&tlhct*ABL2hG7Sw4SG$q$9|_{l%ixtCu4S3b6zk-T z1a4XHvWpy@7qIsgUme@5dYuI9uNf$Y&iRNM3D+;U2d8jpy&2%*=@FK_^|9od%tCZ#Xv%D9CeDb@P15iR|3>w6Ha`;lnR|^LIa)d&m%C%=XBT1M_&0D>#a-2ro z_{c|1`@H4vei!Q-KnVsc6^zkaH;yeHugPlAYt^T+o!-FfawI6|9VhXSz<_P&c|*~Z z;D7azGXFIzd&sK5X{lv{wq=wfi5Wdsq6DPs-(*ghRp#QeEyNB8_w*K}eG>-WmLrb} zMw)nNU3@7cSs0~YDGsD!1OKhH@^1C`FL{@61s%>;o-I(7dv}Rda{_RJ<66fedfjr* zbq_un{@R8=OO|0#3tyo=tjOUTRA-Q-_TL$ZA2QfIpsv(yAErqR*`!im5fV4^eS)TYKo6EUSpFcHr)iYX-Hw5pdA#`k8rfc7Y*{6i-(4*m*;C}od& zgSfwms@tfqQaeTOgk1e=$#ie@MB32bg@jV-kY_p#5&*WM^ZwN@#8yLh%BUV_yD(rBG zq8*U|7r&<*;&fV%R$FEmWwbyX2a!w7f3??T1qFw6lo1n^5jjTvyxQT)aZ2`B(;>26 zp!gqMGfw80FD*V_duRwJq(EFV-$sP8F`z*7>y&>e)b!{|TTn!9) zht6%~-&UArn4`yM(d1mZfDu-QjP`(Q!?s?3)ozRV;2rO^W8rG2c?3V)+}jGPd=WRB zM0AR>Ot^IP=Omz;Pb+Xt-mmo4c2(_5SIF;304@z7TXbo}uhm4>Qh8N= zIMJuQPhLO+u>pTnZYtNbX&-sH5FTMCdW3hEWv_sBsc|nwz1_b8I3IP}jaiY;QM=Jf z3A`17dsM}$Wj`-~XJ$Jt zBkJOi_4P%1ypJu+xN4oPeWoBC17oq=u?;u8MhWF@E%Tb`;-D;l`g~Ge3s6^+DqdqD zLv+cI01>-NQ%z0@jpyTbT*czkqJc1(WKX+ zy69nZOq>DZ^Y-14(xkn>kj;DXa4M-dvUH3rgp{mq+LDjKT`#lvQdRImAmmsl;Mv3AP zu+K7U#9zhF{)<`t3y88sCOCAK)bm8F*+ELt()@{B`oD+Rp_wk=fSgP z@nt50(C>Di9RJALCx>KR^p`CCaUNs!y?%- zq~W`pmRM^fUjv(^%WFA@#s{9%Hb2{ANibq3tLyZ4#b zOS1-G;B0LANTF!c%bwrWKBcff_p<|~`9rs;a^BBUwANF09nkrum8^ee1jm`Me^LX_R-uQs2?|Ai|P>hos;ynleY8MF~fZe2ogqViX%;jHx?~HP5ZkbMI>i{{FvBvw>yrOa#LvO$1-ZpkV^bI zo48>7EItW&XwOCHHl~WA-@(_6k?`gyhavv6zt0*6h@66DfjfWS->%HQ19!@<5sf#W1 zUm_`{cC+8Gd=tV?P1Fp;&f5$gWVz9ln)*~Y4F2l;AS*+%*S5b-4G3NC#hc7jV7|uZ zcccWzmKcTK3}4gun$o|K65{Ia^Y$HgL=PRV(B!%oK5KRES=90 z%clE2(xI?^%)apti4oSOTFu^7w`u@Hkt?q!D{rxczfQt}7WDN}->b zJHM~)7u3&vWn{2+wEaG3QGi}u>@s`$`6*QlRk>8l5W>jv-rPi4W6sa@OAAp_qUEx| z*2k)IJ<0TGT(Pi2)(mzqxmXvT#F;v`43+`oXvq>snrg6+g$mWYig!ct8g;xh9o;Fm zM|yKraw0k(q8j{Q#dm51oiUc-)QyYhohDKu=i{=<75O%g@;H7=Eifl-`r*gVF$Rz4 zqV5$qxtDx;*rAowA~*;)awPt80KNdHX znL)<>*@{b*-lHp~Sw*NbhQaG)l1mY7%|(L&dP!qS&n(W})%KEu=1?PTcMM@hb%qeP zpu94*8cuSI0_~ynn#!gwtLc>pl>tnwz$kA%gKF%0WP%bfkbhFD=?lk{FH| z-eZWjH03l+_47}f$q}bLfvQWwOMUiMoE{_fob=ift94YZoS%njr8_N3@*55xlL$BN zXylPENNF`)wn#NYA~Q(Sc2rJln>+kr1a)KgE_qlcGGzj}q0t<}l{eU-7AEY2Adb}@ zmAc{In$qv%o7yFV?cIgnwZSq_z@u1RbJ!O#N=2^w>6V8TL6xD;y$UN~e{t<(Ymcly z3c1j_GWS}!jTKHz>uDm!+4)iC5oKRMMAoo@#c><*(&yx*zKOl=N8n_Zo~!I>|3xbM z4AYkRykHjG_;X^huzBe8$5VB{AgCYnjV%893_q;PFK{`F6V&hUU06`PUvtsdq~(Ld zWHvLOUAsUwJBzXqWC%3y^iOf5b|Fpb_f8_|^*_uqaY~16R-cTMvm2;d^G)Z?88)Xy zt2%GFF(#j>KSi8VB*r2x?9>OYxQMFfWhCMbT)(sYJE{LYERE^JKgtG9^xCVYkpD3w zItT#W6-Qa0(M<-HC>Qy+3pD89)gg#ZUEcAHIBuV15;zDPJgs(BJ_b(a$!gBNTrS$A zEz`7K2TwypAr0%jT rA)-ZsXFyK*2$-?-|H~dX&OX}4C1lot&y@as`!OIYufbJHmZARxJUriw diff --git a/web/index.html b/web/index.html index 93bd501..5e67b80 100644 --- a/web/index.html +++ b/web/index.html @@ -20,7 +20,7 @@ CasaOS - +

    ' + _this12.$t('AutoFill only helps you to complete most of the configuration.') + '

    ' + '

    ' + _this12.$t('Some configuration information such as:') + '

    ' + '
      ' + '
    • 1. ' + _this12.$t('the port and path of the Web UI') + '
    • ' + '
    • 2. ' + _this12.$t('the mount location of the volume or file') + '
    • ' + '
    • 3. ' + _this12.$t('the port mapping of the Host') + '
    • ' + '
    • 4. ' + _this12.$t('optional configuration items') + '
    • ' + '
    ' + '

    ' + _this12.$t('These include but are not limited to these cases and still need to be confirmed or modified by you.') + '

    ' + '

    ' + _this12.$t('Feel free to suggest improvements to this feature in Discord Server!') + '

    ',\n type: 'is-dark'\n });\n }\n },\n props: {\n initData: this.initData,\n netWorks: this.networks,\n oriNetWorks: this.tempNetworks,\n deviceMemory: this.totalMemory\n }\n });\n },\n\n /**\n * @description: Get remote synchronization information\n * @param {*} function\n * @return {*} void\n */\n getAsyncData: lodash_debounce__WEBPACK_IMPORTED_MODULE_30___default()(function (name) {\n var _this13 = this;\n\n if (!name.length) {\n this.data = [];\n return;\n }\n\n this.isFetching = true;\n axios__WEBPACK_IMPORTED_MODULE_17___default.a.get(\"https://hub.docker.com/api/content/v1/products/search?source=community&q=\".concat(name, \"&page=1&page_size=4\")).then(function (_ref) {\n var data = _ref.data;\n _this13.data = [];\n data.summaries.forEach(function (item) {\n return _this13.data.push(item.name);\n });\n }).catch(function (error) {\n _this13.data = [];\n throw error;\n }).finally(function () {\n _this13.isFetching = false;\n });\n }, 500),\n\n /**\n * @description: Export AppData to json file\n * @param {*} function\n * @return {*} void\n */\n exportJSON: function exportJSON() {\n // 将json转换成字符串\n var exportData = lodash_cloneDeep__WEBPACK_IMPORTED_MODULE_35___default()(this.initData);\n exportData.network_model = this.getNetworkName(this.initData.network_model);\n exportData.version = \"1.0\";\n exportData = this.uuid2var(exportData);\n delete exportData.memory;\n var data = JSON.stringify(exportData);\n var blob = new Blob([data], {\n type: ''\n });\n file_saver__WEBPACK_IMPORTED_MODULE_36___default.a.saveAs(blob, \"\".concat(exportData.label, \".json\"));\n },\n\n /**\n * @description: change uuid to var\n * @param {*} function\n * @return {data} Object\n */\n uuid2var: function uuid2var(data) {\n var _this14 = this;\n\n data.volumes.forEach(function (item) {\n item.host = item.host.replace(_this14.id, '$AppID');\n });\n data.devices.forEach(function (item) {\n item.host = item.host.replace(_this14.id, '$AppID');\n });\n return data;\n },\n\n /**\n * @description: Get Network name from network list\n * @param {*} \n * @return {*} String\n */\n getNetworkName: function getNetworkName(netId) {\n if (netId == \"\") {\n return \"bridge\";\n } else {\n var network = this.tempNetworks.filter(function (net) {\n return net.name == netId;\n });\n return network[0].name;\n }\n },\n\n /**\n * @description: Change App icon when image changed\n * @param {*} function\n * @return {*} void\n */\n changeIcon: function changeIcon(e) {\n if (e == \"\") {\n this.initData.icon = \"\";\n } else {\n var appIcon = e.split(\":\")[0].split(\"/\").pop();\n this.initData.icon = \"https://cdn.jsdelivr.net/gh/IceWhaleTech/AppIcon@main/all/\".concat(appIcon, \".png\");\n }\n },\n\n /**\n * @description: Show Terminal & Logs panel\n * @return {*} void\n */\n showTerminalPanel: function showTerminalPanel() {\n this.$buefy.modal.open({\n parent: this,\n component: _AppTerminalPanel_vue__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n hasModalCard: true,\n customClass: 'terminal-modal',\n trapFocus: true,\n canCancel: [],\n scroll: \"keep\",\n animation: \"zoom-in\",\n props: {\n appid: this.id,\n appName: this.initData.label\n }\n });\n }\n },\n destroyed: function destroyed() {\n clearInterval(this.timer);\n }\n});\n\n//# sourceURL=webpack:///./src/components/Apps/Panel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/CoreService.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/CoreService.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 _smartHome_SmartBlock_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./smartHome/SmartBlock.vue */ \"./src/components/smartHome/SmartBlock.vue\");\n/* harmony import */ var _syncthing_SyncBlock_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./syncthing/SyncBlock.vue */ \"./src/components/syncthing/SyncBlock.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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n SyncBlock: _syncthing_SyncBlock_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n SmartBlock: _smartHome_SmartBlock_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n name: \"core-service\",\n data: function data() {\n return {\n isLoading: false,\n isSyncConfigLoaded: false\n };\n },\n created: function created() {\n var _this = this;\n\n this.$api.sync.getConfig().then(function (res) {\n _this.$store.commit('changeSyncthingInfo', res.data.data);\n\n _this.isSyncConfigLoaded = true;\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/CoreService.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SearchBar.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/SearchBar.vue?vue&type=script&lang=js& ***! - \******************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"search-bar\",\n data: function data() {\n return {\n isFocus: false,\n keyText: \"\" // searchEngine:this.$store.state.searchEngine\n\n };\n },\n computed: {\n searchEngine: function searchEngine() {\n return this.$store.state.searchEngine == \"\" ? \"https://duckduckgo.com/?q=\" : this.$store.state.searchEngine;\n }\n },\n methods: {\n /**\n * @description: Handle Focus event\n * @return {*} void\n */\n onFocus: function onFocus() {\n this.isFocus = true;\n },\n\n /**\n * @description: Handle Blur event\n * @return {*} void\n */\n onBlur: function onBlur() {\n if (this.keyText == \"\") this.isFocus = false;\n },\n\n /**\n * @description: Pop up a new window and jump to google search\n * @return {*} void\n */\n gotoSearch: function gotoSearch() {\n window.open(this.searchEngine + this.keyText, '_blank');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/SearchBar.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/SideBar.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/SideBar.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_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_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __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_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __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_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash/lowerFirst */ \"./node_modules/lodash/lowerFirst.js\");\n/* harmony import */ var lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var lodash_camelCase__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lodash/camelCase */ \"./node_modules/lodash/camelCase.js\");\n/* harmony import */ var lodash_camelCase__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(lodash_camelCase__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash_find__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lodash/isEqual */ \"./node_modules/lodash/isEqual.js\");\n/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _components_widgets_Settings_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/components/widgets/Settings.vue */ \"./src/components/widgets/Settings.vue\");\n/* harmony import */ var vue_custom_scrollbar__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! vue-custom-scrollbar */ \"./node_modules/vue-custom-scrollbar/dist/vueScrollbar.umd.min.js\");\n/* harmony import */ var vue_custom_scrollbar__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(vue_custom_scrollbar__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var vue_custom_scrollbar_dist_vueScrollbar_css__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vue-custom-scrollbar/dist/vueScrollbar.css */ \"./node_modules/vue-custom-scrollbar/dist/vueScrollbar.css\");\n/* harmony import */ var vue_custom_scrollbar_dist_vueScrollbar_css__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(vue_custom_scrollbar_dist_vueScrollbar_css__WEBPACK_IMPORTED_MODULE_14__);\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\nvar widgetsComponents = __webpack_require__(\"./src/widgets sync .vue$\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'side-bar',\n components: {\n Settings: _components_widgets_Settings_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n vueCustomScrollbar: vue_custom_scrollbar__WEBPACK_IMPORTED_MODULE_13___default.a\n },\n data: function data() {\n return {\n isLoading: true,\n comps: [],\n apps: [],\n scrollSettings: {\n suppressScrollY: false,\n suppressScrollX: true,\n wheelPropagation: false\n },\n widgetsSettings: []\n };\n },\n computed: {\n activeApps: function activeApps() {\n var _this = this;\n\n var newArray = this.widgetsSettings.map(function (item) {\n var obj = lodash_find__WEBPACK_IMPORTED_MODULE_10___default()(_this.apps, function (o) {\n return o.app.name == item.name;\n });\n return obj;\n });\n return newArray;\n },\n sidebarOpen: function sidebarOpen() {\n return this.$store.state.sidebarOpen;\n }\n },\n created: function created() {\n var _this2 = this;\n\n widgetsComponents.keys().forEach(function (fileName) {\n var componentName = lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_8___default()(lodash_camelCase__WEBPACK_IMPORTED_MODULE_9___default()(fileName.split('/').pop().replace(/\\.\\w+$/, '')));\n\n _this2.comps.push(componentName);\n\n _this2.apps.push({\n app: __webpack_require__(\"./src/widgets sync recursive ^\\\\.\\\\/.*$\")(\"./\".concat(fileName.replace(\"./\", \"\"))).default\n });\n });\n },\n mounted: function mounted() {\n this.getConfig();\n },\n methods: {\n /**\n * @description: Get Widgets Configs\n * @return {*} void\n */\n getConfig: function getConfig() {\n var _this3 = this;\n\n var initData = this.getInitData();\n this.$api.info.widgetsConfig().then(function (res) {\n if (res.status == 200) {\n if (res.data === \"\") {\n _this3.saveData(initData);\n\n _this3.widgetsSettings = initData;\n _this3.isLoading = false;\n } else {\n _this3.diffAndCombineData(initData, res.data.data);\n }\n }\n });\n },\n diffAndCombineData: function diffAndCombineData(initData, remoteData) {\n var newData = initData.map(function (item) {\n var remoteItem = lodash_find__WEBPACK_IMPORTED_MODULE_10___default()(remoteData, function (el) {\n return el.name == item.name;\n });\n\n if (remoteItem && item.name === remoteItem.name) {\n return {\n name: item.name,\n show: item.show === remoteItem.show ? item.show : remoteItem.show\n };\n } else {\n return {\n name: item.name,\n show: item.show\n };\n }\n });\n this.widgetsSettings = newData;\n\n if (!lodash_isEqual__WEBPACK_IMPORTED_MODULE_11___default()(newData, remoteData)) {\n this.saveData(newData);\n }\n\n this.isLoading = false;\n },\n\n /**\n * @description: Get Local widgets datas\n * @return {Array} array of widgets\n */\n getInitData: function getInitData() {\n return this.apps.map(function (item) {\n //console.log(item);\n return {\n name: item.app.name,\n show: item.app.initShow\n };\n });\n },\n\n /**\n * @description: Save Widgets Configs\n * @return {*} void\n */\n saveData: function saveData(data) {\n var _this4 = this;\n\n this.$api.info.saveWidgetsConfig(data).then(function (res) {\n if (res.data.success == 200) {\n _this4.widgetsSettings = res.data.data;\n }\n });\n },\n handleChange: function handleChange(data) {\n this.widgetsSettings = data;\n this.saveData(this.widgetsSettings);\n },\n checkShow: function checkShow(name) {\n var obj = lodash_find__WEBPACK_IMPORTED_MODULE_10___default()(this.widgetsSettings, function (o) {\n return name == o.name;\n });\n return obj.show;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/SideBar.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/DriveItem.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/Storage/DriveItem.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"drive-item\",\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n props: {\n item: {\n type: Object,\n default: null\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/Storage/DriveItem.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/StorageItem.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/Storage/StorageItem.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var lodash_delay__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/delay */ \"./node_modules/lodash/delay.js\");\n/* harmony import */ var lodash_delay__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_delay__WEBPACK_IMPORTED_MODULE_1__);\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: \"drive-item\",\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n props: {\n item: {\n type: Object,\n default: null\n }\n },\n data: function data() {\n return {\n isFormating: false,\n isRemoving: false\n };\n },\n methods: {\n removeStorage: function removeStorage(path, mount_point) {\n var _this2 = this;\n\n this.isRemoving = true;\n this.$buefy.dialog.prompt({\n title: this.$t('Remove'),\n message: this.$t('Enter the password to continue:'),\n inputAttrs: {\n type: \"password\"\n },\n trapFocus: true,\n confirmText: this.$t('OK'),\n cancelText: this.$t('Cancel'),\n onCancel: function onCancel() {\n _this2.isRemoving = false;\n },\n onConfirm: function onConfirm(value) {\n var data = {\n path: path,\n volume: mount_point,\n pwd: value\n };\n\n _this2.$api.disk.removeStorage(data).then(function (res) {\n if (res.data.success != 200) {\n _this2.isRemoving = false;\n\n _this2.$buefy.toast.open({\n duration: 3000,\n message: res.data.message,\n type: 'is-danger'\n });\n } else {\n var _this = _this2;\n lodash_delay__WEBPACK_IMPORTED_MODULE_1___default()(function () {\n _this.isRemoving = false;\n\n _this.$emit('getDiskList');\n }, 1000);\n }\n });\n }\n });\n },\n formatStorage: function formatStorage(path, mount_point) {\n var _this3 = this;\n\n this.isFormating = true;\n this.$buefy.dialog.prompt({\n title: this.$t('Format'),\n message: this.$t('Enter the password to continue:'),\n inputAttrs: {\n type: \"password\"\n },\n trapFocus: true,\n confirmText: this.$t('OK'),\n cancelText: this.$t('Cancel'),\n onCancel: function onCancel() {\n _this3.isFormating = false;\n },\n onConfirm: function onConfirm(value) {\n var data = {\n path: path,\n volume: mount_point,\n pwd: value\n };\n\n _this3.$api.disk.formatStorage(data).then(function (res) {\n if (res.data.success != 200) {\n _this3.isFormating = false;\n\n _this3.$buefy.toast.open({\n duration: 3000,\n message: res.data.message,\n type: 'is-danger'\n });\n } else {\n var _this = _this3;\n lodash_delay__WEBPACK_IMPORTED_MODULE_1___default()(function () {\n _this.isFormating = false;\n\n _this.$emit('getDiskList');\n }, 1000);\n }\n });\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/Storage/StorageItem.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Storage/StorageManagerPanel.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/Storage/StorageManagerPanel.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 _Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ \"./node_modules/core-js/modules/es.array.includes.js\");\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ \"./node_modules/core-js/modules/es.string.includes.js\");\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6__ = __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_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__ = __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_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var lottie_web_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lottie-web-vue */ \"./node_modules/lottie-web-vue/dist/lottie-web-vue.esm.js\");\n/* harmony import */ var vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_10__ = __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_10___default = /*#__PURE__*/__webpack_require__.n(vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var lodash_delay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lodash/delay */ \"./node_modules/lodash/delay.js\");\n/* harmony import */ var lodash_delay__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(lodash_delay__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var lodash_max__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! lodash/max */ \"./node_modules/lodash/max.js\");\n/* harmony import */ var lodash_max__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(lodash_max__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var lodash_orderBy__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! lodash/orderBy */ \"./node_modules/lodash/orderBy.js\");\n/* harmony import */ var lodash_orderBy__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(lodash_orderBy__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var vee_validate__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vee-validate */ \"./node_modules/vee-validate/dist/vee-validate.esm.js\");\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var _DriveItem_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./DriveItem.vue */ \"./src/components/Storage/DriveItem.vue\");\n/* harmony import */ var _StorageItem_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./StorageItem.vue */ \"./src/components/Storage/StorageItem.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//\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//\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: \"storage-manager-panel\",\n components: {\n LottieAnimation: lottie_web_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ValidationObserver: vee_validate__WEBPACK_IMPORTED_MODULE_14__[\"ValidationObserver\"],\n ValidationProvider: vee_validate__WEBPACK_IMPORTED_MODULE_14__[\"ValidationProvider\"],\n DriveItem: _DriveItem_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n StorageItem: _StorageItem_vue__WEBPACK_IMPORTED_MODULE_17__[\"default\"]\n },\n mixins: [vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_10___default.a, _mixins_mixin__WEBPACK_IMPORTED_MODULE_15__[\"mixin\"]],\n data: function data() {\n return {\n isLoading: true,\n creatIsShow: false,\n isCreating: false,\n isValiding: false,\n activeTab: 0,\n activeDisk: \"\",\n createStorageName: \"\",\n createStoragePath: \"\",\n createStorageSeiral: \"\",\n createStorageType: \"\",\n diskData: [],\n unDiskData: [],\n storageData: []\n };\n },\n computed: {\n title: function title() {\n return this.creatIsShow ? this.$t('Create Storage') : this.$t('Storage Manager');\n }\n },\n mounted: function mounted() {\n //Smooth \n this.$smoothReflow({\n el: '.modal-card',\n property: ['height', 'width'],\n transition: 'height .25s ease, width .75s ease-out'\n }); //Get disk list\n\n var _this = this;\n\n lodash_delay__WEBPACK_IMPORTED_MODULE_11___default()(function () {\n _this.getDiskList();\n }, 150);\n },\n methods: {\n /**\n * @description: Get disk list\n * @param {} \n * @return {void} \n */\n getDiskList: function getDiskList() {\n var _this2 = this;\n\n var showDefault = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$api.disk.diskList().then(function (res) {\n if (res.data.success === 200) {\n _this2.diskData = res.data.data.drive;\n _this2.unDiskData = res.data.data.avail;\n _this2.storageData = lodash_orderBy__WEBPACK_IMPORTED_MODULE_13___default()(res.data.data.storage, ['create_at'], ['asc']).map(function (disk) {\n return {\n name: disk.name,\n isSystem: disk.name == \"System\",\n fsType: disk.type,\n size: disk.size,\n availSize: disk.avail,\n usePercent: 100 - Math.floor(disk.avail * 100 / disk.size),\n diskName: disk.drive_name,\n path: disk.path,\n mount_point: disk.mountpoint\n };\n });\n\n var diskNumArray = _this2.storageData.map(function (disk) {\n if (disk.name.includes(\"Storage\")) {\n var diskNum = disk.name.replace(\"Storage\", \"\");\n return /^\\d+$/.test(diskNum) ? Number(diskNum) : 0;\n } else {\n return 0;\n }\n });\n\n var nextMaxNum = lodash_max__WEBPACK_IMPORTED_MODULE_12___default()(diskNumArray) + 1;\n\n if (_this2.unDiskData.length > 0) {\n _this2.createStoragePath = _this2.unDiskData[0].path;\n _this2.createStorageSeiral = _this2.unDiskData[0].serial;\n _this2.createStorageType = _this2.getDiskType(_this2.unDiskData[0].need_format);\n _this2.createStorageName = \"Storage\" + nextMaxNum;\n _this2.activeDisk = 0;\n }\n\n if (showDefault) {\n _this2.showDefault();\n\n _this2.isCreating = false;\n _this2.createStorageName = \"\";\n }\n\n _this2.isLoading = false;\n }\n });\n },\n\n /**\n * @description: Disk choose handle\n * @param {int} evt index of select \n * @return {void} \n */\n onDiskChoose: function onDiskChoose(index) {\n this.createStoragePath = this.unDiskData[index].path;\n this.createStorageSeiral = this.unDiskData[index].serial;\n this.createStorageType = this.getDiskType(this.unDiskData[index].need_format);\n },\n showDefault: function showDefault() {\n this.creatIsShow = false;\n },\n showCreate: function showCreate() {\n this.creatIsShow = true;\n var diskNumArray = this.storageData.map(function (disk) {\n if (disk.name.includes(\"Storage\")) {\n var diskNum = disk.name.replace(\"Storage\", \"\");\n return /^\\d+$/.test(diskNum) ? Number(diskNum) : 0;\n } else {\n return 0;\n }\n });\n var nextMaxNum = lodash_max__WEBPACK_IMPORTED_MODULE_12___default()(diskNumArray) + 1;\n this.createStorageName = \"Storage\" + nextMaxNum;\n },\n\n /**\n * @description: Validate form async\n * @param {Object} ref ref of component\n * @return {Boolean} \n */\n checkStep: function checkStep(ref) {\n return Object(_Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var isValid;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return ref.validate();\n\n case 2:\n isValid = _context.sent;\n return _context.abrupt(\"return\", isValid);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n\n /**\n * @description: Create a new storage\n * @param {} \n * @return {void} \n */\n createStorge: function createStorge(needFormat) {\n var _this3 = this;\n\n this.isValiding = true;\n this.checkStep(this.$refs.ob1).then(function (val) {\n _this3.isValiding = false;\n\n if (val) {\n _this3.submitCreate(needFormat);\n }\n });\n },\n submitCreate: function submitCreate(format) {\n var _this4 = this;\n\n this.isCreating = true;\n var data = {\n path: this.createStoragePath,\n serial: this.createStorageSeiral,\n name: this.createStorageName,\n format: format\n };\n this.$api.disk.addStorage(data).then(function (res) {\n if (res.data.success != 200) {\n _this4.isCreating = false;\n\n _this4.$buefy.toast.open({\n duration: 3000,\n message: res.data.message,\n type: 'is-danger'\n });\n } else {\n _this4.getDiskList(true);\n }\n });\n },\n getDiskType: function getDiskType(need_format) {\n return need_format ? \"format\" : \"mountable\";\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/Storage/StorageManagerPanel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/TopBar.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/TopBar.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_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ \"./node_modules/core-js/modules/es.array.includes.js\");\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ \"./node_modules/core-js/modules/es.string.includes.js\");\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _account_AccountPanel_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./account/AccountPanel.vue */ \"./src/components/account/AccountPanel.vue\");\n/* harmony import */ var _logsAndTerminal_TerminalPanel_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logsAndTerminal/TerminalPanel.vue */ \"./src/components/logsAndTerminal/TerminalPanel.vue\");\n/* harmony import */ var _settings_PortPanel_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings/PortPanel.vue */ \"./src/components/settings/PortPanel.vue\");\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_5__ = __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//\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//\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: \"top-bar\",\n data: function data() {\n return {\n timer: 0,\n barData: {\n auto_update: false,\n background: \"\",\n background_type: \"\",\n search_engine: \"https://duckduckgo.com/?q=\",\n search_switch: false,\n shortcuts_switch: false,\n widgets_switch: false,\n lang: this.getInitLang()\n },\n updateInfo: {\n current_version: '0',\n is_need: false,\n version: Object\n },\n isUpdating: false,\n latestText: \"Currently the latest version\",\n updateText: \"A new version is available!\",\n userInfo: this.$store.state.userinfo,\n port: \"\"\n };\n },\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_5__[\"mixin\"]],\n created: function created() {\n this.getConfig();\n this.getPort();\n },\n computed: {\n sidebarIcon: function sidebarIcon() {\n return this.$store.state.sidebarOpen ? \"close\" : \"menu\";\n },\n sidebarIconLabel: function sidebarIconLabel() {\n return this.$store.state.sidebarOpen ? \"Hide Sidebar\" : \"Show SideBar\";\n }\n },\n mounted: function mounted() {\n this.checkVersion();\n this.getUserInfo();\n },\n methods: {\n // getInitLang\n getInitLang: function getInitLang() {\n var lang = localStorage.getItem('lang') ? localStorage.getItem('lang') : this.getLangFromBrowser();\n lang = lang.includes(\"_\") ? lang : \"en_us\";\n return lang;\n },\n\n /**\n * @description: Get CasaOs Configs\n * @return {*} void\n */\n getConfig: function getConfig() {\n var _this = this;\n\n this.$api.info.systemConfig().then(function (res) {\n if (res.data == undefined || res.data == '') {\n _this.barData.lang = _this.getLangFromBrowser();\n\n _this.$api.info.saveSystemConfig(_this.barData).then(function (res) {\n if (res.data.success == 200) {\n _this.getConfig();\n }\n });\n }\n\n if (res.data.success == 200) {\n _this.barData = res.data.data;\n var lang = res.data.data.lang;\n lang = lang.includes(\"_\") ? lang : \"en_us\";\n\n _this.setLang(lang);\n\n _this.updateStore();\n\n _this.$emit('changeSiteLoading');\n }\n });\n },\n\n /**\n * @description: Save CasaOs Configs\n * @return {*} void\n */\n saveData: function saveData() {\n this.$api.info.saveSystemConfig(this.barData);\n var lang = this.barData.lang;\n lang = lang.includes(\"_\") ? lang : \"en_us\";\n this.setLang(lang);\n this.updateStore();\n },\n\n /**\n * @description: Update search Engine in store\n * @return {*} void\n */\n updateStore: function updateStore() {\n this.$store.commit('changeSearchEngine', this.barData.search_engine);\n },\n\n /**\n * @description: Get CasaOs WebUI port\n * @return {*} void\n */\n getPort: function getPort() {\n var _this2 = this;\n\n this.$api.info.getSystemPort().then(function (res) {\n if (res.data.success == 200) {\n _this2.port = res.data.data;\n }\n });\n },\n\n /**\n * @description: Show Port panel\n * @return {*} void\n */\n showPortPanel: function showPortPanel() {\n this.$buefy.modal.open({\n parent: this,\n component: _settings_PortPanel_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n hasModalCard: true,\n customClass: 'account-modal',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {},\n props: {\n initPort: this.port\n }\n });\n },\n\n /**\n * @description: Handle Dropmenu state\n * @param {Boolean} isOpen\n * @return {*} void\n */\n onOpen: function onOpen(isOpen) {\n if (isOpen) {\n this.checkVersion();\n }\n },\n checkVersion: function checkVersion() {\n var _this3 = this;\n\n this.$api.info.checkVersion().then(function (res) {\n if (res.data.success == 200) {\n _this3.updateInfo = res.data.data; // this.updateInfo.is_need = true\n }\n });\n },\n\n /**\n * @description: Update System Version and check update state\n * @return {*} void\n */\n updateSystem: function updateSystem() {\n this.isUpdating = true;\n this.$api.info.updateSystem().then(function (res) {\n if (res.data.success == 200) {\n console.log(res.data.data);\n }\n });\n this.checkUpdateState();\n },\n\n /**\n * @description: check update state if is_need is false then reload page\n * @return {*} void\n */\n checkUpdateState: function checkUpdateState() {\n var _this4 = this;\n\n this.timer = setInterval(function () {\n _this4.$api.info.checkVersion().then(function (res) {\n if (res.data.success == 200) {\n if (!res.data.data.is_need) {\n clearInterval(_this4.timer);\n location.reload();\n }\n }\n });\n }, 3000);\n },\n\n /**\n * @description: Logout\n * @return {*} void\n */\n logout: function logout() {\n this.$router.push(\"/logout\");\n },\n\n /**\n * @description: Get user info\n * @return {*} void\n */\n getUserInfo: function getUserInfo() {\n var _this5 = this;\n\n this.$api.user.getUserInfo().then(function (res) {\n if (res.data.success == 200) {\n _this5.$store.commit('changeUserInfo', res.data.data);\n\n _this5.userInfo = res.data.data;\n }\n });\n },\n\n /**\n * @description: Show Account panel\n * @return {*} void\n */\n showAccountPanel: function showAccountPanel() {\n this.$buefy.modal.open({\n parent: this,\n component: _account_AccountPanel_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n hasModalCard: true,\n customClass: 'account-modal',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {},\n props: {}\n });\n },\n\n /**\n * @description: Show Terminal panel\n * @return {*} void\n */\n showTerminalPanel: function showTerminalPanel() {\n this.$buefy.modal.open({\n parent: this,\n component: _logsAndTerminal_TerminalPanel_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n hasModalCard: true,\n customClass: 'terminal-modal',\n trapFocus: true,\n canCancel: [],\n scroll: \"keep\",\n animation: \"zoom-in\"\n });\n },\n\n /**\n * @description: Show SideBar\n * @return {*} void\n */\n showSideBar: function showSideBar() {\n this.$store.commit('changeSideBarState');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/TopBar.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/account/AccountPanel.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/account/AccountPanel.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 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//\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: \"account-panel\",\n data: function data() {\n return {\n isLoading: false,\n state: 1,\n username: this.$store.state.userinfo.user_name,\n oriPassword: \"\",\n password: '',\n confirmation: \"\",\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 computed: {\n title: function title() {\n var val = \"\";\n\n switch (this.state) {\n case 1:\n val = \"\";\n break;\n\n case 2:\n val = this.$t(\"Change name\");\n break;\n\n case 3:\n val = this.$t(\"Change Password\");\n break;\n\n default:\n break;\n }\n\n return val;\n },\n userInfo: function userInfo() {\n return this.$store.state.userinfo;\n }\n },\n methods: {\n goto: function goto(val) {\n this.state = val;\n\n if (val == 1) {\n this.username = this.userInfo.user_name;\n }\n },\n updateUserInfo: function updateUserInfo() {\n var _this = this;\n\n this.$api.user.getUserInfo().then(function (res) {\n if (res.data.success == 200) {\n _this.$store.commit('changeUserInfo', res.data.data);\n\n _this.goto(1);\n }\n });\n },\n saveUser: function saveUser() {\n var _this2 = this;\n\n this.isLoading = true;\n this.$api.user.changeUserName({\n username: this.username,\n oldname: this.userInfo.user_name\n }).then(function (res) {\n _this2.isLoading = false;\n\n if (res.data.success == 200) {\n _this2.updateUserInfo();\n }\n });\n },\n savePassword: function savePassword() {\n var _this3 = this;\n\n this.isLoading = true;\n this.$api.user.changePassword({\n pwd: this.password,\n oldpwd: this.oriPassword\n }).then(function (res) {\n _this3.isLoading = false;\n\n if (res.data.success == 200) {\n _this3.updateUserInfo();\n } else {\n _this3.notificationShow = true;\n _this3.message = res.data.message;\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/account/AccountPanel.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 export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _asyncToGenerator; });\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js?"); /***/ }), @@ -295,7 +32,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core /***/ (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_split_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ListItem_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ListItem.vue */ \"./src/components/fileList/ListItem.vue\");\n/* harmony import */ var _CreatePanel_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CreatePanel.vue */ \"./src/components/fileList/CreatePanel.vue\");\n/* harmony import */ var lodash_trimStart__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/trimStart */ \"./node_modules/lodash/trimStart.js\");\n/* harmony import */ var lodash_trimStart__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_trimStart__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_dropRight__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/dropRight */ \"./node_modules/lodash/dropRight.js\");\n/* harmony import */ var lodash_dropRight__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_dropRight__WEBPACK_IMPORTED_MODULE_6__);\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//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"file-panel\",\n components: {\n ListItem: _ListItem_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n data: function data() {\n return {\n path: this.initPath,\n activePath: this.initPath,\n fileList: []\n };\n },\n props: {\n initPath: String,\n rootPath: String\n },\n computed: {\n // get Last foler name for breadcrumb\n lastFolder: function lastFolder() {\n return this.path.split(\"/\").pop();\n },\n // check show breadcrumb item\n showItem: function showItem() {\n return this.path != this.rootPath;\n },\n // check show breadcrumb dots\n showDots: function showDots() {\n return this.path.split(\"/\").length > 3;\n },\n // Root Name\n rootName: function rootName() {\n return lodash_trimStart__WEBPACK_IMPORTED_MODULE_5___default()(this.rootPath, '/');\n }\n },\n created: function created() {\n // let i = this.path.endsWith(\"/\") ? 2 : 1;\n this.path = this.path == this.rootPath ? this.path : lodash_dropRight__WEBPACK_IMPORTED_MODULE_6___default()(this.path.split(\"/\"), 1).join(\"/\");\n this.getFileList(this.path);\n },\n mounted: function mounted() {},\n methods: {\n // get file list from api\n getFileList: function getFileList(path) {\n var _this = this;\n\n this.$api.file.dirPath(path).then(function (res) {\n if (res.data.success == 200) {\n _this.path = path;\n _this.fileList = res.data.data;\n\n _this.locateFile();\n }\n });\n },\n locateFile: function locateFile() {\n var _this2 = this;\n\n this.$nextTick(function () {\n try {\n document.getElementById(_this2.activePath).scrollIntoView();\n } catch (error) {\n console.log(error);\n }\n });\n },\n // get parent list\n getParentList: function getParentList() {\n var backDir = lodash_dropRight__WEBPACK_IMPORTED_MODULE_6___default()(this.path.split(\"/\"), 1).join(\"/\");\n if (backDir === \"/\") return false;\n this.getFileList(backDir);\n },\n selectFile: function selectFile() {\n this.$emit('close');\n this.$emit('updatePath', this.activePath);\n },\n activeFile: function activeFile(val) {\n this.activePath = this.activePath == val ? this.path : val;\n },\n checkActive: function checkActive(val) {\n return this.activePath == val;\n },\n // show create folder or file panel\n showCreatePanel: function showCreatePanel(isFolder) {\n var _this3 = this;\n\n console.log(\"create panel\");\n this.$buefy.modal.open({\n parent: this,\n component: _CreatePanel_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n hasModalCard: true,\n customClass: 'fileModal',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {\n 'reloadPath': function reloadPath(path) {\n _this3.getFileList(_this3.path);\n\n _this3.activePath = path;\n }\n },\n props: {\n initPath: this.path == \"\" ? this.rootPath : this.path,\n isDir: isFolder\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/fileList/FilePanel.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_split_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _ListItem_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ListItem.vue */ \"./src/components/fileList/ListItem.vue\");\n/* harmony import */ var _CreatePanel_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CreatePanel.vue */ \"./src/components/fileList/CreatePanel.vue\");\n/* harmony import */ var lodash_trimStart__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/trimStart */ \"./node_modules/lodash/trimStart.js\");\n/* harmony import */ var lodash_trimStart__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_trimStart__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_dropRight__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/dropRight */ \"./node_modules/lodash/dropRight.js\");\n/* harmony import */ var lodash_dropRight__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_dropRight__WEBPACK_IMPORTED_MODULE_7__);\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"file-panel\",\n components: {\n ListItem: _ListItem_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n data: function data() {\n return {\n path: this.initPath,\n activePath: this.initPath,\n fileList: []\n };\n },\n props: {\n initPath: String,\n rootPath: String,\n showFile: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n // get Last foler name for breadcrumb\n lastFolder: function lastFolder() {\n return this.path.split(\"/\").pop();\n },\n // check show breadcrumb item\n showItem: function showItem() {\n return this.path != this.rootPath;\n },\n // check show breadcrumb dots\n showDots: function showDots() {\n return this.path.split(\"/\").length > 3;\n },\n // Root Name\n rootName: function rootName() {\n return lodash_trimStart__WEBPACK_IMPORTED_MODULE_6___default()(this.rootPath, '/');\n }\n },\n created: function created() {\n this.path = this.path == this.rootPath ? this.path : lodash_dropRight__WEBPACK_IMPORTED_MODULE_7___default()(this.path.split(\"/\"), 1).join(\"/\");\n this.getFileList(this.path, true);\n },\n methods: {\n // get file list from api\n getFileList: function getFileList(path) {\n var _this = this;\n\n var locate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.$api.file.dirPath(path).then(function (res) {\n if (res.data.success == 200) {\n _this.path = path;\n\n if (_this.showFile) {\n _this.fileList = res.data.data;\n } else {\n _this.fileList = res.data.data.filter(function (item) {\n return item.is_dir;\n });\n }\n\n if (locate) {\n _this.locateFile();\n } else {\n _this.activePath = path;\n }\n }\n });\n },\n locateFile: function locateFile() {\n var _this2 = this;\n\n this.$nextTick(function () {\n var activeItem = document.getElementById(_this2.activePath);\n\n if (activeItem != null) {\n activeItem.scrollIntoView();\n }\n });\n },\n // get parent list\n getParentList: function getParentList() {\n var backDir = lodash_dropRight__WEBPACK_IMPORTED_MODULE_7___default()(this.path.split(\"/\"), 1).join(\"/\");\n if (backDir === \"/\") return false;\n this.getFileList(backDir);\n },\n selectFile: function selectFile() {\n this.$emit('close');\n this.$emit('updatePath', this.activePath);\n },\n activeFile: function activeFile(val) {\n this.activePath = this.activePath == val ? this.path : val;\n },\n checkActive: function checkActive(val) {\n return this.activePath == val;\n },\n // show create folder or file panel\n showCreatePanel: function showCreatePanel(isFolder) {\n var _this3 = this;\n\n console.log(\"create panel\");\n this.$buefy.modal.open({\n parent: this,\n component: _CreatePanel_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n hasModalCard: true,\n customClass: 'fileModal',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {\n 'reloadPath': function reloadPath(path) {\n _this3.getFileList(_this3.path);\n\n _this3.activePath = path;\n }\n },\n props: {\n initPath: this.path == \"\" ? this.rootPath : this.path,\n isDir: isFolder\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/fileList/FilePanel.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"); /***/ }), @@ -307,1846 +44,43 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core /***/ (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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"list-item\",\n data: function data() {\n return {\n isActive: this.state\n };\n },\n props: {\n name: String,\n path: String,\n state: Boolean,\n IsDir: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n icon: function icon() {\n if (this.IsDir) {\n return \"folder\";\n } else {\n return \"file\";\n }\n }\n },\n methods: {\n activeSelf: function activeSelf() {\n this.isActive = true;\n this.$emit(\"active\", this.path);\n },\n expandDir: function expandDir() {\n if (this.IsDir) {\n this.$emit(\"expand\", this.path);\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/fileList/ListItem.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"list-item\",\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n data: function data() {\n return {\n isActive: this.state\n };\n },\n props: {\n item: {},\n name: String,\n path: String,\n state: Boolean,\n IsDir: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n icon: function icon() {\n if (this.IsDir) {\n return \"folder\";\n } else {\n return \"file\";\n }\n }\n },\n methods: {\n activeSelf: function activeSelf() {\n this.isActive = true;\n this.$emit(\"active\", this.path);\n },\n expandDir: function expandDir() {\n if (this.IsDir) {\n this.$emit(\"expand\", this.path);\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/fileList/ListItem.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/FileEntryCard.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/filebrowser/FileEntryCard.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 _FilePanel_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilePanel.vue */ \"./src/components/filebrowser/FilePanel.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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n methods: {\n /**\n * @description: SHow FileBrowser Panel\n * @return {*} void\n */\n showFilePanel: function showFilePanel() {\n try {\n var appName = \"Files\";\n var action = \"open\";\n this.$api.analyse.analyseAppAction(appName, action); // eslint-disable-next-line no-empty\n } catch (err) {}\n\n this.$buefy.modal.open({\n parent: this,\n component: _FilePanel_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n hasModalCard: true,\n customClass: 'file-panel',\n trapFocus: true,\n canCancel: [''],\n scroll: \"clip\",\n animation: \"zoom-in\",\n props: {},\n events: {\n 'afterLeave': function afterLeave() {\n console.log('enter');\n }\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/FileEntryCard.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/FilePanel.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/filebrowser/FilePanel.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_split_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__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_dropRight__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/dropRight */ \"./node_modules/lodash/dropRight.js\");\n/* harmony import */ var lodash_dropRight__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_dropRight__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var _sidebar_TreeList_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./sidebar/TreeList.vue */ \"./src/components/filebrowser/sidebar/TreeList.vue\");\n/* harmony import */ var _components_GirdView_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/GirdView.vue */ \"./src/components/filebrowser/components/GirdView.vue\");\n/* harmony import */ var _components_ListView_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/ListView.vue */ \"./src/components/filebrowser/components/ListView.vue\");\n/* harmony import */ var _components_FileBreadcrumb_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/FileBreadcrumb.vue */ \"./src/components/filebrowser/components/FileBreadcrumb.vue\");\n/* harmony import */ var _components_EmptyHolder_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/EmptyHolder.vue */ \"./src/components/filebrowser/components/EmptyHolder.vue\");\n/* harmony import */ var _modals_DetailModal_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modals/DetailModal.vue */ \"./src/components/filebrowser/modals/DetailModal.vue\");\n/* harmony import */ var _modals_NewFolderModal_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modals/NewFolderModal.vue */ \"./src/components/filebrowser/modals/NewFolderModal.vue\");\n/* harmony import */ var _modals_NewFileModal_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modals/NewFileModal.vue */ \"./src/components/filebrowser/modals/NewFileModal.vue\");\n/* harmony import */ var _viewers_VideoPlayer_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./viewers/VideoPlayer.vue */ \"./src/components/filebrowser/viewers/VideoPlayer.vue\");\n/* harmony import */ var _viewers_CodeEditor_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./viewers/CodeEditor.vue */ \"./src/components/filebrowser/viewers/CodeEditor.vue\");\n/* harmony import */ var _viewers_ImageViewer_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./viewers/ImageViewer.vue */ \"./src/components/filebrowser/viewers/ImageViewer.vue\");\n/* harmony import */ var _viewers_PdfViewer_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./viewers/PdfViewer.vue */ \"./src/components/filebrowser/viewers/PdfViewer.vue\");\n/* harmony import */ var _uploader_components_uploader_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./uploader/components/uploader.vue */ \"./src/components/filebrowser/uploader/components/uploader.vue\");\n/* harmony import */ var _uploader_components_unsupport_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./uploader/components/unsupport.vue */ \"./src/components/filebrowser/uploader/components/unsupport.vue\");\n/* harmony import */ var _uploader_components_list_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./uploader/components/list.vue */ \"./src/components/filebrowser/uploader/components/list.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//\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//\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//\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_6__[\"mixin\"]],\n provide: function provide() {\n return {\n filePanel: this\n };\n },\n components: {\n ListView: _components_ListView_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n GirdView: _components_GirdView_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n FileBreadcrumb: _components_FileBreadcrumb_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n TreeList: _sidebar_TreeList_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n Uploader: _uploader_components_uploader_vue__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n UploaderUnsupport: _uploader_components_unsupport_vue__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n UploaderList: _uploader_components_list_vue__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n CodeEditor: _viewers_CodeEditor_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n VideoPlayer: _viewers_VideoPlayer_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n ImageViewer: _viewers_ImageViewer_vue__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n PdfViewer: _viewers_PdfViewer_vue__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n EmptyHolder: _components_EmptyHolder_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n },\n data: function data() {\n return {\n isLoading: true,\n isDragIn: false,\n isShowDetial: false,\n panelType: null,\n currentItem: null,\n rootPath: \"/DATA\",\n currentPath: \"\",\n currentPathName: \"\",\n isViewGird: true,\n listData: [],\n file: null,\n timeout: null,\n uploadPercentage: 0,\n hasPasteData: this.$store.state.operateObject != null,\n uploaderInstance: {},\n options: {\n target: this.getTargetUrl(),\n testChunks: true,\n uploadMethod: \"POST\",\n successStatuses: [200, 201, 202, 2002] // chunkSize: 1024 * 1024 * 1024 * 1024\n\n },\n attrs: {\n accept: '*'\n },\n // Uploader List\n showUploadList: false,\n uploaderListHeaderText: \"Uploading\"\n };\n },\n computed: {\n viewIcon: function viewIcon() {\n return this.$store.state.isViewGird ? \"view-grid-outline\" : \"format-list-bulleted\";\n },\n listView: function listView() {\n return this.$store.state.isViewGird ? \"gird-view\" : \"list-view\";\n }\n },\n watch: {\n '$store.state.operateObject': {\n handler: function handler(val) {\n this.hasPasteData = val != null;\n },\n deep: true\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.init();\n this.setUploaderOpts();\n document.addEventListener('contextmenu', this.hideContextMenu); // Listen to ESC button to exit preview\n\n document.onkeyup = function (e) {\n switch (e.code) {\n case 'Escape':\n if (_this.isShowDetial) {\n _this.$refs.previewPanel.close();\n } else {\n _this.$emit('close');\n }\n\n break;\n\n case 'Backspace':\n _this.backLevel();\n\n break;\n\n default:\n break;\n }\n }; // paste\n\n\n document.onpaste = function () {\n _this.paste();\n };\n },\n destroyed: function destroyed() {\n this.uploaderInstance.off('dragover');\n this.uploaderInstance.off('uploadStart');\n document.removeEventListener('contextmenu', this.hideContextMenu);\n this.$store.commit('changeOperateObject', null);\n document.onpaste = null;\n document.onkeyup = null;\n },\n methods: {\n // Init Funtion\n init: function init() {\n this.getFileList(this.rootPath);\n },\n // Get Tree List\n getFileList: function getFileList(path) {\n var _this2 = this;\n\n this.isLoading = true;\n this.$api.file.dirPath(path).then(function (res) {\n if (res.data.success == 200) {\n _this2.isLoading = false;\n _this2.currentPath = path;\n _this2.currentPathName = path.split(\"/\").pop();\n _this2.uploaderInstance.opts.query = {\n path: _this2.currentPath\n };\n\n _this2.$store.commit('changeCurrentPath', path);\n\n console.log(res.data.data);\n _this2.listData = lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default()(res.data.data, ['is_dir'], ['desc']);\n }\n });\n },\n // Reload current folder\n reload: function reload() {\n this.getFileList(this.currentPath);\n this.$refs.navBar.getDirList();\n },\n // Change View\n changeView: function changeView() {\n this.isViewGird = !this.$store.state.isViewGird;\n this.$store.commit('changeViewGird', this.isViewGird);\n },\n backLevel: function backLevel() {\n var pathArr = this.$store.state.currentPath.substr(1).split(\"/\");\n\n if (pathArr.length == 1) {\n return false;\n }\n\n var newPath = \"/\" + lodash_dropRight__WEBPACK_IMPORTED_MODULE_5___default()(pathArr).join(\"/\");\n this.getFileList(newPath);\n },\n setUploaderOpts: function setUploaderOpts() {\n var _this3 = this;\n\n this.uploaderInstance = this.$refs.uploader.uploader;\n this.assignUploadButtons(); // Drag Over\n\n this.uploaderInstance.on('dragover', function (event) {\n _this3.isDragIn = true;\n\n if (_this3.timeout !== null) {\n clearTimeout(_this3.timeout);\n }\n\n _this3.timeout = setTimeout(function () {\n _this3.isDragIn = false;\n _this3.timeout = null;\n }, 120);\n event.stopPropagation();\n event.preventDefault();\n });\n this.uploaderInstance.on('uploadStart', function () {\n _this3.isDragIn = false;\n _this3.showUploadList = true;\n _this3.uploaderListHeaderText = \"Uploading\";\n });\n this.uploaderInstance.on('complete', function () {\n _this3.getFileList(_this3.currentPath);\n\n _this3.uploaderListHeaderText = \"Completed\";\n }); // this.uploaderInstance.on('catchAll', (evt,a,b,c) => {\n // console.log(evt,a,b,c);\n // })\n },\n closeUploaderList: function closeUploaderList() {\n this.showUploadList = false;\n this.uploaderInstance.cancel();\n },\n assignUploadButtons: function assignUploadButtons() {\n this.uploaderInstance.assignDrop(document.getElementById('dropTarget'));\n this.uploaderInstance.assignBrowse(document.getElementById('upfile-btn'));\n this.uploaderInstance.assignBrowse(document.getElementById('upfolder-btn'), true);\n },\n // Show Detail Modal\n showDetailModal: function showDetailModal(item) {\n this.panelType = this.getPanelType(item);\n\n if (this.panelType !== null) {\n this.currentItem = item;\n this.isShowDetial = true;\n } else {\n this.$buefy.modal.open({\n parent: this,\n component: _modals_DetailModal_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n hasModalCard: true,\n customClass: 'detail-panel file-modal',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n props: {\n item: item\n }\n });\n }\n },\n // Show New Folder Modal\n showNewFolderModal: function showNewFolderModal() {\n var _this4 = this;\n\n this.$buefy.modal.open({\n parent: this,\n component: _modals_NewFolderModal_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n hasModalCard: true,\n customClass: 'new-folder-panel file-modal',\n trapFocus: true,\n canCancel: [''],\n scroll: \"keep\",\n animation: \"zoom-in\",\n props: {\n currentPath: this.currentPath\n },\n events: {\n 'reload': function reload() {\n _this4.reload();\n }\n }\n });\n },\n // Show New File Modal\n showNewFileModal: function showNewFileModal() {\n var _this5 = this;\n\n this.$buefy.modal.open({\n parent: this,\n component: _modals_NewFileModal_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n hasModalCard: true,\n customClass: 'new-folder-panel file-modal',\n trapFocus: true,\n canCancel: [''],\n scroll: \"keep\",\n animation: \"zoom-in\",\n props: {\n currentPath: this.currentPath\n },\n events: {\n 'reload': function reload() {\n _this5.reload();\n }\n }\n });\n },\n paste: function paste() {\n var _this6 = this;\n\n var form = this.$store.state.operateObject.from;\n var to = this.$store.state.currentPath;\n var type = this.$store.state.operateObject.type;\n this.$api.file.operate(form, to, type).then(function (res) {\n if (res.data.success == 200) {\n _this6.$store.commit('changeOperateObject', null);\n\n _this6.getFileList(_this6.currentPath);\n } else {\n _this6.$buefy.toast.open({\n message: res.data.message,\n type: 'is-danger'\n });\n }\n });\n },\n hideContextMenu: function hideContextMenu() {\n this.$refs.moreBtn.isActive = false;\n },\n getTargetUrl: function getTargetUrl() {\n if (false) {} else {\n return \"http://\".concat(document.location.host, \"/v1/file/upload?token=\").concat(this.$store.state.token);\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/FilePanel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/components/ActionButton.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/filebrowser/components/ActionButton.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_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var _modals_RenameModal_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modals/RenameModal.vue */ \"./src/components/filebrowser/modals/RenameModal.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//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"]],\n props: {\n cols: Number,\n index: Number,\n item: Object\n },\n data: function data() {\n return {\n verticalPos: \"bottom\",\n isConfirmed: false\n };\n },\n computed: {\n horizontalPos: function horizontalPos() {\n return (this.index + 1) % this.cols == 0 ? \"left\" : \"right\";\n }\n },\n mounted: function mounted() {\n document.addEventListener('contextmenu', this.hideContextMenu);\n },\n destroyed: function destroyed() {\n document.removeEventListener('contextmenu', this.hideContextMenu);\n },\n methods: {\n dorpActiveChange: function dorpActiveChange($event, el) {\n if ($event) {\n this.isConfirmed = false;\n }\n\n var trigger = document.getElementById(el);\n var bottomOffset = window.innerHeight - trigger.getBoundingClientRect().y - 216;\n this.verticalPos = bottomOffset > 0 ? \"bottom\" : \"top\";\n },\n hideContextMenu: function hideContextMenu() {\n this.$refs.dropDown.isActive = false;\n },\n rename: function rename() {\n var _this = this;\n\n this.$refs.dropDown.toggle();\n this.$buefy.modal.open({\n parent: this,\n component: _modals_RenameModal_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n hasModalCard: true,\n customClass: 'rename-panel file-modal',\n trapFocus: true,\n canCancel: [''],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {\n 'reload': function reload() {\n _this.$emit(\"reload\");\n }\n },\n props: {\n item: this.item\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/ActionButton.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/components/ContextMenu.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/filebrowser/components/ContextMenu.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_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ \"./node_modules/core-js/modules/es.array.includes.js\");\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ \"./node_modules/core-js/modules/es.string.includes.js\");\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _modals_RenameModal_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modals/RenameModal.vue */ \"./src/components/filebrowser/modals/RenameModal.vue\");\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_4__ = __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//\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_4__[\"mixin\"]],\n inject: ['filePanel'],\n data: function data() {\n return {\n verticalPos: \"bottom\",\n horizontalPos: \"right\",\n isConfirmed: false,\n x: Number,\n y: Number,\n showDetial: false,\n ani: \"fade1\",\n item: {},\n hasPasteData: this.$store.state.operateObject != null\n };\n },\n computed: {\n close: function close() {\n return this.item == undefined;\n }\n },\n watch: {\n '$store.state.operateObject': {\n handler: function handler(val) {\n this.hasPasteData = val != null;\n },\n deep: true\n },\n showDetial: function showDetial(val) {\n if (!val) {\n this.assignBtn();\n }\n }\n },\n mounted: function mounted() {\n this.assignBtn();\n },\n methods: {\n open: function open(event, item) {\n var _this = this;\n\n var bounced = event.target.getAttribute('class').includes('dropdown-menu');\n\n if (!bounced) {\n this.showDetial = item != undefined;\n this.item = item;\n this.$refs.dropDown.isActive = false;\n this.$nextTick(function () {\n _this.x = event.clientX;\n _this.y = event.clientY;\n var rightOffset = window.innerWidth - event.clientX - 184;\n _this.horizontalPos = rightOffset > 0 ? \"right\" : \"left\";\n _this.$refs.dropDown.isActive = true;\n });\n }\n },\n assignBtn: function assignBtn() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.filePanel.uploaderInstance.assignBrowse(document.getElementById('upfileBtn'));\n\n _this2.filePanel.uploaderInstance.assignBrowse(document.getElementById('upfolderBtn'), true);\n });\n },\n dorpActiveChange: function dorpActiveChange($event, el) {\n if ($event) {\n this.isConfirmed = false;\n }\n\n var trigger = document.getElementById(el);\n var bottomOffset = window.innerHeight - trigger.getBoundingClientRect().y - 216;\n this.verticalPos = bottomOffset > 0 ? \"bottom\" : \"top\";\n },\n rename: function rename() {\n var _this3 = this;\n\n this.$refs.dropDown.toggle();\n this.$buefy.modal.open({\n parent: this,\n component: _modals_RenameModal_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n hasModalCard: true,\n customClass: 'rename-panel file-modal',\n trapFocus: true,\n canCancel: [''],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {\n 'reload': function reload() {\n _this3.filePanel.reload();\n }\n },\n props: {\n item: this.item\n }\n });\n },\n // Paste File\n paste: function paste() {\n var _this4 = this;\n\n this.$refs.dropDown.toggle();\n this.$api.file.operate(this.$store.state.operateObject.from, this.$store.state.currentPath, this.$store.state.operateObject.type).then(function (res) {\n if (res.data.success == 200) {\n _this4.$store.commit('changeOperateObject', null);\n\n _this4.filePanel.reload();\n } else {\n _this4.$buefy.toast.open({\n message: res.data.message,\n type: 'is-danger'\n });\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/ContextMenu.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/components/EmptyHolder.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/filebrowser/components/EmptyHolder.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n inject: ['filePanel'],\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.filePanel.uploaderInstance.assignBrowse(document.getElementById('eUpFileBtn'));\n\n _this.filePanel.uploaderInstance.assignBrowse(document.getElementById('eUpFolderBtn'), true);\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/EmptyHolder.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/components/FileBreadcrumb.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/filebrowser/components/FileBreadcrumb.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_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_slice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\");\n/* harmony import */ var lodash_slice__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_slice__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_sum__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/sum */ \"./node_modules/lodash/sum.js\");\n/* harmony import */ var lodash_sum__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_sum__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lodash_remove__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\");\n/* harmony import */ var lodash_remove__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_remove__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var lodash_findLast__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lodash/findLast */ \"./node_modules/lodash/findLast.js\");\n/* harmony import */ var lodash_findLast__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(lodash_findLast__WEBPACK_IMPORTED_MODULE_9__);\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 inject: ['filePanel'],\n data: function data() {\n return {\n pathCollection: [],\n hideItems: [],\n activeHide: {}\n };\n },\n watch: {\n '$store.state.currentPath': {\n handler: function handler(val) {\n this.pathCollection = this.buildPathArray(val);\n this.onResize();\n },\n deep: true\n }\n },\n computed: {\n dropMenu: function dropMenu() {\n return this.$refs.breadDrop[0];\n }\n },\n created: function created() {\n this.pathCollection = this.buildPathArray(this.$store.state.currentPath);\n },\n mounted: function mounted() {},\n methods: {\n open: function open(item) {\n if (item == this.activeHide) {\n this.$refs.breadDrop[0].isActive = !this.$refs.breadDrop[0].isActive;\n return false;\n }\n\n this.filePanel.getFileList(item.path);\n },\n subOpen: function subOpen(item) {\n this.filePanel.getFileList(item.path); // this.onResize(this.pathArray)\n },\n checkActive: function checkActive(index) {\n return index == this.pathCollection.length - 1;\n },\n onResize: function onResize() {\n var _this = this;\n\n var shadowBread = document.getElementById(\"shadowBread\");\n var containerWidth = document.getElementById(\"bread-container\").clientWidth;\n this.$nextTick(function () {\n _this.hideItems = [];\n var shadowBreadWidth = shadowBread.clientWidth;\n\n if (shadowBreadWidth > containerWidth) {\n var shadowBreadList = shadowBread.getElementsByTagName(\"li\");\n var shadowBreadListWidth = lodash_map__WEBPACK_IMPORTED_MODULE_6___default()(shadowBreadList, function (item) {\n return item.clientWidth;\n });\n\n _this.pathCollection.forEach(function (item, index) {\n if (index > 0 && lodash_sum__WEBPACK_IMPORTED_MODULE_7___default()(shadowBreadListWidth) + 50 > containerWidth && index < _this.pathCollection.length - 1) {\n lodash_remove__WEBPACK_IMPORTED_MODULE_8___default()(shadowBreadListWidth, function (item, index) {\n return index == 1;\n });\n item.show = false;\n\n _this.hideItems.push(item);\n }\n });\n\n _this.activeHide = lodash_findLast__WEBPACK_IMPORTED_MODULE_9___default()(_this.pathCollection, function (item) {\n return !item.show;\n });\n }\n });\n },\n buildPathArray: function buildPathArray(path) {\n path = path.substr(1);\n var arr = path.split(\"/\");\n var collection = arr.map(function (item, index) {\n return {\n name: item,\n show: true,\n path: \"/\" + lodash_slice__WEBPACK_IMPORTED_MODULE_5___default()(arr, 0, index + 1).join(\"/\")\n };\n });\n return collection;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/FileBreadcrumb.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/components/GirdView.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/filebrowser/components/GirdView.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_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ \"./node_modules/core-js/modules/es.regexp.to-string.js\");\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var _ActionButton_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ActionButton.vue */ \"./src/components/filebrowser/components/ActionButton.vue\");\n/* harmony import */ var _ContextMenu_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ContextMenu.vue */ \"./src/components/filebrowser/components/ContextMenu.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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\nvar cardWidth = 144;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ActionButton: _ActionButton_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ContextMenu: _ContextMenu_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"]],\n data: function data() {\n return {\n items: [],\n min: 0,\n cols: 1,\n contextIsShow: false,\n colStyle: {\n width: '33.3333%'\n }\n };\n },\n model: {\n prop: 'listData'\n },\n props: {\n listData: Array,\n isLoading: Boolean\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.onResize);\n this.onResize();\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('resize', this.onResize);\n },\n methods: {\n onResize: function onResize() {\n var ww = document.getElementById(\"card-container\").clientWidth;\n this.cols = Math.floor(ww / cardWidth);\n this.colStyle.width = (100 / this.cols).toString() + \"%\";\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/GirdView.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/components/ListView.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/filebrowser/components/ListView.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var _ActionButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ActionButton.vue */ \"./src/components/filebrowser/components/ActionButton.vue\");\n/* harmony import */ var _ContextMenu_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ContextMenu.vue */ \"./src/components/filebrowser/components/ContextMenu.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//\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 ActionButton: _ActionButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n ContextMenu: _ContextMenu_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n data: function data() {\n return {\n items: [],\n min: 0,\n cols: 1000,\n colStyle: {\n width: ''\n }\n };\n },\n model: {\n prop: 'listData'\n },\n props: {\n listData: Array,\n isLoading: Boolean\n },\n mounted: function mounted() {},\n methods: {}\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/ListView.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/modals/DetailModal.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/filebrowser/modals/DetailModal.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n props: {\n item: Object\n },\n data: function data() {\n return {};\n },\n methods: {\n download: function download() {\n this.downloadFile(this.item);\n this.$emit('close'); // this.$parent.fullScreen = true\n // console.log(this.$parent);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/DetailModal.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/modals/NewFileModal.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/filebrowser/modals/NewFileModal.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_array_join_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"]],\n props: {\n currentPath: String\n },\n data: function data() {\n return {\n fileName: 'New File',\n errorType: \"is-success\",\n errors: \"\"\n };\n },\n methods: {\n createFolder: function createFolder() {\n var _this = this;\n\n var newPath = path__WEBPACK_IMPORTED_MODULE_2___default.a.join(this.currentPath, this.fileName);\n this.$api.file.create(newPath).then(function (res) {\n if (res.data.success == 200) {\n _this.$emit(\"reload\");\n\n _this.$emit(\"close\");\n } else {\n _this.errorType = \"is-danger\";\n _this.errors = res.data.message;\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/NewFileModal.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/modals/NewFolderModal.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/filebrowser/modals/NewFolderModal.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_array_join_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"]],\n props: {\n currentPath: String\n },\n data: function data() {\n return {\n folderName: 'New Folder',\n errorType: \"is-success\",\n errors: \"\"\n };\n },\n methods: {\n createFolder: function createFolder() {\n var _this = this;\n\n var newPath = path__WEBPACK_IMPORTED_MODULE_2___default.a.join(this.currentPath, this.folderName);\n this.$api.file.mkdir(newPath).then(function (res) {\n if (res.data.success == 200) {\n _this.$emit(\"reload\");\n\n _this.$emit(\"close\");\n } else {\n _this.errorType = \"is-danger\";\n _this.errors = res.data.message;\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/NewFolderModal.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/modals/RenameModal.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/filebrowser/modals/RenameModal.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_function_name_js__WEBPACK_IMPORTED_MODULE_0__ = __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_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"]],\n props: {\n item: Object\n },\n data: function data() {\n return {\n fileName: this.item.name,\n errorType: \"is-success\",\n errors: \"\"\n };\n },\n mounted: function mounted() {\n this.$refs.rinput.focus();\n },\n methods: {\n saveNewName: function saveNewName() {\n var _this = this;\n\n var newPath = path__WEBPACK_IMPORTED_MODULE_3___default.a.join(this.$store.state.currentPath, this.fileName);\n\n if (this.item.name === this.fileName) {\n this.$emit(\"close\");\n return false;\n }\n\n this.$api.file.renamePath(this.item.path, newPath).then(function (res) {\n if (res.data.success == 200) {\n _this.$emit(\"reload\");\n\n _this.$emit(\"close\");\n } else {\n _this.errorType = \"is-danger\";\n _this.errors = res.data.message;\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/RenameModal.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/sidebar/TreeList.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/filebrowser/sidebar/TreeList.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_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_filter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\");\n/* harmony import */ var lodash_filter__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_filter__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_6__ = __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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_6__[\"mixin\"]],\n inject: ['filePanel'],\n components: {\n TreeListItem: function TreeListItem() {\n return __webpack_require__.e(/*! import() */ 4).then(__webpack_require__.bind(null, /*! ./TreeListItem.vue */ \"./src/components/filebrowser/sidebar/TreeListItem.vue\"));\n }\n },\n props: {\n path: {\n type: String,\n default: \"\"\n },\n autoLoad: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n dirListData: [],\n homeItem: {\n path: \"/DATA\",\n is_dir: true,\n type: \"home\",\n name: \"DATA\"\n }\n };\n },\n computed: {\n level: function level() {\n return this.path.split(\"/\").length + 1;\n }\n },\n mounted: function mounted() {\n if (this.autoLoad) {\n this.getDirList();\n }\n },\n methods: {\n isHome: function isHome() {\n return this.homeItem.path == this.$store.state.currentPath;\n },\n open: function open() {\n this.filePanel.getFileList(this.homeItem.path);\n },\n getDirList: function getDirList() {\n var _this = this;\n\n this.$api.file.dirPath(\"/DATA\").then(function (res) {\n if (res.data.success == 200) {\n _this.dirListData = lodash_filter__WEBPACK_IMPORTED_MODULE_5___default()(res.data.data, function (o) {\n return o.is_dir;\n });\n\n _this.$emit(\"update\", _this.dirListData.length);\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/sidebar/TreeList.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/btn.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/filebrowser/uploader/components/btn.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 _common_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/mixins */ \"./src/components/filebrowser/uploader/common/mixins.js\");\n//\n//\n//\n//\n//\n//\n\nvar COMPONENT_NAME = 'uploader-btn';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n mixins: [_common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"uploaderMixin\"], _common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"supportMixin\"]],\n props: {\n directory: {\n type: Boolean,\n default: false\n },\n single: {\n type: Boolean,\n default: false\n },\n attrs: {\n type: Object,\n default: function _default() {\n return {};\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.uploader.uploader.assignBrowse(_this.$refs.btn, _this.directory, _this.single, _this.attrs);\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/btn.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/drop.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/filebrowser/uploader/components/drop.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 _common_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/mixins */ \"./src/components/filebrowser/uploader/common/mixins.js\");\n//\n//\n//\n//\n//\n//\n\nvar COMPONENT_NAME = 'uploader-drop';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n mixins: [_common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"uploaderMixin\"], _common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"supportMixin\"]],\n data: function data() {\n return {\n dropClass: ''\n };\n },\n methods: {\n onDragEnter: function onDragEnter() {\n this.dropClass = 'uploader-dragover';\n },\n onDragLeave: function onDragLeave() {\n this.dropClass = '';\n },\n onDrop: function onDrop() {\n this.dropClass = 'uploader-droped';\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var dropEle = _this.$refs.drop;\n var uploader = _this.uploader.uploader;\n uploader.assignDrop(dropEle);\n uploader.on('dragenter', _this.onDragEnter);\n uploader.on('dragleave', _this.onDragLeave);\n uploader.on('drop', _this.onDrop);\n });\n },\n beforeDestroy: function beforeDestroy() {\n var dropEle = this.$refs.drop;\n var uploader = this.uploader.uploader;\n uploader.off('dragenter', this.onDragEnter);\n uploader.off('dragleave', this.onDragLeave);\n uploader.off('drop', this.onDrop);\n uploader.unAssignDrop(dropEle);\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/drop.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/file.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/filebrowser/uploader/components/file.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_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var simple_uploader_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! simple-uploader.js */ \"./node_modules/simple-uploader.js/src/uploader.js\");\n/* harmony import */ var simple_uploader_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(simple_uploader_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _common_file_events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/file-events */ \"./src/components/filebrowser/uploader/common/file-events.js\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/utils */ \"./src/components/filebrowser/uploader/common/utils.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\nvar COMPONENT_NAME = 'uploader-file';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"]],\n props: {\n file: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n list: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n response: null,\n paused: false,\n error: false,\n averageSpeed: 0,\n currentSpeed: 0,\n isComplete: false,\n isUploading: false,\n size: 0,\n formatedSize: '',\n uploadedSize: 0,\n progress: 0,\n timeRemaining: 0,\n type: '',\n extension: '',\n progressingClass: ''\n };\n },\n computed: {\n fileCategory: function fileCategory() {\n var extension = this.extension;\n var isFolder = this.file.isFolder;\n var type = isFolder ? 'folder' : 'unknown';\n var categoryMap = this.file.uploader.opts.categoryMap;\n var typeMap = categoryMap || {\n image: ['gif', 'jpg', 'jpeg', 'png', 'bmp', 'webp'],\n video: ['mp4', 'm3u8', 'rmvb', 'avi', 'swf', '3gp', 'mkv', 'flv'],\n audio: ['mp3', 'wav', 'wma', 'ogg', 'aac', 'flac'],\n document: ['doc', 'txt', 'docx', 'pages', 'epub', 'pdf', 'numbers', 'csv', 'xls', 'xlsx', 'keynote', 'ppt', 'pptx']\n };\n Object.keys(typeMap).forEach(function (_type) {\n var extensions = typeMap[_type];\n\n if (extensions.indexOf(extension) > -1) {\n type = _type;\n }\n });\n return type;\n },\n progressStyle: function progressStyle() {\n var progress = Math.floor(this.progress * 100); // const style = `translateX(${Math.floor(progress - 100)}%)`\n\n return {\n progress: \"\".concat(progress, \"%\"),\n width: \"\".concat(progress, \"%\")\n };\n },\n formatedAverageSpeed: function formatedAverageSpeed() {\n return \"\".concat(simple_uploader_js__WEBPACK_IMPORTED_MODULE_4___default.a.utils.formatSize(this.averageSpeed), \"/s\");\n },\n formateCurrentSpeed: function formateCurrentSpeed() {\n return \"\".concat(simple_uploader_js__WEBPACK_IMPORTED_MODULE_4___default.a.utils.formatSize(this.currentSpeed), \" / s\");\n },\n status: function status() {\n var isUploading = this.isUploading;\n var isComplete = this.isComplete;\n var isError = this.error;\n var paused = this.paused;\n\n if (isComplete) {\n return 'success';\n } else if (isError) {\n return 'error';\n } else if (isUploading) {\n return 'uploading';\n } else if (paused) {\n return 'paused';\n } else {\n return 'waiting';\n }\n },\n statusText: function statusText() {\n var status = this.status;\n var fileStatusText = this.file.uploader.fileStatusText;\n var txt = status;\n\n if (typeof fileStatusText === 'function') {\n txt = fileStatusText(status, this.response);\n } else {\n txt = fileStatusText[status];\n }\n\n return txt || status;\n },\n formatedTimeRemaining: function formatedTimeRemaining() {\n var timeRemaining = this.timeRemaining;\n var file = this.file;\n\n if (timeRemaining === Number.POSITIVE_INFINITY || timeRemaining === 0) {\n return '';\n }\n\n var parsedTimeRemaining = Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"secondsToStr\"])(timeRemaining);\n var parseTimeRemaining = file.uploader.opts.parseTimeRemaining;\n\n if (parseTimeRemaining) {\n parsedTimeRemaining = parseTimeRemaining(timeRemaining, parsedTimeRemaining);\n }\n\n return parsedTimeRemaining;\n }\n },\n watch: {\n status: function status(newStatus, oldStatus) {\n var _this = this;\n\n if (oldStatus && newStatus === 'uploading' && oldStatus !== 'uploading') {\n this.tid = setTimeout(function () {\n _this.progressingClass = 'uploader-file-progressing';\n }, 200);\n } else {\n clearTimeout(this.tid);\n this.progressingClass = '';\n }\n }\n },\n methods: {\n _actionCheck: function _actionCheck() {\n this.paused = this.file.paused;\n this.error = this.file.error;\n this.isUploading = this.file.isUploading();\n },\n pause: function pause() {\n this.file.pause();\n\n this._actionCheck();\n\n this._fileProgress();\n },\n resume: function resume() {\n this.file.resume();\n\n this._actionCheck();\n },\n remove: function remove() {\n this.file.cancel();\n },\n retry: function retry() {\n this.file.retry();\n\n this._actionCheck();\n },\n processResponse: function processResponse(message) {\n var res = message;\n\n try {\n res = JSON.parse(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n\n if (message == \"\") {\n res = {\n success: 200,\n message: \"ok\"\n };\n }\n\n this.response = res;\n },\n fileEventsHandler: function fileEventsHandler(event, args) {\n var rootFile = args[0];\n var file = args[1];\n var target = this.list ? rootFile : file;\n\n if (this.file === target) {\n if (this.list && event === 'fileSuccess') {\n this.processResponse(args[2]);\n return;\n }\n\n this[\"_\".concat(event)].apply(this, args);\n }\n },\n _fileProgress: function _fileProgress() {\n this.progress = this.file.progress();\n this.averageSpeed = this.file.averageSpeed;\n this.currentSpeed = this.file.currentSpeed;\n this.timeRemaining = this.file.timeRemaining();\n this.uploadedSize = this.file.sizeUploaded();\n\n this._actionCheck();\n },\n _fileSuccess: function _fileSuccess(rootFile, file, message) {\n if (rootFile) {\n this.processResponse(message);\n }\n\n this._fileProgress();\n\n this.error = false;\n this.isComplete = true;\n this.isUploading = false;\n },\n _fileComplete: function _fileComplete() {\n this._fileSuccess();\n },\n _fileError: function _fileError(rootFile, file, message) {\n this._fileProgress();\n\n this.processResponse(message);\n this.error = true;\n this.isComplete = false;\n this.isUploading = false;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n var staticProps = ['paused', 'error', 'averageSpeed', 'currentSpeed'];\n var fnProps = ['isComplete', 'isUploading', {\n key: 'size',\n fn: 'getSize'\n }, {\n key: 'formatedSize',\n fn: 'getFormatSize'\n }, {\n key: 'uploadedSize',\n fn: 'sizeUploaded'\n }, 'progress', 'timeRemaining', {\n key: 'type',\n fn: 'getType'\n }, {\n key: 'extension',\n fn: 'getExtension'\n }];\n staticProps.forEach(function (prop) {\n _this2[prop] = _this2.file[prop];\n });\n fnProps.forEach(function (fnProp) {\n if (typeof fnProp === 'string') {\n _this2[fnProp] = _this2.file[fnProp]();\n } else {\n _this2[fnProp.key] = _this2.file[fnProp.fn]();\n }\n });\n var handlers = this._handlers = {};\n\n var eventHandler = function eventHandler(event) {\n handlers[event] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.fileEventsHandler(event, args);\n };\n\n return handlers[event];\n };\n\n _common_file_events__WEBPACK_IMPORTED_MODULE_5__[\"default\"].forEach(function (event) {\n _this2.file.uploader.on(event, eventHandler(event));\n });\n },\n destroyed: function destroyed() {\n var _this3 = this;\n\n _common_file_events__WEBPACK_IMPORTED_MODULE_5__[\"default\"].forEach(function (event) {\n _this3.file.uploader.off(event, _this3._handlers[event]);\n });\n this._handlers = null;\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/file.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/files.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/filebrowser/uploader/components/files.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 _common_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/mixins */ \"./src/components/filebrowser/uploader/common/mixins.js\");\n/* harmony import */ var _file_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./file.vue */ \"./src/components/filebrowser/uploader/components/file.vue\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\nvar COMPONENT_NAME = 'uploader-files';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n mixins: [_common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"uploaderMixin\"]],\n computed: {\n files: function files() {\n return this.uploader.files;\n }\n },\n components: {\n UploaderFile: _file_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/files.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/list.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/filebrowser/uploader/components/list.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 _common_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/mixins */ \"./src/components/filebrowser/uploader/common/mixins.js\");\n/* harmony import */ var _file_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./file.vue */ \"./src/components/filebrowser/uploader/components/file.vue\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\nvar COMPONENT_NAME = 'uploader-list';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n mixins: [_common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"uploaderMixin\"]],\n computed: {\n fileList: function fileList() {\n return this.uploader.fileList;\n }\n },\n components: {\n UploaderFile: _file_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/list.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/unsupport.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/filebrowser/uploader/components/unsupport.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 _common_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/mixins */ \"./src/components/filebrowser/uploader/common/mixins.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar COMPONENT_NAME = 'uploader-unsupport';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n mixins: [_common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"uploaderMixin\"], _common_mixins__WEBPACK_IMPORTED_MODULE_0__[\"supportMixin\"]]\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/unsupport.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/uploader/components/uploader.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/filebrowser/uploader/components/uploader.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 _Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ \"./node_modules/core-js/modules/es.array.slice.js\");\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var simple_uploader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-uploader.js */ \"./node_modules/simple-uploader.js/src/uploader.js\");\n/* harmony import */ var simple_uploader_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(simple_uploader_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/utils */ \"./src/components/filebrowser/uploader/common/utils.js\");\n/* harmony import */ var _btn_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./btn.vue */ \"./src/components/filebrowser/uploader/components/btn.vue\");\n/* harmony import */ var _drop_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./drop.vue */ \"./src/components/filebrowser/uploader/components/drop.vue\");\n/* harmony import */ var _unsupport_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./unsupport.vue */ \"./src/components/filebrowser/uploader/components/unsupport.vue\");\n/* harmony import */ var _list_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./list.vue */ \"./src/components/filebrowser/uploader/components/list.vue\");\n/* harmony import */ var _files_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./files.vue */ \"./src/components/filebrowser/uploader/components/files.vue\");\n/* harmony import */ var _file_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./file.vue */ \"./src/components/filebrowser/uploader/components/file.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\nvar COMPONENT_NAME = 'uploader';\nvar FILE_ADDED_EVENT = 'fileAdded';\nvar FILES_ADDED_EVENT = 'filesAdded';\nvar UPLOAD_START_EVENT = 'uploadStart';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: COMPONENT_NAME,\n provide: function provide() {\n return {\n uploader: this\n };\n },\n props: {\n options: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n autoStart: {\n type: Boolean,\n default: true\n },\n fileStatusText: {\n type: [Object, Function],\n default: function _default() {\n return {\n success: 'success',\n error: 'error',\n uploading: 'uploading',\n paused: 'paused',\n waiting: 'waiting'\n };\n }\n }\n },\n data: function data() {\n return {\n started: false,\n files: [],\n fileList: []\n };\n },\n methods: {\n uploadStart: function uploadStart() {\n this.started = true;\n },\n fileAdded: function fileAdded(file) {\n this.$emit(Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__[\"kebabCase\"])(FILE_ADDED_EVENT), file);\n\n if (file.ignored) {\n // is ignored, filter it\n return false;\n }\n },\n filesAdded: function filesAdded(files, fileList) {\n this.$emit(Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__[\"kebabCase\"])(FILES_ADDED_EVENT), files, fileList);\n\n if (files.ignored || fileList.ignored) {\n // is ignored, filter it\n return false;\n }\n },\n fileRemoved: function fileRemoved(file) {\n this.files = this.uploader.files;\n this.fileList = this.uploader.fileList;\n },\n filesSubmitted: function filesSubmitted(files, fileList) {\n this.files = this.uploader.files;\n this.fileList = this.uploader.fileList;\n\n if (this.autoStart) {\n this.uploader.upload();\n }\n },\n allEvent: function allEvent() {\n var _EVENTSMAP;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var name = args[0];\n var EVENTSMAP = (_EVENTSMAP = {}, Object(_Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_EVENTSMAP, FILE_ADDED_EVENT, true), Object(_Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_EVENTSMAP, FILES_ADDED_EVENT, true), Object(_Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_EVENTSMAP, UPLOAD_START_EVENT, 'uploadStart'), _EVENTSMAP);\n var handler = EVENTSMAP[name];\n\n if (handler) {\n if (handler === true) {\n return;\n }\n\n this[handler].apply(this, args.slice(1));\n }\n\n args[0] = Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__[\"kebabCase\"])(name);\n this.$emit.apply(this, args);\n }\n },\n created: function created() {\n this.options.initialPaused = !this.autoStart;\n var uploader = new simple_uploader_js__WEBPACK_IMPORTED_MODULE_2___default.a(this.options);\n this.uploader = uploader;\n this.uploader.fileStatusText = this.fileStatusText;\n uploader.on('catchAll', this.allEvent);\n uploader.on(FILE_ADDED_EVENT, this.fileAdded);\n uploader.on(FILES_ADDED_EVENT, this.filesAdded);\n uploader.on('fileRemoved', this.fileRemoved);\n uploader.on('filesSubmitted', this.filesSubmitted);\n },\n destroyed: function destroyed() {\n var uploader = this.uploader;\n uploader.off('catchAll', this.allEvent);\n uploader.off(FILE_ADDED_EVENT, this.fileAdded);\n uploader.off(FILES_ADDED_EVENT, this.filesAdded);\n uploader.off('fileRemoved', this.fileRemoved);\n uploader.off('filesSubmitted', this.filesSubmitted);\n this.uploader = null;\n },\n components: {\n UploaderBtn: _btn_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n UploaderDrop: _drop_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n UploaderUnsupport: _unsupport_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n UploaderList: _list_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n UploaderFiles: _files_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n UploaderFile: _file_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/uploader.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/viewers/CodeEditor.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/filebrowser/viewers/CodeEditor.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_split_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var mime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mime */ \"./node_modules/mime/index.js\");\n/* harmony import */ var mime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(mime__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue_codemirror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-codemirror */ \"./node_modules/vue-codemirror/dist/vue-codemirror.js\");\n/* harmony import */ var vue_codemirror__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_codemirror__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/lib/codemirror.css */ \"./node_modules/codemirror/lib/codemirror.css\");\n/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var codemirror_theme_monokai_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! codemirror/theme/monokai.css */ \"./node_modules/codemirror/theme/monokai.css\");\n/* harmony import */ var codemirror_theme_monokai_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(codemirror_theme_monokai_css__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var codemirror_addon_selection_active_line_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! codemirror/addon/selection/active-line.js */ \"./node_modules/codemirror/addon/selection/active-line.js\");\n/* harmony import */ var codemirror_addon_selection_active_line_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_selection_active_line_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var codemirror_addon_selection_mark_selection_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! codemirror/addon/selection/mark-selection.js */ \"./node_modules/codemirror/addon/selection/mark-selection.js\");\n/* harmony import */ var codemirror_addon_selection_mark_selection_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_selection_mark_selection_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var codemirror_addon_search_searchcursor_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! codemirror/addon/search/searchcursor.js */ \"./node_modules/codemirror/addon/search/searchcursor.js\");\n/* harmony import */ var codemirror_addon_search_searchcursor_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_search_searchcursor_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var codemirror_addon_hint_show_hint_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! codemirror/addon/hint/show-hint.js */ \"./node_modules/codemirror/addon/hint/show-hint.js\");\n/* harmony import */ var codemirror_addon_hint_show_hint_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_hint_show_hint_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var codemirror_addon_hint_show_hint_css__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! codemirror/addon/hint/show-hint.css */ \"./node_modules/codemirror/addon/hint/show-hint.css\");\n/* harmony import */ var codemirror_addon_hint_show_hint_css__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_hint_show_hint_css__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var codemirror_addon_hint_javascript_hint_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! codemirror/addon/hint/javascript-hint.js */ \"./node_modules/codemirror/addon/hint/javascript-hint.js\");\n/* harmony import */ var codemirror_addon_hint_javascript_hint_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_hint_javascript_hint_js__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var codemirror_addon_scroll_annotatescrollbar_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! codemirror/addon/scroll/annotatescrollbar.js */ \"./node_modules/codemirror/addon/scroll/annotatescrollbar.js\");\n/* harmony import */ var codemirror_addon_scroll_annotatescrollbar_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_scroll_annotatescrollbar_js__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var codemirror_addon_scroll_simplescrollbars__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! codemirror/addon/scroll/simplescrollbars */ \"./node_modules/codemirror/addon/scroll/simplescrollbars.js\");\n/* harmony import */ var codemirror_addon_scroll_simplescrollbars__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_scroll_simplescrollbars__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var codemirror_addon_scroll_simplescrollbars_css__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! codemirror/addon/scroll/simplescrollbars.css */ \"./node_modules/codemirror/addon/scroll/simplescrollbars.css\");\n/* harmony import */ var codemirror_addon_scroll_simplescrollbars_css__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_scroll_simplescrollbars_css__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var codemirror_addon_search_matchesonscrollbar_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! codemirror/addon/search/matchesonscrollbar.js */ \"./node_modules/codemirror/addon/search/matchesonscrollbar.js\");\n/* harmony import */ var codemirror_addon_search_matchesonscrollbar_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_search_matchesonscrollbar_js__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var codemirror_addon_search_match_highlighter_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! codemirror/addon/search/match-highlighter.js */ \"./node_modules/codemirror/addon/search/match-highlighter.js\");\n/* harmony import */ var codemirror_addon_search_match_highlighter_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_search_match_highlighter_js__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var codemirror_mode_clike_clike_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! codemirror/mode/clike/clike.js */ \"./node_modules/codemirror/mode/clike/clike.js\");\n/* harmony import */ var codemirror_mode_clike_clike_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_clike_clike_js__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var codemirror_addon_edit_matchbrackets_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! codemirror/addon/edit/matchbrackets.js */ \"./node_modules/codemirror/addon/edit/matchbrackets.js\");\n/* harmony import */ var codemirror_addon_edit_matchbrackets_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_edit_matchbrackets_js__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var codemirror_addon_comment_comment_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! codemirror/addon/comment/comment.js */ \"./node_modules/codemirror/addon/comment/comment.js\");\n/* harmony import */ var codemirror_addon_comment_comment_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_comment_comment_js__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var codemirror_addon_dialog_dialog_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! codemirror/addon/dialog/dialog.js */ \"./node_modules/codemirror/addon/dialog/dialog.js\");\n/* harmony import */ var codemirror_addon_dialog_dialog_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_dialog_dialog_js__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var codemirror_addon_dialog_dialog_css__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! codemirror/addon/dialog/dialog.css */ \"./node_modules/codemirror/addon/dialog/dialog.css\");\n/* harmony import */ var codemirror_addon_dialog_dialog_css__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_dialog_dialog_css__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var codemirror_addon_search_search_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! codemirror/addon/search/search.js */ \"./node_modules/codemirror/addon/search/search.js\");\n/* harmony import */ var codemirror_addon_search_search_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_search_search_js__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var codemirror_keymap_sublime_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! codemirror/keymap/sublime.js */ \"./node_modules/codemirror/keymap/sublime.js\");\n/* harmony import */ var codemirror_keymap_sublime_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(codemirror_keymap_sublime_js__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var codemirror_addon_fold_foldgutter_css__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! codemirror/addon/fold/foldgutter.css */ \"./node_modules/codemirror/addon/fold/foldgutter.css\");\n/* harmony import */ var codemirror_addon_fold_foldgutter_css__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_foldgutter_css__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var codemirror_addon_fold_brace_fold_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! codemirror/addon/fold/brace-fold.js */ \"./node_modules/codemirror/addon/fold/brace-fold.js\");\n/* harmony import */ var codemirror_addon_fold_brace_fold_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_brace_fold_js__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var codemirror_addon_fold_comment_fold_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! codemirror/addon/fold/comment-fold.js */ \"./node_modules/codemirror/addon/fold/comment-fold.js\");\n/* harmony import */ var codemirror_addon_fold_comment_fold_js__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_comment_fold_js__WEBPACK_IMPORTED_MODULE_27__);\n/* harmony import */ var codemirror_addon_fold_foldcode_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! codemirror/addon/fold/foldcode.js */ \"./node_modules/codemirror/addon/fold/foldcode.js\");\n/* harmony import */ var codemirror_addon_fold_foldcode_js__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_foldcode_js__WEBPACK_IMPORTED_MODULE_28__);\n/* harmony import */ var codemirror_addon_fold_foldgutter_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! codemirror/addon/fold/foldgutter.js */ \"./node_modules/codemirror/addon/fold/foldgutter.js\");\n/* harmony import */ var codemirror_addon_fold_foldgutter_js__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_foldgutter_js__WEBPACK_IMPORTED_MODULE_29__);\n/* harmony import */ var codemirror_addon_fold_indent_fold_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! codemirror/addon/fold/indent-fold.js */ \"./node_modules/codemirror/addon/fold/indent-fold.js\");\n/* harmony import */ var codemirror_addon_fold_indent_fold_js__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_indent_fold_js__WEBPACK_IMPORTED_MODULE_30__);\n/* harmony import */ var codemirror_addon_fold_markdown_fold_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! codemirror/addon/fold/markdown-fold.js */ \"./node_modules/codemirror/addon/fold/markdown-fold.js\");\n/* harmony import */ var codemirror_addon_fold_markdown_fold_js__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_markdown_fold_js__WEBPACK_IMPORTED_MODULE_31__);\n/* harmony import */ var codemirror_addon_fold_xml_fold_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! codemirror/addon/fold/xml-fold.js */ \"./node_modules/codemirror/addon/fold/xml-fold.js\");\n/* harmony import */ var codemirror_addon_fold_xml_fold_js__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_fold_xml_fold_js__WEBPACK_IMPORTED_MODULE_32__);\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! codemirror/mode/javascript/javascript */ \"./node_modules/codemirror/mode/javascript/javascript.js\");\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_33__);\n/* harmony import */ var codemirror_mode_go_go__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! codemirror/mode/go/go */ \"./node_modules/codemirror/mode/go/go.js\");\n/* harmony import */ var codemirror_mode_go_go__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_go_go__WEBPACK_IMPORTED_MODULE_34__);\n/* harmony import */ var codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! codemirror/mode/htmlmixed/htmlmixed */ \"./node_modules/codemirror/mode/htmlmixed/htmlmixed.js\");\n/* harmony import */ var codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_35__);\n/* harmony import */ var codemirror_mode_htmlembedded_htmlembedded__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! codemirror/mode/htmlembedded/htmlembedded */ \"./node_modules/codemirror/mode/htmlembedded/htmlembedded.js\");\n/* harmony import */ var codemirror_mode_htmlembedded_htmlembedded__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_htmlembedded_htmlembedded__WEBPACK_IMPORTED_MODULE_36__);\n/* harmony import */ var codemirror_mode_http_http__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! codemirror/mode/http/http */ \"./node_modules/codemirror/mode/http/http.js\");\n/* harmony import */ var codemirror_mode_http_http__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_http_http__WEBPACK_IMPORTED_MODULE_37__);\n/* harmony import */ var codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! codemirror/mode/php/php */ \"./node_modules/codemirror/mode/php/php.js\");\n/* harmony import */ var codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_38__);\n/* harmony import */ var codemirror_mode_python_python__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! codemirror/mode/python/python */ \"./node_modules/codemirror/mode/python/python.js\");\n/* harmony import */ var codemirror_mode_python_python__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_python_python__WEBPACK_IMPORTED_MODULE_39__);\n/* harmony import */ var codemirror_mode_sql_sql__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! codemirror/mode/sql/sql */ \"./node_modules/codemirror/mode/sql/sql.js\");\n/* harmony import */ var codemirror_mode_sql_sql__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_sql_sql__WEBPACK_IMPORTED_MODULE_40__);\n/* harmony import */ var codemirror_mode_vue_vue__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! codemirror/mode/vue/vue */ \"./node_modules/codemirror/mode/vue/vue.js\");\n/* harmony import */ var codemirror_mode_vue_vue__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_vue_vue__WEBPACK_IMPORTED_MODULE_41__);\n/* harmony import */ var codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! codemirror/mode/xml/xml */ \"./node_modules/codemirror/mode/xml/xml.js\");\n/* harmony import */ var codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_42__);\n/* harmony import */ var codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! codemirror/mode/yaml/yaml */ \"./node_modules/codemirror/mode/yaml/yaml.js\");\n/* harmony import */ var codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_43__);\n/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! codemirror/mode/css/css */ \"./node_modules/codemirror/mode/css/css.js\");\n/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_44__);\n/* harmony import */ var codemirror_mode_cmake_cmake__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! codemirror/mode/cmake/cmake */ \"./node_modules/codemirror/mode/cmake/cmake.js\");\n/* harmony import */ var codemirror_mode_cmake_cmake__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_cmake_cmake__WEBPACK_IMPORTED_MODULE_45__);\n/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! codemirror/mode/markdown/markdown */ \"./node_modules/codemirror/mode/markdown/markdown.js\");\n/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_46___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_46__);\n/* harmony import */ var codemirror_mode_lua_lua__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! codemirror/mode/lua/lua */ \"./node_modules/codemirror/mode/lua/lua.js\");\n/* harmony import */ var codemirror_mode_lua_lua__WEBPACK_IMPORTED_MODULE_47___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_lua_lua__WEBPACK_IMPORTED_MODULE_47__);\n/* harmony import */ var codemirror_mode_ruby_ruby__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! codemirror/mode/ruby/ruby */ \"./node_modules/codemirror/mode/ruby/ruby.js\");\n/* harmony import */ var codemirror_mode_ruby_ruby__WEBPACK_IMPORTED_MODULE_48___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_ruby_ruby__WEBPACK_IMPORTED_MODULE_48__);\n/* harmony import */ var codemirror_mode_rust_rust__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! codemirror/mode/rust/rust */ \"./node_modules/codemirror/mode/rust/rust.js\");\n/* harmony import */ var codemirror_mode_rust_rust__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_rust_rust__WEBPACK_IMPORTED_MODULE_49__);\n/* harmony import */ var codemirror_mode_shell_shell__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! codemirror/mode/shell/shell */ \"./node_modules/codemirror/mode/shell/shell.js\");\n/* harmony import */ var codemirror_mode_shell_shell__WEBPACK_IMPORTED_MODULE_50___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_shell_shell__WEBPACK_IMPORTED_MODULE_50__);\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 // Core\n\n\n // theme css\n\n // import 'codemirror/theme/elegant.css'\n// require active-line.js\n\n // styleSelectedText\n\n\n // hint\n\n\n\n\n // highlightSelectionMatches\n\n\n\n\n\n\n // keyMap\n\n\n\n\n\n\n\n\n // foldGutter\n\n\n\n\n\n\n\n\n // Mode\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"]],\n components: {\n codemirror: vue_codemirror__WEBPACK_IMPORTED_MODULE_4__[\"codemirror\"]\n },\n props: {\n item: {\n type: Object,\n default: function _default() {\n return {\n path: '/DATA/background.js',\n name: 'background.js'\n };\n }\n }\n },\n data: function data() {\n var _this = this;\n\n return {\n code: \"\",\n isChange: false,\n cmOptions: {\n tabSize: 4,\n styleActiveLine: true,\n lineNumbers: true,\n styleSelectedText: false,\n line: true,\n foldGutter: true,\n gutters: [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n highlightSelectionMatches: {\n showToken: /\\w/,\n annotateScrollbar: true\n },\n mode: \"text/javascript\",\n // hint.js options\n hintOptions: {\n completeSingle: false\n },\n keyMap: \"sublime\",\n matchBrackets: true,\n showCursorWhenSelecting: true,\n theme: \"monokai\",\n extraKeys: {\n 'Ctrl': \"autocomplete\",\n 'Ctrl-S': function CtrlS() {\n _this.saveFile();\n },\n 'Cmd-S': function CmdS() {\n _this.saveFile();\n }\n },\n scrollbarStyle: \"overlay\"\n }\n };\n },\n computed: {\n codemirror: function codemirror() {\n return this.$refs.cmEditor.codemirror;\n },\n pathArray: function pathArray() {\n return this.item.path.substr(1).split(\"/\");\n }\n },\n mounted: function mounted() {\n this.readFile();\n },\n methods: {\n onCmCodeChange: function onCmCodeChange() {\n this.isChange = true;\n },\n onCmReady: function onCmReady() {\n this.isChange = false;\n },\n readFile: function readFile() {\n var _this2 = this;\n\n var ext = this.getFileExt(this.item);\n var mode = mime__WEBPACK_IMPORTED_MODULE_3___default.a.getType(ext) == null ? \"text/javascript\" : mime__WEBPACK_IMPORTED_MODULE_3___default.a.getType(ext);\n\n if (ext.toLowerCase() == \"makefile\") {\n mode = 'text/x-cmake';\n } else if (ext.toLowerCase() == \"py\") {\n mode = 'text/x-python';\n } else if (ext.toLowerCase() == \"go\") {\n mode = 'text/x-go';\n } else if (ext.toLowerCase() == \"vue\") {\n mode = 'text/x-vue';\n }\n\n console.log(mode);\n this.codemirror.setOption(\"mode\", mode);\n this.$api.file.download(this.item.path).then(function (res) {\n if (_this2.getFileExt(_this2.item) == 'json') {\n _this2.code = JSON.stringify(res.data, null, 2);\n } else {\n _this2.code = res.data;\n }\n\n _this2.$nextTick(function () {\n _this2.isChange = false;\n });\n });\n },\n saveFile: function saveFile() {\n var _this3 = this;\n\n var leave = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var content = this.codemirror.getValue();\n this.$api.file.update(this.item.path, content).then(function (res) {\n if (res.data.success == 200) {\n _this3.readFile();\n\n _this3.isChange = false;\n\n _this3.$buefy.toast.open({\n message: _this3.$t('Saved'),\n type: 'is-success'\n });\n\n if (leave) {\n _this3.$emit(\"close\");\n }\n } else {\n _this3.$buefy.toast.open({\n message: res.data.message,\n type: 'is-danger'\n });\n }\n });\n },\n download: function download() {\n this.downloadFile(this.item);\n },\n close: function close() {\n var _this4 = this;\n\n if (this.isChange) {\n this.$buefy.dialog.confirm({\n title: this.$t('Want to save?'),\n message: this.$t('Your changes will be lost if you don’t save them.'),\n hasIcon: true,\n canCancel: ['button'],\n confirmText: this.$t('Save'),\n cancelText: this.$t('Don’t Save'),\n onConfirm: function onConfirm() {\n _this4.saveFile(true);\n },\n onCancel: function onCancel() {\n _this4.$emit(\"close\");\n }\n });\n } else {\n this.$emit(\"close\");\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/CodeEditor.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/viewers/ImageViewer.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/filebrowser/viewers/ImageViewer.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var svg64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! svg64 */ \"./node_modules/svg64/dist/svg64.js\");\n/* harmony import */ var svg64__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(svg64__WEBPACK_IMPORTED_MODULE_1__);\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 mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n props: {\n item: {\n type: Object,\n default: function _default() {\n return {\n path: '/DATA/1.png',\n name: '1.png'\n };\n }\n }\n },\n components: {},\n data: function data() {\n return {\n type: \"\",\n ext: \"\",\n bgUrl: \"\"\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n var ext = this.getFileExt(this.item);\n\n if (ext == \"svg\") {\n this.$api.file.download(this.item.path).then(function (res) {\n _this.bgUrl = svg64__WEBPACK_IMPORTED_MODULE_1___default()(res.data);\n console.log(_this.bgUrl);\n });\n } else {\n this.bgUrl = this.getFileUrl(this.item);\n }\n },\n methods: {\n download: function download() {\n this.downloadFile(this.item);\n },\n close: function close() {\n this.$emit(\"close\");\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/ImageViewer.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/viewers/PdfViewer.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/filebrowser/viewers/PdfViewer.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 _mixins_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var vue_pdf__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-pdf */ \"./node_modules/vue-pdf/src/vuePdfNoSss.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//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"]],\n props: {\n item: {\n type: Object,\n default: function _default() {\n return {\n path: '/DATA/1.png',\n name: '1.png'\n };\n }\n }\n },\n components: {\n pdf: vue_pdf__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data: function data() {\n return {\n type: \"\",\n ext: \"\",\n isLoading: true,\n src: vue_pdf__WEBPACK_IMPORTED_MODULE_1__[\"default\"].createLoadingTask(this.getFileUrl(this.item)),\n numPages: undefined\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.src.promise.then(function (pdf) {\n _this.isLoading = false;\n _this.numPages = pdf.numPages;\n }).catch(function () {\n _this.isLoading = false;\n });\n },\n methods: {\n download: function download() {\n this.downloadFile(this.item);\n },\n close: function close() {\n this.$emit(\"close\");\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/PdfViewer.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/filebrowser/viewers/VideoPlayer.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/filebrowser/viewers/VideoPlayer.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_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/mixin */ \"./src/mixins/mixin.js\");\n/* harmony import */ var vue_plyr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-plyr */ \"./node_modules/vue-plyr/dist/vue-plyr.esm.js\");\n/* harmony import */ var vue_plyr_dist_vue_plyr_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-plyr/dist/vue-plyr.css */ \"./node_modules/vue-plyr/dist/vue-plyr.css\");\n/* harmony import */ var vue_plyr_dist_vue_plyr_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_plyr_dist_vue_plyr_css__WEBPACK_IMPORTED_MODULE_4__);\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//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"]],\n props: {\n item: {\n type: Object,\n default: function _default() {\n return {\n path: '/DATA/5 Seconds Of Summer - Amnesia.mp4',\n name: '5 Seconds Of Summer - Amnesia.mp4'\n };\n }\n }\n },\n components: {\n VuePlyr: vue_plyr__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n data: function data() {\n return {\n type: \"\",\n ext: \"\"\n };\n },\n computed: {\n isVideo: function isVideo() {\n return this.type == \"video-x-generic\";\n },\n isAudio: function isAudio() {\n return this.type == \"audio-x-generic\";\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.ext = this.getFileExt(this.item);\n Object.keys(this.typeMap).forEach(function (_type) {\n var extensions = _this.typeMap[_type];\n\n if (extensions.indexOf(_this.ext.toLowerCase()) > -1) {\n _this.type = _type;\n }\n });\n },\n methods: {\n download: function download() {\n this.downloadFile(this.item);\n },\n close: function close() {\n this.$emit(\"close\");\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/VideoPlayer.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/CommandsInput.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/forms/CommandsInput.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_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__);\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: 'commands-input',\n components: {},\n data: function data() {\n return {\n isLoading: false,\n items: [],\n min: 0\n };\n },\n model: {\n prop: 'vdata',\n event: 'change'\n },\n props: {\n vdata: Array,\n label: String,\n message: String\n },\n methods: {\n addItem: function addItem() {\n this.vdata.push(\"\");\n },\n removeItem: function removeItem(index) {\n this.vdata.splice(index, 1);\n this.filterArray();\n },\n handleInput: function handleInput() {\n this.filterArray();\n },\n filterArray: function filterArray() {\n this.$emit('change', this.vdata);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/forms/CommandsInput.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/EnvInputGroup.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/forms/EnvInputGroup.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_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__);\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: 'env-input-group',\n data: function data() {\n return {\n isLoading: false,\n items: [],\n min: 0\n };\n },\n model: {\n prop: 'vdata',\n event: 'change'\n },\n props: {\n vdata: Array,\n label: String,\n message: String,\n name1: {\n type: String,\n default: \"Key\"\n },\n name2: {\n type: String,\n default: \"Value\"\n }\n },\n created: function created() {//this.items = this.vdata;\n },\n watch: {},\n mounted: function mounted() {//this.addItem()\n },\n methods: {\n addItem: function addItem() {\n var itemObj = {\n container: \"\",\n host: \"\"\n };\n this.vdata.push(itemObj);\n },\n removeItem: function removeItem(index) {\n this.vdata.splice(index, 1);\n this.filterArray();\n },\n handleInput: function handleInput() {\n this.filterArray();\n },\n filterArray: function filterArray() {\n this.$emit('change', this.vdata);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/forms/EnvInputGroup.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/IconInput.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/forms/IconInput.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 _fileList_FilePanel_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fileList/FilePanel.vue */ \"./src/components/fileList/FilePanel.vue\");\n//\n//\n//\n//\n//\n\nvar DATA_PATH = \"/DATA\";\nvar DEV_PATH = \"/dev\";\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"iconinput\",\n props: {\n vdata: String,\n type: String,\n placeholder: String\n },\n model: {\n prop: 'vdata',\n event: 'change'\n },\n data: function data() {\n return {\n path: this.vdata\n };\n },\n computed: {\n initPath: function initPath() {\n if (this.type == \"device\") {\n return this.path == \"\" ? DEV_PATH : this.path;\n } else {\n return this.path == \"\" ? DATA_PATH : this.path;\n }\n },\n rootPath: function rootPath() {\n if (this.type == \"device\") {\n return DEV_PATH;\n } else {\n return DATA_PATH;\n }\n }\n },\n watch: {\n vdata: function vdata(val) {\n this.path = val;\n }\n },\n methods: {\n handleInput: function handleInput() {\n this.$emit('change', this.path);\n this.$emit('input', this.path);\n },\n selectFile: function selectFile() {\n this.showFileModal();\n },\n showFileModal: function showFileModal() {\n var _this = this;\n\n this.$buefy.modal.open({\n parent: this,\n component: _fileList_FilePanel_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n hasModalCard: true,\n customClass: 'fileModal',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {\n 'updatePath': function updatePath(e) {\n _this.path = e;\n\n _this.$emit('change', _this.path);\n\n _this.$emit('input', _this.path);\n }\n },\n props: {\n initPath: this.initPath,\n rootPath: this.rootPath\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/forms/IconInput.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/ImportPanel.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/forms/ImportPanel.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 _Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ \"./node_modules/core-js/modules/es.array.includes.js\");\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ \"./node_modules/core-js/modules/es.string.includes.js\");\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ \"./node_modules/core-js/modules/es.string.trim.js\");\n/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_7__ = __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_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_8__ = __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_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_9__ = __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_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_11__ = __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_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var lodash_upperFirst__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! lodash/upperFirst */ \"./node_modules/lodash/upperFirst.js\");\n/* harmony import */ var lodash_upperFirst__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(lodash_upperFirst__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! lodash/lowerFirst */ \"./node_modules/lodash/lowerFirst.js\");\n/* harmony import */ var lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var yargs_parser__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! yargs-parser */ \"./node_modules/yargs-parser/build/lib/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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data: function data() {\n return {\n activeTab: 0,\n file: {},\n dropFiles: {},\n dockerCliCommands: \"\",\n parseError: false,\n appFileLoaded: false,\n errors: \"\",\n dropText: this.$t('Drop your app file here or click to upload'),\n updateData: this.initData\n };\n },\n props: {\n initData: Object,\n netWorks: Array,\n oriNetWorks: Array,\n deviceMemory: Number\n },\n created: function created() {//console.log(this.oriNetWorks);\n },\n methods: {\n /**\n * @description: Emit Event to tell parent Update\n * @param {*}\n * @return {*} void\n */\n emitSubmit: function emitSubmit() {\n if (this.activeTab == 0) {\n if (this.parseCli()) {\n this.errors = \"\";\n this.$emit('update', this.updateData);\n this.$emit('close');\n } else {\n this.errors = this.$t('Please fill correct command line');\n this.parseError = true;\n }\n } else if (this.activeTab == 1) {\n if (this.appFileLoaded) {\n this.errors = \"\";\n this.$emit('update', this.updateData);\n this.$emit('close');\n } else {\n this.errors = this.$t('Please import a valid App file');\n this.parseError = true;\n }\n }\n },\n volumeAutoCheck: function volumeAutoCheck(containerPath, hostPath, appName) {\n var finalHostPath = hostPath;\n var rootDir = \"/DATA\";\n var checkArray = [{\n keywords: [\"config\"],\n value: \"/AppData/\".concat(appName).concat(containerPath)\n }, {\n keywords: [\"tvshows\", \"TV\", \"tv\"],\n value: \"/Media/TV Shows\"\n }, {\n keywords: [\"movies\", \"Movie\", \"movie\"],\n value: \"/Media/Movies\"\n }, {\n keywords: [\"Music\", \"music\"],\n value: \"/Media/Music\"\n }, {\n keywords: [\"download\"],\n value: \"/Downloads\"\n }, {\n keywords: [\"pictures\", \"photo\"],\n value: \"/Gallery\"\n }, {\n keywords: [\"media\"],\n value: \"/Media\"\n }];\n checkArray.forEach(function (item) {\n if (item.keywords.some(function (keywordsItem) {\n return containerPath.includes(keywordsItem);\n })) {\n finalHostPath = rootDir + item.value;\n return;\n }\n });\n return finalHostPath;\n },\n\n /**\n * @description: Parse Import Docker Cli Commands\n * @return {Boolean} \n */\n parseCli: function parseCli() {\n var _this2 = this;\n\n var formattedInput = this.dockerCliCommands.replace(/<[^>]*>/g, 'Custom_data').replace(/[\\r\\n]/g, \"\").replace(/\\\\/g, \"\\\\ \").replace(\"-d\", \"\").replace(/[\\\\]/g, '').trim();\n var parsedInput = Object(yargs_parser__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(formattedInput);\n var command = parsedInput._;\n\n if (command[0] !== 'docker' || command[1] !== 'run' && command[1] !== 'create') {\n return false;\n } else {\n //Image\n this.updateData.image = Object(_Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(command).pop();\n console.log(parsedInput); //Label\n\n if (parsedInput.name != undefined) {\n this.updateData.label = lodash_upperFirst__WEBPACK_IMPORTED_MODULE_14___default()(parsedInput.name);\n } else {\n var imageArray = this.updateData.image.split(\"/\");\n\n var lastNode = Object(_Users_liangjianli_go_CasaOSNew_CasaOS_UI_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(imageArray).pop();\n\n this.updateData.label = lodash_upperFirst__WEBPACK_IMPORTED_MODULE_14___default()(lastNode.split(\":\")[0]);\n } //Envs\n\n\n this.updateData.envs = this.makeArray(parsedInput.e).map(function (item) {\n var ii = item.split(\"=\");\n return {\n host: ii[1].replace(/\"/g, \"\"),\n container: ii[0]\n };\n }); //Ports\n\n this.updateData.ports = this.makeArray(parsedInput.p).map(function (item) {\n var pArray = item.split(\":\");\n var endArray = pArray[1].split(\"/\");\n var protocol = endArray[1] ? endArray[1] : 'tcp';\n return {\n container: endArray[0],\n host: pArray[0],\n protocol: protocol\n };\n }); //Volume\n\n this.updateData.volumes = this.makeArray(parsedInput.v).map(function (item) {\n var ii = item.split(\":\");\n\n if (ii.length > 1) {\n // console.log(this.volumeAutoCheck(ii[1],ii[0], _.lowerFirst(this.updateData.label)));\n return {\n container: ii[1],\n host: _this2.volumeAutoCheck(ii[1], ii[0], lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_15___default()(_this2.updateData.label))\n };\n } else {\n return {\n container: ii[0],\n host: _this2.volumeAutoCheck(ii[0], \"\", lodash_lowerFirst__WEBPACK_IMPORTED_MODULE_15___default()(_this2.updateData.label))\n };\n }\n }); // Devices\n\n this.updateData.devices = this.makeArray(parsedInput.device).map(function (item) {\n var ii = item.split(\":\");\n return {\n container: ii[1],\n host: ii[0]\n };\n }); //Network\n\n if (parsedInput.network != undefined) {\n var network = parsedInput.network == 'physical' ? 'macvlan' : parsedInput.network;\n var seletNetworks = this.netWorks.filter(function (item) {\n if (item.driver == network) {\n return true;\n }\n });\n\n if (seletNetworks.length > 0) {\n this.updateData.network_model = seletNetworks[0].networks[0].name;\n }\n } //privileged\n\n\n this.updateData.privileged = parsedInput.privileged != undefined; //Restart\n\n if (parsedInput.restart != undefined) {\n this.updateData.restart = parsedInput.restart;\n }\n\n return true;\n }\n },\n\n /**\n * @description: Make String to Array\n * @param {*}\n * @return {Array}\n */\n makeArray: function makeArray(foo) {\n var newArray = typeof foo == \"string\" ? [foo] : foo;\n return newArray == undefined ? [] : newArray;\n },\n deleteDropFile: function deleteDropFile(index) {\n this.dropFiles.splice(index, 1);\n },\n onSelect: function onSelect(val) {\n var _this = this;\n\n var reader = new FileReader();\n\n if (typeof FileReader === \"undefined\") {\n this.$buefy.toast.open({\n duration: 3000,\n message: this.$t('Your browser does not support file reading.'),\n type: 'is-danger'\n });\n return;\n }\n\n reader.readAsText(val);\n\n reader.onload = function () {\n try {\n _this.updateData = JSON.parse(this.result);\n\n if (_this.updateData.version === undefined) {\n _this.$buefy.toast.open({\n duration: 3000,\n message: _this.$t('This is not a valid App file.'),\n type: 'is-danger'\n });\n\n _this.appFileLoaded = false;\n return false;\n } else {\n delete _this.updateData.versison;\n _this.updateData.network_model = _this.getNetworkModel(_this.updateData.network_model);\n _this.updateData.memory = _this.deviceMemory;\n _this.dropText = val.name + \" \" + _this.$t('has been selected');\n _this.appFileLoaded = true;\n return true;\n }\n } catch (e) {\n _this.$buefy.toast.open({\n duration: 3000,\n message: _this.$t('This is not a valid json file.'),\n type: 'is-danger'\n });\n\n _this.appFileLoaded = false;\n return false;\n }\n };\n },\n getNetworkModel: function getNetworkModel(netName) {\n var network = this.oriNetWorks.filter(function (net) {\n return net.name == netName;\n });\n return network.length > 0 ? network[0].name : this.oriNetWorks[0].name;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/forms/ImportPanel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/InputGroup.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/forms/InputGroup.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_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _forms_IconInput_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../forms/IconInput.vue */ \"./src/components/forms/IconInput.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//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'input-group',\n components: {\n IconInput: _forms_IconInput_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data: function data() {\n return {\n isLoading: false,\n items: [],\n min: 0\n };\n },\n model: {\n prop: 'vdata',\n event: 'change'\n },\n props: {\n vdata: Array,\n label: String,\n message: String,\n type: String,\n name1: {\n type: String,\n default: \"Container\"\n },\n name2: {\n type: String,\n default: \"Host\"\n }\n },\n created: function created() {//this.items = this.vdata;\n },\n watch: {},\n mounted: function mounted() {//this.addItem()\n },\n methods: {\n addItem: function addItem() {\n var itemObj = {\n container: \"\",\n host: \"\"\n };\n this.vdata.push(itemObj);\n },\n removeItem: function removeItem(index) {\n this.vdata.splice(index, 1);\n this.filterArray();\n },\n handleInput: function handleInput() {\n this.filterArray();\n },\n filterArray: function filterArray() {\n this.$emit('change', this.vdata);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/forms/InputGroup.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/forms/Ports.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/forms/Ports.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_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__);\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: 'ports',\n data: function data() {\n return {\n isLoading: false,\n items: [],\n min: 0\n };\n },\n model: {\n prop: 'vdata',\n event: 'change'\n },\n props: {\n vdata: Array,\n showHostPost: Boolean\n },\n created: function created() {//this.items = this.vdata;\n },\n mounted: function mounted() {\n if (this.vdata.length == 0) {//this.addItem()\n }\n },\n methods: {\n addItem: function addItem() {\n var itemObj = {\n container: \"\",\n host: \"\",\n protocol: \"tcp\"\n };\n this.vdata.push(itemObj);\n },\n removeItem: function removeItem(index) {\n this.vdata.splice(index, 1);\n this.filterArray();\n },\n handleInput: function handleInput() {\n this.filterArray();\n },\n filterArray: function filterArray() {\n // let newArray = this.items.filter(item => {\n // if (item.container != \"\" && item.host != \"\") {\n // return true\n // } else {\n // return false\n // }\n // })\n this.$emit('change', this.vdata);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/forms/Ports.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/logsAndTerminal/LogsCard.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/logsAndTerminal/LogsCard.vue?vue&type=script&lang=js& ***! - \*********************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"logs-card\",\n data: function data() {\n return {\n fullscreen: false,\n state: true\n };\n },\n props: {\n data: String\n },\n computed: {\n buttonSzie: function buttonSzie() {\n return this.$store.state.device == \"mobile\" ? 'is-small' : '';\n },\n buttonIcon: function buttonIcon() {\n return this.fullscreen ? \"fullscreen-exit\" : \"fullscreen\";\n }\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('resize', this.onWindowResize);\n },\n created: function created() {\n window.addEventListener('resize', this.onWindowResize);\n this.onWindowResize();\n },\n mounted: function mounted() {\n this.onWindowResize();\n },\n methods: {\n toggleFullScreen: function toggleFullScreen() {\n this.fullscreen = !this.fullscreen;\n },\n onWindowResize: function onWindowResize() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.fullscreen) {\n document.getElementById('logs').style.height = window.innerHeight - _this.getTop(document.getElementById('logs')) + 'px';\n document.body.style.overflow = \"hidden\";\n } else {\n document.getElementById('logs').style.height = window.innerHeight - _this.getTop(document.getElementById('logs')) - 62 + 'px';\n document.body.style.overflow = \"auto\";\n }\n });\n },\n getTop: function getTop(e) {\n var offset = e.offsetTop;\n if (e.offsetParent != null) offset += this.getTop(e.offsetParent);\n return offset;\n },\n active: function active(state) {\n this.state = state;\n\n if (state) {\n this.onWindowResize();\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/logsAndTerminal/LogsCard.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/logsAndTerminal/TerminalCard.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/logsAndTerminal/TerminalCard.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 xterm_css_xterm_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xterm/css/xterm.css */ \"./node_modules/xterm/css/xterm.css\");\n/* harmony import */ var xterm_css_xterm_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(xterm_css_xterm_css__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! xterm */ \"./node_modules/xterm/lib/xterm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(xterm__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xterm-addon-fit */ \"./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js\");\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var xterm_addon_attach__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! xterm-addon-attach */ \"./node_modules/xterm-addon-attach/lib/xterm-addon-attach.js\");\n/* harmony import */ var xterm_addon_attach__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_attach__WEBPACK_IMPORTED_MODULE_3__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\nvar fitAddon = new xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__[\"FitAddon\"]();\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"terminal-card\",\n props: {\n id: String,\n label: String,\n wsUrl: String\n },\n data: function data() {\n return {\n fullscreen: false,\n term: \"\",\n state: true\n };\n },\n computed: {\n buttonSzie: function buttonSzie() {\n return this.$store.state.device == \"mobile\" ? 'is-small' : '';\n },\n buttonIcon: function buttonIcon() {\n return this.fullscreen ? \"fullscreen-exit\" : \"fullscreen\";\n }\n },\n mounted: function mounted() {\n this.initSocket();\n },\n beforeDestroy: function beforeDestroy() {\n this.socket.close();\n if (this.term != \"\") this.term.dispose();\n window.removeEventListener('resize', this.onWindowResize);\n },\n methods: {\n toggleFullScreen: function toggleFullScreen() {\n this.fullscreen = !this.fullscreen;\n },\n initTerm: function initTerm() {\n var term = new xterm__WEBPACK_IMPORTED_MODULE_1__[\"Terminal\"]({\n fontSize: 14,\n cursorBlink: true,\n theme: {\n background: '#1E1E1E'\n }\n });\n var attachAddon = new xterm_addon_attach__WEBPACK_IMPORTED_MODULE_3__[\"AttachAddon\"](this.socket);\n term.loadAddon(attachAddon);\n term.loadAddon(fitAddon);\n term.open(document.getElementById('xterm'));\n fitAddon.fit();\n term.focus();\n this.term = term;\n window.addEventListener('resize', this.onWindowResize);\n this.onWindowResize();\n },\n initSocket: function initSocket() {\n this.socket = new WebSocket(this.wsUrl);\n this.socketOnClose();\n this.socketOnOpen();\n this.socketOnError();\n },\n socketOnOpen: function socketOnOpen() {\n var _this = this;\n\n this.socket.onopen = function () {\n _this.initTerm();\n };\n },\n socketOnClose: function socketOnClose() {\n this.socket.onclose = function () {\n console.log('close socket');\n };\n },\n socketOnError: function socketOnError() {\n this.socket.onerror = function () {\n console.log('socket 链接失败');\n };\n },\n onWindowResize: function onWindowResize() {\n var _this2 = this;\n\n this.$nextTick(function () {\n if (_this2.fullscreen) {\n document.getElementById('xterm').style.height = window.innerHeight - _this2.getTop(document.getElementById('xterm')) + 'px';\n document.body.style.overflow = \"hidden\";\n } else {\n document.getElementById('xterm').style.height = window.innerHeight - _this2.getTop(document.getElementById('xterm')) - 62 + 'px';\n document.body.style.overflow = \"auto\";\n }\n\n if (_this2.state) {\n fitAddon.fit();\n\n _this2.socket.send(JSON.stringify({\n type: \"resize\",\n cols: _this2.term.cols,\n rows: _this2.term.rows\n }));\n }\n });\n },\n getTop: function getTop(e) {\n var offset = e.offsetTop;\n if (e.offsetParent != null) offset += this.getTop(e.offsetParent);\n return offset;\n },\n active: function active(state) {\n this.state = state;\n\n if (state) {\n this.onWindowResize();\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/logsAndTerminal/TerminalCard.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/logsAndTerminal/TerminalPanel.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/logsAndTerminal/TerminalPanel.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_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _TerminalCard_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TerminalCard.vue */ \"./src/components/logsAndTerminal/TerminalCard.vue\");\n/* harmony import */ var _LogsCard_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LogsCard.vue */ \"./src/components/logsAndTerminal/LogsCard.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/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'terminal-panel',\n components: {\n TerminalCard: _TerminalCard_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n LogsCard: _LogsCard_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n data: function data() {\n return {\n isLoading: false,\n wsUrl: false ? undefined : \"ws://\".concat(document.location.host, \"/v1/sys/wsssh?token=\").concat(this.$store.state.token),\n logData: \"\"\n };\n },\n mounted: function mounted() {\n this.getLogs();\n },\n methods: {\n getLogs: function getLogs() {\n var _this = this;\n\n this.$api.info.systemLogs().then(function (res) {\n _this.logData = res.data.data;\n });\n },\n onInput: function onInput(e) {\n if (e == \"terminal\") {\n this.$refs.terminal.active(true);\n this.$refs.logs.active(false);\n } else {\n this.$refs.terminal.active(false);\n this.$refs.logs.active(true);\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/logsAndTerminal/TerminalPanel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/settings/PortPanel.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/settings/PortPanel.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_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\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: \"port-panel\",\n data: function data() {\n return {\n timer: 0,\n isLoading: false,\n confirmation: \"\",\n message: \"\",\n notificationShow: false,\n port: this.initPort,\n errorType: \"is-success\",\n errors: \"\"\n };\n },\n props: {\n initPort: {\n type: String,\n default: \"0\"\n }\n },\n methods: {\n savePort: function savePort() {\n var _this = this;\n\n this.isLoading = true;\n this.$api.info.saveSystemPort({\n port: this.port\n }).then(function (res) {\n if (res.data.success == 200) {\n _this.errorType = \"is-success\";\n _this.errors = \"\";\n\n _this.$api.info.killSystem();\n\n _this.checkUpdate();\n } else {\n _this.isLoading = false;\n _this.errorType = \"is-danger\";\n _this.errors = res.data.message;\n }\n });\n },\n checkUpdate: function checkUpdate() {\n var _this2 = this;\n\n this.timer = setInterval(function () {\n var checkUrl = false ? undefined : \"http://\".concat(document.domain, \":\").concat(_this2.port);\n\n _this2.$api.info.checkUiPort(checkUrl + '/v1/sys/port').then(function (res) {\n if (res.data.success == 200) {\n clearInterval(_this2.timer);\n var url = false ? undefined : \"http://\".concat(document.domain, \":\").concat(res.data.data);\n window.open(url, '_self');\n }\n });\n }, 1000);\n }\n },\n destroyed: function destroyed() {\n clearInterval(this.timer);\n }\n});\n\n//# sourceURL=webpack:///./src/components/settings/PortPanel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/smartHome/SmartBlock.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/smartHome/SmartBlock.vue?vue&type=script&lang=js& ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (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//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"smart-block\",\n methods: {\n goToDiscord: function goToDiscord() {\n this.$buefy.dialog.confirm({\n title: ' ',\n message: this.$t('Have an idea? Shoot it on Discord!'),\n hasIcon: true,\n icon: 'discord',\n confirmText: this.$t('Go'),\n cancelText: this.$t('Cancel'),\n onConfirm: function onConfirm() {\n window.open('https://discord.gg/Gx4BCEtHjx', '_blank');\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/smartHome/SmartBlock.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/syncthing/SyncBlock.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/syncthing/SyncBlock.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_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ \"./node_modules/core-js/modules/es.array.includes.js\");\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ \"./node_modules/core-js/modules/es.string.includes.js\");\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__ = __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_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _syncthing_SyncPanel_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../syncthing/SyncPanel.vue */ \"./src/components/syncthing/SyncPanel.vue\");\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_forEach__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lodash_pull__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash/pull */ \"./node_modules/lodash/pull.js\");\n/* harmony import */ var lodash_pull__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_pull__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_10__ = __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//\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: \"sync-block\",\n components: {},\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_10__[\"mixin\"]],\n data: function data() {\n return {\n isLoading: false,\n timeGap: 3,\n state: 1,\n timer: 0,\n connection: {},\n total: {},\n devices: [],\n totalDevice: 0,\n activeDevice: 0,\n folders: 0,\n activeFolders: [],\n syncState: \"Synchronized\",\n upSpeed: 0,\n downSpeed: 0,\n myID: \"\",\n totalSize: 0,\n syncXhr: Object,\n syncBaseURL: \"\"\n };\n },\n created: function created() {\n this.syncBaseURL = false ? undefined : \"\".concat(document.location.protocol, \"//\").concat(document.location.hostname, \":\").concat(this.$store.state.syncthingPort);\n this.syncXhr = axios__WEBPACK_IMPORTED_MODULE_9___default.a.create({\n baseURL: this.syncBaseURL\n });\n this.syncXhr.defaults.headers.common['X-API-Key'] = this.$store.state.syncthingKey;\n },\n computed: {\n syncIcon: function syncIcon() {\n return this.syncState == \"Synchronized\" ? \"check-circle\" : \"sync\";\n },\n spinner: function spinner() {\n return this.syncState == \"Synchronized\" ? \"\" : \"spinner\";\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n if (this.$store.state.syncthingKey.length != 32) {\n return false;\n } // Get Events\n\n\n this.syncXhr.get(\"/rest/events?limit=1\").then(function (res) {\n var lastEvent = res.data[0];\n\n _this2.getFolderCompletion(res);\n\n _this2.getEvents(lastEvent.id);\n });\n this.init();\n this.timer = setInterval(function () {\n _this2.init();\n }, this.timeGap * 1000);\n },\n destroyed: function destroyed() {\n clearInterval(this.timer);\n },\n watch: {\n total: function total(newValue, oldValue) {\n if (oldValue.outBytesTotal !== undefined) {\n this.upSpeed = (newValue.outBytesTotal - oldValue.outBytesTotal) / this.timeGap;\n this.downSpeed = (newValue.inBytesTotal - oldValue.inBytesTotal) / this.timeGap;\n }\n }\n },\n methods: {\n init: function init() {\n if (this.$store.state.syncthingKey.length == 32) {\n this.getStatus();\n this.getConnections();\n this.getConfigs();\n this.getTotalSize();\n }\n },\n openSyncPanel: function openSyncPanel() {\n var _this3 = this;\n\n this.$buefy.modal.open({\n parent: this,\n component: _syncthing_SyncPanel_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n hasModalCard: true,\n customClass: 'sync-panel',\n trapFocus: true,\n canCancel: ['escape'],\n scroll: \"keep\",\n animation: \"zoom-in\",\n events: {\n 'updateConfig': function updateConfig() {\n _this3.init(true);\n }\n }\n });\n },\n //Events Long polling \n getEvents: function getEvents(id) {\n var _this4 = this;\n\n var _this = this;\n\n this.syncXhr.get(\"/rest/events?since=\".concat(id), {\n timeout: 60000\n }).then(function (response) {\n _this4.getFolderCompletion(response);\n\n id = Number(response.data[0].id) + 1;\n\n _this.getEvents(id);\n }).catch(function (error) {\n if (error.message.includes('timeout') || error.message.includes('Cannot')) {\n _this.getEvents(id);\n }\n });\n },\n getFolderCompletion: function getFolderCompletion(response) {\n var _this5 = this;\n\n response.data.forEach(function (eventData) {\n if (eventData.type == \"FolderSummary\") {\n if (eventData.data.summary.state == \"syncing\") {\n _this5.syncState = \"Synchronizing\";\n lodash_pull__WEBPACK_IMPORTED_MODULE_8___default()(_this5.activeFolders, eventData.data.folder);\n } else if (eventData.data.summary.state == \"idle\") {\n _this5.syncState = \"Synchronized\";\n\n if (_this5.activeFolders.indexOf(eventData.data.folder) == -1) {\n _this5.activeFolders.push(eventData.data.folder);\n }\n }\n } // if (eventData.type == \"FolderCompletion\") {\n // console.log(eventData.data);\n // }\n\n });\n },\n getStatus: function getStatus() {\n var _this6 = this;\n\n this.syncXhr.get(\"/rest/system/status\").then(function (res) {\n // console.log('status', res.data);\n _this6.myID = res.data.myID;\n });\n },\n getTotalSize: function getTotalSize() {\n var _this7 = this;\n\n this.syncXhr.get(\"/rest/db/completion?device=\".concat(this.myID)).then(function (res) {\n _this7.totalSize = res.data.globalBytes;\n });\n },\n getConnections: function getConnections() {\n var _this8 = this;\n\n this.syncXhr.get(\"/rest/system/connections\").then(function (res) {\n _this8.total = res.data.total; //console.log(\"connection\", res.data);\n\n _this8.totalDevice = 0;\n _this8.activeDevice = 0;\n lodash_forEach__WEBPACK_IMPORTED_MODULE_7___default()(res.data.connections, function (value, key) {\n if (key != _this8.myID) {\n _this8.totalDevice++;\n }\n\n if (key != _this8.myID && value.connected) {\n _this8.activeDevice++;\n }\n });\n });\n },\n getConfigs: function getConfigs() {\n var _this9 = this;\n\n this.syncXhr.get(\"/rest/config\").then(function (res) {\n _this9.state = res.data.devices.length > 1 ? 2 : 1;\n _this9.devices = res.data.devices.map(function (item) {\n item.fullData = _this9.connection[item.deviceID];\n return item;\n });\n _this9.activeFolders = res.data.folders.map(function (item) {\n return item.id;\n });\n _this9.folders = res.data.folders.length;\n });\n },\n gotoAdvancedPanel: function gotoAdvancedPanel() {\n window.open(this.syncBaseURL, \"_blank\");\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/syncthing/SyncBlock.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/syncthing/SyncPanel.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/syncthing/SyncPanel.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_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_4__ = __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_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var ua_parser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ua-parser-js */ \"./node_modules/ua-parser-js/src/ua-parser.js\");\n/* harmony import */ var ua_parser_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(ua_parser_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lottie_web_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lottie-web-vue */ \"./node_modules/lottie-web-vue/dist/lottie-web-vue.esm.js\");\n/* harmony import */ var vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_7__ = __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_7___default = /*#__PURE__*/__webpack_require__.n(vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_8__);\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//\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//\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//\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\nvar SYNCTHING_GOOGLEPLAY_URL = \"https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid\";\nvar SYNCTHING_APK_URL = \"https://f-droid.org/repo/com.nutomic.syncthingandroid_4286.apk\";\nvar SYNCTRAY_GITURL = \"https://api.github.com/repos/canton7/SyncTrayzor/releases/latest\";\nvar SYNCTRAY_GIT_RELEASE_URL = \"https://github.com/canton7/SyncTrayzor/releases/download/\";\nvar SYNCTHING_MAC_GITURL = \"https://api.github.com/repos/syncthing/syncthing-macos/releases/latest\";\nvar SYNCTHING_MAC_GIT_RELEASE_URL = \"https://github.com/syncthing/syncthing-macos/releases/download/\";\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"sync-panel\",\n components: {\n LottieAnimation: lottie_web_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n mixins: [vue_smooth_reflow__WEBPACK_IMPORTED_MODULE_7___default.a],\n data: function data() {\n return {\n isLoading: true,\n isGettingUrl: false,\n showMore: false,\n step: 1,\n broswerUA: {},\n icon: \"casa\",\n platform: \"casa\",\n osName: \"\",\n helpTitle: 'How to get Device ID',\n //helpTitle: 'Next actions on your device',\n syncthingDownloadUrl: \"\",\n syncthingMacDlUrl: \"\",\n syncthingWindows64DlUrl: \"\",\n syncthingWindows32DlUrl: \"\",\n syncthingAndroidDlUrl: \"\",\n syncthingAndroidDlUrl1: \"\",\n //Submit new device\n deviceId: \"\",\n syncConfig: {},\n isSubmiting: false,\n isSubmited: false,\n isValId: false,\n syncXhr: Object,\n syncBaseURL: \"\"\n };\n },\n created: function created() {\n this.syncBaseURL = false ? undefined : \"\".concat(document.location.protocol, \"//\").concat(document.location.hostname, \":\").concat(this.$store.state.syncthingPort);\n this.syncXhr = axios__WEBPACK_IMPORTED_MODULE_8___default.a.create({\n baseURL: this.syncBaseURL\n });\n this.syncXhr.defaults.headers.common['X-API-Key'] = this.$store.state.syncthingKey;\n var parser = new ua_parser_js__WEBPACK_IMPORTED_MODULE_5___default.a();\n this.broswerUA = parser.getResult();\n this.getOSIcon(); // axios.get(SYNCTHING_GITURL)\n // .then(({ data }) => {\n // this.isLoading = false;\n // const tagName = data.tag_name;\n // this.getOS(tagName)\n // this.syncthingMacDlUrl = `${SYNCTHING_GIT_RELEASE_URL}${tagName}/syncthing-macos-universal-${tagName}.zip`\n // this.syncthingWindows64DlUrl = `${SYNCTHING_GIT_RELEASE_URL}${tagName}/syncthing-windows-amd64-${tagName}.zip`\n // this.syncthingWindows32DlUrl = `${SYNCTHING_GIT_RELEASE_URL}${tagName}/syncthing-windows-386-${tagName}.zip`\n // this.syncthingAndroidDlUrl = SYNCTHING_GOOGLEPLAY_URL\n // this.syncthingAndroidDlUrl1 = SYNCTHING_APK_URL\n // })\n // .catch((error) => {\n // throw error\n // })\n // .finally(() => {\n // })\n },\n mounted: function mounted() {\n this.$smoothReflow({\n el: '.modal-card',\n property: ['height', 'width'],\n transition: 'height .25s ease, width .75s ease-out'\n });\n },\n methods: {\n getOSIcon: function getOSIcon() {\n switch (this.broswerUA.os.name) {\n case \"Mac OS\":\n this.platform = this.icon = \"macos\";\n this.osName = \"macOS\";\n break;\n\n case \"Windows\":\n this.platform = this.icon = \"windows\";\n this.osName = \"Windows\";\n break;\n\n case \"Android\":\n this.platform = this.icon = \"android\";\n this.osName = \"Android\";\n break;\n\n case \"iOS\":\n this.platform = this.icon = \"syncthing\";\n this.osName = \"iOS\";\n this.showMore = true;\n break;\n\n default:\n this.platform = this.icon = \"linux\";\n this.osName = \"Linux\";\n break;\n }\n },\n getDownloadUrl: function getDownloadUrl(os) {\n var _this = this;\n\n var arch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n this.isGettingUrl = true;\n\n switch (os) {\n case \"macOS\":\n axios__WEBPACK_IMPORTED_MODULE_8___default.a.get(SYNCTHING_MAC_GITURL).then(function (_ref) {\n var data = _ref.data;\n var tagName = data.tag_name;\n var tagNameDl = tagName.replace('v', \"\");\n var url = \"\".concat(SYNCTHING_MAC_GIT_RELEASE_URL).concat(tagName, \"/Syncthing-\").concat(tagNameDl, \".dmg\");\n\n _this.downloadSyncthing(url);\n });\n break;\n\n case \"Windows\":\n axios__WEBPACK_IMPORTED_MODULE_8___default.a.get(SYNCTRAY_GITURL).then(function (_ref2) {\n var data = _ref2.data;\n var tagName = data.tag_name;\n var url = arch == \"\" ? \"\".concat(SYNCTRAY_GIT_RELEASE_URL).concat(tagName, \"/SyncTrayzorSetup-x64.exe\") : \"\".concat(SYNCTRAY_GIT_RELEASE_URL).concat(tagName, \"/SyncTrayzorSetup-\").concat(arch, \".exe\");\n\n _this.downloadSyncthing(url);\n });\n break;\n\n case \"Android\":\n if (arch == \"google\") {\n this.downloadSyncthing(SYNCTHING_GOOGLEPLAY_URL);\n } else if (arch == \"apk\") {\n this.downloadSyncthing(SYNCTHING_APK_URL);\n } else {\n this.downloadSyncthing(SYNCTHING_GOOGLEPLAY_URL);\n }\n\n break;\n }\n },\n // getOS(tagName) {\n // switch (this.broswerUA.os.name) {\n // case \"Mac OS\":\n // this.syncthingDownloadUrl = `${SYNCTHING_GIT_RELEASE_URL}${tagName}/syncthing-${this.platform}-${this.getArchitecture()}-${tagName}.zip`\n // break;\n // case \"Windows\":\n // this.syncthingDownloadUrl = `${SYNCTHING_GIT_RELEASE_URL}${tagName}/syncthing-${this.platform}-${this.getArchitecture()}-${tagName}.zip`\n // break;\n // case \"Android\":\n // this.syncthingAndroidDlUrl = SYNCTHING_GOOGLEPLAY_URL\n // this.syncthingAndroidDlUrl1 = SYNCTHING_APK_URL\n // break;\n // case \"iOS\":\n // this.syncthingDownloadUrl = ``\n // break;\n // default:\n // this.syncthingDownloadUrl = `${SYNCTHING_GIT_RELEASE_URL}${tagName}/syncthing-${this.platform}-${this.getArchitecture()}-${tagName}.tar.gz`\n // break;\n // }\n // },\n getArchitecture: function getArchitecture() {\n var arch = \"\";\n\n if (this.broswerUA.cpu.architecture == undefined) {\n arch = \"universal\";\n } else {\n arch = this.broswerUA.cpu.architecture;\n }\n\n return arch;\n },\n downloadSyncthing: function downloadSyncthing(url) {\n var isSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var target = isSelf ? \"_self\" : \"_blank\";\n console.log(url);\n\n if (url == SYNCTHING_GOOGLEPLAY_URL) {\n target = \"_blank\";\n }\n\n this.isGettingUrl = false;\n window.open(url, target);\n },\n showMorePlatform: function showMorePlatform() {\n this.icon = \"syncthing\";\n this.showMore = true;\n },\n checkDeviceId: function checkDeviceId() {\n var _this2 = this;\n\n this.syncXhr.get(\"/rest/svc/deviceid?id=\".concat(this.deviceId)).then(function (res) {\n if (res.data.id) {\n _this2.isValId = true;\n } else {\n _this2.isValId = false;\n }\n });\n },\n submitNewDevice: function submitNewDevice() {\n var _this3 = this;\n\n this.isSubmiting = true;\n this.syncXhr.get(\"/rest/config\").then(function (res) {\n _this3.syncConfig = res.data;\n\n var newDevice = _this3.genNewDevice(_this3.deviceId);\n\n _this3.syncConfig.devices.push(newDevice);\n\n _this3.syncConfig.folders = _this3.createShareFolder(_this3.syncConfig.folders);\n\n _this3.syncXhr.put(\"/rest/config\", _this3.syncConfig).then(function (res) {\n _this3.isSubmiting = false;\n\n if (res.status == 200) {\n _this3.isSubmited = true;\n _this3.helpTitle = \"What do I need to do on my device?\";\n }\n });\n });\n },\n // Create Share folder for new device\n createShareFolder: function createShareFolder(folders) {\n var _this4 = this;\n\n return folders.map(function (folder) {\n if (folder.id == \"default\") {\n folder.devices.push({\n deviceID: _this4.deviceId\n });\n }\n\n return folder;\n });\n },\n // Generate new Device with deviceId\n genNewDevice: function genNewDevice(deviceId) {\n return {\n deviceID: deviceId,\n addresses: [\"dynamic\"],\n compression: \"metadata\",\n certName: \"\",\n introducer: false,\n skipIntroductionRemovals: false,\n introducedBy: \"\",\n paused: false,\n allowedNetworks: [],\n autoAcceptFolders: false,\n maxSendKbps: 0,\n maxRecvKbps: 0,\n ignoredFolders: [],\n maxRequestKiB: 0,\n untrusted: false,\n remoteGUIPort: 0\n };\n },\n nextStep: function nextStep() {\n this.step++;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/syncthing/SyncPanel.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/widgets/Settings.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/widgets/Settings.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_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__ = __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_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_find__WEBPACK_IMPORTED_MODULE_5__);\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\nvar widgetsComponents = __webpack_require__(\"./src/widgets sync .vue$\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"settings\",\n data: function data() {\n return {\n apps: [],\n settingsData: []\n };\n },\n model: {\n prop: 'widgetsSettings',\n event: 'change'\n },\n props: {\n widgetsSettings: Array\n },\n computed: {\n position: function position() {\n var tempSettingArray = this.settingsData.filter(function (item) {\n return item.show;\n });\n return tempSettingArray.length > 0 ? \"is-top-left\" : \"is-bottom-left\";\n }\n },\n created: function created() {\n var _this = this;\n\n this.settingsData = JSON.parse(JSON.stringify(this.widgetsSettings));\n widgetsComponents.keys().forEach(function (fileName) {\n var componentConfig = widgetsComponents(fileName);\n\n _this.apps.push({\n app: componentConfig\n });\n });\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.onRezise);\n },\n methods: {\n getIcon: function getIcon(value) {\n var obj = lodash_find__WEBPACK_IMPORTED_MODULE_5___default()(this.apps, function (o) {\n return o.app.default.name === value;\n });\n return obj.app.default.icon;\n },\n getTitle: function getTitle(value) {\n var obj = lodash_find__WEBPACK_IMPORTED_MODULE_5___default()(this.apps, function (o) {\n return o.app.default.name === value;\n });\n return obj.app.default.title;\n },\n handleInput: function handleInput() {\n this.$emit('change', this.settingsData);\n },\n onRezise: function onRezise() {// let container = document.querySelector(\".scroll-area\")\n //console.log(container.offsetHeight);\n }\n },\n destroyed: function destroyed() {\n window.addEventListener('resize', this.onRezise);\n }\n});\n\n//# sourceURL=webpack:///./src/components/widgets/Settings.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Home.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/views/Home.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_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_SearchBar_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/SearchBar.vue */ \"./src/components/SearchBar.vue\");\n/* harmony import */ var _components_SideBar_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/SideBar.vue */ \"./src/components/SideBar.vue\");\n/* harmony import */ var _components_TopBar_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/TopBar.vue */ \"./src/components/TopBar.vue\");\n/* harmony import */ var _components_CoreService_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/CoreService.vue */ \"./src/components/CoreService.vue\");\n/* harmony import */ var _components_Apps_AppSection_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Apps/AppSection.vue */ \"./src/components/Apps/AppSection.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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import Suggestion from '@/components/Suggestion.vue'\n\n\n\n //import Shortcuts from '@/components/Shortcuts.vue'\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"home-page\",\n components: {\n SideBar: _components_SideBar_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n SearchBar: _components_SearchBar_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n // Suggestion,\n AppSection: _components_Apps_AppSection_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n TopBar: _components_TopBar_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n CoreService: _components_CoreService_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"] //Shortcuts \n\n },\n data: function data() {\n return {\n isLoading: true,\n hardwareInfoLoading: true,\n timer: 0,\n timeGap: 3,\n topBarAni: {\n classes: 'fadeInDown',\n duration: 800\n },\n wsUrl: false ? undefined : \"ws://\".concat(document.location.host, \"/v1/notify/ws?token=\").concat(this.$store.state.token)\n };\n },\n computed: {\n sidebarOpen: function sidebarOpen() {\n return this.$store.state.sidebarOpen;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.isLoading = false;\n\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.getHardwareInfo();\n this.timer = setInterval(function () {\n _this.getHardwareInfo();\n }, 2000);\n window.addEventListener(\"resize\", this.onResize);\n this.onResize();\n this.initWebSocket();\n },\n methods: {\n /**\n * @description: Show SideBar\n * @param {*}\n * @return {*} void\n */\n showSideBar: function showSideBar() {\n console.log(\"showSidebar\");\n },\n\n /**\n * @description: Window Resize Handler\n * @param {*}\n * @return {*} void\n */\n onResize: function onResize() {\n if (window.innerWidth > 480 && this.sidebarOpen) {\n this.$store.commit('closeSideBar');\n }\n },\n\n /**\n * @description: Get Hardware info and save to store\n * @param {*}\n * @return {*} void\n */\n getHardwareInfo: function getHardwareInfo() {\n var _this2 = this;\n\n this.$api.info.allInfo().then(function (res) {\n if (res.data.success === 200) {\n _this2.hardwareInfoLoading = false;\n\n _this2.$store.commit('changeHardwareInfo', res.data.data);\n }\n });\n },\n\n /**\n * @description: Handle applist change from websocket\n * @param {*}\n * @return {*} void\n */\n handleAppListChange: function handleAppListChange() {\n this.$refs.apps.getList();\n },\n\n /**\n * @description: WebSocket group function\n * @param {*}\n * @return {*} void\n */\n initWebSocket: function initWebSocket() {\n //初始化weosocket\n this.websock = new WebSocket(this.wsUrl);\n this.websock.onmessage = this.websocketonmessage;\n this.websock.onopen = this.websocketonopen;\n this.websock.onerror = this.websocketonerror;\n this.websock.onclose = this.websocketclose;\n },\n websocketonopen: function websocketonopen() {\n //连接建立之后执行send方法发送数据\n console.log('connected');\n var sendData = {\n type: \"app\",\n data: \"\"\n };\n this.websocketsend(JSON.stringify(sendData));\n },\n websocketonerror: function websocketonerror() {\n //连接建立失败重连\n this.initWebSocket();\n },\n websocketonmessage: function websocketonmessage(e) {\n var _this3 = this;\n\n //数据接收\n var redata = JSON.parse(e.data);\n redata.forEach(function (item) {\n if (item.message == \"uninstalled\" || item.message == \"installed\") {\n _this3.handleAppListChange();\n }\n });\n },\n websocketsend: function websocketsend(Data) {\n //数据发送\n this.websock.send(Data);\n },\n websocketclose: function websocketclose(e) {\n //关闭\n console.log('断开连接', e);\n }\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener(\"resize\", this.onResize);\n clearInterval(this.timer);\n }\n});\n\n//# sourceURL=webpack:///./src/views/Home.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Clock.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/widgets/Clock.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 dateformat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dateformat */ \"./node_modules/dateformat/lib/dateformat.js\");\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"clock\",\n icon: \"clock-outline\",\n title: \"Time\",\n initShow: true,\n data: function data() {\n return {\n timer: 0,\n timeText: \"\",\n dateText: \"\",\n lang: this.$i18n.locale.replace(\"_\", \"-\")\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.updateClock();\n this.timer = setInterval(function () {\n _this.updateClock();\n }, 1000);\n },\n watch: {\n '$i18n.locale': {\n handler: function handler(data) {\n this.lang = data.replace(\"_\", \"-\");\n },\n deep: true\n }\n },\n methods: {\n updateClock: function updateClock() {\n var today = new Date();\n this.timeText = Object(dateformat__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(today, \"HH:MM\");\n this.dateText = today.toLocaleDateString(this.lang, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/widgets/Clock.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?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/widgets/Cpu.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/widgets/Cpu.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_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\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 cpuCores: 0,\n totalMemory: 0,\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.cpuCores = this.$store.state.hardwareInfo.cpu.num;\n this.totalMemory = this.$store.state.hardwareInfo.mem.total;\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"); - -/***/ }), - -/***/ "./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/widgets/Disks.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/widgets/Disks.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 _components_Storage_StorageManagerPanel_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/Storage/StorageManagerPanel.vue */ \"./src/components/Storage/StorageManagerPanel.vue\");\n/* harmony import */ var _mixins_mixin__WEBPACK_IMPORTED_MODULE_1__ = __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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'disks',\n icon: \"harddisk\",\n title: \"Storage Status\",\n initShow: true,\n mixins: [_mixins_mixin__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"]],\n data: function data() {\n return {\n totalSize: 0,\n totalUsed: 0,\n totalPercent: 0,\n health: \"\",\n usbDisks: []\n };\n },\n mounted: function mounted() {\n this.getDiskInfo(this.$store.state.hardwareInfo.disk);\n this.usbDisks = this.$store.state.hardwareInfo.usb;\n },\n watch: {\n // Watch if Hardware info changes in the store\n '$store.state.hardwareInfo': {\n handler: function handler(data) {\n this.getDiskInfo(data.disk);\n this.usbDisks = data.usb;\n },\n deep: true\n }\n },\n methods: {\n getDiskInfo: function getDiskInfo(diskInfo) {\n this.totalSize = diskInfo.size;\n this.totalUsed = diskInfo.used;\n this.totalPercent = 100 - Math.floor(diskInfo.avail * 100 / this.totalSize);\n this.health = diskInfo.health;\n },\n showDiskManagement: function showDiskManagement() {\n this.$buefy.modal.open({\n parent: this,\n component: _components_Storage_StorageManagerPanel_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n hasModalCard: true,\n customClass: 'storage-modal',\n trapFocus: true,\n canCancel: [],\n scroll: \"keep\",\n animation: \"zoom-in\"\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/widgets/Disks.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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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 = true\n }\n }\n },\n [\n _c(\n \"div\",\n { staticClass: \"action-btn\" },\n [\n _c(\n \"b-dropdown\",\n {\n ref: \"dro\",\n staticClass: \"app-card-drop\",\n attrs: {\n \"aria-role\": \"list\",\n triggers: [\"contextmenu\", \"click\"],\n position: \"is-bottom-left\",\n animation: \"fade1\",\n \"mobile-modal\": false,\n \"append-to-body\": \"\"\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 }\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 staticClass: \"mb-1\",\n attrs: {\n type: \"is-text\",\n loading: _vm.isUninstalling,\n expanded: \"\"\n },\n on: { click: _vm.uninstallConfirm }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Uninstall\")) + \" \")]\n ),\n _c(\"div\", { staticClass: \"gap\" }, [\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(\n \"b-button\",\n {\n attrs: {\n type: \"is-text\",\n expanded: \"\",\n loading: _vm.isRestarting\n },\n on: { click: _vm.restartApp }\n },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: \"sync\",\n \"custom-size\": \"mdi-18px\"\n }\n })\n ],\n 1\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(\n \"b-button\",\n {\n class: _vm.item.state,\n attrs: {\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 _c(\"b-icon\", {\n attrs: {\n icon: \"power-standby\",\n \"custom-size\": \"mdi-18px\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ]\n )\n ])\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"blur-background\" }),\n _c(\n \"div\",\n { staticClass: \"cards-content\" },\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/app/default.png */ \"./src/assets/img/app/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 ]\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:%22600b7a36-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\":\"600b7a36-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/AppSection.vue?vue&type=template&id=cf73c23e&": -/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/AppSection.vue?vue&type=template&id=cf73c23e& ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 _c(\"file-entry-card\"),\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(\"div\", { staticClass: \"blur-background\" }),\n _c(\"div\", { staticClass: \"cards-content\" }, [\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/app/add_button.svg */ \"./src/assets/img/app/add_button.svg\")\n }\n })\n ],\n 1\n )\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/AppSection.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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/Panel.vue?vue&type=template&id=46e56a92&": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/Panel.vue?vue&type=template&id=46e56a92& ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/app/default.png */ \"./src/assets/img/app/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/app/swiper_placeholder.png */ \"./src/assets/img/app/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/app/swiper_placeholder.png */ \"./src/assets/img/app/swiper_placeholder.png\"),\n placeholder: __webpack_require__(/*! @/assets/img/app/swiper_placeholder.png */ \"./src/assets/img/app/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/app/default.png */ \"./src/assets/img/app/default.png\"),\n placeholder: __webpack_require__(/*! @/assets/img/app/default.png */ \"./src/assets/img/app/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/app/default.png */ \"./src/assets/img/app/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 \" \" +\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/app/default.png */ \"./src/assets/img/app/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(\"commands-input\", {\n attrs: {\n label: _vm.$t(\"Container Command\"),\n message: _vm.$t(\n \"No commands now, click “+” to add one.\"\n )\n },\n model: {\n value: _vm.initData.cmd,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"cmd\", $$v)\n },\n expression: \"initData.cmd\"\n }\n }),\n _c(\n \"b-field\",\n { attrs: { label: _vm.$t(\"Privileged\") } },\n [\n _c(\"b-switch\", {\n model: {\n value: _vm.initData.privileged,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"privileged\", $$v)\n },\n expression: \"initData.privileged\"\n }\n })\n ],\n 1\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 {\n attrs: {\n label: _vm.$t(\"Container Capabilities (cap-add)\")\n }\n },\n [\n _c(\"b-taginput\", {\n ref: \"taginput\",\n attrs: {\n data: _vm.capArray,\n autocomplete: \"\",\n \"allow-new\": false,\n \"open-on-focus\": false\n },\n on: { typing: _vm.getFilteredTags },\n scopedSlots: _vm._u(\n [\n {\n key: \"default\",\n fn: function(props) {\n return [\n _vm._v(\" \" + _vm._s(props.option) + \" \")\n ]\n }\n },\n {\n key: \"empty\",\n fn: function() {\n return [_vm._v(\" There are no items \")]\n },\n proxy: true\n },\n {\n key: \"selected\",\n fn: function(props) {\n return _vm._l(props.tags, function(\n tag,\n index\n ) {\n return _c(\n \"b-tag\",\n {\n key: index,\n attrs: {\n tabstop: false,\n closable: \"\"\n },\n on: {\n close: function($event) {\n return _vm.$refs.taginput.removeTag(\n index,\n $event\n )\n }\n }\n },\n [_vm._v(\" \" + _vm._s(tag) + \" \")]\n )\n })\n }\n }\n ],\n null,\n false,\n 1247547680\n ),\n model: {\n value: _vm.initData.cap_add,\n callback: function($$v) {\n _vm.$set(_vm.initData, \"cap_add\", $$v)\n },\n expression: \"initData.cap_add\"\n }\n })\n ],\n 1\n ),\n _c(\"ValidationProvider\", {\n attrs: { rules: \"rfc1123\", 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(\"Container Hostname\"),\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 value: \"\",\n placeholder: _vm.$t(\n \"Hostname of app container\"\n )\n },\n model: {\n value: _vm.initData.hostname,\n callback: function($$v) {\n _vm.$set(\n _vm.initData,\n \"hostname\",\n $$v\n )\n },\n expression: \"initData.hostname\"\n }\n })\n ],\n 1\n )\n ]\n }\n }\n ],\n null,\n false,\n 2198436637\n )\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/Apps/Panel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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/storage/disk.png */ \"./src/assets/img/storage/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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/storage.png */ \"./src/assets/img/storage/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:%22600b7a36-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\":\"600b7a36-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/StorageManagerPanel.vue?vue&type=template&id=d6c48484&": -/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/StorageManagerPanel.vue?vue&type=template&id=d6c48484& ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/Storage/StorageManagerPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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: \"fade1\" },\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 staticClass: \"picon\",\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/default-avatar.svg */ \"./src/assets/img/account/default-avatar.svg\"),\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: \"fade1\" },\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 [\n _c(\"b-icon\", {\n staticClass: \"picon\",\n class: {\n \"update-icon-dot\": _vm.updateInfo.is_need\n },\n attrs: { icon: \"tune\" }\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(\"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_it\" } }, [\n _vm._v(\"Italiano\")\n ]),\n _c(\"option\", { attrs: { value: \"ru_ru\" } }, [\n _vm._v(\"Русский\")\n ]),\n _c(\"option\", { attrs: { value: \"pl_pl\" } }, [\n _vm._v(\"Polska\")\n ]),\n _c(\"option\", { attrs: { value: \"pt_br\" } }, [\n _vm._v(\"Português (Brasil)\")\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(\n \"b\",\n {\n class: {\n \"update-text-dot\": _vm.updateInfo.is_need\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"Update\")))]\n )\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 : _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 ]\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 [\n _c(\"b-icon\", {\n staticClass: \"picon\",\n attrs: { icon: \"console\" }\n })\n ],\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:%22600b7a36-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\":\"600b7a36-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/account/AccountPanel.vue?vue&type=template&id=25a2f429&": +/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"526b7f72-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":"600b7a36-vue-loader-template"}!./node_modules/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/account/AccountPanel.vue?vue&type=template&id=25a2f429& ***! + !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"526b7f72-vue-loader-template"}!./node_modules/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(\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/account/default-avatar.svg */ \"./src/assets/img/account/default-avatar.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/account/AccountPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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:%22526b7f72-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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\":\"526b7f72-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":"600b7a36-vue-loader-template"}!./node_modules/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":"526b7f72-vue-loader-template"}!./node_modules/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:%22600b7a36-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 scrollbars-light\" },\n _vm._l(_vm.fileList, function(item) {\n return _c(\"list-item\", {\n key: item.path,\n attrs: {\n item: item,\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 {\n attrs: {\n label: \"Create Folder\",\n type: \"is-dark\",\n position: \"is-right\"\n }\n },\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 && _vm.showFile\n ? [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: \"Create File\",\n type: \"is-dark\",\n position: \"is-right\"\n }\n },\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:%22526b7f72-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\":\"600b7a36-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\":\"526b7f72-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":"600b7a36-vue-loader-template"}!./node_modules/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":"526b7f72-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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/filebrowser/FileEntryCard.vue?vue&type=template&id=5fac6c63&": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/FileEntryCard.vue?vue&type=template&id=5fac6c63& ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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-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(\"div\", { staticClass: \"blur-background\" }),\n _c(\"div\", { staticClass: \"cards-content\" }, [\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: { click: _vm.showFilePanel }\n },\n [\n _c(\"b-image\", {\n staticClass: \"is-72x72\",\n attrs: {\n src: __webpack_require__(/*! @/assets/img/filebrowser/folder-open.svg */ \"./src/assets/img/filebrowser/folder-open.svg\")\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"mt-4 one-line\" }, [\n _c(\n \"a\",\n { staticClass: \"one-line\", on: { click: _vm.showFilePanel } },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Files\")) + \" \")]\n )\n ])\n ]\n )\n ])\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/FileEntryCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/FilePanel.vue?vue&type=template&id=5cb5f976&": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/FilePanel.vue?vue&type=template&id=5cb5f976& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 is-flex\" },\n [\n _c(\n \"transition\",\n { attrs: { name: \"c-zoom-in\" } },\n [\n _vm.isShowDetial\n ? _c(_vm.panelType, {\n ref: \"previewPanel\",\n tag: \"component\",\n attrs: { item: _vm.currentItem },\n on: {\n close: function($event) {\n _vm.isShowDetial = false\n }\n }\n })\n : _vm._e()\n ],\n 1\n ),\n [\n _c(\"div\", { staticClass: \"nav-bar\" }, [\n _c(\"h2\", { staticClass: \"title is-4 mb-0 pb-3\" }, [\n _vm._v(_vm._s(_vm.$t(\"Files\")))\n ]),\n _c(\n \"div\",\n { staticClass: \"list-container scrollbars-light pt-0\" },\n [\n _c(\"tree-list\", {\n ref: \"navBar\",\n attrs: { path: _vm.rootPath, autoLoad: true }\n })\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n { staticClass: \"content flex1\" },\n [\n _c(\n \"uploader\",\n {\n ref: \"uploader\",\n staticClass: \"uploader-example\",\n attrs: { options: _vm.options }\n },\n [\n _c(\"uploader-unsupport\"),\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1 is-flex \" }),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\n \"transition\",\n { attrs: { name: \"fade\" } },\n [\n _vm.hasPasteData\n ? _c(\"b-button\", {\n staticClass: \"mr-3\",\n attrs: {\n \"icon-left\": \"content-paste\",\n type: \"is-success\",\n size: \"is-small\",\n label: _vm.$t(\"Paste\"),\n rounded: \"\"\n },\n on: {\n \"~click\": function($event) {\n return _vm.paste.apply(null, arguments)\n }\n }\n })\n : _vm._e()\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"action-btn\" },\n [\n _c(\n \"b-dropdown\",\n {\n ref: \"moreBtn\",\n staticClass: \"file-dropdown\",\n attrs: {\n \"aria-role\": \"list\",\n triggers: [\"click\", \"context\"],\n position: \"is-bottom-left\",\n animation: \"fade1\",\n \"mobile-modal\": false,\n \"append-to-body\": \"\",\n \"close-on-click\": \"\"\n },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"book-arrow-up\",\n size: \"is-small\",\n type: \"is-primary\",\n label: _vm.$t(\"Upload or Create\"),\n rounded: \"\"\n }\n })\n ]\n },\n proxy: true\n }\n ])\n },\n [\n _c(\n \"b-dropdown-item\",\n {\n staticClass:\n \"is-flex is-align-items-center\",\n attrs: {\n id: \"upfile-btn\",\n \"aria-role\": \"menuitem\"\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"file-upload-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" + _vm._s(_vm.$t(\"Upload Files\")) + \" \"\n )\n ],\n 1\n ),\n _c(\n \"b-dropdown-item\",\n {\n staticClass:\n \"is-flex is-align-items-center\",\n attrs: {\n id: \"upfolder-btn\",\n \"aria-role\": \"menuitem\"\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"folder-upload-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"Upload Folder\")) +\n \" \"\n )\n ],\n 1\n ),\n _c(\"hr\", { staticClass: \"dropdown-divider\" }),\n _c(\n \"b-dropdown-item\",\n {\n staticClass:\n \"is-flex is-align-items-center\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.showNewFileModal }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"file-plus-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" + _vm._s(_vm.$t(\"New File\")) + \" \"\n )\n ],\n 1\n ),\n _c(\n \"b-dropdown-item\",\n {\n staticClass:\n \"is-flex is-align-items-center\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.showNewFolderModal }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"folder-plus-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\n \" \" + _vm._s(_vm.$t(\"New Folder\")) + \" \"\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\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 ],\n 1\n )\n ]),\n _c(\"div\", { staticClass: \"tool-bar is-flex\" }, [\n _c(\n \"div\",\n {\n staticClass: \"breadcrumb-container flex1\",\n attrs: { id: \"bread-container\" }\n },\n [_c(\"file-breadcrumb\")],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"view-btns is-flex-shrink-0\" },\n [\n _c(\n \"b-tooltip\",\n {\n attrs: {\n label: _vm.$t(\"Change View\"),\n position: \"is-left\",\n type: \"is-dark\"\n }\n },\n [\n _c(\n \"p\",\n {\n staticClass: \"is-clickable\",\n attrs: { role: \"button\" },\n on: { click: _vm.changeView }\n },\n [_c(\"b-icon\", { attrs: { icon: _vm.viewIcon } })],\n 1\n )\n ]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n { attrs: { id: \"dropTarget\" } },\n [\n _vm.isDragIn\n ? _c(\n \"div\",\n {\n staticClass:\n \"drag-mask is-flex is-align-items-flex-end is-flex-direction-row\"\n },\n [\n _c(\"div\", { staticClass: \"mb-6\" }, [\n _c(\n \"div\",\n { staticClass: \"upload-icon\" },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: \"arrow-up\",\n size: \"is-medium\",\n type: \"is-white\"\n }\n })\n ],\n 1\n ),\n _c(\"p\", { staticClass: \"has-text-primary\" }, [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"Upload to\")) +\n \" \" +\n _vm._s(_vm.currentPathName) +\n \" \"\n )\n ])\n ])\n ]\n )\n : _vm._e(),\n _c(\n _vm.listView,\n {\n tag: \"component\",\n attrs: { isLoading: _vm.isLoading },\n on: {\n showDetailModal: _vm.showDetailModal,\n gotoFolder: _vm.getFileList,\n reload: _vm.reload\n },\n model: {\n value: _vm.listData,\n callback: function($$v) {\n _vm.listData = $$v\n },\n expression: \"listData\"\n }\n },\n [\n _c(\"empty-holder\", {\n on: {\n newFolder: _vm.showNewFolderModal,\n newFile: _vm.showNewFileModal\n }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _vm.showUploadList\n ? _c(\n \"div\",\n { staticClass: \"upload-list\" },\n [\n _c(\n \"b-collapse\",\n {\n ref: \"uploadList\",\n staticClass: \"card\",\n attrs: {\n animation: \"slide1\",\n \"aria-id\": \"contentIdForA11y3\"\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"trigger\",\n fn: function(props) {\n return [\n _c(\n \"div\",\n {\n staticClass: \"card-header\",\n attrs: {\n role: \"button\",\n \"aria-controls\":\n \"contentIdForA11y3\",\n \"aria-expanded\": props.open\n }\n },\n [\n _c(\n \"p\",\n {\n staticClass: \"card-header-title\"\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-2\",\n attrs: {\n icon: props.open\n ? \"chevron-down\"\n : \"chevron-up\"\n }\n }),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.$t(\n _vm.uploaderListHeaderText\n )\n ) +\n \" \"\n )\n ],\n 1\n ),\n _c(\n \"a\",\n {\n staticClass: \"card-header-icon\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.closeUploaderList.apply(\n null,\n arguments\n )\n }\n }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"close\" }\n })\n ],\n 1\n )\n ]\n )\n ]\n }\n }\n ],\n null,\n false,\n 2696700549\n )\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"card-content scrollbars-light\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"content\" },\n [_c(\"uploader-list\")],\n 1\n )\n ]\n )\n ]\n )\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n )\n ],\n 1\n )\n ]\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/FilePanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/components/ActionButton.vue?vue&type=template&id=49c47fbe&": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/components/ActionButton.vue?vue&type=template&id=49c47fbe& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"action-btn\" },\n [\n _c(\n \"b-dropdown\",\n {\n ref: \"dropDown\",\n staticClass: \"file-dropdown\",\n attrs: {\n \"aria-role\": \"list\",\n \"append-to-body\": \"\",\n \"close-on-click\": false,\n triggers: [\"click\"],\n id: \"dr-\" + _vm.index,\n position: \"is-\" + _vm.verticalPos + \"-\" + _vm.horizontalPos,\n animation: \"fade1\",\n \"mobile-modal\": false\n },\n on: {\n \"active-change\": function($event) {\n return _vm.dorpActiveChange($event, \"dr-\" + _vm.index)\n }\n },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: \"dots-horizontal\",\n \"custom-size\": \"mdi-18px\",\n id: \"das\"\n }\n })\n ],\n 1\n )\n ]\n },\n proxy: true\n }\n ])\n },\n [\n !_vm.item.is_dir\n ? _c(\n \"b-dropdown-item\",\n {\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.download }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Download\")) + \" \")]\n )\n : _vm._e(),\n _c(\n \"b-dropdown-item\",\n { attrs: { \"aria-role\": \"menuitem\" }, on: { click: _vm.copyPath } },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Copy Path\")) + \" \")]\n ),\n !_vm.item.is_dir\n ? _c(\"hr\", { staticClass: \"dropdown-divider\" })\n : _vm._e(),\n _c(\n \"b-dropdown-item\",\n { attrs: { \"aria-role\": \"menuitem\" }, on: { click: _vm.rename } },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Rename\")) + \" \")]\n ),\n _c(\n \"b-dropdown-item\",\n {\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n return _vm.operate(\"move\")\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Cut\")) + \" \")]\n ),\n _c(\n \"b-dropdown-item\",\n {\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n return _vm.operate(\"copy\")\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Copy\")) + \" \")]\n ),\n _c(\"hr\", { staticClass: \"dropdown-divider\" }),\n !_vm.isConfirmed\n ? _c(\n \"b-dropdown-item\",\n {\n staticClass: \"has-text-danger\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n _vm.isConfirmed = true\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Delete\")) + \" \")]\n )\n : _c(\n \"b-dropdown-item\",\n {\n staticClass: \"has-text-danger\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.deleteItem }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Are you sure?\")) + \" \")]\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/ActionButton.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/components/ContextMenu.vue?vue&type=template&id=c68c0130&": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/components/ContextMenu.vue?vue&type=template&id=c68c0130& ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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\", [\n _c(\n \"div\",\n {\n staticClass: \"action-btn context-menu\",\n style: { top: _vm.y + \"px\", left: _vm.x + \"px\" }\n },\n [\n _c(\n \"b-dropdown\",\n {\n ref: \"dropDown\",\n staticClass: \"file-dropdown\",\n attrs: {\n \"aria-role\": \"list\",\n \"close-on-click\": false,\n id: \"dr1\",\n position: \"is-\" + _vm.verticalPos + \"-\" + _vm.horizontalPos,\n animation: _vm.ani,\n \"mobile-modal\": false\n },\n on: {\n \"active-change\": function($event) {\n return _vm.dorpActiveChange($event, \"dr1\")\n }\n }\n },\n [\n !_vm.showDetial\n ? [\n _c(\n \"b-dropdown-item\",\n {\n key: \"system-context11\",\n staticClass: \"is-flex is-align-items-center\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n _vm.$refs.dropDown.toggle()\n _vm.filePanel.showNewFileModal()\n }\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"file-plus-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"New File\")) + \" \")\n ],\n 1\n ),\n _c(\n \"b-dropdown-item\",\n {\n key: \"system-context1\",\n staticClass: \"is-flex is-align-items-center\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n _vm.$refs.dropDown.toggle()\n _vm.filePanel.showNewFolderModal()\n }\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"folder-plus-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"New Folder\")) + \" \")\n ],\n 1\n ),\n _c(\"hr\", { staticClass: \"dropdown-divider\" }),\n _c(\n \"b-dropdown-item\",\n {\n key: \"system-context2\",\n staticClass: \"is-flex is-align-items-center \",\n attrs: { \"aria-role\": \"menuitem\", id: \"upfileBtn\" },\n on: {\n click: function($event) {\n return _vm.$refs.dropDown.toggle()\n }\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"file-upload-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"Upload Files\")) + \" \")\n ],\n 1\n ),\n _c(\n \"b-dropdown-item\",\n {\n key: \"system-context3\",\n staticClass: \"is-flex is-align-items-center \",\n attrs: { \"aria-role\": \"menuitem\", id: \"upfolderBtn\" },\n on: {\n click: function($event) {\n return _vm.$refs.dropDown.toggle()\n }\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"folder-upload-outline\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"Upload Folder\")) + \" \")\n ],\n 1\n ),\n _vm.hasPasteData\n ? _c(\n \"b-dropdown-item\",\n {\n key: \"system-context4\",\n staticClass: \"is-flex is-align-items-center\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.paste }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: {\n icon: \"content-paste\",\n \"custom-size\": \"mdi-18px\"\n }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"Paste\")) + \" \")\n ],\n 1\n )\n : _vm._e(),\n _c(\"hr\", { staticClass: \"dropdown-divider\" }),\n _c(\n \"b-dropdown-item\",\n {\n key: \"system-context5\",\n staticClass: \"is-flex is-align-items-center\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n _vm.$refs.dropDown.toggle()\n _vm.filePanel.reload()\n }\n }\n },\n [\n _c(\"b-icon\", {\n staticClass: \"mr-1\",\n attrs: { icon: \"refresh\", \"custom-size\": \"mdi-18px\" }\n }),\n _vm._v(\" \" + _vm._s(_vm.$t(\"Refresh\")) + \" \")\n ],\n 1\n )\n ]\n : [\n !_vm.item.is_dir\n ? _c(\n \"b-dropdown-item\",\n {\n key: \"file-context1\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.download }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Download\")) + \" \")]\n )\n : _vm._e(),\n _c(\n \"b-dropdown-item\",\n {\n key: \"file-context2\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.copyPath }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Copy Path\")) + \" \")]\n ),\n !_vm.item.is_dir\n ? _c(\"hr\", { staticClass: \"dropdown-divider\" })\n : _vm._e(),\n _c(\n \"b-dropdown-item\",\n {\n key: \"file-context3\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.rename }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Rename\")) + \" \")]\n ),\n _c(\n \"b-dropdown-item\",\n {\n key: \"file-context4\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n return _vm.operate(\"move\")\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Cut\")) + \" \")]\n ),\n _c(\n \"b-dropdown-item\",\n {\n key: \"file-context5\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n return _vm.operate(\"copy\")\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Copy\")) + \" \")]\n ),\n _c(\"hr\", { staticClass: \"dropdown-divider\" }),\n !_vm.isConfirmed\n ? _c(\n \"b-dropdown-item\",\n {\n staticClass: \"has-text-danger\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n _vm.isConfirmed = true\n }\n }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Delete\")) + \" \")]\n )\n : _c(\n \"b-dropdown-item\",\n {\n staticClass: \"has-text-danger\",\n attrs: { \"aria-role\": \"menuitem\" },\n on: { click: _vm.deleteItem }\n },\n [_vm._v(\" \" + _vm._s(_vm.$t(\"Are you sure?\")) + \" \")]\n )\n ]\n ],\n 2\n )\n ],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/ContextMenu.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/components/EmptyHolder.vue?vue&type=template&id=af5398da&": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/components/EmptyHolder.vue?vue&type=template&id=af5398da& ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"has-text-centered\" }, [\n _c(\"h5\", { staticClass: \"title is-65\" }, [\n _vm._v(_vm._s(_vm.$t(\"Drop your files here to upload\")))\n ]),\n _c(\"p\", { staticClass: \"is-size-7\" }, [_vm._v(_vm._s(_vm.$t(\"or\")))]),\n _c(\"ul\", { staticClass: \"is-flex upload-btns\" }, [\n _c(\n \"li\",\n {\n staticClass: \"e-btn\",\n on: {\n click: function($event) {\n return _vm.$emit(\"newFile\")\n }\n }\n },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.$t(\"New File\")))]),\n _c(\"b-image\", {\n attrs: { src: __webpack_require__(/*! @/assets/img/filebrowser/newFile.svg */ \"./src/assets/img/filebrowser/newFile.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n {\n staticClass: \"e-btn\",\n on: {\n click: function($event) {\n return _vm.$emit(\"newFolder\")\n }\n }\n },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.$t(\"New Folder\")))]),\n _c(\"b-image\", {\n attrs: { src: __webpack_require__(/*! @/assets/img/filebrowser/newFolder.svg */ \"./src/assets/img/filebrowser/newFolder.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n { staticClass: \"e-btn\", attrs: { id: \"eUpFileBtn\" } },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.$t(\"Upload Files\")))]),\n _c(\"b-image\", {\n attrs: { src: __webpack_require__(/*! @/assets/img/filebrowser/upfile.svg */ \"./src/assets/img/filebrowser/upfile.svg\") }\n })\n ],\n 1\n ),\n _c(\n \"li\",\n { staticClass: \"e-btn\", attrs: { id: \"eUpFolderBtn\" } },\n [\n _c(\"span\", [_vm._v(_vm._s(_vm.$t(\"Upload Folder\")))]),\n _c(\"b-image\", {\n attrs: { src: __webpack_require__(/*! @/assets/img/filebrowser/upfolder.svg */ \"./src/assets/img/filebrowser/upfolder.svg\") }\n })\n ],\n 1\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/EmptyHolder.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/components/FileBreadcrumb.vue?vue&type=template&id=cbe9db56&": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/components/FileBreadcrumb.vue?vue&type=template&id=cbe9db56& ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 _c(\n \"b-breadcrumb\",\n { attrs: { size: \"is-medium\" } },\n _vm._l(_vm.pathCollection, function(item, index) {\n return _c(\n \"b-breadcrumb-item\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: item.show || item == _vm.activeHide,\n expression: \"item.show || item == activeHide\"\n }\n ],\n key: item + index,\n attrs: { active: _vm.checkActive(index) },\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.open(item)\n }\n }\n },\n [\n item == _vm.activeHide\n ? [\n _c(\n \"b-dropdown\",\n {\n ref: \"breadDrop\",\n refInFor: true,\n staticClass: \"file-dropdown\",\n attrs: {\n \"aria-role\": \"list\",\n \"append-to-body\": \"\",\n triggers: [\"\"],\n animation: \"fade1\",\n \"mobile-modal\": false\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"trigger\",\n fn: function() {\n return [\n _c(\n \"p\",\n { attrs: { role: \"button\" } },\n [\n _c(\"b-icon\", {\n attrs: {\n icon: \"dots-horizontal\",\n \"custom-size\": \"mdi-18px\",\n id: \"das\"\n }\n })\n ],\n 1\n )\n ]\n },\n proxy: true\n }\n ],\n null,\n true\n )\n },\n _vm._l(_vm.hideItems, function(sitem, index) {\n return _c(\n \"b-dropdown-item\",\n {\n key: \"ff\" + index,\n attrs: { \"aria-role\": \"menuitem\" },\n on: {\n click: function($event) {\n return _vm.subOpen(sitem)\n }\n }\n },\n [_vm._v(\" \" + _vm._s(sitem.name) + \" \")]\n )\n }),\n 1\n )\n ]\n : [_vm._v(\" \" + _vm._s(item.name) + \" \")]\n ],\n 2\n )\n }),\n 1\n ),\n _c(\n \"b-breadcrumb\",\n {\n staticClass: \"shadow\",\n attrs: { size: \"is-medium\", id: \"shadowBread\" }\n },\n _vm._l(_vm.pathCollection, function(item, index) {\n return _c(\"b-breadcrumb-item\", { key: \"fake\" + item + index }, [\n _vm._v(\" \" + _vm._s(item.name) + \" \")\n ])\n }),\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/FileBreadcrumb.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/components/GirdView.vue?vue&type=template&id=c9d666e2&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/components/GirdView.vue?vue&type=template&id=c9d666e2& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"scroll-container scrollbars-light is-relative\",\n on: {\n contextmenu: function($event) {\n $event.preventDefault()\n return _vm.openContextMenu.apply(null, arguments)\n }\n }\n },\n [\n _vm.listData.length == 0 && !_vm.isLoading\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center empty-container\"\n },\n [_vm._t(\"default\")],\n 2\n )\n : _vm._e(),\n _c(\"div\", { staticClass: \"content-components\" }, [\n _c(\n \"div\",\n { staticClass: \"card-container\", attrs: { id: \"card-container\" } },\n _vm._l(_vm.listData, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"list-\" + index + item.name,\n staticClass: \"grid-card rdata\",\n style: _vm.colStyle,\n attrs: { \"data-rel\": index }\n },\n [\n _c(\"div\", { staticClass: \"file-card\" }, [\n _c(\"div\", { staticClass: \"file-card-item\" }, [\n _c(\"div\", { staticClass: \"node-card-container\" }, [\n _c(\n \"div\",\n { staticClass: \"outer-wrapper\" },\n [\n _c(\"action-button\", {\n attrs: { cols: _vm.cols, index: index, item: item },\n on: {\n showDetailModal: function($event) {\n return _vm.$emit(\"showDetailModal\", item)\n },\n reload: function($event) {\n return _vm.$emit(\"reload\")\n }\n }\n }),\n _c(\n \"div\",\n {\n staticClass: \"node-card is-unselectable\",\n class: { isCutting: _vm.getCardState(item) },\n on: {\n click: function($event) {\n return _vm.clickItem($event, item)\n },\n contextmenu: function($event) {\n $event.preventDefault()\n return _vm.openContextMenu($event, item)\n }\n }\n },\n [\n _c(\"div\", { staticClass: \"cover\" }, [\n _c(\n \"div\",\n { class: _vm._f(\"coverType\")(item) },\n [\n _c(\"img\", {\n class: _vm._f(\"iconType\")(item),\n attrs: {\n alt: \"folder\",\n src: _vm.getIconFile(item)\n }\n })\n ]\n ),\n item.is_dir && item.type == \"application\"\n ? _c(\n \"div\",\n { staticClass: \"friendly-name\" },\n [_vm._v(_vm._s(item.label))]\n )\n : _vm._e()\n ]),\n _c(\"div\", { staticClass: \"info\" }, [\n _c(\"p\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(item.name))\n ]),\n _c(\"p\", { staticClass: \"desc\" }, [\n _vm._v(_vm._s(_vm._f(\"dateFmt\")(item.date)))\n ])\n ])\n ]\n )\n ],\n 1\n )\n ])\n ])\n ])\n ]\n )\n }),\n 0\n )\n ]),\n _c(\"context-menu\", {\n ref: \"ctxMenu\",\n on: {\n reload: function($event) {\n return _vm.$emit(\"reload\")\n }\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/GirdView.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/components/ListView.vue?vue&type=template&id=0bc52ece&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/components/ListView.vue?vue&type=template&id=0bc52ece& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"node-list\" }, [\n _c(\"div\", { staticClass: \"table-thead\" }, [\n _vm.listData.length > 0\n ? _c(\"div\", { staticClass: \"tr-wrapper\" }, [\n _c(\"div\", { staticClass: \"tr\" }, [\n _c(\"div\", { staticClass: \"th\" }, [\n _vm._v(_vm._s(_vm.$t(\"Name\")))\n ]),\n _c(\"div\", { staticClass: \"th\" }, [\n _vm._v(_vm._s(_vm.$t(\"Date Modified\")))\n ]),\n _c(\"div\", { staticClass: \"th\" }, [_vm._v(_vm._s(_vm.$t(\"Size\")))])\n ])\n ])\n : _vm._e()\n ]),\n _c(\n \"div\",\n { staticClass: \"tbody\" },\n [\n _c(\n \"div\",\n {\n staticClass: \"scroll-container scrollbars-light is-relative\",\n on: {\n contextmenu: function($event) {\n $event.preventDefault()\n return _vm.openContextMenu.apply(null, arguments)\n }\n }\n },\n [\n _vm.listData.length == 0 && !_vm.isLoading\n ? _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center is-justify-content-center empty-container\"\n },\n [_vm._t(\"default\")],\n 2\n )\n : _vm._e(),\n _vm._l(_vm.listData, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"list-\" + index + item.name,\n staticClass: \"tr-wrapper rdata\",\n attrs: { \"data-rel\": index }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"tr is-unselectable\",\n class: { isCutting: _vm.getCardState(item) },\n on: {\n \"!click\": function($event) {\n return _vm.clickItem($event, item)\n },\n contextmenu: function($event) {\n $event.preventDefault()\n return _vm.openContextMenu($event, item)\n }\n }\n },\n [\n _c(\"div\", { staticClass: \"td\" }, [\n _c(\"div\", { staticClass: \"cover\" }, [\n _c(\"div\", { class: _vm._f(\"coverType\")(item) }, [\n _c(\"img\", {\n class: _vm._f(\"iconType\")(item),\n attrs: {\n alt: \"folder\",\n src: _vm.getIconFile(item)\n }\n })\n ])\n ]),\n _c(\n \"p\",\n { staticClass: \"text\" },\n [\n _vm._v(\" \" + _vm._s(item.name) + \" \"),\n item.is_dir && item.type == \"application\"\n ? _c(\n \"b-tag\",\n { attrs: { type: \"is-primary is-light\" } },\n [_vm._v(_vm._s(item.label) + \" \")]\n )\n : _vm._e()\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"action-wrapper\" },\n [\n _c(\"action-button\", {\n attrs: {\n cols: _vm.cols,\n index: index,\n item: item\n },\n on: {\n showDetailModal: function($event) {\n return _vm.$emit(\"showDetailModal\", item)\n },\n reload: function($event) {\n return _vm.$emit(\"reload\")\n }\n }\n })\n ],\n 1\n )\n ]),\n _c(\"div\", { staticClass: \"td\" }, [\n _vm._v(_vm._s(_vm._f(\"dateFmt\")(item.date)))\n ]),\n !item.is_dir\n ? _c(\"div\", { staticClass: \"td\" }, [\n _vm._v(_vm._s(_vm._f(\"renderSize\")(item.size)))\n ])\n : _c(\"div\", { staticClass: \"td\" })\n ]\n )\n ]\n )\n })\n ],\n 2\n ),\n _c(\"context-menu\", {\n ref: \"ctxMenu\",\n on: {\n reload: function($event) {\n return _vm.$emit(\"reload\")\n }\n }\n })\n ],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/components/ListView.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/modals/DetailModal.vue?vue&type=template&id=6b3ef366&": -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/modals/DetailModal.vue?vue&type=template&id=6b3ef366& ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 is-flex \" }),\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(\n \"section\",\n {\n staticClass:\n \"modal-card-body is-flex is-justify-content-center is-align-items-center\"\n },\n [\n _c(\"div\", { staticClass: \"node-card \" }, [\n _c(\"div\", { staticClass: \"cover is-unselectable\" }, [\n _c(\"div\", { class: _vm._f(\"coverType\")(_vm.item) }, [\n _c(\"img\", {\n class: _vm._f(\"iconType\")(_vm.item),\n attrs: { alt: \"folder\", src: _vm.getIconFile(_vm.item) }\n })\n ])\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"info mt-3 is-flex is-flex-direction-column is-justify-content-center\"\n },\n [\n _c(\"p\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.item.name))\n ]),\n _c(\n \"div\",\n { staticClass: \"buttons is-justify-content-center\" },\n [\n _c(\n \"b-button\",\n {\n attrs: { type: \"is-primary\" },\n on: { click: _vm.download }\n },\n [\n _vm._v(\n _vm._s(_vm.$t(\"Download\")) +\n \" \" +\n _vm._s(_vm._f(\"renderSize\")(_vm.item.size))\n )\n ]\n )\n ],\n 1\n )\n ]\n )\n ])\n ]\n ),\n _c(\"footer\", {\n staticClass: \"modal-card-foot is-flex is-align-items-center \"\n })\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/DetailModal.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/modals/NewFileModal.vue?vue&type=template&id=f46e0992&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/modals/NewFileModal.vue?vue&type=template&id=f46e0992& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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(\"New File\")))\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(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\n \"div\",\n { staticClass: \"node-card\" },\n [\n _c(\"div\", { staticClass: \"cover\" }, [\n _c(\"div\", { staticClass: \"folder-cover\" }, [\n _c(\"img\", {\n staticClass: \"folder-icon\",\n attrs: {\n alt: \"folder\",\n src: __webpack_require__(/*! @/assets/img/filebrowser/text-x-generic.svg */ \"./src/assets/img/filebrowser/text-x-generic.svg\")\n }\n })\n ])\n ]),\n _c(\n \"b-field\",\n {\n staticClass: \"mb-3 mt-5 has-text-light\",\n attrs: { type: _vm.errorType, message: _vm.errors, expanded: \"\" }\n },\n [\n _c(\"b-input\", {\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.createFolder.apply(null, arguments)\n },\n input: function($event) {\n _vm.fileName = _vm.fileName.replace(/\\//g, \"\")\n }\n },\n model: {\n value: _vm.fileName,\n callback: function($$v) {\n _vm.fileName = $$v\n },\n expression: \"fileName\"\n }\n })\n ],\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 expaned: \"\"\n },\n on: { click: _vm.createFolder }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/NewFileModal.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/modals/NewFolderModal.vue?vue&type=template&id=58981905&": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/modals/NewFolderModal.vue?vue&type=template&id=58981905& ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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(\"New Folder\")))\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(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\n \"div\",\n { staticClass: \"node-card\" },\n [\n _c(\"div\", { staticClass: \"cover\" }, [\n _c(\"div\", { staticClass: \"folder-cover\" }, [\n _c(\"img\", {\n staticClass: \"folder-icon\",\n attrs: {\n alt: \"folder\",\n src: __webpack_require__(/*! @/assets/img/filebrowser/folder-default.svg */ \"./src/assets/img/filebrowser/folder-default.svg\")\n }\n })\n ])\n ]),\n _c(\n \"b-field\",\n {\n staticClass: \"mb-3 mt-5 has-text-light\",\n attrs: { type: _vm.errorType, message: _vm.errors, expanded: \"\" }\n },\n [\n _c(\"b-input\", {\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.createFolder.apply(null, arguments)\n },\n input: function($event) {\n _vm.folderName = _vm.folderName.replace(/\\//g, \"\")\n }\n },\n model: {\n value: _vm.folderName,\n callback: function($$v) {\n _vm.folderName = $$v\n },\n expression: \"folderName\"\n }\n })\n ],\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 expaned: \"\"\n },\n on: { click: _vm.createFolder }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/NewFolderModal.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/modals/RenameModal.vue?vue&type=template&id=63bd4f19&": -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/modals/RenameModal.vue?vue&type=template&id=63bd4f19& ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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(\"Rename\")))\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(\"section\", { staticClass: \"modal-card-body \" }, [\n _c(\n \"div\",\n { staticClass: \"node-card\" },\n [\n _c(\"div\", { staticClass: \"cover\" }, [\n _c(\"div\", { class: _vm._f(\"coverType\")(_vm.item) }, [\n _c(\"img\", {\n class: _vm._f(\"iconType\")(_vm.item),\n attrs: { alt: \"folder\", src: _vm.getIconFile(_vm.item) }\n })\n ])\n ]),\n _c(\n \"b-field\",\n {\n staticClass: \"mb-3 mt-5 has-text-light\",\n attrs: { type: _vm.errorType, message: _vm.errors, expanded: \"\" }\n },\n [\n _c(\"b-input\", {\n ref: \"rinput\",\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.saveNewName.apply(null, arguments)\n },\n input: function($event) {\n _vm.fileName = _vm.fileName.replace(/\\//g, \"\")\n }\n },\n model: {\n value: _vm.fileName,\n callback: function($$v) {\n _vm.fileName = $$v\n },\n expression: \"fileName\"\n }\n })\n ],\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 expaned: \"\"\n },\n on: { click: _vm.saveNewName }\n })\n ],\n 1\n )\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/modals/RenameModal.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/sidebar/TreeList.vue?vue&type=template&id=17f8613c&": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/sidebar/TreeList.vue?vue&type=template&id=17f8613c& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 \"ul\",\n [\n _c(\"li\", [\n _c(\n \"div\",\n {\n staticClass: \"is-flex list-item\",\n class: { active: _vm.isHome() },\n on: { click: _vm.open }\n },\n [\n _c(\"div\", { staticClass: \"cover mr-2 is-flex-shrink-0\" }, [\n _c(\"div\", { class: _vm._f(\"coverType\")(_vm.homeItem) }, [\n _c(\"img\", {\n class: _vm._f(\"iconType\")(_vm.homeItem),\n attrs: { alt: \"folder\", src: _vm.getIconFile(_vm.homeItem) }\n })\n ])\n ]),\n _c(\"span\", [_vm._v(_vm._s(_vm.homeItem.name))])\n ]\n )\n ]),\n _vm._l(_vm.dirListData, function(item, index) {\n return _c(\"tree-list-item\", {\n key: item.name + index,\n attrs: { item: item, level: _vm.level }\n })\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/sidebar/TreeList.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/btn.vue?vue&type=template&id=8bcb673e&": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/btn.vue?vue&type=template&id=8bcb673e& ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 \"label\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.support,\n expression: \"support\"\n }\n ],\n ref: \"btn\",\n staticClass: \"uploader-btn\"\n },\n [_vm._t(\"default\")],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/btn.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/drop.vue?vue&type=template&id=1749538c&": -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/drop.vue?vue&type=template&id=1749538c& ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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.support,\n expression: \"support\"\n }\n ],\n ref: \"drop\",\n staticClass: \"uploader-drop\",\n class: _vm.dropClass\n },\n [_vm._t(\"default\")],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/drop.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/file.vue?vue&type=template&id=3b67e372&": -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/file.vue?vue&type=template&id=3b67e372& ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"uploader-file\", attrs: { status: _vm.status } },\n [\n _vm._t(\n \"default\",\n function() {\n return [\n _c(\"div\", { staticClass: \"task is-flex\" }, [\n _vm.status != \"success\"\n ? _c(\"div\", {\n staticClass: \"task-progress normal task-progress\",\n class: _vm.progressingClass,\n style: _vm.progressStyle\n })\n : _vm._e(),\n _c(\"div\", { staticClass: \"task-info\" }, [\n _c(\"div\", { staticClass: \"cover\" }, [\n _c(\"div\", { staticClass: \"folder-cover\" }, [\n _c(\"img\", {\n staticClass: \"folder-icon\",\n attrs: { alt: \"folder\", src: _vm.getIconFile(_vm.file) }\n })\n ])\n ]),\n _c(\"div\", { staticClass: \"task-info-wrapper\" }, [\n _c(\"span\", { staticClass: \"task-file-name\" }, [\n _vm._v(_vm._s(_vm.file.name))\n ]),\n _c(\"div\", { staticClass: \"task-desc-wrapper\" }, [\n _vm.status != \"success\"\n ? _c(\"span\", { staticClass: \"task-desc\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"renderSize\")(_vm.size * _vm.progress)\n ) +\n \"/\" +\n _vm._s(_vm.formatedSize)\n )\n ])\n : _c(\"span\", { staticClass: \"task-desc\" }, [\n _vm._v(_vm._s(_vm.formatedSize))\n ]),\n _c(\"span\", { staticClass: \"task-dot\" }),\n _c(\"span\", { staticClass: \"task-desc\" }, [\n _vm._v(\" \" + _vm._s(_vm.$t(_vm.statusText)) + \" \")\n ])\n ])\n ])\n ]),\n _c(\"div\", { staticClass: \"action\" }, [\n _vm.status != \"success\"\n ? _c(\n \"span\",\n {\n staticClass: \"action-icon icon\",\n attrs: { \"data-role\": \"icon\" },\n on: { click: _vm.remove }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"close\", size: \"is-small\" }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.status == \"error\"\n ? _c(\n \"span\",\n {\n staticClass: \"action-icon icon\",\n attrs: { \"data-role\": \"icon\" },\n on: { click: _vm.retry }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"replay\", size: \"is-small\" }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.status == \"paused\"\n ? _c(\n \"span\",\n {\n staticClass: \"action-icon icon\",\n attrs: { \"data-role\": \"icon\" },\n on: { click: _vm.resume }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"play\", size: \"is-small\" }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm.status == \"uploading\"\n ? _c(\n \"span\",\n {\n staticClass: \"action-icon icon\",\n attrs: { \"data-role\": \"icon\" },\n on: { click: _vm.pause }\n },\n [\n _c(\"b-icon\", {\n attrs: { icon: \"pause\", size: \"is-small\" }\n })\n ],\n 1\n )\n : _vm._e()\n ])\n ])\n ]\n },\n {\n file: _vm.file,\n list: _vm.list,\n status: _vm.status,\n paused: _vm.paused,\n error: _vm.error,\n response: _vm.response,\n averageSpeed: _vm.averageSpeed,\n formatedAverageSpeed: _vm.formatedAverageSpeed,\n currentSpeed: _vm.currentSpeed,\n isComplete: _vm.isComplete,\n isUploading: _vm.isUploading,\n size: _vm.size,\n formatedSize: _vm.formatedSize,\n uploadedSize: _vm.uploadedSize,\n progress: _vm.progress,\n progressStyle: _vm.progressStyle,\n progressingClass: _vm.progressingClass,\n timeRemaining: _vm.timeRemaining,\n formatedTimeRemaining: _vm.formatedTimeRemaining,\n type: _vm.type,\n extension: _vm.extension,\n fileCategory: _vm.fileCategory\n }\n )\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/file.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/files.vue?vue&type=template&id=6ae15bbc&": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/files.vue?vue&type=template&id=6ae15bbc& ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"uploader-files\" },\n [\n _vm._t(\n \"default\",\n function() {\n return [\n _c(\n \"ul\",\n _vm._l(_vm.files, function(file) {\n return _c(\n \"li\",\n { key: file.id },\n [_c(\"uploader-file\", { attrs: { file: file } })],\n 1\n )\n }),\n 0\n )\n ]\n },\n { files: _vm.files }\n )\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/files.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/list.vue?vue&type=template&id=5e586869&": -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/list.vue?vue&type=template&id=5e586869& ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"uploader-list\" },\n [\n _vm._t(\n \"default\",\n function() {\n return [\n _c(\n \"ul\",\n _vm._l(_vm.fileList, function(file) {\n return _c(\n \"li\",\n { key: file.id },\n [_c(\"uploader-file\", { attrs: { file: file, list: true } })],\n 1\n )\n }),\n 0\n )\n ]\n },\n { fileList: _vm.fileList }\n )\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/list.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/unsupport.vue?vue&type=template&id=2ad2de5b&": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/unsupport.vue?vue&type=template&id=2ad2de5b& ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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.support,\n expression: \"!support\"\n }\n ],\n staticClass: \"uploader-unsupport\"\n },\n [\n _vm._t(\"default\", function() {\n return [_vm._m(0)]\n })\n ],\n 2\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(\"p\", [\n _vm._v(\n \" Your browser, unfortunately, is not supported by Uploader.js. The library requires support for \"\n ),\n _c(\"a\", { attrs: { href: \"http://www.w3.org/TR/FileAPI/\" } }, [\n _vm._v(\"the HTML5 File API\")\n ]),\n _vm._v(\" along with \"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"http://www.w3.org/TR/FileAPI/#normalization-of-params\"\n }\n },\n [_vm._v(\"file slicing\")]\n ),\n _vm._v(\". \")\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/unsupport.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/uploader/components/uploader.vue?vue&type=template&id=5600c68e&": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/uploader/components/uploader.vue?vue&type=template&id=5600c68e& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"uploader\" },\n [\n _vm._t(\n \"default\",\n function() {\n return [\n _c(\"uploader-unsupport\"),\n _c(\n \"uploader-drop\",\n [\n _c(\"p\", [_vm._v(\"Drop files here to upload or\")]),\n _c(\"uploader-btn\", [_vm._v(\"select files\")]),\n _c(\"uploader-btn\", { attrs: { directory: true } }, [\n _vm._v(\"select folder\")\n ])\n ],\n 1\n ),\n _c(\"uploader-list\")\n ]\n },\n { files: _vm.files, fileList: _vm.fileList, started: _vm.started }\n )\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/uploader/components/uploader.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/viewers/CodeEditor.vue?vue&type=template&id=7784315b&": -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/viewers/CodeEditor.vue?vue&type=template&id=7784315b& ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"overlay\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1 is-flex \" }, [\n _c(\"h3\", { staticClass: \"title is-5\" }, [\n _vm._v(_vm._s(_vm.$t(\"Code Editor\")))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"b-button\", {\n staticClass: \"mr-3\",\n attrs: {\n \"icon-left\": \"content-save\",\n type: \"is-dark\",\n size: \"is-small\",\n label: _vm.$t(\"Save\"),\n rounded: \"\"\n },\n on: {\n click: function($event) {\n return _vm.saveFile(false)\n }\n }\n }),\n _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"download\",\n type: \"is-primary\",\n size: \"is-small\",\n label: _vm.$t(\"Download\"),\n rounded: \"\"\n },\n on: { click: _vm.download }\n }),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center modal-close-container close-btn modal-close-container-line\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: { click: _vm.close }\n })\n ]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n { staticClass: \"file-path-bread\" },\n [\n _c(\n \"b-breadcrumb\",\n { attrs: { size: \"is-small\" } },\n _vm._l(_vm.pathArray, function(item, index) {\n return _c(\n \"b-breadcrumb-item\",\n { key: \"f-\" + index, attrs: { active: \"\" } },\n [_vm._v(_vm._s(item))]\n )\n }),\n 1\n )\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-justify-content-center is-align-items-center is-flex-grow-1 v-container code\"\n },\n [\n _c(\"codemirror\", {\n ref: \"cmEditor\",\n attrs: { options: _vm.cmOptions },\n on: { input: _vm.onCmCodeChange, ready: _vm.onCmReady },\n model: {\n value: _vm.code,\n callback: function($$v) {\n _vm.code = $$v\n },\n expression: \"code\"\n }\n })\n ],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/CodeEditor.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/viewers/ImageViewer.vue?vue&type=template&id=5973f308&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/viewers/ImageViewer.vue?vue&type=template&id=5973f308& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"overlay\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1 is-flex \" }, [\n _c(\"h3\", { staticClass: \"title is-5 one-line\" }, [\n _vm._v(_vm._s(_vm.item.name))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"download\",\n type: \"is-primary\",\n size: \"is-small\",\n label: _vm.$t(\"Download\"),\n rounded: \"\"\n },\n on: { click: _vm.download }\n }),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center modal-close-container close-btn modal-close-container-line\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: { click: _vm.close }\n })\n ]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-justify-content-center is-align-items-center is-flex-grow-1 v-container video\"\n },\n [\n _c(\"div\", {\n staticClass: \"image-container\",\n style: { backgroundImage: \"url(\" + _vm.bgUrl + \")\" }\n })\n ]\n ),\n _c(\"div\", { staticClass: \"v-footer is-flex is-justify-content-center\" })\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/ImageViewer.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/viewers/PdfViewer.vue?vue&type=template&id=bd38d1da&": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/viewers/PdfViewer.vue?vue&type=template&id=bd38d1da& ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"overlay\" },\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 _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1 is-flex \" }, [\n _c(\"h3\", { staticClass: \"title is-5 one-line\" }, [\n _vm._v(_vm._s(_vm.item.name))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"download\",\n type: \"is-primary\",\n size: \"is-small\",\n label: _vm.$t(\"Download\"),\n rounded: \"\"\n },\n on: { click: _vm.download }\n }),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center modal-close-container close-btn modal-close-container-line\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: { click: _vm.close }\n })\n ]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-justify-content-center is-align-items-center is-flex-grow-1 v-container video\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"pdf-container scrollbars-light\" },\n _vm._l(_vm.numPages, function(i) {\n return _c(\"pdf\", { key: i, attrs: { src: _vm.src, page: i } })\n }),\n 1\n )\n ]\n ),\n _c(\"div\", { staticClass: \"v-footer is-flex is-justify-content-center\" })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/PdfViewer.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/filebrowser/viewers/VideoPlayer.vue?vue&type=template&id=366472eb&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/filebrowser/viewers/VideoPlayer.vue?vue&type=template&id=366472eb& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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: \"overlay\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"div\", { staticClass: \"flex1 is-flex \" }, [\n _c(\"h3\", { staticClass: \"title is-5 one-line\" }, [\n _vm._v(_vm._s(_vm.item.name))\n ])\n ]),\n _c(\n \"div\",\n { staticClass: \"is-flex is-align-items-center\" },\n [\n _c(\"b-button\", {\n staticClass: \"mr-2\",\n attrs: {\n \"icon-left\": \"download\",\n type: \"is-primary\",\n size: \"is-small\",\n label: _vm.$t(\"Download\"),\n rounded: \"\"\n },\n on: { click: _vm.download }\n }),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-align-items-center modal-close-container close-btn modal-close-container-line\"\n },\n [\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { type: \"button\" },\n on: { click: _vm.close }\n })\n ]\n )\n ],\n 1\n )\n ]),\n _c(\n \"div\",\n {\n staticClass:\n \"is-flex is-justify-content-center is-align-items-center is-flex-grow-1 v-container video\"\n },\n [\n _c(\n \"div\",\n { staticClass: \"video-container\" },\n [\n _vm.isVideo\n ? _c(\"vue-plyr\", { key: \"video-player\" }, [\n _c(\n \"video\",\n {\n attrs: { controls: \"\", crossorigin: \"\", playsinline: \"\" }\n },\n [\n _c(\"source\", {\n attrs: {\n src: _vm.getFileUrl(_vm.item),\n type: \"video/mp4\"\n }\n })\n ]\n )\n ])\n : _vm._e(),\n _vm.isAudio\n ? _c(\"vue-plyr\", { key: \"audio-player\" }, [\n _c(\n \"audio\",\n {\n attrs: { controls: \"\", crossorigin: \"\", playsinline: \"\" }\n },\n [\n _c(\"source\", {\n attrs: {\n src: _vm.getFileUrl(_vm.item),\n type: \"audio/\" + _vm.ext\n }\n })\n ]\n )\n ])\n : _vm._e()\n ],\n 1\n )\n ]\n ),\n _c(\"div\", { staticClass: \"v-footer is-flex is-justify-content-center\" })\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/filebrowser/viewers/VideoPlayer.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/CommandsInput.vue?vue&type=template&id=9eacdd7c&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/CommandsInput.vue?vue&type=template&id=9eacdd7c& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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 _c(\n \"b-field\",\n { attrs: { expanded: \"\" } },\n [\n _c(\"b-input\", {\n attrs: { placeholder: \"Commands\", expanded: \"\" },\n on: { input: _vm.handleInput },\n model: {\n value: _vm.vdata[index],\n callback: function($$v) {\n _vm.$set(_vm.vdata, index, $$v)\n },\n expression: \"vdata[index]\"\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/forms/CommandsInput.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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:%22600b7a36-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\":\"600b7a36-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/logsAndTerminal/LogsCard.vue?vue&type=template&id=436df5fa&": -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/logsAndTerminal/LogsCard.vue?vue&type=template&id=436df5fa& ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/logsAndTerminal/LogsCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/logsAndTerminal/TerminalCard.vue?vue&type=template&id=3d5f2c47&": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/logsAndTerminal/TerminalCard.vue?vue&type=template&id=3d5f2c47& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/logsAndTerminal/TerminalCard.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/logsAndTerminal/TerminalPanel.vue?vue&type=template&id=2764e7dd&": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/logsAndTerminal/TerminalPanel.vue?vue&type=template&id=2764e7dd& ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/logsAndTerminal/TerminalPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/PortPanel.vue?vue&type=template&id=f5c884f2&": -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/PortPanel.vue?vue&type=template&id=f5c884f2& ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/settings/PortPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/smartHome/SmartBlock.vue?vue&type=template&id=3a2ae5ca&": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/smartHome/SmartBlock.vue?vue&type=template&id=3a2ae5ca& ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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(\"div\", { staticClass: \"blur-background\" }),\n _c(\"div\", { staticClass: \"wuji-content\" }, [\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/smart_icon.png */ \"./src/assets/img/smart/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 ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/smartHome/SmartBlock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/syncthing/SyncBlock.vue?vue&type=template&id=129a2c54&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/syncthing/SyncBlock.vue?vue&type=template&id=129a2c54& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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(\"div\", { staticClass: \"blur-background\" }),\n _c(\n \"div\",\n { staticClass: \"wuji-content\" },\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: {\n src: __webpack_require__(/*! @/assets/img/syncthing/sync_icon.png */ \"./src/assets/img/syncthing/sync_icon.png\")\n }\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(\n \"h6\",\n { 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: {\n src: __webpack_require__(/*! @/assets/img/syncthing/device.png */ \"./src/assets/img/syncthing/device.png\")\n }\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: {\n src: __webpack_require__(/*! @/assets/img/syncthing/folder1.png */ \"./src/assets/img/syncthing/folder1.png\")\n }\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 ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/syncthing/SyncBlock.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/syncthing/SyncPanel.vue?vue&type=template&id=6a559bcd&": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/syncthing/SyncPanel.vue?vue&type=template&id=6a559bcd& ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/syncthing sync recursive ^\\\\.\\\\/.*\\\\.svg$\")(\"./\" +\n _vm.icon +\n \".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: {\n src: __webpack_require__(/*! @/assets/img/syncthing/syncthing-logo.svg */ \"./src/assets/img/syncthing/syncthing-logo.svg\")\n }\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/syncthing/SyncPanel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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/widgets/Settings.vue?vue&type=template&id=3baef233&": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"600b7a36-vue-loader-template"}!./node_modules/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/widgets/Settings.vue?vue&type=template&id=3baef233& ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! 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/widgets/Settings.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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(\"app-section\", { ref: \"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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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: \"blur-background\" }),\n _c(\"div\", { staticClass: \"widget-content\" }, [\n _c(\"div\", { staticClass: \"time\" }, [_vm._v(_vm._s(_vm.timeText))]),\n _c(\"div\", { staticClass: \"data\" }, [_vm._v(_vm._s(_vm.dateText))])\n ])\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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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(\"div\", { staticClass: \"widget has-text-white clock\" }, [\n _c(\"div\", { staticClass: \"blur-background\" }),\n _c(\"div\", { staticClass: \"widget-content\" }, [\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\" }, [\n _vm._v(\"CPU \"),\n _c(\"span\", { staticClass: \"is-size-7\" }, [\n _vm._v(\n \"(\" +\n _vm._s(_vm.cpuCores) +\n \" \" +\n _vm._s(_vm.$t(\"Cores\")) +\n \")\"\n )\n ])\n ])\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\" }, [\n _vm._v(\"RAM \"),\n _c(\"span\", { staticClass: \"is-size-7\" }, [\n _vm._v(\n \"(\" + _vm._s(_vm._f(\"renderSize\")(_vm.totalMemory)) + \")\"\n )\n ])\n ])\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/app/default.png */ \"./src/assets/img/app/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/app/default.png */ \"./src/assets/img/app/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:%22600b7a36-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\":\"600b7a36-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":"600b7a36-vue-loader-template"}!./node_modules/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\", [\n _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: \"blur-background\" }),\n _c(\"div\", { staticClass: \"widget-content\" }, [\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: {\n src: __webpack_require__(/*! @/assets/img/storage/storage.png */ \"./src/assets/img/storage/storage.png\")\n }\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(\n \"p\",\n { staticClass: \"has-text-left is-size-7 mt-1 op65\" },\n [\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 ]),\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 ]),\n _vm.usbDisks.length > 0\n ? _c(\"div\", { staticClass: \"widget has-text-white disk is-relative\" }, [\n _c(\"div\", { staticClass: \"blur-background\" }),\n _c(\"div\", { staticClass: \"widget-content\" }, [\n _c(\n \"div\",\n { staticClass: \"columns is-mobile is-multiline pt-2 \" },\n _vm._l(_vm.usbDisks, function(item, index) {\n return _c(\n \"div\",\n {\n key: \"usb_\" + item.name,\n staticClass: \"column is-full pb-1\"\n },\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: {\n src: __webpack_require__(/*! @/assets/img/storage/USB.png */ \"./src/assets/img/storage/USB.png\")\n }\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 [_vm._v(\" \" + _vm._s(item.model))]\n ),\n _c(\n \"p\",\n { staticClass: \"has-text-left is-size-7 mt-1 op65\" },\n [\n item.mount\n ? _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$t(\"Used\")) +\n \": \" +\n _vm._s(_vm.renderSize(item.use))\n )\n ])\n : _c(\"span\", [\n _vm._v(_vm._s(_vm.$t(\"Used\")) + \": N/A\")\n ]),\n _c(\"br\"),\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"Total\")) +\n \": \" +\n _vm._s(_vm.renderSize(item.size)) +\n \" \"\n )\n ]\n )\n ])\n ]),\n item.mount\n ? _c(\"b-progress\", {\n staticClass: \"mt-2\",\n attrs: {\n type: _vm._f(\"getProgressType\")(\n Math.floor((item.use * 100) / item.size)\n ),\n size: \"is-small\",\n value: Math.floor((item.use * 100) / item.size)\n }\n })\n : _c(\"b-progress\", {\n staticClass: \"mt-2\",\n attrs: { type: \"is-dark\", size: \"is-small\", value: 0 }\n })\n ],\n 1\n )\n }),\n 0\n )\n ])\n ])\n : _vm._e()\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:%22600b7a36-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/codemirror/addon/comment/comment.js": -/*!**********************************************************!*\ - !*** ./node_modules/codemirror/addon/comment/comment.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (true) // CommonJS\n mod(__webpack_require__(/*! ../../lib/codemirror */ \"./node_modules/codemirror/lib/codemirror.js\"));\n else {}\n})(function(CodeMirror) {\n \"use strict\";\n\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n\n\n//# sourceURL=webpack:///./node_modules/codemirror/addon/comment/comment.js?"); - -/***/ }), - -/***/ "./node_modules/codemirror/addon/dialog/dialog.css": -/*!*********************************************************!*\ - !*** ./node_modules/codemirror/addon/dialog/dialog.css ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("// style-loader: Adds some css to the DOM by adding a