From 2f5c365e1b53667e38b18b375c530a385fdec9d1 Mon Sep 17 00:00:00 2001 From: likun <906102152@qq.com> Date: Fri, 16 May 2025 17:29:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/apps/game/domain/projects/projects.go | 15 +++++- admin/apps/game/server/middleware.go | 9 +++- admin/apps/user/server/middleware.go | 9 +++- admin/go.mod | 11 +++- admin/go.sum | 25 +++++++-- admin/internal/context/ctx_web.go | 1 + admin/internal/db/db.go | 6 +-- admin/ui/static/index.html | 8 +-- admin/ui/static/static/css/Login-BwJ0jPRV.css | 1 + admin/ui/static/static/css/index-BqsFNddQ.css | 1 + .../static/css/project_cdkey-BX3fYD8x.css | 1 + admin/ui/static/static/css/table-DkjoppVw.css | 1 + .../static/static/css/tableUser-j5jzBTdc.css | 1 + .../ui/static/static/css/vendor-xHoP3d6v.css | 1 + admin/ui/static/static/js/Login-B975OQgj.js | 1 + admin/ui/static/static/js/Login-BTqBsXsM.js | 1 + admin/ui/static/static/js/Login-C9FInl8Y.js | 1 + admin/ui/static/static/js/Login-CRDnIxQc.js | 1 + admin/ui/static/static/js/Login-Dbo2RBLz.js | 1 + admin/ui/static/static/js/Login-aBVdscM7.js | 1 + admin/ui/static/static/js/Login-r3chDXAq.js | 1 + .../ui/static/static/js/character-8yR2ozKp.js | 1 + .../ui/static/static/js/character-BCDTAqW8.js | 1 + .../ui/static/static/js/character-BZKkGKpF.js | 1 + .../ui/static/static/js/character-CD6bmbos.js | 1 + .../ui/static/static/js/character-D6DhvqxG.js | 1 + .../ui/static/static/js/character-VKYAMAwN.js | 1 + .../ui/static/static/js/character-swN-iIB1.js | 1 + admin/ui/static/static/js/empty-BLjNz_S4.js | 1 + admin/ui/static/static/js/empty-BQM6cVex.js | 1 + admin/ui/static/static/js/empty-BmAiqKcE.js | 1 + admin/ui/static/static/js/empty-ByqgDmpQ.js | 1 + admin/ui/static/static/js/empty-DUlJEoCy.js | 1 + admin/ui/static/static/js/empty-HakINKea.js | 1 + admin/ui/static/static/js/empty-cgnE7gMt.js | 1 + admin/ui/static/static/js/index-11Ls_W1J.js | 2 + admin/ui/static/static/js/index-BcvwkEgW.js | 2 + admin/ui/static/static/js/index-Bmi27CUA.js | 2 + admin/ui/static/static/js/index-DNnxH6gt.js | 2 + admin/ui/static/static/js/index-Dmkcc1nA.js | 2 + admin/ui/static/static/js/index-Hfw2Oxe7.js | 2 + admin/ui/static/static/js/index-_U3s28Z1.js | 2 + admin/ui/static/static/js/project-Aqf0v0Sp.js | 1 + admin/ui/static/static/js/project-B8bW-2w3.js | 1 + admin/ui/static/static/js/project-BCNUcmOT.js | 1 + admin/ui/static/static/js/project-BFx6JD-k.js | 1 + admin/ui/static/static/js/project-BMm3LC3E.js | 1 + admin/ui/static/static/js/project-Bz5kg1GJ.js | 1 + admin/ui/static/static/js/project-Cib2JjQ1.js | 1 + .../static/js/project_cdkey-B1ABC0W6.js | 1 + .../static/js/project_cdkey-BtgSH_Ay.js | 1 + .../static/js/project_cdkey-BwJhqetp.js | 1 + .../static/js/project_cdkey-D6JAzrOe.js | 1 + .../static/js/project_cdkey-DR6kRsHm.js | 1 + .../static/js/project_cdkey-Hk5S9zfY.js | 1 + .../static/js/project_cdkey-onN_jYlT.js | 1 + .../static/static/js/project_op-9WBGC7XA.js | 1 + .../static/static/js/project_op-Bg-Bfb8Q.js | 1 + .../static/static/js/project_op-CPWi5hVP.js | 1 + .../static/static/js/project_op-CYaxlHp8.js | 1 + .../static/static/js/project_op-DIdT6pmO.js | 1 + .../static/static/js/project_op-Dbfy-77g.js | 1 + .../static/static/js/project_op-Dxk0ObAk.js | 1 + admin/ui/static/static/js/table-B5qQXuqU.js | 1 + admin/ui/static/static/js/table-BCILMzNz.js | 1 + admin/ui/static/static/js/table-BaxmyU1X.js | 1 + admin/ui/static/static/js/table-BihohNGK.js | 1 + admin/ui/static/static/js/table-CniVnr7H.js | 1 + admin/ui/static/static/js/table-DMdIe8LM.js | 1 + admin/ui/static/static/js/table-RbY74G5O.js | 1 + .../ui/static/static/js/tableUser-CtXR5yv0.js | 1 + .../ui/static/static/js/tableUser-D84UEt6P.js | 1 + .../ui/static/static/js/tableUser-D8cNla95.js | 1 + .../ui/static/static/js/tableUser-DLlNWc2L.js | 1 + .../ui/static/static/js/tableUser-DgauPc3R.js | 1 + .../ui/static/static/js/tableUser-M8raL4T3.js | 1 + .../ui/static/static/js/tableUser-Z3isZOe-.js | 1 + admin/ui/static/static/js/user-6pRgvGrU.js | 1 + admin/ui/static/static/js/user-B2CB8zJG.js | 1 + admin/ui/static/static/js/user-BGzrMALj.js | 1 + admin/ui/static/static/js/user-Dk1aLYV6.js | 1 + admin/ui/static/static/js/user-DwVutDjj.js | 1 + admin/ui/static/static/js/user-DzwBt6iR.js | 1 + admin/ui/static/static/js/user-J5s895Es.js | 1 + admin/ui/static/static/js/vendor-Ckx_Nsz5.js | 52 +++++++++++++++++++ admin/ui/static/static/js/vendor-DM-0sFCW.js | 52 +++++++++++++++++++ admin/ui/static/static/js/welcome-CCwUE5LM.js | 1 + admin/ui/static/static/js/welcome-CNSJWSaQ.js | 1 + admin/ui/static/static/js/welcome-Ct05RGk_.js | 1 + admin/ui/static/static/js/welcome-CusT05GU.js | 1 + admin/ui/static/static/js/welcome-cHy9vX8n.js | 1 + admin/ui/static/static/js/welcome-kWj84nzf.js | 1 + admin/ui/static/static/js/welcome-x8HXajxg.js | 1 + ui/.env.production | 1 + ui/src/api/resource.js | 7 --- ui/src/utils/request.js | 12 +++-- ui/src/views/Home.vue | 4 +- ui/vite.config.js | 4 +- 98 files changed, 276 insertions(+), 30 deletions(-) create mode 100644 admin/ui/static/static/css/Login-BwJ0jPRV.css create mode 100644 admin/ui/static/static/css/index-BqsFNddQ.css create mode 100644 admin/ui/static/static/css/project_cdkey-BX3fYD8x.css create mode 100644 admin/ui/static/static/css/table-DkjoppVw.css create mode 100644 admin/ui/static/static/css/tableUser-j5jzBTdc.css create mode 100644 admin/ui/static/static/css/vendor-xHoP3d6v.css create mode 100644 admin/ui/static/static/js/Login-B975OQgj.js create mode 100644 admin/ui/static/static/js/Login-BTqBsXsM.js create mode 100644 admin/ui/static/static/js/Login-C9FInl8Y.js create mode 100644 admin/ui/static/static/js/Login-CRDnIxQc.js create mode 100644 admin/ui/static/static/js/Login-Dbo2RBLz.js create mode 100644 admin/ui/static/static/js/Login-aBVdscM7.js create mode 100644 admin/ui/static/static/js/Login-r3chDXAq.js create mode 100644 admin/ui/static/static/js/character-8yR2ozKp.js create mode 100644 admin/ui/static/static/js/character-BCDTAqW8.js create mode 100644 admin/ui/static/static/js/character-BZKkGKpF.js create mode 100644 admin/ui/static/static/js/character-CD6bmbos.js create mode 100644 admin/ui/static/static/js/character-D6DhvqxG.js create mode 100644 admin/ui/static/static/js/character-VKYAMAwN.js create mode 100644 admin/ui/static/static/js/character-swN-iIB1.js create mode 100644 admin/ui/static/static/js/empty-BLjNz_S4.js create mode 100644 admin/ui/static/static/js/empty-BQM6cVex.js create mode 100644 admin/ui/static/static/js/empty-BmAiqKcE.js create mode 100644 admin/ui/static/static/js/empty-ByqgDmpQ.js create mode 100644 admin/ui/static/static/js/empty-DUlJEoCy.js create mode 100644 admin/ui/static/static/js/empty-HakINKea.js create mode 100644 admin/ui/static/static/js/empty-cgnE7gMt.js create mode 100644 admin/ui/static/static/js/index-11Ls_W1J.js create mode 100644 admin/ui/static/static/js/index-BcvwkEgW.js create mode 100644 admin/ui/static/static/js/index-Bmi27CUA.js create mode 100644 admin/ui/static/static/js/index-DNnxH6gt.js create mode 100644 admin/ui/static/static/js/index-Dmkcc1nA.js create mode 100644 admin/ui/static/static/js/index-Hfw2Oxe7.js create mode 100644 admin/ui/static/static/js/index-_U3s28Z1.js create mode 100644 admin/ui/static/static/js/project-Aqf0v0Sp.js create mode 100644 admin/ui/static/static/js/project-B8bW-2w3.js create mode 100644 admin/ui/static/static/js/project-BCNUcmOT.js create mode 100644 admin/ui/static/static/js/project-BFx6JD-k.js create mode 100644 admin/ui/static/static/js/project-BMm3LC3E.js create mode 100644 admin/ui/static/static/js/project-Bz5kg1GJ.js create mode 100644 admin/ui/static/static/js/project-Cib2JjQ1.js create mode 100644 admin/ui/static/static/js/project_cdkey-B1ABC0W6.js create mode 100644 admin/ui/static/static/js/project_cdkey-BtgSH_Ay.js create mode 100644 admin/ui/static/static/js/project_cdkey-BwJhqetp.js create mode 100644 admin/ui/static/static/js/project_cdkey-D6JAzrOe.js create mode 100644 admin/ui/static/static/js/project_cdkey-DR6kRsHm.js create mode 100644 admin/ui/static/static/js/project_cdkey-Hk5S9zfY.js create mode 100644 admin/ui/static/static/js/project_cdkey-onN_jYlT.js create mode 100644 admin/ui/static/static/js/project_op-9WBGC7XA.js create mode 100644 admin/ui/static/static/js/project_op-Bg-Bfb8Q.js create mode 100644 admin/ui/static/static/js/project_op-CPWi5hVP.js create mode 100644 admin/ui/static/static/js/project_op-CYaxlHp8.js create mode 100644 admin/ui/static/static/js/project_op-DIdT6pmO.js create mode 100644 admin/ui/static/static/js/project_op-Dbfy-77g.js create mode 100644 admin/ui/static/static/js/project_op-Dxk0ObAk.js create mode 100644 admin/ui/static/static/js/table-B5qQXuqU.js create mode 100644 admin/ui/static/static/js/table-BCILMzNz.js create mode 100644 admin/ui/static/static/js/table-BaxmyU1X.js create mode 100644 admin/ui/static/static/js/table-BihohNGK.js create mode 100644 admin/ui/static/static/js/table-CniVnr7H.js create mode 100644 admin/ui/static/static/js/table-DMdIe8LM.js create mode 100644 admin/ui/static/static/js/table-RbY74G5O.js create mode 100644 admin/ui/static/static/js/tableUser-CtXR5yv0.js create mode 100644 admin/ui/static/static/js/tableUser-D84UEt6P.js create mode 100644 admin/ui/static/static/js/tableUser-D8cNla95.js create mode 100644 admin/ui/static/static/js/tableUser-DLlNWc2L.js create mode 100644 admin/ui/static/static/js/tableUser-DgauPc3R.js create mode 100644 admin/ui/static/static/js/tableUser-M8raL4T3.js create mode 100644 admin/ui/static/static/js/tableUser-Z3isZOe-.js create mode 100644 admin/ui/static/static/js/user-6pRgvGrU.js create mode 100644 admin/ui/static/static/js/user-B2CB8zJG.js create mode 100644 admin/ui/static/static/js/user-BGzrMALj.js create mode 100644 admin/ui/static/static/js/user-Dk1aLYV6.js create mode 100644 admin/ui/static/static/js/user-DwVutDjj.js create mode 100644 admin/ui/static/static/js/user-DzwBt6iR.js create mode 100644 admin/ui/static/static/js/user-J5s895Es.js create mode 100644 admin/ui/static/static/js/vendor-Ckx_Nsz5.js create mode 100644 admin/ui/static/static/js/vendor-DM-0sFCW.js create mode 100644 admin/ui/static/static/js/welcome-CCwUE5LM.js create mode 100644 admin/ui/static/static/js/welcome-CNSJWSaQ.js create mode 100644 admin/ui/static/static/js/welcome-Ct05RGk_.js create mode 100644 admin/ui/static/static/js/welcome-CusT05GU.js create mode 100644 admin/ui/static/static/js/welcome-cHy9vX8n.js create mode 100644 admin/ui/static/static/js/welcome-kWj84nzf.js create mode 100644 admin/ui/static/static/js/welcome-x8HXajxg.js diff --git a/admin/apps/game/domain/projects/projects.go b/admin/apps/game/domain/projects/projects.go index 6d94731..2966f7c 100644 --- a/admin/apps/game/domain/projects/projects.go +++ b/admin/apps/game/domain/projects/projects.go @@ -4,6 +4,7 @@ import ( "admin/apps/game/domain/entity" "admin/apps/game/domain/projects/smdl" "admin/internal/consts" + "admin/internal/model/dto" ) var debugDisableAllHook = false // 调试用,关闭所有项目钩子调用,可以在没有远程游戏api服务器时,调一些gm后台本地的增删改查等逻辑 @@ -40,7 +41,19 @@ func GetProjectResourceHook(project *entity.Project, resource string) any { func GetProjectValueChoicesGetHook(projectId string) IGetAllValueChoicesHook { if debugDisableAllHook { - return nil + return &debugItemsHook{} } return projectsValueChoicesGetHook[projectId] } + +type debugItemsHook struct { +} + +func (items *debugItemsHook) GetItems(projectInfo *entity.Project) ([]*dto.CommonDtoFieldChoice, error) { + return []*dto.CommonDtoFieldChoice{ + {Desc: "大刀", Value: 123}, + {Desc: "小刀", Value: 234}, + {Desc: "长剑", Value: 345}, + {Desc: "法杖", Value: 3456456}, + }, nil +} diff --git a/admin/apps/game/server/middleware.go b/admin/apps/game/server/middleware.go index 08d6d8d..13993fd 100644 --- a/admin/apps/game/server/middleware.go +++ b/admin/apps/game/server/middleware.go @@ -5,11 +5,18 @@ import ( "admin/internal/context" "admin/internal/errcode" "admin/internal/permission" + "admin/lib/xlog" "strings" ) func (srv *Server) CheckToken(ctx *context.WebContext) { - if strings.Contains(ctx.GinCtx().Request.URL.Path, "/login") { + reqPath := ctx.GinCtx().Request.URL.Path + xlog.Tracef("请求路径:%v, 头:%+v", reqPath, ctx.GinCtx().Request.Header) + if strings.Contains(reqPath, "/login") { + return + } + if len(reqPath) > 3 && reqPath[:4] != "/api" { // 用来过滤出非/api请求,前后端部署到一起时,访问静态页面的请求跳过token检查 + ctx.GinCtx().Next() return } diff --git a/admin/apps/user/server/middleware.go b/admin/apps/user/server/middleware.go index 46ff6dd..627846f 100644 --- a/admin/apps/user/server/middleware.go +++ b/admin/apps/user/server/middleware.go @@ -3,11 +3,18 @@ package server import ( "admin/internal/context" "admin/internal/errcode" + "admin/lib/xlog" "strings" ) func (srv *Server) CheckToken(ctx *context.WebContext) { - if strings.Contains(ctx.GinCtx().Request.URL.Path, "/login") { + reqPath := ctx.GinCtx().Request.URL.Path + xlog.Tracef("请求路径:%v, 头:%+v", reqPath, ctx.GinCtx().Request.Header) + if strings.Contains(reqPath, "/login") { + return + } + if len(reqPath) > 3 && reqPath[:4] != "/api" { // 用来过滤出非/api请求,前后端部署到一起时,访问静态页面的请求跳过token检查 + ctx.GinCtx().Next() return } err := ctx.ExtractHeader() diff --git a/admin/go.mod b/admin/go.mod index 5c9f4b2..d4ce43c 100644 --- a/admin/go.mod +++ b/admin/go.mod @@ -5,6 +5,7 @@ go 1.24.2 require ( github.com/gin-contrib/pprof v1.5.3 github.com/gin-gonic/gin v1.10.0 + github.com/glebarez/sqlite v1.11.0 github.com/go-playground/assert/v2 v2.2.0 github.com/go-sql-driver/mysql v1.7.0 github.com/golang-jwt/jwt/v5 v5.2.2 @@ -17,7 +18,6 @@ require ( golang.org/x/tools v0.33.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 - gorm.io/driver/sqlite v1.5.7 gorm.io/gorm v1.25.12 ) @@ -28,12 +28,15 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/dustin/go-humanize v1.0.1 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/gin-contrib/sse v1.0.0 // indirect + github.com/glebarez/go-sqlite v1.21.2 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.26.0 // indirect github.com/goccy/go-json v0.10.5 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -42,7 +45,6 @@ require ( github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-sqlite3 v1.14.28 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -50,6 +52,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect golang.org/x/arch v0.16.0 // indirect @@ -58,4 +61,8 @@ require ( golang.org/x/sys v0.33.0 // indirect golang.org/x/text v0.25.0 // indirect google.golang.org/protobuf v1.36.6 // indirect + modernc.org/libc v1.22.5 // indirect + modernc.org/mathutil v1.5.0 // indirect + modernc.org/memory v1.5.0 // indirect + modernc.org/sqlite v1.23.1 // indirect ) diff --git a/admin/go.sum b/admin/go.sum index ab00b62..dfeefd7 100644 --- a/admin/go.sum +++ b/admin/go.sum @@ -21,6 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/gin-contrib/pprof v1.5.3 h1:Bj5SxJ3kQDVez/s/+f9+meedJIqLS+xlkIVDe/lcvgM= @@ -29,6 +31,10 @@ github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E github.com/gin-contrib/sse v1.0.0/go.mod h1:zNuFdwarAygJBht0NTKiSi3jRf6RbqeILZ9Sp6Slhe0= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo= +github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k= +github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw= +github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -47,6 +53,10 @@ github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVI github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= +github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= @@ -73,8 +83,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A= -github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -97,6 +105,9 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= @@ -149,9 +160,15 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.7 h1:8NvsrhP0ifM7LX9G4zPB97NwovUakUxc+2V2uuf3Z1I= -gorm.io/driver/sqlite v1.5.7/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8= gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= +modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= +modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= +modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= +modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM= +modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/admin/internal/context/ctx_web.go b/admin/internal/context/ctx_web.go index d82763f..74c19df 100644 --- a/admin/internal/context/ctx_web.go +++ b/admin/internal/context/ctx_web.go @@ -37,6 +37,7 @@ func (ctx *WebContext) ExtractHeader() error { if err != nil { return err } + xlog.Debugf("提取请求头:%+v", ctx.GinCtx().Request.Header) ctx.Header = header return nil } diff --git a/admin/internal/db/db.go b/admin/internal/db/db.go index 0597be7..643c57d 100644 --- a/admin/internal/db/db.go +++ b/admin/internal/db/db.go @@ -5,9 +5,9 @@ import ( "admin/internal/global" "admin/lib/xlog" "fmt" + "github.com/glebarez/sqlite" mysqlDriver "github.com/go-sql-driver/mysql" "gorm.io/driver/mysql" - "gorm.io/driver/sqlite" "gorm.io/gorm" "strings" "sync" @@ -46,7 +46,7 @@ func createDBAndGuaranteeMigrate(dbType string, dsnWithoutDb, dsn string, tables var dialector gorm.Dialector switch dbType { case "sqlite": - dialector = sqlite.Open(dbName) + dialector = sqlite.Open(dbName + ".db") case "mysql": dialector = mysql.Open(dsnWithoutDb) default: @@ -61,7 +61,7 @@ func createDBAndGuaranteeMigrate(dbType string, dsnWithoutDb, dsn string, tables switch dbType { case "sqlite": - dialector = sqlite.Open(dbName) + dialector = sqlite.Open(dbName + ".db") case "mysql": dialector = mysql.Open(dsn) default: diff --git a/admin/ui/static/index.html b/admin/ui/static/index.html index 8366317..48a730c 100644 --- a/admin/ui/static/index.html +++ b/admin/ui/static/index.html @@ -5,10 +5,10 @@
d?Z(e,o,r,!0,!1,p):A(t,l,a,o,r,s,i,u,p)},W=(e,t,l,a,o,r,s,i,u)=>{let c=0;const d=t.length;let p=e.length-1,f=d-1;for(;c<=p&&c<=f;){const n=e[c],a=t[c]=u?Ga(t[c]):Ya(t[c]);if(!Ha(n,a))break;g(n,a,l,null,o,r,s,i,u),c++}for(;c<=p&&c<=f;){const n=e[p],a=t[f]=u?Ga(t[f]):Ya(t[f]);if(!Ha(n,a))break;g(n,a,l,null,o,r,s,i,u),p--,f--}if(c>p){if(c<=f){const e=f+1,n=e ((e,t,n)=>{const{items:l,lastVisitedIndex:a}=t;return(a>0?l[a].offset:0)>=n?iI(e,t,0,a,n):uI(e,t,Math.max(0,a),n)})(e,n,t),getStopIndexForStartIndex:(e,t,n,l)=>{const{height:a,total:o,layout:r,width:s}=e,i=eI(r)?s:a,u=sI(e,t,l),c=n+i;let d=u.offset+u.size,p=t;for(;p {const l=fD(e,t,n,"column");return[l.size,l.offset]},getRowPosition:(e,t,n)=>{const l=fD(e,t,n,"row");return[l.size,l.offset]},getColumnOffset:(e,t,n,l,a,o)=>bD(e,t,n,l,a,"column",o),getRowOffset:(e,t,n,l,a,o)=>bD(e,t,n,l,a,"row",o),getColumnStartIndexForOffset:(e,t,n)=>hD(e,n,t,"column"),getColumnStopIndexForStartIndex:(e,t,n,l)=>{const a=fD(e,t,l,"column"),o=n+e.width;let r=a.offset+a.size,s=t;for(;s=t||n<0||d&&e-u>=o}function h(){var e=nd();if(v(e))return m(e);s=setTimeout(h,function(e){var n=t-(e-i);return d?ad(n,o-(e-u)):n}(e))}function m(e){return s=void 0,p&&l?f(e):(l=a=void 0,r)}function g(){var e=nd(),n=v(e);if(l=arguments,a=this,i=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(h,t),c?f(e):r}(i);if(d)return clearTimeout(s),s=setTimeout(h,t),f(i)}return void 0===s&&(s=setTimeout(h,t)),r}return t=Ds(t)||0,Rs(n)&&(c=!!n.leading,o=(d="maxWait"in n)?ld(Ds(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),g.cancel=function(){void 0!==s&&clearTimeout(s),u=0,l=i=a=s=void 0},g.flush=function(){return void 0===s?r:m(nd())},g}function rd(e,t,n){(void 0!==n&&!bi(e[t],n)||void 0===n&&!(t in e))&&yi(e,t,n)}function sd(e){return _s(e)&&Ei(e)}function id(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function ud(e,t,n,l,a,o,r){var s=id(e,n),i=id(t,n),u=r.get(i);if(u)rd(e,n,u);else{var c,d=o?o(s,i,n+"",e,t,r):void 0,p=void 0===d;if(p){var f=Os(i),v=!f&&$i(i),h=!f&&!v&&qi(i);d=i,f||v||h?Os(s)?d=s:sd(s)?d=oi(s):v?(p=!1,d=Pu(i,!0)):h?(p=!1,d=gc(i,!0)):d=[]:Ru(i)||Li(i)?(d=s,Li(s)?d=Ci(c=s,tu(c)):Rs(s)&&!Ps(s)||(d=bc(i))):p=!1}p&&(r.set(i,d),a(d,i,l,o,r),r.delete(i)),rd(e,n,d)}}function cd(e,t,n,l,a){e!==t&&Qc(t,(function(o,r){if(a||(a=new Iu),Rs(o))ud(e,t,r,n,cd,l,a);else{var s=l?l(id(e,r),o,r+"",e,t,a):void 0;void 0===s&&(s=o),rd(e,r,s)}}),tu)}function dd(e,t,n){var l=null==e?0:e.length;if(!l)return-1;var a=l-1;return fi(e,Jc(t),a,!0)}function pd(e,t){var n=-1,l=Ei(e)?Array(e.length):[];return td(e,(function(e,a,o){l[++n]=t(e,a,o)})),l}function fd(e,t){return Mu(function(e,t){return(Os(e)?Es:pd)(e,Jc(t))}(e,t),1)}var vd=1/0;function hd(e){for(var t=-1,n=null==e?0:e.length,l={};++t-1)return new Date(("X"===t?1e3:1)*e);var a=f(t)(e),o=a.year,r=a.month,s=a.day,i=a.hours,u=a.minutes,c=a.seconds,d=a.milliseconds,p=a.zone,v=a.week,h=new Date,m=s||(o||r?1:h.getDate()),g=o||h.getFullYear(),y=0;o&&!r||(y=r>0?r-1:h.getMonth());var b,w=i||0,x=u||0,C=c||0,k=d||0;return p?new Date(Date.UTC(g,y,m,w,x,C,k+60*p.offset*1e3)):n?new Date(Date.UTC(g,y,m,w,x,C,k)):(b=new Date(g,y,m,w,x,C,k),v&&(b=l(b).week(v).toDate()),b)}catch(S){return new Date("")}}(t,s,l,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),c&&t!=this.format(s)&&(this.$d=new Date("")),r={}}else if(s instanceof Array)for(var p=s.length,v=1;v<=p;v+=1){o[1]=s[v-1];var h=n.apply(this,o);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}v===p&&(this.$d=new Date(""))}else a.call(this,e)}}}());const vA=pE(fA);var hA,mA={exports:{}};var gA=hA?mA.exports:(hA=1,mA.exports=function(e,t){var n=t.prototype,l=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return l.bind(this)(e);var a=this.$utils(),o=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return a.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return a.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return a.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return l.bind(this)(o)}});const yA=pE(gA);var bA,wA,xA,CA={exports:{}};const kA=pE(bA?CA.exports:(bA=1,CA.exports=(wA="week",xA="year",function(e,t,n){var l=t.prototype;l.week=function(e){if(void 0===e&&(e=null),null!==e)return this.add(7*(e-this.week()),"day");var t=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var l=n(this).startOf(xA).add(1,xA).date(t),a=n(this).endOf(wA);if(l.isBefore(a))return 1}var o=n(this).startOf(xA).date(t).startOf(wA).subtract(1,"millisecond"),r=this.diff(o,wA,!0);return r<0?n(this).startOf("week").week():Math.ceil(r)},l.weeks=function(e){return void 0===e&&(e=null),this.week(e)}})));var SA,_A={exports:{}};var MA=(SA||(SA=1,_A.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}),_A.exports);const EA=pE(MA);var OA,TA={exports:{}};var AA=(OA||(OA=1,TA.exports=function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")}}),TA.exports);const VA=pE(AA);var BA,zA={exports:{}};var LA=(BA||(BA=1,zA.exports=function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}),zA.exports);const RA=pE(LA);var NA,IA={exports:{}};const $A=pE(NA?IA.exports:(NA=1,IA.exports=function(e,t){t.prototype.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)}})),HA=["hours","minutes","seconds"],DA="HH:mm:ss",FA="YYYY-MM-DD",PA={date:FA,dates:FA,week:"gggg[w]ww",year:"YYYY",years:"YYYY",month:"YYYY-MM",months:"YYYY-MM",datetime:`${FA} ${DA}`,monthrange:"YYYY-MM",yearrange:"YYYY",daterange:FA,datetimerange:`${FA} ${DA}`},jA=qp({disabledHours:{type:Function},disabledMinutes:{type:Function},disabledSeconds:{type:Function}}),KA=qp({visible:Boolean,actualVisible:{type:Boolean,default:void 0},format:{type:String,default:""}}),WA=qp({id:{type:[Array,String]},name:{type:[Array,String]},popperClass:{type:String,default:""},format:String,valueFormat:String,dateFormat:String,timeFormat:String,type:{type:String,default:""},clearable:{type:Boolean,default:!0},clearIcon:{type:[String,Object],default:Bh},editable:{type:Boolean,default:!0},prefixIcon:{type:[String,Object],default:""},size:Yp,readonly:Boolean,disabled:Boolean,placeholder:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},modelValue:{type:[Date,Array,String,Number],default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:[Date,Array]},defaultTime:{type:[Date,Array]},isRange:Boolean,...jA,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean,placement:{type:String,values:AS,default:"bottom"},fallbackPlacements:{type:Array,default:["bottom","top","right","left"]},...Qp,...ek(["ariaLabel"]),showNow:{type:Boolean,default:!0}}),qA=qp({id:{type:Array},name:{type:Array},modelValue:{type:[Array,String]},startPlaceholder:String,endPlaceholder:String});var UA=hf(Hn({...Hn({name:"PickerRangeTrigger",inheritAttrs:!1}),props:qA,emits:["mouseenter","mouseleave","click","touchstart","focus","blur","startInput","endInput","startChange","endChange"],setup(e,{expose:t,emit:n}){const l=ok(),a=fs("date"),o=fs("range"),r=St(),s=St(),{wrapperRef:i,isFocused:u}=gk(r),c=e=>{n("click",e)},d=e=>{n("mouseenter",e)},p=e=>{n("mouseleave",e)},f=e=>{n("mouseenter",e)},v=e=>{n("startInput",e)},h=e=>{n("endInput",e)},m=e=>{n("startChange",e)},g=e=>{n("endChange",e)};return t({focus:()=>{var e;null==(e=r.value)||e.focus()},blur:()=>{var e,t;null==(e=r.value)||e.blur(),null==(t=s.value)||t.blur()}}),(e,t)=>(Ba(),Na("div",{ref_key:"wrapperRef",ref:i,class:j([Ot(a).is("active",Ot(u)),e.$attrs.class]),style:$(e.$attrs.style),onClick:c,onMouseenter:d,onMouseleave:p,onTouchstartPassive:f},[hl(e.$slots,"prefix"),Pa("input",Za(Ot(l),{id:e.id&&e.id[0],ref_key:"inputRef",ref:r,name:e.name&&e.name[0],placeholder:e.startPlaceholder,value:e.modelValue&&e.modelValue[0],class:Ot(o).b("input"),onInput:v,onChange:m}),null,16,["id","name","placeholder","value"]),hl(e.$slots,"range-separator"),Pa("input",Za(Ot(l),{id:e.id&&e.id[1],ref_key:"endInputRef",ref:s,name:e.name&&e.name[1],placeholder:e.endPlaceholder,value:e.modelValue&&e.modelValue[1],class:Ot(o).b("input"),onInput:h,onChange:g}),null,16,["id","name","placeholder","value"]),hl(e.$slots,"suffix")],38))}}),[["__file","picker-range-trigger.vue"]]);const YA=Hn({...Hn({name:"Picker"}),props:WA,emits:[cf,df,"focus","blur","clear","calendar-change","panel-change","visible-change","keydown"],setup(e,{expose:t,emit:n}){const a=e,o=Cl(),{lang:r}=jp(),s=fs("date"),i=fs("input"),u=fs("range"),{form:c,formItem:p}=pk(),f=Pl("ElPopperOptions",{}),{valueOnClear:v}=ef(a,null),h=St(),m=St(),g=St(!1),y=St(!1),b=St(null);let w=!1;const{isFocused:x,handleFocus:C,handleBlur:k}=gk(m,{beforeFocus:()=>a.readonly||L.value,afterFocus(){g.value=!0},beforeBlur(e){var t;return!w&&(null==(t=h.value)?void 0:t.isFocusInsideContent(e))},afterBlur(){ae(),g.value=!1,w=!1,a.validateEvent&&(null==p||p.validate("blur").catch((e=>{})))}}),S=mo((()=>[s.b("editor"),s.bm("editor",a.type),i.e("wrapper"),s.is("disabled",L.value),s.is("active",g.value),u.b("editor"),ee?u.bm("editor",ee.value):"",o.class])),_=mo((()=>[i.e("icon"),u.e("close-icon"),W.value?"":u.e("close-icon--hidden")]));fa(g,(e=>{e?Qt((()=>{e&&(b.value=a.modelValue)})):(le.value=null,Qt((()=>{M(a.modelValue)})))}));const M=(e,t)=>{!t&&CE(e,b.value)||(n(df,e),t&&(b.value=e),a.validateEvent&&(null==p||p.validate("change").catch((e=>{}))))},E=e=>{if(!CE(a.modelValue,e)){let t;d(e)?t=e.map((e=>SE(e,a.valueFormat,r.value))):e&&(t=SE(e,a.valueFormat,r.value)),n(cf,e?t:e,r.value)}},O=mo((()=>m.value?Array.from(m.value.$el.querySelectorAll("input")):[])),T=(e,t,n)=>{const l=O.value;l.length&&(n&&"min"!==n?"max"===n&&(l[1].setSelectionRange(e,t),l[1].focus()):(l[0].setSelectionRange(e,t),l[0].focus()))},A=(e="",t=!1)=>{let n;g.value=t,n=d(e)?e.map((e=>e.toDate())):e?e.toDate():e,le.value=null,E(n)},V=()=>{y.value=!0},B=()=>{n("visible-change",!0)},z=()=>{y.value=!1,g.value=!1,n("visible-change",!1)},L=mo((()=>a.disabled||(null==c?void 0:c.disabled))),R=mo((()=>{let e;if(U.value?ve.value.getDefaultValue&&(e=ve.value.getDefaultValue()):e=d(a.modelValue)?a.modelValue.map((e=>kE(e,a.valueFormat,r.value))):kE(a.modelValue,a.valueFormat,r.value),ve.value.getRangeAvailableTime){const t=ve.value.getRangeAvailableTime(e);gd(t,e)||(e=t,U.value||E(ME(e)))}return d(e)&&e.some((e=>!e))&&(e=[]),e})),N=mo((()=>{if(!ve.value.panelReady)return"";const e=re(R.value);return d(le.value)?[le.value[0]||e&&e[0]||"",le.value[1]||e&&e[1]||""]:null!==le.value?le.value:!H.value&&U.value||!g.value&&U.value?"":e?D.value||F.value||P.value?e.join(", "):e:""})),I=mo((()=>a.type.includes("time"))),H=mo((()=>a.type.startsWith("time"))),D=mo((()=>"dates"===a.type)),F=mo((()=>"months"===a.type)),P=mo((()=>"years"===a.type)),K=mo((()=>a.prefixIcon||(I.value?$h:Pv))),W=St(!1),q=e=>{a.readonly||L.value||(W.value&&(e.stopPropagation(),ve.value.handleClear?ve.value.handleClear():E(v.value),M(v.value,!0),W.value=!1,z()),n("clear"))},U=mo((()=>{const{modelValue:e}=a;return!e||d(e)&&!e.filter(Boolean).length})),Y=async e=>{var t;a.readonly||L.value||("INPUT"!==(null==(t=e.target)?void 0:t.tagName)||x.value)&&(g.value=!0)},G=()=>{a.readonly||L.value||!U.value&&a.clearable&&(W.value=!0)},Z=()=>{W.value=!1},J=e=>{var t;a.readonly||L.value||("INPUT"!==(null==(t=e.touches[0].target)?void 0:t.tagName)||x.value)&&(g.value=!0)},Q=mo((()=>a.type.includes("range"))),ee=hk(),te=mo((()=>{var e,t;return null==(t=null==(e=Ot(h))?void 0:e.popperRef)?void 0:t.contentRef})),ne=dp(m,(e=>{const t=Ot(te),n=rp(m);t&&(e.target===t||e.composedPath().includes(t))||e.target===n||n&&e.composedPath().includes(n)||(g.value=!1)}));el((()=>{null==ne||ne()}));const le=St(null),ae=()=>{if(le.value){const e=oe(N.value);e&&se(e)&&(E(ME(e)),le.value=null)}""===le.value&&(E(v.value),M(v.value,!0),le.value=null)},oe=e=>e?ve.value.parseUserInput(e):null,re=e=>e?ve.value.formatToString(e):null,se=e=>ve.value.isValidValue(e),ie=async e=>{if(a.readonly||L.value)return;const{code:t}=e;if((e=>{n("keydown",e)})(e),t!==vS.esc)if(t===vS.down&&(ve.value.handleFocusPicker&&(e.preventDefault(),e.stopPropagation()),!1===g.value&&(g.value=!0,await Qt()),ve.value.handleFocusPicker))ve.value.handleFocusPicker();else{if(t!==vS.tab)return t===vS.enter||t===vS.numpadEnter?((null===le.value||""===le.value||se(oe(N.value)))&&(ae(),g.value=!1),void e.stopPropagation()):void(le.value?e.stopPropagation():ve.value.handleKeydownInput&&ve.value.handleKeydownInput(e));w=!0}else!0===g.value&&(g.value=!1,e.preventDefault(),e.stopPropagation())},ue=e=>{le.value=e,g.value||(g.value=!0)},ce=e=>{const t=e.target;le.value?le.value=[t.value,le.value[1]]:le.value=[t.value,null]},de=e=>{const t=e.target;le.value?le.value=[le.value[0],t.value]:le.value=[null,t.value]},pe=()=>{var e;const t=le.value,n=oe(t&&t[0]),l=Ot(R);if(n&&n.isValid()){le.value=[re(n),(null==(e=N.value)?void 0:e[1])||null];const t=[n,l&&(l[1]||null)];se(t)&&(E(ME(t)),le.value=null)}},fe=()=>{var e;const t=Ot(le),n=oe(t&&t[1]),l=Ot(R);if(n&&n.isValid()){le.value=[(null==(e=Ot(N))?void 0:e[0])||null,re(n)];const t=[l&&l[0],n];se(t)&&(E(ME(t)),le.value=null)}},ve=St({}),he=e=>{ve.value[e[0]]=e[1],ve.value.panelReady=!0},me=e=>{n("calendar-change",e)},ge=(e,t,l)=>{n("panel-change",e,t,l)};return Fl("EP_PICKER_BASE",{props:a}),t({focus:()=>{var e;null==(e=m.value)||e.focus()},blur:()=>{var e;null==(e=m.value)||e.blur()},handleOpen:()=>{g.value=!0},handleClose:()=>{g.value=!1},onPick:A}),(e,t)=>(Ba(),Ia(Ot(fM),Za({ref_key:"refPopper",ref:h,visible:g.value,effect:"light",pure:"",trigger:"click"},e.$attrs,{role:"dialog",teleported:"",transition:`${Ot(s).namespace.value}-zoom-in-top`,"popper-class":[`${Ot(s).namespace.value}-picker__popper`,e.popperClass],"popper-options":Ot(f),"fallback-placements":e.fallbackPlacements,"gpu-acceleration":!1,placement:e.placement,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:V,onShow:B,onHide:z}),{default:cn((()=>[Ot(Q)?(Ba(),Ia(UA,{key:1,id:e.id,ref_key:"inputRef",ref:m,"model-value":Ot(N),name:e.name,disabled:Ot(L),readonly:!e.editable||e.readonly,"start-placeholder":e.startPlaceholder,"end-placeholder":e.endPlaceholder,class:j(Ot(S)),style:$(e.$attrs.style),"aria-label":e.ariaLabel,tabindex:e.tabindex,autocomplete:"off",role:"combobox",onClick:Y,onFocus:Ot(C),onBlur:Ot(k),onStartInput:ce,onStartChange:pe,onEndInput:de,onEndChange:fe,onMousedown:Y,onMouseenter:G,onMouseleave:Z,onTouchstartPassive:J,onKeydown:ie},{prefix:cn((()=>[Ot(K)?(Ba(),Ia(Ot($f),{key:0,class:j([Ot(i).e("icon"),Ot(u).e("icon")])},{default:cn((()=>[(Ba(),Ia(ul(Ot(K))))])),_:1},8,["class"])):Ua("v-if",!0)])),"range-separator":cn((()=>[hl(e.$slots,"range-separator",{},(()=>[Pa("span",{class:j(Ot(u).b("separator"))},X(e.rangeSeparator),3)]))])),suffix:cn((()=>[e.clearIcon?(Ba(),Ia(Ot($f),{key:0,class:j(Ot(_)),onMousedown:Rr(Ot(l),["prevent"]),onClick:q},{default:cn((()=>[(Ba(),Ia(ul(e.clearIcon)))])),_:1},8,["class","onMousedown"])):Ua("v-if",!0)])),_:3},8,["id","model-value","name","disabled","readonly","start-placeholder","end-placeholder","class","style","aria-label","tabindex","onFocus","onBlur"])):(Ba(),Ia(Ot(bk),{key:0,id:e.id,ref_key:"inputRef",ref:m,"container-role":"combobox","model-value":Ot(N),name:e.name,size:Ot(ee),disabled:Ot(L),placeholder:e.placeholder,class:j([Ot(s).b("editor"),Ot(s).bm("editor",e.type),e.$attrs.class]),style:$(e.$attrs.style),readonly:!e.editable||e.readonly||Ot(D)||Ot(F)||Ot(P)||"week"===e.type,"aria-label":e.ariaLabel,tabindex:e.tabindex,"validate-event":!1,onInput:ue,onFocus:Ot(C),onBlur:Ot(k),onKeydown:ie,onChange:ae,onMousedown:Y,onMouseenter:G,onMouseleave:Z,onTouchstartPassive:J,onClick:Rr((()=>{}),["stop"])},{prefix:cn((()=>[Ot(K)?(Ba(),Ia(Ot($f),{key:0,class:j(Ot(i).e("icon")),onMousedown:Rr(Y,["prevent"]),onTouchstartPassive:J},{default:cn((()=>[(Ba(),Ia(ul(Ot(K))))])),_:1},8,["class","onMousedown"])):Ua("v-if",!0)])),suffix:cn((()=>[W.value&&e.clearIcon?(Ba(),Ia(Ot($f),{key:0,class:j(`${Ot(i).e("icon")} clear-icon`),onMousedown:Rr(Ot(l),["prevent"]),onClick:q},{default:cn((()=>[(Ba(),Ia(ul(e.clearIcon)))])),_:1},8,["class","onMousedown"])):Ua("v-if",!0)])),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","aria-label","tabindex","onFocus","onBlur","onClick"]))])),content:cn((()=>[hl(e.$slots,"default",{visible:g.value,actualVisible:y.value,parsedValue:Ot(R),format:e.format,dateFormat:e.dateFormat,timeFormat:e.timeFormat,unlinkPanels:e.unlinkPanels,type:e.type,defaultValue:e.defaultValue,showNow:e.showNow,onPick:A,onSelectRange:T,onSetPickerOption:he,onCalendarChange:me,onPanelChange:ge,onMousedown:Rr((()=>{}),["stop"])})])),_:3},16,["visible","transition","popper-class","popper-options","fallback-placements","placement"]))}});var GA=hf(YA,[["__file","picker.vue"]]);const XA=qp({...KA,datetimeRole:String,parsedValue:{type:Object}}),ZA=({getAvailableHours:e,getAvailableMinutes:t,getAvailableSeconds:n})=>{const l={};return{timePickerOptions:l,getAvailableTime:(l,a,o,r)=>{const s={hour:e,minute:t,second:n};let i=l;return["hour","minute","second"].forEach((e=>{if(s[e]){let t;const n=s[e];switch(e){case"minute":t=n(i.hour(),a,r);break;case"second":t=n(i.hour(),i.minute(),a,r);break;default:t=n(a,r)}if((null==t?void 0:t.length)&&!t.includes(i[e]())){const n=o?0:t.length-1;i=i[e](t[n])}}})),i},onSetOption:([e,t])=>{l[e]=t}}},JA=e=>e.map(((e,t)=>e||t)).filter((e=>!0!==e)),QA=(e,t,n)=>({getHoursList:(t,n)=>_E(24,e&&(()=>null==e?void 0:e(t,n))),getMinutesList:(e,n,l)=>_E(60,t&&(()=>null==t?void 0:t(e,n,l))),getSecondsList:(e,t,l,a)=>_E(60,n&&(()=>null==n?void 0:n(e,t,l,a)))}),eV=(e,t,n)=>{const{getHoursList:l,getMinutesList:a,getSecondsList:o}=QA(e,t,n);return{getAvailableHours:(e,t)=>JA(l(e,t)),getAvailableMinutes:(e,t,n)=>JA(a(e,t,n)),getAvailableSeconds:(e,t,n,l)=>JA(o(e,t,n,l))}},tV=e=>{const t=St(e.parsedValue);return fa((()=>e.visible),(n=>{n||(t.value=e.parsedValue)})),t},nV=qp({role:{type:String,required:!0},spinnerDate:{type:Object,required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""},...jA}),lV=100,aV=600,oV={beforeMount(e,t){const n=t.value,{interval:l=lV,delay:a=aV}=h(n)?{}:n;let o,r;const s=()=>h(n)?n():n.handler(),i=()=>{r&&(clearTimeout(r),r=void 0),o&&(clearInterval(o),o=void 0)};e.addEventListener("mousedown",(e=>{0===e.button&&(i(),s(),document.addEventListener("mouseup",(()=>i()),{once:!0}),r=setTimeout((()=>{o=setInterval((()=>{s()}),l)}),a))}))}};var rV=hf(Hn({__name:"basic-time-spinner",props:nV,emits:[df,"select-range","set-option"],setup(e,{emit:t}){const n=e,l=Pl("EP_PICKER_BASE"),{isRange:a,format:o}=l.props,r=fs("time"),{getHoursList:s,getMinutesList:i,getSecondsList:u}=QA(n.disabledHours,n.disabledMinutes,n.disabledSeconds);let c=!1;const d=St(),p={hours:St(),minutes:St(),seconds:St()},f=mo((()=>n.showSeconds?HA:HA.slice(0,2))),v=mo((()=>{const{spinnerDate:e}=n;return{hours:e.hour(),minutes:e.minute(),seconds:e.second()}})),h=mo((()=>{const{hours:e,minutes:t}=Ot(v),{role:l,spinnerDate:o}=n,r=a?void 0:o;return{hours:s(l,r),minutes:i(e,l,r),seconds:u(e,t,l,r)}})),m=mo((()=>{const{hours:e,minutes:t,seconds:n}=Ot(v);return{hours:gE(e,23),minutes:gE(t,59),seconds:gE(n,59)}})),g=od((e=>{c=!1,w(e)}),200),y=e=>{if(!!!n.amPmMode)return"";let t=e<12?" am":" pm";return"A"===n.amPmMode&&(t=t.toUpperCase()),t},b=e=>{let n=[0,0];if(!o||o===DA)switch(e){case"hours":n=[0,2];break;case"minutes":n=[3,5];break;case"seconds":n=[6,8]}const[l,a]=n;t("select-range",l,a),d.value=e},w=e=>{k(e,Ot(v)[e])},x=()=>{w("hours"),w("minutes"),w("seconds")},C=e=>e.querySelector(`.${r.namespace.value}-scrollbar__wrap`),k=(e,t)=>{if(n.arrowControl)return;const l=Ot(p[e]);l&&l.$el&&(C(l.$el).scrollTop=Math.max(0,t*S(e)))},S=e=>{const t=Ot(p[e]),n=null==t?void 0:t.$el.querySelector("li");return n&&Number.parseFloat(Cf(n,"height"))||0},_=()=>{E(1)},M=()=>{E(-1)},E=e=>{d.value||b("hours");const t=d.value,n=Ot(v)[t],l="hours"===d.value?24:60,a=O(t,n,e,l);T(t,a),k(t,a),Qt((()=>b(t)))},O=(e,t,n,l)=>{let a=(t+n+l)%l;const o=Ot(h)[e];for(;o[a]&&a!==t;)a=(a+n+l)%l;return a},T=(e,l)=>{if(Ot(h)[e][l])return;const{hours:a,minutes:o,seconds:r}=Ot(v);let s;switch(e){case"hours":s=n.spinnerDate.hour(l).minute(o).second(r);break;case"minutes":s=n.spinnerDate.hour(a).minute(l).second(r);break;case"seconds":s=n.spinnerDate.hour(a).minute(o).second(l)}t(df,s)},A=e=>Ot(p[e]).$el.offsetHeight,V=()=>{const e=e=>{const t=Ot(p[e]);t&&t.$el&&(C(t.$el).onscroll=()=>{(e=>{const t=Ot(p[e]);if(!t)return;c=!0,g(e);const n=Math.min(Math.round((C(t.$el).scrollTop-(.5*A(e)-10)/S(e)+3)/S(e)),"hours"===e?23:59);T(e,n)})(e)})};e("hours"),e("minutes"),e("seconds")};Zn((()=>{Qt((()=>{!n.arrowControl&&V(),x(),"start"===n.role&&b("hours")}))}));return t("set-option",[`${n.role}_scrollDown`,E]),t("set-option",[`${n.role}_emitSelectRange`,b]),fa((()=>n.spinnerDate),(()=>{c||x()})),(e,t)=>(Ba(),Na("div",{class:j([Ot(r).b("spinner"),{"has-seconds":e.showSeconds}])},[e.arrowControl?Ua("v-if",!0):(Ba(!0),Na(Ma,{key:0},fl(Ot(f),(t=>(Ba(),Ia(Ot(Ok),{key:t,ref_for:!0,ref:e=>((e,t)=>{p[t].value=null!=e?e:void 0})(e,t),class:j(Ot(r).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":Ot(r).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:e=>b(t),onMousemove:e=>w(t)},{default:cn((()=>[(Ba(!0),Na(Ma,null,fl(Ot(h)[t],((n,l)=>(Ba(),Na("li",{key:l,class:j([Ot(r).be("spinner","item"),Ot(r).is("active",l===Ot(v)[t]),Ot(r).is("disabled",n)]),onClick:e=>((e,{value:t,disabled:n})=>{n||(T(e,t),b(e),k(e,t))})(t,{value:l,disabled:n})},["hours"===t?(Ba(),Na(Ma,{key:0},[qa(X(("0"+(e.amPmMode?l%12||12:l)).slice(-2))+X(y(l)),1)],64)):(Ba(),Na(Ma,{key:1},[qa(X(("0"+l).slice(-2)),1)],64))],10,["onClick"])))),128))])),_:2},1032,["class","view-class","onMouseenter","onMousemove"])))),128)),e.arrowControl?(Ba(!0),Na(Ma,{key:1},fl(Ot(f),(t=>(Ba(),Na("div",{key:t,class:j([Ot(r).be("spinner","wrapper"),Ot(r).is("arrow")]),onMouseenter:e=>b(t)},[dn((Ba(),Ia(Ot($f),{class:j(["arrow-up",Ot(r).be("spinner","arrow")])},{default:cn((()=>[ja(Ot(iv))])),_:1},8,["class"])),[[Ot(oV),M]]),dn((Ba(),Ia(Ot($f),{class:j(["arrow-down",Ot(r).be("spinner","arrow")])},{default:cn((()=>[ja(Ot(Xf))])),_:1},8,["class"])),[[Ot(oV),_]]),Pa("ul",{class:j(Ot(r).be("spinner","list"))},[(Ba(!0),Na(Ma,null,fl(Ot(m)[t],((n,l)=>(Ba(),Na("li",{key:l,class:j([Ot(r).be("spinner","item"),Ot(r).is("active",n===Ot(v)[t]),Ot(r).is("disabled",Ot(h)[t][n])])},[Ot(Ld)(n)?(Ba(),Na(Ma,{key:0},["hours"===t?(Ba(),Na(Ma,{key:0},[qa(X(("0"+(e.amPmMode?n%12||12:n)).slice(-2))+X(y(n)),1)],64)):(Ba(),Na(Ma,{key:1},[qa(X(("0"+n).slice(-2)),1)],64))],64)):Ua("v-if",!0)],2)))),128))],2)],42,["onMouseenter"])))),128)):Ua("v-if",!0)],2))}}),[["__file","basic-time-spinner.vue"]]);const sV=Hn({__name:"panel-time-pick",props:XA,emits:["pick","select-range","set-picker-option"],setup(e,{emit:t}){const n=e,l=Pl("EP_PICKER_BASE"),{arrowControl:a,disabledHours:o,disabledMinutes:r,disabledSeconds:s,defaultValue:i}=l.props,{getAvailableHours:u,getAvailableMinutes:c,getAvailableSeconds:d}=eV(o,r,s),p=fs("time"),{t:f,lang:v}=jp(),h=St([0,2]),m=tV(n),g=mo((()=>Bd(n.actualVisible)?`${p.namespace.value}-zoom-in-top`:"")),y=mo((()=>n.format.includes("ss"))),b=mo((()=>n.format.includes("A")?"A":n.format.includes("a")?"a":"")),w=()=>{t("pick",m.value,!1)},x=e=>{if(!n.visible)return;const l=M(e).millisecond(0);t("pick",l,!0)},C=(e,n)=>{t("select-range",e,n),h.value=[e,n]},{timePickerOptions:k,onSetOption:S,getAvailableTime:_}=ZA({getAvailableHours:u,getAvailableMinutes:c,getAvailableSeconds:d}),M=e=>_(e,n.datetimeRole||"",!0);return t("set-picker-option",["isValidValue",e=>{const t=mE(e).locale(v.value),n=M(t);return t.isSame(n)}]),t("set-picker-option",["formatToString",e=>e?e.format(n.format):null]),t("set-picker-option",["parseUserInput",e=>e?mE(e,n.format).locale(v.value):null]),t("set-picker-option",["handleKeydownInput",e=>{const t=e.code,{left:n,right:l,up:a,down:o}=vS;if([n,l].includes(t)){return(e=>{const t=[0,3].concat(y.value?[6]:[]),n=["hours","minutes"].concat(y.value?["seconds"]:[]),l=(t.indexOf(h.value[0])+e+t.length)%t.length;k.start_emitSelectRange(n[l])})(t===n?-1:1),void e.preventDefault()}if([a,o].includes(t)){const n=t===a?-1:1;return k.start_scrollDown(n),void e.preventDefault()}}]),t("set-picker-option",["getRangeAvailableTime",M]),t("set-picker-option",["getDefaultValue",()=>mE(i).locale(v.value)]),(e,l)=>(Ba(),Ia(Bo,{name:Ot(g)},{default:cn((()=>[e.actualVisible||e.visible?(Ba(),Na("div",{key:0,class:j(Ot(p).b("panel"))},[Pa("div",{class:j([Ot(p).be("panel","content"),{"has-seconds":Ot(y)}])},[ja(rV,{ref:"spinner",role:e.datetimeRole||"start","arrow-control":Ot(a),"show-seconds":Ot(y),"am-pm-mode":Ot(b),"spinner-date":e.parsedValue,"disabled-hours":Ot(o),"disabled-minutes":Ot(r),"disabled-seconds":Ot(s),onChange:x,onSetOption:Ot(S),onSelectRange:C},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),Pa("div",{class:j(Ot(p).be("panel","footer"))},[Pa("button",{type:"button",class:j([Ot(p).be("panel","btn"),"cancel"]),onClick:w},X(Ot(f)("el.datepicker.cancel")),3),Pa("button",{type:"button",class:j([Ot(p).be("panel","btn"),"confirm"]),onClick:e=>((e=!1,l=!1)=>{l||t("pick",n.parsedValue,e)})()},X(Ot(f)("el.datepicker.confirm")),11,["onClick"])],2)],2)):Ua("v-if",!0)])),_:1},8,["name"]))}});var iV=hf(sV,[["__file","panel-time-pick.vue"]]);const uV=Hn({__name:"panel-time-range",props:qp({...KA,parsedValue:{type:Array}}),emits:["pick","select-range","set-picker-option"],setup(e,{emit:t}){const n=e,l=(e,t)=>{const n=[];for(let l=e;l<=t;l++)n.push(l);return n},{t:a,lang:o}=jp(),r=fs("time"),s=fs("picker"),i=Pl("EP_PICKER_BASE"),{arrowControl:u,disabledHours:c,disabledMinutes:p,disabledSeconds:f,defaultValue:v}=i.props,h=mo((()=>[r.be("range-picker","body"),r.be("panel","content"),r.is("arrow",u),w.value?"has-seconds":""])),m=mo((()=>[r.be("range-picker","body"),r.be("panel","content"),r.is("arrow",u),w.value?"has-seconds":""])),g=mo((()=>n.parsedValue[0])),y=mo((()=>n.parsedValue[1])),b=tV(n),w=mo((()=>n.format.includes("ss"))),x=mo((()=>n.format.includes("A")?"A":n.format.includes("a")?"a":"")),C=e=>{S(e.millisecond(0),y.value)},k=e=>{S(g.value,e.millisecond(0))},S=(e,l)=>{n.visible&&t("pick",[e,l],!0)},_=mo((()=>g.value>y.value)),M=St([0,2]),E=(e,n)=>{t("select-range",e,n,"min"),M.value=[e,n]},O=mo((()=>w.value?11:8)),T=(e,n)=>{t("select-range",e,n,"max");const l=Ot(O);M.value=[e+l,n+l]},A=(e,t)=>{const n=c?c(e):[],a="start"===e,o=(t||(a?y.value:g.value)).hour(),r=a?l(o+1,23):l(0,o-1);return Vd(n,r)},V=(e,t,n)=>{const a=p?p(e,t):[],o="start"===t,r=n||(o?y.value:g.value);if(e!==r.hour())return a;const s=r.minute(),i=o?l(s+1,59):l(0,s-1);return Vd(a,i)},B=(e,t,n,a)=>{const o=f?f(e,t,n):[],r="start"===n,s=a||(r?y.value:g.value),i=s.hour(),u=s.minute();if(e!==i||t!==u)return o;const c=s.second(),d=r?l(c+1,59):l(0,c-1);return Vd(o,d)},z=([e,t])=>[$(e,"start",!0,t),$(t,"end",!1,e)],{getAvailableHours:L,getAvailableMinutes:R,getAvailableSeconds:N}=eV(A,V,B),{timePickerOptions:I,getAvailableTime:$,onSetOption:H}=ZA({getAvailableHours:L,getAvailableMinutes:R,getAvailableSeconds:N});return t("set-picker-option",["formatToString",e=>e?d(e)?e.map((e=>e.format(n.format))):e.format(n.format):null]),t("set-picker-option",["parseUserInput",e=>e?d(e)?e.map((e=>mE(e,n.format).locale(o.value))):mE(e,n.format).locale(o.value):null]),t("set-picker-option",["isValidValue",e=>{const t=e.map((e=>mE(e).locale(o.value))),n=z(t);return t[0].isSame(n[0])&&t[1].isSame(n[1])}]),t("set-picker-option",["handleKeydownInput",e=>{const t=e.code,{left:n,right:l,up:a,down:o}=vS;if([n,l].includes(t)){return(e=>{const t=w.value?[0,3,6,11,14,17]:[0,3,8,11],n=["hours","minutes"].concat(w.value?["seconds"]:[]),l=(t.indexOf(M.value[0])+e+t.length)%t.length,a=t.length/2;l{if(d(v))return v.map((e=>mE(e).locale(o.value)));const e=mE(v).locale(o.value);return[e,e.add(60,"m")]}]),t("set-picker-option",["getRangeAvailableTime",z]),(e,n)=>e.actualVisible?(Ba(),Na("div",{key:0,class:j([Ot(r).b("range-picker"),Ot(s).b("panel")])},[Pa("div",{class:j(Ot(r).be("range-picker","content"))},[Pa("div",{class:j(Ot(r).be("range-picker","cell"))},[Pa("div",{class:j(Ot(r).be("range-picker","header"))},X(Ot(a)("el.datepicker.startTime")),3),Pa("div",{class:j(Ot(h))},[ja(rV,{ref:"minSpinner",role:"start","show-seconds":Ot(w),"am-pm-mode":Ot(x),"arrow-control":Ot(u),"spinner-date":Ot(g),"disabled-hours":A,"disabled-minutes":V,"disabled-seconds":B,onChange:C,onSetOption:Ot(H),onSelectRange:E},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2),Pa("div",{class:j(Ot(r).be("range-picker","cell"))},[Pa("div",{class:j(Ot(r).be("range-picker","header"))},X(Ot(a)("el.datepicker.endTime")),3),Pa("div",{class:j(Ot(m))},[ja(rV,{ref:"maxSpinner",role:"end","show-seconds":Ot(w),"am-pm-mode":Ot(x),"arrow-control":Ot(u),"spinner-date":Ot(y),"disabled-hours":A,"disabled-minutes":V,"disabled-seconds":B,onChange:k,onSetOption:Ot(H),onSelectRange:T},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2)],2),Pa("div",{class:j(Ot(r).be("panel","footer"))},[Pa("button",{type:"button",class:j([Ot(r).be("panel","btn"),"cancel"]),onClick:e=>{t("pick",b.value,!1)}},X(Ot(a)("el.datepicker.cancel")),11,["onClick"]),Pa("button",{type:"button",class:j([Ot(r).be("panel","btn"),"confirm"]),disabled:Ot(_),onClick:e=>((e=!1)=>{t("pick",[g.value,y.value],e)})()},X(Ot(a)("el.datepicker.confirm")),11,["disabled","onClick"])],2)],2)):Ua("v-if",!0)}});var cV=hf(uV,[["__file","panel-time-range.vue"]]);mE.extend(vA);const dV=zf(Hn({name:"ElTimePicker",install:null,props:{...WA,isRange:{type:Boolean,default:!1}},emits:[cf],setup(e,t){const n=St(),[l,a]=e.isRange?["timerange",cV]:["time",iV],o=e=>t.emit(cf,e);return Fl("ElPopperOptions",e.popperOptions),t.expose({focus:()=>{var e;null==(e=n.value)||e.focus()},blur:()=>{var e;null==(e=n.value)||e.blur()},handleOpen:()=>{var e;null==(e=n.value)||e.handleOpen()},handleClose:()=>{var e;null==(e=n.value)||e.handleClose()}}),()=>{var t;const r=null!=(t=e.format)?t:DA;return ja(GA,Za(e,{ref:n,type:l,format:r,"onUpdate:modelValue":o}),{default:e=>ja(a,e,null)})}}})),pV=Symbol(),fV=qp({...WA,type:{type:String,default:"date"}}),vV=["date","dates","year","years","month","months","week","range"],hV=qp({disabledDate:{type:Function},date:{type:Object,required:!0},minDate:{type:Object},maxDate:{type:Object},parsedValue:{type:[Object,Array]},rangeState:{type:Object,default:()=>({endDate:null,selecting:!1})}}),mV=qp({type:{type:String,required:!0,values:["year","years","month","months","date","dates","week","datetime","datetimerange","daterange","monthrange","yearrange"]},dateFormat:String,timeFormat:String,showNow:{type:Boolean,default:!0}}),gV=qp({unlinkPanels:Boolean,parsedValue:{type:Array}}),yV=e=>({type:String,values:vV,default:e}),bV=qp({...mV,parsedValue:{type:[Object,Array]},visible:{type:Boolean},format:{type:String,default:""}}),wV=e=>{if(!d(e))return!1;const[t,n]=e;return mE.isDayjs(t)&&mE.isDayjs(n)&&mE(t).isValid()&&mE(n).isValid()&&t.isSameOrBefore(n)},xV=(e,{lang:t,unit:n,unlinkPanels:l})=>{let a;if(d(e)){let[a,o]=e.map((e=>mE(e).locale(t)));return l||(o=a.add(1,n)),[a,o]}return a=e?mE(e):mE(),a=a.locale(t),[a,a.add(1,n)]},CV=(e,t,n)=>{const l=mE().locale(n).startOf("month").month(t).year(e),a=l.daysInMonth();return yE(a).map((e=>l.add(e,"day").toDate()))},kV=(e,t,n,l)=>{const a=mE().year(e).month(t).startOf("month"),o=CV(e,t,n).find((e=>!(null==l?void 0:l(e))));return o?mE(o).locale(n):a.locale(n)},SV=(e,t,n)=>{const l=e.year();if(!(null==n?void 0:n(e.toDate())))return e.locale(t);const a=e.month();if(!CV(l,a,t).every(n))return kV(l,a,t,n);for(let o=0;o<12;o++)if(!CV(l,o,t).every(n))return kV(l,o,t,n);return e},_V=(e,t,n)=>{if(d(e))return e.map((e=>_V(e,t,n)));if("string"==typeof e){const t=mE(e);if(!t.isValid())return t}return mE(e,t).locale(n)},MV=qp({...hV,cellClassName:{type:Function},showWeekNumber:Boolean,selectionMode:yV("date")}),EV=(e="")=>["normal","today"].includes(e),OV=(e,t)=>{const{lang:n}=jp(),l=St(),a=St(),o=St(),r=St(),s=St([[],[],[],[],[],[]]);let i=!1;const u=e.date.$locale().weekStart||7,c=e.date.locale("en").localeData().weekdaysShort().map((e=>e.toLowerCase())),p=mo((()=>u>3?7-u:-u)),f=mo((()=>{const t=e.date.startOf("month");return t.subtract(t.day()||7,"day")})),v=mo((()=>c.concat(c).slice(u,u+7))),h=mo((()=>Eu(Ot(w)).some((e=>e.isCurrent)))),m=mo((()=>{const t=e.date.startOf("month");return{startOfMonthDay:t.day()||7,dateCountOfMonth:t.daysInMonth(),dateCountOfLastMonth:t.subtract(1,"month").daysInMonth()}})),g=mo((()=>"dates"===e.selectionMode?YO(e.parsedValue):[])),y=(t,{columnIndex:n,rowIndex:l},a)=>{const{disabledDate:o,cellClassName:r}=e,s=Ot(g),i=((e,{count:t,rowIndex:n,columnIndex:l})=>{const{startOfMonthDay:a,dateCountOfMonth:o,dateCountOfLastMonth:r}=Ot(m),s=Ot(p);if(!(n>=0&&n<=1))return t<=o?e.text=t:(e.text=t-o,e.type="next-month"),!0;{const o=a+s<0?7+a+s:a+s;if(l+7*n>=o)return e.text=t,!0;e.text=r-(o-l%7)+1+7*n,e.type="prev-month"}return!1})(t,{count:a,rowIndex:l,columnIndex:n}),u=t.dayjs.toDate();return t.selected=s.find((e=>e.isSame(t.dayjs,"day"))),t.isSelected=!!t.selected,t.isCurrent=C(t),t.disabled=null==o?void 0:o(u),t.customClass=null==r?void 0:r(u),i},b=t=>{if("week"===e.selectionMode){const[n,l]=e.showWeekNumber?[1,7]:[0,6],a=M(t[n+1]);t[n].inRange=a,t[n].start=a,t[l].inRange=a,t[l].end=a}},w=mo((()=>{const{minDate:t,maxDate:l,rangeState:a,showWeekNumber:o}=e,r=Ot(p),i=Ot(s),u="day";let c=1;if(o)for(let e=0;e<6;e++)i[e][0]||(i[e][0]={type:"week",text:Ot(f).add(7*e+1,u).week()});return((e,t,{columnIndexOffset:n,startDate:l,nextEndDate:a,now:o,unit:r,relativeDateGetter:s,setCellMetadata:i,setRowMetadata:u})=>{for(let c=0;c{o(),_j(this)}),{checked:!1!==e});o()}const a=this.parent;a&&0!==a.level&&(n||_j(a))}getChildren(e=!1){if(0===this.level)return this.data;const t=this.data;if(!t)return null;const n=this.store.props;let l="children";return n&&(l=n.children||"children"),void 0===t[l]&&(t[l]=null),e&&!t[l]&&(t[l]=[]),t[l]}updateChildren(){const e=this.getChildren()||[],t=this.childNodes.map((e=>e.data)),n={},l=[];e.forEach(((e,a)=>{const o=e[wj];!!o&&t.findIndex((e=>e[wj]===o))>=0?n[o]={index:a,data:e}:l.push({index:a,data:e})})),this.store.lazy||t.forEach((e=>{n[e[wj]]||this.removeChildByData(e)})),l.forEach((({index:e,data:t})=>{this.insertChild({data:t},e)})),this.updateLeafState()}loadData(e,t={}){if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(t).length)e&&e.call(this);else{this.loading=!0;const n=n=>{this.childNodes=[],this.doCreateChildren(n,t),this.loaded=!0,this.loading=!1,this.updateLeafState(),e&&e.call(this,n)},l=()=>{this.loading=!1};this.store.load(this,n,l)}}eachNode(e){const t=[this];for(;t.length;){const n=t.shift();t.unshift(...n.childNodes),e(n)}}reInitChecked(){this.store.checkStrictly||_j(this)}};class Tj{constructor(e){this.currentNode=null,this.currentNodeKey=null;for(const t in e)c(e,t)&&(this[t]=e[t]);this.nodesMap={}}initialize(){if(this.root=new Oj({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){(0,this.load)(this.root,(e=>{this.root.doCreateChildren(e),this._initDefaultCheckedNodes()}))}else this._initDefaultCheckedNodes()}filter(e){const t=this.filterNodeMethod,n=this.lazy,l=async function(a){const o=a.root?a.root.childNodes:a.childNodes;for(const[n,r]of o.entries())r.visible=t.call(r,e,r.data,r),n%80==0&&n>0&&await Qt(),l(r);if(!a.visible&&o.length){let e=!0;e=!o.some((e=>e.visible)),a.root?a.root.visible=!1===e:a.visible=!1===e}e&&a.visible&&!a.isLeaf&&(n&&!a.loaded||a.expand())};l(this)}setData(e){e!==this.root.data?(this.nodesMap={},this.root.setData(e),this._initDefaultCheckedNodes(),this.setCurrentNodeKey(this.currentNodeKey)):this.root.updateChildren()}getNode(e){if(e instanceof Oj)return e;const t=y(e)?Cj(this.key,e):e;return this.nodesMap[t]||null}insertBefore(e,t){const n=this.getNode(t);n.parent.insertBefore({data:e},n)}insertAfter(e,t){const n=this.getNode(t);n.parent.insertAfter({data:e},n)}remove(e){const t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))}append(e,t){const n=Id(t)?this.root:this.getNode(t);n&&n.insertChild({data:e})}_initDefaultCheckedNodes(){const e=this.defaultCheckedKeys||[],t=this.nodesMap;e.forEach((e=>{const n=t[e];n&&n.setChecked(!0,!this.checkStrictly)}))}_initDefaultCheckedNode(e){(this.defaultCheckedKeys||[]).includes(e.key)&&e.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())}registerNode(e){const t=this.key;if(e&&e.data)if(t){void 0!==e.key&&(this.nodesMap[e.key]=e)}else this.nodesMap[e.id]=e}deregisterNode(e){this.key&&e&&e.data&&(e.childNodes.forEach((e=>{this.deregisterNode(e)})),delete this.nodesMap[e.key])}getCheckedNodes(e=!1,t=!1){const n=[],l=function(a){(a.root?a.root.childNodes:a.childNodes).forEach((a=>{(a.checked||t&&a.indeterminate)&&(!e||e&&a.isLeaf)&&n.push(a.data),l(a)}))};return l(this),n}getCheckedKeys(e=!1){return this.getCheckedNodes(e).map((e=>(e||{})[this.key]))}getHalfCheckedNodes(){const e=[],t=function(n){(n.root?n.root.childNodes:n.childNodes).forEach((n=>{n.indeterminate&&e.push(n.data),t(n)}))};return t(this),e}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map((e=>(e||{})[this.key]))}_getAllNodes(){const e=[],t=this.nodesMap;for(const n in t)c(t,n)&&e.push(t[n]);return e}updateChildren(e,t){const n=this.nodesMap[e];if(!n)return;const l=n.childNodes;for(let a=l.length-1;a>=0;a--){const e=l[a];this.remove(e.data)}for(let a=0,o=t.length;a